DLC пре 11 месеци
родитељ
комит
d1aa80a62f

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

@@ -2033,7 +2033,26 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
             List<ApsProcessOperationProcessEquDo> apsProcessOperationProcessEquDos = apsProcessOperationDao.getProcessOperationProcessEqus(apsProcessOperationDo.getId());
             R cancelEqu = R.ok();
             if (cancelProcessOperationVo.getUpdatecuropration()) {
-                cancelEqu = cancelProcessOperationEqu(curcancelroll, apsProcessOperationDo, apsProcessOperationProcessEquDos);
+                Integer equWaitCancelRoll = curcancelroll;//明细的待分配取消卷数
+                Integer curEquCancelRoll = 0;//作业明细本次取消卷数
+                for (ApsProcessOperationProcessEquDo processOperationProcessEquDo : apsProcessOperationProcessEquDos) {
+                    Integer tempRoll = processOperationProcessEquDo.getPlanprocessrall() - processOperationProcessEquDo.getStartingroll() - processOperationProcessEquDo.getCancelroll();
+                    if (tempRoll <= 0) {
+                        continue;
+                    }
+                    if (equWaitCancelRoll > 0) {
+                        if (tempRoll >= equWaitCancelRoll) {
+                            curEquCancelRoll = equWaitCancelRoll;
+                        } else {
+                            curEquCancelRoll = tempRoll;
+                        }
+                        //取消和更新作业明细
+                        cancelProcessOperationEqu(curEquCancelRoll, apsProcessOperationDo, processOperationProcessEquDo);
+                    } else {
+                        break;
+                    }
+                    equWaitCancelRoll = equWaitCancelRoll - curEquCancelRoll;
+                }
             }
 
             //作业计划开工时间=所有作业明细最早计划开工时间
@@ -2093,61 +2112,37 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
 
     /*
     分配和取消作业明细
-    curcancelroll:明细的待分配取消卷数
+    curEquCancelRoll:作业明细本次取消卷数
     apsProcessOperationDo:作业
-    apsProcessOperationProcessEquDos作业的所有作业明细
+    processOperationProcessEquDo:作业明细
      */
     @Transactional
