Browse Source

aps-工序作业计划流转卷数校验

sucheng 7 months ago
parent
commit
f045e7f20f

+ 14 - 0
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ApsProcessOperationServiceImpl.java

@@ -1248,7 +1248,21 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
                     return R.error(apsProcessOperationDo.getProcess() + apsProcessOperationDo.getProcessname() + "的" + apsProcessOperationOutMaterDo.getOutputmaterial() + " 计划流转卷数不正确");
                 }
                 //如果有后道工序作业,并且计划流转卷数不等于所有后道工序作业计划加工卷数合计;错误提示:{工序}{工序显示名}的{输出物料} 计划流转卷数必须等于所有后道工序作业计划加工卷数合计;
+                //是否有后道工序
+                boolean haveNextProcess = false;
+                //有后道工序作业,并且后道工序作业的输入物料ID=当前工序的输出物料ID
                 if (ObjectUtil.isNotEmpty(apsProcessOperationDo.getNextprocessid())) {
+                    for (String s : apsProcessOperationDo.getNextprocessid().split(",")) {
+                        ApsProcessOperationDo nextProcessOperationDo = apsProcessOperationList.stream().filter(item -> item.getId().equals(s)).findFirst().orElse(null);
+                        if (ObjectUtil.isNotEmpty(nextProcessOperationDo)
+                                //后道工序作业的输入物料ID=当前工序的输出物料ID
+                                && nextProcessOperationDo.getPlaninputid().equals(apsProcessOperationOutMaterDo.getId())) {
+                            haveNextProcess = true;
+                            break;
+                        }
+                    }
+                }
+                if (haveNextProcess) {
                     if (planProcessRollAll != outputRollAll) {
                         return R.error(apsProcessOperationDo.getProcess() + apsProcessOperationDo.getProcessname() + "的" + apsProcessOperationOutMaterDo.getOutputmaterial() + " 计划流转卷数必须等于所有后道工序作业计划加工卷数合计");
                     }

+ 20 - 2
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ApsProductionOrderServiceImpl.java

@@ -1059,13 +1059,31 @@ public class ApsProductionOrderServiceImpl extends ServiceImpl<ApsProductionOrde
         } catch (Exception e) {
             log.error("生成大屏中间数据失败");
         }
-        //
+        //订单完成情况表格
+        try {
+            log.info("开始生成大屏订单完成情况表格");
+            setOrderFinishTable();
+        } catch (Exception e) {
+            log.error("生成大屏订单完成情况表格失败");
+        }
 
 
 
     }
 
-    //生成大屏中间部分数据
+    /**
+     * 生成订单完成情况表格
+     */
+    private void setOrderFinishTable() {
+        //根据工厂分别生成指定数据
+        SaveConstans.COMPANY_MAP.forEach((key, value) -> {
+//            this.baseMapper.selectOrderTable(key);
+        });
+    }
+
+    /**
+     * 生成大屏中间部分数据
+     */
     private void setMiddleData() {
         //存储最终数据
         List<ApsReportYearAndMonth> resInsertList = new LinkedList<>();