| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348 |
- <%@ WebHandler Language="C#" Class="rpt" %>
- using System;
- using System.Web;
- using System.Web.SessionState;
- using System.Data;
- using System.Text;
- using System.Collections;
- using System.Collections.Generic;
- using Newtonsoft.Json;
- using Newtonsoft.Json.Linq;
- using Curtain.DataAccess;
- using DK.XuWei.WebMes;
- public class rpt : IHttpHandler, IReadOnlySessionState
- {
- public void ProcessRequest(HttpContext context)
- {
- context.Response.ContentType = "text/plain";
- using(IDataAccess conn = DataAccess.Create())
- {
- int nodetype1;
- //主表
- if(context.Request["m"].ToString()=="0")
- {
- DateTime dateBegin = Convert.ToDateTime(context.Request["datebeginMaster"]);
- DateTime dateEnd = Convert.ToDateTime(context.Request["dateendMaster"]).AddDays(1);
- DateTime dbegin = dateBegin;
- string totalMaster = context.Request["totalMaster"].ToString();
- string datestr = "";
- if (totalMaster == "YYYYMMDD") {
- datestr += " SELECT " + "'" + dateBegin.Year + "'||'" + (dateBegin.Month + "").PadLeft(2, '0') + "'||'" + (dateBegin.Day + "").PadLeft(2, '0') + "' AS 时间 FROM DUAL ";
- while (dbegin < dateEnd.AddDays(-1)) {
- dbegin = dbegin.AddDays(1);
- datestr += " UNION SELECT " + "'" + dbegin.Year + "'||'" + (dbegin.Month + "").PadLeft(2, '0') + "'||'" + (dbegin.Day + "").PadLeft(2, '0') + "' AS 时间 FROM DUAL ";
- }
- datestr += " UNION SELECT '合计' AS 时间 FROM DUAL ";
- } else if (totalMaster == "YYYYMM") {
- datestr += " SELECT " + "'" + dateBegin.Year + "'||'" + (dateBegin.Month + "").PadLeft(2, '0') + "' AS 时间 FROM DUAL ";
- //while (dbegin.Month < dateEnd.AddDays(-1).Month) {
- // dbegin = dbegin.AddMonths(1);
- // datestr += " UNION SELECT " + "'" + dbegin.Year + "'||'" + (dbegin.Month + "").PadLeft(2, '0') + "' AS 时间 FROM DUAL ";
- //}
- DateTime start = Convert.ToDateTime(dateBegin.ToShortDateString());
- DateTime end = Convert.ToDateTime(dateEnd.ToShortDateString());
- TimeSpan sp = end.Subtract(start);
- while (DateTime.DaysInMonth(dateEnd.AddDays(-1).Year,dateEnd.AddDays(-1).Month)< sp.Days + dateBegin.Day - 1) {
- dbegin = dbegin.AddMonths(1);
- sp = end.Subtract(Convert.ToDateTime(dbegin.ToShortDateString()));
- datestr += " UNION SELECT " + "'" + dbegin.Year + "'||'" + (dbegin.Month + "").PadLeft(2, '0') + "' AS 时间 FROM DUAL ";
- }
- datestr += " UNION SELECT '合计' AS 时间 FROM DUAL ";
- }
- string groutinglineId = context.Request["groutinglineMaster[]"] is object ? context.Request["groutinglineMaster[]"].ToString() : "0,0";
- if (groutinglineId == "0,0" && (context.Request["groutinglineMaster"] is object)) groutinglineId = context.Request["groutinglineMaster"].ToString();
- if (groutinglineId == "") groutinglineId = "0,0";
-
- string goodsId = context.Request["goodsMaster[]"] is object ? context.Request["goodsMaster[]"].ToString() : "0,0";
- if (goodsId == "0,0" && (context.Request["goodsMaster"] is object)) goodsId = context.Request["goodsMaster"].ToString();
- if (goodsId == "") goodsId = "0,0";
- string highFlag = context.Request["highFlagMaster"];
- if (highFlag == "") highFlag = "-1";
- string testType = context.Request["testMaster"];
- if (testType == "2") testType = "";
- string testFlagMaster = context.Request["testFlagMaster"];
- if (testFlagMaster == "2") testFlagMaster = "";
- string testmouldflag = " ";
- if (testType == "0")
- {
- //testmouldflag = " AND GDD.TESTMOULDFLAG = '0' ";
- testmouldflag = @" AND ((0 = 0 AND GDD.TESTMOULDFLAG = 0 AND (GDD.TESTFORMFLAG IN(0,1) OR GDD.TESTFORMFLAG IS NULL ) ) ";
- }
- else if (testType == "1")
- {
- //testmouldflag = " AND GDD.TESTMOULDFLAG = '1' ";
- testmouldflag = " AND (1 = 1 AND (GDD.TESTFORMFLAG = 2 OR GDD.TESTMOULDFLAG = 1)) ";
-
- }
- string testflagmaster = " ";
- if (testFlagMaster == "0")
- {
- testflagmaster = " AND GDD.TESTFLAG = '0' ";
- }
- else if (testFlagMaster == "1")
- {
- testflagmaster = " AND GDD.TESTFLAG = '1' ";
- }
- //读取报表数据
- string sqlStr = @"
-
- WITH
- 拼接日期 AS
- ({DATESTR}),
- 注浆数 AS
- (
- SELECT
- GROUPING_ID (TO_CHAR(GH.CREATETIME, 'YYYYMM')) AS GID,
- NVL(TO_CHAR(GH.CREATETIME, 'YYYYMM'),'合计') AS 时间,
- SUM(CASE WHEN (INSTR(GDD.GROUTINGLINECODE, 'A') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
- AND INSTR(GT.GOODSTYPECODE, '001002') = 1 AND GH.DATATYPE = 1 THEN 1 ELSE
- CASE WHEN (INSTR(GDD.GROUTINGLINECODE, 'A') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
- AND INSTR(GT.GOODSTYPECODE, '001002') = 1 AND GH.DATATYPE != 1 THEN -1 END
- END) AS 注浆数_一部全部,
- SUM(CASE WHEN (INSTR(GDD.GROUTINGLINECODE, 'B') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
- AND INSTR(GT.GOODSTYPECODE, '001001') = 1 AND GH.DATATYPE = 1 THEN 1 ELSE
- CASE WHEN (INSTR(GDD.GROUTINGLINECODE, 'B') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
- AND INSTR(GT.GOODSTYPECODE, '001001') = 1 AND GH.DATATYPE != 1 THEN -1 END
- END ) AS 注浆数_二部全部,
- SUM(CASE WHEN INSTR(GDD.GROUTINGLINECODE, 'C') = 1 AND GH.DATATYPE = 1 THEN 1 ELSE
- CASE WHEN INSTR(GDD.GROUTINGLINECODE, 'C') = 1 AND GH.DATATYPE != 1 THEN -1 END
- END ) 注浆数_三部全部
- FROM TP_PM_GOODSCHANGEHISTORY GH
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD
- ON GDD.GROUTINGDAILYDETAILID = GH.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_USER U
- ON U.USERID = GH.USERID
- INNER JOIN TP_MST_GOODS G
- ON G.GOODSID = GH.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT
- ON G.GOODSTYPEID = GT.GOODSTYPEID
- INNER JOIN TP_PC_GROUTINGLINE GL
- ON GDD.GROUTINGLINEID = GL.GROUTINGLINEID
- WHERE GH.CREATETIME >= @DATEBEGIN@
- AND GH.CREATETIME < @DATEEND@
- AND (G.GOODSID IN ({GOODSID}) OR '{GOODSID}' = '0,0')
- AND (GDD.GROUTINGLINEID IN (0,0) OR '0,0' = '0,0')
- AND (GL.HIGHPRESSUREFLAG = @HIGHPRESSUREFLAG@ OR @HIGHPRESSUREFLAG@ = '-1')
- {TESTMOULDFLAG}
- {TESTFLAG}
- AND GH.DATATYPE IN (1, 2)
- AND G.SCRAPSUMFLAG = '1'
- GROUP BY GROUPING SETS (TO_CHAR(GH.CREATETIME, 'YYYYMM'),())
- ),
- 成型报损 AS
- (
- SELECT
- GROUPING_ID (TO_CHAR(GH.CREATETIME, 'YYYYMM')) AS GID,
- NVL(TO_CHAR(GH.CREATETIME, 'YYYYMM'),'合计') AS 时间,
- SUM(CASE WHEN (INSTR(GDD.GROUTINGLINECODE, 'A') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
- AND INSTR(GT.GOODSTYPECODE, '001002') = 1 AND GH.DATATYPE = 3 THEN 1 ELSE
- CASE WHEN (INSTR(GDD.GROUTINGLINECODE, 'A') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
- AND INSTR(GT.GOODSTYPECODE, '001002') = 1 AND GH.DATATYPE != 3 THEN -1 END
- END) AS 成型报损_一部全部,
- SUM(CASE WHEN (INSTR(GDD.GROUTINGLINECODE, 'B') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
- AND INSTR(GT.GOODSTYPECODE, '001001') = 1 AND GH.DATATYPE = 3 THEN 1 ELSE
- CASE WHEN (INSTR(GDD.GROUTINGLINECODE, 'B') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
- AND INSTR(GT.GOODSTYPECODE, '001001') = 1 AND GH.DATATYPE != 3 THEN -1 END
- END ) AS 成型报损_二部全部,
- SUM(CASE WHEN INSTR(GDD.GROUTINGLINECODE, 'C') = 1 AND GH.DATATYPE = 3 THEN 1 ELSE
- CASE WHEN INSTR(GDD.GROUTINGLINECODE, 'C') = 1 AND GH.DATATYPE != 3 THEN -1 END
- END ) 成型报损_三部全部
- FROM
- TP_PM_GOODSCHANGEHISTORY GH
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = GH.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_USER U ON U.USERID = GH.USERID
- INNER JOIN TP_MST_GOODS G ON G.GOODSID = GH.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
- INNER JOIN TP_PC_GROUTINGLINE GL ON GDD.GROUTINGLINEID = GL.GROUTINGLINEID
- WHERE
- GH.CREATETIME >= @DATEBEGIN@
- AND GH.CREATETIME < @DATEEND@
- AND (G.GOODSID IN ({GOODSID}) OR '{GOODSID}' = '0,0')
- AND (GDD.GROUTINGLINEID IN (0,0) OR '0,0' = '0,0')
- AND (@HIGHPRESSUREFLAG@ = '-1' OR GL.HIGHPRESSUREFLAG = @HIGHPRESSUREFLAG@ )
- {TESTMOULDFLAG}
- {TESTFLAG}
- AND GH.DATATYPE IN ( 3, 4 )
- AND G.SCRAPSUMFLAG = '1'
- GROUP BY GROUPING SETS (TO_CHAR(GH.CREATETIME, 'YYYYMM'),())
- ),
- 半检不合格 AS
- (
- SELECT
- GROUPING_ID (T.时间) AS GID,
- NVL(T.时间,'合计') AS 时间,
- SUM(T.一车间) 半检不合格_一部全部,
- SUM(T.二车间) 半检不合格_二部全部,
- SUM(T.三车间) 半检不合格_三部全部
- FROM(
- SELECT
- SUM(CASE WHEN (INSTR(GDD.GROUTINGLINECODE, 'A') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
- AND INSTR(GT.GOODSTYPECODE, '001002') = 1 THEN 1 ELSE 0
- END) AS 一车间,
- SUM(CASE WHEN (INSTR(GDD.GROUTINGLINECODE, 'B') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
- AND INSTR(GT.GOODSTYPECODE, '001001') = 1 THEN 1 ELSE 0
- END ) AS 二车间,
- SUM(CASE WHEN INSTR(GDD.GROUTINGLINECODE, 'C') = 1 THEN 1 ELSE 0
- END ) 三车间,
- TO_CHAR(SP.AUDITDATE, 'YYYYMM') 时间
- FROM
- TP_PM_SCRAPPRODUCT SP
- INNER JOIN TSAP_HEGII_DATAITEM HGDI ON HGDI.DATACODE IN ( 20,30,40 )
- AND HGDI.ITEMTYPE = 2
- AND HGDI.ITEMID = SP.PROCEDUREID
- INNER JOIN TP_PM_PRODUCTIONDATA PD ON PD.PRODUCTIONDATAID = SP.PRODUCTIONDATAID
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = SP.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G ON G.GOODSID = GDD.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
- INNER JOIN TP_PC_GROUTINGLINE GL ON GDD.GROUTINGLINEID = GL.GROUTINGLINEID
- WHERE
- SP.AUDITSTATUS = 1
- AND SP.AUDITDATE >= @DATEBEGIN@
- AND SP.AUDITDATE < @DATEEND@
- AND (G.GOODSID IN ({GOODSID}) OR '{GOODSID}' = '0,0')
- AND (GDD.GROUTINGLINEID IN (0,0) OR '0,0' = '0,0')
- AND (GL.HIGHPRESSUREFLAG = @HIGHPRESSUREFLAG@ OR @HIGHPRESSUREFLAG@ = '-1')
- {TESTMOULDFLAG}
- {TESTFLAG}
- AND SP.SCRAPTYPE IN (2)
- GROUP BY TO_CHAR(SP.AUDITDATE, 'YYYYMM')
- UNION ALL-- 工序报损撤销
- SELECT
- SUM(CASE WHEN (INSTR(GDD.GROUTINGLINECODE, 'A') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
- AND INSTR(GT.GOODSTYPECODE, '001002') = 1 THEN -1 ELSE 0
- END) AS 一车间,
- SUM(CASE WHEN (INSTR(GDD.GROUTINGLINECODE, 'B') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
- AND INSTR(GT.GOODSTYPECODE, '001001') = 1 THEN -1 ELSE 0
- END ) AS 二车间,
- SUM(CASE WHEN INSTR(GDD.GROUTINGLINECODE, 'C') = 1 THEN -1 ELSE 0
- END ) 三车间,
- TO_CHAR(SP.BACKOUTTIME, 'YYYYMM') 时间
- FROM
- TP_PM_SCRAPPRODUCT SP
- INNER JOIN TSAP_HEGII_DATAITEM HGDI ON HGDI.DATACODE IN ( 20,30,40 )
- AND HGDI.ITEMTYPE = 2
- AND HGDI.ITEMID = SP.PROCEDUREID
- INNER JOIN TP_PM_PRODUCTIONDATA PD ON PD.PRODUCTIONDATAID = SP.PRODUCTIONDATAID
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = SP.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G ON G.GOODSID = GDD.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
- INNER JOIN TP_PC_GROUTINGLINE GL ON GDD.GROUTINGLINEID = GL.GROUTINGLINEID
- WHERE
- SP.AUDITSTATUS = 1
- AND SP.VALUEFLAG = '0'
- AND SP.SCRAPTYPE IN (2)
- AND SP.BACKOUTTIME >= @DATEBEGIN@
- AND SP.BACKOUTTIME < @DATEEND@
- AND (G.GOODSID IN ({GOODSID}) OR '{GOODSID}' = '0,0')
- AND (GDD.GROUTINGLINEID IN (0,0) OR '0,0' = '0,0')
- AND (GL.HIGHPRESSUREFLAG = @HIGHPRESSUREFLAG@ OR @HIGHPRESSUREFLAG@ = '-1')
- {TESTMOULDFLAG}
- {TESTFLAG}
- GROUP BY TO_CHAR(SP.BACKOUTTIME, 'YYYYMM')
- -- AND SP.SCRAPTYPE IN (0, 2, 3)
- UNION ALL
- -- 干补报损
- ---------------------------------------------------
- SELECT
- COUNT(CASE WHEN WORKSHOP = 1 THEN 1 ELSE 0 END) 一车间,
- COUNT(CASE WHEN WORKSHOP = 2 THEN 1 ELSE 0 END) 二车间,
- COUNT(CASE WHEN WORKSHOP = 3 THEN 1 ELSE 0 END) 三车间,
- TO_CHAR(AUDITDATE, 'YYYYMM') 时间
- --COUNT( * ) SCRAPNUM
- FROM
- (
- SELECT
- SP.GOODSCODE,
- GDD.MATERIALCODE SAPCODE,
- PD.USERCODE,
- CASE
-
- WHEN HGDI.WORKSHOP = 2
- AND INSTR( GT.GOODSTYPECODE, '001002' ) = 1 THEN
- 1
- WHEN HGDI.WORKSHOP = 2
- AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1 THEN
- 2
- WHEN HGDI.WORKSHOP = 3 THEN
- 3 ELSE 4
- END AS WORKSHOP,
- GDD.TESTMOULDFLAG,
- G.GOODS_LINE_CODE,
- SP.AUDITDATE,
- TO_CHAR( SP.AUDITDATE, 'yymm' ) || '5000E' AS CHARG --TO_CHAR(SP.AUDITDATE, 'yyyymm') AS CHARG
- FROM
- (
- SELECT
- T.*
- FROM
- (
- SELECT
- SP.BARCODE,
- SP.GOODSCODE,
- SP.GROUTINGDAILYDETAILID,
- PD.PROCEDUREID,
- PD.PRODUCTIONDATAID,
- SP.AUDITDATE,
- RANK ( ) OVER ( PARTITION BY SP.BARCODE ORDER BY PD.PRODUCTIONDATAID DESC ) AS RK
- FROM
- TP_PM_SCRAPPRODUCT SP
- INNER JOIN TP_PM_PRODUCTIONDATA PD ON SP.BARCODE = PD.BARCODE -- 不包含干补工序
-
- AND PD.PROCEDUREID <> 18 -- 要找干补之前的工序
-
- AND PD.PRODUCTIONDATAID < SP.PRODUCTIONDATAID
- AND PD.VALUEFLAG = '1'
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = SP.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G ON G.GOODSID = GDD.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
- INNER JOIN TP_PC_GROUTINGLINE GL ON GDD.GROUTINGLINEID = GL.GROUTINGLINEID
- WHERE
- SP.AUDITSTATUS = 1
- AND SP.PROCEDUREID = 18
- AND SP.SCRAPTYPE IN (2)
- AND SP.AUDITDATE >= @DATEBEGIN@
- AND SP.AUDITDATE < @DATEEND@
- AND (G.GOODSID IN ({GOODSID}) OR '{GOODSID}' = '0,0')
- AND (GDD.GROUTINGLINEID IN (0,0) OR '0,0' = '0,0')
- AND (GL.HIGHPRESSUREFLAG = @HIGHPRESSUREFLAG@ OR @HIGHPRESSUREFLAG@ = '-1')
- {TESTMOULDFLAG}
- {TESTFLAG}
- ) T
- WHERE
- T.RK <= 1
- ) SP
- INNER JOIN TSAP_HEGII_DATAITEM HGDI ON HGDI.DATACODE IN ( 20,30,40 )
- AND HGDI.ITEMTYPE = 2
- AND HGDI.ITEMID = SP.PROCEDUREID
- INNER JOIN TP_PM_PRODUCTIONDATA PD ON PD.PRODUCTIONDATAID = SP.PRODUCTIONDATAID
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = SP.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G ON G.GOODSID = PD.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
- ) GROUP BY TO_CHAR(AUDITDATE, 'YYYYMM') )T GROUP BY
- GROUPING SETS ( T.时间, ( ) )
- ),
- 复检不合格 AS
- (
- SELECT
- GROUPING_ID (T.时间) AS GID,
- NVL(T.时间,'合计') AS 时间,
- SUM(T.一车间) 复检不合格_一部全部,
- SUM(T.二车间) 复检不合格_二部全部,
- SUM(T.三车间) 复检不合格_三部全部
- FROM(
- SELECT
- SUM(CASE WHEN (INSTR(GDD.GROUTINGLINECODE, 'A') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
- AND INSTR(GT.GOODSTYPECODE, '001002') = 1 THEN 1 ELSE 0
- END) AS 一车间,
- SUM(CASE WHEN (INSTR(GDD.GROUTINGLINECODE, 'B') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
- AND INSTR(GT.GOODSTYPECODE, '001001') = 1 THEN 1 ELSE 0
- END ) AS 二车间,
- SUM(CASE WHEN INSTR(GDD.GROUTINGLINECODE, 'C') = 1 THEN 1 ELSE 0
- END ) 三车间,
- TO_CHAR(SP.AUDITDATE, 'YYYYMM') 时间
- FROM
- TP_PM_SCRAPPRODUCT SP
- INNER JOIN TSAP_HEGII_DATAITEM HGDI ON HGDI.DATACODE IN ( 20,30,40 )
- AND HGDI.ITEMTYPE = 2
- AND HGDI.ITEMID = SP.PROCEDUREID
- INNER JOIN TP_PM_PRODUCTIONDATA PD ON PD.PRODUCTIONDATAID = SP.PRODUCTIONDATAID
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = SP.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G ON G.GOODSID = GDD.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
- INNER JOIN TP_PC_GROUTINGLINE GL ON GDD.GROUTINGLINEID = GL.GROUTINGLINEID
- WHERE
- SP.AUDITSTATUS = 1
- AND SP.AUDITDATE >= @DATEBEGIN@
- AND SP.AUDITDATE < @DATEEND@
- AND (G.GOODSID IN ({GOODSID}) OR '{GOODSID}' = '0,0')
- AND (GDD.GROUTINGLINEID IN (0,0) OR '0,0' = '0,0')
- AND (GL.HIGHPRESSUREFLAG = @HIGHPRESSUREFLAG@ OR @HIGHPRESSUREFLAG@ = '-1')
- {TESTMOULDFLAG}
- {TESTFLAG}
- AND SP.SCRAPTYPE IN (3)
- GROUP BY TO_CHAR(SP.AUDITDATE, 'YYYYMM')
- UNION ALL-- 工序报损撤销
- SELECT
- SUM(CASE WHEN (INSTR(GDD.GROUTINGLINECODE, 'A') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
- AND INSTR(GT.GOODSTYPECODE, '001002') = 1 THEN -1 ELSE 0
- END) AS 一车间,
- SUM(CASE WHEN (INSTR(GDD.GROUTINGLINECODE, 'B') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
- AND INSTR(GT.GOODSTYPECODE, '001001') = 1 THEN -1 ELSE 0
- END ) AS 二车间,
- SUM(CASE WHEN INSTR(GDD.GROUTINGLINECODE, 'C') = 1 THEN -1 ELSE 0
- END ) 三车间,
- TO_CHAR(SP.BACKOUTTIME, 'YYYYMM') 时间
- FROM
- TP_PM_SCRAPPRODUCT SP
- INNER JOIN TSAP_HEGII_DATAITEM HGDI ON HGDI.DATACODE IN ( 20,30,40 )
- AND HGDI.ITEMTYPE = 2
- AND HGDI.ITEMID = SP.PROCEDUREID
- INNER JOIN TP_PM_PRODUCTIONDATA PD ON PD.PRODUCTIONDATAID = SP.PRODUCTIONDATAID
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = SP.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G ON G.GOODSID = GDD.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
- INNER JOIN TP_PC_GROUTINGLINE GL ON GDD.GROUTINGLINEID = GL.GROUTINGLINEID
- WHERE
- SP.AUDITSTATUS = 1
- AND SP.VALUEFLAG = '0'
- AND SP.SCRAPTYPE IN (3)
- AND SP.BACKOUTTIME >= @DATEBEGIN@
- AND SP.BACKOUTTIME < @DATEEND@
- AND (G.GOODSID IN ({GOODSID}) OR '{GOODSID}' = '0,0')
- AND (GDD.GROUTINGLINEID IN (0,0) OR '0,0' = '0,0')
- AND (GL.HIGHPRESSUREFLAG = @HIGHPRESSUREFLAG@ OR @HIGHPRESSUREFLAG@ = '-1')
- {TESTMOULDFLAG}
- {TESTFLAG}
- GROUP BY TO_CHAR(SP.BACKOUTTIME, 'YYYYMM')
- -- AND SP.SCRAPTYPE IN (0, 2, 3)
- UNION ALL
- -- 干补报损
- ---------------------------------------------------
- SELECT
- COUNT(CASE WHEN WORKSHOP = 1 THEN 1 ELSE 0 END) 一车间,
- COUNT(CASE WHEN WORKSHOP = 2 THEN 1 ELSE 0 END) 二车间,
- COUNT(CASE WHEN WORKSHOP = 3 THEN 1 ELSE 0 END) 三车间,
- TO_CHAR(AUDITDATE, 'YYYYMM') 时间
- FROM
- (
- SELECT
- SP.GOODSCODE,
- GDD.MATERIALCODE SAPCODE,
- PD.USERCODE,
- CASE
- WHEN HGDI.WORKSHOP = 2
- AND INSTR( GT.GOODSTYPECODE, '001002' ) = 1 THEN
- 1
- WHEN HGDI.WORKSHOP = 2
- AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1 THEN
- 2
- WHEN HGDI.WORKSHOP = 3 THEN
- 3 ELSE 4
- END AS WORKSHOP,
- GDD.TESTMOULDFLAG,
- G.GOODS_LINE_CODE,
- SP.AUDITDATE
-
- FROM
- (
- SELECT
- T.*
- FROM
- (
- SELECT
- SP.BARCODE,
- SP.GOODSCODE,
- SP.GROUTINGDAILYDETAILID,
- PD.PROCEDUREID,
- PD.PRODUCTIONDATAID,
- SP.AUDITDATE,
- RANK ( ) OVER ( PARTITION BY SP.BARCODE ORDER BY PD.PRODUCTIONDATAID DESC ) AS RK
- FROM
- TP_PM_SCRAPPRODUCT SP
- INNER JOIN TP_PM_PRODUCTIONDATA PD ON SP.BARCODE = PD.BARCODE -- 不包含干补工序
-
- AND PD.PROCEDUREID <> 18 -- 要找干补之前的工序
-
- AND PD.PRODUCTIONDATAID < SP.PRODUCTIONDATAID
- AND PD.VALUEFLAG = '1'
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = SP.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G ON G.GOODSID = GDD.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
- INNER JOIN TP_PC_GROUTINGLINE GL ON GDD.GROUTINGLINEID = GL.GROUTINGLINEID
- WHERE
- SP.AUDITSTATUS = 1
- AND SP.PROCEDUREID = 18
- AND SP.SCRAPTYPE IN (3)
- AND SP.AUDITDATE >= @DATEBEGIN@
- AND SP.AUDITDATE < @DATEEND@
- AND (G.GOODSID IN ({GOODSID}) OR '{GOODSID}' = '0,0')
- AND (GDD.GROUTINGLINEID IN (0,0) OR '0,0' = '0,0')
- AND (GL.HIGHPRESSUREFLAG = @HIGHPRESSUREFLAG@ OR @HIGHPRESSUREFLAG@ = '-1')
- {TESTMOULDFLAG}
- {TESTFLAG}
- ) T
- WHERE
- T.RK <= 1
- ) SP
- INNER JOIN TSAP_HEGII_DATAITEM HGDI ON HGDI.DATACODE IN ( 20,30,40 )
- AND HGDI.ITEMTYPE = 2
- AND HGDI.ITEMID = SP.PROCEDUREID
- INNER JOIN TP_PM_PRODUCTIONDATA PD ON PD.PRODUCTIONDATAID = SP.PRODUCTIONDATAID
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = SP.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G ON G.GOODSID = PD.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
- ) GROUP BY TO_CHAR(AUDITDATE, 'YYYYMM')
- )T GROUP BY
- GROUPING SETS ( T.时间, ( ) )
- ),
- 半成品损坯数 AS
- (
- SELECT
- GROUPING_ID (T.时间) AS GID,
- NVL(T.时间,'合计') AS 时间,
- SUM(T.一车间) 半成品损坯数_一部全部,
- SUM(T.二车间) 半成品损坯数_二部全部,
- SUM(T.三车间) 半成品损坯数_三部全部
- FROM(
- SELECT
- SUM( CASE WHEN HGDI.WORKSHOP = 2
- AND INSTR(GT.GOODSTYPECODE, '001002') = 1 THEN
- 1 ELSE 0
- END) AS 一车间,
- SUM(CASE WHEN HGDI.WORKSHOP = 2
- AND INSTR(GT.GOODSTYPECODE, '001001') = 1 THEN
- 1 ELSE 0
- END ) AS 二车间,
- SUM(CASE WHEN HGDI.WORKSHOP = 3 THEN 1 ELSE 0
- END ) 三车间,
- TO_CHAR(SP.AUDITDATE, 'YYYYMM') 时间
- FROM
- TP_PM_SCRAPPRODUCT SP
- INNER JOIN TSAP_HEGII_DATAITEM HGDI ON HGDI.DATACODE IN ( 20,30,40 )
- AND HGDI.ITEMTYPE = 2
- AND HGDI.ITEMID = SP.PROCEDUREID
- INNER JOIN TP_PM_PRODUCTIONDATA PD ON PD.PRODUCTIONDATAID = SP.PRODUCTIONDATAID
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = SP.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G ON G.GOODSID = GDD.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
- INNER JOIN TP_PC_GROUTINGLINE GL ON GDD.GROUTINGLINEID = GL.GROUTINGLINEID
- WHERE
- SP.AUDITSTATUS = 1
- AND SP.AUDITDATE >= @DATEBEGIN@
- AND SP.AUDITDATE < @DATEEND@
- AND (G.GOODSID IN ({GOODSID}) OR '{GOODSID}' = '0,0')
- AND (GDD.GROUTINGLINEID IN (0,0) OR '0,0' = '0,0')
- AND (GL.HIGHPRESSUREFLAG = @HIGHPRESSUREFLAG@ OR @HIGHPRESSUREFLAG@ = '-1')
- {TESTMOULDFLAG}
- {TESTFLAG}
- AND SP.SCRAPTYPE IN (0)
- GROUP BY TO_CHAR(SP.AUDITDATE, 'YYYYMM')
- UNION ALL-- 工序报损撤销
- SELECT
- SUM( CASE WHEN HGDI.WORKSHOP = 2
- AND INSTR(GT.GOODSTYPECODE, '001002') = 1 THEN
- -1 ELSE 0
- END) AS 一车间,
- SUM(CASE WHEN HGDI.WORKSHOP = 2
- AND INSTR(GT.GOODSTYPECODE, '001001') = 1 THEN
- -1 ELSE 0
- END ) AS 二车间,
- SUM(CASE WHEN HGDI.WORKSHOP = 3 THEN -1 ELSE 0
- END ) 三车间,
- TO_CHAR(SP.BACKOUTTIME, 'YYYYMM') 时间
- FROM
- TP_PM_SCRAPPRODUCT SP
- INNER JOIN TSAP_HEGII_DATAITEM HGDI ON HGDI.DATACODE IN ( 20,30,40 )
- AND HGDI.ITEMTYPE = 2
- AND HGDI.ITEMID = SP.PROCEDUREID
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = SP.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G ON G.GOODSID = GDD.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
- INNER JOIN TP_PC_GROUTINGLINE GL ON GDD.GROUTINGLINEID = GL.GROUTINGLINEID
- WHERE
- SP.AUDITSTATUS = 1
- AND SP.VALUEFLAG = '0'
- AND SP.SCRAPTYPE IN (0)
- AND SP.BACKOUTTIME >= @DATEBEGIN@
- AND SP.BACKOUTTIME < @DATEEND@ -- AND SP.SCRAPTYPE IN (0, 2, 3)
- AND (G.GOODSID IN ({GOODSID}) OR '{GOODSID}' = '0,0')
- AND (GDD.GROUTINGLINEID IN (0,0) OR '0,0' = '0,0')
- AND (GL.HIGHPRESSUREFLAG = @HIGHPRESSUREFLAG@ OR @HIGHPRESSUREFLAG@ = '-1')
- {TESTMOULDFLAG}
- {TESTFLAG}
- GROUP BY TO_CHAR(SP.BACKOUTTIME, 'YYYYMM') UNION ALL
- -- 干补报损
- ---------------------------------------------------
- SELECT
- SUM(CASE WHEN WORKSHOP = 1 THEN 1 ELSE 0 END) 一车间,
- SUM(CASE WHEN WORKSHOP = 2 THEN 1 ELSE 0 END) 二车间,
- SUM(CASE WHEN WORKSHOP = 3 THEN 1 ELSE 0 END) 三车间,
- TO_CHAR(AUDITDATE, 'YYYYMM') 时间
- FROM
- (
- SELECT
- SP.GOODSCODE,
- GDD.MATERIALCODE SAPCODE,
- PD.USERCODE,
- CASE
-
- WHEN HGDI.WORKSHOP = 2
- AND INSTR( GT.GOODSTYPECODE, '001002' ) = 1 THEN
- 1
- WHEN HGDI.WORKSHOP = 2
- AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1 THEN
- 2
- WHEN HGDI.WORKSHOP = 3 THEN
- 3 ELSE 4
- END AS WORKSHOP,
- GDD.TESTMOULDFLAG,
- G.GOODS_LINE_CODE,
- SP.AUDITDATE
-
- FROM
- (
- SELECT
- T.*
- FROM
- (
- SELECT
- SP.BARCODE,
- SP.GOODSCODE,
- SP.GROUTINGDAILYDETAILID,
- PD.PROCEDUREID,
- PD.PRODUCTIONDATAID,
- SP.AUDITDATE,
- RANK ( ) OVER ( PARTITION BY SP.BARCODE ORDER BY PD.PRODUCTIONDATAID DESC ) AS RK
- FROM
- TP_PM_SCRAPPRODUCT SP
- INNER JOIN TP_PM_PRODUCTIONDATA PD ON SP.BARCODE = PD.BARCODE -- 不包含干补工序
-
- AND PD.PROCEDUREID <> 18 -- 要找干补之前的工序
-
- AND PD.PRODUCTIONDATAID < SP.PRODUCTIONDATAID
- AND PD.VALUEFLAG = '1'
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = SP.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G ON G.GOODSID = GDD.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
- INNER JOIN TP_PC_GROUTINGLINE GL ON GDD.GROUTINGLINEID = GL.GROUTINGLINEID
- WHERE
- SP.AUDITSTATUS = 1
- AND SP.PROCEDUREID = 18
- AND SP.SCRAPTYPE IN (0)
- AND SP.AUDITDATE >= @DATEBEGIN@
- AND SP.AUDITDATE < @DATEEND@
- AND (G.GOODSID IN ({GOODSID}) OR '{GOODSID}' = '0,0')
- AND (GDD.GROUTINGLINEID IN (0,0) OR '0,0' = '0,0')
- AND (GL.HIGHPRESSUREFLAG = @HIGHPRESSUREFLAG@ OR @HIGHPRESSUREFLAG@ = '-1')
- {TESTMOULDFLAG}
- {TESTFLAG}
- ) T
- WHERE
- T.RK <= 1
- ) SP
- INNER JOIN TSAP_HEGII_DATAITEM HGDI ON HGDI.DATACODE IN ( 20,30,40 )
- AND HGDI.ITEMTYPE = 2
- AND HGDI.ITEMID = SP.PROCEDUREID
- INNER JOIN TP_PM_PRODUCTIONDATA PD ON PD.PRODUCTIONDATAID = SP.PRODUCTIONDATAID
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = SP.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G ON G.GOODSID = PD.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
- ) GROUP BY TO_CHAR(AUDITDATE, 'YYYYMM')
- )T GROUP BY
- GROUPING SETS ( T.时间, ( ) )
- ),
- 干补回收数 AS
- (
- SELECT
- GROUPING_ID (T.时间) AS GID,
- NVL(T.时间,'合计') AS 时间,
- SUM(T.一车间) 干补回收数_一部全部,
- SUM(T.二车间) 干补回收数_二部全部,
- SUM(T.三车间) 干补回收数_三部全部
- FROM(
- SELECT
- SUM(CASE WHEN (INSTR(GDD.GROUTINGLINECODE, 'A') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
- AND INSTR(GT.GOODSTYPECODE, '001002') = 1 THEN 1 ELSE 0
- END) AS 一车间,
- SUM(CASE WHEN (INSTR(GDD.GROUTINGLINECODE, 'B') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
- AND INSTR(GT.GOODSTYPECODE, '001001') = 1 THEN 1 ELSE 0
- END ) AS 二车间,
- SUM(CASE WHEN INSTR(GDD.GROUTINGLINECODE, 'C') = 1 THEN 1 ELSE 0
- END ) 三车间,
- TO_CHAR(SP.SPECIALREPAIRTIME, 'YYYYMM') 时间
- FROM
- TP_PM_SCRAPPRODUCT SP
- INNER JOIN TSAP_HEGII_DATAITEM HGDI ON HGDI.DATACODE IN ( '20', '30', '40' )
- AND HGDI.ITEMTYPE = 2
- AND HGDI.ITEMID = SP.PROCEDUREID
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = SP.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G ON G.GOODSID = GDD.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
- INNER JOIN TP_PC_GROUTINGLINE GL ON GDD.GROUTINGLINEID = GL.GROUTINGLINEID
- WHERE
- SP.AUDITSTATUS = 1
- AND SP.GOODSLEVELTYPEID = 9
- AND SP.SPECIALREPAIRTIME >= @DATEBEGIN@
- AND SP.SPECIALREPAIRTIME < @DATEEND@
- AND (G.GOODSID IN ({GOODSID}) OR '{GOODSID}' = '0,0')
- AND (GDD.GROUTINGLINEID IN (0,0) OR '0,0' = '0,0')
- AND (GL.HIGHPRESSUREFLAG = @HIGHPRESSUREFLAG@ OR @HIGHPRESSUREFLAG@ = '-1')
- {TESTMOULDFLAG}
- {TESTFLAG}
- GROUP BY TO_CHAR(SP.SPECIALREPAIRTIME, 'YYYYMM'))T GROUP BY
- GROUPING SETS ( T.时间, ( ) )
- ),
- 出窑数 AS
- (
- SELECT
- GROUPING_ID (TT2.时间) AS GID,
- NVL(TT2.时间,'合计') AS 时间,
- SUM(TT2.出窑数_一部全部) 出窑数_一部全部,
- SUM(TT2.出窑数_二部全部) 出窑数_二部全部,
- SUM(TT2.出窑数_三部全部) 出窑数_三部全部
- FROM(
- SELECT
- TO_CHAR(TT.CREATETIME, 'YYYYMM') AS 时间,
- SUM(CASE WHEN TT.WORKSHOP = 1 THEN 1 ELSE 0 END) 出窑数_一部全部,
- SUM(CASE WHEN TT.WORKSHOP = 2 THEN 1 ELSE 0 END) 出窑数_二部全部,
- SUM(CASE WHEN TT.WORKSHOP = 3 THEN 1 ELSE 0 END) 出窑数_三部全部
- FROM(
- SELECT CASE
- WHEN T.IS3 > 0 THEN
- 3
- WHEN INSTR(T.GOODSTYPECODE, '001002') = 1 THEN
- 1
- WHEN INSTR(T.GOODSTYPECODE, '001001') = 1 THEN
- 2
- ELSE
- 2
- END AS WORKSHOP,
- T.*
- FROM (SELECT DISTINCT PD.BARCODE,
- PD.GOODSCODE,
- PD.CREATETIME,
- GDD.MATERIALCODE SAPCODE,
- PD.USERCODE,
- DECODE(GDD.TESTMOULDFLAG, 0, 'C', 1, 'Y', '-') AS TESTMOULDFLAG,
- G.GOODS_LINE_CODE,
- TO_CHAR(PD.CREATETIME, 'yymm') || '5000E' AS CHARG,
- --TO_CHAR(PD.CREATETIME, 'yyyymm') AS CHARG,
- HGDI.WORKSHOP AS HGDIWORKSHOP,
- GT.GOODSTYPECODE,
- -- 如果3#卸窑(103),就是3车间的
- (SELECT COUNT(1)
- FROM TP_PM_PRODUCTIONDATA PD2
- WHERE PD2.BARCODE = PD.BARCODE
- AND PD2.PROCEDUREID = 103) AS IS3
- FROM TP_PM_PRODUCTIONDATA PD
- INNER JOIN TSAP_HEGII_DATAITEM HGDI
- ON HGDI.DATACODE = '50'
- AND HGDI.ITEMTYPE = 1
- AND HGDI.ITEMID = PD.PROCEDUREID -- 3#成检交接(本烧重烧共用,且可以改判)
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD
- ON GDD.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G
- ON G.GOODSID = PD.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT
- ON G.GOODSTYPEID = GT.GOODSTYPEID
- INNER JOIN TP_PC_GROUTINGLINE GL ON GDD.GROUTINGLINEID = GL.GROUTINGLINEID
- WHERE PD.CREATETIME >= @DATEBEGIN@
- AND PD.CREATETIME < @DATEEND@
- AND (G.GOODSID IN ({GOODSID}) OR '{GOODSID}' = '0,0')
- AND (GDD.GROUTINGLINEID IN (0,0) OR '0,0' = '0,0')
- AND (GL.HIGHPRESSUREFLAG = @HIGHPRESSUREFLAG@ OR @HIGHPRESSUREFLAG@ = '-1')
- {TESTMOULDFLAG}
- {TESTFLAG}
- AND PD.ISREFIRE = '0'
- AND PD.Islengbu = '0'
- --AND PD.KILNID IN(1,2,5)-- 取本烧的窑炉
- --AND ((HGDI.ITEMID <> 104 AND PD.VALUEFLAG = '1') OR
- -- (HGDI.ITEMID = 104 AND PD.ISREFIRE = '0' AND
- -- PD.CHECKFLAG = '1'))) T
- AND ((HGDI.ITEMID = 11 AND (PD.CHECKFLAG = '1' OR PD.CHECKFLAG IS NULL))
- OR (HGDI.ITEMID = 104 AND PD.CHECKFLAG = '1')) ) T )TT
- GROUP BY TO_CHAR(TT.CREATETIME, 'YYYYMM') )TT2 GROUP BY
- GROUPING SETS ( TT2.时间, ( ) )
- ),
- 回收数 AS
- (
- SELECT
- GROUPING_ID (TT2.时间) AS GID,
- NVL(TT2.时间,'合计') AS 时间,
- SUM(TT2.回收数_一部全部) 回收数_一部全部,
- SUM(TT2.回收数_二部全部) 回收数_二部全部,
- SUM(TT2.回收数_三部全部) 回收数_三部全部
- FROM(
- SELECT
- TT.CHARG AS 时间,
- SUM(CASE WHEN TT.WORKSHOP = 1 AND TT.RECYCLINGFLAG = '1' THEN 1 ELSE 0 END) 回收数_一部全部,
- SUM(CASE WHEN TT.WORKSHOP = 2 AND TT.RECYCLINGFLAG = '1' THEN 1 ELSE 0 END) 回收数_二部全部,
- SUM(CASE WHEN TT.WORKSHOP = 3 AND TT.RECYCLINGFLAG = '1' THEN 1 ELSE 0 END) 回收数_三部全部
- FROM(
- SELECT BAR.GOODSCODE,
- BAR.MATERIALCODE SAPCODE,
- GH.FHUSERCODE USERCODE,
- O.ORDERNO,
- BAR.RECYCLINGFLAG,
- BAR.TESTMOULDFLAG,
- DECODE(BAR.TESTMOULDFLAG
- ,'0'
- ,''
- ,DECODE(G.GOODS_LINE_CODE, 'G', 'A', 'M', 'A', 'L', 'B', '')) AS ZSCS,
- CASE
- WHEN O.ORDERID IS NULL
- OR O.ORDERNO LIKE 'HEGII%' THEN
- ' '
- WHEN INSTR(O.ORDERNO, '/') = 0 THEN
- TO_CHAR(O.ORDERNO)
- ELSE
- TO_CHAR(SUBSTR(O.ORDERNO, 1, INSTR(O.ORDERNO, '/') - 1))
- END ORDERCODE -- 销售凭证
- ,
- CASE
- WHEN O.ORDERID IS NULL
- OR O.ORDERNO LIKE 'HEGII%'
- OR INSTR(O.ORDERNO, '/') = 0 THEN
- '0'
- WHEN INSTR(O.ORDERNO, '#') = 0 THEN
- TO_CHAR(SUBSTR(O.ORDERNO, INSTR(O.ORDERNO, '/') + 1))
- ELSE
- TO_CHAR(SUBSTR(O.ORDERNO
- ,INSTR(O.ORDERNO, '/') + 1
- ,INSTR(O.ORDERNO, '#') - INSTR(O.ORDERNO, '/') - 1))
- END ORDERITEM,
- CASE
- WHEN (INSTR(BAR.GROUTINGLINECODE, 'A') = 1 OR
- INSTR(BAR.GROUTINGLINECODE, 'D') = 1)
- AND INSTR(GT.GOODSTYPECODE, '001002') = 1 THEN
- 1
- WHEN (INSTR(BAR.GROUTINGLINECODE, 'B') = 1 OR
- INSTR(BAR.GROUTINGLINECODE, 'D') = 1)
- AND INSTR(GT.GOODSTYPECODE, '001001') = 1 THEN
- 2
- WHEN INSTR(BAR.GROUTINGLINECODE, 'C') = 1 THEN
- 3
- ELSE
- 0
- END AS WORKSHOP,
- TO_CHAR(GH.FHTIME, 'YYYYMM') AS CHARG
- FROM TP_PM_GROUTINGDAILYDETAIL BAR
- INNER JOIN TP_PM_FINISHEDPRODUCT GH
- ON BAR.GROUTINGDAILYDETAILID = GH.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G
- ON G.GOODSID = BAR.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT
- ON GT.GOODSTYPEID = G.GOODSTYPEID
- LEFT JOIN TP_PM_ORDER O
- ON O.ORDERID = GH.FHORDERID
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD
- ON GDD.GROUTINGDAILYDETAILID = BAR.GROUTINGDAILYDETAILID
- INNER JOIN TP_PC_GROUTINGLINE GL ON GDD.GROUTINGLINEID = GL.GROUTINGLINEID
- WHERE GH.FHUSERID IS NOT NULL
- AND GH.FHTIME >= @DATEBEGIN@
- AND (G.GOODSID IN ({GOODSID}) OR '{GOODSID}' = '0,0')
- AND (GDD.GROUTINGLINEID IN (0,0) OR '0,0' = '0,0')
- AND (GL.HIGHPRESSUREFLAG = @HIGHPRESSUREFLAG@ OR @HIGHPRESSUREFLAG@ = '-1')
- {TESTMOULDFLAG}
- {TESTFLAG}
- AND GH.FHTIME < @DATEEND@ )TT GROUP BY TT.CHARG )TT2 GROUP BY
- GROUPING SETS ( TT2.时间, ( ) )
- ),
- 入库数 AS
- (
- SELECT
- GROUPING_ID (TT2.时间) AS GID,
- NVL(TT2.时间,'合计') AS 时间,
- SUM(TT2.入库数_一部全部) 入库数_一部全部,
- SUM(TT2.入库数_二部全部) 入库数_二部全部,
- SUM(TT2.入库数_三部全部) 入库数_三部全部
- FROM(
- SELECT
- TT.CHARG AS 时间,
- SUM(CASE WHEN TT.WORKSHOP = 1 AND TT.RECYCLINGFLAG = '0' THEN 1 ELSE 0 END) 入库数_一部全部,
- SUM(CASE WHEN TT.WORKSHOP = 2 AND TT.RECYCLINGFLAG = '0' THEN 1 ELSE 0 END) 入库数_二部全部,
- SUM(CASE WHEN TT.WORKSHOP = 3 AND TT.RECYCLINGFLAG = '0' THEN 1 ELSE 0 END) 入库数_三部全部
- FROM(
- SELECT BAR.GOODSCODE,
- BAR.MATERIALCODE SAPCODE,
- GH.FHUSERCODE USERCODE,
- O.ORDERNO,
- BAR.RECYCLINGFLAG,
- BAR.TESTMOULDFLAG,
- DECODE(BAR.TESTMOULDFLAG
- ,'0'
- ,''
- ,DECODE(G.GOODS_LINE_CODE, 'G', 'A', 'M', 'A', 'L', 'B', '')) AS ZSCS,
- CASE
- WHEN O.ORDERID IS NULL
- OR O.ORDERNO LIKE 'HEGII%' THEN
- ' '
- WHEN INSTR(O.ORDERNO, '/') = 0 THEN
- TO_CHAR(O.ORDERNO)
- ELSE
- TO_CHAR(SUBSTR(O.ORDERNO, 1, INSTR(O.ORDERNO, '/') - 1))
- END ORDERCODE -- 销售凭证
- ,
- CASE
- WHEN O.ORDERID IS NULL
- OR O.ORDERNO LIKE 'HEGII%'
- OR INSTR(O.ORDERNO, '/') = 0 THEN
- '0'
- WHEN INSTR(O.ORDERNO, '#') = 0 THEN
- TO_CHAR(SUBSTR(O.ORDERNO, INSTR(O.ORDERNO, '/') + 1))
- ELSE
- TO_CHAR(SUBSTR(O.ORDERNO
- ,INSTR(O.ORDERNO, '/') + 1
- ,INSTR(O.ORDERNO, '#') - INSTR(O.ORDERNO, '/') - 1))
- END ORDERITEM,
- CASE
- WHEN (INSTR(BAR.GROUTINGLINECODE, 'A') = 1 OR
- INSTR(BAR.GROUTINGLINECODE, 'D') = 1)
- AND INSTR(GT.GOODSTYPECODE, '001002') = 1 THEN
- 1
- WHEN (INSTR(BAR.GROUTINGLINECODE, 'B') = 1 OR
- INSTR(BAR.GROUTINGLINECODE, 'D') = 1)
- AND INSTR(GT.GOODSTYPECODE, '001001') = 1 THEN
- 2
- WHEN INSTR(BAR.GROUTINGLINECODE, 'C') = 1 THEN
- 3
- ELSE
- 0
- END AS WORKSHOP,
- TO_CHAR(GH.FHTIME, 'YYYYMM') AS CHARG
- FROM TP_PM_GROUTINGDAILYDETAIL BAR
- INNER JOIN TP_PM_FINISHEDPRODUCT GH
- ON BAR.GROUTINGDAILYDETAILID = GH.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G
- ON G.GOODSID = BAR.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT
- ON GT.GOODSTYPEID = G.GOODSTYPEID
- LEFT JOIN TP_PM_ORDER O
- ON O.ORDERID = GH.FHORDERID
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD
- ON GDD.GROUTINGDAILYDETAILID = BAR.GROUTINGDAILYDETAILID
- INNER JOIN TP_PC_GROUTINGLINE GL ON GDD.GROUTINGLINEID = GL.GROUTINGLINEID
- WHERE GH.FHUSERID IS NOT NULL
- AND GH.FHTIME >= @DATEBEGIN@
- AND GH.FHTIME < @DATEEND@
- AND (G.GOODSID IN ({GOODSID}) OR '{GOODSID}' = '0,0')
- AND (GDD.GROUTINGLINEID IN (0,0) OR '0,0' = '0,0')
- AND (GL.HIGHPRESSUREFLAG = @HIGHPRESSUREFLAG@ OR @HIGHPRESSUREFLAG@ = '-1')
- {TESTMOULDFLAG}
- {TESTFLAG}
- )TT GROUP BY TT.CHARG)TT2 GROUP BY
- GROUPING SETS ( TT2.时间, ( ) )
- ),
- 质量登记次品数 AS
- (
- SELECT
- GROUPING_ID (TT2.时间) AS GID,
- NVL(TT2.时间,'合计') AS 时间,
- SUM(TT2.质量登记次品数_一部全部) 质量登记次品数_一部全部,
- SUM(TT2.质量登记次品数_二部全部) 质量登记次品数_二部全部,
- SUM(TT2.质量登记次品数_三部全部) 质量登记次品数_三部全部
- FROM(
- SELECT
- TT.CHARG AS 时间,
- SUM(CASE WHEN TT.WORKSHOP = 1 THEN SCRAPNUM ELSE 0 END) 质量登记次品数_一部全部,
- SUM(CASE WHEN TT.WORKSHOP = 2 THEN SCRAPNUM ELSE 0 END) 质量登记次品数_二部全部,
- SUM(CASE WHEN TT.WORKSHOP = 3 THEN SCRAPNUM ELSE 0 END) 质量登记次品数_三部全部
- FROM(
- SELECT GOODSCODE,
- SAPCODE,
- USERCODE,
- 0 OUTPUTNUM,
- COUNT(*) SCRAPNUM,
- 0 CLEANUPNUM,
- 0 REPAIRNUM,
- WORKSHOP,
- TESTMOULDFLAG,
- GOODS_LINE_CODE,
- CHARG
- FROM (SELECT CASE
- WHEN T.IS3 > 0 THEN
- 3
- WHEN T.HGDIWORKSHOP = 2
- AND INSTR(T.GOODSTYPECODE, '001002') = 1 THEN
- 1
- WHEN T.HGDIWORKSHOP = 2
- AND INSTR(T.GOODSTYPECODE, '001001') = 1 THEN
- 2
- WHEN T.HGDIWORKSHOP = 3 THEN
- 3
- ELSE
- 2
- END AS WORKSHOP,
- T.*
- FROM (SELECT SP.BARCODE,
- SP.GOODSCODE,
- GDD.MATERIALCODE SAPCODE,
- PD.USERCODE,
- GT.GOODSTYPECODE,
- DECODE(GDD.TESTMOULDFLAG, 0, 'C', 1, 'Y', '-') AS TESTMOULDFLAG,
- G.GOODS_LINE_CODE,
- TO_CHAR(SP.AUDITDATE, 'YYYYMM') AS CHARG,
- --TO_CHAR(SP.AUDITDATE, 'yyyymm') AS CHARG,
- HGDI.WORKSHOP AS HGDIWORKSHOP,
- -- 如果参与了重烧,则判断这个条码是否走过3#卸窑
- (SELECT COUNT(1)
- FROM TP_PM_PRODUCTIONDATA PD2
- WHERE PD2.BARCODE = PD.BARCODE
- AND PD2.PROCEDUREID = 103
- -- 重烧相关的ID
- AND SP.PROCEDUREID IN (14, 16, 57, 58, 59, 60,113)) AS IS3
- FROM TP_PM_SCRAPPRODUCT SP
- INNER JOIN TSAP_HEGII_DATAITEM HGDI
- ON HGDI.DATACODE = '50'
- AND HGDI.ITEMTYPE = 2
- AND HGDI.ITEMID = SP.PROCEDUREID
- INNER JOIN TP_PM_PRODUCTIONDATA PD
- ON PD.PRODUCTIONDATAID = SP.PRODUCTIONDATAID
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD
- ON GDD.GROUTINGDAILYDETAILID = SP.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G
- ON G.GOODSID = PD.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT
- ON G.GOODSTYPEID = GT.GOODSTYPEID
- INNER JOIN TP_PC_GROUTINGLINE GL ON GDD.GROUTINGLINEID = GL.GROUTINGLINEID
- WHERE SP.AUDITSTATUS = 1
- AND SP.AUDITDATE >= @DATEBEGIN@
- AND SP.AUDITDATE < @DATEEND@
- AND (G.GOODSID IN ({GOODSID}) OR '{GOODSID}' = '0,0')
- AND (GDD.GROUTINGLINEID IN (0,0) OR '0,0' = '0,0')
- AND (GL.HIGHPRESSUREFLAG = @HIGHPRESSUREFLAG@ OR @HIGHPRESSUREFLAG@ = '-1')
- {TESTMOULDFLAG}
- {TESTFLAG}
- AND PD.ISREFIRE = 0
- AND SP.GOODSLEVELTYPEID in (7)
- --AND SP.SCRAPTYPE = 1
- --AND SP.SCRAPTYPE IN (0, 2, 3)
- ) T)
- GROUP BY GOODSCODE,
- SAPCODE,
- USERCODE,
- WORKSHOP,
- TESTMOULDFLAG,
- GOODS_LINE_CODE,
- CHARG
- ---------------------------------------------------
- UNION ALL
- -- 工序报损撤销
- ---------------------------------------------------
- SELECT GOODSCODE,
- SAPCODE,
- USERCODE,
- 0 OUTPUTNUM,
- 0 - COUNT(*) SCRAPNUM,
- 0 CLEANUPNUM,
- 0 REPAIRNUM,
- WORKSHOP,
- TESTMOULDFLAG,
- GOODS_LINE_CODE,
- CHARG
- FROM (SELECT CASE
- WHEN T.IS3 > 0 THEN
- 3
- WHEN T.HGDIWORKSHOP = 2
- AND INSTR(T.GOODSTYPECODE, '001002') = 1 THEN
- 1
- WHEN T.HGDIWORKSHOP = 2
- AND INSTR(T.GOODSTYPECODE, '001001') = 1 THEN
- 2
- WHEN T.HGDIWORKSHOP = 3 THEN
- 3
- ELSE
- 2
- END AS WORKSHOP,
- T.*
- FROM (SELECT SP.BARCODE,
- SP.GOODSCODE,
- GDD.MATERIALCODE SAPCODE,
- PD.USERCODE,
- GT.GOODSTYPECODE,
- DECODE(GDD.TESTMOULDFLAG, 0, 'C', 1, 'Y', '-') AS TESTMOULDFLAG,
- G.GOODS_LINE_CODE,
- TO_CHAR(SP.BACKOUTTIME, 'YYYYMM') AS CHARG,
- --TO_CHAR(SP.AUDITDATE, 'yyyymm') AS CHARG,
- HGDI.WORKSHOP AS HGDIWORKSHOP,
- -- 如果参与了重烧,则判断这个条码是否走过3#卸窑
- (SELECT COUNT(1)
- FROM TP_PM_PRODUCTIONDATA PD2
- WHERE PD2.BARCODE = PD.BARCODE
- AND PD2.PROCEDUREID = 103
- -- 重烧相关的ID
- AND SP.PROCEDUREID IN (14, 16, 57, 58, 59, 60,113)) AS IS3
- FROM TP_PM_SCRAPPRODUCT SP
- INNER JOIN TSAP_HEGII_DATAITEM HGDI
- ON HGDI.DATACODE = '50'
- AND HGDI.ITEMTYPE = 2
- AND HGDI.ITEMID = SP.PROCEDUREID
- INNER JOIN TP_PM_PRODUCTIONDATA PD
- ON PD.PRODUCTIONDATAID = SP.PRODUCTIONDATAID
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD
- ON GDD.GROUTINGDAILYDETAILID = SP.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G
- ON G.GOODSID = PD.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT
- ON G.GOODSTYPEID = GT.GOODSTYPEID
- INNER JOIN TP_PC_GROUTINGLINE GL ON GDD.GROUTINGLINEID = GL.GROUTINGLINEID
- WHERE SP.AUDITSTATUS = 1
- AND SP.BACKOUTTIME >= @DATEBEGIN@
- AND SP.BACKOUTTIME < @DATEEND@
- AND (G.GOODSID IN ({GOODSID}) OR '{GOODSID}' = '0,0')
- AND (GDD.GROUTINGLINEID IN (0,0) OR '0,0' = '0,0')
- AND (GL.HIGHPRESSUREFLAG = @HIGHPRESSUREFLAG@ OR @HIGHPRESSUREFLAG@ = '-1')
- {TESTMOULDFLAG}
- {TESTFLAG}
- AND PD.ISREFIRE = 0
- AND SP.GOODSLEVELTYPEID in (7)
- --AND SP.SCRAPTYPE = 1
- --AND SP.SCRAPTYPE IN (0, 2, 3)
- ) T)
- GROUP BY GOODSCODE,
- SAPCODE,
- USERCODE,
- WORKSHOP,
- TESTMOULDFLAG,
- GOODS_LINE_CODE,
- CHARG
-
- ---------------------------------------------------
- UNION ALL
- -- 干补报损
- ---------------------------------------------------
- SELECT GOODSCODE,
- SAPCODE,
- USERCODE,
- 0 OUTPUTNUM,
- COUNT(*) SCRAPNUM,
- 0 CLEANUPNUM,
- 0 REPAIRNUM,
- WORKSHOP,
- TESTMOULDFLAG,
- GOODS_LINE_CODE,
- CHARG
- FROM (SELECT SP.GOODSCODE,
- GDD.MATERIALCODE SAPCODE,
- PD.USERCODE,
- CASE
- WHEN HGDI.WORKSHOP = 2
- AND INSTR(GT.GOODSTYPECODE, '001002') = 1 THEN
- 1
- WHEN HGDI.WORKSHOP = 2
- AND INSTR(GT.GOODSTYPECODE, '001001') = 1 THEN
- 2
- WHEN HGDI.WORKSHOP = 3 THEN
- 3
- ELSE
- 4
- END AS WORKSHOP,
- DECODE(GDD.TESTMOULDFLAG, 0, 'C', 1, 'Y', '-') AS TESTMOULDFLAG,
- G.GOODS_LINE_CODE,
- TO_CHAR(SP.AUDITDATE, 'YYYYMM') AS CHARG
- --TO_CHAR(SP.AUDITDATE, 'yyyymm') AS CHARG
- FROM (SELECT T.*
- FROM (SELECT SP.BARCODE,
- SP.GOODSCODE,
- SP.GROUTINGDAILYDETAILID,
- PD.PROCEDUREID,
- PD.PRODUCTIONDATAID,
- SP.AUDITDATE,
- RANK() OVER(PARTITION BY SP.BARCODE ORDER BY PD.PRODUCTIONDATAID DESC) AS RK
- FROM TP_PM_SCRAPPRODUCT SP
- INNER JOIN TP_PM_PRODUCTIONDATA PD ON SP.BARCODE = PD.BARCODE
- -- 不包含干补工序
- AND PD.PROCEDUREID <> 18
- -- 要找干补之前的工序
- AND PD.PRODUCTIONDATAID < SP.PRODUCTIONDATAID
- AND PD.VALUEFLAG = '1'
- INNER JOIN TP_MST_GOODS G
- ON G.GOODSID = PD.GOODSID
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD
- ON GDD.GROUTINGDAILYDETAILID = SP.GROUTINGDAILYDETAILID
- INNER JOIN TP_PC_GROUTINGLINE GL ON GDD.GROUTINGLINEID = GL.GROUTINGLINEID
- WHERE SP.AUDITSTATUS = 1
- AND SP.PROCEDUREID = 18
- AND PD.ISREFIRE = 0
- AND SP.GOODSLEVELTYPEID in (7)
- --AND SP.SCRAPTYPE = 1
- AND SP.AUDITDATE >= @DATEBEGIN@
- AND SP.AUDITDATE < @DATEEND@
- AND (G.GOODSID IN ({GOODSID}) OR '{GOODSID}' = '0,0')
- AND (GDD.GROUTINGLINEID IN (0,0) OR '0,0' = '0,0')
- AND (GL.HIGHPRESSUREFLAG = @HIGHPRESSUREFLAG@ OR @HIGHPRESSUREFLAG@ = '-1')
- {TESTMOULDFLAG}
- {TESTFLAG}
- ) T
- WHERE T.RK <= 1) SP
- INNER JOIN TSAP_HEGII_DATAITEM HGDI
- ON HGDI.DATACODE = '50'
- AND HGDI.ITEMTYPE = 2
- AND HGDI.ITEMID = SP.PROCEDUREID
- INNER JOIN TP_PM_PRODUCTIONDATA PD
- ON PD.PRODUCTIONDATAID = SP.PRODUCTIONDATAID
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD
- ON GDD.GROUTINGDAILYDETAILID = SP.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G
- ON G.GOODSID = PD.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT
- ON G.GOODSTYPEID = GT.GOODSTYPEID)
- GROUP BY GOODSCODE,
- SAPCODE,
- USERCODE,
- WORKSHOP,
- TESTMOULDFLAG,
- GOODS_LINE_CODE,
- CHARG)TT
- GROUP BY TT.CHARG )TT2 GROUP BY GROUPING SETS ( TT2.时间, ( ) )
- ),
- 质量登记损坏数 AS
- (
- SELECT
- GROUPING_ID (TT2.时间) AS GID,
- NVL(TT2.时间,'合计') AS 时间,
- SUM(TT2.质量登记损坏数_一部全部) 质量登记损坏数_一部全部,
- SUM(TT2.质量登记损坏数_二部全部) 质量登记损坏数_二部全部,
- SUM(TT2.质量登记损坏数_三部全部) 质量登记损坏数_三部全部
- FROM(
- SELECT
- TT.CHARG AS 时间,
- SUM(CASE WHEN TT.WORKSHOP = 1 THEN SCRAPNUM ELSE 0 END) 质量登记损坏数_一部全部,
- SUM(CASE WHEN TT.WORKSHOP = 2 THEN SCRAPNUM ELSE 0 END) 质量登记损坏数_二部全部,
- SUM(CASE WHEN TT.WORKSHOP = 3 THEN SCRAPNUM ELSE 0 END) 质量登记损坏数_三部全部
- FROM(
- SELECT GOODSCODE,
- SAPCODE,
- USERCODE,
- 0 OUTPUTNUM,
- COUNT(*) SCRAPNUM,
- 0 CLEANUPNUM,
- 0 REPAIRNUM,
- WORKSHOP,
- TESTMOULDFLAG,
- GOODS_LINE_CODE,
- CHARG
- FROM (SELECT CASE
- WHEN T.IS3 > 0 THEN
- 3
- WHEN T.HGDIWORKSHOP = 2
- AND INSTR(T.GOODSTYPECODE, '001002') = 1 THEN
- 1
- WHEN T.HGDIWORKSHOP = 2
- AND INSTR(T.GOODSTYPECODE, '001001') = 1 THEN
- 2
- WHEN T.HGDIWORKSHOP = 3 THEN
- 3
- ELSE
- 2
- END AS WORKSHOP,
- T.*
- FROM (SELECT SP.BARCODE,
- SP.GOODSCODE,
- GDD.MATERIALCODE SAPCODE,
- PD.USERCODE,
- GT.GOODSTYPECODE,
- DECODE(GDD.TESTMOULDFLAG, 0, 'C', 1, 'Y', '-') AS TESTMOULDFLAG,
- G.GOODS_LINE_CODE,
- TO_CHAR(SP.AUDITDATE, 'YYYYMM') AS CHARG,
- --TO_CHAR(SP.AUDITDATE, 'yyyymm') AS CHARG,
- HGDI.WORKSHOP AS HGDIWORKSHOP,
- -- 如果参与了重烧,则判断这个条码是否走过3#卸窑
- (SELECT COUNT(1)
- FROM TP_PM_PRODUCTIONDATA PD2
- WHERE PD2.BARCODE = PD.BARCODE
- AND PD2.PROCEDUREID = 103
- -- 重烧相关的ID
- AND SP.PROCEDUREID IN (14, 16, 57, 58, 59, 60,113)) AS IS3
- FROM TP_PM_SCRAPPRODUCT SP
- INNER JOIN TSAP_HEGII_DATAITEM HGDI
- ON HGDI.DATACODE = '50'
- AND HGDI.ITEMTYPE = 2
- AND HGDI.ITEMID = SP.PROCEDUREID
- INNER JOIN TP_PM_PRODUCTIONDATA PD
- ON PD.PRODUCTIONDATAID = SP.PRODUCTIONDATAID
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD
- ON GDD.GROUTINGDAILYDETAILID = SP.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G
- ON G.GOODSID = PD.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT
- ON G.GOODSTYPEID = GT.GOODSTYPEID
- INNER JOIN TP_PC_GROUTINGLINE GL ON GDD.GROUTINGLINEID = GL.GROUTINGLINEID
- WHERE SP.AUDITSTATUS = 1
- AND SP.AUDITDATE >= @DATEBEGIN@
- AND SP.AUDITDATE < @DATEEND@
- AND (G.GOODSID IN ({GOODSID}) OR '{GOODSID}' = '0,0')
- AND (GDD.GROUTINGLINEID IN (0,0) OR '0,0' = '0,0')
- AND (GL.HIGHPRESSUREFLAG = @HIGHPRESSUREFLAG@ OR @HIGHPRESSUREFLAG@ = '-1')
- {TESTMOULDFLAG}
- {TESTFLAG}
- AND PD.ISREFIRE = 0
- AND SP.GOODSLEVELTYPEID in (8,9)
- --AND SP.SCRAPTYPE = 1
- --AND SP.SCRAPTYPE IN (0, 2, 3)
- ) T)
- GROUP BY GOODSCODE,
- SAPCODE,
- USERCODE,
- WORKSHOP,
- TESTMOULDFLAG,
- GOODS_LINE_CODE,
- CHARG
- ---------------------------------------------------
- UNION ALL
- -- 工序报损撤销
- ---------------------------------------------------
- SELECT GOODSCODE,
- SAPCODE,
- USERCODE,
- 0 OUTPUTNUM,
- 0 - COUNT(*) SCRAPNUM,
- 0 CLEANUPNUM,
- 0 REPAIRNUM,
- WORKSHOP,
- TESTMOULDFLAG,
- GOODS_LINE_CODE,
- CHARG
- FROM (SELECT CASE
- WHEN T.IS3 > 0 THEN
- 3
- WHEN T.HGDIWORKSHOP = 2
- AND INSTR(T.GOODSTYPECODE, '001002') = 1 THEN
- 1
- WHEN T.HGDIWORKSHOP = 2
- AND INSTR(T.GOODSTYPECODE, '001001') = 1 THEN
- 2
- WHEN T.HGDIWORKSHOP = 3 THEN
- 3
- ELSE
- 2
- END AS WORKSHOP,
- T.*
- FROM (SELECT SP.BARCODE,
- SP.GOODSCODE,
- GDD.MATERIALCODE SAPCODE,
- PD.USERCODE,
- GT.GOODSTYPECODE,
- DECODE(GDD.TESTMOULDFLAG, 0, 'C', 1, 'Y', '-') AS TESTMOULDFLAG,
- G.GOODS_LINE_CODE,
- TO_CHAR(SP.BACKOUTTIME, 'YYYYMM') AS CHARG,
- --TO_CHAR(SP.AUDITDATE, 'yyyymm') AS CHARG,
- HGDI.WORKSHOP AS HGDIWORKSHOP,
- -- 如果参与了重烧,则判断这个条码是否走过3#卸窑
- (SELECT COUNT(1)
- FROM TP_PM_PRODUCTIONDATA PD2
- WHERE PD2.BARCODE = PD.BARCODE
- AND PD2.PROCEDUREID = 103
- -- 重烧相关的ID
- AND SP.PROCEDUREID IN (14, 16, 57, 58, 59, 60,113)) AS IS3
- FROM TP_PM_SCRAPPRODUCT SP
- INNER JOIN TSAP_HEGII_DATAITEM HGDI
- ON HGDI.DATACODE = '50'
- AND HGDI.ITEMTYPE = 2
- AND HGDI.ITEMID = SP.PROCEDUREID
- INNER JOIN TP_PM_PRODUCTIONDATA PD
- ON PD.PRODUCTIONDATAID = SP.PRODUCTIONDATAID
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD
- ON GDD.GROUTINGDAILYDETAILID = SP.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G
- ON G.GOODSID = PD.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT
- ON G.GOODSTYPEID = GT.GOODSTYPEID
- INNER JOIN TP_PC_GROUTINGLINE GL ON GDD.GROUTINGLINEID = GL.GROUTINGLINEID
- WHERE SP.AUDITSTATUS = 1
- AND SP.BACKOUTTIME >= @DATEBEGIN@
- AND SP.BACKOUTTIME < @DATEEND@
- AND (G.GOODSID IN ({GOODSID}) OR '{GOODSID}' = '0,0')
- AND (GDD.GROUTINGLINEID IN (0,0) OR '0,0' = '0,0')
- AND (GL.HIGHPRESSUREFLAG = @HIGHPRESSUREFLAG@ OR @HIGHPRESSUREFLAG@ = '-1')
- {TESTMOULDFLAG}
- {TESTFLAG}
- AND PD.ISREFIRE = 0
- AND SP.GOODSLEVELTYPEID in (8,9)
- --AND SP.SCRAPTYPE = 1
- --AND SP.SCRAPTYPE IN (0, 2, 3)
- ) T)
- GROUP BY GOODSCODE,
- SAPCODE,
- USERCODE,
- WORKSHOP,
- TESTMOULDFLAG,
- GOODS_LINE_CODE,
- CHARG
-
- ---------------------------------------------------
- UNION ALL
- -- 干补报损
- ---------------------------------------------------
- SELECT GOODSCODE,
- SAPCODE,
- USERCODE,
- 0 OUTPUTNUM,
- COUNT(*) SCRAPNUM,
- 0 CLEANUPNUM,
- 0 REPAIRNUM,
- WORKSHOP,
- TESTMOULDFLAG,
- GOODS_LINE_CODE,
- CHARG
- FROM (SELECT SP.GOODSCODE,
- GDD.MATERIALCODE SAPCODE,
- PD.USERCODE,
- CASE
- WHEN HGDI.WORKSHOP = 2
- AND INSTR(GT.GOODSTYPECODE, '001002') = 1 THEN
- 1
- WHEN HGDI.WORKSHOP = 2
- AND INSTR(GT.GOODSTYPECODE, '001001') = 1 THEN
- 2
- WHEN HGDI.WORKSHOP = 3 THEN
- 3
- ELSE
- 4
- END AS WORKSHOP,
- DECODE(GDD.TESTMOULDFLAG, 0, 'C', 1, 'Y', '-') AS TESTMOULDFLAG,
- G.GOODS_LINE_CODE,
- TO_CHAR(SP.AUDITDATE, 'YYYYMM') AS CHARG
- --TO_CHAR(SP.AUDITDATE, 'yyyymm') AS CHARG
- FROM (SELECT T.*
- FROM (SELECT SP.BARCODE,
- SP.GOODSCODE,
- SP.GROUTINGDAILYDETAILID,
- PD.PROCEDUREID,
- PD.PRODUCTIONDATAID,
- SP.AUDITDATE,
- RANK() OVER(PARTITION BY SP.BARCODE ORDER BY PD.PRODUCTIONDATAID DESC) AS RK
- FROM TP_PM_SCRAPPRODUCT SP
- INNER JOIN TP_PM_PRODUCTIONDATA PD ON SP.BARCODE = PD.BARCODE
- -- 不包含干补工序
- AND PD.PROCEDUREID <> 18
- -- 要找干补之前的工序
- AND PD.PRODUCTIONDATAID < SP.PRODUCTIONDATAID
- AND PD.VALUEFLAG = '1'
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD
- ON GDD.GROUTINGDAILYDETAILID = SP.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G
- ON G.GOODSID = PD.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT
- ON G.GOODSTYPEID = GT.GOODSTYPEID
- INNER JOIN TP_PC_GROUTINGLINE GL ON GDD.GROUTINGLINEID = GL.GROUTINGLINEID
- WHERE SP.AUDITSTATUS = 1
- AND SP.PROCEDUREID = 18
- AND PD.ISREFIRE = 0
- AND SP.GOODSLEVELTYPEID in (8,9)
- --AND SP.SCRAPTYPE = 1
- AND SP.AUDITDATE >= @DATEBEGIN@
- AND SP.AUDITDATE < @DATEEND@
- AND (G.GOODSID IN ({GOODSID}) OR '{GOODSID}' = '0,0')
- AND (GDD.GROUTINGLINEID IN (0,0) OR '0,0' = '0,0')
- AND (GL.HIGHPRESSUREFLAG = @HIGHPRESSUREFLAG@ OR @HIGHPRESSUREFLAG@ = '-1')
- {TESTMOULDFLAG}
- {TESTFLAG}
- ) T
- WHERE T.RK <= 1) SP
- INNER JOIN TSAP_HEGII_DATAITEM HGDI
- ON HGDI.DATACODE = '50'
- AND HGDI.ITEMTYPE = 2
- AND HGDI.ITEMID = SP.PROCEDUREID
- INNER JOIN TP_PM_PRODUCTIONDATA PD
- ON PD.PRODUCTIONDATAID = SP.PRODUCTIONDATAID
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD
- ON GDD.GROUTINGDAILYDETAILID = SP.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G
- ON G.GOODSID = PD.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT
- ON G.GOODSTYPEID = GT.GOODSTYPEID)
- GROUP BY GOODSCODE,
- SAPCODE,
- USERCODE,
- WORKSHOP,
- TESTMOULDFLAG,
- GOODS_LINE_CODE,
- CHARG
- )TT
- GROUP BY TT.CHARG )TT2 GROUP BY GROUPING SETS ( TT2.时间, ( ) )
- ),
- 重烧登记次品数 AS
- (
- SELECT
- GROUPING_ID (TT2.时间) AS GID,
- NVL(TT2.时间,'合计') AS 时间,
- SUM(TT2.重烧登记次品数_一部全部) 重烧登记次品数_一部全部,
- SUM(TT2.重烧登记次品数_二部全部) 重烧登记次品数_二部全部,
- SUM(TT2.重烧登记次品数_三部全部) 重烧登记次品数_三部全部
- FROM(
- SELECT
- TT.CHARG AS 时间,
- SUM(CASE WHEN TT.WORKSHOP = 1 THEN SCRAPNUM ELSE 0 END) 重烧登记次品数_一部全部,
- SUM(CASE WHEN TT.WORKSHOP = 2 THEN SCRAPNUM ELSE 0 END) 重烧登记次品数_二部全部,
- SUM(CASE WHEN TT.WORKSHOP = 3 THEN SCRAPNUM ELSE 0 END) 重烧登记次品数_三部全部
- FROM(
- SELECT GOODSCODE,
- SAPCODE,
- USERCODE,
- 0 OUTPUTNUM,
- COUNT(*) SCRAPNUM,
- 0 CLEANUPNUM,
- 0 REPAIRNUM,
- WORKSHOP,
- TESTMOULDFLAG,
- GOODS_LINE_CODE,
- CHARG
- FROM (SELECT CASE
- WHEN T.IS3 > 0 THEN
- 3
- WHEN T.HGDIWORKSHOP = 2
- AND INSTR(T.GOODSTYPECODE, '001002') = 1 THEN
- 1
- WHEN T.HGDIWORKSHOP = 2
- AND INSTR(T.GOODSTYPECODE, '001001') = 1 THEN
- 2
- WHEN T.HGDIWORKSHOP = 3 THEN
- 3
- ELSE
- 2
- END AS WORKSHOP,
- T.*
- FROM (SELECT SP.BARCODE,
- SP.GOODSCODE,
- GDD.MATERIALCODE SAPCODE,
- PD.USERCODE,
- GT.GOODSTYPECODE,
- DECODE(GDD.TESTMOULDFLAG, 0, 'C', 1, 'Y', '-') AS TESTMOULDFLAG,
- G.GOODS_LINE_CODE,
- TO_CHAR(SP.AUDITDATE, 'YYYYMM') AS CHARG,
- --TO_CHAR(SP.AUDITDATE, 'yyyymm') AS CHARG,
- HGDI.WORKSHOP AS HGDIWORKSHOP,
- -- 如果参与了重烧,则判断这个条码是否走过3#卸窑
- (SELECT COUNT(1)
- FROM TP_PM_PRODUCTIONDATA PD2
- WHERE PD2.BARCODE = PD.BARCODE
- AND PD2.PROCEDUREID = 103
- -- 重烧相关的ID
- AND SP.PROCEDUREID IN (14, 16, 57, 58, 59, 60,113)) AS IS3
- FROM TP_PM_SCRAPPRODUCT SP
- INNER JOIN TSAP_HEGII_DATAITEM HGDI
- ON HGDI.DATACODE = '50'
- AND HGDI.ITEMTYPE = 2
- AND HGDI.ITEMID = SP.PROCEDUREID
- INNER JOIN TP_PM_PRODUCTIONDATA PD
- ON PD.PRODUCTIONDATAID = SP.PRODUCTIONDATAID
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD
- ON GDD.GROUTINGDAILYDETAILID = SP.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G
- ON G.GOODSID = PD.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT
- ON G.GOODSTYPEID = GT.GOODSTYPEID
- INNER JOIN TP_PC_GROUTINGLINE GL ON GDD.GROUTINGLINEID = GL.GROUTINGLINEID
- WHERE SP.AUDITSTATUS = 1
- AND SP.AUDITDATE >= @DATEBEGIN@
- AND SP.AUDITDATE < @DATEEND@
- AND (G.GOODSID IN ({GOODSID}) OR '{GOODSID}' = '0,0')
- AND (GDD.GROUTINGLINEID IN (0,0) OR '0,0' = '0,0')
- AND (GL.HIGHPRESSUREFLAG = @HIGHPRESSUREFLAG@ OR @HIGHPRESSUREFLAG@ = '-1')
- {TESTMOULDFLAG}
- {TESTFLAG}
- AND PD.ISREFIRE = 6
- AND SP.GOODSLEVELTYPEID in (7)
- --AND SP.SCRAPTYPE = 1
- --AND SP.SCRAPTYPE IN (0, 2, 3)
- ) T)
- GROUP BY GOODSCODE,
- SAPCODE,
- USERCODE,
- WORKSHOP,
- TESTMOULDFLAG,
- GOODS_LINE_CODE,
- CHARG
- ---------------------------------------------------
- UNION ALL
- -- 工序报损撤销
- ---------------------------------------------------
- SELECT GOODSCODE,
- SAPCODE,
- USERCODE,
- 0 OUTPUTNUM,
- 0 - COUNT(*) SCRAPNUM,
- 0 CLEANUPNUM,
- 0 REPAIRNUM,
- WORKSHOP,
- TESTMOULDFLAG,
- GOODS_LINE_CODE,
- CHARG
- FROM (SELECT CASE
- WHEN T.IS3 > 0 THEN
- 3
- WHEN T.HGDIWORKSHOP = 2
- AND INSTR(T.GOODSTYPECODE, '001002') = 1 THEN
- 1
- WHEN T.HGDIWORKSHOP = 2
- AND INSTR(T.GOODSTYPECODE, '001001') = 1 THEN
- 2
- WHEN T.HGDIWORKSHOP = 3 THEN
- 3
- ELSE
- 2
- END AS WORKSHOP,
- T.*
- FROM (SELECT SP.BARCODE,
- SP.GOODSCODE,
- GDD.MATERIALCODE SAPCODE,
- PD.USERCODE,
- GT.GOODSTYPECODE,
- DECODE(GDD.TESTMOULDFLAG, 0, 'C', 1, 'Y', '-') AS TESTMOULDFLAG,
- G.GOODS_LINE_CODE,
- TO_CHAR(SP.BACKOUTTIME, 'YYYYMM') AS CHARG,
- --TO_CHAR(SP.AUDITDATE, 'yyyymm') AS CHARG,
- HGDI.WORKSHOP AS HGDIWORKSHOP,
- -- 如果参与了重烧,则判断这个条码是否走过3#卸窑
- (SELECT COUNT(1)
- FROM TP_PM_PRODUCTIONDATA PD2
- WHERE PD2.BARCODE = PD.BARCODE
- AND PD2.PROCEDUREID = 103
- -- 重烧相关的ID
- AND SP.PROCEDUREID IN (14, 16, 57, 58, 59, 60,113)) AS IS3
- FROM TP_PM_SCRAPPRODUCT SP
- INNER JOIN TSAP_HEGII_DATAITEM HGDI
- ON HGDI.DATACODE = '50'
- AND HGDI.ITEMTYPE = 2
- AND HGDI.ITEMID = SP.PROCEDUREID
- INNER JOIN TP_PM_PRODUCTIONDATA PD
- ON PD.PRODUCTIONDATAID = SP.PRODUCTIONDATAID
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD
- ON GDD.GROUTINGDAILYDETAILID = SP.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G
- ON G.GOODSID = PD.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT
- ON G.GOODSTYPEID = GT.GOODSTYPEID
- INNER JOIN TP_PC_GROUTINGLINE GL ON GDD.GROUTINGLINEID = GL.GROUTINGLINEID
- WHERE SP.AUDITSTATUS = 1
- AND SP.BACKOUTTIME >= @DATEBEGIN@
- AND SP.BACKOUTTIME < @DATEEND@
- AND (G.GOODSID IN ({GOODSID}) OR '{GOODSID}' = '0,0')
- AND (GDD.GROUTINGLINEID IN (0,0) OR '0,0' = '0,0')
- AND (GL.HIGHPRESSUREFLAG = @HIGHPRESSUREFLAG@ OR @HIGHPRESSUREFLAG@ = '-1')
- {TESTMOULDFLAG}
- {TESTFLAG}
- AND PD.ISREFIRE = 6
- AND SP.GOODSLEVELTYPEID in (7)
- --AND SP.SCRAPTYPE = 1
- --AND SP.SCRAPTYPE IN (0, 2, 3)
- ) T)
- GROUP BY GOODSCODE,
- SAPCODE,
- USERCODE,
- WORKSHOP,
- TESTMOULDFLAG,
- GOODS_LINE_CODE,
- CHARG
-
- ---------------------------------------------------
- UNION ALL
- -- 干补报损
- ---------------------------------------------------
- SELECT GOODSCODE,
- SAPCODE,
- USERCODE,
- 0 OUTPUTNUM,
- COUNT(*) SCRAPNUM,
- 0 CLEANUPNUM,
- 0 REPAIRNUM,
- WORKSHOP,
- TESTMOULDFLAG,
- GOODS_LINE_CODE,
- CHARG
- FROM (SELECT SP.GOODSCODE,
- GDD.MATERIALCODE SAPCODE,
- PD.USERCODE,
- CASE
- WHEN HGDI.WORKSHOP = 2
- AND INSTR(GT.GOODSTYPECODE, '001002') = 1 THEN
- 1
- WHEN HGDI.WORKSHOP = 2
- AND INSTR(GT.GOODSTYPECODE, '001001') = 1 THEN
- 2
- WHEN HGDI.WORKSHOP = 3 THEN
- 3
- ELSE
- 4
- END AS WORKSHOP,
- DECODE(GDD.TESTMOULDFLAG, 0, 'C', 1, 'Y', '-') AS TESTMOULDFLAG,
- G.GOODS_LINE_CODE,
- TO_CHAR(SP.AUDITDATE, 'YYYYMM') AS CHARG
- --TO_CHAR(SP.AUDITDATE, 'yyyymm') AS CHARG
- FROM (SELECT T.*
- FROM (SELECT SP.BARCODE,
- SP.GOODSCODE,
- SP.GROUTINGDAILYDETAILID,
- PD.PROCEDUREID,
- PD.PRODUCTIONDATAID,
- SP.AUDITDATE,
- RANK() OVER(PARTITION BY SP.BARCODE ORDER BY PD.PRODUCTIONDATAID DESC) AS RK
- FROM TP_PM_SCRAPPRODUCT SP
- INNER JOIN TP_PM_PRODUCTIONDATA PD ON SP.BARCODE = PD.BARCODE
- -- 不包含干补工序
- AND PD.PROCEDUREID <> 18
- -- 要找干补之前的工序
- AND PD.PRODUCTIONDATAID < SP.PRODUCTIONDATAID
- AND PD.VALUEFLAG = '1'
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD
- ON GDD.GROUTINGDAILYDETAILID = SP.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G
- ON G.GOODSID = PD.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT
- ON G.GOODSTYPEID = GT.GOODSTYPEID
- INNER JOIN TP_PC_GROUTINGLINE GL ON GDD.GROUTINGLINEID = GL.GROUTINGLINEID
- WHERE SP.AUDITSTATUS = 1
- AND SP.PROCEDUREID = 18
- AND PD.ISREFIRE = 6
- AND SP.GOODSLEVELTYPEID in (7)
- --AND SP.SCRAPTYPE = 1
- AND SP.AUDITDATE >= @DATEBEGIN@
- AND SP.AUDITDATE < @DATEEND@
- AND (G.GOODSID IN ({GOODSID}) OR '{GOODSID}' = '0,0')
- AND (GDD.GROUTINGLINEID IN (0,0) OR '0,0' = '0,0')
- AND (GL.HIGHPRESSUREFLAG = @HIGHPRESSUREFLAG@ OR @HIGHPRESSUREFLAG@ = '-1')
- {TESTMOULDFLAG}
- {TESTFLAG}
- ) T
- WHERE T.RK <= 1) SP
- INNER JOIN TSAP_HEGII_DATAITEM HGDI
- ON HGDI.DATACODE = '50'
- AND HGDI.ITEMTYPE = 2
- AND HGDI.ITEMID = SP.PROCEDUREID
- INNER JOIN TP_PM_PRODUCTIONDATA PD
- ON PD.PRODUCTIONDATAID = SP.PRODUCTIONDATAID
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD
- ON GDD.GROUTINGDAILYDETAILID = SP.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G
- ON G.GOODSID = PD.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT
- ON G.GOODSTYPEID = GT.GOODSTYPEID)
- GROUP BY GOODSCODE,
- SAPCODE,
- USERCODE,
- WORKSHOP,
- TESTMOULDFLAG,
- GOODS_LINE_CODE,
- CHARG )TT
- GROUP BY TT.CHARG )TT2 GROUP BY GROUPING SETS ( TT2.时间, ( ) )
- ),
- 重烧登记损坯数 AS
- (
- SELECT
- GROUPING_ID (TT2.时间) AS GID,
- NVL(TT2.时间,'合计') AS 时间,
- SUM(TT2.重烧登记损坯数_一部全部) 重烧登记损坯数_一部全部,
- SUM(TT2.重烧登记损坯数_二部全部) 重烧登记损坯数_二部全部,
- SUM(TT2.重烧登记损坯数_三部全部) 重烧登记损坯数_三部全部
- FROM(
- SELECT
- TT.CHARG AS 时间,
- SUM(CASE WHEN TT.WORKSHOP = 1 THEN SCRAPNUM ELSE 0 END) 重烧登记损坯数_一部全部,
- SUM(CASE WHEN TT.WORKSHOP = 2 THEN SCRAPNUM ELSE 0 END) 重烧登记损坯数_二部全部,
- SUM(CASE WHEN TT.WORKSHOP = 3 THEN SCRAPNUM ELSE 0 END) 重烧登记损坯数_三部全部
- FROM(
- SELECT GOODSCODE,
- SAPCODE,
- USERCODE,
- 0 OUTPUTNUM,
- COUNT(*) SCRAPNUM,
- 0 CLEANUPNUM,
- 0 REPAIRNUM,
- WORKSHOP,
- TESTMOULDFLAG,
- GOODS_LINE_CODE,
- CHARG
- FROM (SELECT CASE
- WHEN T.IS3 > 0 THEN
- 3
- WHEN T.HGDIWORKSHOP = 2
- AND INSTR(T.GOODSTYPECODE, '001002') = 1 THEN
- 1
- WHEN T.HGDIWORKSHOP = 2
- AND INSTR(T.GOODSTYPECODE, '001001') = 1 THEN
- 2
- WHEN T.HGDIWORKSHOP = 3 THEN
- 3
- ELSE
- 2
- END AS WORKSHOP,
- T.*
- FROM (SELECT SP.BARCODE,
- SP.GOODSCODE,
- GDD.MATERIALCODE SAPCODE,
- PD.USERCODE,
- GT.GOODSTYPECODE,
- DECODE(GDD.TESTMOULDFLAG, 0, 'C', 1, 'Y', '-') AS TESTMOULDFLAG,
- G.GOODS_LINE_CODE,
- TO_CHAR(SP.AUDITDATE, 'YYYYMM') AS CHARG,
- --TO_CHAR(SP.AUDITDATE, 'yyyymm') AS CHARG,
- HGDI.WORKSHOP AS HGDIWORKSHOP,
- -- 如果参与了重烧,则判断这个条码是否走过3#卸窑
- (SELECT COUNT(1)
- FROM TP_PM_PRODUCTIONDATA PD2
- WHERE PD2.BARCODE = PD.BARCODE
- AND PD2.PROCEDUREID = 103
- -- 重烧相关的ID
- AND SP.PROCEDUREID IN (14, 16, 57, 58, 59, 60,113)) AS IS3
- FROM TP_PM_SCRAPPRODUCT SP
- INNER JOIN TSAP_HEGII_DATAITEM HGDI
- ON HGDI.DATACODE = '50'
- AND HGDI.ITEMTYPE = 2
- AND HGDI.ITEMID = SP.PROCEDUREID
- INNER JOIN TP_PM_PRODUCTIONDATA PD
- ON PD.PRODUCTIONDATAID = SP.PRODUCTIONDATAID
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD
- ON GDD.GROUTINGDAILYDETAILID = SP.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G
- ON G.GOODSID = PD.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT
- ON G.GOODSTYPEID = GT.GOODSTYPEID
- INNER JOIN TP_PC_GROUTINGLINE GL ON GDD.GROUTINGLINEID = GL.GROUTINGLINEID
- WHERE SP.AUDITSTATUS = 1
- AND SP.AUDITDATE >= @DATEBEGIN@
- AND SP.AUDITDATE < @DATEEND@
- AND (G.GOODSID IN ({GOODSID}) OR '{GOODSID}' = '0,0')
- AND (GDD.GROUTINGLINEID IN (0,0) OR '0,0' = '0,0')
- AND (GL.HIGHPRESSUREFLAG = @HIGHPRESSUREFLAG@ OR @HIGHPRESSUREFLAG@ = '-1')
- {TESTMOULDFLAG}
- {TESTFLAG}
- AND PD.ISREFIRE = 6
- AND SP.GOODSLEVELTYPEID in (8,9)
- --AND SP.SCRAPTYPE = 1
- --AND SP.SCRAPTYPE IN (0, 2, 3)
- ) T)
- GROUP BY GOODSCODE,
- SAPCODE,
- USERCODE,
- WORKSHOP,
- TESTMOULDFLAG,
- GOODS_LINE_CODE,
- CHARG
- ---------------------------------------------------
- UNION ALL
- -- 工序报损撤销
- ---------------------------------------------------
- SELECT GOODSCODE,
- SAPCODE,
- USERCODE,
- 0 OUTPUTNUM,
- 0 - COUNT(*) SCRAPNUM,
- 0 CLEANUPNUM,
- 0 REPAIRNUM,
- WORKSHOP,
- TESTMOULDFLAG,
- GOODS_LINE_CODE,
- CHARG
- FROM (SELECT CASE
- WHEN T.IS3 > 0 THEN
- 3
- WHEN T.HGDIWORKSHOP = 2
- AND INSTR(T.GOODSTYPECODE, '001002') = 1 THEN
- 1
- WHEN T.HGDIWORKSHOP = 2
- AND INSTR(T.GOODSTYPECODE, '001001') = 1 THEN
- 2
- WHEN T.HGDIWORKSHOP = 3 THEN
- 3
- ELSE
- 2
- END AS WORKSHOP,
- T.*
- FROM (SELECT SP.BARCODE,
- SP.GOODSCODE,
- GDD.MATERIALCODE SAPCODE,
- PD.USERCODE,
- GT.GOODSTYPECODE,
- DECODE(GDD.TESTMOULDFLAG, 0, 'C', 1, 'Y', '-') AS TESTMOULDFLAG,
- G.GOODS_LINE_CODE,
- TO_CHAR(SP.BACKOUTTIME, 'YYYYMM') AS CHARG,
- --TO_CHAR(SP.AUDITDATE, 'yyyymm') AS CHARG,
- HGDI.WORKSHOP AS HGDIWORKSHOP,
- -- 如果参与了重烧,则判断这个条码是否走过3#卸窑
- (SELECT COUNT(1)
- FROM TP_PM_PRODUCTIONDATA PD2
- WHERE PD2.BARCODE = PD.BARCODE
- AND PD2.PROCEDUREID = 103
- -- 重烧相关的ID
- AND SP.PROCEDUREID IN (14, 16, 57, 58, 59, 60,113)) AS IS3
- FROM TP_PM_SCRAPPRODUCT SP
- INNER JOIN TSAP_HEGII_DATAITEM HGDI
- ON HGDI.DATACODE = '50'
- AND HGDI.ITEMTYPE = 2
- AND HGDI.ITEMID = SP.PROCEDUREID
- INNER JOIN TP_PM_PRODUCTIONDATA PD
- ON PD.PRODUCTIONDATAID = SP.PRODUCTIONDATAID
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD
- ON GDD.GROUTINGDAILYDETAILID = SP.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G
- ON G.GOODSID = PD.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT
- ON G.GOODSTYPEID = GT.GOODSTYPEID
- INNER JOIN TP_PC_GROUTINGLINE GL ON GDD.GROUTINGLINEID = GL.GROUTINGLINEID
- WHERE SP.AUDITSTATUS = 1
- AND SP.BACKOUTTIME >= @DATEBEGIN@
- AND SP.BACKOUTTIME < @DATEEND@
- AND (G.GOODSID IN ({GOODSID}) OR '{GOODSID}' = '0,0')
- AND (GDD.GROUTINGLINEID IN (0,0) OR '0,0' = '0,0')
- AND (GL.HIGHPRESSUREFLAG = @HIGHPRESSUREFLAG@ OR @HIGHPRESSUREFLAG@ = '-1')
- {TESTMOULDFLAG}
- {TESTFLAG}
- AND PD.ISREFIRE = 6
- AND SP.GOODSLEVELTYPEID in (8,9)
- --AND SP.SCRAPTYPE = 1
- --AND SP.SCRAPTYPE IN (0, 2, 3)
- ) T)
- GROUP BY GOODSCODE,
- SAPCODE,
- USERCODE,
- WORKSHOP,
- TESTMOULDFLAG,
- GOODS_LINE_CODE,
- CHARG
-
- ---------------------------------------------------
- UNION ALL
- -- 干补报损
- ---------------------------------------------------
- SELECT GOODSCODE,
- SAPCODE,
- USERCODE,
- 0 OUTPUTNUM,
- COUNT(*) SCRAPNUM,
- 0 CLEANUPNUM,
- 0 REPAIRNUM,
- WORKSHOP,
- TESTMOULDFLAG,
- GOODS_LINE_CODE,
- CHARG
- FROM (SELECT SP.GOODSCODE,
- GDD.MATERIALCODE SAPCODE,
- PD.USERCODE,
- CASE
- WHEN HGDI.WORKSHOP = 2
- AND INSTR(GT.GOODSTYPECODE, '001002') = 1 THEN
- 1
- WHEN HGDI.WORKSHOP = 2
- AND INSTR(GT.GOODSTYPECODE, '001001') = 1 THEN
- 2
- WHEN HGDI.WORKSHOP = 3 THEN
- 3
- ELSE
- 4
- END AS WORKSHOP,
- DECODE(GDD.TESTMOULDFLAG, 0, 'C', 1, 'Y', '-') AS TESTMOULDFLAG,
- G.GOODS_LINE_CODE,
- TO_CHAR(SP.AUDITDATE, 'YYYYMM') AS CHARG
- --TO_CHAR(SP.AUDITDATE, 'yyyymm') AS CHARG
- FROM (SELECT T.*
- FROM (SELECT SP.BARCODE,
- SP.GOODSCODE,
- SP.GROUTINGDAILYDETAILID,
- PD.PROCEDUREID,
- PD.PRODUCTIONDATAID,
- SP.AUDITDATE,
- RANK() OVER(PARTITION BY SP.BARCODE ORDER BY PD.PRODUCTIONDATAID DESC) AS RK
- FROM TP_PM_SCRAPPRODUCT SP
- INNER JOIN TP_PM_PRODUCTIONDATA PD ON SP.BARCODE = PD.BARCODE
- -- 不包含干补工序
- AND PD.PROCEDUREID <> 18
- -- 要找干补之前的工序
- AND PD.PRODUCTIONDATAID < SP.PRODUCTIONDATAID
- AND PD.VALUEFLAG = '1'
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD
- ON GDD.GROUTINGDAILYDETAILID = SP.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G
- ON G.GOODSID = PD.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT
- ON G.GOODSTYPEID = GT.GOODSTYPEID
- INNER JOIN TP_PC_GROUTINGLINE GL ON GDD.GROUTINGLINEID = GL.GROUTINGLINEID
- WHERE SP.AUDITSTATUS = 1
- AND SP.PROCEDUREID = 18
- AND PD.ISREFIRE = 6
- AND SP.GOODSLEVELTYPEID in (8,9)
- --AND SP.SCRAPTYPE = 1
- AND SP.AUDITDATE >= @DATEBEGIN@
- AND SP.AUDITDATE < @DATEEND@
- AND (G.GOODSID IN ({GOODSID}) OR '{GOODSID}' = '0,0')
- AND (GDD.GROUTINGLINEID IN (0,0) OR '0,0' = '0,0')
- AND (GL.HIGHPRESSUREFLAG = @HIGHPRESSUREFLAG@ OR @HIGHPRESSUREFLAG@ = '-1')
- {TESTMOULDFLAG}
- {TESTFLAG}
- ) T
- WHERE T.RK <= 1) SP
- INNER JOIN TSAP_HEGII_DATAITEM HGDI
- ON HGDI.DATACODE = '50'
- AND HGDI.ITEMTYPE = 2
- AND HGDI.ITEMID = SP.PROCEDUREID
- INNER JOIN TP_PM_PRODUCTIONDATA PD
- ON PD.PRODUCTIONDATAID = SP.PRODUCTIONDATAID
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD
- ON GDD.GROUTINGDAILYDETAILID = SP.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G
- ON G.GOODSID = PD.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT
- ON G.GOODSTYPEID = GT.GOODSTYPEID)
- GROUP BY GOODSCODE,
- SAPCODE,
- USERCODE,
- WORKSHOP,
- TESTMOULDFLAG,
- GOODS_LINE_CODE,
- CHARG)TT
- GROUP BY TT.CHARG )TT2 GROUP BY GROUPING SETS ( TT2.时间, ( ) )
- )
- SELECT
- 拼接日期.时间,
- NVL(注浆数.注浆数_一部全部,0) 注浆数_一部全部,
- NVL(注浆数.注浆数_二部全部,0) 注浆数_二部全部,
- NVL(注浆数.注浆数_三部全部,0) 注浆数_三部全部,
- NVL(成型报损.成型报损_一部全部,0) 成型报损_一部全部,
- NVL(成型报损.成型报损_二部全部,0) 成型报损_二部全部,
- NVL(成型报损.成型报损_三部全部,0) 成型报损_三部全部,
- NVL(半检不合格.半检不合格_一部全部,0) 半检不合格_一部全部,
- NVL(半检不合格.半检不合格_二部全部,0) 半检不合格_二部全部,
- NVL(半检不合格.半检不合格_三部全部,0) 半检不合格_三部全部,
- NVL(复检不合格.复检不合格_一部全部,0) 复检不合格_一部全部,
- NVL(复检不合格.复检不合格_二部全部,0) 复检不合格_二部全部,
- NVL(复检不合格.复检不合格_三部全部,0) 复检不合格_三部全部,
- NVL(半成品损坯数.半成品损坯数_一部全部,0) 半成品损坯数_一部全部,
- NVL(半成品损坯数.半成品损坯数_二部全部,0) 半成品损坯数_二部全部,
- NVL(半成品损坯数.半成品损坯数_三部全部,0) 半成品损坯数_三部全部,
- NVL(干补回收数.干补回收数_一部全部,0) 干补回收数_一部全部,
- NVL(干补回收数.干补回收数_二部全部,0) 干补回收数_二部全部,
- NVL(干补回收数.干补回收数_三部全部,0) 干补回收数_三部全部,
- NVL(出窑数.出窑数_一部全部,0) 出窑数_一部全部,
- NVL(出窑数.出窑数_二部全部,0) 出窑数_二部全部,
- NVL(出窑数.出窑数_三部全部,0) 出窑数_三部全部,
- NVL(质量登记次品数.质量登记次品数_一部全部,0) 质量登记次品数_一部全部,
- NVL(质量登记次品数.质量登记次品数_二部全部,0) 质量登记次品数_二部全部,
- NVL(质量登记次品数.质量登记次品数_三部全部,0) 质量登记次品数_三部全部,
- NVL(重烧登记次品数.重烧登记次品数_一部全部,0) 重烧登记次品数_一部全部,
- NVL(重烧登记次品数.重烧登记次品数_二部全部,0) 重烧登记次品数_二部全部,
- NVL(重烧登记次品数.重烧登记次品数_三部全部,0) 重烧登记次品数_三部全部,
- NVL(质量登记损坏数.质量登记损坏数_一部全部,0) 质量登记损坏数_一部全部,
- NVL(质量登记损坏数.质量登记损坏数_二部全部,0) 质量登记损坏数_二部全部,
- NVL(质量登记损坏数.质量登记损坏数_三部全部,0) 质量登记损坏数_三部全部,
- NVL(重烧登记损坯数.重烧登记损坯数_一部全部,0) 重烧登记损坯数_一部全部,
- NVL(重烧登记损坯数.重烧登记损坯数_二部全部,0) 重烧登记损坯数_二部全部,
- NVL(重烧登记损坯数.重烧登记损坯数_三部全部,0) 重烧登记损坯数_三部全部,
- NVL(回收数.回收数_一部全部,0) 回收数_一部全部,
- NVL(回收数.回收数_二部全部,0) 回收数_二部全部,
- NVL(回收数.回收数_三部全部,0) 回收数_三部全部,
- NVL(入库数.入库数_一部全部,0) 入库数_一部全部,
- NVL(入库数.入库数_二部全部,0) 入库数_二部全部,
- NVL(入库数.入库数_三部全部,0) 入库数_三部全部
- FROM 拼接日期
- LEFT JOIN 注浆数 ON 拼接日期.时间 = 注浆数.时间
- LEFT JOIN 成型报损 ON 拼接日期.时间 = 成型报损.时间
- LEFT JOIN 半检不合格 ON 拼接日期.时间 = 半检不合格.时间
- LEFT JOIN 复检不合格 ON 拼接日期.时间 = 复检不合格.时间
- LEFT JOIN 半成品损坯数 ON 拼接日期.时间 = 半成品损坯数.时间
- LEFT JOIN 干补回收数 ON 拼接日期.时间 = 干补回收数.时间
- LEFT JOIN 出窑数 ON 拼接日期.时间 = 出窑数.时间
- LEFT JOIN 回收数 ON 拼接日期.时间 = 回收数.时间
- LEFT JOIN 入库数 ON 拼接日期.时间 = 入库数.时间
- LEFT JOIN 质量登记次品数 ON 拼接日期.时间 = 质量登记次品数.时间
- LEFT JOIN 质量登记损坏数 ON 拼接日期.时间 = 质量登记损坏数.时间
- LEFT JOIN 重烧登记次品数 ON 拼接日期.时间 = 重烧登记次品数.时间
- LEFT JOIN 重烧登记损坯数 ON 拼接日期.时间 = 重烧登记损坯数.时间
- ".Replace("YYYYMM",totalMaster)
- .Replace("{GOODSID}",goodsId)
- .Replace("{GROUTINGLINEID}",groutinglineId)
- .Replace("{DATESTR}",datestr)
- .Replace("{TESTMOULDFLAG}", testmouldflag)
- .Replace("{TESTFLAG}",testflagmaster);
-
- //获取查询条件
- if (context.Request["checke"].ToString()=="false")
- {
- //highFlag ="null";
- testType = "-1";
- testFlagMaster = "-1";
- }
- List<CDAParameter> sqlPara = new List<CDAParameter>();
- sqlPara.Add(new CDAParameter("DATEBEGIN", dateBegin, DataType.DateTime));
- sqlPara.Add(new CDAParameter("DATEEND", dateEnd, DataType.DateTime));
- sqlPara.Add(new CDAParameter("HIGHPRESSUREFLAG",highFlag));
- sqlPara.Add(new CDAParameter("TESTMOULDFLAG",testType));
- sqlPara.Add(new CDAParameter("TESTFLAG",testFlagMaster));
- //sqlPara.Add(new CDAParameter("PROCEDUREID", context.Request["procedureidMaster"]));
- //行列互换
- //===============================================================================
- DataTable dt = conn.ExecuteDatatable(sqlStr, sqlPara.ToArray());
- DataTable dt2 = new DataTable();
- dt2.Columns.Add("部门序号");
- dt2.Columns.Add("部门");
- dt2.Columns.Add("工序");
- for (int i = 0; i < dt.Rows.Count; i++) dt2.Columns.Add("日期" + dt.Rows[i]["时间"].ToString());
- for (int j = 1; j < dt.Columns.Count; j++)
- {
- DataRow dr = dt2.NewRow();
- dr["部门序号"] = dt.Columns[j].ColumnName.Substring(dt.Columns[j].ColumnName.IndexOf("_")+1)
- .Replace("一部全部","1").Replace("二部全部","2").Replace("三部全部","3");
- dr["部门"] = dt.Columns[j].ColumnName.Substring(dt.Columns[j].ColumnName.IndexOf("_")+1);
- dr["工序"] = dt.Columns[j].ColumnName.Substring(0, dt.Columns[j].ColumnName.IndexOf("_"));
- for (int i = 0; i < dt.Rows.Count; i++)
- {
- dr["日期" + dt.Rows[i]["时间"].ToString()] = dt.Rows[i][dt.Columns[j].ColumnName];
- }
- dt2.Rows.Add(dr);
- }
- DataView dv = dt2.DefaultView;
- dv.Sort = "部门序号";
- dt2.Columns.Remove("部门序号");
- dt2 = dv.ToTable();
- context.Response.Write(new JsonResult(dt2) { total = dt.Rows.Count }.ToJson());
- }
- //子表1
- if(context.Request["m"].ToString()=="1")
- {
- //读取报表数据
- string sqlStr = @"
- SELECT
- TT1.BARCODE 条码
- --TT1.车间
- FROM(
- SELECT
- TT.BARCODE,
- CASE WHEN (INSTR(GDD.GROUTINGLINECODE, 'A') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
- AND INSTR(GT.GOODSTYPECODE, '001002') = 1 THEN 1
- WHEN (INSTR(GDD.GROUTINGLINECODE, 'B') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
- AND INSTR(GT.GOODSTYPECODE, '001001') = 1 THEN 2
- WHEN INSTR(GDD.GROUTINGLINECODE, 'C') = 1 THEN 3 ELSE 0 END 车间
- FROM(
- SELECT GDD.BARCODE,'1' nodetype,GDD.groutingdailydetailid FROM(
- SELECT s.groutingdailydetailid,s.outputnum,NVL(s.counts,0),NVL(s.countt,0)
- FROM (SELECT a.groutingdailydetailid,a.outputnum,a.counts,tt.countt
- FROM (SELECT groutingdailydetailid,outputnum,COUNT(*) counts
- FROM (SELECT decode(gh.datatype, 1, 1, -1) outputnum,gdd.groutingdailydetailid
- FROM tp_pm_goodschangehistory gh
- INNER JOIN tp_pm_groutingdailydetail gdd
- ON gdd.groutingdailydetailid = gh.groutingdailydetailid
- INNER JOIN tp_mst_goods g
- ON g.goodsid = gh.goodsid
- INNER JOIN tp_mst_goodstype gt
- ON g.goodstypeid = gt.goodstypeid
- WHERE gh.createtime >= @DATEBEGIN@
- AND gh.createtime < @DATEEND@
- AND gh.datatype IN (1, 2)
- AND g.scrapsumflag = '1')
- GROUP BY groutingdailydetailid,outputnum) a
- LEFT JOIN (SELECT groutingdailydetailid,outputnum,COUNT(*) countt
- FROM tsap_hegii_datalog_bg_detail THDBD
- LEFT JOIN TSAP_HEGII_DATALOG_BG THDB ON THDBD.LOGID = THDB.LOGID
- WHERE THDBD.outputnum NOT IN (0)
- AND THDB.DATACODE = 20
- AND THDB.YYYYMMDD>=TO_CHAR(@DATEBEGIN@,'YYYYMMDD') AND THDB.YYYYMMDD<TO_CHAR(@DATEEND@,'YYYYMMDD')
- GROUP BY groutingdailydetailid,outputnum) tt
- ON tt.groutingdailydetailid = a.groutingdailydetailid
- AND tt.outputnum = a.outputnum ) s
- WHERE NVL(s.counts,0)!=NVL(s.countt,0))T
- LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON T.groutingdailydetailid = GDD.groutingdailydetailid
- UNION ALL
- SELECT GDD.BARCODE,'2' nodetype,gdd.groutingdailydetailid FROM(
- SELECT s.groutingdailydetailid,s.SCRAPNUM,NVL(s.counts,0),NVL(s.countt,0)
- FROM (SELECT a.groutingdailydetailid,a.SCRAPNUM,a.counts,tt.countt
- FROM (SELECT
- TT.GROUTINGDAILYDETAILID,
- TT.SCRAPNUM,
- COUNT(*) counts
- FROM(
- SELECT
- gdd.groutingdailydetailid,
- DECODE( GH.DATATYPE, 3, 1, - 1 )SCRAPNUM
- FROM
- TP_PM_GOODSCHANGEHISTORY GH
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = GH.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_USER U ON U.USERID = GH.USERID
- INNER JOIN TP_MST_GOODS G ON G.GOODSID = GH.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
- WHERE
- GH.CREATETIME >= @DATEBEGIN@
- AND GH.CREATETIME < @DATEEND@
- AND GH.DATATYPE IN ( 3, 4 )
- AND G.SCRAPSUMFLAG = '1'
- UNION ALL-- 工序报损
- SELECT
- gdd.groutingdailydetailid,
- 1 SCRAPNUM
- FROM
- TP_PM_SCRAPPRODUCT SP
- INNER JOIN TSAP_HEGII_DATAITEM HGDI ON HGDI.DATACODE IN ( 20,30,40 )
- AND HGDI.ITEMTYPE = 2
- AND HGDI.ITEMID = SP.PROCEDUREID
- INNER JOIN TP_PM_PRODUCTIONDATA PD ON PD.PRODUCTIONDATAID = SP.PRODUCTIONDATAID
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = SP.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G ON G.GOODSID = GDD.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
- WHERE
- SP.AUDITSTATUS = 1
- AND SP.AUDITDATE >= @DATEBEGIN@
- AND SP.AUDITDATE < @DATEEND@ -- AND SP.SCRAPTYPE IN (0, 2, 3)
- UNION ALL-- 工序报损撤销
- SELECT
- gdd.groutingdailydetailid,
- -1 SCRAPNUM
- FROM
- TP_PM_SCRAPPRODUCT SP
- INNER JOIN TSAP_HEGII_DATAITEM HGDI ON HGDI.DATACODE IN ( 20,30,40 )
- AND HGDI.ITEMTYPE = 2
- AND HGDI.ITEMID = SP.PROCEDUREID
- INNER JOIN TP_PM_PRODUCTIONDATA PD ON PD.PRODUCTIONDATAID = SP.PRODUCTIONDATAID
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = SP.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G ON G.GOODSID = GDD.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
- WHERE
- SP.AUDITSTATUS = 1
- AND SP.VALUEFLAG = '0'
- AND SP.BACKOUTTIME >= @DATEBEGIN@
- AND SP.BACKOUTTIME < @DATEEND@ -- AND SP.SCRAPTYPE IN (0, 2, 3)
- UNION ALL-- 干补报损
- ---------------------------------------------------
- SELECT
- groutingdailydetailid,
- 1
- FROM
- (
- SELECT
- SP.GOODSCODE,
- GDD.MATERIALCODE SAPCODE,
- PD.USERCODE,
- gdd.groutingdailydetailid,
- CASE
-
- WHEN HGDI.WORKSHOP = 2
- AND INSTR( GT.GOODSTYPECODE, '001002' ) = 1 THEN
- 1
- WHEN HGDI.WORKSHOP = 2
- AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1 THEN
- 2
- WHEN HGDI.WORKSHOP = 3 THEN
- 3 ELSE 4
- END AS WORKSHOP,
- GDD.TESTMOULDFLAG,
- G.GOODS_LINE_CODE,
- TO_CHAR( SP.AUDITDATE, 'yymm' ) || '5000E' AS CHARG --TO_CHAR(SP.AUDITDATE, 'yyyymm') AS CHARG
-
- FROM
- (
- SELECT
- T.*
- FROM
- (
- SELECT
- SP.BARCODE,
- SP.GOODSCODE,
- SP.GROUTINGDAILYDETAILID,
- PD.PROCEDUREID,
- PD.PRODUCTIONDATAID,
- SP.AUDITDATE,
- RANK ( ) OVER ( PARTITION BY SP.BARCODE ORDER BY PD.PRODUCTIONDATAID DESC ) AS RK
- FROM
- TP_PM_SCRAPPRODUCT SP
- INNER JOIN TP_PM_PRODUCTIONDATA PD ON SP.BARCODE = PD.BARCODE -- 不包含干补工序
-
- AND PD.PROCEDUREID <> 18 -- 要找干补之前的工序
-
- AND PD.PRODUCTIONDATAID < SP.PRODUCTIONDATAID
- AND PD.VALUEFLAG = '1'
- WHERE
- SP.AUDITSTATUS = 1
- AND SP.PROCEDUREID = 18
- AND SP.AUDITDATE >= @DATEBEGIN@
- AND SP.AUDITDATE < @DATEEND@
- ) T
- WHERE
- T.RK <= 1
- ) SP
- INNER JOIN TSAP_HEGII_DATAITEM HGDI ON HGDI.DATACODE IN ( 20,30,40 )
- AND HGDI.ITEMTYPE = 2
- AND HGDI.ITEMID = SP.PROCEDUREID
- INNER JOIN TP_PM_PRODUCTIONDATA PD ON PD.PRODUCTIONDATAID = SP.PRODUCTIONDATAID
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = SP.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G ON G.GOODSID = PD.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
- ) )TT GROUP BY TT.GROUTINGDAILYDETAILID,TT.SCRAPNUM) a
- LEFT JOIN (SELECT groutingdailydetailid,SCRAPNUM,COUNT(*) countt
- FROM tsap_hegii_datalog_bg_detail THDBD
- LEFT JOIN TSAP_HEGII_DATALOG_BG THDB ON THDBD.LOGID = THDB.LOGID
- WHERE THDBD.SCRAPNUM NOT IN (0)
- AND THDB.DATACODE IN (20,30,40)
- AND THDB.YYYYMMDD>=TO_CHAR(@DATEBEGIN@,'YYYYMMDD') AND THDB.YYYYMMDD<TO_CHAR(@DATEEND@,'YYYYMMDD')
- GROUP BY groutingdailydetailid,SCRAPNUM) tt
- ON tt.groutingdailydetailid = a.groutingdailydetailid
- AND tt.SCRAPNUM = a.SCRAPNUM ) s
- WHERE NVL(s.counts,0)!=NVL(s.countt,0))T
- LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON T.groutingdailydetailid = GDD.groutingdailydetailid
- UNION ALL
- SELECT GDD.BARCODE,'3' nodetype,gdd.groutingdailydetailid FROM(
- SELECT s.groutingdailydetailid,s.outputnum,NVL(s.counts,0),NVL(s.countt,0)
- FROM (SELECT a.groutingdailydetailid,a.outputnum,a.counts,tt.countt
- FROM (SELECT groutingdailydetailid,outputnum,COUNT(*) counts
- FROM (--20、30、40干补
- SELECT
- 1 outputnum,
- groutingdailydetailid
- FROM
- (
- SELECT
- SP.GOODSCODE,
- GDD.MATERIALCODE SAPCODE,
- SP.SPECIALREPAIRUSERCODE USERCODE,
- gdd.groutingdailydetailid,
- CASE
-
- WHEN HGDI.WORKSHOP = 2
- AND INSTR( GT.GOODSTYPECODE, '001002' ) = 1 THEN
- 1
- WHEN HGDI.WORKSHOP = 2
- AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1 THEN
- 2
- WHEN HGDI.WORKSHOP = 3 THEN
- 3 ELSE 4
- END AS WORKSHOP,
- DECODE( GDD.TESTMOULDFLAG, 0, 'C', 1, 'Y', '-' ) AS TESTMOULDFLAG,
- G.GOODS_LINE_CODE,
- TO_CHAR( SP.SPECIALREPAIRTIME, 'yymm' ) || '5000E' AS CHARG --TO_CHAR(SP.SPECIALREPAIRTIME, 'yyyymm') AS CHARG
-
- FROM
- TP_PM_SCRAPPRODUCT SP
- INNER JOIN TSAP_HEGII_DATAITEM HGDI ON HGDI.DATACODE IN ( '20','30','40')
- AND HGDI.ITEMTYPE = 2
- AND HGDI.ITEMID = SP.PROCEDUREID
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = SP.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G ON G.GOODSID = GDD.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
- WHERE
- SP.AUDITSTATUS = 1
- AND SP.GOODSLEVELTYPEID = 9
- AND SP.SPECIALREPAIRTIME >= @DATEBEGIN@
- AND SP.SPECIALREPAIRTIME < @DATEEND@ ) )
- GROUP BY groutingdailydetailid,outputnum) a
- LEFT JOIN (SELECT groutingdailydetailid,REPAIRNUM outputnum,COUNT(*) countt
- FROM tsap_hegii_datalog_bg_detail THDBD
- LEFT JOIN TSAP_HEGII_DATALOG_BG THDB ON THDBD.LOGID = THDB.LOGID
- WHERE THDBD.REPAIRNUM NOT IN (0)
- AND THDB.DATACODE IN ('20','30','40')
- AND THDB.YYYYMMDD>=TO_CHAR(@DATEBEGIN@,'YYYYMMDD') AND THDB.YYYYMMDD<TO_CHAR(@DATEEND@,'YYYYMMDD')
- GROUP BY groutingdailydetailid,REPAIRNUM) tt
- ON tt.groutingdailydetailid = a.groutingdailydetailid
- AND tt.outputnum = a.outputnum ) s
- WHERE NVL(s.counts,0)!=NVL(s.countt,0))T
- LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON T.groutingdailydetailid = GDD.groutingdailydetailid
- UNION ALL
- SELECT GDD.BARCODE,'4' nodetype,gdd.groutingdailydetailid FROM(
- SELECT s.groutingdailydetailid,s.outputnum,NVL(s.counts,0),NVL(s.countt,0)
- FROM (SELECT a.groutingdailydetailid,a.outputnum,a.counts,tt.countt
- FROM (SELECT groutingdailydetailid,outputnum,COUNT(*) counts
- FROM (SELECT GROUTINGDAILYDETAILID,
- 1 OUTPUTNUM
- FROM (SELECT CASE
- WHEN T.IS3 > 0 THEN
- 3
- WHEN INSTR(T.GOODSTYPECODE, '001002') = 1 THEN
- 1
- WHEN INSTR(T.GOODSTYPECODE, '001001') = 1 THEN
- 2
- ELSE
- 2
- END AS WORKSHOP,
- T.GROUTINGDAILYDETAILID
- FROM (SELECT DISTINCT PD.BARCODE,
- PD.GOODSCODE,
- GDD.GROUTINGDAILYDETAILID,
- GDD.MATERIALCODE SAPCODE,
- PD.USERCODE,
- DECODE(GDD.TESTMOULDFLAG, 0, 'C', 1, 'Y', '-') AS TESTMOULDFLAG,
- G.GOODS_LINE_CODE,
- TO_CHAR(PD.CREATETIME, 'yymm') || '5000E' AS CHARG,
- --TO_CHAR(PD.CREATETIME, 'yyyymm') AS CHARG,
- HGDI.WORKSHOP AS HGDIWORKSHOP,
- GT.GOODSTYPECODE,
- -- 如果3#卸窑(103),就是3车间的
- (SELECT COUNT(1)
- FROM TP_PM_PRODUCTIONDATA PD2
- WHERE PD2.BARCODE = PD.BARCODE
- AND PD2.PROCEDUREID = 103) AS IS3
- FROM TP_PM_PRODUCTIONDATA PD
- INNER JOIN TSAP_HEGII_DATAITEM HGDI
- ON HGDI.DATACODE = '50'
- AND HGDI.ITEMTYPE = 1
- AND HGDI.ITEMID = PD.PROCEDUREID -- 3#成检交接(本烧重烧共用,且可以改判)
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD
- ON GDD.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G
- ON G.GOODSID = PD.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT
- ON G.GOODSTYPEID = GT.GOODSTYPEID
- WHERE PD.CREATETIME >= @DATEBEGIN@
- AND PD.CREATETIME < @DATEEND@
- AND PD.ISREFIRE = '0'
- AND PD.Islengbu = '0'
- --AND PD.KILNID IN(1,2,5)-- 取本烧的窑炉
- --AND ((HGDI.ITEMID <> 104 AND PD.VALUEFLAG = '1') OR
- -- (HGDI.ITEMID = 104 AND PD.ISREFIRE = '0' AND
- -- PD.CHECKFLAG = '1'))) T
- AND ((HGDI.ITEMID = 11 AND (PD.CHECKFLAG = '1' OR PD.CHECKFLAG IS NULL))
- OR (HGDI.ITEMID = 104 AND PD.CHECKFLAG = '1')) ) T
-
- ))
- GROUP BY groutingdailydetailid,outputnum) a
- LEFT JOIN (SELECT groutingdailydetailid,outputnum,COUNT(*) countt
- FROM tsap_hegii_datalog_bg_detail THDBD
- LEFT JOIN TSAP_HEGII_DATALOG_BG THDB ON THDBD.LOGID = THDB.LOGID
- WHERE THDBD.outputnum NOT IN (0)
- AND THDB.DATACODE = 50
- AND THDB.YYYYMMDD>=TO_CHAR(@DATEBEGIN@,'YYYYMMDD') AND THDB.YYYYMMDD<TO_CHAR(@DATEEND@,'YYYYMMDD')
- GROUP BY groutingdailydetailid,outputnum) tt
- ON tt.groutingdailydetailid = a.groutingdailydetailid
- AND tt.outputnum = a.outputnum ) s
- WHERE NVL(s.counts,0)!=NVL(s.countt,0)
- )T
- LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON T.groutingdailydetailid = GDD.groutingdailydetailid
- UNION ALL
- SELECT GDD.BARCODE,'5' nodetype,gdd.groutingdailydetailid FROM(
- SELECT s.groutingdailydetailid,s.outputnum,NVL(s.counts,0),NVL(s.countt,0)
- FROM (SELECT a.groutingdailydetailid,a.outputnum,a.counts,tt.countt
- FROM (SELECT groutingdailydetailid,outputnum,COUNT(*) counts
- FROM (SELECT groutingdailydetailid,
- 1 outputnum
- FROM (SELECT
- T.groutingdailydetailid
- FROM (SELECT GDD.groutingdailydetailid
- FROM TP_PM_SCRAPPRODUCT SP
- INNER JOIN TSAP_HEGII_DATAITEM HGDI
- ON HGDI.DATACODE = '50'
- AND HGDI.ITEMTYPE = 2
- AND HGDI.ITEMID = SP.PROCEDUREID
- INNER JOIN TP_PM_PRODUCTIONDATA PD
- ON PD.PRODUCTIONDATAID = SP.PRODUCTIONDATAID
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD
- ON GDD.GROUTINGDAILYDETAILID = SP.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G
- ON G.GOODSID = PD.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT
- ON G.GOODSTYPEID = GT.GOODSTYPEID
- WHERE SP.AUDITSTATUS = 1
- AND SP.AUDITDATE >= @DATEBEGIN@
- AND SP.AUDITDATE < @DATEEND@
- --AND SP.SCRAPTYPE IN (0, 2, 3)
- ) T)
- ---------------------------------------------------
- UNION ALL
- -- 工序报损撤销
- ---------------------------------------------------
- SELECT groutingdailydetailid,
- -1 SCRAPNUM
- FROM (SELECT
- T.groutingdailydetailid
- FROM (SELECT gdd.groutingdailydetailid
- FROM TP_PM_SCRAPPRODUCT SP
- INNER JOIN TSAP_HEGII_DATAITEM HGDI
- ON HGDI.DATACODE = '50'
- AND HGDI.ITEMTYPE = 2
- AND HGDI.ITEMID = SP.PROCEDUREID
- INNER JOIN TP_PM_PRODUCTIONDATA PD
- ON PD.PRODUCTIONDATAID = SP.PRODUCTIONDATAID
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD
- ON GDD.GROUTINGDAILYDETAILID = SP.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G
- ON G.GOODSID = PD.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT
- ON G.GOODSTYPEID = GT.GOODSTYPEID
- WHERE SP.AUDITSTATUS = 1
- AND SP.BACKOUTTIME >= @DATEBEGIN@
- AND SP.BACKOUTTIME < @DATEEND@
- --AND SP.SCRAPTYPE IN (0, 2, 3)
- ) T)
-
- ---------------------------------------------------
- UNION ALL
- -- 干补报损
- ---------------------------------------------------
- SELECT groutingdailydetailid,
- 1
- FROM (SELECT SP.groutingdailydetailid
- FROM (SELECT T.*
- FROM (SELECT SP.BARCODE,
- SP.GOODSCODE,
- SP.groutingdailydetailid,
- PD.PROCEDUREID,
- PD.PRODUCTIONDATAID,
- SP.AUDITDATE,
- RANK() OVER(PARTITION BY SP.BARCODE ORDER BY PD.PRODUCTIONDATAID DESC) AS RK
- FROM TP_PM_SCRAPPRODUCT SP
- INNER JOIN TP_PM_PRODUCTIONDATA PD
- ON SP.BARCODE = PD.BARCODE
- -- 不包含干补工序
- AND PD.PROCEDUREID <> 18
- -- 要找干补之前的工序
- AND PD.PRODUCTIONDATAID < SP.PRODUCTIONDATAID
- AND PD.VALUEFLAG = '1'
- WHERE SP.AUDITSTATUS = 1
- AND SP.PROCEDUREID = 18
- AND SP.AUDITDATE >= @DATEBEGIN@
- AND SP.AUDITDATE < @DATEEND@) T
- WHERE T.RK <= 1) SP
- INNER JOIN TSAP_HEGII_DATAITEM HGDI
- ON HGDI.DATACODE = '50'
- AND HGDI.ITEMTYPE = 2
- AND HGDI.ITEMID = SP.PROCEDUREID
- INNER JOIN TP_PM_PRODUCTIONDATA PD
- ON PD.PRODUCTIONDATAID = SP.PRODUCTIONDATAID
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD
- ON GDD.GROUTINGDAILYDETAILID = SP.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G
- ON G.GOODSID = PD.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT
- ON G.GOODSTYPEID = GT.GOODSTYPEID))
- GROUP BY groutingdailydetailid,outputnum) a
- LEFT JOIN (SELECT groutingdailydetailid,SCRAPNUM outputnum,COUNT(*) countt
- FROM tsap_hegii_datalog_bg_detail THDBD
- LEFT JOIN TSAP_HEGII_DATALOG_BG THDB ON THDBD.LOGID = THDB.LOGID
- WHERE THDBD.SCRAPNUM NOT IN (0)
- AND THDB.DATACODE IN (50)
- AND THDB.YYYYMMDD>=TO_CHAR(@DATEBEGIN@,'YYYYMMDD') AND THDB.YYYYMMDD<TO_CHAR(@DATEEND@,'YYYYMMDD')
- GROUP BY groutingdailydetailid,SCRAPNUM) tt
- ON tt.groutingdailydetailid = a.groutingdailydetailid
- AND tt.outputnum = a.outputnum ) s
- WHERE NVL(s.counts,0)!=NVL(s.countt,0) )T
- LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON T.groutingdailydetailid = GDD.groutingdailydetailid
- UNION ALL
- SELECT GDD.BARCODE,'6' nodetype,gdd.groutingdailydetailid FROM(
- SELECT s.groutingdailydetailid,s.outputnum,NVL(s.counts,0),NVL(s.countt,0)
- FROM (SELECT a.groutingdailydetailid,a.outputnum,a.counts,tt.countt
- FROM (SELECT groutingdailydetailid,outputnum,COUNT(*) counts
- FROM (SELECT T.GROUTINGDAILYDETAILID,
- DECODE(T.RECYCLINGFLAG, '0', 0, 1) outputnum
- FROM (SELECT
- BAR.RECYCLINGFLAG,
- BAR.GROUTINGDAILYDETAILID,
- TO_CHAR(GH.FHTIME, 'yyyymm') AS CHARG
- FROM TP_PM_GROUTINGDAILYDETAIL BAR
- INNER JOIN TP_PM_FINISHEDPRODUCT GH
- ON BAR.GROUTINGDAILYDETAILID = GH.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G
- ON G.GOODSID = BAR.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT
- ON GT.GOODSTYPEID = G.GOODSTYPEID
- LEFT JOIN TP_PM_ORDER O
- ON O.ORDERID = GH.FHORDERID
- WHERE GH.FHUSERID IS NOT NULL
- AND GH.FHTIME >= @DATEBEGIN@
- AND GH.FHTIME < @DATEEND@) T)
- GROUP BY groutingdailydetailid,outputnum) a
- LEFT JOIN ( SELECT T1.groutingdailydetailid,T1.OUTPUTNUM,COUNT(*) countt FROM (
- SELECT DISTINCT TPF.groutingdailydetailid,DECODE(BAR.RECYCLINGFLAG, '0', 0, 1) outputnum FROM TSAP_HEGII_WORKDATA_BG TSH
- INNER JOIN TP_PM_FINISHEDPRODUCT TPF ON TSH.LOGID = TPF.BGLOGID
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL BAR ON TPF.groutingdailydetailid = BAR.groutingdailydetailid
- WHERE
- TSH.CREATETIME>=@DATEBEGIN@
- AND TSH.CREATETIME<@DATEEND@
- AND TPF.CREATETIME>=@DATEBEGINONE@
- AND TPF.CREATETIME<@DATEEND@
- AND TPF.VALUEFLAG = 1
- and TSH.DATACODE = 60
- AND TSH.outputnum NOT IN (0))T1 GROUP BY T1.groutingdailydetailid,T1.OUTPUTNUM) tt
- ON tt.groutingdailydetailid = a.groutingdailydetailid
- AND tt.outputnum = a.outputnum ) s
- WHERE NVL(s.counts,0)!=NVL(s.countt,0))T
- LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON T.groutingdailydetailid = GDD.groutingdailydetailid
- UNION ALL
- SELECT GDD.BARCODE,'7' nodetype,gdd.groutingdailydetailid FROM(
- SELECT s.groutingdailydetailid,s.outputnum,NVL(s.counts,0),NVL(s.countt,0)
- FROM (SELECT a.groutingdailydetailid,a.outputnum,a.counts,tt.countt
- FROM (SELECT groutingdailydetailid,outputnum,COUNT(*) counts
- FROM (SELECT T1.GROUTINGDAILYDETAILID,
- DECODE(T1.RECYCLINGFLAG, '1', 0, 1) OUTPUTNUM
- FROM (SELECT
- BAR.RECYCLINGFLAG,
- BAR.GROUTINGDAILYDETAILID,
- TO_CHAR(GH.FHTIME, 'yyyymm') AS CHARG
- FROM TP_PM_GROUTINGDAILYDETAIL BAR
- INNER JOIN TP_PM_FINISHEDPRODUCT GH
- ON BAR.GROUTINGDAILYDETAILID = GH.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G
- ON G.GOODSID = BAR.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT
- ON GT.GOODSTYPEID = G.GOODSTYPEID
- LEFT JOIN TP_PM_ORDER O
- ON O.ORDERID = GH.FHORDERID
- WHERE GH.FHUSERID IS NOT NULL
- AND GH.FHTIME >= @DATEBEGIN@
- AND GH.FHTIME < @DATEEND@) T1)
- GROUP BY groutingdailydetailid,outputnum) a
- LEFT JOIN ( SELECT T1.groutingdailydetailid,T1.OUTPUTNUM,COUNT(*) countt FROM (
- SELECT DISTINCT TPF.groutingdailydetailid,DECODE(BAR.RECYCLINGFLAG, '1', 0, 1) OUTPUTNUM FROM TSAP_HEGII_WORKDATA_BG TSH
- INNER JOIN TP_PM_FINISHEDPRODUCT TPF ON TSH.LOGID = TPF.BGLOGID
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL BAR ON TPF.groutingdailydetailid = BAR.groutingdailydetailid
- WHERE
- TSH.CREATETIME>=@DATEBEGIN@
- AND TSH.CREATETIME<@DATEEND@
- AND TPF.CREATETIME>=@DATEBEGINONE@
- AND TPF.CREATETIME<@DATEEND@
- AND TPF.VALUEFLAG = 1
- and TSH.DATACODE = 60
- AND TSH.outputnum NOT IN (0))T1 GROUP BY T1.groutingdailydetailid,T1.OUTPUTNUM) tt
- ON tt.groutingdailydetailid = a.groutingdailydetailid
- AND tt.outputnum = a.outputnum ) s
- WHERE NVL(s.counts,0)!=NVL(s.countt,0))T
- LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON T.groutingdailydetailid = GDD.groutingdailydetailid) TT
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON TT.groutingdailydetailid = GDD.groutingdailydetailid
- INNER JOIN tp_mst_goods g ON g.goodsid = GDD.goodsid
- INNER JOIN tp_mst_goodstype gt ON g.goodstypeid = gt.goodstypeid WHERE TT.nodetype = @nodetype@ )TT1
- WHERE TT1.车间 = @WORKSHOP@ and TT1.BARCODE is not null
- ";
- if (context.Request["shorname"].ToString() == "注浆数")
- {
- nodetype1 = 1;
- }
- else if (context.Request["shorname"].ToString() == "损坯数")
- {
- nodetype1 = 2;
- }
- else if (context.Request["shorname"].ToString() == "干补数")
- {
- nodetype1 = 3;
- }
- else if (context.Request["shorname"].ToString() == "出窑数")
- {
- nodetype1 = 4;
- }
- else if (context.Request["shorname"].ToString() == "质量登记数")
- {
- nodetype1 = 5;
- }
- else if (context.Request["shorname"].ToString() == "回收数")
- {
- nodetype1 = 6;
- }
- else
- {
- nodetype1 = 7;
- }
- DateTime dateend = Convert.ToDateTime(context.Request["dateendMaster"]).AddDays(1);
- DateTime datebeginone = Convert.ToDateTime(context.Request["datebeginMaster"]).AddDays(-1);
- List<CDAParameter> sqlPara = new List<CDAParameter>();
- sqlPara.Add(new CDAParameter("nodetype", nodetype1));
- sqlPara.Add(new CDAParameter("WORKSHOP", context.Request["WORKSHOP"].ToString()));
- sqlPara.Add(new CDAParameter("DATEBEGIN", context.Request["datebeginMaster"].ToString(), DataType.DateTime));
- sqlPara.Add(new CDAParameter("DATEBEGINONE", datebeginone, DataType.DateTime));
- sqlPara.Add(new CDAParameter("DATEEND", dateend, DataType.DateTime));
- JsonResult data = Easyui.ExecuteJsonResult(conn, sqlStr, sqlPara);
- context.Response.Write(data.ToJson());
- }
- if (context.Request["m"].ToString() == "cy")
- {
- //读取报表数据
- string sqlStr = @"
- SELECT
- --Q.注浆数_车间 车间,
- Q.注浆数_差异量 差异量
- FROM(
- SELECT O.注浆数_车间,'注浆数_'||NVL(O.注浆数_差异量,0)注浆数_差异量,1 NUM FROM(
- SELECT A.注浆数_车间,B.注浆数_差异量 FROM(
- SELECT 1 注浆数_车间,NULL 注浆数_差异量 FROM dual UNION ALL
- SELECT 2 注浆数_车间,NULL 注浆数_差异量 FROM dual UNION ALL
- SELECT 3 注浆数_车间,NULL 注浆数_差异量 FROM dual )A
- LEFT JOIN(
- SELECT
- TT.注浆数_车间,
- TO_CHAR(NVL(SUM(TT.注浆数_差异量),0)) 注浆数_差异量
- FROM(
- SELECT
- CASE WHEN (INSTR(GDD.GROUTINGLINECODE, 'A') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
- AND INSTR(GT.GOODSTYPECODE, '001002') = 1 THEN 1
- WHEN (INSTR(GDD.GROUTINGLINECODE, 'B') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
- AND INSTR(GT.GOODSTYPECODE, '001001') = 1 THEN 2
- WHEN INSTR(GDD.GROUTINGLINECODE, 'C') = 1 THEN 3 ELSE 0 END 注浆数_车间,
- CASE WHEN T.outputnum * T.counts = NULL THEN 0 ELSE T.outputnum * T.counts END 注浆数_差异量
- FROM(
- SELECT s.groutingdailydetailid,s.outputnum,NVL(s.counts,0) counts,NVL(s.countt,0) countt
- FROM (SELECT a.groutingdailydetailid,a.outputnum,a.counts,tt.countt
- FROM (SELECT groutingdailydetailid,outputnum,COUNT(*) counts
- FROM (SELECT decode(gh.datatype, 1, 1, -1) outputnum,gdd.groutingdailydetailid
- FROM tp_pm_goodschangehistory gh
- INNER JOIN tp_pm_groutingdailydetail gdd
- ON gdd.groutingdailydetailid = gh.groutingdailydetailid
- INNER JOIN tp_mst_goods g
- ON g.goodsid = gh.goodsid
- INNER JOIN tp_mst_goodstype gt
- ON g.goodstypeid = gt.goodstypeid
- WHERE gh.createtime >= @DATEBEGIN@
- AND gh.createtime < @DATEEND@
- AND gh.datatype IN (1, 2)
- AND g.scrapsumflag = '1')
- GROUP BY groutingdailydetailid,outputnum) a
- LEFT JOIN (SELECT groutingdailydetailid,outputnum,COUNT(*) countt
- FROM tsap_hegii_datalog_bg_detail THDBD
- LEFT JOIN TSAP_HEGII_DATALOG_BG THDB ON THDBD.LOGID = THDB.LOGID
- WHERE THDBD.outputnum NOT IN (0)
- AND THDB.DATACODE = 20
- AND THDB.YYYYMMDD>=TO_CHAR(@DATEBEGIN@,'YYYYMMDD') AND THDB.YYYYMMDD<TO_CHAR(@DATEEND@,'YYYYMMDD')
- GROUP BY groutingdailydetailid,outputnum) tt
- ON tt.groutingdailydetailid = a.groutingdailydetailid
- AND tt.outputnum = a.outputnum ) s
- WHERE NVL(s.counts,0)!=NVL(s.countt,0) )T
- LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON T.groutingdailydetailid = GDD.groutingdailydetailid
- INNER JOIN TP_MST_GOODS G ON G.GOODSID = GDD.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
- )TT GROUP BY TT.注浆数_车间)B ON B.注浆数_车间 = A.注浆数_车间
- )O
- UNION ALL
- SELECT O.出窑数_车间,'出窑数_'||NVL(O.出窑数_差异量,0),4 NUM FROM(
- SELECT A.出窑数_车间,B.出窑数_差异量 FROM(
- SELECT 1 出窑数_车间,NULL 出窑数_差异量 FROM dual UNION ALL
- SELECT 2 出窑数_车间,NULL 出窑数_差异量 FROM dual UNION ALL
- SELECT 3 出窑数_车间,NULL 出窑数_差异量 FROM dual) A
- LEFT JOIN(
- SELECT
- TT.出窑数_车间,
- SUM(TT.出窑数_差异量) 出窑数_差异量
- FROM(
- SELECT
- CASE WHEN (INSTR(GDD.GROUTINGLINECODE, 'A') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
- AND INSTR(GT.GOODSTYPECODE, '001002') = 1 THEN 1
- WHEN (INSTR(GDD.GROUTINGLINECODE, 'B') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
- AND INSTR(GT.GOODSTYPECODE, '001001') = 1 THEN 2
- WHEN INSTR(GDD.GROUTINGLINECODE, 'C') = 1 THEN 3 ELSE 0 END 出窑数_车间,
- CASE WHEN T.outputnum * T.counts = NULL THEN 0 ELSE T.outputnum * T.counts END 出窑数_差异量
- FROM(
- SELECT s.groutingdailydetailid,s.outputnum,NVL(s.counts,0) counts,NVL(s.countt,0) countt
- FROM (SELECT a.groutingdailydetailid,a.outputnum,a.counts,tt.countt
- FROM (SELECT groutingdailydetailid,outputnum,COUNT(*) counts
- FROM (SELECT GROUTINGDAILYDETAILID,
- 1 OUTPUTNUM
- FROM (SELECT CASE
- WHEN T.IS3 > 0 THEN
- 3
- WHEN INSTR(T.GOODSTYPECODE, '001002') = 1 THEN
- 1
- WHEN INSTR(T.GOODSTYPECODE, '001001') = 1 THEN
- 2
- ELSE
- 2
- END AS WORKSHOP,
- T.GROUTINGDAILYDETAILID
- FROM (SELECT DISTINCT PD.BARCODE,
- PD.GOODSCODE,
- GDD.GROUTINGDAILYDETAILID,
- GDD.MATERIALCODE SAPCODE,
- PD.USERCODE,
- DECODE(GDD.TESTMOULDFLAG, 0, 'C', 1, 'Y', '-') AS TESTMOULDFLAG,
- G.GOODS_LINE_CODE,
- TO_CHAR(PD.CREATETIME, 'yymm') || '5000E' AS CHARG,
- --TO_CHAR(PD.CREATETIME, 'yyyymm') AS CHARG,
- HGDI.WORKSHOP AS HGDIWORKSHOP,
- GT.GOODSTYPECODE,
- -- 如果3#卸窑(103),就是3车间的
- (SELECT COUNT(1)
- FROM TP_PM_PRODUCTIONDATA PD2
- WHERE PD2.BARCODE = PD.BARCODE
- AND PD2.PROCEDUREID = 103) AS IS3
- FROM TP_PM_PRODUCTIONDATA PD
- INNER JOIN TSAP_HEGII_DATAITEM HGDI
- ON HGDI.DATACODE = '50'
- AND HGDI.ITEMTYPE = 1
- AND HGDI.ITEMID = PD.PROCEDUREID -- 3#成检交接(本烧重烧共用,且可以改判)
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD
- ON GDD.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G
- ON G.GOODSID = PD.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT
- ON G.GOODSTYPEID = GT.GOODSTYPEID
- WHERE PD.CREATETIME >= @DATEBEGIN@
- AND PD.CREATETIME < @DATEEND@
- AND PD.ISREFIRE = '0'
- AND PD.Islengbu = '0'
- --AND PD.KILNID IN(1,2,5)-- 取本烧的窑炉
- --AND ((HGDI.ITEMID <> 104 AND PD.VALUEFLAG = '1') OR
- -- (HGDI.ITEMID = 104 AND PD.ISREFIRE = '0' AND
- -- PD.CHECKFLAG = '1'))) T
- AND ((HGDI.ITEMID = 11 AND (PD.CHECKFLAG = '1' OR PD.CHECKFLAG IS NULL))
- OR (HGDI.ITEMID = 104 AND PD.CHECKFLAG = '1')) ) T
-
- ))
- GROUP BY groutingdailydetailid,outputnum) a
- LEFT JOIN (SELECT groutingdailydetailid,outputnum,COUNT(*) countt
- FROM tsap_hegii_datalog_bg_detail THDBD
- LEFT JOIN TSAP_HEGII_DATALOG_BG THDB ON THDBD.LOGID = THDB.LOGID
- WHERE THDBD.outputnum NOT IN (0)
- AND THDB.DATACODE = 50
- AND THDB.YYYYMMDD>=TO_CHAR(@DATEBEGIN@,'YYYYMMDD') AND THDB.YYYYMMDD<TO_CHAR(@DATEEND@,'YYYYMMDD')
- GROUP BY groutingdailydetailid,outputnum) tt
- ON tt.groutingdailydetailid = a.groutingdailydetailid
- AND tt.outputnum = a.outputnum ) s
- WHERE NVL(s.counts,0)!=NVL(s.countt,0))T
- LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON T.groutingdailydetailid = GDD.groutingdailydetailid
- INNER JOIN TP_MST_GOODS G ON G.GOODSID = GDD.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID)TT GROUP BY TT.出窑数_车间 )B ON A.出窑数_车间 = B.出窑数_车间
- )O
- UNION ALL
- SELECT O.回收数_车间,'回收数_'||NVL(O.回收数_差异量,0),6 NUM FROM(
- SELECT A.回收数_车间,B.回收数_差异量 FROM(
- SELECT 1 回收数_车间,NULL 回收数_差异量 FROM dual UNION ALL
- SELECT 2 回收数_车间,NULL 回收数_差异量 FROM dual UNION ALL
- SELECT 3 回收数_车间,NULL 回收数_差异量 FROM dual) A
- LEFT JOIN(
- SELECT
- TT.回收数_车间,
- SUM(TT.回收数_差异量) 回收数_差异量
- FROM(
- SELECT
- CASE WHEN (INSTR(GDD.GROUTINGLINECODE, 'A') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
- AND INSTR(GT.GOODSTYPECODE, '001002') = 1 THEN 1
- WHEN (INSTR(GDD.GROUTINGLINECODE, 'B') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
- AND INSTR(GT.GOODSTYPECODE, '001001') = 1 THEN 2
- WHEN INSTR(GDD.GROUTINGLINECODE, 'C') = 1 THEN 3 ELSE 0 END 回收数_车间,
- CASE WHEN T.outputnum * T.counts = NULL THEN 0 ELSE T.outputnum * T.counts END 回收数_差异量
- FROM(
- SELECT s.groutingdailydetailid,s.outputnum,NVL(s.counts,0) counts,NVL(s.countt,0) countt
- FROM (SELECT a.groutingdailydetailid,a.outputnum,a.counts,tt.countt
- FROM (SELECT groutingdailydetailid,outputnum,COUNT(*) counts
- FROM (SELECT T.GROUTINGDAILYDETAILID,
- DECODE(T.RECYCLINGFLAG, '0', 0, 1) outputnum
- FROM (SELECT
- BAR.RECYCLINGFLAG,
- BAR.GROUTINGDAILYDETAILID,
- TO_CHAR(GH.FHTIME, 'yyyymm') AS CHARG
- FROM TP_PM_GROUTINGDAILYDETAIL BAR
- INNER JOIN TP_PM_FINISHEDPRODUCT GH
- ON BAR.GROUTINGDAILYDETAILID = GH.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G
- ON G.GOODSID = BAR.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT
- ON GT.GOODSTYPEID = G.GOODSTYPEID
- LEFT JOIN TP_PM_ORDER O
- ON O.ORDERID = GH.FHORDERID
- WHERE GH.FHUSERID IS NOT NULL
- AND GH.FHTIME >= @DATEBEGIN@
- AND GH.FHTIME < @DATEEND@) T)
- GROUP BY groutingdailydetailid,outputnum) a
- LEFT JOIN ( SELECT T1.groutingdailydetailid,T1.OUTPUTNUM,COUNT(*) countt FROM (
- SELECT DISTINCT TPF.groutingdailydetailid,CASE WHEN BAR.RECYCLINGFLAG='0' THEN 0 ELSE 1 END outputnum FROM TSAP_HEGII_WORKDATA_BG TSH
- INNER JOIN TP_PM_FINISHEDPRODUCT TPF ON TSH.LOGID = TPF.BGLOGID
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL BAR ON TPF.groutingdailydetailid = BAR.groutingdailydetailid
- WHERE
- TSH.CREATETIME>=@DATEBEGIN@
- AND TSH.CREATETIME<@DATEEND@
- AND TPF.CREATETIME>=@DATEBEGINONE@
- AND TPF.CREATETIME<@DATEEND@
- AND TPF.VALUEFLAG = 1
- and TSH.DATACODE = 60
- AND TSH.outputnum != 0 )T1 GROUP BY T1.groutingdailydetailid,T1.OUTPUTNUM) tt
- ON tt.groutingdailydetailid = a.groutingdailydetailid
- AND tt.outputnum = a.outputnum ) s
- WHERE NVL(s.counts,0)!=NVL(s.countt,0))T
- LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON T.groutingdailydetailid = GDD.groutingdailydetailid
- INNER JOIN TP_MST_GOODS G ON G.GOODSID = GDD.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID)TT GROUP BY TT.回收数_车间 )B ON A.回收数_车间 = B.回收数_车间
- )O
- UNION ALL
- SELECT O.入库数_车间,'入库数_'||NVL(O.入库数_差异量,0),7 NUM FROM(
- SELECT A.入库数_车间,B.入库数_差异量 FROM(
- SELECT 1 入库数_车间,NULL 入库数_差异量 FROM dual UNION ALL
- SELECT 2 入库数_车间,NULL 入库数_差异量 FROM dual UNION ALL
- SELECT 3 入库数_车间,NULL 入库数_差异量 FROM dual) A
- LEFT JOIN(
- SELECT
- TT.入库数_车间,
- SUM(TT.入库数_差异量) 入库数_差异量
- FROM(
- SELECT
- CASE WHEN (INSTR(GDD.GROUTINGLINECODE, 'A') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
- AND INSTR(GT.GOODSTYPECODE, '001002') = 1 THEN 1
- WHEN (INSTR(GDD.GROUTINGLINECODE, 'B') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
- AND INSTR(GT.GOODSTYPECODE, '001001') = 1 THEN 2
- WHEN INSTR(GDD.GROUTINGLINECODE, 'C') = 1 THEN 3 ELSE 0 END 入库数_车间,
- CASE WHEN T.outputnum * T.counts = NULL THEN 0 ELSE T.outputnum * T.counts END 入库数_差异量
- FROM(
- SELECT s.groutingdailydetailid,s.outputnum,NVL(s.counts,0) counts,NVL(s.countt,0) countt
- FROM (SELECT a.groutingdailydetailid,a.outputnum,a.counts,tt.countt
- FROM (SELECT groutingdailydetailid,outputnum,COUNT(*) counts
- FROM (SELECT T1.GROUTINGDAILYDETAILID,
- DECODE(T1.RECYCLINGFLAG, '1', 0, 1) OUTPUTNUM
- FROM (SELECT
- BAR.RECYCLINGFLAG,
- BAR.GROUTINGDAILYDETAILID,
- TO_CHAR(GH.FHTIME, 'yyyymm') AS CHARG
- FROM TP_PM_GROUTINGDAILYDETAIL BAR
- INNER JOIN TP_PM_FINISHEDPRODUCT GH
- ON BAR.GROUTINGDAILYDETAILID = GH.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G
- ON G.GOODSID = BAR.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT
- ON GT.GOODSTYPEID = G.GOODSTYPEID
- LEFT JOIN TP_PM_ORDER O
- ON O.ORDERID = GH.FHORDERID
- WHERE GH.FHUSERID IS NOT NULL
- AND GH.FHTIME >= @DATEBEGIN@
- AND GH.FHTIME < @DATEEND@) T1)
- GROUP BY groutingdailydetailid,outputnum) a
- LEFT JOIN ( SELECT T1.groutingdailydetailid,T1.OUTPUTNUM,COUNT(*) countt FROM (
- SELECT DISTINCT TPF.groutingdailydetailid,DECODE(BAR.RECYCLINGFLAG, '1', 0, 1) OUTPUTNUM FROM TSAP_HEGII_WORKDATA_BG TSH
- INNER JOIN TP_PM_FINISHEDPRODUCT TPF ON TSH.LOGID = TPF.BGLOGID
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL BAR ON TPF.groutingdailydetailid = BAR.groutingdailydetailid
- WHERE
- TSH.CREATETIME>=@DATEBEGIN@
- AND TSH.CREATETIME<@DATEEND@
- AND TPF.CREATETIME>=@DATEBEGINONE@
- AND TPF.CREATETIME<@DATEEND@
- AND TPF.VALUEFLAG = 1
- and TSH.DATACODE = 60
- AND TSH.outputnum NOT IN (0))T1 GROUP BY T1.groutingdailydetailid,T1.OUTPUTNUM) tt
- ON tt.groutingdailydetailid = a.groutingdailydetailid
- AND tt.outputnum = a.outputnum ) s
- WHERE NVL(s.counts,0)!=NVL(s.countt,0))T
- LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON T.groutingdailydetailid = GDD.groutingdailydetailid
- INNER JOIN TP_MST_GOODS G ON G.GOODSID = GDD.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID)TT GROUP BY TT.入库数_车间 )B ON A.入库数_车间 = B.入库数_车间
- )O
- UNION ALL
- SELECT O.干补数_车间,'干补数_'||NVL(O.干补数_差异量,0),3 NUM FROM(
- SELECT A.干补数_车间,B.干补数_差异量 FROM(
- SELECT 1 干补数_车间,NULL 干补数_差异量 FROM dual UNION ALL
- SELECT 2 干补数_车间,NULL 干补数_差异量 FROM dual UNION ALL
- SELECT 3 干补数_车间,NULL 干补数_差异量 FROM dual) A
- LEFT JOIN(
- SELECT
- TT.干补数_车间,
- SUM(TT.干补数_差异量) 干补数_差异量
- FROM(
- SELECT
- CASE WHEN (INSTR(GDD.GROUTINGLINECODE, 'A') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
- AND INSTR(GT.GOODSTYPECODE, '001002') = 1 THEN 1
- WHEN (INSTR(GDD.GROUTINGLINECODE, 'B') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
- AND INSTR(GT.GOODSTYPECODE, '001001') = 1 THEN 2
- WHEN INSTR(GDD.GROUTINGLINECODE, 'C') = 1 THEN 3 ELSE 0 END 干补数_车间,
- CASE WHEN T.outputnum * T.counts = NULL THEN 0 ELSE T.outputnum * T.counts END 干补数_差异量
- FROM(
- SELECT s.groutingdailydetailid,s.outputnum,NVL(s.counts,0) counts,NVL(s.countt,0) countt
- FROM (SELECT a.groutingdailydetailid,a.outputnum,a.counts,tt.countt
- FROM (SELECT groutingdailydetailid,outputnum,COUNT(*) counts
- FROM (--20、30、40干补
- SELECT
- 1 outputnum,
- groutingdailydetailid
- FROM
- (
- SELECT
- SP.GOODSCODE,
- GDD.MATERIALCODE SAPCODE,
- SP.SPECIALREPAIRUSERCODE USERCODE,
- gdd.groutingdailydetailid,
- CASE
-
- WHEN HGDI.WORKSHOP = 2
- AND INSTR( GT.GOODSTYPECODE, '001002' ) = 1 THEN
- 1
- WHEN HGDI.WORKSHOP = 2
- AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1 THEN
- 2
- WHEN HGDI.WORKSHOP = 3 THEN
- 3 ELSE 4
- END AS WORKSHOP,
- DECODE( GDD.TESTMOULDFLAG, 0, 'C', 1, 'Y', '-' ) AS TESTMOULDFLAG,
- G.GOODS_LINE_CODE,
- TO_CHAR( SP.SPECIALREPAIRTIME, 'yymm' ) || '5000E' AS CHARG --TO_CHAR(SP.SPECIALREPAIRTIME, 'yyyymm') AS CHARG
-
- FROM
- TP_PM_SCRAPPRODUCT SP
- INNER JOIN TSAP_HEGII_DATAITEM HGDI ON HGDI.DATACODE IN ( '20','30','40')
- AND HGDI.ITEMTYPE = 2
- AND HGDI.ITEMID = SP.PROCEDUREID
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = SP.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G ON G.GOODSID = GDD.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
- WHERE
- SP.AUDITSTATUS = 1
- AND SP.GOODSLEVELTYPEID = 9
- AND SP.SPECIALREPAIRTIME >= @DATEBEGIN@
- AND SP.SPECIALREPAIRTIME < @DATEEND@
- ) )
- GROUP BY groutingdailydetailid,outputnum) a
- LEFT JOIN (SELECT groutingdailydetailid,REPAIRNUM outputnum,COUNT(*) countt
- FROM tsap_hegii_datalog_bg_detail THDBD
- LEFT JOIN TSAP_HEGII_DATALOG_BG THDB ON THDBD.LOGID = THDB.LOGID
- WHERE THDBD.REPAIRNUM NOT IN (0)
- AND THDB.DATACODE IN ('20','30','40')
- AND THDB.YYYYMMDD>=TO_CHAR(@DATEBEGIN@,'YYYYMMDD') AND THDB.YYYYMMDD<TO_CHAR(@DATEEND@,'YYYYMMDD')
- GROUP BY groutingdailydetailid,REPAIRNUM) tt
- ON tt.groutingdailydetailid = a.groutingdailydetailid
- AND tt.outputnum = a.outputnum ) s
- WHERE NVL(s.counts,0)!=NVL(s.countt,0))T
- LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON T.groutingdailydetailid = GDD.groutingdailydetailid
- INNER JOIN TP_MST_GOODS G ON G.GOODSID = GDD.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID)TT GROUP BY TT.干补数_车间 )B ON A.干补数_车间 = B.干补数_车间
- )O
- UNION ALL
- SELECT O.损坯数_车间,'损坯数_'||NVL(O.损坯数_差异量,0),2 NUM FROM(
- SELECT A.损坯数_车间,B.损坯数_差异量 FROM(
- SELECT 1 损坯数_车间,NULL 损坯数_差异量 FROM dual UNION ALL
- SELECT 1 损坯数_车间,NULL 损坯数_差异量 FROM dual UNION ALL
- SELECT 1 损坯数_车间,NULL 损坯数_差异量 FROM dual UNION ALL
- SELECT 1 损坯数_车间,NULL 损坯数_差异量 FROM dual UNION ALL
- SELECT 2 损坯数_车间,NULL 损坯数_差异量 FROM dual UNION ALL
- SELECT 2 损坯数_车间,NULL 损坯数_差异量 FROM dual UNION ALL
- SELECT 2 损坯数_车间,NULL 损坯数_差异量 FROM dual UNION ALL
- SELECT 2 损坯数_车间,NULL 损坯数_差异量 FROM dual UNION ALL
- SELECT 3 损坯数_车间,NULL 损坯数_差异量 FROM dual UNION ALL
- SELECT 3 损坯数_车间,NULL 损坯数_差异量 FROM dual UNION ALL
- SELECT 3 损坯数_车间,NULL 损坯数_差异量 FROM dual UNION ALL
- SELECT 3 损坯数_车间,NULL 损坯数_差异量 FROM dual) A
- LEFT JOIN(
- SELECT
- TT.损坯数_车间,
- SUM(TT.损坯数_差异量) 损坯数_差异量
- FROM(
- SELECT
- CASE WHEN (INSTR(GDD.GROUTINGLINECODE, 'A') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
- AND INSTR(GT.GOODSTYPECODE, '001002') = 1 THEN 1
- WHEN (INSTR(GDD.GROUTINGLINECODE, 'B') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
- AND INSTR(GT.GOODSTYPECODE, '001001') = 1 THEN 2
- WHEN INSTR(GDD.GROUTINGLINECODE, 'C') = 1 THEN 3 ELSE 0 END 损坯数_车间,
- CASE WHEN T.outputnum * T.counts = NULL THEN 0 ELSE T.outputnum * T.counts END 损坯数_差异量
- FROM(
- SELECT s.groutingdailydetailid,s.SCRAPNUM outputnum,NVL(s.counts,0) counts,NVL(s.countt,0) countt
- FROM (SELECT a.groutingdailydetailid,a.SCRAPNUM,a.counts,tt.countt
- FROM (SELECT
- TT.GROUTINGDAILYDETAILID,
- TT.SCRAPNUM,
- COUNT(*) counts
- FROM(
- SELECT
- gdd.groutingdailydetailid,
- DECODE( GH.DATATYPE, 3, 1, - 1 )SCRAPNUM
- FROM
- TP_PM_GOODSCHANGEHISTORY GH
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = GH.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_USER U ON U.USERID = GH.USERID
- INNER JOIN TP_MST_GOODS G ON G.GOODSID = GH.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
- WHERE
- GH.CREATETIME >= @DATEBEGIN@
- AND GH.CREATETIME < @DATEEND@
- AND GH.DATATYPE IN ( 3, 4 )
- AND G.SCRAPSUMFLAG = '1'
- UNION ALL-- 工序报损
- SELECT
- gdd.groutingdailydetailid,
- 1 SCRAPNUM
- FROM
- TP_PM_SCRAPPRODUCT SP
- INNER JOIN TSAP_HEGII_DATAITEM HGDI ON HGDI.DATACODE IN ( 20,30,40 )
- AND HGDI.ITEMTYPE = 2
- AND HGDI.ITEMID = SP.PROCEDUREID
- INNER JOIN TP_PM_PRODUCTIONDATA PD ON PD.PRODUCTIONDATAID = SP.PRODUCTIONDATAID
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = SP.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G ON G.GOODSID = GDD.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
- WHERE
- SP.AUDITSTATUS = 1
- AND SP.AUDITDATE >= @DATEBEGIN@
- AND SP.AUDITDATE < @DATEEND@ -- AND SP.SCRAPTYPE IN (0, 2, 3)
- UNION ALL-- 工序报损撤销
- SELECT
- gdd.groutingdailydetailid,
- -1 SCRAPNUM
- FROM
- TP_PM_SCRAPPRODUCT SP
- INNER JOIN TSAP_HEGII_DATAITEM HGDI ON HGDI.DATACODE IN ( 20,30,40 )
- AND HGDI.ITEMTYPE = 2
- AND HGDI.ITEMID = SP.PROCEDUREID
- INNER JOIN TP_PM_PRODUCTIONDATA PD ON PD.PRODUCTIONDATAID = SP.PRODUCTIONDATAID
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = SP.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G ON G.GOODSID = GDD.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
- WHERE
- SP.AUDITSTATUS = 1
- AND SP.VALUEFLAG = '0'
- AND SP.BACKOUTTIME >= @DATEBEGIN@
- AND SP.BACKOUTTIME < @DATEEND@ -- AND SP.SCRAPTYPE IN (0, 2, 3)
- UNION ALL-- 干补报损
- ---------------------------------------------------
- SELECT
- groutingdailydetailid,
- 1
- FROM
- (
- SELECT
- SP.GOODSCODE,
- GDD.MATERIALCODE SAPCODE,
- PD.USERCODE,
- gdd.groutingdailydetailid,
- CASE
-
- WHEN HGDI.WORKSHOP = 2
- AND INSTR( GT.GOODSTYPECODE, '001002' ) = 1 THEN
- 1
- WHEN HGDI.WORKSHOP = 2
- AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1 THEN
- 2
- WHEN HGDI.WORKSHOP = 3 THEN
- 3 ELSE 4
- END AS WORKSHOP,
- GDD.TESTMOULDFLAG,
- G.GOODS_LINE_CODE,
- TO_CHAR( SP.AUDITDATE, 'yymm' ) || '5000E' AS CHARG --TO_CHAR(SP.AUDITDATE, 'yyyymm') AS CHARG
-
- FROM
- (
- SELECT
- T.*
- FROM
- (
- SELECT
- SP.BARCODE,
- SP.GOODSCODE,
- SP.GROUTINGDAILYDETAILID,
- PD.PROCEDUREID,
- PD.PRODUCTIONDATAID,
- SP.AUDITDATE,
- RANK ( ) OVER ( PARTITION BY SP.BARCODE ORDER BY PD.PRODUCTIONDATAID DESC ) AS RK
- FROM
- TP_PM_SCRAPPRODUCT SP
- INNER JOIN TP_PM_PRODUCTIONDATA PD ON SP.BARCODE = PD.BARCODE -- 不包含干补工序
-
- AND PD.PROCEDUREID <> 18 -- 要找干补之前的工序
-
- AND PD.PRODUCTIONDATAID < SP.PRODUCTIONDATAID
- AND PD.VALUEFLAG = '1'
- WHERE
- SP.AUDITSTATUS = 1
- AND SP.PROCEDUREID = 18
- AND SP.AUDITDATE >= @DATEBEGIN@
- AND SP.AUDITDATE < @DATEEND@
- ) T
- WHERE
- T.RK <= 1
- ) SP
- INNER JOIN TSAP_HEGII_DATAITEM HGDI ON HGDI.DATACODE IN ( 20,30,40 )
- AND HGDI.ITEMTYPE = 2
- AND HGDI.ITEMID = SP.PROCEDUREID
- INNER JOIN TP_PM_PRODUCTIONDATA PD ON PD.PRODUCTIONDATAID = SP.PRODUCTIONDATAID
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = SP.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G ON G.GOODSID = PD.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
- ) )TT GROUP BY TT.GROUTINGDAILYDETAILID,TT.SCRAPNUM) a
- LEFT JOIN (SELECT groutingdailydetailid,SCRAPNUM,COUNT(*) countt
- FROM tsap_hegii_datalog_bg_detail THDBD
- LEFT JOIN TSAP_HEGII_DATALOG_BG THDB ON THDBD.LOGID = THDB.LOGID
- WHERE THDBD.SCRAPNUM NOT IN (0)
- AND THDB.DATACODE IN (20,30,40)
- AND THDB.YYYYMMDD>=TO_CHAR(@DATEBEGIN@,'YYYYMMDD') AND THDB.YYYYMMDD<TO_CHAR(@DATEEND@,'YYYYMMDD')
- GROUP BY groutingdailydetailid,SCRAPNUM) tt
- ON tt.groutingdailydetailid = a.groutingdailydetailid
- AND tt.SCRAPNUM = a.SCRAPNUM ) s
- WHERE NVL(s.counts,0)!=NVL(s.countt,0))T
- LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON T.groutingdailydetailid = GDD.groutingdailydetailid
- INNER JOIN TP_MST_GOODS G ON G.GOODSID = GDD.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID)TT GROUP BY TT.损坯数_车间 )B ON A.损坯数_车间 = B.损坯数_车间
- )O
- UNION ALL
- SELECT O.质量登记数_车间,'质量登记数_'||NVL(O.质量登记数_差异量,0),5 NUM FROM(
- SELECT A.质量登记数_车间,B.质量登记数_差异量 FROM(
- SELECT 1 质量登记数_车间,NULL 质量登记数_差异量 FROM dual UNION ALL
- SELECT 1 质量登记数_车间,NULL 质量登记数_差异量 FROM dual UNION ALL
- SELECT 1 质量登记数_车间,NULL 质量登记数_差异量 FROM dual UNION ALL
- SELECT 1 质量登记数_车间,NULL 质量登记数_差异量 FROM dual UNION ALL
- SELECT 2 质量登记数_车间,NULL 质量登记数_差异量 FROM dual UNION ALL
- SELECT 2 质量登记数_车间,NULL 质量登记数_差异量 FROM dual UNION ALL
- SELECT 2 质量登记数_车间,NULL 质量登记数_差异量 FROM dual UNION ALL
- SELECT 2 质量登记数_车间,NULL 质量登记数_差异量 FROM dual UNION ALL
- SELECT 3 质量登记数_车间,NULL 质量登记数_差异量 FROM dual UNION ALL
- SELECT 3 质量登记数_车间,NULL 质量登记数_差异量 FROM dual UNION ALL
- SELECT 3 质量登记数_车间,NULL 质量登记数_差异量 FROM dual UNION ALL
- SELECT 3 质量登记数_车间,NULL 质量登记数_差异量 FROM dual) A
- LEFT JOIN(
- SELECT
- TT.质量登记数_车间,
- SUM(TT.质量登记数_差异量) 质量登记数_差异量
- FROM(
- SELECT
- CASE WHEN (INSTR(GDD.GROUTINGLINECODE, 'A') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
- AND INSTR(GT.GOODSTYPECODE, '001002') = 1 THEN 1
- WHEN (INSTR(GDD.GROUTINGLINECODE, 'B') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
- AND INSTR(GT.GOODSTYPECODE, '001001') = 1 THEN 2
- WHEN INSTR(GDD.GROUTINGLINECODE, 'C') = 1 THEN 3 ELSE 0 END 质量登记数_车间,
- CASE WHEN T.outputnum * T.counts = NULL THEN 0 ELSE T.outputnum * T.counts END 质量登记数_差异量
- FROM(
- SELECT s.groutingdailydetailid,s.outputnum,NVL(s.counts,0) counts,NVL(s.countt,0) countt
- FROM (SELECT a.groutingdailydetailid,a.outputnum,a.counts,tt.countt
- FROM (SELECT groutingdailydetailid,outputnum,COUNT(*) counts
- FROM (SELECT groutingdailydetailid,
- 1 outputnum
- FROM (SELECT
- T.groutingdailydetailid
- FROM (SELECT GDD.groutingdailydetailid
- FROM TP_PM_SCRAPPRODUCT SP
- INNER JOIN TSAP_HEGII_DATAITEM HGDI
- ON HGDI.DATACODE = '50'
- AND HGDI.ITEMTYPE = 2
- AND HGDI.ITEMID = SP.PROCEDUREID
- INNER JOIN TP_PM_PRODUCTIONDATA PD
- ON PD.PRODUCTIONDATAID = SP.PRODUCTIONDATAID
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD
- ON GDD.GROUTINGDAILYDETAILID = SP.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G
- ON G.GOODSID = PD.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT
- ON G.GOODSTYPEID = GT.GOODSTYPEID
- WHERE SP.AUDITSTATUS = 1
- AND SP.AUDITDATE >= @DATEBEGIN@
- AND SP.AUDITDATE < @DATEEND@
- --AND SP.SCRAPTYPE IN (0, 2, 3)
- ) T)
- ---------------------------------------------------
- UNION ALL
- -- 工序报损撤销
- ---------------------------------------------------
- SELECT groutingdailydetailid,
- -1 SCRAPNUM
- FROM (SELECT
- T.groutingdailydetailid
- FROM (SELECT gdd.groutingdailydetailid
- FROM TP_PM_SCRAPPRODUCT SP
- INNER JOIN TSAP_HEGII_DATAITEM HGDI
- ON HGDI.DATACODE = '50'
- AND HGDI.ITEMTYPE = 2
- AND HGDI.ITEMID = SP.PROCEDUREID
- INNER JOIN TP_PM_PRODUCTIONDATA PD
- ON PD.PRODUCTIONDATAID = SP.PRODUCTIONDATAID
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD
- ON GDD.GROUTINGDAILYDETAILID = SP.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G
- ON G.GOODSID = PD.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT
- ON G.GOODSTYPEID = GT.GOODSTYPEID
- WHERE SP.AUDITSTATUS = 1
- AND SP.BACKOUTTIME >= @DATEBEGIN@
- AND SP.BACKOUTTIME < @DATEEND@
- --AND SP.SCRAPTYPE IN (0, 2, 3)
- ) T)
-
- ---------------------------------------------------
- UNION ALL
- -- 干补报损
- ---------------------------------------------------
- SELECT groutingdailydetailid,
- 1
- FROM (SELECT SP.groutingdailydetailid
- FROM (SELECT T.*
- FROM (SELECT SP.BARCODE,
- SP.GOODSCODE,
- SP.groutingdailydetailid,
- PD.PROCEDUREID,
- PD.PRODUCTIONDATAID,
- SP.AUDITDATE,
- RANK() OVER(PARTITION BY SP.BARCODE ORDER BY PD.PRODUCTIONDATAID DESC) AS RK
- FROM TP_PM_SCRAPPRODUCT SP
- INNER JOIN TP_PM_PRODUCTIONDATA PD
- ON SP.BARCODE = PD.BARCODE
- -- 不包含干补工序
- AND PD.PROCEDUREID <> 18
- -- 要找干补之前的工序
- AND PD.PRODUCTIONDATAID < SP.PRODUCTIONDATAID
- AND PD.VALUEFLAG = '1'
- WHERE SP.AUDITSTATUS = 1
- AND SP.PROCEDUREID = 18
- AND SP.AUDITDATE >= @DATEBEGIN@
- AND SP.AUDITDATE < @DATEEND@) T
- WHERE T.RK <= 1) SP
- INNER JOIN TSAP_HEGII_DATAITEM HGDI
- ON HGDI.DATACODE = '50'
- AND HGDI.ITEMTYPE = 2
- AND HGDI.ITEMID = SP.PROCEDUREID
- INNER JOIN TP_PM_PRODUCTIONDATA PD
- ON PD.PRODUCTIONDATAID = SP.PRODUCTIONDATAID
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD
- ON GDD.GROUTINGDAILYDETAILID = SP.GROUTINGDAILYDETAILID
- INNER JOIN TP_MST_GOODS G
- ON G.GOODSID = PD.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT
- ON G.GOODSTYPEID = GT.GOODSTYPEID))
- GROUP BY groutingdailydetailid,outputnum) a
- LEFT JOIN (SELECT groutingdailydetailid,SCRAPNUM outputnum,COUNT(*) countt
- FROM tsap_hegii_datalog_bg_detail THDBD
- LEFT JOIN TSAP_HEGII_DATALOG_BG THDB ON THDBD.LOGID = THDB.LOGID
- WHERE THDBD.SCRAPNUM NOT IN (0)
- AND THDB.DATACODE IN (50)
- AND THDB.YYYYMMDD>=TO_CHAR(@DATEBEGIN@,'YYYYMMDD') AND THDB.YYYYMMDD<TO_CHAR(@DATEEND@,'YYYYMMDD')
- GROUP BY groutingdailydetailid,SCRAPNUM) tt
- ON tt.groutingdailydetailid = a.groutingdailydetailid
- AND tt.outputnum = a.outputnum ) s
- WHERE NVL(s.counts,0)!=NVL(s.countt,0))T
- LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON T.groutingdailydetailid = GDD.groutingdailydetailid
- INNER JOIN TP_MST_GOODS G ON G.GOODSID = GDD.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID)TT GROUP BY TT.质量登记数_车间 )B ON A.质量登记数_车间 = B.质量登记数_车间
- )O
- )Q ORDER BY Q.注浆数_车间,Q.NUM
- ";
- DateTime dateend = Convert.ToDateTime(context.Request["dateendMaster"]).AddDays(1);
- DateTime datebeginone = Convert.ToDateTime(context.Request["datebeginMaster"]).AddDays(-1);
- List<CDAParameter> sqlPara = new List<CDAParameter>();
- sqlPara.Add(new CDAParameter("DATEBEGIN", context.Request["datebeginMaster"].ToString(), DataType.DateTime));
- sqlPara.Add(new CDAParameter("DATEBEGINONE", datebeginone, DataType.DateTime));
- sqlPara.Add(new CDAParameter("DATEEND", dateend, DataType.DateTime));
- //sqlPara.Add(new CDAParameter("PROCEDUREID", context.Request["procedureidMaster"]));
- JsonResult data = Easyui.ExecuteJsonResult(conn, sqlStr, sqlPara);
- context.Response.Write(data.ToJson());
- }
- //子表2
- if(context.Request["m"].ToString()=="2")
- {
- //读取报表数据
- string sqlStr = @"
- SELECT
- '测试子表2' AS 测试列1,
- '测试子表2' AS 测试列2,
- '测试子表2' AS 测试列3,
- '测试子表2' AS 测试列4,
- '测试子表2' AS 测试列5
- FROM
- DUAL
- ";
- List<CDAParameter> sqlPara = new List<CDAParameter>();
- //sqlPara.Add(new CDAParameter("PROCEDUREID", context.Request["procedureidMaster"]));
- JsonResult data = Easyui.ExecuteJsonResult(conn, sqlStr, sqlPara);
- context.Response.Write(data.ToJson());
- }
- }
- }
- public bool IsReusable
- {
- get
- {
- return false;
- }
- }
- }
|