Forráskód Böngészése

aps-冷轧、退火重排

sucheng 5 hónapja
szülő
commit
ba4a0c26ab

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

@@ -155,7 +155,7 @@ public interface ApsBlankOrderDao extends BaseMapper<ApsBlankOrderDo> {
 
     String selectPlanEndProductionWorkshopsById(@Param("productionorderid") String productionorderid);
 
-    void updateFinishDateAboutProcessEqu(@Param("needScheduleDate") String needScheduleDate);
+    void updateFinishDateAboutProcessEqu(@Param("needScheduleDate") String needScheduleDate,@Param("tenantId") String tenantId);
 
     void removeLockNextDayProcessEqu(@Param("needScheduleDate") String needScheduleDate);
 

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

@@ -4173,14 +4173,14 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
             }
 
             //将实际完工时间大于明天的作业挪到实际完工时间
-            this.baseMapper.updateFinishDateAboutProcessEqu(needScheduleDate);
+            this.baseMapper.updateFinishDateAboutProcessEqu(needScheduleDate, CXCommonUtils.getCurrentUserFactoryId(null));
             //锁定所有 未锁定的 作业和作业明细
             apsProcessOperationProcessEquService.update(new LambdaUpdateWrapper<ApsProcessOperationProcessEquDo>()
-                    .set(ApsProcessOperationProcessEquDo::getLockmarkdetail,"y")
-                    .eq(ApsProcessOperationProcessEquDo::getLockmarkdetail,"n"));
+                    .set(ApsProcessOperationProcessEquDo::getLockmarkdetail, "y")
+                    .eq(ApsProcessOperationProcessEquDo::getLockmarkdetail, "n"));
             apsProcessOperationService.update(new LambdaUpdateWrapper<ApsProcessOperationDo>()
-                    .set(ApsProcessOperationDo::getLockmark,"y")
-                    .eq(ApsProcessOperationDo::getLockmark,"n"));
+                    .set(ApsProcessOperationDo::getLockmark, "y")
+                    .eq(ApsProcessOperationDo::getLockmark, "n"));
 //            //查询在重排时间前一天之后的所有作业明细信息,不包括:铸轧、成退、中退、小卷成退
 //            List<ApsProcessOperationProcessEquChongpaiVo> list = this.baseMapper.selectNeedRescheduleEqu(needScheduleDate, CXCommonUtils.getCurrentUserFactoryId(null));
             //排程设置

+ 18 - 4
cx-aps/cx-aps-common/src/main/resources/mybatis/ApsBlankOrderDao.xml

@@ -194,16 +194,30 @@
         aps_process_operation_process_equ apope
         join aps_process_operation apo on apo.id = apope.PROCESSID
         set
+        -- 如果已经完工,先根据实际完工时间计算和设置计划开工时间,再设置计划完工时间=实际完工时间
         apope.PLANSTARTDATE=IF(apope.ACTUALFINISHDATE IS NOT NULL,DATE_SUB(apope.ACTUALFINISHDATE,INTERVAL TIMESTAMPdiff(SECOND, apope.PLANSTARTDATE, apope.PLANENDDATE) SECOND), apope.PLANSTARTDATE),
-        apope.PLANENDDATE=IF(apope.ACTUALFINISHDATE IS NOT NULL, apope.ACTUALFINISHDATE, apope.PLANENDDATE),
+        apope.PLANENDDATE=IF(apope.ACTUALFINISHDATE IS NOT NULL, apope.ACTUALFINISHDATE, apope.PLANENDDATE)
+        where
+        apo.DELETED='0' and apope.deleted='0'
+        AND (apope.ACTUALSTARTDATE IS NOT NULL) -- 已经开工或完工
+        and (apope.ACTUALSTARTDATE &lt; apope.PLANSTARTDATE OR apope.ACTUALFINISHDATE &lt; apope.PLANENDDATE) -- 提前开工或完工
+        and apope.PLANENDDATE > #{needScheduleDate} -- 计划完工时间大于调度开始时间,即占用了调度时间
+        and apo.PROCESS != '铸轧'
+        and apope.TENANTID = #{tenantId};
+        update
+        aps_process_operation_process_equ apope
+        join aps_process_operation apo on apo.id = apope.PROCESSID
+        set
+        -- 如果没有完工,先根据实际开工时间计算和设置计划完工时间,再设置计划开工时间=实际开工时间
         apope.PLANENDDATE=IF(apope.ACTUALFINISHDATE IS NOT NULL, apope.PLANENDDATE, DATE_ADD(apope.ACTUALSTARTDATE,INTERVAL TIMESTAMPdiff(SECOND, apope.PLANSTARTDATE, apope.PLANENDDATE) SECOND)),
         apope.PLANSTARTDATE=IF(apope.ACTUALFINISHDATE IS NOT NULL,apope.PLANSTARTDATE,apope.ACTUALSTARTDATE)
         where
         apo.DELETED='0' and apope.deleted='0'
-        AND (apope.ACTUALSTARTDATE IS NOT NULL OR apope.ACTUALFINISHDATE IS NOT NULL)
-        and (apope.ACTUALSTARTDATE &lt; apope.PLANSTARTDATE OR apope.ACTUALFINISHDATE &lt; apope.PLANENDDATE)
-        and apope.PLANENDDATE > #{needScheduleDate}
+        AND (apope.ACTUALSTARTDATE IS NULL and apope.ACTUALFINISHDATE IS NOT NULL) -- 已经开工或完工
+        and (apope.ACTUALSTARTDATE &lt; apope.PLANSTARTDATE OR apope.ACTUALFINISHDATE &lt; apope.PLANENDDATE) -- 提前开工或完工
+        and apope.PLANENDDATE > #{needScheduleDate} -- 计划完工时间大于调度开始时间,即占用了调度时间
         and apo.PROCESS != '铸轧'
+        and apope.TENANTID = #{tenantId}
     </update>
     <update id="removeLockNextDayProcessEqu">
         with tomorroworder as(