소스 검색

pms功能优化 修改保养计划

zhangcl 3 달 전
부모
커밋
5f0e4bc340

+ 7 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/maintenance/IotMaintenancePlanController.java

@@ -64,6 +64,13 @@ public class IotMaintenancePlanController {
         return success(true);
     }
 
+    @PostMapping("/updatePlan")
+    @Operation(summary = "修改保养计划 主表+明细")
+    @PreAuthorize("@ss.hasPermission('rq:iot-maintenance-plan:update')")
+    public CommonResult<Long> updatePlan(@Valid @RequestBody IotMaintenanceSaveVO updateReqVO) {
+        return success(iotMaintenancePlanService.updatePlan(updateReqVO));
+    }
+
     @DeleteMapping("/delete")
     @Operation(summary = "删除保养计划")
     @Parameter(name = "id", description = "编号", required = true)

+ 4 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/mysql/iotmaintenancebom/IotMaintenanceBomMapper.java

@@ -83,4 +83,8 @@ public interface IotMaintenanceBomMapper extends BaseMapperX<IotMaintenanceBomDO
                 .eqIfPresent(IotMaintenanceBomDO::getVersion, reqVO.getVersion())
                 .betweenIfPresent(IotMaintenanceBomDO::getCreateTime, reqVO.getCreateTime()));
     }
+
+    default int deleteByPlanId(Long planId) {
+        return delete(IotMaintenanceBomDO::getPlanId, planId);
+    }
 }

+ 4 - 10
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/job/mainworkorder/CreateMainWorkOrderJob.java

@@ -1,15 +1,9 @@
 package cn.iocoder.yudao.module.pms.job.mainworkorder;
 
 import cn.hutool.core.collection.CollUtil;
-import cn.hutool.core.date.DateTime;
-import cn.hutool.core.date.DateUtil;
 import cn.iocoder.yudao.framework.quartz.core.handler.JobHandler;
 import cn.iocoder.yudao.framework.tenant.core.job.TenantJob;
 import cn.iocoder.yudao.module.pms.controller.admin.iotmaintenancebom.vo.IotTobeMaintenanceBomRespVO;
-import cn.iocoder.yudao.module.pms.dal.dataobject.inspect.IotInspectOrderDO;
-import cn.iocoder.yudao.module.pms.dal.dataobject.inspect.IotInspectOrderDetailDO;
-import cn.iocoder.yudao.module.pms.dal.dataobject.inspect.IotInspectPlanDO;
-import cn.iocoder.yudao.module.pms.dal.dataobject.inspect.IotInspectRouteDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotmainworkorder.IotMainWorkOrderDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotmainworkorderbom.IotMainWorkOrderBomDO;
 import cn.iocoder.yudao.module.pms.dal.mysql.inspect.IotInspectOrderDetailMapper;
@@ -19,16 +13,16 @@ import cn.iocoder.yudao.module.pms.enums.common.FailureAuditStatusEnum;
 import cn.iocoder.yudao.module.pms.service.iotmainworkorder.IotMainWorkOrderService;
 import cn.iocoder.yudao.module.pms.service.iotmainworkorderbom.IotMainWorkOrderBomService;
 import cn.iocoder.yudao.module.pms.service.maintenance.IotMaintenancePlanService;
-import com.alibaba.fastjson.JSON;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import javax.annotation.Resource;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 import java.util.concurrent.atomic.AtomicReference;
-import java.util.stream.Collectors;
 
 @Component
 @Slf4j

+ 6 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/maintenance/IotMaintenancePlanService.java

@@ -62,4 +62,10 @@ public interface IotMaintenancePlanService {
      */
     List<IotTobeMaintenanceBomRespVO> toBeMaintenanceDeviceBOMs();
 
+    /**
+     * 修改保养计划 主表+明细
+     *
+     * @return
+     */
+    Long updatePlan(IotMaintenanceSaveVO updateReqVO);
 }

+ 34 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/maintenance/IotMaintenancePlanServiceImpl.java

@@ -14,6 +14,7 @@ import cn.iocoder.yudao.module.pms.dal.mysql.iotmaintenancebom.IotMaintenanceBom
 import cn.iocoder.yudao.module.pms.dal.mysql.maintenance.IotMaintenancePlanMapper;
 import cn.iocoder.yudao.module.pms.dal.redis.BizNoRedisDAO;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.validation.annotation.Validated;
 
 import javax.annotation.Resource;
@@ -42,6 +43,7 @@ public class IotMaintenancePlanServiceImpl implements IotMaintenancePlanService
     private BizNoRedisDAO bizNoRedisDAO;
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public Long createIotMaintenancePlan(IotMaintenanceSaveVO createReqVO) {
         if (ObjectUtil.isEmpty(createReqVO)) {
             throw exception(IOT_MAINTENANCE_PLAN_NOT_EXISTS);
@@ -114,4 +116,36 @@ public class IotMaintenancePlanServiceImpl implements IotMaintenancePlanService
         return iotMaintenancePlanMapper.toBeMaintenanceDeviceBOMs();
     }
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Long updatePlan(IotMaintenanceSaveVO updateReqVO) {
+        if (ObjectUtil.isEmpty(updateReqVO)) {
+            throw exception(IOT_MAINTENANCE_PLAN_NOT_EXISTS);
+        }
+        if (ObjectUtil.isEmpty(updateReqVO.getMainPlan())) {
+            throw exception(IOT_MAINTENANCE_PLAN_NOT_EXISTS);
+        }
+        List<IotMaintenanceBomSaveReqVO> deviceBOMs = updateReqVO.getMainPlanBom();
+        if (ObjectUtil.isEmpty(deviceBOMs)) {
+            throw exception(IOT_MAINTENANCE_PLAN_NOT_EXISTS);
+        }
+        // 校验保养计划是否存在
+        IotMaintenancePlanDO existPlan = iotMaintenancePlanMapper.selectById(updateReqVO.getMainPlan().getId());
+        if (ObjectUtil.isEmpty(existPlan)) {
+            throw exception(IOT_MAINTENANCE_PLAN_NOT_EXISTS);
+        }
+        IotMaintenancePlanSaveReqVO mainPlanSaveVO = updateReqVO.getMainPlan();
+        IotMaintenancePlanDO iotMaintenancePlan = BeanUtils.toBean(mainPlanSaveVO, IotMaintenancePlanDO.class);
+        iotMaintenancePlanMapper.updateById(iotMaintenancePlan);
+        // 保养计划明细 先删除再新增
+        iotMaintenanceBomMapper.deleteByPlanId(existPlan.getId());
+        List<IotMaintenanceBomDO> maintenanceBOMs = new ArrayList<>();
+        maintenanceBOMs = convertList(deviceBOMs, bom -> BeanUtils.toBean(bom, IotMaintenanceBomDO.class, item -> item
+                .setPlanId(iotMaintenancePlan.getId())
+                .setId(null)
+                .setDeviceCategoryId(bom.getAssetClass())));
+        iotMaintenanceBomMapper.insertBatch(maintenanceBOMs);
+        return iotMaintenancePlan.getId();
+    }
+
 }