Bläddra i källkod

取消作业更新优化

DLC 3 månader sedan
förälder
incheckning
d7f7fb8b4f

+ 3 - 0
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/dao/ApsProcessOperationDao.java

@@ -89,6 +89,9 @@ public interface ApsProcessOperationDao extends BaseMapper<ApsProcessOperationDo
     @Select("SELECT * FROM aps_process_operation_process_equ WHERE DELETED = 0 AND PROCESSID = #{processid} ${euqwhr} order by PLANSTARTDATE desc")
     List<ApsProcessOperationProcessEquDo> getProcessOperationProcessEqus(@Param("processid") String processid, @Param("euqwhr") String euqwhr);
 
+    @Select("SELECT * FROM aps_process_operation_process_equ WHERE DELETED = 0 AND PROCESSID = #{processid} order by PLANSTARTDATE desc")
+    List<ApsProcessOperationProcessEquDo> getProcessOperationProcessAllEqus(@Param("processid") String processid);
+
     @Select("SELECT * FROM aps_process_operation_process_equ WHERE DELETED = 0 AND PREVIOUSPROCESSESIDS=#{equId} order by PLANSTARTDATE desc")
     List<ApsProcessOperationProcessEquDo> getNextProcessOperationEqus(@Param("equId") String equId);
 

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

@@ -2147,34 +2147,38 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
             }
 
             //先更新本道作业明细取消卷数
+            List<ApsProcessOperationProcessEquDo> apsProcessOperationProcessAllEqus = apsProcessOperationDao.getProcessOperationProcessAllEqus(newOperDo.getId());
+            for (ApsProcessOperationProcessEquDo equDo : apsProcessOperationProcessAllEqus) {
+                //计算所有作业明细已取消卷数的合计
+                if (operationequrollsall == null) {
+                    operationequrollsall = new ArrayList<>();
+                }
+                boolean inlist = false;
+                for (ApsProcessOperationProcessEquDo operationProcessEquDo : operationequrollsall) {
+                    if (operationProcessEquDo.getProcessid().equals(newOperDo.getId()) && StringUtils.isNotBlank(operationProcessEquDo.getRoption()) && !operationProcessEquDo.getRoption().contains(equDo.getId())) {
+                        inlist = true;
+                        operationProcessEquDo.setCancelrollno(operationProcessEquDo.getCancelrollno() + equDo.getCancelrollno());//已取消卷数合计
+                        operationProcessEquDo.setInputunqualifiednum(operationProcessEquDo.getInputunqualifiednum() + equDo.getInputunqualifiednum());//输入不合格卷数合计
+                        operationProcessEquDo.setInputunqualifiedroll(operationProcessEquDo.getInputunqualifiedroll() + equDo.getInputunqualifiedroll());//输入已取消卷数合计
+                        operationProcessEquDo.setSecondroll(operationProcessEquDo.getSecondroll() + equDo.getSecondroll());//已借调卷数合计
+                    }
+                }
+                if (!inlist) {
+                    operationequrollsall.add(equDo);
+                }
+            }
+
             String euqwhr = "";
-//            if (StringUtils.isNotBlank(cancelProcessOperationVo.getProcessequid())) {
-//                euqwhr = "and ID='" + cancelProcessOperationVo.getProcessequid() + "'";
-//            }
+            if (StringUtils.isNotBlank(cancelProcessOperationVo.getProcessequid())) {
+                euqwhr = "and ID='" + cancelProcessOperationVo.getProcessequid() + "'";
+            }
             List<ApsProcessOperationProcessEquDo> apsProcessOperationProcessEquDos = apsProcessOperationDao.getProcessOperationProcessEqus(newOperDo.getId(), euqwhr);
-//            if (cancelProcessOperationVo.getUpdatecuropration()) {
+
             Integer equWaitCancelRoll = curcancelroll;//明细的待分配取消卷数
             Integer curEquCancelRoll = 0;//作业明细本次取消卷数
             for (ApsProcessOperationProcessEquDo processOperationProcessEquDo : apsProcessOperationProcessEquDos) {
                 Integer tempRoll = processOperationProcessEquDo.getPlanprocessrall() - processOperationProcessEquDo.getStartingroll() - processOperationProcessEquDo.getCancelroll();
-                if (tempRoll <= 0 || processOperationProcessEquDo.getClosestatus().equals("已完工") || processOperationProcessEquDo.getCancelroll() > 0) {
-                    //计算所有作业明细已取消卷数的合计
-                    if (operationequrollsall == null) {
-                        operationequrollsall = new ArrayList<>();
-                    }
-                    boolean inlist = false;
-                    for (ApsProcessOperationProcessEquDo operationProcessEquDo : operationequrollsall) {
-                        if (operationProcessEquDo.getProcessid().equals(newOperDo.getId()) && StringUtils.isNotBlank(operationProcessEquDo.getRoption()) && !operationProcessEquDo.getRoption().contains(processOperationProcessEquDo.getId())) {
-                            inlist = true;
-                            operationProcessEquDo.setCancelrollno(operationProcessEquDo.getCancelrollno() + processOperationProcessEquDo.getCancelrollno());//已取消卷数合计
-                            operationProcessEquDo.setInputunqualifiednum(operationProcessEquDo.getInputunqualifiednum() + processOperationProcessEquDo.getInputunqualifiednum());//输入不合格卷数合计
-                            operationProcessEquDo.setInputunqualifiedroll(operationProcessEquDo.getInputunqualifiedroll() + processOperationProcessEquDo.getInputunqualifiedroll());//输入已取消卷数合计
-                            operationProcessEquDo.setSecondroll(operationProcessEquDo.getSecondroll() + processOperationProcessEquDo.getSecondroll());//已借调卷数合计
-                        }
-                    }
-                    if (!inlist) {
-                        operationequrollsall.add(processOperationProcessEquDo);
-                    }
+                if (tempRoll <= 0 || processOperationProcessEquDo.getClosestatus().equals("已完工")) {
                     continue;
                 }
                 if (equWaitCancelRoll > 0 && cancelProcessOperationVo.getUpdatecuropration()) {
@@ -2190,10 +2194,11 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
                     cancelOperationProcessEquVo.setCancelreason(cancelProcessOperationVo.getCancelreason());
 //                    cancelOperationProcessEquVo.setOperationequcancelrollall(operationequrollsall);
                     cancelProcessOperationEqu(cancelOperationProcessEquVo);
+                } else {
+                    break;
                 }
                 equWaitCancelRoll = equWaitCancelRoll - curEquCancelRoll;
             }
-//            }
 
             newOperDo.setCancelroll(apsProcessOperationDo.getCancelroll());
             newOperDo.setInputunqualifiedroll(apsProcessOperationDo.getInputunqualifiedroll());