| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389 |
- <%@ WebHandler Language="C#" Class="demo" %>
- using Curtain.DataAccess;
- using DK.XuWei.WebMes;
- using Newtonsoft.Json.Linq;
- using System;
- using System.Collections.Generic;
- using System.Data;
- using System.Web;
- using System.Web.SessionState;
- public class demo : IHttpHandler {
-
- public void ProcessRequest (HttpContext context) {
- context.Response.ContentType = "text/plain";
- context.Response.ContentType = "text/plain";
- using (IDataAccess conn = DataAccess.Create())
- {
- //成检缺陷扇形图
- if (context.Request["m"].ToString() == "defectc")
- {
- string sqlStr = @"SELECT
- substr(TT1.责任工号,4,6) 责任工号,
- TT1.缺陷TOP1,
- TT1.缺陷TOP2,
- TT1.缺陷TOP3,
- CASE WHEN TT2.缺陷名称 IS NULL THEN cast('无' as nvarchar2(10)) ELSE TT2.缺陷名称 END 缺陷名称
- FROM(
- SELECT
- ROWNUM r,
- P.责任工号 责任工号,
- P.缺陷TOP1 缺陷TOP1,
- P.缺陷TOP2,
- P.缺陷TOP3
- FROM(
- SELECT
- T.DEFECTUSERCODE 责任工号,
- CASE WHEN T1.count IS NULL THEN 0 ELSE T1.count END 缺陷TOP1,
- CASE WHEN T2.count IS NULL THEN 0 ELSE T2.count END 缺陷TOP2,
- CASE WHEN T3.count IS NULL THEN 0 ELSE T3.count END 缺陷TOP3
- FROM(
- SELECT
- DISTINCT
- TPD.DEFECTUSERCODE
- FROM
- TP_PM_DEFECT TPD
- LEFT JOIN TP_MST_DEFECT TMD ON TPD.DEFECTID = TMD.DEFECTID
- LEFT JOIN TP_PM_GROUTINGDAILYDETAIL PGD ON PGD.BARCODE = TPD.BARCODE
- LEFT JOIN TP_PC_GROUTINGLINE TPGL ON TPGL.GROUTINGLINEID = PGD.GROUTINGLINEID
- WHERE
- TPD.CREATETIME >= TRUNC( SYSDATE )
- AND TMD.DEFECTTYPEID IN ( 15, 16,8)
- AND ( SUBSTR( TPGL.GROUTINGLINENAME, 1, 3 ) = 'C05')
- AND TPD.DEFECTDEDUCTIONNUM >= 1
- AND SUBSTR(TPD.DEFECTUSERCODE,1,3) = 'SGY'
- ORDER BY TPD.DEFECTUSERCODE
- )T
- FULL JOIN
- (SELECT
- DISTINCT
- TMD.S_NAME,
- TPD.DEFECTUSERCODE,
- COUNT( * ) count
- FROM
- TP_PM_DEFECT TPD
- LEFT JOIN TP_MST_DEFECT TMD ON TPD.DEFECTID = TMD.DEFECTID
- LEFT JOIN TP_PM_GROUTINGDAILYDETAIL PGD ON PGD.BARCODE = TPD.BARCODE
- LEFT JOIN TP_PC_GROUTINGLINE TPGL ON TPGL.GROUTINGLINEID = PGD.GROUTINGLINEID
- WHERE
- TPD.CREATETIME >= TRUNC( SYSDATE )
- AND TMD.DEFECTTYPEID IN ( 15, 16,8)
- AND ( SUBSTR( TPGL.GROUTINGLINENAME, 1, 3 ) = 'C05')
- AND TPD.DEFECTDEDUCTIONNUM >= 1
- AND SUBSTR(TPD.DEFECTUSERCODE,1,3) = 'SGY'
- AND TMD.S_NAME = (
- SELECT
- T1.S_NAME
- FROM
- (
- SELECT
- ROWNUM r,
- TT.S_NAME
- FROM(
- SELECT
- TMD.S_NAME,
- count( DISTINCT TPD.BARCODE ) AS 数量
- FROM
- TP_PM_DEFECT TPD
- LEFT JOIN TP_MST_DEFECT TMD ON TPD.DEFECTID = TMD.DEFECTID
- LEFT JOIN TP_PM_GROUTINGDAILYDETAIL PGD ON PGD.BARCODE = TPD.BARCODE
- LEFT JOIN TP_PC_GROUTINGLINE TPGL ON TPGL.GROUTINGLINEID = PGD.GROUTINGLINEID
- WHERE
- TPD.CREATETIME >= TRUNC( SYSDATE )
- AND TMD.DEFECTTYPEID IN ( 15, 16,8)
- AND ( SUBSTR( TPGL.GROUTINGLINENAME, 1, 3 ) = 'C05')
- AND TPD.DEFECTDEDUCTIONNUM >= 1
- AND SUBSTR(TPD.DEFECTUSERCODE,1,3) = 'SGY'
- GROUP BY
- TMD.S_NAME
- ORDER BY
- 数量 DESC )TT
- ) T1
- WHERE
- T1.r = 1
- )
- GROUP BY
- TMD.S_NAME,TPD.DEFECTUSERCODE
- ORDER BY
- COUNT( * ) DESC
- )T1 ON T.DEFECTUSERCODE = T1.DEFECTUSERCODE
-
- FULL JOIN
- (SELECT
- DISTINCT
- TMD.S_NAME,
- TPD.DEFECTUSERCODE,
- COUNT( * ) count
- FROM
- TP_PM_DEFECT TPD
- LEFT JOIN TP_MST_DEFECT TMD ON TPD.DEFECTID = TMD.DEFECTID
- LEFT JOIN TP_PM_GROUTINGDAILYDETAIL PGD ON PGD.BARCODE = TPD.BARCODE
- LEFT JOIN TP_PC_GROUTINGLINE TPGL ON TPGL.GROUTINGLINEID = PGD.GROUTINGLINEID
- WHERE
- TPD.CREATETIME >= TRUNC( SYSDATE )
- AND TMD.DEFECTTYPEID IN ( 15, 16,8)
- AND ( SUBSTR( TPGL.GROUTINGLINENAME, 1, 3 ) = 'C05')
- AND TPD.DEFECTDEDUCTIONNUM >= 1
- AND SUBSTR(TPD.DEFECTUSERCODE,1,3) = 'SGY'
- AND TMD.S_NAME = (
- SELECT
- T1.S_NAME
- FROM
- (
- SELECT
- ROWNUM r,
- TT.S_NAME
- FROM(
- SELECT
- TMD.S_NAME,
- count( DISTINCT TPD.BARCODE ) AS 数量
- FROM
- TP_PM_DEFECT TPD
- LEFT JOIN TP_MST_DEFECT TMD ON TPD.DEFECTID = TMD.DEFECTID
- LEFT JOIN TP_PM_GROUTINGDAILYDETAIL PGD ON PGD.BARCODE = TPD.BARCODE
- LEFT JOIN TP_PC_GROUTINGLINE TPGL ON TPGL.GROUTINGLINEID = PGD.GROUTINGLINEID
- WHERE
- TPD.CREATETIME >= TRUNC( SYSDATE )
- AND TMD.DEFECTTYPEID IN ( 15, 16,8)
- AND ( SUBSTR( TPGL.GROUTINGLINENAME, 1, 3 ) = 'C05')
- AND TPD.DEFECTDEDUCTIONNUM >= 1
- AND SUBSTR(TPD.DEFECTUSERCODE,1,3) = 'SGY'
- GROUP BY
- TMD.S_NAME
- ORDER BY
- 数量 DESC )TT
- ) T1
- WHERE
- T1.r = 2
- )
- GROUP BY
- TMD.S_NAME,TPD.DEFECTUSERCODE
- ORDER BY
- COUNT( * ) DESC
- )T2 ON T.DEFECTUSERCODE = T2.DEFECTUSERCODE
-
- FULL JOIN
- (SELECT
- DISTINCT
- TMD.S_NAME,
- TPD.DEFECTUSERCODE,
- COUNT( * ) count
- FROM
- TP_PM_DEFECT TPD
- LEFT JOIN TP_MST_DEFECT TMD ON TPD.DEFECTID = TMD.DEFECTID
- LEFT JOIN TP_PM_GROUTINGDAILYDETAIL PGD ON PGD.BARCODE = TPD.BARCODE
- LEFT JOIN TP_PC_GROUTINGLINE TPGL ON TPGL.GROUTINGLINEID = PGD.GROUTINGLINEID
- WHERE
- TPD.CREATETIME >= TRUNC( SYSDATE )
- AND TMD.DEFECTTYPEID IN ( 15, 16,8)
- AND ( SUBSTR( TPGL.GROUTINGLINENAME, 1, 3 ) = 'C05')
- AND TPD.DEFECTDEDUCTIONNUM >= 1
- AND SUBSTR(TPD.DEFECTUSERCODE,1,3) = 'SGY'
- AND TMD.S_NAME = (
- SELECT
- T1.S_NAME
- FROM
- (
- SELECT
- ROWNUM r,
- TT.S_NAME
- FROM(
- SELECT
- TMD.S_NAME,
- count( DISTINCT TPD.BARCODE ) AS 数量
- FROM
- TP_PM_DEFECT TPD
- LEFT JOIN TP_MST_DEFECT TMD ON TPD.DEFECTID = TMD.DEFECTID
- LEFT JOIN TP_PM_GROUTINGDAILYDETAIL PGD ON PGD.BARCODE = TPD.BARCODE
- LEFT JOIN TP_PC_GROUTINGLINE TPGL ON TPGL.GROUTINGLINEID = PGD.GROUTINGLINEID
- WHERE
- TPD.CREATETIME >= TRUNC( SYSDATE )
- AND TMD.DEFECTTYPEID IN ( 15, 16,8)
- AND ( SUBSTR( TPGL.GROUTINGLINENAME, 1, 3 ) = 'C05')
- AND TPD.DEFECTDEDUCTIONNUM >= 1
- AND SUBSTR(TPD.DEFECTUSERCODE,1,3) = 'SGY'
- GROUP BY
- TMD.S_NAME
- ORDER BY
- 数量 DESC )TT
- ) T1
- WHERE
- T1.r = 3
- )
- GROUP BY
- TMD.S_NAME,TPD.DEFECTUSERCODE
- ORDER BY
- COUNT( * ) DESC
- )T3 ON T.DEFECTUSERCODE = T3.DEFECTUSERCODE ORDER BY T.DEFECTUSERCODE)P )TT1
- FULL JOIN
- (
- SELECT
- TT.r,
- TT.缺陷名称
- FROM(
- SELECT
- ROWNUM r,
- T.S_NAME AS 缺陷名称
- FROM
- (
- SELECT
- T1.S_NAME,
- T1.数量
- FROM
- (
- SELECT
- TMD.S_NAME,
- count( DISTINCT TPD.BARCODE ) AS 数量
- FROM
- TP_PM_DEFECT TPD
- LEFT JOIN TP_MST_DEFECT TMD ON TPD.DEFECTID = TMD.DEFECTID
- LEFT JOIN TP_PM_GROUTINGDAILYDETAIL PGD ON PGD.BARCODE = TPD.BARCODE
- LEFT JOIN TP_PC_GROUTINGLINE TPGL ON TPGL.GROUTINGLINEID = PGD.GROUTINGLINEID
- WHERE
- TPD.CREATETIME >= TRUNC( SYSDATE )
- AND TMD.DEFECTTYPEID IN ( 15, 16,8)
- AND ( SUBSTR( TPGL.GROUTINGLINENAME, 1, 3 ) = 'C05')
- AND TPD.DEFECTDEDUCTIONNUM >= 1
- AND SUBSTR(TPD.DEFECTUSERCODE,1,3) = 'SGY'
- GROUP BY
- TMD.S_NAME
- ORDER BY
- 数量 DESC
- ) T1
- WHERE
- ROWNUM < 4
- ) T
- )TT WHERE TT.r < 4)TT2 ON TT1.r = TT2.r";
- //直接获取不分页数据
- DataTable dt = conn.ExecuteDatatable(sqlStr);
- string jsonStr = new JsonResult(dt).ToJson();
- context.Response.Write(jsonStr);
- }
- //产量柱状图
- if (context.Request["m"].ToString() == "cl")
- {
- string sqlStr = @"SELECT
- ROWNUM,
- substr(T.USERCODE,4,6) USERCODE,
- T.count
- FROM(
- SELECT
- TPG.USERCODE,
- COUNT( * ) count
- FROM
- TP_PM_GROUTINGDAILYDETAIL TPG
- WHERE
- TPG.CREATETIME >= TRUNC( SYSDATE )
- AND TPG.GROUTINGFLAG = 1
- AND ( SUBSTR( TPG.GROUTINGLINENAME, 1, 3 ) = 'C05' )
- AND TPG.VALUEFLAG = 1
- AND TPG.TESTFLAG = 0
- GROUP BY
- TPG.USERCODE)T ORDER BY ROWNUM DESC";
- //直接获取不分页数据
- DataTable dt = conn.ExecuteDatatable(sqlStr);
- string jsonStr = new JsonResult(dt).ToJson();
- context.Response.Write(jsonStr);
- }
- //半检缺陷扇形图
- if (context.Request["m"].ToString() == "defect")
- {
- string sqlStr = @"SELECT
- substr(TT1.责任工号,4,6) 责任工号,
- TT1.缺陷TOP1,
- TT1.缺陷TOP2,
- TT1.缺陷TOP3,
- CASE WHEN TT2.缺陷名称 IS NULL THEN cast('无' as nvarchar2(10)) ELSE TT2.缺陷名称 END 缺陷名称
- FROM(
- SELECT
- ROWNUM r,
- T.DEFECTUSERCODE 责任工号,
- T1.count 缺陷TOP1,
- CASE WHEN T2.count IS NULL THEN 0 ELSE T2.count END 缺陷TOP2,
- CASE WHEN T3.count IS NULL THEN 0 ELSE T3.count END 缺陷TOP3
- FROM(
- SELECT DISTINCT
- TPSD.DEFECTUSERCODE
- FROM
- TP_PM_SEMICHECK TPS
- LEFT JOIN TP_PM_SemiCheckDefect TPSD ON TPSD.SemiCheckID = TPS.SemiCheckID
- LEFT JOIN TP_MST_DEFECT TMD ON TPSD.DEFECTCODE = TMD.DEFECTCODE
- LEFT JOIN TP_PM_GROUTINGDAILYDETAIL PGD ON PGD.BARCODE = TPS.BARCODE
- LEFT JOIN TP_PC_GROUTINGLINE TPGL ON TPGL.GROUTINGLINEID = PGD.GROUTINGLINEID
- WHERE
- TPS.CREATETIME >= TRUNC( SYSDATE )
- AND TPS.PROCEDUREID IN ( 118, 92, 88 )
- AND ( SUBSTR( TPGL.GROUTINGLINENAME, 1, 3 ) = 'C05' )
- AND TPGL.TESTFLAG = 0
- )T
- FULL JOIN
- (SELECT
- TMD.S_NAME,
- TPSD.DEFECTUSERCODE,
- COUNT( * ) count
- FROM
- TP_PM_SEMICHECK TPS
- LEFT JOIN TP_PM_SemiCheckDefect TPSD ON TPSD.SemiCheckID = TPS.SemiCheckID
- LEFT JOIN TP_MST_DEFECT TMD ON TPSD.DEFECTCODE = TMD.DEFECTCODE
- LEFT JOIN TP_PM_GROUTINGDAILYDETAIL PGD ON PGD.BARCODE = TPS.BARCODE
- LEFT JOIN TP_PC_GROUTINGLINE TPGL ON TPGL.GROUTINGLINEID = PGD.GROUTINGLINEID
- WHERE
- TPS.CREATETIME >= TRUNC( SYSDATE )
- AND TPS.PROCEDUREID IN ( 118, 92, 88 )
- AND ( SUBSTR( TPGL.GROUTINGLINENAME, 1, 3 ) = 'C05' )
- AND TPGL.TESTFLAG = 0
- AND TMD.S_NAME = (
- SELECT
- TT.缺陷名称
- FROM(
- SELECT
- ROWNUM,
- T.S_NAME AS 缺陷名称
- FROM
- (
- SELECT
- TMD.S_NAME,
- COUNT( * ) 数量
- FROM
- TP_PM_SEMICHECK TPS
- LEFT JOIN TP_PM_SemiCheckDefect TPSD ON TPSD.SemiCheckID = TPS.SemiCheckID
- LEFT JOIN TP_MST_DEFECT TMD ON TPSD.DEFECTCODE = TMD.DEFECTCODE
- LEFT JOIN TP_PM_GROUTINGDAILYDETAIL PGD ON PGD.BARCODE = TPS.BARCODE
- LEFT JOIN TP_PC_GROUTINGLINE TPGL ON TPGL.GROUTINGLINEID = PGD.GROUTINGLINEID
- WHERE
- TPS.CREATETIME >= TRUNC( SYSDATE )
- AND TPS.PROCEDUREID IN ( 118, 92, 88 )
- AND ( SUBSTR( TPGL.GROUTINGLINENAME, 1, 3 ) = 'C05' )
- AND TPGL.TESTFLAG = 0
- GROUP BY
- TMD.S_NAME
- ORDER BY
- COUNT( * ) DESC
- ) T
- WHERE
- ROWNUM = 1)TT
- )
- GROUP BY
- TMD.S_NAME,TPSD.DEFECTUSERCODE
- ORDER BY
- COUNT( * ) DESC
- )T1 ON T.DEFECTUSERCODE = T1.DEFECTUSERCODE
-
- FULL JOIN
- (SELECT
- TMD.S_NAME,
- TPSD.DEFECTUSERCODE,
- COUNT( * ) count
- FROM
- TP_PM_SEMICHECK TPS
- LEFT JOIN TP_PM_SemiCheckDefect TPSD ON TPSD.SemiCheckID = TPS.SemiCheckID
- LEFT JOIN TP_MST_DEFECT TMD ON TPSD.DEFECTCODE = TMD.DEFECTCODE
- LEFT JOIN TP_PM_GROUTINGDAILYDETAIL PGD ON PGD.BARCODE = TPS.BARCODE
- LEFT JOIN TP_PC_GROUTINGLINE TPGL ON TPGL.GROUTINGLINEID = PGD.GROUTINGLINEID
- WHERE
- TPS.CREATETIME >= TRUNC( SYSDATE )
- AND TPS.PROCEDUREID IN ( 118, 92, 88 )
- AND ( SUBSTR( TPGL.GROUTINGLINENAME, 1, 3 ) = 'C05' )
- AND TPGL.TESTFLAG = 0
- AND TMD.S_NAME = (
- SELECT
- TT.缺陷名称
- FROM(
- SELECT
- ROWNUM r,
- T.S_NAME AS 缺陷名称
- FROM
- (
- SELECT
- TMD.S_NAME,
- COUNT( * ) 数量
- FROM
- TP_PM_SEMICHECK TPS
- LEFT JOIN TP_PM_SemiCheckDefect TPSD ON TPSD.SemiCheckID = TPS.SemiCheckID
- LEFT JOIN TP_MST_DEFECT TMD ON TPSD.DEFECTCODE = TMD.DEFECTCODE
- LEFT JOIN TP_PM_GROUTINGDAILYDETAIL PGD ON PGD.BARCODE = TPS.BARCODE
- LEFT JOIN TP_PC_GROUTINGLINE TPGL ON TPGL.GROUTINGLINEID = PGD.GROUTINGLINEID
- WHERE
- TPS.CREATETIME >= TRUNC( SYSDATE )
- AND TPS.PROCEDUREID IN ( 118, 92, 88 )
- AND ( SUBSTR( TPGL.GROUTINGLINENAME, 1, 3 ) = 'C05' )
- AND TPGL.TESTFLAG = 0
- GROUP BY
- TMD.S_NAME
- ORDER BY
- COUNT( * ) DESC
- ) T
- )TT WHERE TT.r = 2
- )
- GROUP BY
- TMD.S_NAME,TPSD.DEFECTUSERCODE
- ORDER BY
- COUNT( * ) DESC
- )T2 ON T.DEFECTUSERCODE = T2.DEFECTUSERCODE
-
- FULL JOIN
- (SELECT
- TMD.S_NAME,
- TPSD.DEFECTUSERCODE,
- COUNT( * ) count
- FROM
- TP_PM_SEMICHECK TPS
- LEFT JOIN TP_PM_SemiCheckDefect TPSD ON TPSD.SemiCheckID = TPS.SemiCheckID
- LEFT JOIN TP_MST_DEFECT TMD ON TPSD.DEFECTCODE = TMD.DEFECTCODE
- LEFT JOIN TP_PM_GROUTINGDAILYDETAIL PGD ON PGD.BARCODE = TPS.BARCODE
- LEFT JOIN TP_PC_GROUTINGLINE TPGL ON TPGL.GROUTINGLINEID = PGD.GROUTINGLINEID
- WHERE
- TPS.CREATETIME >= TRUNC( SYSDATE )
- AND TPS.PROCEDUREID IN ( 118, 92, 88 )
- AND ( SUBSTR( TPGL.GROUTINGLINENAME, 1, 3 ) = 'C05' )
- AND TPGL.TESTFLAG = 0
- AND TMD.S_NAME = (
- SELECT
- TT.缺陷名称
- FROM(
- SELECT
- ROWNUM r,
- T.S_NAME AS 缺陷名称
- FROM
- (
- SELECT
- TMD.S_NAME,
- COUNT( * ) 数量
- FROM
- TP_PM_SEMICHECK TPS
- LEFT JOIN TP_PM_SemiCheckDefect TPSD ON TPSD.SemiCheckID = TPS.SemiCheckID
- LEFT JOIN TP_MST_DEFECT TMD ON TPSD.DEFECTCODE = TMD.DEFECTCODE
- LEFT JOIN TP_PM_GROUTINGDAILYDETAIL PGD ON PGD.BARCODE = TPS.BARCODE
- LEFT JOIN TP_PC_GROUTINGLINE TPGL ON TPGL.GROUTINGLINEID = PGD.GROUTINGLINEID
- WHERE
- TPS.CREATETIME >= TRUNC( SYSDATE )
- AND TPS.PROCEDUREID IN ( 118, 92, 88 )
- AND ( SUBSTR( TPGL.GROUTINGLINENAME, 1, 3 ) = 'C05' )
- AND TPGL.TESTFLAG = 0
- GROUP BY
- TMD.S_NAME
- ORDER BY
- COUNT( * ) DESC
- ) T
- )TT WHERE TT.r = 3
- )
- GROUP BY
- TMD.S_NAME,TPSD.DEFECTUSERCODE
- ORDER BY
- COUNT( * ) DESC
- )T3 ON T.DEFECTUSERCODE = T3.DEFECTUSERCODE ORDER BY r)TT1
- FULL JOIN
- (
- SELECT
- TT.r,
- TT.缺陷名称
- FROM(
- SELECT
- ROWNUM r,
- T.S_NAME AS 缺陷名称
- FROM
- (
- SELECT
- TMD.S_NAME,
- COUNT( * ) 数量
- FROM
- TP_PM_SEMICHECK TPS
- LEFT JOIN TP_PM_SemiCheckDefect TPSD ON TPSD.SemiCheckID = TPS.SemiCheckID
- LEFT JOIN TP_MST_DEFECT TMD ON TPSD.DEFECTCODE = TMD.DEFECTCODE
- LEFT JOIN TP_PM_GROUTINGDAILYDETAIL PGD ON PGD.BARCODE = TPS.BARCODE
- LEFT JOIN TP_PC_GROUTINGLINE TPGL ON TPGL.GROUTINGLINEID = PGD.GROUTINGLINEID
- WHERE
- TPS.CREATETIME >= TRUNC( SYSDATE )
- AND TPS.PROCEDUREID IN ( 118, 92, 88 )
- AND ( SUBSTR( TPGL.GROUTINGLINENAME, 1, 3 ) = 'C05' )
- AND TPGL.TESTFLAG = 0
- GROUP BY
- TMD.S_NAME
- ORDER BY
- COUNT( * ) DESC
- ) T
- )TT WHERE TT.r < 4)TT2 ON TT1.r = TT2.r ORDER BY 责任工号";
- //直接获取不分页数据
- DataTable dt = conn.ExecuteDatatable(sqlStr);
- string jsonStr = new JsonResult(dt).ToJson();
- context.Response.Write(jsonStr);
- }
- //成型折线图
- if (context.Request["m"].ToString() == "zx")
- {
- string sqlStr = @"SELECT
- CASE
- WHEN
- T4.半检数量 = 0 THEN
- '100%' ELSE TO_CHAR( ROUND( T4.半检合格 / T4.半检数量, 4 ) * 100, '9,990.00' ) || '%'
- END AS 半检合格率,
- CASE
- WHEN T4.本烧数量 = 0 THEN
- '100%' ELSE TO_CHAR( ROUND( T4.本烧合格 / T4.本烧数量, 4 ) * 100, '9,990.00' ) || '%'
- END AS 本烧合格率,
- SUBSTR( T4.CREATETIME, 5, 2 )||'.'||SUBSTR( T4.CREATETIME, 7, 2 ) AS 日期
- FROM
- (
- SELECT
- T.半检数量,
- T.半检数量 - ( CASE WHEN T2.半检不合格数量 IS NULL THEN 0 ELSE T2.半检不合格数量 END ) AS 半检合格,
- T1.本烧数量,
- T3.本烧不合格数量,
- T1.本烧数量 - T3.本烧不合格数量 AS 本烧合格,
- T.CREATETIME
- FROM
- (--半检数量
- SELECT
- CASE
- WHEN
- T2.半检数量 IS NULL THEN
- 0 ELSE T2.半检数量
- END 半检数量,
- T1.CREATETIME CREATETIME
- FROM
- (
- SELECT
- 0 半检数量,
- to_char( ( TRUNC( SYSDATE - 6 ) + ROWNUM - 1 ), 'yyyymmdd' ) AS CREATETIME
- FROM
- DUAL CONNECT BY ROWNUM <= 7
- ORDER BY
- to_char( ( TRUNC( SYSDATE - 6 ) + ROWNUM - 1 ), 'yyyymmdd' ) DESC
- ) T1
- LEFT JOIN (
- SELECT
- 半检数量,
- CREATETIME
- FROM
- (
- SELECT DISTINCT
- CASE
- WHEN
- COUNT( TPPD.BARCODE ) IS NULL THEN
- 0 ELSE COUNT( TPPD.BARCODE )
- END 半检数量,
- to_char( TPPD.CREATETIME, 'yyyymmdd' ) AS CREATETIME
- FROM
- TP_PM_PRODUCTIONDATA TPPD
- LEFT JOIN TP_PM_GROUTINGDAILYDETAIL PGD ON PGD.BARCODE = TPPD.BARCODE
- LEFT JOIN TP_PC_GROUTINGLINE TPGL ON TPGL.GROUTINGLINEID = PGD.GROUTINGLINEID
- WHERE
- TPPD.PROCEDUREID IN ( 118, 92, 88 )
- AND PGD.TESTFLAG = 0
- AND ( SUBSTR( TPGL.GROUTINGLINENAME, 1, 2) = 'C0')
- AND TPPD.CREATETIME >= trunc( SYSDATE - 6 )
- AND TPPD.VALUEFLAG = 1
- GROUP BY
- to_char( TPPD.CREATETIME, 'yyyymmdd' )
- ORDER BY
- to_char( TPPD.CREATETIME, 'yyyymmdd' ) DESC
- )
- ) T2 ON T1.CREATETIME = T2.CREATETIME
- ORDER BY
- T1.CREATETIME DESC
- ) T
- LEFT JOIN (
- SELECT
- CASE
- WHEN
- T2.半检不合格数量 IS NULL THEN
- 0 ELSE T2.半检不合格数量
- END 半检不合格数量,
- T1.CREATETIME CREATETIME
- FROM
- (
- SELECT
- 0 半检不合格数量,
- to_char( ( TRUNC( SYSDATE - 6 ) + ROWNUM - 1 ), 'yyyymmdd' ) AS CREATETIME
- FROM
- DUAL CONNECT BY ROWNUM <= 7
- ORDER BY
- to_char( ( TRUNC( SYSDATE - 6 ) + ROWNUM - 1 ), 'yyyymmdd' ) DESC
- ) T1
- LEFT JOIN (
- SELECT
- 半检不合格数量,
- CREATETIME
- FROM
- (--半检不合格
- SELECT DISTINCT
- NVL( COUNT( TPS.BARCODE ), 0 ) 半检不合格数量,
- to_char( TPS.CREATETIME, 'yyyymmdd' ) AS CREATETIME
- FROM
- TP_PM_SEMICHECK TPS
- LEFT JOIN TP_PM_GROUTINGDAILYDETAIL PGD ON PGD.BARCODE = TPS.BARCODE
- LEFT JOIN TP_PC_GROUTINGLINE TPGL ON TPGL.GROUTINGLINEID = PGD.GROUTINGLINEID
- WHERE
- TPS.SEMICHECKTYPE = 2
- AND TPS.PROCEDUREID IN ( 118, 92, 88 )
- AND TPS.CREATETIME >= trunc( SYSDATE - 6 )
- AND TPGL.TESTFLAG = 0
- AND ( SUBSTR( TPGL.GROUTINGLINENAME, 1, 2 ) = 'C0')
- AND TPS.VALUEFLAG = 1
- GROUP BY
- to_char( TPS.CREATETIME, 'yyyymmdd' )
- ORDER BY
- to_char( TPS.CREATETIME, 'yyyymmdd' ) DESC
- )
- ) T2 ON T1.CREATETIME = T2.CREATETIME
- ORDER BY
- T1.CREATETIME DESC
- ) T2 ON T2.CREATETIME = T.CREATETIME
- LEFT JOIN (
- SELECT
- CASE
- WHEN
- T2.本烧数量 IS NULL THEN
- 0 ELSE T2.本烧数量
- END 本烧数量,
- T1.CREATETIME CREATETIME
- FROM
- (
- SELECT
- 0 本烧数量,
- to_char( ( TRUNC( SYSDATE - 6 ) + ROWNUM - 1 ), 'yyyymmdd' ) AS CREATETIME
- FROM
- DUAL CONNECT BY ROWNUM <= 7
- ORDER BY
- to_char( ( TRUNC( SYSDATE - 6 ) + ROWNUM - 1 ), 'yyyymmdd' ) DESC
- ) T1
- LEFT JOIN (
- SELECT
- 本烧数量,
- CREATETIME
- FROM
- (
- SELECT DISTINCT--本烧数量
- COUNT( TPPD.BARCODE ) 本烧数量,
- to_char( TPPD.CREATETIME, 'yyyymmdd' ) AS CREATETIME
- FROM
- TP_PM_PRODUCTIONDATA TPPD
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL PGD ON PGD.BARCODE = TPPD.BARCODE
- LEFT JOIN TP_PC_GROUTINGLINE TPGL ON TPGL.GROUTINGLINEID = PGD.GROUTINGLINEID
- WHERE
- ( ( TPPD.procedureid = 11 AND TPPD.valueflag = '1' )
- OR ( TPPD.procedureid = 104 AND TPPD.isrefire = '0' AND TPPD.checkflag = '1' ) )
- AND TPPD.PROCEDUREID IN ( 11,104 )
- AND PGD.RECYCLINGFLAG = '0'
- AND TPPD.ISREFIRE = 0
- AND PGD.TESTFLAG = 0
- AND TPPD.VALUEFLAG = 1
- AND PGD.RECYCLINGFLAG = '0'
- AND TPPD.AccountID = 1
- AND TPPD.KILNID IN ( 1, 2, 5 )
- AND SUBSTR( TPGL.GROUTINGLINENAME, 1, 2 ) = 'C0'
- AND TPPD.CREATETIME >= trunc( SYSDATE - 6 )
- GROUP BY
- to_char( TPPD.CREATETIME, 'yyyymmdd' )
- ORDER BY
- to_char( TPPD.CREATETIME, 'yyyymmdd' ) DESC
- )
- ) T2 ON T1.CREATETIME = T2.CREATETIME
- ORDER BY
- T1.CREATETIME DESC
- ) T1 ON T.CREATETIME = T1.CREATETIME
- LEFT JOIN (
- SELECT
- CASE
- WHEN
- T2.本烧不合格数量 IS NULL THEN
- 0 ELSE T2.本烧不合格数量
- END 本烧不合格数量,
- T1.CREATETIME CREATETIME
- FROM
- (
- SELECT
- 0 本烧不合格数量,
- to_char( ( TRUNC( SYSDATE - 6 ) + ROWNUM - 1 ), 'yyyymmdd' ) AS CREATETIME
- FROM
- DUAL CONNECT BY ROWNUM <= 7
- ORDER BY
- to_char( ( TRUNC( SYSDATE - 6 ) + ROWNUM - 1 ), 'yyyymmdd' ) DESC
- ) T1
- LEFT JOIN (
- SELECT
- 本烧不合格数量,
- CREATETIME
- FROM
- (
- SELECT
- to_char( T1.CREATETIME, 'yyyymmdd' ) AS CREATETIME,
- COUNT( T1.BARCODE ) AS 本烧不合格数量
- FROM
- (
- SELECT DISTINCT
- T.BARCODE,
- TPPD.CREATETIME
- FROM
- TP_PM_PRODUCTIONDATA TPPD
- LEFT JOIN TP_PC_GROUTINGLINE TPGL ON TPPD.GROUTINGLINEID = TPGL.GROUTINGLINEID
- LEFT JOIN (
- SELECT
- TPPD.BARCODE
- FROM
- TP_PM_PRODUCTIONDATA TPPD
- LEFT JOIN TP_PC_GROUTINGLINE TPGL ON TPPD.GROUTINGLINEID = TPGL.GROUTINGLINEID
- LEFT JOIN TP_PM_DEFECT TPD ON TPPD.BARCODE = TPD.BARCODE
- LEFT JOIN TP_MST_DEFECT TMD ON TPD.DEFECTCODE = TMD.DEFECTCODE
- WHERE
- TPPD.CHECKTIME >= trunc( SYSDATE - 6 )
- AND TPPD.GOODSLEVELID IN ( 6, 7 )
- AND TPPD.CHECKBATCHNO = 1
- AND TPGL.TESTFLAG = 0
- AND TMD.DEFECTTYPEID IN ( 15, 16,8)
- AND TPD.DEFECTNAME is not null
- AND TPPD.VALUEFLAG = 1
- AND TPPD.ISREFIRE = 0
- AND ( SUBSTR( TPGL.GROUTINGLINENAME, 1, 2 ) = 'C0')
- ) T ON T.BARCODE = TPPD.BARCODE
- WHERE
- TPPD.CHECKTIME >= trunc( SYSDATE - 6 )
- AND TPPD.PROCEDUREID IN ( 104 )
- AND length( TPPD.kilncarbatchno ) > 0
- AND TPGL.TESTFLAG = 0
- AND TPPD.VALUEFLAG = 1
- AND TPPD.ISREFIRE = 0
- AND ( SUBSTR( TPGL.GROUTINGLINENAME, 1, 2 ) = 'C0')
- ) T1
- GROUP BY
- to_char( T1.CREATETIME, 'yyyymmdd' )
- ORDER BY
- to_char( T1.CREATETIME, 'yyyymmdd' ) DESC
- )
- ) T2 ON T1.CREATETIME = T2.CREATETIME
- ORDER BY
- T1.CREATETIME DESC
- ) T3 ON T3.CREATETIME = T.CREATETIME
- ) T4
- ORDER BY
- CREATETIME
- ";
- //直接获取不分页数据
- DataTable dt = conn.ExecuteDatatable(sqlStr);
- string jsonStr = new JsonResult(dt).ToJson();
- context.Response.Write(jsonStr);
- }
- //产线信息
- if (context.Request["m"].ToString() == "MonthTable")
- {
- string sqlStr = @" SELECT
- B.GROUTINGLINENAME AS 成型线,
- B.USERCODE AS 工号,
- B.GOODSCODE AS 产品,
- CASE
-
- WHEN A.高压注浆数量 IS NULL THEN
- 0 ELSE A.高压注浆数量
- END AS 日注浆数,
- CASE
-
- WHEN A.成型数 IS NULL THEN
- 0 ELSE A.成型数
- END AS 日成型数,
- CASE
-
- WHEN A.注成率 IS NULL THEN
- '0%' ELSE A.注成率
- END AS 日注成率,
- CASE
-
- WHEN A.半检数量 IS NULL THEN
- 0 ELSE A.半检数量
- END AS 日半检数,
- CASE
-
- WHEN A.半检合格数量 IS NULL THEN
- 0 ELSE A.半检合格数量
- END AS 日半检合格数,
- CASE
-
- WHEN A.半检合格率 IS NULL THEN
- '0%' ELSE A.半检合格率
- END AS 日半检合格率,
- CASE
-
- WHEN A.成检数量 IS NULL THEN
- 0 ELSE A.成检数量
- END AS 日成检数,
- CASE
-
- WHEN A.成检合格数 IS NULL THEN
- 0 ELSE A.成检合格数
- END AS 日成检合格数,
- CASE
-
- WHEN A.成检合格率 IS NULL THEN
- '0' ELSE A.成检合格率
- END AS 日成检合格率,
- CASE
-
- WHEN B.高压注浆数量 IS NULL THEN
- 0 ELSE B.高压注浆数量
- END AS 月注浆数,
- CASE
-
- WHEN B.成型数 IS NULL THEN
- 0 ELSE B.成型数
- END AS 月成型数,
- CASE
-
- WHEN B.注成率 IS NULL THEN
- '0' ELSE B.注成率
- END AS 月注成率,
- CASE
-
- WHEN B.半检数量 IS NULL THEN
- 0 ELSE B.半检数量
- END AS 月半检数,
- CASE
-
- WHEN B.半检合格数量 IS NULL THEN
- 0 ELSE B.半检合格数量
- END AS 月半检合格数,
- CASE
-
- WHEN B.半检合格率 IS NULL THEN
- '0' ELSE B.半检合格率
- END AS 月半检合格率,
- CASE
-
- WHEN B.成检数量 IS NULL THEN
- 0 ELSE B.成检数量
- END AS 月成检数,
- CASE
-
- WHEN B.成检合格数 IS NULL THEN
- 0 ELSE B.成检合格数
- END AS 月成检合格数,
- CASE
-
- WHEN B.成检合格率 IS NULL THEN
- '0' ELSE B.成检合格率
- END AS 月成检合格率
- FROM
- (
- SELECT
- T.GROUTINGLINENAME,
- T.USERCODE,
- T.GOODSCODE,
- T.高压注浆数量,
- T.成型数,
- -- CASE
- --
- -- WHEN T.成型数 > 0 THEN
- -- TO_CHAR( T.成型数 / T.高压注浆数量 * 100, '9,990.00' ) || '%' ELSE 0 || '%'
- -- END AS 注成率,
- CASE
- WHEN T.成型数 = 0
- AND T.高压注浆数量 > 0 THEN
- '0%'
- WHEN T.成型数 > 0
- AND T.高压注浆数量 = 0 THEN
- '100.00%'
- WHEN T.成型数 = 0
- AND T.高压注浆数量 = 0 THEN
- '100.00%'
- WHEN T.成型数 >= 1
- AND T.高压注浆数量 >= 1 THEN
- TO_CHAR( T.成型数 / T.高压注浆数量 * 100, '9,990.00' ) || '%' ELSE '0%'
- END AS 注成率,
- T.半检数量,
- T.半检合格数量,
- CASE
- WHEN T.半检合格数量 = 0
- AND T.半检数量 > 0 THEN
- '0%'
- WHEN T.半检合格数量 > 0
- AND T.半检数量 = 0 THEN
- '100.00%'
- WHEN T.半检合格数量 = 0
- AND T.半检数量 = 0 THEN
- '100.00%'
- WHEN T.半检合格数量 > 0
- AND T.半检数量 > 0 THEN
- TO_CHAR( T.半检合格数量 / T.半检数量 * 100, '9,990.00' ) || '%' ELSE '0%'
- END AS 半检合格率,
- T.成检数量,
- T.成检合格数,
- CASE
-
- WHEN T.成检合格数 = 0
- AND T.成检数量 > 0 THEN
- '0%'
- WHEN T.成检合格数 > 0
- AND T.成检数量 = 0 THEN
- '100.00%'
- WHEN T.成检合格数 = 0
- AND T.成检数量 = 0 THEN
- '100.00%'
- WHEN T.成检合格数 > 0
- AND T.成检数量 > 0 THEN
- TO_CHAR( T.成检合格数 / T.成检数量 * 100, '9,990.00' ) || '%' ELSE '0%'
- END AS 成检合格率 --T.成检合格数/T.成检数量
-
- FROM
- (
- SELECT
- TPGL.GROUTINGLINENAME,
- TMU.USERCODE,
- TMG.GOODSCODE,
- SUM(
- CASE
-
- WHEN SUBSTR( TPGL.GROUTINGLINENAME, 1, 4 ) = 'C05A'
- AND TPPD.CREATETIME >= TRUNC( SYSDATE ) THEN
- 1 ELSE 0
- END
- ) 高压注浆数量,
- SUM(
- CASE
-
- WHEN SUBSTR( TPGL.GROUTINGLINENAME, 1, 4 ) = 'C05A'
- AND TPPD.CREATETIME >= TRUNC( SYSDATE )
- AND TPPD.SCRAPFLAG = '0' THEN
- 1 ELSE 0
- END
- ) 成型数,
- CASE
-
- WHEN BJJP.BJJPNUM IS NULL THEN
- 0 ELSE BJJP.BJJPNUM
- END AS 半检数量,
- CASE
-
- WHEN BJ.BJNUM IS NULL THEN
- 0 ELSE BJ.BJNUM
- END AS 半检不合格数量,
- CASE
-
- WHEN BJJP.BJJPNUM IS NULL THEN
- 0 ELSE BJJP.BJJPNUM
- END -
- CASE
-
- WHEN BJ.BJNUM IS NULL THEN
- 0 ELSE BJ.BJNUM
- END AS 半检合格数量,
- CASE
-
- WHEN CJ.CJNUM IS NULL THEN
- 0 ELSE CJ.CJNUM
- END AS 成检数量,
- CASE
-
- WHEN CJBHG.CJBHGNUM IS NULL THEN
- 0 ELSE CJBHG.CJBHGNUM
- END AS 成检不合格数量,
- CASE
-
- WHEN CJ.CJNUM IS NULL THEN
- 0 ELSE CJ.CJNUM
- END -
- CASE
-
- WHEN CJBHG.CJBHGNUM IS NULL THEN
- 0 ELSE CJBHG.CJBHGNUM
- END AS 成检合格数
- FROM--TP_PM_PRODUCTIONDATA TPP
- --INNER JOIN
- TP_PM_GROUTINGDAILYDETAIL TPPD --TPPD ON TPP.BARCODE = TPPD.BARCODE
- LEFT JOIN TP_PC_GROUTINGLINE TPGL ON TPGL.GROUTINGLINEID = TPPD.GROUTINGLINEID
- LEFT JOIN TP_MST_USER TMU ON TPPD.USERID = TMU.USERID
- LEFT JOIN TP_MST_GOODS TMG ON TPPD.GOODSID = TMG.GOODSID
- LEFT JOIN (--半检数量
- SELECT DISTINCT
- COUNT( TPS.BARCODE ) BJJPNUM,
- PGD.GROUTINGLINECODE,
- PGD.USERCODE,
- PGD.GOODSCODE,
- to_char( TPS.CREATETIME, 'yyyymm' ) AS CREATETIME
- FROM
- TP_PM_SEMICHECK TPS
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL PGD ON PGD.BARCODE = TPS.BARCODE
- LEFT JOIN TP_PC_GROUTINGLINE TPGL ON TPGL.GROUTINGLINEID = PGD.GROUTINGLINEID
- WHERE
- TPGL.HIGHPRESSUREFLAG = 1
- AND PGD.TESTFLAG = 0
- AND SUBSTR( TPGL.GROUTINGLINENAME, 1, 4 ) = 'C05A'
- AND TPS.CREATETIME >= TRUNC( SYSDATE )
- GROUP BY
- PGD.GROUTINGLINECODE,
- PGD.USERCODE,
- PGD.GOODSCODE,
- to_char( TPS.CREATETIME, 'yyyymm' )
- ) BJJP ON BJJP.GROUTINGLINECODE = TPPD.GROUTINGLINECODE
- AND BJJP.USERCODE = TPPD.USERCODE
- AND BJJP.GOODSCODE = TMG.Goodscode
- LEFT JOIN (--半检不合格
- SELECT DISTINCT
- COUNT( TPS.BARCODE ) BJNUM,
- PGD.GROUTINGLINECODE,
- PGD.USERCODE,
- PGD.GOODSCODE,
- to_char( TPS.CREATETIME, 'yyyymm' ) AS CREATETIME
- FROM
- TP_PM_SEMICHECK TPS
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL PGD ON PGD.BARCODE = TPS.BARCODE
- LEFT JOIN TP_PC_GROUTINGLINE TPGL ON TPGL.GROUTINGLINEID = PGD.GROUTINGLINEID
- WHERE
- TPS.GOODSLEVELID IN ( 13, 14 )
- AND PGD.TESTFLAG = 0
- AND TPGL.HIGHPRESSUREFLAG = 1
- AND SUBSTR( TPGL.GROUTINGLINENAME, 1, 4 ) = 'C05A'
- AND TPS.CREATETIME >= TRUNC( SYSDATE )
- GROUP BY
- PGD.GROUTINGLINECODE,
- PGD.USERCODE,
- PGD.GOODSCODE,
- to_char( TPS.CREATETIME, 'yyyymm' )
- ) BJ ON BJ.GROUTINGLINECODE = TPPD.GROUTINGLINECODE
- AND BJ.USERCODE = TPPD.USERCODE
- AND bj.GOODSCODE = TMG.Goodscode
- LEFT JOIN (--成检数量
- SELECT DISTINCT
- COUNT( PD.BARCODE ) CJNUM,
- PGD.GROUTINGLINECODE,
- PGD.USERCODE,
- PGD.GOODSCODE,
- to_char( PD.CREATETIME, 'yyyymm' ) AS CREATETIME
- FROM
- TP_PM_PRODUCTIONDATA PD
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL PGD ON PGD.BARCODE = PD.BARCODE
- LEFT JOIN TP_PC_GROUTINGLINE TPGL ON TPGL.GROUTINGLINEID = PGD.GROUTINGLINEID
- WHERE ( ( pd.procedureid = 11 AND pd.valueflag = '1' )
- OR ( pd.procedureid = 104 AND pd.isrefire = '0' AND pd.checkflag = '1' ) )
- AND pd.procedureid IN ( 11, 104 )
- AND PGD.RECYCLINGFLAG = '0'
- AND pd.AccountID = 1
- AND PD.KILNID IN ( 1, 2, 5 )
- AND PD.CREATETIME >= trunc( SYSDATE, 'mm' )
- GROUP BY
- PGD.GROUTINGLINECODE,
- PGD.USERCODE,
- PGD.GOODSCODE,
- to_char( PD.CREATETIME, 'yyyymm' )
- ) CJ ON CJ.GROUTINGLINECODE = TPPD.GROUTINGLINECODE
- AND CJ.USERCODE = TPPD.USERCODE
- AND CJ.GOODSCODE = TMG.Goodscode
- LEFT JOIN (--成检不合格
- SELECT DISTINCT
- COUNT( PD.BARCODE ) CJBHGNUM,
- PGD.GROUTINGLINECODE,
- PGD.USERCODE,
- PGD.GOODSCODE,
- to_char( PD.CREATETIME, 'yyyymm' ) AS CREATETIME
- FROM
- TP_PM_PRODUCTIONDATA PD
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL PGD ON PGD.BARCODE = PD.BARCODE
- LEFT JOIN TP_PC_GROUTINGLINE TPGL ON TPGL.GROUTINGLINEID = PGD.GROUTINGLINEID
- LEFT JOIN TP_PM_DEFECT TPD ON PGD.BARCODE = TPD.BARCODE
- LEFT JOIN TP_MST_DEFECT TMD ON TPD.DEFECTID = TMD.DEFECTID
- WHERE
- pd.valueflag = '1'
- AND PD.modeltype IN ( - 1, - 4, - 5 )
- AND PD.CHECKBATCHNO = 1
- AND PGD.RECYCLINGFLAG = '0'
- AND pd.GOODSLEVELID IN ( 6, 7 )
- AND TMD.DEFECTTYPEID IN ( 15, 16,8)
- AND TPD.DEFECTNAME is not null
- AND length( pd.kilncarbatchno ) > 0
- AND PD.CREATETIME >= trunc( SYSDATE, 'mm' )
- GROUP BY
- PGD.GROUTINGLINECODE,
- PGD.USERCODE,
- PGD.GOODSCODE,
- to_char( PD.CREATETIME, 'yyyymm' )
- ) CJBHG ON CJBHG.GROUTINGLINECODE = TPPD.GROUTINGLINECODE
- AND CJBHG.USERCODE = TPPD.USERCODE
- AND CJBHG.GOODSCODE = TMG.Goodscode
- WHERE
- TPPD.VALUEFLAG = 1
- AND TPGL.HIGHPRESSUREFLAG = 1
- AND TPPD.TESTFLAG = 0
- AND SUBSTR( TPGL.GROUTINGLINENAME, 1, 4 ) = 'C05A'
- AND (
- TPPD.CREATETIME >= TRUNC( SYSDATE )
- OR bj.CREATETIME = to_char( SYSDATE, 'yyyymmdd' )
- OR cj.CREATETIME = to_char( SYSDATE, 'yyyymmdd' )
- )
- GROUP BY
- TPGL.GROUTINGLINENAME,
- TMU.USERCODE,
- TMG.GOODSCODE,
- BJ.BJNUM,
- CJ.CJNUM,
- BJJP.BJJPNUM,
- CJBHG.CJBHGNUM
- ) T
- ) A
- FULL JOIN (
- SELECT--DISTINCT
- T2.GROUTINGLINENAME,
- T2.USERCODE,
- T2.GOODSCODE,
- T2.高压注浆数量,
- T2.成型数,
- CASE
-
- WHEN T2.成型数 > 0 THEN
- TO_CHAR( T2.成型数 / T2.高压注浆数量 * 100, '9,990.00' ) || '%' ELSE 0 || '%'
- END AS 注成率,
- T2.半检数量,
- T2.半检合格数量,
- CASE
-
- WHEN T2.半检合格数量 = 0
- AND T2.半检数量 > 0 THEN
- '0%'
- WHEN T2.半检合格数量 > 0
- AND T2.半检数量 = 0 THEN
- '100.00%'
- WHEN T2.半检合格数量 = 0
- AND T2.半检数量 = 0 THEN
- '100.00%'
- WHEN T2.半检合格数量 > 0
- AND T2.半检数量 > 0 THEN
- TO_CHAR( T2.半检合格数量 / T2.半检数量 * 100, '9,990.00' ) || '%' ELSE '0%'
- END AS 半检合格率,
- T2.成检数量,
- T2.成检合格数,
- CASE
-
- WHEN T2.成检合格数 = 0
- AND T2.成检数量 > 0 THEN
- '0%'
- WHEN T2.成检合格数 > 0
- AND T2.成检数量 = 0 THEN
- '100.00%'
- WHEN T2.成检合格数 = 0
- AND T2.成检数量 = 0 THEN
- '100.00%'
- WHEN T2.成检合格数 > 0
- AND T2.成检数量 > 0 THEN
- TO_CHAR( T2.成检合格数 / T2.成检数量 * 100, '9,990.00' ) || '%' ELSE '0%'
- END AS 成检合格率 --T.成检合格数/T.成检数量
-
- FROM
- (
- SELECT DISTINCT
- TPGL.GROUTINGLINENAME,
- TMU.USERCODE,
- TMG.GOODSCODE,
- SUM(
- CASE
-
- WHEN SUBSTR( TPGL.GROUTINGLINENAME, 1, 2 ) = 'C0'
- AND TPPD.CREATETIME >= trunc( SYSDATE, 'mm' ) THEN
- 1 ELSE 0
- END
- ) 高压注浆数量,
- SUM(
- CASE
-
- WHEN SUBSTR( TPGL.GROUTINGLINENAME, 1, 2 ) = 'C0'
- AND TPPD.CREATETIME >= trunc( SYSDATE, 'mm' )
- AND TPPD.SCRAPFLAG = '0' THEN
- 1 ELSE 0
- END
- ) 成型数,
- CASE
-
- WHEN BJJP.BJJPNUM IS NULL THEN
- 0 ELSE BJJP.BJJPNUM
- END AS 半检数量,
- CASE
-
- WHEN BJ.BJNUM IS NULL THEN
- 0 ELSE BJ.BJNUM
- END AS 半检不合格数量,
- CASE
-
- WHEN BJJP.BJJPNUM IS NULL THEN
- 0 ELSE BJJP.BJJPNUM
- END -
- CASE
-
- WHEN BJ.BJNUM IS NULL THEN
- 0 ELSE BJ.BJNUM
- END AS 半检合格数量,
- CASE
-
- WHEN CJ.CJNUM IS NULL THEN
- 0 ELSE CJ.CJNUM
- END AS 成检数量,
- CASE
-
- WHEN CJBHG.CJBHGNUM IS NULL THEN
- 0 ELSE CJBHG.CJBHGNUM
- END AS 成检不合格数量,
- CASE
-
- WHEN CJ.CJNUM IS NULL THEN
- 0 ELSE CJ.CJNUM
- END -
- CASE
-
- WHEN CJBHG.CJBHGNUM IS NULL THEN
- 0 ELSE CJBHG.CJBHGNUM
- END AS 成检合格数
- FROM
- TP_PM_GROUTINGDAILYDETAIL TPPD --TPPD ON TPP.BARCODE = TPPD.BARCODE
- LEFT JOIN TP_PC_GROUTINGLINE TPGL ON TPGL.GROUTINGLINEID = TPPD.GROUTINGLINEID
- LEFT JOIN TP_MST_USER TMU ON TPPD.USERID = TMU.USERID
- LEFT JOIN TP_MST_GOODS TMG ON TPPD.GOODSID = TMG.GOODSID
- LEFT JOIN (--半检数量
- SELECT DISTINCT
- COUNT( TPS.BARCODE ) BJJPNUM,
- PGD.GROUTINGLINECODE,
- PGD.USERCODE,
- PGD.GOODSCODE,
- to_char( TPS.CREATETIME, 'yyyymm' ) AS CREATETIME
- FROM
- TP_PM_SEMICHECK TPS
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL PGD ON PGD.BARCODE = TPS.BARCODE
- LEFT JOIN TP_PC_GROUTINGLINE TPGL ON TPGL.GROUTINGLINEID = PGD.GROUTINGLINEID
- WHERE
- TPGL.HIGHPRESSUREFLAG = 1
- AND PGD.TESTFLAG = 0
- AND SUBSTR( TPGL.GROUTINGLINENAME, 1, 2 ) = 'C0'
- AND TPS.CREATETIME >= trunc( SYSDATE, 'mm' ) --DATE'2023-6-1'
-
- GROUP BY
- PGD.GROUTINGLINECODE,
- PGD.USERCODE,
- PGD.GOODSCODE,
- to_char( TPS.CREATETIME, 'yyyymm' )
- ) BJJP ON BJJP.GROUTINGLINECODE = TPPD.GROUTINGLINECODE
- AND BJJP.USERCODE = TPPD.USERCODE
- AND BJJP.GOODSCODE = TMG.Goodscode
- LEFT JOIN (--半检不合格
- SELECT DISTINCT
- COUNT( TPS.BARCODE ) BJNUM,
- PGD.GROUTINGLINECODE,
- PGD.USERCODE,
- PGD.GOODSCODE,
- to_char( TPS.CREATETIME, 'yyyymm' ) AS CREATETIME
- FROM
- TP_PM_SEMICHECK TPS
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL PGD ON PGD.BARCODE = TPS.BARCODE
- LEFT JOIN TP_PC_GROUTINGLINE TPGL ON TPGL.GROUTINGLINEID = PGD.GROUTINGLINEID
- WHERE
- TPS.GOODSLEVELID IN ( 13, 14 )
- AND PGD.TESTFLAG = 0
- AND TPGL.HIGHPRESSUREFLAG = 1
- AND SUBSTR( TPGL.GROUTINGLINENAME, 1, 2 ) = 'C0'
- AND TPS.CREATETIME >= trunc( SYSDATE, 'mm' )
- GROUP BY
- PGD.GROUTINGLINECODE,
- PGD.USERCODE,
- PGD.GOODSCODE,
- to_char( TPS.CREATETIME, 'yyyymm' )
- ) BJ ON BJ.GROUTINGLINECODE = TPPD.GROUTINGLINECODE
- AND BJ.USERCODE = TPPD.USERCODE
- AND bj.GOODSCODE = TMG.Goodscode
- LEFT JOIN (--成检数量
- SELECT DISTINCT
- COUNT( PD.BARCODE ) CJNUM,
- PGD.GROUTINGLINECODE,
- PGD.USERCODE,
- PGD.GOODSCODE,
- to_char( PD.CREATETIME, 'yyyymm' ) AS CREATETIME
- FROM
- TP_PM_PRODUCTIONDATA PD
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL PGD ON PGD.BARCODE = PD.BARCODE
- LEFT JOIN TP_PC_GROUTINGLINE TPGL ON TPGL.GROUTINGLINEID = PGD.GROUTINGLINEID
- WHERE ( ( pd.procedureid = 11 AND pd.valueflag = '1' )
- OR ( pd.procedureid = 104 AND pd.isrefire = '0' AND pd.checkflag = '1' ) )
- AND pd.procedureid IN ( 11, 104 )
- AND PGD.RECYCLINGFLAG = '0'
- AND PD.ISREFIRE = 0
- AND pd.AccountID = 1
- AND SUBSTR( TPGL.GROUTINGLINENAME, 1, 2 ) = 'C0'
- AND PGD.TESTFLAG = 0
- AND PD.KILNID IN ( 1, 2, 5 )
- AND PD.CREATETIME >= trunc( SYSDATE, 'mm' )
- GROUP BY
- PGD.GROUTINGLINECODE,
- PGD.USERCODE,
- PGD.GOODSCODE,
- to_char( PD.CREATETIME, 'yyyymm' )
- ) CJ ON CJ.GROUTINGLINECODE = TPPD.GROUTINGLINECODE
- AND CJ.USERCODE = TPPD.USERCODE
- AND CJ.GOODSCODE = TMG.Goodscode
- LEFT JOIN (--成检不合格
- SELECT DISTINCT
- COUNT( PD.BARCODE ) CJBHGNUM,
- PGD.GROUTINGLINECODE,
- PGD.USERCODE,
- PGD.GOODSCODE,
- to_char( PD.CREATETIME, 'yyyymm' ) AS CREATETIME
- FROM
- TP_PM_PRODUCTIONDATA PD
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL PGD ON PGD.BARCODE = PD.BARCODE
- LEFT JOIN TP_PC_GROUTINGLINE TPGL ON TPGL.GROUTINGLINEID = PGD.GROUTINGLINEID
- LEFT JOIN TP_PM_DEFECT TPD ON PGD.BARCODE = TPD.BARCODE
- LEFT JOIN TP_MST_DEFECT TMD ON TPD.DEFECTID = TMD.DEFECTID
- WHERE
- pd.valueflag = '1'
- AND PD.modeltype IN ( - 1, - 4, - 5 )
- AND PD.CHECKBATCHNO = 1
- AND PGD.RECYCLINGFLAG = '0'
- AND pd.GOODSLEVELID IN ( 6, 7 )
- AND TMD.DEFECTTYPEID IN ( 15, 16,8)
- AND TPD.DEFECTNAME is not null
- AND SUBSTR( TPGL.GROUTINGLINENAME, 1, 2 ) = 'C0'
- AND PGD.TESTFLAG = 0
- AND length( pd.kilncarbatchno ) > 0
- AND PD.CREATETIME >= trunc( SYSDATE, 'mm' )
- GROUP BY
- PGD.GROUTINGLINECODE,
- PGD.USERCODE,
- PGD.GOODSCODE,
- to_char( PD.CREATETIME, 'yyyymm' )
- ) CJBHG ON CJBHG.GROUTINGLINECODE = TPPD.GROUTINGLINECODE
- AND CJBHG.USERCODE = TPPD.USERCODE
- AND CJBHG.GOODSCODE = TMG.Goodscode
- WHERE
- TPPD.VALUEFLAG = 1
- AND TPGL.HIGHPRESSUREFLAG = 1
- AND TPPD.TESTFLAG = 0
- AND SUBSTR( TPGL.GROUTINGLINENAME, 1, 2 ) = 'C0'
- AND SUBSTR( TMG.GOODSCODE, -2, LENGTH(TMG.GOODSCODE) ) = '-W'
- AND (
- TPPD.CREATETIME >= trunc( SYSDATE, 'mm' )
- OR bj.CREATETIME = to_char( SYSDATE, 'yyyymmdd' )
- OR cj.CREATETIME = to_char( SYSDATE, 'yyyymmdd' )
- )
- GROUP BY
- TPGL.GROUTINGLINENAME,
- TMU.USERCODE,
- TMG.GOODSCODE,
- BJ.BJNUM,
- CJ.CJNUM,
- BJJP.BJJPNUM,
- CJBHG.CJBHGNUM
- ) T2
- ) B ON A.GROUTINGLINENAME = B.GROUTINGLINENAME
- AND A.USERCODE = B.USERCODE
- AND A.GOODSCODE = B.GOODSCODE
- ";
- //直接获取不分页数据
- DataTable dt = conn.ExecuteDatatable(sqlStr);
- int a = 1;
- string jsonStr = new JsonResult(dt).ToJson();
- context.Response.Write(jsonStr);
- }
- }
- }
-
- public bool IsReusable {
- get {
- return false;
- }
- }
- }
|