Pārlūkot izejas kodu

取消作业更新优化

DLC 3 mēneši atpakaļ
vecāks
revīzija
cf40a70e10

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

@@ -2116,6 +2116,9 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
         return orderId;
     }
 
+    //作业及该作业明细的已取消卷数合计
+    private HashMap<String, Integer> operationequcancelrollall;
+
     /*
     取消和更新工序作业
      */
@@ -2127,7 +2130,8 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
             String craftrouteid = cancelProcessOperationVo.getCraftrouteid();
             Integer curcancelroll = cancelProcessOperationVo.getCurcancelroll();//作业本次取消卷数
             //作业及该作业明细的已取消卷数合计
-            HashMap<String, Integer> operationequcancelrollall = cancelProcessOperationVo.getOperationequcancelrollall();
+//            HashMap<String, Integer> operationequcancelrollall = cancelProcessOperationVo.getOperationequcancelrollall();
+            operationequcancelrollall = cancelProcessOperationVo.getOperationequcancelrollall();
             CancelOperationProcessEquVo cancelOperationProcessEquVo = new CancelOperationProcessEquVo();
 
             //本道工序作业
@@ -2177,7 +2181,7 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
                     cancelOperationProcessEquVo.setApsProcessOperationDo(apsProcessOperationDo);
                     cancelOperationProcessEquVo.setProcessOperationProcessEquDo(processOperationProcessEquDo);
                     cancelOperationProcessEquVo.setCancelreason(cancelProcessOperationVo.getCancelreason());
-                    cancelOperationProcessEquVo.setOperationequcancelrollall(operationequcancelrollall);
+//                    cancelOperationProcessEquVo.setOperationequcancelrollall(operationequcancelrollall);
                     cancelProcessOperationEqu(cancelOperationProcessEquVo);
                 } else {
                     break;
@@ -2186,20 +2190,20 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
             }
 //            }
 
+            Integer cancelrollall = ((operationequcancelrollall == null || operationequcancelrollall.get(newOperDo.getId()) == null) ? 0 : operationequcancelrollall.get(newOperDo.getId()));
             newOperDo.setCancelroll(apsProcessOperationDo.getCancelroll());
             newOperDo.setInputunqualifiedroll(apsProcessOperationDo.getInputunqualifiedroll());
             if (cancelProcessOperationVo.getCancelreason().equals("1")) {//借调或取消
                 newOperDo.setCancelroll(apsProcessOperationDo.getCancelroll() + curcancelroll);
             } else if (cancelProcessOperationVo.getCancelreason().equals("2")) {//输入取消
                 newOperDo.setInputunqualifiedroll(apsProcessOperationDo.getInputunqualifiedroll() + curcancelroll);
-                Integer cancelrollall = ((operationequcancelrollall == null || operationequcancelrollall.get(newOperDo.getId()) == null) ? 0 : operationequcancelrollall.get(newOperDo.getId()));
                 curcancelroll = curcancelroll - apsProcessOperationDo.getCancelroll() - cancelrollall;
                 newOperDo.setCancelroll(cancelrollall);
             } else if (cancelProcessOperationVo.getCancelreason().equals("3")) {//输入不合格
                 newOperDo.setInputunqualifiednum(apsProcessOperationDo.getInputunqualifiednum() + curcancelroll);
                 newOperDo.setInputunqualifiedroll(apsProcessOperationDo.getInputunqualifiedroll() + curcancelroll);
             }
-            newOperDo.setCancelrollsum(newOperDo.getCancelroll() + newOperDo.getInputunqualifiedroll());
+            newOperDo.setCancelrollsum(cancelrollall + newOperDo.getInputunqualifiedroll());
             newOperDo.setLeavewaitworkroll(apsProcessOperationDo.getPlanprocessrall() - apsProcessOperationDo.getStartingroll() - newOperDo.getCancelrollsum());
             Integer leaveWaitJobRoll = apsProcessOperationDo.getPlanprocessrall() - apsProcessOperationDo.getReportroll() - newOperDo.getCancelrollsum();
             newOperDo.setLeavewaitjobroll(leaveWaitJobRoll);
