|
@@ -191,33 +191,50 @@
|
|
|
</update>
|
|
|
<update id="updateFinishDateAboutProcessEqu">
|
|
|
update
|
|
|
- aps_process_operation_process_equ apope
|
|
|
- join aps_process_operation apo on apo.id = apope.PROCESSID
|
|
|
+ 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.PLANSTARTDATE),
|
|
|
- apope.PLANENDDATE=IF(apope.ACTUALFINISHDATE IS NOT NULL, apope.ACTUALFINISHDATE, apope.PLANENDDATE)
|
|
|
+ -- 如果已经完工,先根据实际完工时间计算和设置计划开工时间,再设置计划完工时间=实际完工时间
|
|
|
+ apope.PLANSTARTDATE=DATE_SUB(apope.ACTUALFINISHDATE,INTERVAL TIMESTAMPdiff(SECOND, apope.PLANSTARTDATE, apope.PLANENDDATE) SECOND),
|
|
|
+ apope.PLANENDDATE=apope.ACTUALFINISHDATE
|
|
|
where
|
|
|
- apo.DELETED='0' and apope.deleted='0'
|
|
|
- AND (apope.ACTUALSTARTDATE IS NOT NULL) -- 已经开工或完工
|
|
|
- and (apope.ACTUALSTARTDATE < apope.PLANSTARTDATE OR apope.ACTUALFINISHDATE < apope.PLANENDDATE) -- 提前开工或完工
|
|
|
- and apope.PLANENDDATE > #{needScheduleDate} -- 计划完工时间大于调度开始时间,即占用了调度时间
|
|
|
- and apo.PROCESS != '铸轧'
|
|
|
- and apope.TENANTID = #{tenantId};
|
|
|
+ apo.DELETED='0' and apope.deleted='0'
|
|
|
+ AND (apope.ACTUALFINISHDATE IS NOT NULL) -- 已经完工
|
|
|
+ and (apope.ACTUALSTARTDATE < apope.PLANSTARTDATE OR apope.ACTUALFINISHDATE < apope.PLANENDDATE) -- 提前开工或完工
|
|
|
+ and apope.PLANENDDATE > #{needScheduleDate} -- 计划完工时间大于调度开始时间,即占用了调度时间
|
|
|
+ and apo.PROCESS != '铸轧'
|
|
|
+ and apope.TENANTID = #{tenantId};
|
|
|
+
|
|
|
update
|
|
|
- aps_process_operation_process_equ apope
|
|
|
- join aps_process_operation apo on apo.id = apope.PROCESSID
|
|
|
+ aps_process_operation_process_equ apope
|
|
|
+ join aps_process_operation apo on apo.id = apope.PROCESSID
|
|
|
set
|
|
|
- -- 如果没有完工,先根据实际开工时间计算和设置计划完工时间,再设置计划开工时间=实际开工时间
|
|
|
- apope.PLANENDDATE=IF(apope.ACTUALFINISHDATE IS NOT NULL, apope.PLANENDDATE, DATE_ADD(apope.ACTUALSTARTDATE,INTERVAL TIMESTAMPdiff(SECOND, apope.PLANSTARTDATE, apope.PLANENDDATE) SECOND)),
|
|
|
- apope.PLANSTARTDATE=IF(apope.ACTUALFINISHDATE IS NOT NULL,apope.PLANSTARTDATE,apope.ACTUALSTARTDATE)
|
|
|
+ -- 如果没有完工,先根据实际开工时间计算和设置计划完工时间,再设置计划开工时间=实际开工时间
|
|
|
+ apope.PLANENDDATE=DATE_ADD(apope.ACTUALSTARTDATE,INTERVAL TIMESTAMPdiff(SECOND, apope.PLANSTARTDATE, apope.PLANENDDATE) SECOND),
|
|
|
+ apope.PLANSTARTDATE=apope.ACTUALSTARTDATE
|
|
|
where
|
|
|
- apo.DELETED='0' and apope.deleted='0'
|
|
|
- AND (apope.ACTUALSTARTDATE IS NULL and apope.ACTUALFINISHDATE IS NOT NULL) -- 已经开工或完工
|
|
|
- and (apope.ACTUALSTARTDATE < apope.PLANSTARTDATE OR apope.ACTUALFINISHDATE < apope.PLANENDDATE) -- 提前开工或完工
|
|
|
- and apope.PLANENDDATE > #{needScheduleDate} -- 计划完工时间大于调度开始时间,即占用了调度时间
|
|
|
- and apo.PROCESS != '铸轧'
|
|
|
+ apo.DELETED='0' and apope.deleted='0'
|
|
|
+ AND (apope.ACTUALSTARTDATE IS not NULL and apope.ACTUALFINISHDATE IS NULL) -- 已经开工或完工
|
|
|
+ and (apope.ACTUALSTARTDATE < apope.PLANSTARTDATE OR apope.ACTUALFINISHDATE < apope.PLANENDDATE) -- 提前开工或完工
|
|
|
+ and apope.PLANENDDATE > #{needScheduleDate} -- 计划完工时间大于调度开始时间,即占用了调度时间
|
|
|
+ and apo.PROCESS != '铸轧'
|
|
|
+ and apope.TENANTID = #{tenantId};
|
|
|
+ update
|
|
|
+ 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'
|
|
|
+ set
|
|
|
+ apope.PLANSTARTDATE=DATE_SUB(date_add(preapope.PLANENDDATE, INTERVAL ifnull(apo.MAXFLOWWAITMIN,0) MINUTE),INTERVAL TIMESTAMPdiff(SECOND, apope.PLANSTARTDATE, apope.PLANENDDATE) SECOND),
|
|
|
+ apope.PLANENDDATE=date_add(preapope.PLANENDDATE, INTERVAL ifnull(apo.MAXFLOWWAITMIN,0) MINUTE)
|
|
|
+ WHERE
|
|
|
+ apope.deleted = '0' AND apo.DELETED = '0'
|
|
|
and apope.TENANTID = #{tenantId}
|
|
|
+ and apo.PROCESS != '铸轧'
|
|
|
+ and apope.WORKSTATUS = '待开工'
|
|
|
+ and apope.PLANSTARTDATE between #{chongpaiStartDate} and #{chongpaiEndDate} -- 占用调度时间范围内
|
|
|
+ and ifnull(apo.MAXFLOWWAITMIN,0) > 0 -- 有最大流转等待时间
|
|
|
+ AND ifnull(apope.PREVIOUSPROCESSESIDS,'') != '' -- 有前道
|
|
|
+ and date_add(preapope.PLANENDDATE, INTERVAL ifnull(apo.MAXFLOWWAITMIN,0) MINUTE) < #{chongpaiStartDate} -- 前道完工时间+最大流转时间小于调度开始时间
|
|
|
</update>
|
|
|
<update id="removeLockNextDayProcessEqu">
|
|
|
with tomorroworder as(
|