Ver Fonte

aps-自动调度

sucheng há 6 meses atrás
pai
commit
a952cfc611

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

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

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

@@ -3961,7 +3961,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
 
         if (ObjectUtil.isNotEmpty(needScheduleDate)) {
             //将实际完工时间大于明天的作业挪到实际完工时间
-            this.baseMapper.updateFinishDateAboutProcessEqu();
+            this.baseMapper.updateFinishDateAboutProcessEqu(needScheduleDate);
             //解锁明天有开工作业明细的坯料计划的所有作业明细
             this.baseMapper.removeLockNextDayProcessEqu(needScheduleDate);
             //解锁后天开工的所有作业明细

+ 10 - 9
cx-aps/cx-aps-common/src/main/resources/mybatis/ApsBlankOrderDao.xml

@@ -191,16 +191,17 @@
     </update>
     <update id="updateFinishDateAboutProcessEqu">
         update
-            aps_process_operation_process_equ apope
-            join aps_process_operation apo on apo.id = apope.PROCESSID
-            set
-                apope.PLANSTARTDATE=DATE_SUB(apope.ACTUALFINISHDATE,INTERVAL TIMESTAMPdiff(SECOND, apope.PLANSTARTDATE, apope.PLANENDDATE) SECOND),
-                apope.PLANENDDATE=apope.ACTUALFINISHDATE
+        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.ACTUALSTARTDATE),
+        apope.PLANENDDATE=IF(apope.ACTUALFINISHDATE IS NOT NULL, apope.ACTUALFINISHDATE, DATE_ADD(apope.ACTUALSTARTDATE,INTERVAL TIMESTAMPdiff(SECOND, apope.PLANSTARTDATE, apope.PLANENDDATE) SECOND))
         where
-            apo.DELETED='0' and apope.deleted='0'
-          and apope.ACTUALFINISHDATE is not null
-          and  apope.PLANENDDATE > now()
-          and apo.PROCESS != '铸轧'
+        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 apo.PROCESS != '铸轧'
     </update>
     <update id="removeLockNextDayProcessEqu">
         with tomorroworder as(