lipenghui пре 4 месеци
родитељ
комит
8b0f55d5ea

+ 3 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/maintain/vo/IotMaintainSaveReqVO.java

@@ -13,6 +13,9 @@ public class IotMaintainSaveReqVO {
     //@Schema(description = "主键id", requiredMode = Schema.RequiredMode.REQUIRED, example = "20489")
     private Long id;
 
+    //故障id
+    private String failureId;
+
     //@Schema(description = "故障编码", requiredMode = Schema.RequiredMode.REQUIRED)
     private String failureCode;
 

+ 4 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/dataobject/maintain/IotMaintainDO.java

@@ -30,6 +30,10 @@ public class IotMaintainDO extends BaseDO {
      */
     @TableId
     private Long id;
+    /**
+     * 故障id
+     */
+    private Long failureId;
     /**
      * 故障编码
      */

+ 1 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/failure/IotFailureReportServiceImpl.java

@@ -84,6 +84,7 @@ public class IotFailureReportServiceImpl implements IotFailureReportService {
         iotMaintainDO.setStatus("tx");
         iotMaintainDO.setAuditStatus(0);
         iotMaintainDO.setMaintainPerson(failureReportDO.getAssigneeUserId());
+        iotMaintainDO.setFailureId(failureReportDO.getId());
         iotMaintainMapper.insert(iotMaintainDO);
     }
 

+ 27 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/maintain/IotMaintainServiceImpl.java

@@ -11,15 +11,18 @@ import cn.iocoder.yudao.module.pms.controller.admin.maintain.vo.IotMaintainPageR
 import cn.iocoder.yudao.module.pms.controller.admin.maintain.vo.IotMaintainSaveReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.maintain.vo.IotMaintainSaveVO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.IotDeviceDO;
+import cn.iocoder.yudao.module.pms.dal.dataobject.failure.IotFailureReportDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotlockstock.IotLockStockDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotoutbound.IotOutboundDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.maintain.IotMaintainDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.maintain.material.IotMaintainMaterialDO;
+import cn.iocoder.yudao.module.pms.dal.mysql.failure.IotFailureReportMapper;
 import cn.iocoder.yudao.module.pms.dal.mysql.iotlockstock.IotLockStockMapper;
 import cn.iocoder.yudao.module.pms.dal.mysql.iotoutbound.IotOutboundMapper;
 import cn.iocoder.yudao.module.pms.dal.mysql.maintain.IotMaintainMapper;
 import cn.iocoder.yudao.module.pms.dal.mysql.maintain.material.IotMaintainMaterialMapper;
 import com.google.common.collect.ImmutableMap;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.validation.annotation.Validated;
@@ -30,6 +33,7 @@ import java.math.BigDecimal;
 import java.util.Date;
 import java.util.List;
 import java.util.Objects;
+import java.util.concurrent.CompletableFuture;
 import java.util.stream.Collectors;
 
 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
@@ -53,6 +57,8 @@ public class IotMaintainServiceImpl implements IotMaintainService {
     private IotLockStockMapper iotLockStockMapper;
     @Resource
     private IotOutboundMapper iotOutboundMapper;
+    @Autowired
+    private IotFailureReportMapper iotFailureReportMapper;
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -72,7 +78,10 @@ public class IotMaintainServiceImpl implements IotMaintainService {
             return bean;
         }).collect(Collectors.toList());
         iotMaintainMaterialMapper.insertBatch(collect);
-
+        //本地库存减少且记录出库
+        if ("finished".equals(createReqVO.getMaintain().getStatus())){
+            localStockAndOut(createReqVO);
+        }
         return iotMaintain.getId();
     }
 
@@ -95,6 +104,10 @@ public class IotMaintainServiceImpl implements IotMaintainService {
             return bean;
         }).collect(Collectors.toList());
         iotMaintainMaterialMapper.insertBatch(collect);
+        //本地库存减少且记录出库
+        if ("finished".equals(updateReqVO.getMaintain().getStatus())){
+            localStockAndOut(updateReqVO);
+        }
     }
 
     /**
@@ -137,6 +150,19 @@ public class IotMaintainServiceImpl implements IotMaintainService {
                 iotOutboundMapper.insert(outboundDO);
             });
         }
+        //更新故障上报的状态为工单处理完成
+        IotMaintainSaveReqVO iotMaintain = maintainSaveVO.getMaintain();
+        if (Objects.nonNull(iotMaintain.getFailureId())){
+            IotFailureReportDO iotFailureReportDO = iotFailureReportMapper.selectById(iotMaintain.getFailureId());
+            if (Objects.nonNull(iotFailureReportDO)){
+                iotFailureReportDO.setStatus("orderfinished");
+                iotFailureReportMapper.updateById(iotFailureReportDO);
+            }
+        }
+        //todo 异步消息通知逻辑
+        CompletableFuture.runAsync(()->{
+
+        });
     }