浏览代码

物资更换对接

车车 3 月之前
父节点
当前提交
d2f561a6e6

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

@@ -151,9 +151,9 @@ public class HardwareMaterialApiServiceImpl implements HardwareMaterialApiServic
             // 判断新物资RFID是否被使用
             IsMaterials one = iIsMaterialsService.getOne(Wrappers.<IsMaterials>lambdaQuery()
                     .eq(IsMaterials::getMaterialsRfid, dto.getMaterialsRfid()));
-            Assert.isFalse(one != null && one.getMaterialsCabinetId() != null, "该RFID已被使用!");
+            Assert.isFalse(one != null && one.getMaterialsCabinetId() != null && one.getMaterialsCabinetId() != 0, "该RFID已被使用!");
             // 判断新物资是否在物资当前柜子中
-            if (one != null) {
+            /*if (one != null) {
                 IsMaterialsLoanException one1 = isMaterialsLoanExceptionService.getOne(Wrappers.<IsMaterialsLoanException>lambdaQuery()
                         .eq(IsMaterialsLoanException::getMaterialsRfid, dto.getMaterialsRfid())
                         .eq(IsMaterialsLoanException::getStatus, 0)
@@ -161,7 +161,7 @@ public class HardwareMaterialApiServiceImpl implements HardwareMaterialApiServic
                         .orderByDesc(IsMaterialsLoanException::getMisplaceId)
                         .last("limit 1"));
                 Assert.isTrue(one1 != null, "请在该柜中放入新物资!");
-            }
+            }*/
 
         }
         return true;
@@ -245,14 +245,15 @@ public class HardwareMaterialApiServiceImpl implements HardwareMaterialApiServic
 
             if (!oldMaterial.getMaterialsRfid().equals(replaceMaterialDTO.getMaterialsRfid()) && newMaterials != null) {
                 // 如果发现物资是存在的,判断下有没有绑定柜子
-                Assert.isNull(newMaterials.getMaterialsCabinetId(), "该物资存在所属柜子,不可更换!");
+                Assert.isFalse(newMaterials.getMaterialsCabinetId() != null && newMaterials.getMaterialsCabinetId() != 0, "该物资存在所属柜子,不可更换!");
+                Assert.isTrue(newMaterials.getStatus().equals("0"), "更换的物资异常,不可更换!");
                 // 如果没有绑定柜子,则可以开始绑定
                 iIsMaterialsService.update(Wrappers.<IsMaterials>lambdaUpdate()
                         .eq(IsMaterials::getMaterialsId, newMaterials.getMaterialsId())
                         .set(IsMaterials::getMaterialsCabinetId, oldMaterial.getMaterialsCabinetId()));
                 // 解绑老物资
                 iIsMaterialsService.update(Wrappers.<IsMaterials>lambdaUpdate()
-                        .eq(IsMaterials::getMaterialsId, newMaterials.getMaterialsId())
+                        .eq(IsMaterials::getMaterialsId, oldMaterial.getMaterialsId())
                         .set(IsMaterials::getMaterialsCabinetId, null));
             }
 
@@ -286,7 +287,7 @@ public class HardwareMaterialApiServiceImpl implements HardwareMaterialApiServic
                     .set(IsMaterialsLoan::getStatus, "1")
                     .set(IsMaterialsLoan::getRestitutionUserId, SecurityUtils.getUserId())
                     .set(IsMaterialsLoan::getActualRestitutionTime, new Date()));
