|
@@ -358,13 +358,23 @@
|
|
|
ifnull(apo.MINFLOWWAITMIN,0), -- 最小流转等待时间
|
|
|
if(apope.PROCESSWORKSHOPID!=preapope.PROCESSWORKSHOPID,#{workshopcross}, -- 车间流转时间
|
|
|
if(apope.PROCESSDEVICEID!=preapope.PROCESSDEVICEID,#{workshopin},0))) MINUTE -- 机台流转时间
|
|
|
+ and apope.WORKSTATUS = '待开工'
|
|
|
+ AND (apope.PLANSTARTDATE between #{chongpaiStartDate} and #{chongpaiEndDate} -- 在调度时间范围内开工
|
|
|
+ or (preapope.PLANSTARTDATE between #{chongpaiStartDate} and #{chongpaiEndDate} -- 前道在调度时间范围内开工
|
|
|
+ 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 -- 机台流转时间
|
|
|
) > apope.PLANSTARTDATE
|
|
|
- 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 -- 机台流转时间
|
|
|
- ) < #{chongpaiEndDate} -- 调度结束时间
|
|
|
+ )
|
|
|
+ or (apope.PLANSTARTDATE > #{chongpaiEndDate} -- 计划调度结束时间之后开工
|
|
|
+ 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 -- 机台流转时间
|
|
|
+ ) < #{chongpaiEndDate} -- 调度结束时间
|
|
|
)
|
|
|
)
|
|
|
)
|