Kaynağa Gözat

如果剩余待开工卷数<待加工料卷批次号数量,则去掉待加工料卷批次号最后多余的{待加工料卷批次号数量-剩余待开工卷数}个批次号;同时将这些批次号对应在制品退回备料库

DLC 8 ay önce
ebeveyn
işleme
f63c1dbcd1

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

@@ -104,4 +104,13 @@ public interface ApsProcessOperationDao extends BaseMapper<ApsProcessOperationDo
 
     @Select("SELECT * FROM aps_process_operation_process_equ WHERE DELETED = 0 AND ID in ('${nextIds}')")
     List<ApsProcessOperationProcessEquDo> getNextProcessOperationEqusByNextIds(@Param("nextIds") String nextIds);
+
+    @Select({" <script>",
+            "update aps_work_in_progress_inventory set WORKINPROCESSSTATUS='备料中',PLANMATERIALID=null where DELETED='0' and BLANKBATCHNUMBER in",
+            " <foreach collection=\"blankbatchnumbers\" item=\"blankbatchnumber\" index=\"index\" open=\"(\" close=\")\" separator=\",\"> ",
+            "  #{blankbatchnumbers}",
+            "</foreach>",
+            "</script>"})
+    void updateProgressInventory(@Param("blankbatchnumbers") List<String> blankbatchnumbers);
+
 }

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

@@ -2213,6 +2213,22 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
             calendar.add(Calendar.SECOND, addMinute.setScale(0, RoundingMode.UP).intValue());
             processOperationProcessEquDo.setPlanenddate(calendar.getTime());
         }
+        String[] bachmaterialprocessArr = processOperationProcessEquDo.getBachmaterialprocess().split(",");
+        if (processOperationProcessEquDo.getLeavewaitworkroll() < bachmaterialprocessArr.length) {
+            List<String> newpch = new ArrayList<>();
+            List<String> delpch = new ArrayList<>();
+            for (String bachmaterialprocess : bachmaterialprocessArr) {
+                if (newpch.size() <= processOperationProcessEquDo.getLeavewaitworkroll()) {
+                    newpch.add(bachmaterialprocess);
+                } else {
+                    delpch.add(bachmaterialprocess);
+                }
+            }
+            processOperationProcessEquDo.setBachmaterialprocess(String.join(",", newpch));
+            //将这些批次号对应在制品退回备料库
+            apsProcessOperationDao.updateProgressInventory(delpch);
+        }
+
         Integer leaveWaitJobRoll = processOperationProcessEquDo.getPlanprocessrall() - processOperationProcessEquDo.getReportroll() - processOperationProcessEquDo.getCancelroll();
         if (leaveWaitJobRoll == 0) {
             processOperationProcessEquDo.setClosestatus(SaveConstans.CloseStatus.COMPLETED);