Procházet zdrojové kódy

aps-冷轧、退火重排

sucheng před 5 měsíci
rodič
revize
c95a350e33

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

@@ -165,4 +165,7 @@ public interface ApsBlankOrderDao extends BaseMapper<ApsBlankOrderDo> {
     List<ApsProcessOperationProcessEquDo> selectNeedRescheduleEqu2(@Param("chongpaiStartDate") DateTime chongpaiStartDate, @Param("chongpaiEndDate") DateTime chongpaiEndDate, @Param("tenantId") String tenantId, @Param("workshopin") Integer workshopin, @Param("workshopcross") Integer workshopcross);
 
     List<ApsProcessOperationProcessEquDo> selectNeedRescheduleEqu3(@Param("chongpaiStartDate") DateTime chongpaiStartDate, @Param("chongpaiEndDate") DateTime chongpaiEndDate, @Param("tenantId") String tenantId, @Param("workshopin") Integer workshopin, @Param("workshopcross") Integer workshopcross);
+
+    void setLenZhaNextDay(@Param("tenantId") String tenantId, @Param("chongpaiStartDate") DateTime chongpaiStartDate, @Param("chongpaiEndDate") DateTime chongpaiEndDate);
+    void setTuiHuoNextDay(@Param("tenantId") String tenantId, @Param("chongpaiStartDate") DateTime chongpaiStartDate, @Param("chongpaiEndDate") DateTime chongpaiEndDate);
 }

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

@@ -4174,6 +4174,13 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
 
             //将实际完工时间大于明天的作业挪到实际完工时间
             this.baseMapper.updateFinishDateAboutProcessEqu(needScheduleDate);
+            //锁定所有 未锁定的 作业和作业明细
+            apsProcessOperationProcessEquService.update(new LambdaUpdateWrapper<ApsProcessOperationProcessEquDo>()
+                    .set(ApsProcessOperationProcessEquDo::getLockmarkdetail,"y")
+                    .eq(ApsProcessOperationProcessEquDo::getLockmarkdetail,"n"));
+            apsProcessOperationService.update(new LambdaUpdateWrapper<ApsProcessOperationDo>()
+                    .set(ApsProcessOperationDo::getLockmark,"y")
+                    .eq(ApsProcessOperationDo::getLockmark,"n"));
 //            //查询在重排时间前一天之后的所有作业明细信息,不包括:铸轧、成退、中退、小卷成退
 //            List<ApsProcessOperationProcessEquChongpaiVo> list = this.baseMapper.selectNeedRescheduleEqu(needScheduleDate, CXCommonUtils.getCurrentUserFactoryId(null));
             //排程设置
@@ -4272,6 +4279,9 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
                         .in(ApsProcessOperationDo::getId, needUnLockProcessIdList)
         );
 
+        //将调度时间范围内还未解锁的退火作业全部往后推一天
+        this.baseMapper.setTuiHuoNextDay(CXCommonUtils.getCurrentUserFactoryId(null),chongpaiStartDate,chongpaiEndDate);
+
         //重新排程
         String scheduletype = apsScheduleConfigDo.getScheduletype();
         ApsTypeVo apsTypeVo = BeanUtil.toBean(scheduletype, ApsTypeVo.class);
@@ -4432,6 +4442,9 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
                         .in(ApsProcessOperationDo::getId, needUnLockProcessIdList)
         );
 
+        //将调度时间范围内还未解锁的冷轧作业全部往后推一天
+        this.baseMapper.setLenZhaNextDay(CXCommonUtils.getCurrentUserFactoryId(null),chongpaiStartDate,chongpaiEndDate);
+
         String scheduletype = apsScheduleConfigDo.getScheduletype();
         ApsTypeVo apsTypeVo = BeanUtil.toBean(scheduletype, ApsTypeVo.class);
         apsTypeVo.setMixIf("default");

+ 30 - 0
cx-aps/cx-aps-common/src/main/resources/mybatis/ApsBlankOrderDao.xml

@@ -232,6 +232,36 @@
         and apo.PROCESS != '铸轧' and apope.WORKSTATUS = '待开工'
         and apope.PLANSTARTDATE >= DATE_ADD(#{needScheduleDate},INTERVAL 1 DAY) and apope.PLANSTARTDATE &lt; DATE_ADD(#{needScheduleDate},INTERVAL 2 DAY)
     </update>
+    <update id="setLenZhaNextDay">
+        update
+            aps_process_operation apo
+                JOIN aps_process_operation_process_equ apope ON apo.ID = apope.PROCESSID AND apope.DELETED = 0
+        set
+            apope.PLANSTARTDATE=DATE_ADD(apope.PLANSTARTDATE, INTERVAL 1 DAY),
+            apope.PLANENDDATE=DATE_ADD(apope.PLANENDDATE, INTERVAL 1 DAY)
+        WHERE
+            apo.DELETED = '0'
+          and apope.TENANTID = #{tenantId}
+          and apo.PROCESS not in ('铸轧','中退','成退','小卷成退')
+          and apope.WORKSTATUS = '待开工'
+          and apope.PLANSTARTDATE between #{chongpaiStartDate} and #{chongpaiEndDate} -- 调度开始时间之后计划开工
+          and apope.LOCKMARKDETAIL = 'y'
+    </update>
+    <update id="setTuiHuoNextDay">
+        update
+            aps_process_operation apo
+                JOIN aps_process_operation_process_equ apope ON apo.ID = apope.PROCESSID AND apope.DELETED = 0
+        set
+            apope.PLANSTARTDATE=DATE_ADD(apope.PLANSTARTDATE, INTERVAL 1 DAY),
+            apope.PLANENDDATE=DATE_ADD(apope.PLANENDDATE, INTERVAL 1 DAY)
+        WHERE
+            apo.DELETED = '0'
+          and apope.TENANTID = #{tenantId}
+          and apo.PROCESS in ('中退','成退','小卷成退')
+          and apope.WORKSTATUS = '待开工'
+          and apope.PLANSTARTDATE between #{chongpaiStartDate} and #{chongpaiEndDate} -- 调度开始时间之后计划开工
+          and apope.LOCKMARKDETAIL = 'y'
+    </update>
     <select id="checkConflictByBlankId" resultType="java.lang.Integer">
         select count(*) from aps_process_operation_process_equ
             <where>