Ver código fonte

更新工序作业优化

DLC 1 ano atrás
pai
commit
8c57f6bf34

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

@@ -1363,7 +1363,6 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
                         }
                     }
                     apsProcessOperationDo.setPlanoutput(planoutsb.toString());
-                    apsProcessOperationDo.setInputunqualifiedroll(apsProcessOperationOutMaterDo.getFailrollnum());
 
                     apsProcessOperationDoList.add(apsProcessOperationDo);
                 }
@@ -1915,7 +1914,7 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
                                 cancelroll = processOperationDo.getLeavewaitworkroll();
                                 cancelProcessOperationVo1.setCurcancelroll(cancelroll);
                             }
-                            processOperationDo.setInputunqualifiedroll(processOperationDo.getInputunqualifiedroll() + cancelroll);
+                            processOperationDo.setInputunqualifiedroll(getInputCancelRoll(apsProcessOperationDo.getPlaninrall(), apsProcessOperationDo.getCancelroll(), apsProcessOperationOutMaterDo));
                             cancelProcessOperationVo1.setApsprocessoperationdo(processOperationDo);
                             cancelProcessOperationVo1.setSetcancelroll(cancelProcessOperationVo.getSetcancelroll());
                             cancelProcessOperation(cancelProcessOperationVo1);
@@ -2030,6 +2029,34 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
         }
     }
 
+    //获取输入已取消卷数
+    private Integer getInputCancelRoll(Integer planInRoll, Integer cancelRoll, ApsProcessOperationOutMaterDo outMaterDo) {
+        Integer inputCancelRoll = 0;
+        if (outMaterDo.getOutcancelroll() + outMaterDo.getFailrollnum() > outMaterDo.getPlanstockrollnum()) {
+            if (outMaterDo.getPlanstockrollnum() == 0 && outMaterDo.getPlanprodrollnum() == 0) {//没有计划备料卷数和计划成品卷数
+                inputCancelRoll = outMaterDo.getFailrollnum() + outMaterDo.getOutcancelroll();
+            } else if (outMaterDo.getPlanstockrollnum() > 0 && outMaterDo.getPlanprodrollnum() == 0) {//有计划备料卷数,无计划成品卷数
+                inputCancelRoll = outMaterDo.getFailrollnum() + outMaterDo.getOutcancelroll() - outMaterDo.getPlanstockrollnum();
+            } else if (outMaterDo.getPlanstockrollnum() == 0 && outMaterDo.getPlanprodrollnum() > 0) {//无计划备料卷数,有计划成品卷数
+                Integer tempRoll = planInRoll - cancelRoll - outMaterDo.getFailrollnum();
+                if (tempRoll < outMaterDo.getPlanprodrollnum()) {
+                    inputCancelRoll = planInRoll - outMaterDo.getPlanprodrollnum();
+                } else {
+                    inputCancelRoll = outMaterDo.getOutcancelroll() + outMaterDo.getFailrollnum();
+                }
+            } else {//有计划备料卷数,有计划成品卷数
+                Integer tempRoll = planInRoll - cancelRoll - outMaterDo.getFailrollnum();
+                if (tempRoll < outMaterDo.getPlanprodrollnum()) {
+                    inputCancelRoll = planInRoll - outMaterDo.getPlanprodrollnum() - outMaterDo.getPlanstockrollnum();
+                } else {
+                    inputCancelRoll = outMaterDo.getOutcancelroll() + outMaterDo.getFailrollnum() - outMaterDo.getPlanstockrollnum();
+                }
+            }
+        }
+
+        return inputCancelRoll;
+    }
+
     /*
     工艺步骤管理/输入物料描述
      */