-    public R cancelProcessOperationEqu(Integer curcancelroll, ApsProcessOperationDo apsProcessOperationDo, List<ApsProcessOperationProcessEquDo> apsProcessOperationProcessEquDos) {
-        List<ApsProcessOperationProcessEquDo> apsProcessOperationProcessEquDoList = new ArrayList<>();
-        Integer equWaitCancelRoll = curcancelroll;//明细的待分配取消卷数
-        Integer curEquCancelRoll = 0;//作业明细本次取消卷数
-        for (ApsProcessOperationProcessEquDo processOperationProcessEquDo : apsProcessOperationProcessEquDos) {
-            Integer tempRoll = processOperationProcessEquDo.getPlanprocessrall() - processOperationProcessEquDo.getStartingroll() - processOperationProcessEquDo.getCancelroll();
-            if (tempRoll <= 0) {
-                continue;
-            }
-            if (equWaitCancelRoll > 0) {
-                if (tempRoll >= equWaitCancelRoll) {
-                    curEquCancelRoll = equWaitCancelRoll;
-                } else {
-                    curEquCancelRoll = tempRoll;
-                }
-                processOperationProcessEquDo.setCancelroll(processOperationProcessEquDo.getCancelroll() + curEquCancelRoll);
-                if (processOperationProcessEquDo.getPlanprocessrall() == processOperationProcessEquDo.getCancelroll()) {
-                    processOperationProcessEquDo.setProcessdevice("");
-                    processOperationProcessEquDo.setProcessdeviceid("");
-                } else if (processOperationProcessEquDo.getPlanprocessrall() > processOperationProcessEquDo.getCancelroll()) {
-                    BigDecimal addMinute = apsProcessOperationDo.getOnceprocessmin().multiply(new BigDecimal(60)).multiply(new BigDecimal(processOperationProcessEquDo.getPlanprocessrall() - processOperationProcessEquDo.getCancelroll()));//秒向上取整
-                    Calendar calendar = Calendar.getInstance();
-                    calendar.setTime(processOperationProcessEquDo.getPlanstartdate());
-                    calendar.add(Calendar.SECOND, addMinute.setScale(0, RoundingMode.UP).intValue());
-                    processOperationProcessEquDo.setPlanenddate(calendar.getTime());
-                }
-                if (processOperationProcessEquDo.getPlanprocessrall() - processOperationProcessEquDo.getReportroll() - processOperationProcessEquDo.getCancelroll() == 0) {
-                    processOperationProcessEquDo.setClosestatus(SaveConstans.CloseStatus.COMPLETED);
-                    processOperationProcessEquDo.setActualfinishdate(DateUtil.date());
-                    processOperationProcessEquDo.setWorkstatus(SaveConstans.JobStatus.JOBSTATUS_TO_BE_END);
-                } else if (processOperationProcessEquDo.getPlanprocessrall() - processOperationProcessEquDo.getReportroll() - processOperationProcessEquDo.getCancelroll() > 0) {
-                    processOperationProcessEquDo.setClosestatus(SaveConstans.CloseStatus.UNFINISHED);
-                    if (processOperationProcessEquDo.getStartingroll() == 0) {
-                        processOperationProcessEquDo.setWorkstatus(SaveConstans.JobStatus.JOBSTATUS_TO_BE_START);
-                    } else {
-                        processOperationProcessEquDo.setWorkstatus(SaveConstans.JobStatus.JOBSTATUS_TO_BE_STARTING);
-                    }
-                }
+    public R cancelProcessOperationEqu(Integer curEquCancelRoll, ApsProcessOperationDo apsProcessOperationDo, ApsProcessOperationProcessEquDo processOperationProcessEquDo) {
+        processOperationProcessEquDo.setCancelroll(processOperationProcessEquDo.getCancelroll() + curEquCancelRoll);
+        if (processOperationProcessEquDo.getPlanprocessrall() == processOperationProcessEquDo.getCancelroll()) {
+            processOperationProcessEquDo.setProcessdevice("");
+            processOperationProcessEquDo.setProcessdeviceid("");
+        } else if (processOperationProcessEquDo.getPlanprocessrall() > processOperationProcessEquDo.getCancelroll()) {
+            BigDecimal addMinute = apsProcessOperationDo.getOnceprocessmin().multiply(new BigDecimal(60)).multiply(new BigDecimal(processOperationProcessEquDo.getPlanprocessrall() - processOperationProcessEquDo.getCancelroll()));//秒向上取整
+            Calendar calendar = Calendar.getInstance();
+            calendar.setTime(processOperationProcessEquDo.getPlanstartdate());
+            calendar.add(Calendar.SECOND, addMinute.setScale(0, RoundingMode.UP).intValue());
+            processOperationProcessEquDo.setPlanenddate(calendar.getTime());
+        }
+        if (processOperationProcessEquDo.getPlanprocessrall() - processOperationProcessEquDo.getReportroll() - processOperationProcessEquDo.getCancelroll() == 0) {
+            processOperationProcessEquDo.setClosestatus(SaveConstans.CloseStatus.COMPLETED);
+            processOperationProcessEquDo.setActualfinishdate(DateUtil.date());
+            processOperationProcessEquDo.setWorkstatus(SaveConstans.JobStatus.JOBSTATUS_TO_BE_END);
+        } else if (processOperationProcessEquDo.getPlanprocessrall() - processOperationProcessEquDo.getReportroll() - processOperationProcessEquDo.getCancelroll() > 0) {
+            processOperationProcessEquDo.setClosestatus(SaveConstans.CloseStatus.UNFINISHED);
+            if (processOperationProcessEquDo.getStartingroll() == 0) {
+                processOperationProcessEquDo.setWorkstatus(SaveConstans.JobStatus.JOBSTATUS_TO_BE_START);
             } else {
-                break;
+                processOperationProcessEquDo.setWorkstatus(SaveConstans.JobStatus.JOBSTATUS_TO_BE_STARTING);
             }
-            equWaitCancelRoll = equWaitCancelRoll - curEquCancelRoll;
-
-            apsProcessOperationProcessEquDoList.add(processOperationProcessEquDo);
         }
 
-        boolean bool = true;
-        if (apsProcessOperationProcessEquDoList.size() > 0) {
-            bool = apsProcessOperationProcessEquService.saveOrUpdateBatch(apsProcessOperationProcessEquDoList);
-        }
+        boolean bool = apsProcessOperationProcessEquService.saveOrUpdate(processOperationProcessEquDo);
         if (bool) {
             return R.ok();
         } else {