Browse Source

Merge remote-tracking branch 'origin/mode-min-unit' into mode-min-unit

xiahan 10 months ago
parent
commit
bec4ccd749

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

@@ -342,6 +342,23 @@ public class ApsReportRecordsServiceImpl extends ServiceImpl<ApsReportRecordsDao
             if (!apsProcessOperationProcessEquDo.getStartingroll().equals(apsProcessOperationProcessEquDo.getReportroll())) {
             if (!apsProcessOperationProcessEquDo.getStartingroll().equals(apsProcessOperationProcessEquDo.getReportroll())) {
                 return R.error("此作业已开工,请刷新列表后重试");
                 return R.error("此作业已开工,请刷新列表后重试");
             }
             }
+            //如果计划开工卷数 - 已开工卷数-已取消卷数 <= 0,提示已开工
+            if (apsProcessOperationProcessEquDo.getPlanprocessrall() - apsProcessOperationProcessEquDo.getReportroll() - apsProcessOperationProcessEquDo.getCancelroll() <= 0) {
+                return R.error("此作业已全部开工完毕,请刷新列表后重试");
+            }
+            if (ObjectUtil.isNotEmpty(req.getInputBatchNumber())) {
+                if (ObjectUtil.isNotEmpty(apsProcessOperationProcessEquDo.getBachmaterialprocess())) {
+                    List<String> list1 = Arrays.asList(req.getInputBatchNumber().split(","));
+                    List<String> list2 = Arrays.asList(apsProcessOperationProcessEquDo.getBachmaterialprocess().split(","));
+                    for (String s : list1) {
+                        if (!list2.contains(s)) {
+                            return R.error("批次号不在待加工料卷批次号中或已被使用,请刷新列表后重试");
+                        }
+                    }
+                } else {
+                    return R.error("批次号不在待加工料卷批次号中或已被使用,请刷新列表后重试");
+                }
+            }
 
 
             //查询工序作业的详情
             //查询工序作业的详情
             ApsProcessOperationDo apsProcessOperationDo = apsProcessOperationService.getById(apsProcessOperationProcessEquDo.getProcessid());
             ApsProcessOperationDo apsProcessOperationDo = apsProcessOperationService.getById(apsProcessOperationProcessEquDo.getProcessid());
@@ -518,43 +535,46 @@ public class ApsReportRecordsServiceImpl extends ServiceImpl<ApsReportRecordsDao
                         .set(ApsWorkInProgressInventoryDo::getWorkinprocessstatus, "加工中")
                         .set(ApsWorkInProgressInventoryDo::getWorkinprocessstatus, "加工中")
                         .eq(ApsWorkInProgressInventoryDo::getBatchnumber, req.getInputBatchNumber())
                         .eq(ApsWorkInProgressInventoryDo::getBatchnumber, req.getInputBatchNumber())
                         .eq(ApsWorkInProgressInventoryDo::getDeleted, "0"));
                         .eq(ApsWorkInProgressInventoryDo::getDeleted, "0"));
