Browse Source

取消作业更新优化

DLC 3 months ago
parent
commit
55e181f483

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

@@ -89,8 +89,8 @@ 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 PROCESSID = #{processid} ${euqnowhr}")
+    List<ApsProcessOperationProcessEquDo> getProcessOperationProcessAllEqus(@Param("processid") String processid, @Param("euqnowhr") String euqnowhr);
 
     @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);

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

@@ -2146,31 +2146,6 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
                 return R.error("该作业生产状态已被其他人修改,请刷新页面后重新进入");
             }
 
-            //先更新本道作业明细取消卷数
-            List<ApsProcessOperationProcessEquDo> apsProcessOperationProcessAllEqus = apsProcessOperationDao.getProcessOperationProcessAllEqus(newOperDo.getId());
-            for (ApsProcessOperationProcessEquDo equDo : apsProcessOperationProcessAllEqus) {
-                if (equDo.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(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) {
-                        equDo.setRoption(equDo.getId());//标记
-                        operationequrollsall.add(equDo);
-                    }
-                }
-            }
-
             String euqwhr = "";
             if (StringUtils.isNotBlank(cancelProcessOperationVo.getProcessequid())) {
                 euqwhr = "and ID='" + cancelProcessOperationVo.getProcessequid() + "'";
@@ -2179,6 +2154,7 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
 
             Integer equWaitCancelRoll = curcancelroll;//明细的待分配取消卷数
             Integer curEquCancelRoll = 0;//作业明细本次取消卷数
+            String euqnowhr = "";
             for (ApsProcessOperationProcessEquDo processOperationProcessEquDo : apsProcessOperationProcessEquDos) {
                 Integer tempRoll = processOperationProcessEquDo.getPlanprocessrall() - processOperationProcessEquDo.getStartingroll() - processOperationProcessEquDo.getCancelroll();
                 if (tempRoll <= 0 || processOperationProcessEquDo.getClosestatus().equals("已完工")) {
@@ -2191,6 +2167,7 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
                         curEquCancelRoll = tempRoll;
                     }
                     //取消和更新作业明细
+                    euqnowhr+=processOperationProcessEquDo.getId()+",";
                     cancelOperationProcessEquVo.setCurEquCancelRoll(curEquCancelRoll);
                     cancelOperationProcessEquVo.setApsProcessOperationDo(apsProcessOperationDo);
                     cancelOperationProcessEquVo.setProcessOperationProcessEquDo(processOperationProcessEquDo);
@@ -2203,6 +2180,34 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
                 equWaitCancelRoll = equWaitCancelRoll - curEquCancelRoll;
             }
 
+            //获取其他明细的取消卷数合计
+            if(euqnowhr!=""){
+                euqnowhr="and ID not in('"+euqnowhr.substring(0, euqnowhr.length() - 1).replace(",","','")+"')";
+            }
+            List<ApsProcessOperationProcessEquDo> apsProcessOperationProcessAllEqus = apsProcessOperationDao.getProcessOperationProcessAllEqus(newOperDo.getId(),euqnowhr);
+            for (ApsProcessOperationProcessEquDo equDo : apsProcessOperationProcessAllEqus) {
+                if (equDo.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(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) {
+                        equDo.setRoption(equDo.getId());//标记
+                        operationequrollsall.add(equDo);
+                    }
+                }
+            }
+
             newOperDo.setCancelroll(apsProcessOperationDo.getCancelroll());
             newOperDo.setInputunqualifiedroll(apsProcessOperationDo.getInputunqualifiedroll());
 //            if (cancelProcessOperationVo.getCancelreason().equals("1")) {//借调