Kaynağa Gözat

aps-自动调度排程改为冷轧1天,退火5天

sucheng 2 ay önce
ebeveyn
işleme
b0493171bc

+ 38 - 47
cx-aps/cx-aps-common/src/main/resources/mybatis/ApsBlankOrderDao.xml

@@ -368,57 +368,48 @@
                     )
                    )
             )
-          AND (apope.PLANENDDATE!=if( -- 如果前道在调度时间之前开工,并且与前道是连续作业,则移动到前道计划完工时间
+          AND (
+                apope.PLANENDDATE!=if( -- 如果前道在调度时间之前开工,并且与前道是连续作业,则移动到前道计划完工时间
                 apope.PROCESSDEVICEID = preapope.PROCESSDEVICEID and ifnull(apo.MINFLOWWAITMIN,0)=0,
                 DATE_ADD(preapope.PLANENDDATE,INTERVAL TIMESTAMPdiff(SECOND, apope.PLANSTARTDATE, apope.PLANENDDATE) SECOND),
                 date_add(apope.PLANENDDATE,
-                         INTERVAL TIMESTAMPdiff(SECOND,
-                                                apope.PLANSTARTDATE,
-                                                GREATEST(
-                                                        date_add(preapope.PLANENDDATE, -- 前道计划完工时间 + 流转时间
-                                                                 INTERVAL GREATEST(
-                                                                         ifnull(apo.MINFLOWWAITMIN,0), -- 最小流转等待时间
-                                                                         if(apope.PROCESSWORKSHOPID!=preapope.PROCESSWORKSHOPID,#{workshopcross}, -- 车间流转时间
-                                                                            if(apope.PROCESSDEVICEID!=preapope.PROCESSDEVICEID,#{workshopin},0)
-                                                                         )
-                                                                          ) MINUTE -- 机台流转时间
-                                                        ),
-                                                        if(ifnull(apo.MAXFLOWWAITMIN,0)=0,
-                                                           #{chongpaiStartDate}, -- 调度开始时间
-                                                           LEAST(#{chongpaiStartDate}, -- 调度开始时间
-                                                                 date_add(preapope.PLANENDDATE, INTERVAL apo.MAXFLOWWAITMIN MINUTE)
-                                                           )
-                                                        ) -- 前道计划完工时间 + 最大流转等待时间
-                                                )
-                                  ) SECOND
+                INTERVAL TIMESTAMPdiff(SECOND,
+                apope.PLANSTARTDATE,
+                GREATEST(
+                date_add(preapope.PLANENDDATE, -- 前道计划完工时间 + 流转时间
+                INTERVAL GREATEST(
+                ifnull(apo.MINFLOWWAITMIN,0), -- 最小流转等待时间
+                if(apope.PROCESSWORKSHOPID!=preapope.PROCESSWORKSHOPID,#{workshopcross}, -- 车间流转时间
+                if(apope.PROCESSDEVICEID!=preapope.PROCESSDEVICEID,#{workshopin},0)
+                )
+                ) MINUTE -- 机台流转时间
+                ),
+                #{chongpaiStartDate}
+                )
+                ) SECOND
+                )
                 )
-                                  )
-            OR
-               apope.PLANSTARTDATE!=if( -- 如果前道在调度时间之前,并且与前道是连续作业,则移动到前道计划完工时间
-                       apope.PROCESSDEVICEID = preapope.PROCESSDEVICEID and ifnull(apo.MINFLOWWAITMIN,0)=0,
-                       preapope.PLANENDDATE,
-                       date_add(apope.PLANENDDATE,
-                                INTERVAL TIMESTAMPdiff(SECOND,
-                                                       apope.PLANSTARTDATE,
-                                                       GREATEST(
-                                                               date_add(preapope.PLANENDDATE, -- 前道计划完工时间 + 流转时间
-                                                                        INTERVAL GREATEST(
-                                                                                ifnull(apo.MINFLOWWAITMIN,0), -- 最小流转等待时间
-                                                                                if(apope.PROCESSWORKSHOPID!=preapope.PROCESSWORKSHOPID,#{workshopcross}, -- 车间流转时间
-                                                                                   if(apope.PROCESSDEVICEID!=preapope.PROCESSDEVICEID,#{workshopin},0)
-                                                                                )
-                                                                                 ) MINUTE -- 机台流转时间
-                                                               ),
-                                                               if(ifnull(apo.MAXFLOWWAITMIN,0)=0,
-                                                                  #{chongpaiStartDate}, -- 调度开始时间
-                                                                  LEAST(#{chongpaiStartDate}, -- 调度开始时间
-                                                                        date_add(preapope.PLANENDDATE, INTERVAL apo.MAXFLOWWAITMIN MINUTE)
-                                                                  )
-                                                               ) -- 前道计划完工时间 + 最大流转等待时间
-                                                       )
-                                         ) SECOND
-                       )
-                                    )
+        OR
+            apope.PLANSTARTDATE!=if( -- 如果前道在调度时间之前,并且与前道是连续作业,则移动到前道计划完工时间
+            apope.PROCESSDEVICEID = preapope.PROCESSDEVICEID and ifnull(apo.MINFLOWWAITMIN,0)=0,
+            preapope.PLANENDDATE,
+            date_add(apope.PLANSTARTDATE,
+            INTERVAL TIMESTAMPdiff(SECOND,
+            apope.PLANSTARTDATE,
+            GREATEST(
+            date_add(preapope.PLANENDDATE, -- 前道计划完工时间 + 流转时间
+            INTERVAL GREATEST(
+            ifnull(apo.MINFLOWWAITMIN,0), -- 最小流转等待时间
+            if(apope.PROCESSWORKSHOPID!=preapope.PROCESSWORKSHOPID,#{workshopcross}, -- 车间流转时间
+            if(apope.PROCESSDEVICEID!=preapope.PROCESSDEVICEID,#{workshopin},0)
+            )
+            ) MINUTE -- 机台流转时间
+            ),
+            #{chongpaiStartDate}
+            )
+            ) SECOND
+            )
+            )
             )
 
     </update>