-            // 删除新物资的存入异常
+            // 删除新物资的存入异常---曹特殊要求,改成完成的数据
             isMaterialsLoanExceptionService.update(Wrappers.<IsMaterialsLoanException>lambdaUpdate()
                     .eq(IsMaterialsLoanException::getMaterialsRfid, replaceMaterialDTO.getMaterialsRfid())
                     .eq(IsMaterialsLoanException::getStatus, "0")
@@ -596,7 +597,8 @@ public class HardwareMaterialApiServiceImpl implements HardwareMaterialApiServic
                 Assert.notBlank(dto.getLoanState(), "请告诉我是借出还是归还!");
                 try {
                     // 1.1 开始查询物资,物资柜传的rfid
-                    IsMaterials materials = iIsMaterialsService.getOne(Wrappers.<IsMaterials>lambdaQuery().eq(IsMaterials::getMaterialsRfid, dto.getMaterialsRfid()));
+                    IsMaterials materials = iIsMaterialsService.getOne(Wrappers.<IsMaterials>lambdaQuery()
+                            .eq(IsMaterials::getMaterialsRfid, dto.getMaterialsRfid()));
                     Assert.isFalse(materials == null, "通过RFID:" + dto.getMaterialsRfid() + "未查询到物资!");
                     // 如果物资是借出状态,又来借出就报错
                     if ("0".equals(materials.getLoanState()) && "0".equals(dto.getLoanState())) {
@@ -827,8 +829,7 @@ public class HardwareMaterialApiServiceImpl implements HardwareMaterialApiServic
         }
         // 4.获取该物资柜的需要更换数量,在柜子里,损坏或者过期
         int changeNumber = (int) isMaterials.stream().filter(o ->
-                StringUtils.isNotBlank(o.getLoanState()) && o.getLoanState().equals("1")
-                        && StringUtils.isNotBlank(o.getStatus()) && (o.getStatus().equals("1") || o.getStatus().equals("2"))
+                StringUtils.isNotBlank(o.getLoanState()) && StringUtils.isNotBlank(o.getStatus()) && (o.getStatus().equals("1") || o.getStatus().equals("2"))
         ).count();
         // 5.获取本人在该物资柜上未完成的检查计划
         Integer checkNumber = null;

+ 1 - 3
ktg-iscs/src/main/java/com/ktg/iscs/service/impl/IsMaterialsLoanServiceImpl.java

@@ -515,11 +515,9 @@ public class IsMaterialsLoanServiceImpl extends ServiceImpl<IsMaterialsLoanMappe
         if (loanList.isEmpty() || materials.getMaterialsCabinetId() == null) {
             IsMaterialsLoanException loanException = new IsMaterialsLoanException();
             loanException.setMaterialsId(dto.getMaterialsId());
-            loanException.setMaterialsLoanId(loanList.get(0).getMaterialsLoanId());
-            // loanException.setLoanTime(loanList.get(0).getLoanTime());
+            loanException.setMaterialsRfid(materials.getMaterialsRfid());
             loanException.setRestitutionUserId(dto.getRestitutionUserId());
             loanException.setRestitutionToId(dto.getRestitutionToId());
-            // loanException.setActualRestitutionTime(new Date());
             loanException.setOccurTime(new Date());
             isMaterialsLoanExceptionService.save(loanException);
             return true;

+ 2 - 2
ktg-iscs/src/main/java/com/ktg/iscs/service/impl/IsMaterialsServiceImpl.java

@@ -141,7 +141,6 @@ public class IsMaterialsServiceImpl extends ServiceImpl<IsMaterialsMapper, IsMat
         }
         isMaterials.setUpdateTime(DateUtils.getNowDate());
         // 4.设定当前物资所处柜子,如果当前物资没有被使用,只是更改绑定,则同步柜子,否则不变
-        IsMaterials materials = getById(isMaterials.getMaterialsId());
         return isMaterialsMapper.updateIsMaterials(isMaterials);
     }
 
@@ -210,7 +209,8 @@ public class IsMaterialsServiceImpl extends ServiceImpl<IsMaterialsMapper, IsMat
                     if (dto.getMaterialsId() != null) {
                         // 模拟,无需处理
                     } else {
-                        IsMaterials materials = getOne(Wrappers.<IsMaterials>lambdaQuery().eq(IsMaterials::getMaterialsRfid, dto.getMaterialsRfid()));
+                        IsMaterials materials = getOne(Wrappers.<IsMaterials>lambdaQuery()
+                                .eq(IsMaterials::getMaterialsRfid, dto.getMaterialsRfid()));
                         if (materials == null) {
                             handleOutSystemMaterials(dto.getMaterialsRfid(), dto.getLoanState(), dto.getRestitutionToCabinetCode());
                             Assert.isFalse(true, "通过RFID:" + dto.getMaterialsRfid() + "未查询到物资!");