@@ -2252,7 +2256,7 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
                             cancelProcessOperationVo1.setCancelreason("2");
                         }
                         cancelProcessOperationVo1.setApsprocessoperationdo(processOperationDo);
-                        cancelProcessOperationVo1.setOperationequcancelrollall(cancelOperationProcessEquVo.getOperationequcancelrollall());
+                        cancelProcessOperationVo1.setOperationequcancelrollall(operationequcancelrollall);
                         cancelProcessOperation(cancelProcessOperationVo1);
                     }
                 }
@@ -2339,7 +2343,7 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
             processOperationProcessEquDo.setCancelrollno(processOperationProcessEquDo.getCancelrollno() + curEquCancelRoll);
         } else if (cancelreason.equals("2")) {//输入取消
             processOperationProcessEquDo.setInputunqualifiedroll(processOperationProcessEquDo.getInputunqualifiedroll() + curEquCancelRoll);
-            if (processOperationProcessEquDo.getCancelrollno() > 0) {
+            if (processOperationProcessEquDo.getCancelrollno() > 0) {//如果已取消卷数>0,则不要重复取消,本次取消卷数需要扣除已取消卷数
                 if (curEquCancelRoll > processOperationProcessEquDo.getCancelrollno()) {
                     processOperationProcessEquDo.setCancelrollno(0);
                     curEquCancelRoll = curEquCancelRoll - processOperationProcessEquDo.getCancelrollno();
@@ -2347,6 +2351,8 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
                     processOperationProcessEquDo.setCancelrollno(processOperationProcessEquDo.getCancelrollno() - curEquCancelRoll);
                     curEquCancelRoll = 0;
                 }
+            } else {
+                processOperationProcessEquDo.setCancelrollno(curEquCancelRoll);
             }
         } else if (cancelreason.equals("3")) {//输入不合格
             processOperationProcessEquDo.setInputunqualifiednum(processOperationProcessEquDo.getInputunqualifiednum() + curEquCancelRoll);
@@ -2364,7 +2370,7 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
         }
 
         //作业及该作业明细的已取消卷数合计
-        HashMap<String, Integer> operationequcancelrollall = cancelOperationProcessEquVo.getOperationequcancelrollall();
+//        HashMap<String, Integer> operationequcancelrollall = cancelOperationProcessEquVo.getOperationequcancelrollall();
         if (operationequcancelrollall == null) {
             operationequcancelrollall = new HashMap<>();
         }
@@ -2373,7 +2379,7 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
         } else {
             operationequcancelrollall.put(processOperationProcessEquDo.getProcessid(), processOperationProcessEquDo.getCancelrollno());
         }
-        cancelOperationProcessEquVo.setOperationequcancelrollall(operationequcancelrollall);
+//        cancelOperationProcessEquVo.setOperationequcancelrollall(operationequcancelrollall);
 
         processOperationProcessEquDo.setCancelroll(processOperationProcessEquDo.getCancelrollno() + processOperationProcessEquDo.getInputunqualifiedroll());
         processOperationProcessEquDo.setLeavewaitworkroll(processOperationProcessEquDo.getPlanprocessrall() - processOperationProcessEquDo.getStartingroll() - processOperationProcessEquDo.getCancelroll());
@@ -2454,7 +2460,7 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
                 }
                 CancelOperationProcessEquVo tempCancelOperationProcessEquVo = new CancelOperationProcessEquVo();
                 tempCancelOperationProcessEquVo.setCurEquCancelRoll((int) Math.floor((double) (curEquCancelRoll * processOperationEquDo.getPlanprocessrall()) / processOperationProcessEquDo.getPlanprocessrall()));
-                tempCancelOperationProcessEquVo.setApsProcessOperationDo(apsProcessOperationDo);
+                tempCancelOperationProcessEquVo.setApsProcessOperationDo(apsProcessOperationService.getById(processOperationEquDo.getProcessid()));
                 tempCancelOperationProcessEquVo.setProcessOperationProcessEquDo(processOperationEquDo);
                 tempCancelOperationProcessEquVo.setCancelreason(cancelreason);
                 tempCancelOperationProcessEquVo.setApsProcessOperationProcessEquDos(apsProcessOperationProcessEquDos);