Browse Source

aps-冷轧、退火重排

sucheng 5 months ago
parent
commit
24e30bb368
1 changed files with 18 additions and 12 deletions
  1. 18 12
      cx-aps/cx-aps-common/src/main/resources/mybatis/ApsBlankOrderDao.xml

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

@@ -426,7 +426,7 @@
     <select id="selectNeedRescheduleEqu2"
             resultType="com.rongwei.bsentity.domain.ApsProcessOperationProcessEquDo">
         SELECT apope.*
-        FROM
+        from
             aps_process_operation_process_equ apope
                 join aps_process_operation apo on apo.ID = apope.PROCESSID
                 left join aps_process_operation_process_equ preapope on apope.PREVIOUSPROCESSESIDS = preapope.id AND preapope.DELETED = '0'
@@ -435,19 +435,22 @@
           and apope.TENANTID = #{tenantId}
           and apo.PROCESS in ('中退','成退','小卷成退')
           and apope.WORKSTATUS = '待开工'
-          and apope.PLANSTARTDATE >= #{chongpaiStartDate} -- 调度开始时间之后开工
-          AND (apope.PLANSTARTDATE &lt;= #{chongpaiEndDate} -- 调度结束时间之前开工
-            OR date_add(preapope.PLANENDDATE, -- 前道计划完工时间 + 流转时间
-            INTERVAL GREATEST(ifnull(apo.MINFLOWWAITMIN,0), -- 最小流转等待时间
-            if(apope.PROCESSWORKSHOPID!=preapope.PROCESSWORKSHOPID,#{workshopcross}, -- 车间流转时间
-            if(apope.PROCESSDEVICEID!=preapope.PROCESSDEVICEID,#{workshopin},0))) MINUTE -- 机台流转时间
-            ) &lt;= #{chongpaiEndDate} -- 调度结束时间之前可以开工
+          and apope.PLANSTARTDATE >= #{chongpaiStartDate} -- 调度开始时间之后计划开工
+          AND (ifnull(apope.PREVIOUSPROCESSESIDS,'')='' -- 没有前道
+                   and apope.PLANSTARTDATE &lt; DATE_ADD(#{chongpaiStartDate}, INTERVAL 3 DAY) -- 调度开始时间+5天内计划开工
+            OR ifnull(apope.PREVIOUSPROCESSESIDS,'')!='' -- 有前道
+                   and preapope.PLANSTARTDATE &lt;= #{chongpaiStartDate} -- 前道计划开工时间在调度开始时间之前,表示该作业是需要调度的作业的第一道
+                   and date_add(preapope.PLANENDDATE, -- 前道计划完工时间 + 流转时间 小于 调度结束时间
+                                INTERVAL GREATEST(ifnull(apo.MINFLOWWAITMIN,0), -- 最小流转等待时间
+                                                  if(apope.PROCESSWORKSHOPID!=preapope.PROCESSWORKSHOPID,#{workshopcross}, -- 车间流转时间
+                                                     if(apope.PROCESSDEVICEID!=preapope.PROCESSDEVICEID,#{workshopin},0))) MINUTE -- 机台流转时间
+                       ) &lt;= #{chongpaiEndDate} -- 调度结束时间之前可以开工
             )
     </select>
     <select id="selectNeedRescheduleEqu3"
             resultType="com.rongwei.bsentity.domain.ApsProcessOperationProcessEquDo">
         SELECT apope.*
-        FROM
+        from
         aps_process_operation_process_equ apope
         join aps_process_operation apo on apo.ID = apope.PROCESSID
         left join aps_process_operation_process_equ preapope on apope.PREVIOUSPROCESSESIDS = preapope.id AND preapope.DELETED = '0'
@@ -456,9 +459,12 @@
         and apope.TENANTID = #{tenantId}
         and apo.PROCESS not in ('铸轧','中退','成退','小卷成退')
         and apope.WORKSTATUS = '待开工'
-        and apope.PLANSTARTDATE >= #{chongpaiStartDate} -- 调度开始时间之后开工
-        AND (apope.PLANSTARTDATE &lt;= #{chongpaiEndDate} -- 调度结束时间之前开工
-        OR date_add(preapope.PLANENDDATE, -- 前道计划完工时间 + 流转时间
+        and apope.PLANSTARTDATE >= #{chongpaiStartDate} -- 调度开始时间之后计划开工
+        AND (ifnull(apope.PREVIOUSPROCESSESIDS,'')='' -- 没有前道
+        and apope.PLANSTARTDATE &lt; DATE_ADD(#{chongpaiStartDate}, INTERVAL 3 DAY) -- 调度开始时间+5天内计划开工
+        OR ifnull(apope.PREVIOUSPROCESSESIDS,'')!='' -- 有前道
+        and preapope.PLANSTARTDATE &lt;= #{chongpaiStartDate} -- 前道计划开工时间在调度开始时间之前,表示该作业是需要调度的作业的第一道
+        and date_add(preapope.PLANENDDATE, -- 前道计划完工时间 + 流转时间 小于 调度结束时间
         INTERVAL GREATEST(ifnull(apo.MINFLOWWAITMIN,0), -- 最小流转等待时间
         if(apope.PROCESSWORKSHOPID!=preapope.PROCESSWORKSHOPID,#{workshopcross}, -- 车间流转时间
         if(apope.PROCESSDEVICEID!=preapope.PROCESSDEVICEID,#{workshopin},0))) MINUTE -- 机台流转时间