|
@@ -296,66 +296,11 @@
|
|
|
<update id="moveErrorProcessEqu">
|
|
|
-- 如果有前道,并且(计划开工时间在调度时间范围内,或者前道在计划开工时间在调度时间范围内,并且(前道完工时间+最大流转时间大于计划开工时间,或者小于调度结束时间)),则挪到前道完工时间+最大流转时间
|
|
|
update
|
|
|
- aps_process_operation_process_equ apope
|
|
|
- join aps_process_operation apo on apo.ID = apope.PROCESSID
|
|
|
- join aps_process_operation_process_equ preapope on apope.PREVIOUSPROCESSESIDS = preapope.id
|
|
|
+ aps_process_operation_process_equ apope
|
|
|
+ join aps_process_operation apo on apo.ID = apope.PROCESSID
|
|
|
+ join aps_process_operation_process_equ preapope on apope.PREVIOUSPROCESSESIDS = preapope.id
|
|
|
set
|
|
|
- apope.PLANENDDATE=date_add(apope.PLANENDDATE,
|
|
|
- INTERVAL TIMESTAMPdiff(SECOND,
|
|
|
- apope.PLANSTARTDATE,
|
|
|
- LEAST(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} -- 调度开始时间
|
|
|
- ),
|
|
|
- if(ifnull(apo.MAXFLOWWAITMIN,0)=0, -- 如果有最大流转等待时间,则取前道计划完工时间 + 最大流转等待时间,否则取调度结束时间
|
|
|
- DATE_ADD(#{chongpaiEndDate},INTERVAL 10 DAY),-- 无限制时间
|
|
|
- date_add(preapope.PLANENDDATE, INTERVAL apo.MAXFLOWWAITMIN MINUTE))) -- 前道计划完工时间 + 最大流转等待时间
|
|
|
- ) SECOND),
|
|
|
- apope.PLANSTARTDATE=date_add(apope.PLANSTARTDATE,
|
|
|
- INTERVAL TIMESTAMPdiff(SECOND,
|
|
|
- apope.PLANSTARTDATE,
|
|
|
- LEAST(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} -- 调度开始时间
|
|
|
- ),
|
|
|
- if(ifnull(apo.MAXFLOWWAITMIN,0)=0, -- 如果有最大流转等待时间,则取前道计划完工时间 + 最大流转等待时间,否则取调度结束时间
|
|
|
- DATE_ADD(#{chongpaiEndDate},INTERVAL 10 DAY),-- 无限制时间
|
|
|
- date_add(preapope.PLANENDDATE, INTERVAL apo.MAXFLOWWAITMIN MINUTE))) -- 前道计划完工时间 + 最大流转等待时间
|
|
|
- ) SECOND)
|
|
|
- WHERE
|
|
|
- apope.deleted = '0' AND apo.DELETED = '0' AND preapope.DELETED = '0'
|
|
|
- and apope.TENANTID = #{tenantId}
|
|
|
- and apo.PROCESS != '铸轧'
|
|
|
- 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} -- 调度结束时间
|
|
|
- )
|
|
|
- )
|
|
|
- )
|
|
|
- AND (apope.PLANENDDATE!=date_add(apope.PLANENDDATE,
|
|
|
+ apope.PLANENDDATE=date_add(apope.PLANENDDATE,
|
|
|
INTERVAL TIMESTAMPdiff(SECOND,
|
|
|
apope.PLANSTARTDATE,
|
|
|
LEAST(GREATEST(
|
|
@@ -370,23 +315,78 @@
|
|
|
if(ifnull(apo.MAXFLOWWAITMIN,0)=0, -- 如果有最大流转等待时间,则取前道计划完工时间 + 最大流转等待时间,否则取调度结束时间
|
|
|
DATE_ADD(#{chongpaiEndDate},INTERVAL 10 DAY),-- 无限制时间
|
|
|
date_add(preapope.PLANENDDATE, INTERVAL apo.MAXFLOWWAITMIN MINUTE))) -- 前道计划完工时间 + 最大流转等待时间
|
|
|
- ) SECOND)
|
|
|
- OR apope.PLANSTARTDATE!=date_add(apope.PLANSTARTDATE,
|
|
|
- INTERVAL TIMESTAMPdiff(SECOND,
|
|
|
- apope.PLANSTARTDATE,
|
|
|
- LEAST(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} -- 调度开始时间
|
|
|
- ),
|
|
|
- if(ifnull(apo.MAXFLOWWAITMIN,0)=0, -- 如果有最大流转等待时间,则取前道计划完工时间 + 最大流转等待时间,否则取调度结束时间
|
|
|
- DATE_ADD(#{chongpaiEndDate},INTERVAL 10 DAY),-- 无限制时间
|
|
|
- date_add(preapope.PLANENDDATE, INTERVAL apo.MAXFLOWWAITMIN MINUTE))) -- 前道计划完工时间 + 最大流转等待时间
|
|
|
- ) SECOND)
|
|
|
+ ) SECOND),
|
|
|
+ apope.PLANSTARTDATE=date_add(apope.PLANSTARTDATE,
|
|
|
+ INTERVAL TIMESTAMPdiff(SECOND,
|
|
|
+ apope.PLANSTARTDATE,
|
|
|
+ LEAST(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} -- 调度开始时间
|
|
|
+ ),
|
|
|
+ if(ifnull(apo.MAXFLOWWAITMIN,0)=0, -- 如果有最大流转等待时间,则取前道计划完工时间 + 最大流转等待时间,否则取调度结束时间
|
|
|
+ DATE_ADD(#{chongpaiEndDate},INTERVAL 10 DAY),-- 无限制时间
|
|
|
+ date_add(preapope.PLANENDDATE, INTERVAL apo.MAXFLOWWAITMIN MINUTE))) -- 前道计划完工时间 + 最大流转等待时间
|
|
|
+ ) SECOND)
|
|
|
+ WHERE
|
|
|
+ apope.deleted = '0' AND apo.DELETED = '0' AND preapope.DELETED = '0'
|
|
|
+ and apope.TENANTID = #{tenantId}
|
|
|
+ and apo.PROCESS != '铸轧'
|
|
|
+ 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} -- 调度结束时间
|
|
|
+ )
|
|
|
+ )
|
|
|
+ )
|
|
|
+ AND (apope.PLANENDDATE!=date_add(apope.PLANENDDATE,
|
|
|
+ INTERVAL TIMESTAMPdiff(SECOND,
|
|
|
+ apope.PLANSTARTDATE,
|
|
|
+ LEAST(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} -- 调度开始时间
|
|
|
+ ),
|
|
|
+ if(ifnull(apo.MAXFLOWWAITMIN,0)=0, -- 如果有最大流转等待时间,则取前道计划完工时间 + 最大流转等待时间,否则取调度结束时间
|
|
|
+ DATE_ADD(#{chongpaiEndDate},INTERVAL 10 DAY),-- 无限制时间
|
|
|
+ date_add(preapope.PLANENDDATE, INTERVAL apo.MAXFLOWWAITMIN MINUTE))) -- 前道计划完工时间 + 最大流转等待时间
|
|
|
+ ) SECOND)
|
|
|
+ OR apope.PLANSTARTDATE!=date_add(apope.PLANSTARTDATE,
|
|
|
+ INTERVAL TIMESTAMPdiff(SECOND,
|
|
|
+ apope.PLANSTARTDATE,
|
|
|
+ LEAST(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} -- 调度开始时间
|
|
|
+ ),
|
|
|
+ if(ifnull(apo.MAXFLOWWAITMIN,0)=0, -- 如果有最大流转等待时间,则取前道计划完工时间 + 最大流转等待时间,否则取调度结束时间
|
|
|
+ DATE_ADD(#{chongpaiEndDate},INTERVAL 10 DAY),-- 无限制时间
|
|
|
+ date_add(preapope.PLANENDDATE, INTERVAL apo.MAXFLOWWAITMIN MINUTE))) -- 前道计划完工时间 + 最大流转等待时间
|
|
|
+ ) SECOND)
|
|
|
)
|
|
|
|
|
|
</update>
|