Browse Source

aps-校验工序作业修改

sucheng 7 months ago
parent
commit
5652f99e32

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

@@ -1233,28 +1233,36 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
                     return R.error(apsProcessOperationDo.getProcess() + apsProcessOperationDo.getProcessname() + "的输入物料不存在,请重新选择");
                 }
             }
-        }
 
-        //检查该工序作业所有输出物料,如果(计划输出卷数-计划备料卷数-计划成品卷数)不等于所有后道工序作业计划加工卷数合计;错误提示:{工序}{工序显示名}的{输出物料} 计划输出卷数-计划备料卷数-计划成品卷数必须等于所有后道工序作业计划加工卷数合计
-        //遍历输出物料
-        for (ApsProcessOperationOutMaterDo apsProcessOperationOutMaterDo : apsProcessOperationOutMaterList) {
-            //查询使用此输出物料的工序作业
-            List<ApsProcessOperationDo> processList = apsProcessOperationList.stream().filter(item -> ObjectUtil.isNotEmpty(item.getPlaninputid()) && item.getPlaninputid().equals(apsProcessOperationOutMaterDo.getId())).collect(Collectors.toList());
-            if (processList.size() > 0) {
+            //查询该工序作业的所有输出物料
+            List<ApsProcessOperationOutMaterDo> myOutMaterList = apsProcessOperationOutMaterList.stream().filter(item -> item.getMainid().equals(apsProcessOperationDo.getId())).collect(Collectors.toList());
+            //检查该工序作业所有输出物料,如果(计划输出卷数-计划备料卷数-计划成品卷数)不等于所有后道工序作业计划加工卷数合计;错误提示:{工序}{工序显示名}的{输出物料} 计划输出卷数-计划备料卷数-计划成品卷数必须等于所有后道工序作业计划加工卷数合计
+            //遍历输出物料
+            for (ApsProcessOperationOutMaterDo apsProcessOperationOutMaterDo : myOutMaterList) {
                 //遍历工序作业,计算 计划加工卷数合计
-                int planProcessRollAll = 0;
-                for (ApsProcessOperationDo apsProcessOperationDo : processList) {
-                    planProcessRollAll += apsProcessOperationDo.getPlanprocessrall();
-                }
+                int planProcessRollAll = apsProcessOperationDo.getPlanprocessrall();
                 //计算输出物料的 (计划输出卷数-计划备料卷数-计划成品卷数)值
                 int outputRollAll = apsProcessOperationOutMaterDo.getPlanrollnum() - apsProcessOperationOutMaterDo.getPlanstockrollnum() - apsProcessOperationOutMaterDo.getPlanprodrollnum();
-                if (planProcessRollAll != outputRollAll) {
-                    //根据输出物料查询其工序信息
-                    ApsProcessOperationDo apsProcessOperationDo = apsProcessOperationList.stream().filter(item -> item.getId().equals(apsProcessOperationOutMaterDo.getMainid())).findFirst().get();
-                    return R.error(apsProcessOperationDo.getProcess() + apsProcessOperationDo.getProcessname() + "的" + apsProcessOperationOutMaterDo.getOutputmaterial() + " 计划输出卷数-计划备料卷数-计划成品卷数必须等于所有后道工序作业计划加工卷数合计");
+                //如果计划流转卷数不等于(计划输出卷数-计划备料卷数-计划成品卷数),错误提示:{工序}{工序显示名}的{输出物料} 计划流转卷数不正确
+                if (outputRollAll != apsProcessOperationOutMaterDo.getPlanmoverollnum()) {
+                    return R.error(apsProcessOperationDo.getProcess() + apsProcessOperationDo.getProcessname() + "的" + apsProcessOperationOutMaterDo.getOutputmaterial() + " 计划流转卷数不正确");
                 }
+                //如果有后道工序作业,并且计划流转卷数不等于所有后道工序作业计划加工卷数合计;错误提示:{工序}{工序显示名}的{输出物料} 计划流转卷数必须等于所有后道工序作业计划加工卷数合计;
+                if (ObjectUtil.isNotEmpty(apsProcessOperationDo.getNextprocessid())) {
+                    if (planProcessRollAll != outputRollAll) {
+                        return R.error(apsProcessOperationDo.getProcess() + apsProcessOperationDo.getProcessname() + "的" + apsProcessOperationOutMaterDo.getOutputmaterial() + " 计划输出卷数-计划备料卷数-计划成品卷数必须等于所有后道工序作业计划加工卷数合计");
+                    }
+                } else {
+                    //如果没有后道作业,并且计划流转卷数>0,则错误提示:{工序}{工序显示名}的{输出物料}的计划输出卷数必须等于计划备料卷数+计划成品卷数
+                    if (outputRollAll > 0) {
+                        return R.error(apsProcessOperationDo.getProcess() + apsProcessOperationDo.getProcessname() + "的" + apsProcessOperationOutMaterDo.getOutputmaterial() + " 的计划输出卷数必须等于计划备料卷数+计划成品卷数");
+                    }
+                }
+
             }
+
         }
+
         //校验工序作业明细的加工设备和加工车间的代号是否为空
         if (checkDeviceAndOrgCode) {
             //查询坯料计划对应的所有工序作业明细