Browse Source

修改物资更换维修业务逻辑

车车 3 tháng trước cách đây
mục cha
commit
2a8f7def22

+ 3 - 0
ktg-iscs/src/main/java/com/ktg/iscs/domain/dto/hardwareMaterialApi/ReplaceMaterialDTO.java

@@ -43,4 +43,7 @@ public class ReplaceMaterialDTO
     @JsonFormat(timezone="GMT+8", pattern = "yyyy-MM-dd")
     private Date expirationDate;
 
+    @ApiModelProperty(value = "措施")
+    private String measure;
+
 }

+ 31 - 9
ktg-iscs/src/main/java/com/ktg/iscs/service/impl/HardwareMaterialApiServiceImpl.java

@@ -170,7 +170,7 @@ public class HardwareMaterialApiServiceImpl implements HardwareMaterialApiServic
     @Transactional
     @Override
     public Boolean insertCheckedRecord(ReplaceMaterialParamDTO dto) throws JsonProcessingException {
-        Assert.isFalse(dto.getList().isEmpty(), "更换物资不能为空!");
+        Assert.isFalse(dto.getList().isEmpty(), "没有确定要维修或更换的物资!");
         Long cabinetId = null;
         // 因为比较复杂,循环处理
         for (ReplaceMaterialDTO replaceMaterialDTO : dto.getList()) {
@@ -180,9 +180,36 @@ public class HardwareMaterialApiServiceImpl implements HardwareMaterialApiServic
                 continue;
             }
             Assert.notNull(replaceMaterialDTO.getOldMaterialsId(), "旧物资ID不能为空!");
-            // 1.对旧物资进行处理,如果新物资需要使用旧物资的rfid,则把旧物资的rfid清理掉,然后绑定给新物资,最后开柜门拿出旧物资解绑就可以了
             IsMaterials oldMaterial = iIsMaterialsService.getById(replaceMaterialDTO.getOldMaterialsId());
             cabinetId = oldMaterial.getMaterialsCabinetId();
+            // 查询该物资的最新报异常记录
+            IsMaterialsCheckRecord checkRecord = isMaterialsCheckRecordService.getOne(Wrappers.<IsMaterialsCheckRecord>lambdaQuery()
+                    .eq(IsMaterialsCheckRecord::getMaterialsId, replaceMaterialDTO.getOldMaterialsId())
+                    .eq(IsMaterialsCheckRecord::getStatus, "1")
+                    .orderByDesc(IsMaterialsCheckRecord::getRecordId)
+                    .last("limit 1"));
+            // 判断物资是不是维修,如果是维修,做维修处理
+            if (StringUtils.isNotBlank(replaceMaterialDTO.getMeasure()) && replaceMaterialDTO.getMeasure().equals("维修")) {
+                // 如果是维修直接更新物资状态
+                iIsMaterialsService.update(Wrappers.<IsMaterials>lambdaUpdate()
+                        .eq(IsMaterials::getMaterialsId, replaceMaterialDTO.getOldMaterialsId())
+                        .set(IsMaterials::getStatus, "0"));
+                // 生成维修记录
+                IsMaterialsChangeRecord isMaterialsChangeRecord = new IsMaterialsChangeRecord();
+                isMaterialsChangeRecord.setOldMaterialsId(replaceMaterialDTO.getOldMaterialsId());
+                isMaterialsChangeRecord.setOldMaterialsRfid(oldMaterial.getMaterialsRfid());
+                isMaterialsChangeRecord.setNewMaterialsId(oldMaterial.getMaterialsId());
+                isMaterialsChangeRecord.setNewMaterialsRfid(oldMaterial.getMaterialsRfid());
+                isMaterialsChangeRecord.setChangeUserId(SecurityUtils.getUserId());
+                isMaterialsChangeRecord.setChangeDate(new Date());
+                isMaterialsChangeRecord.setChangeType("0");
+                isMaterialsChangeRecord.setOperateType("3");
+                isMaterialsChangeRecord.setCheckRecordId(checkRecord != null ? checkRecord.getRecordId() : null);
+                isMaterialsChangeRecordService.save(isMaterialsChangeRecord);
+                return true;
+            }
+
+            // 1.对旧物资进行处理,如果新物资需要使用旧物资的rfid,则把旧物资的rfid清理掉,然后绑定给新物资,最后开柜门拿出旧物资解绑就可以了
             if (StringUtils.isNotBlank(oldMaterial.getMaterialsRfid()) && oldMaterial.getMaterialsRfid().equals(replaceMaterialDTO.getMaterialsRfid())) {
                 // 1.1该情况属于新物资需要使用旧物资的rfid
                 iIsMaterialsService.update(Wrappers.<IsMaterials>lambdaUpdate()
@@ -268,12 +295,7 @@ public class HardwareMaterialApiServiceImpl implements HardwareMaterialApiServic
             isMaterialsChangeRecord.setChangeUserId(SecurityUtils.getUserId());
             isMaterialsChangeRecord.setChangeDate(new Date());
             isMaterialsChangeRecord.setChangeType("0");
-            // 查询该物资的最新报异常记录
-            IsMaterialsCheckRecord checkRecord = isMaterialsCheckRecordService.getOne(Wrappers.<IsMaterialsCheckRecord>lambdaQuery()
-                    .eq(IsMaterialsCheckRecord::getMaterialsId, replaceMaterialDTO.getOldMaterialsId())
-                    .eq(IsMaterialsCheckRecord::getStatus, "1")
-                    .orderByDesc(IsMaterialsCheckRecord::getRecordId)
-                    .last("limit 1"));
+
             if (checkRecord != null) {
                 isMaterialsChangeRecord.setCheckRecordId(checkRecord.getRecordId());
             } else {
@@ -310,7 +332,7 @@ public class HardwareMaterialApiServiceImpl implements HardwareMaterialApiServic
     @Transactional
     @Override
     public Boolean insertReplaceRecord(ReplaceMaterialParamDTO dto) throws JsonProcessingException {
-        Assert.isFalse(dto.getList().isEmpty(), "更换物资不能为空!");
+        Assert.isFalse(dto.getList().isEmpty(), "没有确定要维修或更换的物资!");
         // 因为比较复杂,循环处理
         for (ReplaceMaterialDTO replaceMaterialDTO : dto.getList()) {
             Assert.notNull(replaceMaterialDTO.getOldMaterialsId(), "旧物资ID不能为空!");