|
|
@@ -0,0 +1,459 @@
|
|
|
+<%@ 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 System.Configuration;
|
|
|
+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())
|
|
|
+ {
|
|
|
+ //主表
|
|
|
+ if (context.Request["m"].ToString() == "master")
|
|
|
+ {
|
|
|
+ // 验厂标识 true: false:
|
|
|
+ string strFactoryInspectionFlag = ConfigurationManager.AppSettings["FactoryInspectionFlag"] + "";
|
|
|
+ string strFactoryInspection = "";
|
|
|
+ string strFactoryInspectionCheckTime = "";
|
|
|
+ if ("true".Equals(strFactoryInspectionFlag))
|
|
|
+ {
|
|
|
+ strFactoryInspection = " and not exists (select 1 from TP_HOLIDAY_CONFIG thc where p.CREATETIME >= thc.DAY_YMD_START and p.CREATETIME < thc.DAY_YMD_END ) ";
|
|
|
+ strFactoryInspectionCheckTime = " and not exists (select 1 from TP_HOLIDAY_CONFIG thc where TP.CREATETIME >= thc.DAY_YMD_START and TP.CREATETIME < thc.DAY_YMD_END ) ";
|
|
|
+ }
|
|
|
+ conn.BeginTransaction();
|
|
|
+
|
|
|
+ string sqltmp = @" insert into TMP_CHECK_PROD_STATISTIC(PRODUCTIONDATAID,
|
|
|
+ BARCODE,
|
|
|
+ USERID,
|
|
|
+ GOODSID,
|
|
|
+ GOODSMODEL,
|
|
|
+ GOODSCODE,
|
|
|
+ GOODSNAME,
|
|
|
+ 釉料ID,
|
|
|
+ 釉料,
|
|
|
+ 商标ID,
|
|
|
+ 商标,
|
|
|
+ GROUTINGLINEID,
|
|
|
+ GOODSLEVELTYPEID,
|
|
|
+ PROCEDUREID,
|
|
|
+ MAXPRODUCTIONDATAID,
|
|
|
+ CLASSESSETTINGID) ( SELECT
|
|
|
+ TP.PRODUCTIONDATAID,
|
|
|
+ TP.BARCODE,
|
|
|
+ decode(pdsemi.productiondataid, NULL, decode(pdsemicheck.productiondataid,NULL,tp.userid,pdfirst.userid) , decode(pdrefirst.userid, NULL, pdfirst.userid, pdrefirst.userid)) userid,
|
|
|
+ TP.GOODSID,
|
|
|
+ G.GOODSMODEL,
|
|
|
+ G.GOODSCODE,
|
|
|
+ G.GOODSNAME,
|
|
|
+ Gg.GLAZETYPEID AS 釉料ID,
|
|
|
+ D.DICTIONARYVALUE AS 釉料,
|
|
|
+ Gg.LOGOID AS 商标ID,
|
|
|
+ O.LOGONAME AS 商标,
|
|
|
+ TP.GROUTINGLINEID,
|
|
|
+ TP.GOODSLEVELTYPEID,
|
|
|
+ TP.PROCEDUREID,
|
|
|
+ MAX( PMAX.PRODUCTIONDATAID ) AS MAXPRODUCTIONDATAID,
|
|
|
+ decode(pdsemi.productiondataid
|
|
|
+ ,NULL
|
|
|
+ ,tp.classessettingid
|
|
|
+ ,decode(pdrefirst.classessettingid, NULL, pdfirst.classessettingid, pdrefirst.classessettingid)) CLASSESSETTINGID
|
|
|
+ FROM
|
|
|
+
|
|
|
+ (SELECT MAX(tp.productiondataid) productiondataid
|
|
|
+ ,tp.groutingdailydetailid
|
|
|
+ FROM tp_pm_productiondata tp
|
|
|
+ WHERE tp.procedureid IN (13, 35)
|
|
|
+ AND tp.createtime >= @DATEBEGIN@
|
|
|
+ AND tp.createtime <= @DATEEND@
|
|
|
+ GROUP BY tp.groutingdailydetailid) maxp
|
|
|
+ INNER JOIN tp_pm_productiondata tp ON maxp.productiondataid = tp.productiondataid
|
|
|
+ -- 研发
|
|
|
+ LEFT JOIN tp_pm_productiondata tprd
|
|
|
+ ON tprd.groutingdailydetailid = tp.groutingdailydetailid
|
|
|
+ AND tprd.valueflag = '1' AND tprd.procedureid = 34
|
|
|
+ -- 复检的数据
|
|
|
+ LEFT JOIN tp_pm_productiondata_semicheck pdsemi ON pdsemi.productiondataid = tp.productiondataid
|
|
|
+ -- 是否经过复检的数据
|
|
|
+ LEFT JOIN tp_pm_productiondata pdissemi
|
|
|
+ ON pdissemi.groutingdailydetailid = tp.groutingdailydetailid
|
|
|
+ AND ((tprd.groutingdailydetailid IS NOT NULL AND
|
|
|
+ pdissemi.kilncarbatchno IS NULL AND tp.kilncarbatchno IS NULL) OR
|
|
|
+ (tprd.groutingdailydetailid IS NULL AND
|
|
|
+ pdissemi.kilncarbatchno = tp.kilncarbatchno))
|
|
|
+ AND pdissemi.productiondataid < tp.productiondataid
|
|
|
+ and pdissemi.procedureid IN (13, 35)
|
|
|
+ LEFT JOIN tp_pm_productiondata_semicheck pdsemicheck
|
|
|
+ ON pdsemicheck.productiondataid = pdissemi.productiondataid
|
|
|
+
|
|
|
+ -- 找到复检的那个人
|
|
|
+ LEFT JOIN tp_pm_productiondata pdfirst
|
|
|
+ ON pdfirst.groutingdailydetailid = tp.groutingdailydetailid
|
|
|
+ AND pdfirst.checkflag = 1
|
|
|
+ AND ((tprd.groutingdailydetailid IS NOT NULL AND
|
|
|
+ pdfirst.kilncarbatchno IS NULL AND tp.kilncarbatchno IS NULL) OR
|
|
|
+ (tprd.groutingdailydetailid IS NULL AND
|
|
|
+ pdfirst.kilncarbatchno = tp.kilncarbatchno))
|
|
|
+ AND pdfirst.productiondataid <= tp.productiondataid
|
|
|
+ -- 找到研磨 堵漏气 刷洗不良 的那个人
|
|
|
+ LEFT JOIN tp_pm_productiondata pdrefirst
|
|
|
+ ON pdrefirst.groutingdailydetailid = tp.groutingdailydetailid
|
|
|
+ AND pdrefirst.checkflag = 3
|
|
|
+ AND ((tprd.groutingdailydetailid IS NOT NULL AND
|
|
|
+ pdrefirst.kilncarbatchno IS NULL AND tp.kilncarbatchno IS NULL) OR
|
|
|
+ (tprd.groutingdailydetailid IS NULL AND
|
|
|
+ pdrefirst.kilncarbatchno = tp.kilncarbatchno))
|
|
|
+ AND pdrefirst.productiondataid <= tp.productiondataid
|
|
|
+ INNER JOIN TP_PC_GROUTINGLINE L ON TP.GROUTINGLINEID = L.GROUTINGLINEID
|
|
|
+ LEFT JOIN TP_PM_PRODUCTIONDATA PMAX ON PMAX.GROUTINGDAILYDETAILID = TP.GROUTINGDAILYDETAILID
|
|
|
+ AND PMAX.PRODUCTIONDATAID < TP.PRODUCTIONDATAID AND PMAX.VALUEFLAG = '1' AND pmax.procedureid IN (22, 23)
|
|
|
+ LEFT JOIN TP_MST_GOODS G ON G.GOODSID = TP.GOODSID
|
|
|
+ LEFT JOIN TP_PM_GROUTINGDAILYDETAIL Gg ON TP.GROUTINGDAILYDETAILID = Gg.GROUTINGDAILYDETAILID
|
|
|
+ LEFT JOIN TP_MST_DATADICTIONARY D ON Gg.GLAZETYPEID = D.DICTIONARYID
|
|
|
+ LEFT JOIN TP_MST_LOGO O ON Gg.LOGOID = O.LOGOID
|
|
|
+ LEFT JOIN tp_mst_user mu ON mu.userid = decode(pdsemi.productiondataid, NULL, decode(pdsemicheck.productiondataid,NULL,tp.userid,pdfirst.userid), decode(pdrefirst.userid, NULL, pdfirst.userid, pdrefirst.userid))
|
|
|
+ WHERE
|
|
|
+ TP.PROCEDUREID IN ( 13, 35 )
|
|
|
+ AND ( G.GOODSMODEL = @GOODSMODEL@ OR @GOODSMODEL@ IS NULL )
|
|
|
+ AND ( G.GOODSNAME = @GOODSNAME@ OR @GOODSNAME@ IS NULL )
|
|
|
+ AND ( mu.USERCODE = @USERCODE@ OR @USERCODE@ IS NULL )
|
|
|
+
|
|
|
+ AND TP.CREATETIME >= @DATEBEGIN@
|
|
|
+ AND TP.CREATETIME <= @DATEEND@
|
|
|
+ {strFactoryInspectionCheckTime}
|
|
|
+ AND ( L.BUILDINGNO = @BUILDINGNO@ OR @BUILDINGNO@ IS NULL )
|
|
|
+ AND (Gg.LOGOID = @LOGOID@ OR @LOGOID@ IS NULL)
|
|
|
+ AND (Gg.GLAZETYPEID = @GLAZETYPEID@ OR @GLAZETYPEID@ IS NULL)
|
|
|
+ GROUP BY
|
|
|
+ TP.PRODUCTIONDATAID,
|
|
|
+ TP.BARCODE,
|
|
|
+ pdfirst.USERID, pdrefirst.userid,
|
|
|
+ G.GOODSCODE,
|
|
|
+ G.GOODSNAME,
|
|
|
+ TP.GOODSID,
|
|
|
+ G.GOODSMODEL,
|
|
|
+ Gg.GLAZETYPEID,
|
|
|
+ D.DICTIONARYVALUE,
|
|
|
+ Gg.LOGOID,
|
|
|
+ O.LOGONAME,
|
|
|
+ TP.GROUTINGLINEID,
|
|
|
+ TP.GOODSLEVELTYPEID,
|
|
|
+ TP.PROCEDUREID,
|
|
|
+ pdfirst.CLASSESSETTINGID ,pdrefirst.classessettingid,pdsemi.productiondataid ,pdsemicheck.productiondataid,tp.userid ,tp.classessettingid ) ";
|
|
|
+ List<CDAParameter> sqlParaInert = new List<CDAParameter>();
|
|
|
+ sqlParaInert.Add(new CDAParameter("DATEBEGIN", Convert.ToDateTime(context.Request["datebeginMaster"]), DataType.DateTime));
|
|
|
+ sqlParaInert.Add(new CDAParameter("DATEEND", Convert.ToDateTime(context.Request["dateendMaster"]), DataType.DateTime));
|
|
|
+
|
|
|
+ sqlParaInert.Add(new CDAParameter("BUILDINGNO", context.Request["buildingnoMaster"]));
|
|
|
+ sqlParaInert.Add(new CDAParameter("PROCEDUREID", context.Request["procedureidMaster"]));
|
|
|
+ sqlParaInert.Add(new CDAParameter("GOODSMODEL", context.Request["goodsmodelMaster"]));
|
|
|
+ sqlParaInert.Add(new CDAParameter("GOODSNAME", context.Request["goodsnameMaster"]));
|
|
|
+ sqlParaInert.Add(new CDAParameter("USERCODE", context.Request["usercodeMaster"]));
|
|
|
+ sqlParaInert.Add(new CDAParameter("USERNAME", context.Request["usernameMaster"]));
|
|
|
+ sqlParaInert.Add(new CDAParameter("GLAZETYPEID", context.Request["glazetypeidMaster"]));
|
|
|
+ sqlParaInert.Add(new CDAParameter("LOGOID", context.Request["logoidMaster"]));
|
|
|
+ sqlParaInert.Add(new CDAParameter("JOBSID", context.Request["jobsidMaster"]));
|
|
|
+ if (sqltmp.Contains("{strFactoryInspection}"))
|
|
|
+ {
|
|
|
+ sqltmp = sqltmp.Replace("{strFactoryInspection}", strFactoryInspection);
|
|
|
+ }
|
|
|
+ if (sqltmp.Contains("{strFactoryInspectionCheckTime}"))
|
|
|
+ {
|
|
|
+ sqltmp = sqltmp.Replace("{strFactoryInspectionCheckTime}", strFactoryInspectionCheckTime);
|
|
|
+ }
|
|
|
+ conn.ExecuteNonQuery(sqltmp, sqlParaInert.ToArray());
|
|
|
+
|
|
|
+ List<CDAParameter> sqlPara = new List<CDAParameter>();
|
|
|
+
|
|
|
+ //读取报表数据
|
|
|
+ string sqlStr = @"
|
|
|
+ SELECT
|
|
|
+ DECODE( GROUPING_ID ( U.USERCODE, PP.GOODSMODEL, CDU.STAFFNAME), 3, U.USERCODE || CDU.STAFFNAME || '[合计]', 7, '总计', U.USERCODE ) AS 工号,
|
|
|
+ --U.USERNAME AS 姓名,
|
|
|
+ CDU.STAFFNAME AS 姓名,
|
|
|
+ J.JOBSNAME AS 工种,
|
|
|
+ PP.GOODSCODE AS 产品编码,
|
|
|
+ PP.GOODSNAME AS 产品名称,
|
|
|
+ PP.GOODSMODEL AS 产品型号,
|
|
|
+ G.GOODSSPECIFICATION AS 产品规格,
|
|
|
+ --PP.釉料ID AS 釉料ID,
|
|
|
+ PP.釉料 AS 釉料,
|
|
|
+ --PP.商标ID AS 商标ID,
|
|
|
+ PP.商标 AS 商标,
|
|
|
+ SUM( PP.CHECKNUM1 ) AS 检验数_本烧,
|
|
|
+ SUM( PP.CHECKNUM2 ) AS 检验数_重烧,";
|
|
|
+ if (context.Request["XDLdatebeginMaster"] != "" && context.Request["XDLdateendMaster"] != "" && context.Request["XDLdatebeginMaster"] != null && context.Request["XDLdateendMaster"] != null)
|
|
|
+ {
|
|
|
+ sqlStr += @"
|
|
|
+ CASE WHEN PP.GOODSMODEL IS NULL THEN 0 ELSE
|
|
|
+ MAX((SELECT COUNT(*) FROM TP_PM_PRODUCTIONDATA pd WHERE pd.VALUEFLAG=1 AND pd.GOODSID=pp.GOODSID and pd.PROCEDUREID=52
|
|
|
+ AND PD.CREATETIME >= @XDLSTART@ AND PD.CREATETIME <= @XDLEND@))
|
|
|
+ END 卸吊篮,";
|
|
|
+ sqlPara.Add(new CDAParameter("XDLSTART", Convert.ToDateTime(context.Request["XDLdatebeginMaster"]), DataType.DateTime));
|
|
|
+ sqlPara.Add(new CDAParameter("XDLEND", Convert.ToDateTime(context.Request["XDLdateendMaster"]), DataType.DateTime));
|
|
|
+ }
|
|
|
+ sqlStr += @"
|
|
|
+ SUM( PP.CHECKNUM3 ) AS 首检数_本烧,
|
|
|
+ SUM( PP.CHECKNUM4 ) AS 首检数_重烧,
|
|
|
+ SUM( PP.OK_B ) AS 合格数_本烧,
|
|
|
+ SUM( PP.OK_R ) AS 合格数_重烧,
|
|
|
+ SUM( PP.OK_L ) AS 合格数_冷补,
|
|
|
+ SUM( PP.OK_ALL ) AS 合格数_合计,
|
|
|
+ SUM( PP.OK_P ) AS 包装入仓,
|
|
|
+ SUM( PP.DNUM1 ) AS 本烧缺陷数_排水不良,
|
|
|
+ SUM( PP.DNUM2 ) AS 本烧缺陷数_漏气,
|
|
|
+ SUM( PP.DNUM3 ) AS 重烧缺陷数_排水不良,
|
|
|
+ SUM( PP.DNUM4 ) AS 重烧缺陷数_漏气
|
|
|
+ FROM
|
|
|
+ (
|
|
|
+ SELECT
|
|
|
+ CASE WHEN PC.USERID IS NOT NULL THEN PC.USERID ELSE PM.USERID END USERID,
|
|
|
+ CASE WHEN PC.CDUSERID IS NOT NULL THEN PC.CDUSERID ELSE PM.CDUSERID END CDUSERID,
|
|
|
+ NVL(PC.JOBSID,PM.JOBSID) JOBSID,
|
|
|
+ NVL( PC.GOODSID, PM.GOODSID ) GOODSID,
|
|
|
+ NVL( PC.GOODSMODEL, PM.GOODSMODEL ) GOODSMODEL,
|
|
|
+ NVL( PC.GOODSCODE, PM.GOODSCODE ) GOODSCODE,
|
|
|
+ NVL( PC.GOODSNAME, PM.GOODSNAME ) GOODSNAME,
|
|
|
+ NVL( PC.釉料ID, PM.釉料ID ) 釉料ID,
|
|
|
+ NVL( PC.釉料, PM.釉料 ) 釉料,
|
|
|
+ NVL( PC.商标ID, PM.商标ID ) 商标ID,
|
|
|
+ NVL( PC.商标, PM.商标 ) 商标,
|
|
|
+ NVL( PM.OK_P,0) OK_P,
|
|
|
+ NVL( PC.CHECKNUM1, 0 ) CHECKNUM1,
|
|
|
+ NVL( PC.CHECKNUM2, 0 ) CHECKNUM2,
|
|
|
+ NVL( PC.CHECKNUM3, 0 ) CHECKNUM3,
|
|
|
+ NVL( PC.CHECKNUM4, 0 ) CHECKNUM4,
|
|
|
+ NVL( PM.DNUM1, 0 ) DNUM1,
|
|
|
+ NVL( PM.DNUM2, 0 ) DNUM2,
|
|
|
+ NVL( PM.DNUM3, 0 ) DNUM3,
|
|
|
+ NVL( PM.DNUM4, 0 ) DNUM4,
|
|
|
+ --NVL( PM.OUT_K, 0 ) OUT_K,
|
|
|
+ NVL( PM.OK_B, 0 ) OK_B,
|
|
|
+ NVL( PM.OK_R, 0 ) OK_R,
|
|
|
+ NVL( PM.OK_L, 0 ) OK_L,
|
|
|
+ NVL( PM.OK_ALL, 0 ) OK_ALL
|
|
|
+ FROM
|
|
|
+ (
|
|
|
+ SELECT
|
|
|
+ P.USERID,
|
|
|
+ CD.STAFFID AS CDUSERID,
|
|
|
+ CD.UJOBSID AS JOBSID,
|
|
|
+ P.GOODSID,
|
|
|
+ G.GOODSMODEL,
|
|
|
+ G.GOODSCODE,
|
|
|
+ G.GOODSNAME,
|
|
|
+ Gg.GLAZETYPEID AS 釉料ID,
|
|
|
+ D.DICTIONARYVALUE AS 釉料,
|
|
|
+ Gg.LOGOID AS 商标ID,
|
|
|
+ O.LOGONAME AS 商标,
|
|
|
+ SUM( DECODE( P.PROCEDUREID, 13, 1, 0 ) ) CHECKNUM1,
|
|
|
+ SUM( DECODE( P.PROCEDUREID, 35, 1, 0 ) ) CHECKNUM2,
|
|
|
+ --xuwei add
|
|
|
+ SUM( CASE WHEN P.PROCEDUREID = 13 AND P.CHECKFLAG = 1 THEN 1 ELSE 0 END) CHECKNUM3,
|
|
|
+ SUM( CASE WHEN P.PROCEDUREID = 35 AND P.CHECKFLAG = 1 THEN 1 ELSE 0 END) CHECKNUM4
|
|
|
+ FROM
|
|
|
+ TP_PM_PRODUCTIONDATA P
|
|
|
+ INNER JOIN TP_PC_GROUTINGLINE L ON P.GROUTINGLINEID = L.GROUTINGLINEID
|
|
|
+ LEFT JOIN TP_PC_CLASSESDETAIL CD ON P.CLASSESSETTINGID = CD.CLASSESSETTINGID
|
|
|
+ LEFT JOIN TP_MST_GOODS G ON G.GOODSID = P.GOODSID
|
|
|
+ LEFT JOIN TP_PM_GROUTINGDAILYDETAIL Gg ON P.GROUTINGDAILYDETAILID = Gg.GROUTINGDAILYDETAILID
|
|
|
+ LEFT JOIN TP_MST_DATADICTIONARY D ON Gg.GLAZETYPEID = D.DICTIONARYID
|
|
|
+ LEFT JOIN TP_MST_LOGO O ON Gg.LOGOID = O.LOGOID
|
|
|
+ WHERE
|
|
|
+ -- 新建成检时=1,新建成检改判时=2,回收后成检时=3,回收后成检改判时=4(暂时没有4)
|
|
|
+ P.CHECKFLAG IN ( 1,3 ) AND P.PROCEDUREID IN ( 13, 35 )
|
|
|
+ AND ( G.GOODSMODEL = @GOODSMODEL@ OR @GOODSMODEL@ IS NULL )
|
|
|
+ AND ( G.GOODSNAME = @GOODSNAME@ OR @GOODSNAME@ IS NULL )
|
|
|
+ AND ( P.USERCODE = @USERCODE@ OR @USERCODE@ IS NULL )
|
|
|
+ AND P.CREATETIME >= @DATEBEGIN@
|
|
|
+ AND P.CREATETIME <= @DATEEND@
|
|
|
+ {strFactoryInspection}
|
|
|
+ AND ( L.BUILDINGNO = @BUILDINGNO@ OR @BUILDINGNO@ IS NULL )
|
|
|
+ AND (Gg.LOGOID = @LOGOID@ OR @LOGOID@ IS NULL)
|
|
|
+ AND (Gg.GLAZETYPEID = @GLAZETYPEID@ OR @GLAZETYPEID@ IS NULL)
|
|
|
+ GROUP BY
|
|
|
+ P.USERID,
|
|
|
+ CD.UJOBSID,
|
|
|
+ G.GOODSCODE,
|
|
|
+ G.GOODSNAME,
|
|
|
+ CD.STAFFID,
|
|
|
+ P.GOODSID,
|
|
|
+ G.GOODSMODEL,
|
|
|
+ Gg.GLAZETYPEID,
|
|
|
+ D.DICTIONARYVALUE,
|
|
|
+ Gg.LOGOID,
|
|
|
+ O.LOGONAME
|
|
|
+ ) PC
|
|
|
+ FULL JOIN
|
|
|
+ (
|
|
|
+ SELECT
|
|
|
+ P.USERID,
|
|
|
+ CD.STAFFID AS CDUSERID,
|
|
|
+ CD.UJOBSID AS JOBSID,
|
|
|
+ P.GOODSID,
|
|
|
+ P.GOODSMODEL,
|
|
|
+ P.GOODSCODE,
|
|
|
+ P.GOODSNAME,
|
|
|
+ P.釉料ID,
|
|
|
+ p.釉料,
|
|
|
+ P.商标ID,
|
|
|
+ P.商标,
|
|
|
+ COUNT(distinct CASE WHEN ( P.GOODSLEVELTYPEID = 4 OR P.GOODSLEVELTYPEID = 5 ) AND P.PROCEDUREID IN (13,35) AND NOT PDP.BARCODE IS NULL THEN P.BARCODE
|
|
|
+ ELSE NULL END) AS OK_P,
|
|
|
+ COUNT(distinct CASE WHEN ( P.GOODSLEVELTYPEID = 4 OR P.GOODSLEVELTYPEID = 5 ) AND P.PROCEDUREID = 13 AND tpp.checktime >= date'" + Convert.ToDateTime(context.Request["datebeginMaster"]).ToString("yyyy-MM-dd") + @"'
|
|
|
+ AND tpp.checktime <= date'" + Convert.ToDateTime(context.Request["dateendMaster"]).AddSeconds(1).ToString("yyyy-MM-dd") + @"' AND p.maxproductiondataid IS NULL THEN P.BARCODE
|
|
|
+ ELSE NULL END ) AS OK_B,
|
|
|
+ COUNT(distinct CASE WHEN ( P.GOODSLEVELTYPEID = 4 OR P.GOODSLEVELTYPEID = 5 ) AND P.PROCEDUREID = 35 AND tpp.checktime >= date'" + Convert.ToDateTime(context.Request["datebeginMaster"]).ToString("yyyy-MM-dd") + @"'
|
|
|
+ AND tpp.checktime <= date'" + Convert.ToDateTime(context.Request["dateendMaster"]).AddSeconds(1).ToString("yyyy-MM-dd") + @"' AND p.maxproductiondataid IS NULL THEN P.BARCODE
|
|
|
+ ELSE NULL END ) AS OK_R,
|
|
|
+ COUNT(distinct CASE WHEN ( P.GOODSLEVELTYPEID = 4 OR P.GOODSLEVELTYPEID = 5 ) AND NOT p.maxproductiondataid IS NULL THEN P.BARCODE
|
|
|
+ ELSE NULL END ) AS OK_L,
|
|
|
+ COUNT(distinct DECODE( P.GOODSLEVELTYPEID, 4, P.PRODUCTIONDATAID, 5, P.PRODUCTIONDATAID, NULL ) ) AS OK_ALL ,
|
|
|
+ SUM( CASE WHEN P.GOODSLEVELTYPEID NOT IN (4,5) AND D.DEFECTID IN(9) AND P.PROCEDUREID = 13 THEN 1 ELSE 0 END) AS DNUM1,
|
|
|
+ SUM( CASE WHEN P.GOODSLEVELTYPEID NOT IN (4,5) AND D.DEFECTID IN(11) AND P.PROCEDUREID = 13 THEN 1 ELSE 0 END) AS DNUM2,
|
|
|
+ SUM( CASE WHEN P.GOODSLEVELTYPEID NOT IN (4,5) AND D.DEFECTID IN(9) AND P.PROCEDUREID = 35 THEN 1 ELSE 0 END) AS DNUM3,
|
|
|
+ SUM( CASE WHEN P.GOODSLEVELTYPEID NOT IN (4,5) AND D.DEFECTID IN(11) AND P.PROCEDUREID = 35 THEN 1 ELSE 0 END) AS DNUM4
|
|
|
+ FROM
|
|
|
+ (
|
|
|
+ TMP_CHECK_PROD_STATISTIC
|
|
|
+ ) P
|
|
|
+ LEFT JOIN TP_PM_PRODUCTIONDATA PDP ON P.BARCODE = PDP.BARCODE AND PDP.PROCEDUREID =15 AND PDP.VALUEFLAG = '1'
|
|
|
+ INNER JOIN tp_pm_productiondata tpp ON tpp.productiondataid = p.productiondataid
|
|
|
+ -- LEFT JOIN TP_PM_PRODUCTIONDATA PDD ON P.MAXPRODUCTIONDATAID = PDD.PRODUCTIONDATAID AND PDD.PROCEDUREID IN ( 22, 23 )
|
|
|
+ LEFT JOIN TP_PM_DEFECT D ON D.PRODUCTIONDATAID = P.PRODUCTIONDATAID AND D.DEFECTID IN(9,11)
|
|
|
+ LEFT JOIN TP_PC_CLASSESDETAIL CD ON P.CLASSESSETTINGID = CD.CLASSESSETTINGID
|
|
|
+ GROUP BY
|
|
|
+ P.USERID,
|
|
|
+ P.GOODSCODE,
|
|
|
+ P.GOODSNAME,
|
|
|
+ CD.STAFFID,
|
|
|
+ CD.UJOBSID,
|
|
|
+ P.GOODSID,
|
|
|
+ P.GOODSMODEL,
|
|
|
+ P.釉料ID,
|
|
|
+ p.釉料,
|
|
|
+ P.商标ID,
|
|
|
+ P.商标
|
|
|
+ ) PM ON PM.USERID = PC.USERID AND PM.GOODSID = PC.GOODSID AND PM.CDUSERID = PC.CDUSERID AND PM.釉料ID = PC.釉料ID AND PM.商标ID = PC.商标ID
|
|
|
+ ) PP
|
|
|
+ LEFT JOIN TP_MST_USER U ON U.USERID = PP.USERID
|
|
|
+ LEFT JOIN TP_HR_STAFF CDU ON CDU.STAFFID = PP.CDUSERID
|
|
|
+ LEFT JOIN TP_MST_JOBS J ON J.JOBSID = PP.JOBSID
|
|
|
+ LEFT JOIN TP_MST_GOODS G ON G.GOODSID = PP.GOODSID
|
|
|
+ WHERE
|
|
|
+ (CDU.STAFFNAME = @USERNAME@ OR @USERNAME@ IS NULL)
|
|
|
+ AND (J.JOBSID = @JOBSID@ OR @JOBSID@ IS NULL)
|
|
|
+ GROUP BY
|
|
|
+ GROUPING SETS ( ( U.USERCODE,PP.GOODSCODE,PP.GOODSNAME,CDU.STAFFNAME, U.USERNAME, PP.GOODSMODEL,J.JOBSNAME,PP.釉料,PP.商标 ,G.GOODSSPECIFICATION), ( U.USERCODE ))
|
|
|
+ HAVING SUM(pp.checknum1) <> 0 OR SUM(pp.checknum2) <> 0 OR SUM(pp.checknum3) <> 0 OR SUM(pp.checknum4) <> 0
|
|
|
+ -- 检验数_本烧 检验数_重烧 首检数_本烧 首检数_重烧 250924 和石磊沟通后暂时把 这四个为0的数据过滤 先不管后面的列的数据情况
|
|
|
+ -- OR SUM(pp.ok_b) <> 0 OR SUM(pp.ok_r) <> 0 OR SUM(pp.ok_l) <> 0 OR SUM(pp.ok_all) <> 0 OR SUM(pp.ok_p) <> 0 OR SUM(pp.dnum1) <> 0 OR SUM(pp.dnum2) <> 0 OR SUM(pp.dnum3) <> 0 OR SUM(pp.dnum4) <> 0
|
|
|
+
|
|
|
+ ORDER BY
|
|
|
+ U.USERCODE,
|
|
|
+ PP.GOODSCODE,
|
|
|
+ PP.GOODSNAME,
|
|
|
+ CDU.STAFFNAME,
|
|
|
+ PP.GOODSMODEL";
|
|
|
+
|
|
|
+ sqlPara.Add(new CDAParameter("DATEBEGIN", Convert.ToDateTime(context.Request["datebeginMaster"]), DataType.DateTime));
|
|
|
+ sqlPara.Add(new CDAParameter("DATEEND", Convert.ToDateTime(context.Request["dateendMaster"]), DataType.DateTime));
|
|
|
+
|
|
|
+ sqlPara.Add(new CDAParameter("BUILDINGNO", context.Request["buildingnoMaster"]));
|
|
|
+ sqlPara.Add(new CDAParameter("PROCEDUREID", context.Request["procedureidMaster"]));
|
|
|
+ sqlPara.Add(new CDAParameter("GOODSMODEL", context.Request["goodsmodelMaster"]));
|
|
|
+ sqlPara.Add(new CDAParameter("GOODSNAME", context.Request["goodsnameMaster"]));
|
|
|
+ sqlPara.Add(new CDAParameter("USERCODE", context.Request["usercodeMaster"]));
|
|
|
+ sqlPara.Add(new CDAParameter("USERNAME", context.Request["usernameMaster"]));
|
|
|
+ sqlPara.Add(new CDAParameter("GLAZETYPEID", context.Request["glazetypeidMaster"]));
|
|
|
+ sqlPara.Add(new CDAParameter("LOGOID", context.Request["logoidMaster"]));
|
|
|
+ sqlPara.Add(new CDAParameter("JOBSID", context.Request["jobsidMaster"]));
|
|
|
+ if (sqlStr.Contains("{strFactoryInspection}"))
|
|
|
+ {
|
|
|
+ sqlStr = sqlStr.Replace("{strFactoryInspection}", strFactoryInspection);
|
|
|
+ }
|
|
|
+ if (sqlStr.Contains("{strFactoryInspectionCheckTime}"))
|
|
|
+ {
|
|
|
+ sqlStr = sqlStr.Replace("{strFactoryInspectionCheckTime}", strFactoryInspectionCheckTime);
|
|
|
+ }
|
|
|
+ //直接获取不分页数据
|
|
|
+ DataTable dt = conn.ExecuteDatatable(sqlStr, sqlPara.ToArray());
|
|
|
+ string jsonStr = new JsonResult(dt) { total = dt.Rows.Count }.ToJson();
|
|
|
+ context.Response.Write(jsonStr);
|
|
|
+ }
|
|
|
+ if (context.Request["m"].ToString() == "jiezhauang")
|
|
|
+ {
|
|
|
+ string sqlStr = @"
|
|
|
+ SELECT
|
|
|
+ AJ.USERCODE AS 工号,
|
|
|
+ AJ.STAFFNAME AS 姓名,
|
|
|
+ AJ.JOBSNAME AS 工种,
|
|
|
+ AJ.GOODSMODEL AS 产品型号,
|
|
|
+ sum( AJ.CHECKNUM1 ) AS 检验数_本烧,
|
|
|
+ sum( AJ.CHECKNUM2 ) AS 检验数_重烧,
|
|
|
+ sum( AJ.CHECKNUM3 ) AS 首检数_本烧,
|
|
|
+ sum( AJ.CHECKNUM4 ) AS 首检数_重烧,
|
|
|
+ sum( AJ.OK_B ) AS 合格数_本烧,
|
|
|
+ sum( AJ.OK_B ) AS 合格数_重烧,
|
|
|
+ sum( AJ.OK_L ) AS 合格数_冷补,
|
|
|
+ sum( AJ.OK_ALL ) AS 合格数_合计,
|
|
|
+ sum( AJ.OK_P ) AS 包装入仓,
|
|
|
+ sum( AJ.DNUM1 ) AS 本烧缺陷数_排水不良,
|
|
|
+ sum( AJ.DNUM2 ) AS 本烧缺陷数_漏气,
|
|
|
+ sum( AJ.DNUM3 ) AS 重烧缺陷数_排水不良,
|
|
|
+ sum( AJ.DNUM4 ) AS 重烧缺陷数_漏气
|
|
|
+ FROM
|
|
|
+ AJZ_RPT017 AJ
|
|
|
+ WHERE
|
|
|
+ AJ.FORWARDTIME >= @BEGINMONTH@
|
|
|
+ AND AJ.FORWARDTIME <= @ENDMONTH@
|
|
|
+ AND AJ.JOBSNAME IS NOT NULL
|
|
|
+ GROUP BY
|
|
|
+ GROUPING SETS ( ( AJ.USERCODE, AJ.STAFFNAME,AJ.GOODSMODEL, AJ.JOBSNAME),(AJ.USERCODE) )
|
|
|
+ ORDER BY
|
|
|
+ AJ.USERCODE,
|
|
|
+ AJ.STAFFNAME,
|
|
|
+ AJ.GOODSMODEL";
|
|
|
+ //获取查询条件
|
|
|
+ List<CDAParameter> sqlPara = new List<CDAParameter>();
|
|
|
+ sqlPara.Add(new CDAParameter("BEGINMONTH", context.Request["datebeginMaster"].Substring(0, context.Request["datebeginMaster"].IndexOf("-")) + context.Request["datebeginMaster"].Substring(context.Request["datebeginMaster"].IndexOf("-") + 1).PadLeft(2, '0')));
|
|
|
+ sqlPara.Add(new CDAParameter("ENDMONTH", context.Request["dateendMaster"].Substring(0, context.Request["dateendMaster"].IndexOf("-")) + context.Request["dateendMaster"].Substring(context.Request["dateendMaster"].IndexOf("-") + 1).PadLeft(2, '0')));
|
|
|
+
|
|
|
+ //获取分页参数
|
|
|
+ int page = HttpContext.Current.Request["page"] is object ? Convert.ToInt32(HttpContext.Current.Request["page"]) : 1;
|
|
|
+ int rows = HttpContext.Current.Request["rows"] is object ? Convert.ToInt32(HttpContext.Current.Request["rows"]) : 10;
|
|
|
+ string sort = HttpContext.Current.Request["sort"] is object ? HttpContext.Current.Request["sort"] : "m.REPORTCODE";
|
|
|
+ string order = HttpContext.Current.Request["order"] is object ? HttpContext.Current.Request["order"] : "";
|
|
|
+
|
|
|
+ //获取分页数据
|
|
|
+ int total = 0;
|
|
|
+ DataTable dt = conn.SelectPages(page, rows, out total, sqlStr, sqlPara.ToArray());
|
|
|
+ string jsonStr = new JsonResult(dt) { total = total }.ToJson();
|
|
|
+
|
|
|
+ ////直接获取不分页数据
|
|
|
+ //DataTable dt = conn.ExecuteDatatable(sqlStr, sqlPara.ToArray());
|
|
|
+ //string jsonStr = new JsonResult(dt) { total = dt.Rows.Count }.ToJson();
|
|
|
+ context.Response.Write(jsonStr);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ public bool IsReusable
|
|
|
+ {
|
|
|
+ get
|
|
|
+ {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+}
|