diff --git a/NFine.Application/SRM/WatchPanelApp.cs b/NFine.Application/SRM/WatchPanelApp.cs index 0e49581..6a8970a 100644 --- a/NFine.Application/SRM/WatchPanelApp.cs +++ b/NFine.Application/SRM/WatchPanelApp.cs @@ -1276,7 +1276,7 @@ ORDER BY 销售车号, 物料编码 ,报工人 asc left join ICSCustomer cus with(nolock) on tso.cusid = cus.FCUSTID left join icsmo tmo with(nolock) on tso.socode = tmo.molotcode -- left join ICSINVENTORY inv with(nolock) on inv.invstd like tso.socode --tmo.itemcode - where tso.status = 'C' and tmo.id in(select moid from ICSMO2ROUTE with(nolock) ) + where tmo.mostatus != '关单' and tso.status = 'C' and tmo.id in(select moid from ICSMO2ROUTE with(nolock) ) select 销售车辆号,产品名称 @@ -1307,7 +1307,7 @@ ORDER BY 销售车号, 物料编码 ,报工人 asc select tso.销售车辆号 ,isnull(( select count(*) - from icsmo tmo with(nolock) where tso.销售车辆号 = tmo.molotcode),0) monum , + from icsmo tmo with(nolock) where tmo.mostatus != '关单' and tso.销售车辆号 = tmo.molotcode),0) monum , isnull(CCOM.wipnum,0) wipnum , case when exists(select 1 from icsmo tmo where tso.销售车辆号 = tmo.molotcode and exists(select 1 from ICSLOTONWIP wip with(nolock) where tmo.mocode = wip.mocode and wip.actionresult!='') ) then 1 else 0 end wipbnum into #tempNum @@ -1321,7 +1321,7 @@ ORDER BY 销售车号, 物料编码 ,报工人 asc select tso.销售车辆号, 客户交货期, 用户单位, -- 产品名称, - CASE WHEN ISNULL(tnum.monum,0) =0 THEN '0%' ELSE + CASE WHEN ISNULL(tnum.monum,0) =0 THEN '0%' ELSE concat(cast(cast(tnum.wipnum * 1.0 / tnum.monum as decimal(18,3))* 100 as decimal(18,0)),'%') END 进度, CASE WHEN ISNULL(tnum.monum,0) =0 THEN '未开工' ELSE (case when tnum.wipnum/tnum.monum =1 then '已完工' when tnum.wipbnum >0 then '开工中' else '未开工' end ) END 生产状态 from #TempSSCC tso @@ -1349,12 +1349,13 @@ left join #Tempcccc cc on a.销售车辆号=cc.销售车辆号 drop table #tempData --用销售订单中的销售车辆号查询出工单开工行数,与报工表中的数据做对比 相等的为完工数量 select tmo.socode,tmo.monum,isnull(wip.wipnum ,0) as wipnum ,wip.EndTime - into #tempNum + into #tempNum from ( select tso.socode ,count(*) as monum from icsso tso left join icsmo tmo on tso.socode = tmo.molotcode + where tmo.mostatus != '关单' group by tso.socode ) tmo left join ( @@ -1365,6 +1366,7 @@ left join #Tempcccc cc on a.销售车辆号=cc.销售车辆号 where wip.iscom='1' group by tso.socode ) wip on tmo.socode = wip.socode + where tmo.monum = wip.wipnum order by EndTime select * into #tempData from( select isnull(mpproduct,0) as 上月度生产 from ICSZXBoardPlan @@ -1374,22 +1376,18 @@ left join #Tempcccc cc on a.销售车辆号=cc.销售车辆号 where moth = CONVERT(CHAR(10),DATEADD(month,0,DATEADD(dd,-DAY(GETDATE())+1,GETDATE())),120) ) b on 1=1 --此部分为前月数据 left join ( select count(*) 上月完成 from #tempNum t where t.wipnum = t.monum and t.EndTime between - CONVERT(CHAR(10),DATEADD(month,-1,DATEADD(dd,-DAY(GETDATE())+1,GETDATE())),120) - and CONVERT(CHAR(10),DATEADD(month,0,DATEADD(dd,-DAY(GETDATE())+1,GETDATE())),120)) c on 1=1 + CONVERT(CHAR(10),DATEADD(month,0,DATEADD(dd,-DAY(GETDATE())+1,GETDATE())),120) + and CONVERT(CHAR(10),DATEADD(month,1,DATEADD(dd,-DAY(GETDATE())+1,GETDATE())),120)) c on 1=1 left join ( select count(*) 前月完成 from #tempNum t where t.wipnum = t.monum and t.EndTime between - CONVERT(CHAR(10),DATEADD(month,0,DATEADD(dd,-DAY(GETDATE())+1,GETDATE())),120) - and CONVERT(CHAR(10),DATEADD(month,-1,DATEADD(dd,-DAY(GETDATE())+1,GETDATE())),120)) d on 1=1 + CONVERT(CHAR(10),DATEADD(month,-1,DATEADD(dd,-DAY(GETDATE())+1,GETDATE())),120) + and CONVERT(CHAR(10),DATEADD(month,0,DATEADD(dd,-DAY(GETDATE())+1,GETDATE())),120)) d on 1=1 left join ( select count(*) 年度生产 from #tempNum t where t.wipnum = t.monum and t.EndTime >= CONVERT(CHAR(10),DATEADD(month,-MONTH(GETDATE())+1,DATEADD(dd,-DAY(GETDATE())+1,GETDATE())),120)) e on 1=1 select isnull(上月度生产,'0') 上月度生产 , isnull(上月完成,'0') 上月完成, isnull(前月度生产,'0') 前月度生产 , isnull(前月完成,'0') 前月完成,isnull(年度生产,'0') 年度生产, - --case when isnull(上月度生产,0) = 0 then 0 else - --convert(decimal(10,2),isnull(上月度生产,0))*1.0/isnull(convert(decimal(10,2),case when 上月完成 = 0 then 1 else 上月完成 end),1) end 上月比, - --case when isnull(前月度生产,0) = 0 then 0 else - --convert(decimal(10,2),isnull(前月度生产,0))*1.0/isnull(convert(decimal(10,2),case when 前月完成 = 0 then 1 else 前月完成 end),1) end 前月比, case when isnull(上月完成,0) = 0 then 0 else convert(decimal(10,2),isnull(上月完成,0))*1.0/isnull(convert(decimal(10,2),case when 上月度生产 = 0 then 1 else 上月度生产 end),1) end 上月比, case when isnull(前月完成,0) = 0 then 0 else @@ -1474,53 +1472,55 @@ left join #Tempcccc cc on a.销售车辆号=cc.销售车辆号 --用销售订单中的销售车辆号查询出工单开工行数,与报工表中的数据做对比 相等的为完工数量 select tmo.socode,tmo.monum,isnull(wip.wipnum ,0) as wipnum ,wip.EndTime - into #tempNum + into #tempNum from ( select tso.socode ,count(*) as monum from icsso tso left join icsmo tmo on tso.socode = tmo.molotcode + where tmo.mostatus != '关单' group by tso.socode ) tmo left join ( - select tso.socode ,count(*) as wipnum,min(wip.EndTime) EndTime from + select tso.socode ,count(*) as wipnum,max(wip.EndTime) EndTime from icsso tso left join (select mocode,molotcode from icsmo group by mocode,molotcode) tmo on tso.socode = tmo.molotcode LEFT JOIN ICSLOTSIMULATION wip on tmo.mocode = wip.mocode where wip.iscom='1' group by tso.socode - ) wip on tmo.socode = wip.socode + ) wip on tmo.socode = wip.socode + where tmo.monum = wip.wipnum select count(*) num , CONVERT(CHAR(7),DATEADD(month,0,DATEADD(dd,-DAY(GETDATE())+1,GETDATE())),111) Mont from #tempNum t where t.wipnum = t.monum and t.EndTime between - CONVERT(CHAR(10),DATEADD(month,-1,DATEADD(dd,-DAY(GETDATE())+1,GETDATE())),120) - and CONVERT(CHAR(10),DATEADD(month,0,DATEADD(dd,-DAY(GETDATE())+1,GETDATE())),120) + CONVERT(CHAR(10),DATEADD(month,0,DATEADD(dd,-DAY(GETDATE())+1,GETDATE())),120) + and CONVERT(CHAR(10),DATEADD(month,01,DATEADD(dd,-DAY(GETDATE())+1,GETDATE())),120) union select count(*) num , CONVERT(CHAR(7),DATEADD(month,-1,DATEADD(dd,-DAY(GETDATE())+1,GETDATE())),111) Mont from #tempNum t where t.wipnum = t.monum and t.EndTime between - CONVERT(CHAR(10),DATEADD(month,-2,DATEADD(dd,-DAY(GETDATE())+1,GETDATE())),120) - and CONVERT(CHAR(10),DATEADD(month,-1,DATEADD(dd,-DAY(GETDATE())+1,GETDATE())),120) + CONVERT(CHAR(10),DATEADD(month,-1,DATEADD(dd,-DAY(GETDATE())+1,GETDATE())),120) + and CONVERT(CHAR(10),DATEADD(month,0,DATEADD(dd,-DAY(GETDATE())+1,GETDATE())),120) union select count(*) num,CONVERT(CHAR(7),DATEADD(month,-2,DATEADD(dd,-DAY(GETDATE())+1,GETDATE())),111) Mont from #tempNum t where t.wipnum = t.monum and t.EndTime between - CONVERT(CHAR(10),DATEADD(month,-3,DATEADD(dd,-DAY(GETDATE())+1,GETDATE())),120) - and CONVERT(CHAR(10),DATEADD(month,-2,DATEADD(dd,-DAY(GETDATE())+1,GETDATE())),120) + CONVERT(CHAR(10),DATEADD(month,-2,DATEADD(dd,-DAY(GETDATE())+1,GETDATE())),120) + and CONVERT(CHAR(10),DATEADD(month,-1,DATEADD(dd,-DAY(GETDATE())+1,GETDATE())),120) union select count(*) num,CONVERT(CHAR(7),DATEADD(month,-3,DATEADD(dd,-DAY(GETDATE())+1,GETDATE())),111) Mont from #tempNum t where t.wipnum = t.monum and t.EndTime between - CONVERT(CHAR(10),DATEADD(month,-4,DATEADD(dd,-DAY(GETDATE())+1,GETDATE())),120) - and CONVERT(CHAR(10),DATEADD(month,-3,DATEADD(dd,-DAY(GETDATE())+1,GETDATE())),120) + CONVERT(CHAR(10),DATEADD(month,-3,DATEADD(dd,-DAY(GETDATE())+1,GETDATE())),120) + and CONVERT(CHAR(10),DATEADD(month,-2,DATEADD(dd,-DAY(GETDATE())+1,GETDATE())),120) union select count(*) num,CONVERT(CHAR(7),DATEADD(month,-4,DATEADD(dd,-DAY(GETDATE())+1,GETDATE())),111) Mont from #tempNum t where t.wipnum = t.monum and t.EndTime between - CONVERT(CHAR(10),DATEADD(month,-5,DATEADD(dd,-DAY(GETDATE())+1,GETDATE())),120) - and CONVERT(CHAR(10),DATEADD(month,-4,DATEADD(dd,-DAY(GETDATE())+1,GETDATE())),120) + CONVERT(CHAR(10),DATEADD(month,-4,DATEADD(dd,-DAY(GETDATE())+1,GETDATE())),120) + and CONVERT(CHAR(10),DATEADD(month,-3,DATEADD(dd,-DAY(GETDATE())+1,GETDATE())),120) union select count(*) num,CONVERT(CHAR(7),DATEADD(month,-5,DATEADD(dd,-DAY(GETDATE())+1,GETDATE())),111) Mont from #tempNum t where t.wipnum = t.monum and t.EndTime between - CONVERT(CHAR(10),DATEADD(month,-6,DATEADD(dd,-DAY(GETDATE())+1,GETDATE())),120) - and CONVERT(CHAR(10),DATEADD(month,-5,DATEADD(dd,-DAY(GETDATE())+1,GETDATE())),120) + CONVERT(CHAR(10),DATEADD(month,-5,DATEADD(dd,-DAY(GETDATE())+1,GETDATE())),120) + and CONVERT(CHAR(10),DATEADD(month,-4,DATEADD(dd,-DAY(GETDATE())+1,GETDATE())),120) order by Mont if exists(select * from tempdb..sysobjects where id=object_id('tempdb..#tempNum')) drop table #tempNum @@ -1632,64 +1632,64 @@ left join #Tempcccc cc on a.销售车辆号=cc.销售车辆号 drop table #Tcustt_TOCKQty - //--用途程表关联wip表拼出所有的检验数据 - //select a.ITEMCODE,a.ROUTECODE,a.OPCODE, a.OPType AS OPTIONALOP, a.OPControlSeq,b.LOTNO, - //isnull(b.ACTIONRESULT,'~') as ACTIONRESULT,b.MOCODE,b.MOSEQ,d.molotcode into #Tcustttemp1 - //from ICSITEMROUTE2OPLot a with(nolock) - //left join icslotonwip b with(nolock) on a.ITEMCODE = b.ITEMCODE and a.ROUTECODE = b.ROUTECODE and a.OPCODE = b.OPCODE - //inner join (SELECT distinct a.ITEMCODE,a.ROUTECODE - //from ICSITEMROUTE2OPLot a with(nolock) - //left join icslotonwip b with(nolock) on a.ITEMCODE = b.ITEMCODE and a.ROUTECODE = b.ROUTECODE and a.OPCODE = b.OPCODE - //WHERE b.ACTIONRESULT is not null - // ) c on a.ITEMCODE = c.ITEMCODE and a.ROUTECODE = c.ROUTECODE + ----用途程表关联wip表拼出所有的检验数据 + --select a.ITEMCODE,a.ROUTECODE,a.OPCODE, a.OPType AS OPTIONALOP, a.OPControlSeq,b.LOTNO, + --isnull(b.ACTIONRESULT,'~') as ACTIONRESULT,b.MOCODE,b.MOSEQ,d.molotcode into #Tcustttemp1 + --from ICSITEMROUTE2OPLot a with(nolock) + --left join icslotonwip b with(nolock) on a.ITEMCODE = b.ITEMCODE and a.ROUTECODE = b.ROUTECODE and a.OPCODE = b.OPCODE + --inner join (SELECT distinct a.ITEMCODE,a.ROUTECODE + --from ICSITEMROUTE2OPLot a with(nolock) + --left join icslotonwip b with(nolock) on a.ITEMCODE = b.ITEMCODE and a.ROUTECODE = b.ROUTECODE and a.OPCODE = b.OPCODE + --WHERE b.ACTIONRESULT is not null + -- ) c on a.ITEMCODE = c.ITEMCODE and a.ROUTECODE = c.ROUTECODE - //left join icsmo d with(nolock) on d.MOCODE = b.MOCODE and b.SEQ = d.MOSEQ + --left join icsmo d with(nolock) on d.MOCODE = b.MOCODE and b.SEQ = d.MOSEQ - //order by ITEMCODE,OPControlSeq - //--把wip表里有在开工的排除 - //select ITEMCODE,ROUTECODE,ACTIONRESULT into #Tcusttfilter from icslotonwip with(nolock) - //group by ITEMCODE,ROUTECODE,ACTIONRESULT HAVING COUNT(ITEMCODE) = 1 and COUNT(ROUTECODE)=1 - //--找出待检的工序 - //select ITEMCODE,a.ROUTECODE,OPCODE,c.MOCODE,c.MOSEQ,c.LOTNO into #TcusttDJ from #Tcustttemp1 a - //inner join - //(select min(OPControlSeq) OPControlSeq,ROUTECODE from #Tcustttemp1 where OPTIONALOP = '检验工序' and LOTNO is null--最小未检前一道结束的 - //and ROUTECODE in - //(select ROUTECODE from (select max(a.OPControlSeq) OPControlSeq,a.ROUTECODE from #Tcustttemp1 a - //inner join (select min(OPControlSeq) OPControlSeq,ROUTECODE from #Tcustttemp1 where OPTIONALOP = '检验工序' and LOTNO is null group by ROUTECODE) b - //on a.ROUTECODE = b.ROUTECODE and b.OPControlSeq >a.OPControlSeq and a.ACTIONRESULT = 'COLLECT_END' group by a.ROUTECODE) a ) - //GROUP BY ROUTECODE) b - //on a.ROUTECODE = b.ROUTECODE and a.OPControlSeq = b.OPControlSeq - //inner join ( select distinct mocode,MOSEQ,ROUTECODE,LOTNO from icslotonwip with(nolock) ) c - //on a.ROUTECODE =c.ROUTECODE - //where - //not EXISTS( select 1 from #Tcusttfilter f - // where f.ITEMCODE=a.ITEMCODE and f.ROUTECODE =a.ROUTECODE ) + --order by ITEMCODE,OPControlSeq + ----把wip表里有在开工的排除 + --select ITEMCODE,ROUTECODE,ACTIONRESULT into #Tcusttfilter from icslotonwip with(nolock) + --group by ITEMCODE,ROUTECODE,ACTIONRESULT HAVING COUNT(ITEMCODE) = 1 and COUNT(ROUTECODE)=1 + ----找出待检的工序 + --select ITEMCODE,a.ROUTECODE,OPCODE,c.MOCODE,c.MOSEQ,c.LOTNO into #TcusttDJ from #Tcustttemp1 a + --inner join + --(select min(OPControlSeq) OPControlSeq,ROUTECODE from #Tcustttemp1 where OPTIONALOP = '检验工序' and LOTNO is null--最小未检前一道结束的 + --and ROUTECODE in + --(select ROUTECODE from (select max(a.OPControlSeq) OPControlSeq,a.ROUTECODE from #Tcustttemp1 a + --inner join (select min(OPControlSeq) OPControlSeq,ROUTECODE from #Tcustttemp1 where OPTIONALOP = '检验工序' and LOTNO is null group by ROUTECODE) b + --on a.ROUTECODE = b.ROUTECODE and b.OPControlSeq >a.OPControlSeq and a.ACTIONRESULT = 'COLLECT_END' group by a.ROUTECODE) a ) + --GROUP BY ROUTECODE) b + --on a.ROUTECODE = b.ROUTECODE and a.OPControlSeq = b.OPControlSeq + --inner join ( select distinct mocode,MOSEQ,ROUTECODE,LOTNO from icslotonwip with(nolock) ) c + --on a.ROUTECODE =c.ROUTECODE + --where + --not EXISTS( select 1 from #Tcusttfilter f + -- where f.ITEMCODE=a.ITEMCODE and f.ROUTECODE =a.ROUTECODE ) - //--将数据拼接成在检和待检两部分 + ----将数据拼接成在检和待检两部分 - //--1、待检验数据 待检车辆 - // select count(1) Qty into #Tcustt_TOCKQty - // from ( - //select b.molotCode [销售车号] -- , dj.LOTNO [产品跟踪单], dj.OPCODE [工序代码] - //from #TcusttDJ dj - //inner join #Tcustttemp1 a on dj.ROUTECODE = a.ROUTECODE and a.OPCODE = dj.OPCODE and optionalop ='检验工序' - //inner join icsmo b with(nolock) on dj.MOCODE = b.MOCODE and dj.MOSEQ = b.MOSEQ - //inner join ICSMO2user d with(nolock) on b.mocode = d.mocode and b.moseq = d.moseq and d.opcode = dj.OPCODE - //where MONTH(d.MTIME)=MONTH(GETDATE()) and YEAR((d.MTIME)) = YEAR(GETDATE()) - //union - //select c.molotCode [销售车号] --, d.LOTNO [产品跟踪单], d.OPCODE [工序代码] - //from - //(select * from ICSITEMROUTE2OP with(nolock) where optionalop ='检验工序' and routecode in( - //select DISTINCT routecode from ICSITEMROUTE2OP with(nolock) GROUP BY routecode HAVING count(*) = 1 )) a --查询只有一道工序的工艺路线 - //inner JOIN ICSMO2ROUTE b with(nolock) on a.routeid = b.routeid - //inner join ICSMO c with(nolock) on c.id = b.moid - //inner join ICSMO2user d with(nolock) on c.mocode = d.mocode and c.moseq = d.moseq - //inner join ICSITEMROUTE2OPLot lot with(nolock) on lot.itemcode = a.ITEMCODE and b.ROUTECODE = lot.ROUTECODE and lot.OPCODE = d.opcode + ----1、待检验数据 待检车辆 + -- select count(1) Qty into #Tcustt_TOCKQty + -- from ( + --select b.molotCode [销售车号] -- , dj.LOTNO [产品跟踪单], dj.OPCODE [工序代码] + --from #TcusttDJ dj + --inner join #Tcustttemp1 a on dj.ROUTECODE = a.ROUTECODE and a.OPCODE = dj.OPCODE and optionalop ='检验工序' + --inner join icsmo b with(nolock) on dj.MOCODE = b.MOCODE and dj.MOSEQ = b.MOSEQ + --inner join ICSMO2user d with(nolock) on b.mocode = d.mocode and b.moseq = d.moseq and d.opcode = dj.OPCODE + --where MONTH(d.MTIME)=MONTH(GETDATE()) and YEAR((d.MTIME)) = YEAR(GETDATE()) + --union + --select c.molotCode [销售车号] --, d.LOTNO [产品跟踪单], d.OPCODE [工序代码] + --from + --(select * from ICSITEMROUTE2OP with(nolock) where optionalop ='检验工序' and routecode in( + --select DISTINCT routecode from ICSITEMROUTE2OP with(nolock) GROUP BY routecode HAVING count(*) = 1 )) a --查询只有一道工序的工艺路线 + --inner JOIN ICSMO2ROUTE b with(nolock) on a.routeid = b.routeid + --inner join ICSMO c with(nolock) on c.id = b.moid + --inner join ICSMO2user d with(nolock) on c.mocode = d.mocode and c.moseq = d.moseq + --inner join ICSITEMROUTE2OPLot lot with(nolock) on lot.itemcode = a.ITEMCODE and b.ROUTECODE = lot.ROUTECODE and lot.OPCODE = d.opcode - //where not exists (select 1 from ICSLOTONWIP wip with(nolock) where wip.lotno = d.LOTNO and wip.opcode =d.OPCODE and wip.actionresult ='COLLECT_END' and MONTH(d.MTIME)=MONTH(GETDATE()) and YEAR((d.MTIME)) = YEAR(GETDATE())) + --where not exists (select 1 from ICSLOTONWIP wip with(nolock) where wip.lotno = d.LOTNO and wip.opcode =d.OPCODE and wip.actionresult ='COLLECT_END' and MONTH(d.MTIME)=MONTH(GETDATE()) and YEAR((d.MTIME)) = YEAR(GETDATE())) - //) jj + --) jj @@ -1795,7 +1795,7 @@ left join #Tempcccc cc on a.销售车辆号=cc.销售车辆号 LEFT JOIN ICSITEMROUTE2OPLot ll with(nolock) on ll.OPCODE=a.OPCODE and ll.LotNo=a.LOTNO - WHERE ll.OPType='检验工序' and MONTH(d.MTIME)=MONTH(GETDATE()) and YEAR((d.MTIME)) = YEAR(GETDATE()) --b.MTIME>= CONVERT(varchar(7), dateadd(mm,-1,getdate()), 21) +'-01 00:00:00' + WHERE ll.OPType='检验工序' and MONTH(d.BeginTime)=MONTH(GETDATE()) and YEAR((d.BeginTime)) = YEAR(GETDATE()) --b.MTIME>= CONVERT(varchar(7), dateadd(mm,-1,getdate()), 21) +'-01 00:00:00' and b.CKRESULT is not null ) jj @@ -1804,6 +1804,7 @@ left join #Tempcccc cc on a.销售车辆号=cc.销售车辆号 isnull((select Qty from #Tcustt_CKQty ),0) 已检车辆, isnull((select count(1) from ICSZXCheck with(nolock) where checked='0'),0) 待整改, isnull((select count(1) from ICSZXCheck with(nolock) where checked='1' and month>= CONVERT(varchar(7), dateadd(mm,-1,getdate()), 21) +'-01' ),0) 已整改 + drop table #Tcustt_TOCKQty drop table #temp1 drop table #DJ drop table #yjCheck