Browse Source

aps-取消报工,还原批次号漏洞修改

sucheng 10 months ago
parent
commit
7297288f29

+ 28 - 9
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ApsReportRecordsServiceImpl.java

@@ -1392,21 +1392,40 @@ public class ApsReportRecordsServiceImpl extends ServiceImpl<ApsReportRecordsDao
          * 查找输入物料所有后道作业明细,即前道作业明细的所有后道作业明细中,
          * 其工序作业的输入物料ID和报工记录的工序作业的输入物料ID相同的所有作业明细,将这些作业明细的待加工料卷批次号去掉“{输入批次号},”
          */
+        //更新待加工料卷批次号
+        if (ObjectUtil.isNotEmpty(apsProcessOperationProcessEquDo.getPreviousprocessesids())) {
+            List<ApsProcessOperationProcessEquDo> needUpdateBatchNumber = apsProcessOperationProcessEquService.list(new QueryWrapper<ApsProcessOperationProcessEquDo>().lambda().eq(ApsProcessOperationProcessEquDo::getPreviousprocessesids, apsProcessOperationProcessEquDo.getPreviousprocessesids()));
+            if (ObjectUtil.isNotEmpty(needUpdateBatchNumber)) {
+                List<ApsProcessOperationProcessEquDo> needUpdateList = new LinkedList<>();
+
+                for (ApsProcessOperationProcessEquDo processOperationProcessEquDo : needUpdateBatchNumber) {
+                    List<String> oldList = new LinkedList<>();
+                    //原待加工批次号不为空
+                    if (ObjectUtil.isNotEmpty(processOperationProcessEquDo.getBachmaterialprocess())) {
+                        oldList = new LinkedList<>(Arrays.asList(processOperationProcessEquDo.getBachmaterialprocess().split(",")));
+                        oldList.removeAll(inputBatchNumberList);
+
+                        String newBatch = String.join(",", oldList);
+                        ApsProcessOperationProcessEquDo needUpdate = new ApsProcessOperationProcessEquDo();
+                        needUpdate.setId(processOperationProcessEquDo.getId());
+                        needUpdate.setBachmaterialprocess(newBatch);
+                        needUpdateList.add(needUpdate);
+                    }
+                }
+                if (ObjectUtil.isNotEmpty(needUpdateList)) {
+                    apsProcessOperationProcessEquService.updateBatchById(needUpdateList);
+                }
+            }
+        }
+
+
         for (String inputBatchNumber : inputBatchNumberList) {
             //更新在制品状态
             apsWorkInProgressInventoryService.update(new UpdateWrapper<ApsWorkInProgressInventoryDo>().lambda()
                     .set(ApsWorkInProgressInventoryDo::getWorkinprocessstatus, "加工中")
                     .eq(ApsWorkInProgressInventoryDo::getBatchnumber, inputBatchNumber)
                     .eq(ApsWorkInProgressInventoryDo::getDeleted, "0"));
-            //更新待加工料卷批次号
-            if (ObjectUtil.isNotEmpty(apsProcessOperationProcessEquDo.getPreviousprocessesids())) {
-                List<ApsProcessOperationProcessEquDo> needUpdateBatchNumber = apsProcessOperationProcessEquService.list(new QueryWrapper<ApsProcessOperationProcessEquDo>().lambda().eq(ApsProcessOperationProcessEquDo::getPreviousprocessesids, apsProcessOperationProcessEquDo.getPreviousprocessesids()));
-                if (ObjectUtil.isNotEmpty(needUpdateBatchNumber)) {
-                    List<String> needUpdateIds = needUpdateBatchNumber.stream().map(ApsProcessOperationProcessEquDo::getId).collect(Collectors.toList());
-                    String join = String.join(",", needUpdateIds);
-                    this.baseMapper.updateAllProcessEquBatchNumberByIds(inputBatchNumber, join);
-                }
-            }
+
         }
         //========更新工序作业明细==========
         ApsProcessOperationProcessEquDo needUpdateProcessEqu = new ApsProcessOperationProcessEquDo();