+
+                List<ApsProcessOperationProcessEquDo> needUpdateProcessEqus = null;
+
                 /**
                 /**
                  * 如果该工序作业明细有前道工序作业明细,
                  * 如果该工序作业明细有前道工序作业明细,
                  * 则将前道工序作业明细的所有后道工序作业明细的待加工料卷批次号去掉“{批次号},”
                  * 则将前道工序作业明细的所有后道工序作业明细的待加工料卷批次号去掉“{批次号},”
                  */
                  */
                 if (ObjectUtil.isNotEmpty(apsProcessOperationProcessEquDo.getPreviousprocessesids())) {
                 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(req.getInputBatchNumber(), join);
-                    }
+                    needUpdateProcessEqus = 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(req.getInputBatchNumber(), join);
+//                    }
                 }
                 }
                 /**
                 /**
                  * 如果该工序作业明细没有前道工序作业明细,则该作业明细对应作业的所有作业明细的待加工料卷批次号去掉“{输入物料批次号},”
                  * 如果该工序作业明细没有前道工序作业明细,则该作业明细对应作业的所有作业明细的待加工料卷批次号去掉“{输入物料批次号},”
                  */
                  */
                 if (ObjectUtil.isEmpty(apsProcessOperationProcessEquDo.getPreviousprocessesids())) {
                 if (ObjectUtil.isEmpty(apsProcessOperationProcessEquDo.getPreviousprocessesids())) {
-                    List<ApsProcessOperationProcessEquDo> needUpdateProcessEqus = apsProcessOperationProcessEquService.list(new QueryWrapper<ApsProcessOperationProcessEquDo>().lambda().eq(ApsProcessOperationProcessEquDo::getProcessid, apsProcessOperationProcessEquDo.getProcessid()));
-                    List<ApsProcessOperationProcessEquDo> updateList = new LinkedList<>();
-                    //遍历所有第一道工序的明细
-                    for (ApsProcessOperationProcessEquDo updateProcessEqu : needUpdateProcessEqus) {
-                        String bachmaterialprocess = updateProcessEqu.getBachmaterialprocess();
-                        //如果存在被使用的批次号,则删除此批次号
-                        if (ObjectUtil.isNotEmpty(bachmaterialprocess)) {
-                            LinkedList<String> strings = new LinkedList<>(Arrays.asList(bachmaterialprocess.split(",")));
-                            if (strings.contains(req.getInputBatchNumber())) {
-                                strings.remove(req.getInputBatchNumber());
-                                ApsProcessOperationProcessEquDo equDo = new ApsProcessOperationProcessEquDo();
-                                equDo.setId(updateProcessEqu.getId());
-                                equDo.setBachmaterialprocess(String.join(",", strings));
-                                updateList.add(equDo);
-                            }
+                    needUpdateProcessEqus = apsProcessOperationProcessEquService.list(new QueryWrapper<ApsProcessOperationProcessEquDo>().lambda().eq(ApsProcessOperationProcessEquDo::getProcessid, apsProcessOperationProcessEquDo.getProcessid()));
+                }
+                List<ApsProcessOperationProcessEquDo> updateList = new LinkedList<>();
+                //遍历所有第一道工序的明细
+                for (ApsProcessOperationProcessEquDo updateProcessEqu : needUpdateProcessEqus) {
+                    String bachmaterialprocess = updateProcessEqu.getBachmaterialprocess();
+                    //如果存在被使用的批次号,则删除此批次号
+                    if (ObjectUtil.isNotEmpty(bachmaterialprocess)) {
+                        LinkedList<String> strings = new LinkedList<>(Arrays.asList(bachmaterialprocess.split(",")));
+                        if (strings.contains(req.getInputBatchNumber())) {
+                            strings.remove(req.getInputBatchNumber());
+                            ApsProcessOperationProcessEquDo equDo = new ApsProcessOperationProcessEquDo();
+                            equDo.setId(updateProcessEqu.getId());
+                            equDo.setBachmaterialprocess(String.join(",", strings));
+                            updateList.add(equDo);
                         }
                         }
                     }
                     }
-                    //更新
-                    if (ObjectUtil.isNotEmpty(updateList)) {
-                        apsProcessOperationProcessEquService.updateBatchById(updateList);
-                    }
+                }
+                //更新
+                if (ObjectUtil.isNotEmpty(updateList)) {
+                    apsProcessOperationProcessEquService.updateBatchById(updateList);
                 }
                 }
             }
             }
 
 
@@ -1201,8 +1221,23 @@ public class ApsReportRecordsServiceImpl extends ServiceImpl<ApsReportRecordsDao
             if (!apsProcessOperationProcessEquDo.getStartingroll().equals(apsProcessOperationProcessEquDo.getReportroll())) {
             if (!apsProcessOperationProcessEquDo.getStartingroll().equals(apsProcessOperationProcessEquDo.getReportroll())) {
                 return R.error("此作业已开工,请刷新列表后重试");
                 return R.error("此作业已开工,请刷新列表后重试");
             }
             }
-
-
+            //如果计划开工卷数 - 已开工卷数-已取消卷数 <= 0,提示已开工
+            if (apsProcessOperationProcessEquDo.getPlanprocessrall() - apsProcessOperationProcessEquDo.getReportroll() - apsProcessOperationProcessEquDo.getCancelroll() <= 0) {
+                return R.error("此作业已全部开工完毕,请刷新列表后重试");
+            }
+            if (ObjectUtil.isNotEmpty(req.getInputBatchNumberList())) {
+                if (ObjectUtil.isNotEmpty(apsProcessOperationProcessEquDo.getBachmaterialprocess())) {
+                    List<String> list1 = req.getInputBatchNumberList();
+                    List<String> list2 = Arrays.asList(apsProcessOperationProcessEquDo.getBachmaterialprocess().split(","));
+                    for (String s : list1) {
+                        if (!list2.contains(s)) {
+                            return R.error("批次号不在待加工料卷批次号中或已被使用,请刷新列表后重试");
+                        }
+                    }
+                } else {
+                    return R.error("批次号不在待加工料卷批次号中或已被使用,请刷新列表后重试");
+                }
+            }
 //        String useDeviceId = req.getUseDeviceId();
 //        String useDeviceId = req.getUseDeviceId();
 //        ApsProcessOperationProcessEquDo apsProcessOperationProcessEquDo = apsProcessOperationProcessEquService.getById(useDeviceId);
 //        ApsProcessOperationProcessEquDo apsProcessOperationProcessEquDo = apsProcessOperationProcessEquService.getById(useDeviceId);
             ApsProcessOperationDo apsProcessOperationDo = apsProcessOperationService.getById(apsProcessOperationProcessEquDo.getProcessid());
             ApsProcessOperationDo apsProcessOperationDo = apsProcessOperationService.getById(apsProcessOperationProcessEquDo.getProcessid());