修正逻辑

This commit is contained in:
xiaochou164 2023-08-16 17:07:27 +08:00
parent 8d7603b580
commit 09b3ecdff0
2 changed files with 55 additions and 49 deletions

View File

@ -1,6 +1,6 @@
drop procedure if exists UpdateEqpOnStoveStatusLog;
create
definer = admin@`%` procedure UpdateEqpOnStoveStatusLog()
definer = admin@`%` procedure UpdateEqpOnStoveStatusLog() comment '更新开炉记录日志表'
BEGIN
DROP TABLE IF EXISTS `eqponstovestatustmp`;
create table eqponstovestatustmp
@ -13,40 +13,13 @@ create table eqponstovestatustmp
eqpstatus varchar(50),
crusize varchar(50),
subprod varchar(50),
Areport datetime,
Astove datetime,
Aout datetime,
Breport datetime,
Bstove datetime,
Bout datetime,
Creport datetime,
Cstove datetime,
Cout datetime,
Dreport datetime,
Dstove datetime,
Dout datetime,
Ereport datetime,
Estove datetime,
Eout datetime,
Freport datetime,
Fstove datetime,
Fout datetime,
Greport datetime,
Gstove datetime,
Gout datetime,
Hreport datetime,
Hstove datetime,
Hout datetime,
Ireport datetime,
Istove datetime,
Iout datetime,
Jreport datetime,
Jstove datetime,
Jout datetime,
Kreport datetime,
Kstove datetime,
Kout datetime,
chaiqingtime datetime
firststovetime datetime,
lastreporttime datetime,
laststovetime datetime,
lastopentime datetime,
lastouttime datetime,
finishtime datetime,
lastchaiqingtime datetime
);
replace into eqponstovestatustmp(area, area1, eqpid, eqpmodel)
select area, area1, eqpid, eqpmodel
@ -55,22 +28,31 @@ from reportdata.equipment;
###更新最新有执行记录的工单
update eqponstovestatustmp es
left join
(select eqpid, substring(eventid, 1, 10) mesmoname, max(eventtime)
from eqponstatuslogs
group by eqpid) b on (es.eqpid = b.eqpid)
(select eql.eqpid, substring(eql.eventid, 1, 10) mesmoname, max(eql.eventtime)
from eqponstatuslogs eql
left join reportdata.mostatus mo on (eql.mesmoname = mo.MESmoname)
where mo.mostatus = '0'
group by eql.eqpid) b on (es.eqpid = b.eqpid)
set es.mesmoname = b.mesmoname;
##1 报料2 加料3 开副室4 晶棒产出5 拆清
update eqponstovestatustmp eqs
left join
(select mesmoname, min(eventtime) stovetime
from eqponstatuslogs
where eventtype = '加料'
group by mesmoname) eql on eqs.mesmoname = eql.mesmoname
set eqs.firststovetime = eql.stovetime;
update eqponstovestatustmp eqs
left join
(select es.eqpid,
epl.mesmoname,
max(case when eventtype = '1' then eventtime end) lastreporttime,
max(case when eventtype = '2' then eventtime end) laststovetime,
max(case when eventtype = '3' then eventtime end) lastopentime,
max(case when eventtype = '3' then eventtime end) lastouttime,
max(case when eventtype = '3' then eventtime end) lastchaiqingtime,
max(case when eventtype = '报料' then eventtime end) lastreporttime,
max(case when eventtype = '加料' then eventtime end) laststovetime,
max(case when eventtype = '开副室' then eventtime end) lastopentime,
max(case when eventtype = '晶棒产出' then eventtime end) lastouttime,
max(case when eventtype = '拆清' then eventtime end) lastchaiqingtime,
case when substring(eventid,13,1) = 'W' then eventtime end finishtime
from eqponstatuslogs es
inner join eqponstovestatustmp epl on (substring(es.eventid, 1, 10) = epl.mesmoname)
@ -81,6 +63,7 @@ set eqs.lastreporttime = b.lastreporttime,
eqs.lastouttime = b.lastouttime,
eqs.lastchaiqingtime = b.lastchaiqingtime,
eqs.finishtime = b.finishtime;
###有工单、有投入、未产出
update eqponstovestatustmp
set eqpstatus = '投料后未产出'
@ -160,6 +143,7 @@ insert into eqponstovestatus(
eqpstatus,
crusize,
subprod,
firststovetime,
lastreporttime,
laststovetime,
lastopentime,
@ -176,3 +160,4 @@ update eqponstovestatus set mfgdate = date_format(now()-8.5/24,'%Y-%m-%d') where
drop table eqponstovestatustmp;
END;

View File

@ -1,3 +1,4 @@
drop procedure if exists UpdateMostatus;
create
definer = admin@`%` procedure UpdateMostatus()
BEGIN
@ -38,12 +39,31 @@ and mo.stovetime < st.newtime;
##异常完结的更新完结时间及运行时间
update reportdata.mostatus mo,(SELECT DISTINCT order_no,max(create_time) max_time,max(substring(code,11,1)) rx from mes_sync.mes_production GROUP BY order_no) f
set mo.finish_time = f.max_time,mo.runtime = datediff(f.max_time,mo.stovetime)
where 1=1
and mo.MESmoname = f.order_no
update reportdata.mostatus mo
inner join (SELECT DISTINCT order_no, max(create_time) max_time, max(substring(code, 11, 1)) rx
from mes_sync.mes_production
GROUP BY order_no) f on (mo.MESmoname = f.order_no
and mo.finish_time is null
and mo.mostatus = '1' ;
and mo.mostatus = '1')
set mo.finish_time = f.max_time,
mo.mostatus = '1',
mo.mostatusdesc = '完结',
mo.runtime = datediff(f.max_time, mo.stovetime);
##更新20天前未完结的
update reportdata.mostatus mo
inner join (SELECT DISTINCT order_no, max(create_time) max_time, max(substring(code, 11, 1)) rx
from mes_sync.mes_production
GROUP BY order_no) f on (mo.MESmoname = f.order_no
and mo.finish_time is null
and mo.mostatus = '0'
and mo.stovetime <date_format(date_sub(now(), interval 20 day), '%Y-%m-%d'))
set mo.finish_time = f.max_time,
mo.mostatus = '1',
mo.mostatusdesc = '完结',
mo.runtime = datediff(f.max_time, mo.stovetime);
update reportdata.mostatus mo
inner join
@ -52,5 +72,6 @@ select DISTINCT mesmoname,rx from reportdata.allfeedingdetail
)af on(mo.mesmoname = af.mesmoname)
set mo.rx=af.rx ;
END;