|
@@ -194,16 +194,30 @@
|
|
|
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.PLANENDDATE=IF(apope.ACTUALFINISHDATE IS NOT NULL, apope.ACTUALFINISHDATE, apope.PLANENDDATE)
|
|
|
+ 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};
|
|
|
+ update
|
|
|
+ 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)
|
|
|
where
|
|
|
apo.DELETED='0' and apope.deleted='0'
|
|
|
- AND (apope.ACTUALSTARTDATE IS NOT NULL OR apope.ACTUALFINISHDATE IS NOT NULL)
|
|
|
- and (apope.ACTUALSTARTDATE < apope.PLANSTARTDATE OR apope.ACTUALFINISHDATE < apope.PLANENDDATE)
|
|
|
- and apope.PLANENDDATE > #{needScheduleDate}
|
|
|
+ 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 != '铸轧'
|
|
|
+ and apope.TENANTID = #{tenantId}
|
|
|
</update>
|
|
|
<update id="removeLockNextDayProcessEqu">
|
|
|
with tomorroworder as(
|