Pārlūkot izejas kodu

回收表的分页去除

姜永辉 5 mēneši atpakaļ
vecāks
revīzija
9e62096c5b

+ 459 - 0
wwwroot/mes/rpt/rpt017/rpt - 副本 (2).ashx

@@ -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;
+        }
+    }
+
+}

+ 8 - 8
wwwroot/mes/rpt/rpt031/rpt.ashx

@@ -174,19 +174,19 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                 //}
 
                 //获取分页参数
-                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"] : "";
-                string order = HttpContext.Current.Request["order"] is object ? HttpContext.Current.Request["order"] : "";
+                //int page = HttpContext.Current.Request["page"] is object ? Convert.ToInt32(HttpContext.Current.Request["page"]) : 1;
+                //int rows =   10000;
+                //string sort = HttpContext.Current.Request["sort"] is object ? HttpContext.Current.Request["sort"] : "";
+                //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.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();
+                DataTable dt = conn.ExecuteDatatable(sqlStr, sqlPara.ToArray());
+                string jsonStr = new JsonResult(dt) { total = dt.Rows.Count }.ToJson();
 
 
                 context.Response.Write(jsonStr);

+ 2 - 0
wwwroot/mes/rpt/rpt031/rpt_index.html

@@ -94,6 +94,7 @@
                         url: 'rpt.ashx?m=jiezhauang&id=' + request('id'),
                         fixWidth: 140,
                         mergeWidth: 80,
+                        
                         splitChar: '_'
                     });
                     t = 1
@@ -106,6 +107,7 @@
                         url: 'rpt.ashx?m=master&id=' + request('id'),
                         fixWidth: 140,
                         mergeWidth: 80,
+                        pagination: false,
                         splitChar: '_'
                     });
                     t = 2