Kaynağa Gözat

取消卷数优化

DLC 1 yıl önce
ebeveyn
işleme
adb656714c

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

@@ -1927,48 +1927,50 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
 
             //本道工序的作业明细
             List<ApsProcessOperationProcessEquDo> apsProcessOperationProcessEquDos = apsProcessOperationDao.getProcessOperationProcessEqus(apsProcessOperationDo.getId());
-            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;
+            if (cancelProcessOperationVo.getUpdatecuropration()) {
+                Integer equWaitCancelRoll = curcancelroll;//明细的待分配取消卷数
+                Integer curEquCancelRoll = 0;//作业明细本次取消卷数
+                for (ApsProcessOperationProcessEquDo processOperationProcessEquDo : apsProcessOperationProcessEquDos) {
+                    Integer tempRoll = processOperationProcessEquDo.getPlanprocessrall() - processOperationProcessEquDo.getStartingroll() - processOperationProcessEquDo.getCancelroll();
+                    if (tempRoll <= 0) {
+                        continue;
                     }
-                    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);
+                    if (equWaitCancelRoll > 0) {
+                        if (tempRoll >= equWaitCancelRoll) {
+                            curEquCancelRoll = equWaitCancelRoll;
                         } else {
-                            processOperationProcessEquDo.setWorkstatus(SaveConstans.JobStatus.JOBSTATUS_TO_BE_STARTING);
+                            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);
+                            }
                         }
+                    } else {
+                        break;
                     }
-                } else {
-                    break;
-                }
-                equWaitCancelRoll = equWaitCancelRoll - curEquCancelRoll;
+                    equWaitCancelRoll = equWaitCancelRoll - curEquCancelRoll;
 
-                apsProcessOperationProcessEquDoList.add(processOperationProcessEquDo);
+                    apsProcessOperationProcessEquDoList.add(processOperationProcessEquDo);
+                }
             }
 
             //作业计划开工时间=所有作业明细最早计划开工时间

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

@@ -175,7 +175,7 @@ public class ReportCheckServiceImpl implements ReportCheckService {
                 throw new RuntimeException("报工记录的批次号为空");
             }
             // inputBatchNum
-            int count = (int)Arrays.stream(batchnumber.split(",")).distinct().filter(StringUtils::isNotBlank).count();
+            int count = (int) Arrays.stream(batchnumber.split(",")).distinct().filter(StringUtils::isNotBlank).count();
             currentProcessOperationMainDo.setCheckoutroll(currentProcessOperationMainDo.getCheckoutroll() + count);
             currentProcessOperationEqu.setCheckoutroll(currentProcessOperationEqu.getCheckoutroll() + count);
         } else {
@@ -536,6 +536,7 @@ public class ReportCheckServiceImpl implements ReportCheckService {
             cancelProcessOperationVo.setCurcancelroll(unqualifiedCount);
             cancelProcessOperationVo.setApsprocessoperationdo(currentProcessOperationMainDo);
             cancelProcessOperationVo.setSetincancelroll(false);
+            cancelProcessOperationVo.setUpdatecuropration(false);
             apsProcessOperationService.cancelProcessOperation(cancelProcessOperationVo);
         }
         log.info("更新工序作业的输出物料和在制品相关信息结束");

+ 2 - 0
cx-aps/cx-aps-entity/src/main/java/com/rongwei/bsentity/vo/CancelProcessOperationVo.java

@@ -11,6 +11,8 @@ public class CancelProcessOperationVo {
     private Integer curcancelroll;
     //是否更新输入已取消卷数
     private Boolean setincancelroll = true;
+    //是否更新本道作业明细
+    private Boolean updatecuropration = true;
     //修改的作业
     private ApsProcessOperationDo apsprocessoperationdo;
 }