ztl 2 лет назад
Родитель
Сommit
1e53abf7ab

+ 2111 - 0
wwwroot/mes/rpt2/rpt8009/rpt.ashx

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

+ 681 - 0
wwwroot/mes/rpt2/rpt8009/rpt2.ashx

@@ -0,0 +1,681 @@
+<%@ WebHandler Language="C#" Class="rpt" %>
+
+using System;
+using System.Web;
+using System.Web.SessionState;
+using System.Data;
+using System.Text;
+using System.Collections;
+using System.Collections.Generic;
+using Newtonsoft.Json;
+using Newtonsoft.Json.Linq;
+using Curtain.DataAccess;
+using DK.XuWei.WebMes;
+
+public class rpt : IHttpHandler, IReadOnlySessionState
+{
+    public void ProcessRequest(HttpContext context)
+    {
+        context.Response.ContentType = "text/plain";
+        using(IDataAccess conn = DataAccess.Create())
+        {
+            //主表
+            if(context.Request["m"].ToString()=="0")
+            {
+                DateTime dateBegin = Convert.ToDateTime(context.Request["datebeginMaster"]);
+                DateTime dateEnd = Convert.ToDateTime(context.Request["dateendMaster"]).AddDays(1);
+                string totalMaster = context.Request["totalMaster"].ToString();
+                string groutinglineId = context.Request["groutinglineMaster[]"] is object ? context.Request["groutinglineMaster[]"].ToString() : "0";
+                if (groutinglineId == "0" && context.Request["groutinglineMaster"] is object) groutinglineId = context.Request["groutinglineMaster"].ToString();
+                if (groutinglineId == "") groutinglineId = "0";
+                string highFlag = context.Request["highFlagMaster"];
+                if (highFlag == "") highFlag = "-1";
+                //读取报表数据
+                string sqlStr = @"
+WITH 
+注浆和成型报损 AS 
+(
+	SELECT
+		GROUPING_ID ( TO_CHAR( H.CREATETIME, 'YYYYMM' ) ) AS GID,
+		NVL(TO_CHAR( H.CREATETIME, 'YYYYMM' ),'合计') AS 时间,
+		
+		SUM(CASE WHEN ( H.DATATYPE = 1 AND (INSTR( GDD.GROUTINGLINECODE, 'A' ) = 1) AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1)  THEN 1 ELSE 0 END ) AS 注浆数_一部大件,
+		SUM(CASE WHEN ( H.DATATYPE = 1 AND (INSTR( GT.GOODSTYPECODE, '001002' ) = 1))  THEN 1 ELSE 0 END ) AS 注浆数_一部小件,
+		SUM(CASE WHEN ( H.DATATYPE = 1 AND (INSTR( GDD.GROUTINGLINECODE, 'A' ) = 1 OR INSTR( GT.GOODSTYPECODE, '001002' ) = 1)) THEN 1 ELSE 0 END ) AS 注浆数_一部全部,
+		SUM(CASE WHEN ( H.DATATYPE = 1 AND ((INSTR( GDD.GROUTINGLINECODE, 'B' ) = 1 OR INSTR( GDD.GROUTINGLINECODE, 'D' ) = 1) AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1 ))  THEN 1 ELSE 0 END ) AS 注浆数_二部全部,
+		SUM(CASE WHEN ( H.DATATYPE = 1 AND (INSTR( GDD.GROUTINGLINECODE, 'C' ) = 1 AND INSTR( gdd.GROUTINGLINECODE, 'A' ) = 4 )) THEN 1 ELSE 0 END ) AS 注浆数_三部全部,
+		COUNT(DECODE(H.DATATYPE,1,1,0)) AS 注浆数_合计,
+		
+		SUM(CASE WHEN ( H.DATATYPE = 2 AND (INSTR( GDD.GROUTINGLINECODE, 'A' ) = 1) AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1)  THEN 1 ELSE 0 END ) AS 注浆数撤销_一部大件,
+		SUM(CASE WHEN ( H.DATATYPE = 2 AND (INSTR( GT.GOODSTYPECODE, '001002' ) = 1))  THEN 1 ELSE 0 END ) AS 注浆数撤销_一部小件,
+		SUM(CASE WHEN ( H.DATATYPE = 2 AND (INSTR( GDD.GROUTINGLINECODE, 'A' ) = 1 OR INSTR( GT.GOODSTYPECODE, '001002' ) = 1)) THEN 1 ELSE 0 END ) AS 注浆数撤销_一部全部,
+		SUM(CASE WHEN ( H.DATATYPE = 2 AND ((INSTR( GDD.GROUTINGLINECODE, 'B' ) = 1 OR INSTR( GDD.GROUTINGLINECODE, 'D' ) = 1) AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1 ))  THEN 1 ELSE 0 END ) AS 注浆数撤销_二部全部,
+		SUM(CASE WHEN ( H.DATATYPE = 2 AND (INSTR( GDD.GROUTINGLINECODE, 'C' ) = 1 AND INSTR( gdd.GROUTINGLINECODE, 'A' ) = 4 )) THEN 1 ELSE 0 END ) AS 注浆数撤销_三部全部,
+		COUNT(DECODE(H.DATATYPE,2,1,0)) AS 注浆数撤销_合计,
+		
+		SUM(CASE WHEN ( H.DATATYPE = 3 AND (INSTR( GDD.GROUTINGLINECODE, 'A' ) = 1) AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1)  THEN 1 ELSE 0 END ) AS 成型报损_一部大件,
+		SUM(CASE WHEN ( H.DATATYPE = 3 AND (INSTR( GT.GOODSTYPECODE, '001002' ) = 1))  THEN 1 ELSE 0 END ) AS 成型报损_一部小件,
+		SUM(CASE WHEN ( H.DATATYPE = 3 AND (INSTR( GDD.GROUTINGLINECODE, 'A' ) = 1 OR INSTR( GT.GOODSTYPECODE, '001002' ) = 1)) THEN 1 ELSE 0 END ) AS 成型报损_一部全部,
+		SUM(CASE WHEN ( H.DATATYPE = 3 AND ((INSTR( GDD.GROUTINGLINECODE, 'B' ) = 1 OR INSTR( GDD.GROUTINGLINECODE, 'D' ) = 1) AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1 ))  THEN 1 ELSE 0 END ) AS 成型报损_二部全部,
+		SUM(CASE WHEN ( H.DATATYPE = 3 AND (INSTR( GDD.GROUTINGLINECODE, 'C' ) = 1 AND INSTR( gdd.GROUTINGLINECODE, 'A' ) = 4 )) THEN 1 ELSE 0 END ) AS 成型报损_三部全部,
+		COUNT(DECODE(H.DATATYPE,3,1,0)) AS 成型报损_合计,
+		
+		SUM(CASE WHEN ( H.DATATYPE = 4 AND (INSTR( GDD.GROUTINGLINECODE, 'A' ) = 1) AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1)  THEN 1 ELSE 0 END ) AS 成型报损撤销_一部大件,
+		SUM(CASE WHEN ( H.DATATYPE = 4 AND (INSTR( GT.GOODSTYPECODE, '001002' ) = 1))  THEN 1 ELSE 0 END ) AS 成型报损撤销_一部小件,
+		SUM(CASE WHEN ( H.DATATYPE = 4 AND (INSTR( GDD.GROUTINGLINECODE, 'A' ) = 1 OR INSTR( GT.GOODSTYPECODE, '001002' ) = 1)) THEN 1 ELSE 0 END ) AS 成型报损撤销_一部全部,
+		SUM(CASE WHEN ( H.DATATYPE = 4 AND ((INSTR( GDD.GROUTINGLINECODE, 'B' ) = 1 OR INSTR( GDD.GROUTINGLINECODE, 'D' ) = 1) AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1 ))  THEN 1 ELSE 0 END ) AS 成型报损撤销_二部全部,
+		SUM(CASE WHEN ( H.DATATYPE = 4 AND (INSTR( GDD.GROUTINGLINECODE, 'C' ) = 1 AND INSTR( gdd.GROUTINGLINECODE, 'A' ) = 4 )) THEN 1 ELSE 0 END ) AS 成型报损撤销_三部全部,
+		COUNT(DECODE(H.DATATYPE,4,1,0)) AS 成型报损撤销_合计
+		
+	FROM
+		TP_PM_GOODSCHANGEHISTORY H 
+		INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = H.GROUTINGDAILYDETAILID
+		INNER JOIN TP_PC_GROUTINGLINE GL ON GDD.GROUTINGLINEID = GL.GROUTINGLINEID
+		INNER JOIN TP_MST_GOODS G ON G.GOODSID = GDD.GOODSID
+		INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID 
+	WHERE
+		--H.DATATYPE = 2 --数据类型 (0:产品编码或SAP编码变更1:成型注浆 2:取消注浆3:成型损坯 4:撤销损坯11:在产清除 12:恢复清除51:成品交接 52:撤销交接)
+
+        -- lsq modify 20210810
+        -- begin
+        -- 	G.SCRAPSUMFLAG = '1'
+        ((INSTR( GDD.GROUTINGLINECODE, 'C' ) = 1 AND INSTR( GDD.GROUTINGLINECODE, 'A' ) = 4 ) OR INSTR( GDD.GROUTINGLINECODE, 'C' ) <> 1) 
+        -- end
+		AND (GL.GROUTINGLINEID IN ({GROUTINGLINEID}) OR '{GROUTINGLINEID}' = '0') 
+		AND (GL.HIGHPRESSUREFLAG = @HIGHPRESSUREFLAG@ OR @HIGHPRESSUREFLAG@ = '-1')
+		AND H.CREATETIME >= @DATEBEGIN@
+		AND H.CREATETIME < @DATEEND@
+	GROUP BY
+		GROUPING SETS ( TO_CHAR( H.CREATETIME, 'YYYYMM' ), ( ) )
+),
+半检不合格 AS 
+(
+	SELECT
+		GROUPING_ID ( TO_CHAR( S.SEMICHECKTIME, 'YYYYMM' ) ) AS GID,
+		NVL(TO_CHAR( S.SEMICHECKTIME, 'YYYYMM' ),'合计') AS 时间,
+		SUM(CASE WHEN (INSTR( S.GROUTINGLINECODE, 'A' ) = 1 AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1)  THEN 1 ELSE 0 END ) AS 半检不合格_一部大件,
+		SUM(CASE WHEN (INSTR( GT.GOODSTYPECODE, '001002' ) = 1)  THEN 1 ELSE 0 END ) AS 半检不合格_一部小件,
+		SUM(CASE WHEN (INSTR( S.GROUTINGLINECODE, 'A' ) = 1 OR INSTR( GT.GOODSTYPECODE, '001002' ) = 1 ) THEN 1 ELSE 0 END ) AS 半检不合格_一部全部,
+		SUM(CASE WHEN ((INSTR( S.GROUTINGLINECODE, 'B' ) = 1 OR INSTR( S.GROUTINGLINECODE, 'D' ) = 1) AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1 )  THEN 1 ELSE 0 END ) AS 半检不合格_二部全部,
+		SUM(CASE WHEN (INSTR( S.GROUTINGLINECODE, 'C' ) = 1 AND INSTR( S.GROUTINGLINECODE, 'A' ) = 4 ) THEN 1 ELSE 0 END ) AS 半检不合格_三部全部,
+		COUNT ( * ) AS 半检不合格_合计
+	FROM
+		TP_PM_SEMICHECK S
+		INNER JOIN TP_MST_GOODS G ON G.GOODSID = S.GOODSID
+		INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID 
+		INNER JOIN TP_PC_GROUTINGLINE GL ON S.GROUTINGLINEID = GL.GROUTINGLINEID
+	WHERE
+		S.SEMICHECKTYPE = 2
+		AND S.SEMICHECKTIME >= @DATEBEGIN@
+		AND S.SEMICHECKTIME < @DATEEND@
+		AND (S.GROUTINGLINEID IN ({GROUTINGLINEID}) OR '{GROUTINGLINEID}' = '0') 
+		AND (GL.HIGHPRESSUREFLAG = @HIGHPRESSUREFLAG@ OR @HIGHPRESSUREFLAG@ = '-1')
+		--AND S.SEMICHECKTYPE = 2 --1 返工 2 不合格
+		--AND S.RESEMICHECKTYPE = 0 --半检复检状态 (0:未复检、1:合格(返)、2:不合格(返))
+	GROUP BY
+		GROUPING SETS ( TO_CHAR( S.SEMICHECKTIME, 'YYYYMM' ), ( ) )
+),
+半检不合格撤销 AS
+(
+	SELECT
+		GROUPING_ID ( TO_CHAR( S.SEMICHECKTIME, 'YYYYMM' ) ) AS GID,
+		NVL(TO_CHAR( S.SEMICHECKTIME, 'YYYYMM' ),'合计') AS 时间,
+		SUM(CASE WHEN (INSTR( S.GROUTINGLINECODE, 'A' ) = 1 AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1)  THEN 1 ELSE 0 END ) AS 半检不合格_一部大件,
+		SUM(CASE WHEN (INSTR( GT.GOODSTYPECODE, '001002' ) = 1)  THEN 1 ELSE 0 END ) AS 半检不合格_一部小件,
+		SUM(CASE WHEN (INSTR( S.GROUTINGLINECODE, 'A' ) = 1 OR INSTR( GT.GOODSTYPECODE, '001002' ) = 1 ) THEN 1 ELSE 0 END ) AS 半检不合格_一部全部,
+		SUM(CASE WHEN ((INSTR( S.GROUTINGLINECODE, 'B' ) = 1 OR INSTR( S.GROUTINGLINECODE, 'D' ) = 1) AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1 )  THEN 1 ELSE 0 END ) AS 半检不合格_二部全部,
+		SUM(CASE WHEN (INSTR( S.GROUTINGLINECODE, 'C' ) = 1 AND INSTR( S.GROUTINGLINECODE, 'A' ) = 4 ) THEN 1 ELSE 0 END ) AS 半检不合格_三部全部,
+		COUNT( * ) AS 半检不合格_合计 
+	FROM
+		TP_PM_SEMICHECK S
+		INNER JOIN TP_MST_GOODS G ON G.GOODSID = S.GOODSID
+		INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID 
+		INNER JOIN TP_PC_GROUTINGLINE GL ON S.GROUTINGLINEID = GL.GROUTINGLINEID
+	WHERE
+		S.BACKOUTTIME >= @DATEBEGIN@
+		AND S.BACKOUTTIME < @DATEEND@
+		AND (S.GROUTINGLINEID IN ({GROUTINGLINEID}) OR '{GROUTINGLINEID}' = '0') 
+		AND (GL.HIGHPRESSUREFLAG = @HIGHPRESSUREFLAG@ OR @HIGHPRESSUREFLAG@ = '-1')
+		AND S.SEMICHECKTYPE = 2 --1 返工 2 不合格
+		AND S.RESEMICHECKTYPE = 0 --半检复检状态 (0:未复检、1:合格(返)、2:不合格(返))
+	GROUP BY
+		GROUPING SETS ( TO_CHAR( S.SEMICHECKTIME, 'YYYYMM' ), ( ) )
+),
+复检不合格 AS 
+(
+	SELECT
+		GROUPING_ID ( TO_CHAR( S.RESEMICHECKTIME, 'YYYYMM' ) ) AS GID,
+		NVL(TO_CHAR( S.RESEMICHECKTIME, 'YYYYMM' ),'合计') AS 时间,
+		SUM(CASE WHEN (INSTR( S.GROUTINGLINECODE, 'A' ) = 1 AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1)  THEN 1 ELSE 0 END ) AS 复检不合格_一部大件,
+		SUM(CASE WHEN (INSTR( GT.GOODSTYPECODE, '001002' ) = 1)  THEN 1 ELSE 0 END ) AS 复检不合格_一部小件,
+		SUM(CASE WHEN (INSTR( S.GROUTINGLINECODE, 'A' ) = 1 OR INSTR( GT.GOODSTYPECODE, '001002' ) = 1 ) THEN 1 ELSE 0 END ) AS 复检不合格_一部全部,
+		SUM(CASE WHEN ((INSTR( S.GROUTINGLINECODE, 'B' ) = 1 OR INSTR( S.GROUTINGLINECODE, 'D' ) = 1) AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1 )  THEN 1 ELSE 0 END ) AS 复检不合格_二部全部,
+		SUM(CASE WHEN (INSTR( S.GROUTINGLINECODE, 'C' ) = 1 AND INSTR( S.GROUTINGLINECODE, 'A' ) = 4 ) THEN 1 ELSE 0 END ) AS 复检不合格_三部全部,
+		COUNT ( * ) AS 复检不合格_合计
+	FROM
+		TP_PM_SEMICHECK S
+		INNER JOIN TP_MST_GOODS G ON G.GOODSID = S.GOODSID
+		INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID 
+		INNER JOIN TP_PC_GROUTINGLINE GL ON S.GROUTINGLINEID = GL.GROUTINGLINEID
+	WHERE
+		S.RESEMICHECKTYPE = 2
+		AND S.RESEMICHECKTIME >= @DATEBEGIN@
+		AND S.RESEMICHECKTIME < @DATEEND@
+		AND (S.GROUTINGLINEID IN ({GROUTINGLINEID}) OR '{GROUTINGLINEID}' = '0') 
+		AND (GL.HIGHPRESSUREFLAG = @HIGHPRESSUREFLAG@ OR @HIGHPRESSUREFLAG@ = '-1')
+		--AND S.SEMICHECKTYPE = 2 --1 返工 2 不合格
+		--AND S.RESEMICHECKTYPE = 0 --半检复检状态 (0:未复检、1:合格(返)、2:不合格(返))
+	GROUP BY
+		GROUPING SETS ( TO_CHAR( S.RESEMICHECKTIME, 'YYYYMM' ), ( ) )
+),
+复检不合格撤销 AS 
+(
+	SELECT
+		GROUPING_ID ( TO_CHAR( S.RESEMICHECKTIME, 'YYYYMM' ) ) AS GID,
+		NVL(TO_CHAR( S.RESEMICHECKTIME, 'YYYYMM' ),'合计') AS 时间,
+		SUM(CASE WHEN (INSTR( S.GROUTINGLINECODE, 'A' ) = 1 AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1)  THEN 1 ELSE 0 END ) AS 复检不合格_一部大件,
+		SUM(CASE WHEN (INSTR( GT.GOODSTYPECODE, '001002' ) = 1)  THEN 1 ELSE 0 END ) AS 复检不合格_一部小件,
+		SUM(CASE WHEN (INSTR( S.GROUTINGLINECODE, 'A' ) = 1 OR INSTR( GT.GOODSTYPECODE, '001002' ) = 1 ) THEN 1 ELSE 0 END ) AS 复检不合格_一部全部,
+		SUM(CASE WHEN ((INSTR( S.GROUTINGLINECODE, 'B' ) = 1 OR INSTR( S.GROUTINGLINECODE, 'D' ) = 1) AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1 )  THEN 1 ELSE 0 END ) AS 复检不合格_二部全部,
+		SUM(CASE WHEN (INSTR( S.GROUTINGLINECODE, 'C' ) = 1 AND INSTR( S.GROUTINGLINECODE, 'A' ) = 4 ) THEN 1 ELSE 0 END ) AS 复检不合格_三部全部,
+		COUNT ( * ) AS 复检不合格_合计
+	FROM
+		TP_PM_SEMICHECK S
+		INNER JOIN TP_MST_GOODS G ON G.GOODSID = S.GOODSID
+		INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID 
+		INNER JOIN TP_PC_GROUTINGLINE GL ON S.GROUTINGLINEID = GL.GROUTINGLINEID
+	WHERE
+		S.RESEMICHECKTYPE = 2
+		AND S.BACKOUTTIME >= @DATEBEGIN@
+		AND S.BACKOUTTIME < @DATEEND@
+		AND (S.GROUTINGLINEID IN ({GROUTINGLINEID}) OR '{GROUTINGLINEID}' = '0') 
+		AND (GL.HIGHPRESSUREFLAG = @HIGHPRESSUREFLAG@ OR @HIGHPRESSUREFLAG@ = '-1')
+		--AND S.SEMICHECKTYPE = 2 --1 返工 2 不合格
+		--AND S.RESEMICHECKTYPE = 0 --半检复检状态 (0:未复检、1:合格(返)、2:不合格(返))
+	GROUP BY
+		GROUPING SETS ( TO_CHAR( S.RESEMICHECKTIME, 'YYYYMM' ), ( ) )
+),
+半成品损坯数 AS
+(
+	SELECT
+		GROUPING_ID ( TO_CHAR( P.AUDITDATE, 'YYYYMM' ) ) AS GID,
+		NVL(TO_CHAR( P.AUDITDATE, 'YYYYMM' ),'合计') AS 时间,
+		SUM(CASE WHEN (INSTR( P.GROUTINGLINECODE, 'A' ) = 1) AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1  THEN 1 ELSE 0 END ) AS 半成品损坯数_一部大件,
+		SUM(CASE WHEN (INSTR( GT.GOODSTYPECODE, '001002' ) = 1)  THEN 1 ELSE 0 END ) AS 半成品损坯数_一部小件,
+		SUM(CASE WHEN (INSTR( P.GROUTINGLINECODE, 'A' ) = 1 OR INSTR( GT.GOODSTYPECODE, '001002' ) = 1 ) THEN 1 ELSE 0 END ) AS 半成品损坯数_一部全部,
+		SUM(CASE WHEN ((INSTR( P.GROUTINGLINECODE, 'B' ) = 1 OR INSTR( P.GROUTINGLINECODE, 'D' ) = 1) AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1 )  THEN 1 ELSE 0 END ) AS 半成品损坯数_二部全部,
+		SUM(CASE WHEN (INSTR( P.GROUTINGLINECODE, 'C' ) = 1 AND INSTR( P.GROUTINGLINECODE, 'A' ) = 4 ) THEN 1 ELSE 0 END ) AS 半成品损坯数_三部全部,
+		COUNT( * ) AS 合计 
+	FROM
+		TP_PM_SCRAPPRODUCT P
+		INNER JOIN TP_MST_GOODS G ON G.GOODSID = P.GOODSID
+		INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID
+		INNER JOIN TP_PC_GROUTINGLINE GL ON P.GROUTINGLINEID = GL.GROUTINGLINEID
+	WHERE
+		P.VALUEFLAG = 1 
+		AND P.AUDITSTATUS = '1' 
+		AND P.GOODSLEVELTYPEID IN ( 8, 9 ) -- 3废品、7次品、8损坯、9干补、10丢失、13不合格、14不合格(返)
+		AND P.ISREFIRE <> '6' --非重烧品
+		AND P.SCRAPTYPE = '0' --废弃类型 (0:损坯;1:质量登记;2:半检;3:半检复检)
+		AND P.AUDITDATE >= @DATEBEGIN@
+		AND P.AUDITDATE < @DATEEND@
+		AND (P.GROUTINGLINEID IN ({GROUTINGLINEID}) OR '{GROUTINGLINEID}' = '0') 
+		AND (GL.HIGHPRESSUREFLAG = @HIGHPRESSUREFLAG@ OR @HIGHPRESSUREFLAG@ = '-1')
+	GROUP BY
+		GROUPING SETS ( TO_CHAR( P.AUDITDATE, 'YYYYMM' ), ( ) )
+),
+干补回收数 AS
+(
+	SELECT
+		GROUPING_ID ( TO_CHAR( P.CREATETIME, 'YYYYMM' ) ) AS GID,
+		NVL(TO_CHAR( P.CREATETIME, 'YYYYMM' ),'合计') AS 时间,
+		SUM(CASE WHEN (INSTR( P.GROUTINGLINECODE, 'A' ) = 1) AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1  THEN 1 ELSE 0 END ) AS 干补回收数_一部大件,
+		SUM(CASE WHEN (INSTR( GT.GOODSTYPECODE, '001002' ) = 1)  THEN 1 ELSE 0 END ) AS 干补回收数_一部小件,
+		SUM(CASE WHEN (INSTR( P.GROUTINGLINECODE, 'A' ) = 1 OR INSTR( GT.GOODSTYPECODE, '001002' ) = 1 ) THEN 1 ELSE 0 END ) AS 干补回收数_一部全部,
+		SUM(CASE WHEN ((INSTR( P.GROUTINGLINECODE, 'B' ) = 1 OR INSTR( P.GROUTINGLINECODE, 'D' ) = 1) AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1 )  THEN 1 ELSE 0 END ) AS 干补回收数_二部全部,
+		SUM(CASE WHEN (INSTR( P.GROUTINGLINECODE, 'C' ) = 1 AND INSTR( P.GROUTINGLINECODE, 'A' ) = 4 ) THEN 1 ELSE 0 END ) AS 干补回收数_三部全部,
+		COUNT( * ) AS 干补回收数_合计
+	FROM
+		TP_PM_PRODUCTIONDATA P
+		INNER JOIN TP_MST_GOODS G ON G.GOODSID = P.GOODSID
+		INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID 
+		INNER JOIN TP_PC_GROUTINGLINE GL ON P.GROUTINGLINEID = GL.GROUTINGLINEID
+	WHERE
+		P.CREATETIME >= @DATEBEGIN@
+		AND P.CREATETIME < @DATEEND@
+		AND P.PROCEDUREID IN ( 18 ) -- 18 10-0 干补
+		AND (P.GROUTINGLINEID IN ({GROUTINGLINEID}) OR '{GROUTINGLINEID}' = '0') 
+		AND (GL.HIGHPRESSUREFLAG = @HIGHPRESSUREFLAG@ OR @HIGHPRESSUREFLAG@ = '-1')
+	GROUP BY
+		GROUPING SETS ( TO_CHAR( P.CREATETIME, 'YYYYMM' ), ( ) )
+),
+干补回收数撤销 AS
+(
+	SELECT
+		GROUPING_ID ( TO_CHAR( P.CREATETIME, 'YYYYMM' ) ) AS GID,
+		NVL(TO_CHAR( P.CREATETIME, 'YYYYMM' ),'合计') AS 时间,
+		SUM(CASE WHEN (INSTR( P.GROUTINGLINECODE, 'A' ) = 1) AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1  THEN 1 ELSE 0 END ) AS 干补回收数_一部大件,
+		SUM(CASE WHEN (INSTR( GT.GOODSTYPECODE, '001002' ) = 1)  THEN 1 ELSE 0 END ) AS 干补回收数_一部小件,
+		SUM(CASE WHEN (INSTR( P.GROUTINGLINECODE, 'A' ) = 1 OR INSTR( GT.GOODSTYPECODE, '001002' ) = 1 ) THEN 1 ELSE 0 END ) AS 干补回收数_一部全部,
+		SUM(CASE WHEN ((INSTR( P.GROUTINGLINECODE, 'B' ) = 1 OR INSTR( P.GROUTINGLINECODE, 'D' ) = 1) AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1 )  THEN 1 ELSE 0 END ) AS 干补回收数_二部全部,
+		SUM(CASE WHEN (INSTR( P.GROUTINGLINECODE, 'C' ) = 1 AND INSTR( P.GROUTINGLINECODE, 'A' ) = 4 ) THEN 1 ELSE 0 END ) AS 干补回收数_三部全部,
+		COUNT( * ) AS 干补回收数_合计
+	FROM
+		TP_PM_PRODUCTIONDATA P
+		INNER JOIN TP_MST_GOODS G ON G.GOODSID = P.GOODSID
+		INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID 
+		INNER JOIN TP_PC_GROUTINGLINE GL ON P.GROUTINGLINEID = GL.GROUTINGLINEID
+	WHERE
+		P.BACKOUTTIME >= @DATEBEGIN@
+		AND P.BACKOUTTIME < @DATEEND@
+		AND P.PROCEDUREID IN ( 18 ) -- 18 10-0 干补
+		AND (P.GROUTINGLINEID IN ({GROUTINGLINEID}) OR '{GROUTINGLINEID}' = '0') 
+		AND (GL.HIGHPRESSUREFLAG = @HIGHPRESSUREFLAG@ OR @HIGHPRESSUREFLAG@ = '-1')
+	GROUP BY
+		GROUPING SETS ( TO_CHAR( P.CREATETIME, 'YYYYMM' ), ( ) )
+),
+出窑数 AS
+(
+	SELECT
+		GROUPING_ID ( TO_CHAR( P.CREATETIME, 'YYYYMM' ) ) AS GID,
+		NVL(TO_CHAR( P.CREATETIME, 'YYYYMM' ),'合计') AS 时间,
+		SUM(CASE WHEN (INSTR( P.GROUTINGLINECODE, 'A' ) = 1) AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1  THEN 1 ELSE 0 END ) AS 出窑数_一部大件,
+		SUM(CASE WHEN (INSTR( GT.GOODSTYPECODE, '001002' ) = 1)  THEN 1 ELSE 0 END ) AS 出窑数_一部小件,
+		SUM(CASE WHEN (INSTR( P.GROUTINGLINECODE, 'A' ) = 1 OR INSTR( GT.GOODSTYPECODE, '001002' ) = 1 ) THEN 1 ELSE 0 END ) AS 出窑数_一部全部,
+		SUM(CASE WHEN ((INSTR( P.GROUTINGLINECODE, 'B' ) = 1 OR INSTR( P.GROUTINGLINECODE, 'D' ) = 1) AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1 )  THEN 1 ELSE 0 END ) AS 出窑数_二部全部,
+		SUM(CASE WHEN (INSTR( P.GROUTINGLINECODE, 'C' ) = 1 AND INSTR( P.GROUTINGLINECODE, 'A' ) = 4 ) THEN 1 ELSE 0 END ) AS 出窑数_三部全部,
+		COUNT( * ) AS 出窑数_合计 
+	FROM
+		TP_PM_PRODUCTIONDATA P
+		INNER JOIN TP_MST_GOODS G ON G.GOODSID = P.GOODSID
+		INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID 
+		INNER JOIN TP_PC_GROUTINGLINE GL ON P.GROUTINGLINEID = GL.GROUTINGLINEID
+	WHERE
+		P.CREATETIME >= @DATEBEGIN@
+		AND P.CREATETIME < @DATEEND@
+		AND (
+			( P.PROCEDUREID = 11 AND P.VALUEFLAG = '1' ) -- 7-1成检出窑交接(用于一车间二车间)
+			OR ( P.PROCEDUREID = 104 AND P.ISREFIRE = '0' AND P.CHECKFLAG = '1' )  --3#成检交接(用于三车间)
+			) 
+		AND (P.GROUTINGLINEID IN ({GROUTINGLINEID}) OR '{GROUTINGLINEID}' = '0') 
+		AND (GL.HIGHPRESSUREFLAG = @HIGHPRESSUREFLAG@ OR @HIGHPRESSUREFLAG@ = '-1')
+	GROUP BY
+		GROUPING SETS ( TO_CHAR( P.CREATETIME, 'YYYYMM' ), ( ) )
+),
+质量登记次品数 AS
+(
+	SELECT
+		GROUPING_ID ( TO_CHAR( P.CREATETIME, 'YYYYMM' ) ) AS GID,
+		NVL(TO_CHAR( P.CREATETIME, 'YYYYMM' ),'合计') AS 时间,
+		SUM(CASE WHEN P.ISREFIRE = 0 AND (INSTR( P.GROUTINGLINECODE, 'A' ) = 1) AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1  THEN 1 ELSE 0 END ) AS 质量登记次品数_一部大件,
+		SUM(CASE WHEN P.ISREFIRE = 0 AND (INSTR( GT.GOODSTYPECODE, '001002' ) = 1)  THEN 1 ELSE 0 END ) AS 质量登记次品数_一部小件,
+		SUM(CASE WHEN P.ISREFIRE = 0 AND (INSTR( P.GROUTINGLINECODE, 'A' ) = 1 OR INSTR( GT.GOODSTYPECODE, '001002' ) = 1 ) THEN 1 ELSE 0 END ) AS 质量登记次品数_一部全部,
+		SUM(CASE WHEN P.ISREFIRE = 0 AND ((INSTR( P.GROUTINGLINECODE, 'B' ) = 1 OR INSTR( P.GROUTINGLINECODE, 'D' ) = 1) AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1 )  THEN 1 ELSE 0 END ) AS 质量登记次品数_二部全部,
+		SUM(CASE WHEN P.ISREFIRE = 0 AND (INSTR( P.GROUTINGLINECODE, 'C' ) = 1 AND INSTR( P.GROUTINGLINECODE, 'A' ) = 4 ) THEN 1 ELSE 0 END ) AS 质量登记次品数_三部全部,
+		SUM( DECODE(P.ISREFIRE,0,1,0) ) AS 质量登记次品数_合计,
+		SUM(CASE WHEN P.ISREFIRE = 6 AND (INSTR( P.GROUTINGLINECODE, 'A' ) = 1) AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1  THEN 1 ELSE 0 END ) AS 重烧登记次品数_一部大件,
+		SUM(CASE WHEN P.ISREFIRE = 6 AND (INSTR( GT.GOODSTYPECODE, '001002' ) = 1)  THEN 1 ELSE 0 END ) AS 重烧登记次品数_一部小件,
+		SUM(CASE WHEN P.ISREFIRE = 6 AND (INSTR( P.GROUTINGLINECODE, 'A' ) = 1 OR INSTR( GT.GOODSTYPECODE, '001002' ) = 1 ) THEN 1 ELSE 0 END ) AS 重烧登记次品数_一部全部,
+		SUM(CASE WHEN P.ISREFIRE = 6 AND ((INSTR( P.GROUTINGLINECODE, 'B' ) = 1 OR INSTR( P.GROUTINGLINECODE, 'D' ) = 1) AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1 )  THEN 1 ELSE 0 END ) AS 重烧登记次品数_二部全部,
+		SUM(CASE WHEN P.ISREFIRE = 6 AND (INSTR( P.GROUTINGLINECODE, 'C' ) = 1 AND INSTR( P.GROUTINGLINECODE, 'A' ) = 4 ) THEN 1 ELSE 0 END ) AS 重烧登记次品数_三部全部,
+		SUM( DECODE(P.ISREFIRE,6,1,0) ) AS 重烧登记次品数_合计
+	FROM
+		TP_PM_PRODUCTIONDATA P
+		INNER JOIN TP_MST_GOODS G ON G.GOODSID = P.GOODSID
+		INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID 
+		INNER JOIN TP_PC_GROUTINGLINE GL ON P.GROUTINGLINEID = GL.GROUTINGLINEID
+	WHERE
+		P.CREATETIME >= @DATEBEGIN@
+		AND P.CREATETIME < @DATEEND@
+		AND P.PROCEDUREID IN ( 12, 59, 105 ) --8-1质量登记 8-2重烧质量登记 3#质量登记
+		AND P.GOODSLEVELTYPEID = 7 --产品分级类别 (1无缺陷、2有缺陷、3废品、4正品、5副品、6重烧、7次品、9干补)
+		AND (P.GROUTINGLINEID IN ({GROUTINGLINEID}) OR '{GROUTINGLINEID}' = '0') 
+		AND (GL.HIGHPRESSUREFLAG = @HIGHPRESSUREFLAG@ OR @HIGHPRESSUREFLAG@ = '-1')
+	GROUP BY
+		GROUPING SETS ( TO_CHAR( P.CREATETIME, 'YYYYMM' ), ( ) )
+),
+质量登记次品数改判 AS
+(
+	SELECT
+		GROUPING_ID ( TO_CHAR( P.BACKOUTTIME, 'YYYYMM' ) ) AS GID,
+		NVL(TO_CHAR( P.BACKOUTTIME, 'YYYYMM' ),'合计') AS 时间,
+		SUM(CASE WHEN P.ISREFIRE = 0 AND (INSTR( P.GROUTINGLINECODE, 'A' ) = 1) AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1  THEN 1 ELSE 0 END ) AS 质量登记次品数_一部大件,
+		SUM(CASE WHEN P.ISREFIRE = 0 AND (INSTR( GT.GOODSTYPECODE, '001002' ) = 1)  THEN 1 ELSE 0 END ) AS 质量登记次品数_一部小件,
+		SUM(CASE WHEN P.ISREFIRE = 0 AND (INSTR( P.GROUTINGLINECODE, 'A' ) = 1 OR INSTR( GT.GOODSTYPECODE, '001002' ) = 1 ) THEN 1 ELSE 0 END ) AS 质量登记次品数_一部全部,
+		SUM(CASE WHEN P.ISREFIRE = 0 AND ((INSTR( P.GROUTINGLINECODE, 'B' ) = 1 OR INSTR( P.GROUTINGLINECODE, 'D' ) = 1) AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1 )  THEN 1 ELSE 0 END ) AS 质量登记次品数_二部全部,
+		SUM(CASE WHEN P.ISREFIRE = 0 AND (INSTR( P.GROUTINGLINECODE, 'C' ) = 1 AND INSTR( P.GROUTINGLINECODE, 'A' ) = 4 ) THEN 1 ELSE 0 END ) AS 质量登记次品数_三部全部,
+		SUM( DECODE(P.ISREFIRE,0,1,0) ) AS 质量登记次品数_合计,
+		SUM(CASE WHEN P.ISREFIRE = 6 AND (INSTR( P.GROUTINGLINECODE, 'A' ) = 1) AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1  THEN 1 ELSE 0 END ) AS 重烧登记次品数_一部大件,
+		SUM(CASE WHEN P.ISREFIRE = 6 AND (INSTR( GT.GOODSTYPECODE, '001002' ) = 1)  THEN 1 ELSE 0 END ) AS 重烧登记次品数_一部小件,
+		SUM(CASE WHEN P.ISREFIRE = 6 AND (INSTR( P.GROUTINGLINECODE, 'A' ) = 1 OR (INSTR( P.GROUTINGLINECODE, 'D' ) = 1 AND INSTR( GT.GOODSTYPECODE, '001002' ) = 1) ) THEN 1 ELSE 0 END ) AS 重烧登记次品数_一部全部,
+		SUM(CASE WHEN P.ISREFIRE = 6 AND ((INSTR( P.GROUTINGLINECODE, 'B' ) = 1 OR INSTR( P.GROUTINGLINECODE, 'D' ) = 1) AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1 )  THEN 1 ELSE 0 END ) AS 重烧登记次品数_二部全部,
+		SUM(CASE WHEN P.ISREFIRE = 6 AND (INSTR( P.GROUTINGLINECODE, 'C' ) = 1 AND INSTR( P.GROUTINGLINECODE, 'A' ) = 4 ) THEN 1 ELSE 0 END ) AS 重烧登记次品数_三部全部,
+		SUM( DECODE(P.ISREFIRE,6,1,0) ) AS 重烧登记次品数_合计
+	FROM
+		TP_PM_PRODUCTIONDATA P
+		INNER JOIN TP_MST_GOODS G ON G.GOODSID = P.GOODSID
+		INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID 
+		INNER JOIN TP_PC_GROUTINGLINE GL ON P.GROUTINGLINEID = GL.GROUTINGLINEID
+	WHERE
+		P.BACKOUTTIME >= @DATEBEGIN@
+		AND P.BACKOUTTIME < @DATEEND@
+		AND P.PROCEDUREID IN ( 12, 59, 105 ) --8-1质量登记 8-2重烧质量登记 3#质量登记
+		AND P.GOODSLEVELTYPEID = 7 --产品分级类别 (1无缺陷、2有缺陷、3废品、4正品、5副品、6重烧、7次品、9干补)
+		AND (P.GROUTINGLINEID IN ({GROUTINGLINEID}) OR '{GROUTINGLINEID}' = '0') 
+		AND (GL.HIGHPRESSUREFLAG = @HIGHPRESSUREFLAG@ OR @HIGHPRESSUREFLAG@ = '-1')
+	GROUP BY
+		GROUPING SETS ( TO_CHAR( P.BACKOUTTIME, 'YYYYMM' ), ( ) )
+),
+重烧损坯数 AS
+(
+	SELECT
+		GROUPING_ID ( TO_CHAR( P.AUDITDATE, 'YYYYMM' ) ) AS GID,
+		NVL(TO_CHAR( P.AUDITDATE, 'YYYYMM' ),'合计') AS 时间,
+		SUM(CASE WHEN (INSTR( P.GROUTINGLINECODE, 'A' ) = 1) AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1  THEN 1 ELSE 0 END ) AS 重烧损坯数_一部大件,
+		SUM(CASE WHEN (INSTR( GT.GOODSTYPECODE, '001002' ) = 1)  THEN 1 ELSE 0 END ) AS 重烧损坯数_一部小件,
+		SUM(CASE WHEN (INSTR( P.GROUTINGLINECODE, 'A' ) = 1 OR INSTR( GT.GOODSTYPECODE, '001002' ) = 1 ) THEN 1 ELSE 0 END ) AS 重烧损坯数_一部全部,
+		SUM(CASE WHEN ((INSTR( P.GROUTINGLINECODE, 'B' ) = 1 OR INSTR( P.GROUTINGLINECODE, 'D' ) = 1) AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1 )  THEN 1 ELSE 0 END ) AS 重烧损坯数_二部全部,
+		SUM(CASE WHEN (INSTR( P.GROUTINGLINECODE, 'C' ) = 1 AND INSTR( P.GROUTINGLINECODE, 'A' ) = 4 ) THEN 1 ELSE 0 END ) AS 重烧损坯数_三部全部,
+		COUNT( * ) AS 重烧损坯数_数量 
+	FROM
+		TP_PM_SCRAPPRODUCT P
+		INNER JOIN TP_MST_GOODS G ON G.GOODSID = P.GOODSID
+		INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID 
+		INNER JOIN TP_PC_GROUTINGLINE GL ON P.GROUTINGLINEID = GL.GROUTINGLINEID
+	WHERE
+		P.AUDITSTATUS = '1' 
+		AND P.GOODSLEVELTYPEID IN ( 8, 9 ) -- 3废品、7次品、8损坯、9干补、10丢失、13不合格、14不合格(返)
+		AND P.SCRAPTYPE = '0' --废弃类型 (0:损坯;1:质量登记;2:半检;3:半检复检)
+		AND P.AUDITDATE >= @DATEBEGIN@
+		AND P.AUDITDATE < @DATEEND@
+		AND P.PROCEDUREID IN ( 57, 60, 14, 16, 113 ) --57 4-5重烧交接 60 4-6重烧补釉 14 4-7重烧登窑 16 6-2重烧卸窑 113 3#冷补
+		AND (P.GROUTINGLINEID IN ({GROUTINGLINEID}) OR '{GROUTINGLINEID}' = '0') 
+		AND (GL.HIGHPRESSUREFLAG = @HIGHPRESSUREFLAG@ OR @HIGHPRESSUREFLAG@ = '-1')
+	GROUP BY
+		GROUPING SETS ( TO_CHAR( P.AUDITDATE, 'YYYYMM' ), ( ) )
+),
+重烧损坯数撤销 AS
+(
+	SELECT
+		GROUPING_ID ( TO_CHAR( P.AUDITDATE, 'YYYYMM' ) ) AS GID,
+		NVL(TO_CHAR( P.AUDITDATE, 'YYYYMM' ),'合计') AS 时间,
+		SUM(CASE WHEN (INSTR( P.GROUTINGLINECODE, 'A' ) = 1) AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1  THEN 1 ELSE 0 END ) AS 重烧损坯数_一部大件,
+		SUM(CASE WHEN (INSTR( GT.GOODSTYPECODE, '001002' ) = 1)  THEN 1 ELSE 0 END ) AS 重烧损坯数_一部小件,
+		SUM(CASE WHEN (INSTR( P.GROUTINGLINECODE, 'A' ) = 1 OR INSTR( GT.GOODSTYPECODE, '001002' ) = 1 ) THEN 1 ELSE 0 END ) AS 重烧损坯数_一部全部,
+		SUM(CASE WHEN ((INSTR( P.GROUTINGLINECODE, 'B' ) = 1 OR INSTR( P.GROUTINGLINECODE, 'D' ) = 1) AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1 )  THEN 1 ELSE 0 END ) AS 重烧损坯数_二部全部,
+		SUM(CASE WHEN (INSTR( P.GROUTINGLINECODE, 'C' ) = 1 AND INSTR( P.GROUTINGLINECODE, 'A' ) = 4 ) THEN 1 ELSE 0 END ) AS 重烧损坯数_三部全部,
+		COUNT( * ) AS 重烧损坯数_数量 
+	FROM
+		TP_PM_SCRAPPRODUCT P
+		INNER JOIN TP_MST_GOODS G ON G.GOODSID = P.GOODSID
+		INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID 
+		INNER JOIN TP_PC_GROUTINGLINE GL ON P.GROUTINGLINEID = GL.GROUTINGLINEID
+	WHERE
+		P.AUDITSTATUS = '1' 
+		AND P.GOODSLEVELTYPEID IN ( 8, 9 ) -- 3废品、7次品、8损坯、9干补、10丢失、13不合格、14不合格(返)
+		AND P.SCRAPTYPE = '0' --废弃类型 (0:损坯;1:质量登记;2:半检;3:半检复检)
+		AND P.BACKOUTTIME >= @DATEBEGIN@
+		AND P.BACKOUTTIME < @DATEEND@
+		AND P.PROCEDUREID IN ( 57, 60, 14, 16, 113 ) --57 4-5重烧交接 60 4-6重烧补釉 14 4-7重烧登窑 16 6-2重烧卸窑 113 3#冷补
+		AND (P.GROUTINGLINEID IN ({GROUTINGLINEID}) OR '{GROUTINGLINEID}' = '0') 
+		AND (GL.HIGHPRESSUREFLAG = @HIGHPRESSUREFLAG@ OR @HIGHPRESSUREFLAG@ = '-1')
+	GROUP BY
+		GROUPING SETS ( TO_CHAR( P.AUDITDATE, 'YYYYMM' ), ( ) )
+),
+回收数 AS
+(
+	SELECT
+		GROUPING_ID ( TO_CHAR( P.CREATETIME, 'YYYYMM' ) ) AS GID,
+		NVL(TO_CHAR( P.CREATETIME, 'YYYYMM' ),'合计') AS 时间,
+		SUM(CASE WHEN (INSTR( P.GROUTINGLINECODE, 'A' ) = 1) AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1  THEN 1 ELSE 0 END ) AS 回收数_一部大件,
+		SUM(CASE WHEN (INSTR( GT.GOODSTYPECODE, '001002' ) = 1)  THEN 1 ELSE 0 END ) AS 回收数_一部小件,
+		SUM(CASE WHEN (INSTR( P.GROUTINGLINECODE, 'A' ) = 1 OR INSTR( GT.GOODSTYPECODE, '001002' ) = 1 ) THEN 1 ELSE 0 END ) AS 回收数_一部全部,
+		SUM(CASE WHEN ((INSTR( P.GROUTINGLINECODE, 'B' ) = 1 OR INSTR( P.GROUTINGLINECODE, 'D' ) = 1) AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1 )  THEN 1 ELSE 0 END ) AS 回收数_二部全部,
+		SUM(CASE WHEN (INSTR( P.GROUTINGLINECODE, 'C' ) = 1 AND INSTR( P.GROUTINGLINECODE, 'A' ) = 4 ) THEN 1 ELSE 0 END ) AS 回收数_三部全部,
+		COUNT( * ) AS 回收数_合计
+	FROM
+		TP_PM_PRODUCTIONDATA P
+		INNER JOIN TP_MST_GOODS G ON G.GOODSID = P.GOODSID
+		INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID 
+		INNER JOIN TP_PC_GROUTINGLINE GL ON P.GROUTINGLINEID = GL.GROUTINGLINEID
+	WHERE
+		P.CREATETIME >= @DATEBEGIN@
+		AND P.CREATETIME < @DATEEND@
+		AND P.PROCEDUREID IN ( 80 ) -- 80 10-2回收
+		AND (P.GROUTINGLINEID IN ({GROUTINGLINEID}) OR '{GROUTINGLINEID}' = '0') 
+		AND (GL.HIGHPRESSUREFLAG = @HIGHPRESSUREFLAG@ OR @HIGHPRESSUREFLAG@ = '-1')
+	GROUP BY
+		GROUPING SETS ( TO_CHAR( P.CREATETIME, 'YYYYMM' ), ( ) )
+),
+回收数撤销 AS
+(
+	SELECT
+		GROUPING_ID ( TO_CHAR( P.CREATETIME, 'YYYYMM' ) ) AS GID,
+		NVL(TO_CHAR( P.CREATETIME, 'YYYYMM' ),'合计') AS 时间,
+		SUM(CASE WHEN (INSTR( P.GROUTINGLINECODE, 'A' ) = 1) AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1  THEN 1 ELSE 0 END ) AS 回收数_一部大件,
+		SUM(CASE WHEN (INSTR( GT.GOODSTYPECODE, '001002' ) = 1)  THEN 1 ELSE 0 END ) AS 回收数_一部小件,
+		SUM(CASE WHEN (INSTR( P.GROUTINGLINECODE, 'A' ) = 1 OR INSTR( GT.GOODSTYPECODE, '001002' ) = 1 ) THEN 1 ELSE 0 END ) AS 回收数_一部全部,
+		SUM(CASE WHEN ((INSTR( P.GROUTINGLINECODE, 'B' ) = 1 OR INSTR( P.GROUTINGLINECODE, 'D' ) = 1) AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1 )  THEN 1 ELSE 0 END ) AS 回收数_二部全部,
+		SUM(CASE WHEN (INSTR( P.GROUTINGLINECODE, 'C' ) = 1 AND INSTR( P.GROUTINGLINECODE, 'A' ) = 4 ) THEN 1 ELSE 0 END ) AS 回收数_三部全部,
+		COUNT( * ) AS 回收数_合计
+	FROM
+		TP_PM_PRODUCTIONDATA P
+		INNER JOIN TP_MST_GOODS G ON G.GOODSID = P.GOODSID
+		INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID 
+		INNER JOIN TP_PC_GROUTINGLINE GL ON P.GROUTINGLINEID = GL.GROUTINGLINEID
+	WHERE
+		P.BACKOUTTIME >= @DATEBEGIN@
+		AND P.BACKOUTTIME < @DATEEND@
+		AND P.PROCEDUREID IN ( 80 ) -- 80 10-2回收
+		AND (P.GROUTINGLINEID IN ({GROUTINGLINEID}) OR '{GROUTINGLINEID}' = '0') 
+		AND (GL.HIGHPRESSUREFLAG = @HIGHPRESSUREFLAG@ OR @HIGHPRESSUREFLAG@ = '-1')
+	GROUP BY
+		GROUPING SETS ( TO_CHAR( P.CREATETIME, 'YYYYMM' ), ( ) )
+),
+入库数 AS 
+(
+	SELECT
+		GROUPING_ID ( TO_CHAR( F.FHTIME, 'YYYYMM' ) ) AS GID,
+		NVL(TO_CHAR( F.FHTIME, 'YYYYMM' ),'合计') AS 时间,
+		SUM(CASE WHEN (INSTR( F.GROUTINGLINECODE, 'A' ) = 1) AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1  THEN 1 ELSE 0 END ) AS 入库数_一部大件,
+		SUM(CASE WHEN (INSTR( GT.GOODSTYPECODE, '001002' ) = 1)  THEN 1 ELSE 0 END ) AS 入库数_一部小件,
+		SUM(CASE WHEN (INSTR( F.GROUTINGLINECODE, 'A' ) = 1 OR INSTR( GT.GOODSTYPECODE, '001002' ) = 1 ) THEN 1 ELSE 0 END ) AS 入库数_一部全部,
+		SUM(CASE WHEN ((INSTR( F.GROUTINGLINECODE, 'B' ) = 1 OR INSTR( F.GROUTINGLINECODE, 'D' ) = 1) AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1 )  THEN 1 ELSE 0 END ) AS 入库数_二部全部,
+		SUM(CASE WHEN (INSTR( F.GROUTINGLINECODE, 'C' ) = 1 AND INSTR( F.GROUTINGLINECODE, 'A' ) = 4 ) THEN 1 ELSE 0 END ) AS 入库数_三部全部,
+		COUNT( * ) AS 入库数_合计 
+	FROM
+		TP_PM_FINISHEDPRODUCT F
+		INNER JOIN TP_MST_GOODS G ON G.GOODSID = F.GOODSID
+		INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID 
+		INNER JOIN TP_PC_GROUTINGLINE GL ON F.GROUTINGLINEID = GL.GROUTINGLINEID
+	WHERE
+		F.VALUEFLAG = 1 
+		AND F.FHTIME >= @DATEBEGIN@
+		AND F.FHTIME < @DATEEND@
+		AND (F.GROUTINGLINEID IN ({GROUTINGLINEID}) OR '{GROUTINGLINEID}' = '0') 
+		AND (GL.HIGHPRESSUREFLAG = @HIGHPRESSUREFLAG@ OR @HIGHPRESSUREFLAG@ = '-1')
+	GROUP BY
+		GROUPING SETS ( TO_CHAR( F.FHTIME, 'YYYYMM' ), ( ) )
+)
+
+SELECT
+	注浆和成型报损.时间,
+	注浆和成型报损.注浆数_一部小件 - 注浆和成型报损.注浆数撤销_一部小件 AS 注浆数_一部小件,
+	注浆和成型报损.注浆数_一部大件 - 注浆和成型报损.注浆数撤销_一部大件 AS 注浆数_一部大件,
+	注浆和成型报损.注浆数_一部全部 - 注浆和成型报损.注浆数撤销_一部全部 AS 注浆数_一部全部,
+	注浆和成型报损.注浆数_二部全部 - 注浆和成型报损.注浆数撤销_二部全部 AS 注浆数_二部全部,
+	注浆和成型报损.注浆数_三部全部 - 注浆和成型报损.注浆数撤销_三部全部 AS 注浆数_三部全部,
+	注浆和成型报损.成型报损_一部小件 - 注浆和成型报损.成型报损撤销_一部小件 AS 成型报损_一部小件,
+	注浆和成型报损.成型报损_一部大件 - 注浆和成型报损.成型报损撤销_一部大件 AS 成型报损_一部大件,
+	注浆和成型报损.成型报损_一部全部 - 注浆和成型报损.成型报损撤销_一部全部 AS 成型报损_一部全部,
+	注浆和成型报损.成型报损_二部全部 - 注浆和成型报损.成型报损撤销_二部全部 AS 成型报损_二部全部,
+	注浆和成型报损.成型报损_三部全部 - 注浆和成型报损.成型报损撤销_三部全部 AS 成型报损_三部全部,
+	
+	半检不合格.半检不合格_一部小件 - NVL(半检不合格撤销.半检不合格_一部小件,0) AS 半检不合格_一部小件,
+	半检不合格.半检不合格_一部大件 - NVL(半检不合格撤销.半检不合格_一部大件,0) AS 半检不合格_一部大件,
+	半检不合格.半检不合格_一部全部 - NVL(半检不合格撤销.半检不合格_一部全部,0) AS 半检不合格_一部全部,
+	半检不合格.半检不合格_二部全部 - NVL(半检不合格撤销.半检不合格_二部全部,0) AS 半检不合格_二部全部,
+	半检不合格.半检不合格_三部全部 - NVL(半检不合格撤销.半检不合格_三部全部,0) AS 半检不合格_三部全部,
+	
+	复检不合格.复检不合格_一部小件 - NVL(复检不合格撤销.复检不合格_一部小件,0) AS 复检不合格_一部小件,
+	复检不合格.复检不合格_一部大件 - NVL(复检不合格撤销.复检不合格_一部大件,0) AS 复检不合格_一部大件,
+	复检不合格.复检不合格_一部全部 - NVL(复检不合格撤销.复检不合格_一部全部,0) AS 复检不合格_一部全部,
+	复检不合格.复检不合格_二部全部 - NVL(复检不合格撤销.复检不合格_二部全部,0) AS 复检不合格_二部全部,
+	复检不合格.复检不合格_三部全部 - NVL(复检不合格撤销.复检不合格_三部全部,0) AS 复检不合格_三部全部,
+	
+	--不做冲减
+	半成品损坯数.半成品损坯数_一部小件,半成品损坯数.半成品损坯数_一部大件,半成品损坯数.半成品损坯数_一部全部,半成品损坯数.半成品损坯数_二部全部,半成品损坯数.半成品损坯数_三部全部,
+	
+	干补回收数.干补回收数_一部小件 - NVL(干补回收数撤销.干补回收数_一部小件,0) AS 干补回收数_一部小件,
+	干补回收数.干补回收数_一部大件 - NVL(干补回收数撤销.干补回收数_一部大件,0) AS 干补回收数_一部大件,
+	干补回收数.干补回收数_一部全部 - NVL(干补回收数撤销.干补回收数_一部全部,0) AS 干补回收数_一部全部,
+	干补回收数.干补回收数_二部全部 - NVL(干补回收数撤销.干补回收数_二部全部,0) AS 干补回收数_二部全部,
+	干补回收数.干补回收数_三部全部 - NVL(干补回收数撤销.干补回收数_三部全部,0) AS 干补回收数_三部全部,
+	
+	--不做冲减
+	出窑数.出窑数_一部小件,出窑数.出窑数_一部大件,出窑数.出窑数_一部全部,出窑数.出窑数_二部全部,出窑数.出窑数_三部全部,
+	
+	质量登记次品数.质量登记次品数_一部小件 - 质量登记次品数改判.质量登记次品数_一部小件 AS 质量登记次品数_一部小件,
+	质量登记次品数.质量登记次品数_一部大件 - 质量登记次品数改判.质量登记次品数_一部大件 AS 质量登记次品数_一部大件,
+	质量登记次品数.质量登记次品数_一部全部 - 质量登记次品数改判.质量登记次品数_一部全部 AS 质量登记次品数_一部全部,
+	质量登记次品数.质量登记次品数_二部全部 - 质量登记次品数改判.质量登记次品数_二部全部 AS 质量登记次品数_二部全部,
+	质量登记次品数.质量登记次品数_三部全部 - 质量登记次品数改判.质量登记次品数_三部全部 AS 质量登记次品数_三部全部,
+	质量登记次品数.重烧登记次品数_一部小件 - 质量登记次品数改判.重烧登记次品数_一部小件 AS 重烧登记次品数_一部小件,
+	质量登记次品数.重烧登记次品数_一部大件 - 质量登记次品数改判.重烧登记次品数_一部大件 AS 重烧登记次品数_一部大件,
+	质量登记次品数.重烧登记次品数_一部全部 - 质量登记次品数改判.重烧登记次品数_一部全部 AS 重烧登记次品数_一部全部,
+	质量登记次品数.重烧登记次品数_二部全部 - 质量登记次品数改判.重烧登记次品数_二部全部 AS 重烧登记次品数_二部全部,
+	质量登记次品数.重烧登记次品数_三部全部 - 质量登记次品数改判.重烧登记次品数_三部全部 AS 重烧登记次品数_三部全部,
+	
+	重烧损坯数.重烧损坯数_一部小件 - NVL(重烧损坯数撤销.重烧损坯数_一部小件,0) AS 重烧损坯数_一部小件,
+	重烧损坯数.重烧损坯数_一部大件 - NVL(重烧损坯数撤销.重烧损坯数_一部大件,0) AS 重烧损坯数_一部大件,
+	重烧损坯数.重烧损坯数_一部全部 - NVL(重烧损坯数撤销.重烧损坯数_一部全部,0) AS 重烧损坯数_一部全部,
+	重烧损坯数.重烧损坯数_二部全部 - NVL(重烧损坯数撤销.重烧损坯数_二部全部,0) AS 重烧损坯数_二部全部,
+	重烧损坯数.重烧损坯数_三部全部 - NVL(重烧损坯数撤销.重烧损坯数_三部全部,0) AS 重烧损坯数_三部全部,
+	
+	回收数.回收数_一部小件 - NVL(回收数撤销.回收数_一部小件,0) AS 回收数_一部小件,
+	回收数.回收数_一部大件 - NVL(回收数撤销.回收数_一部大件,0) AS 回收数_一部大件,
+	回收数.回收数_一部全部 - NVL(回收数撤销.回收数_一部全部,0) AS 回收数_一部全部,
+	回收数.回收数_二部全部 - NVL(回收数撤销.回收数_二部全部,0) AS 回收数_二部全部,
+	回收数.回收数_三部全部 - NVL(回收数撤销.回收数_三部全部,0) AS 回收数_三部全部,
+	
+	--不做冲减
+	入库数.入库数_一部小件,入库数.入库数_一部大件,入库数.入库数_一部全部,入库数.入库数_二部全部,入库数.入库数_三部全部
+FROM
+	注浆和成型报损 
+	LEFT JOIN 半检不合格 ON 注浆和成型报损.时间 = 半检不合格.时间
+	LEFT JOIN 半检不合格撤销 ON 注浆和成型报损.时间 = 半检不合格撤销.时间
+	LEFT JOIN 复检不合格 ON 注浆和成型报损.时间 = 复检不合格.时间
+	LEFT JOIN 复检不合格撤销 ON 注浆和成型报损.时间 = 复检不合格撤销.时间
+	LEFT JOIN 半成品损坯数 ON 注浆和成型报损.时间 = 半成品损坯数.时间
+	LEFT JOIN 干补回收数 ON 注浆和成型报损.时间 = 干补回收数.时间
+	LEFT JOIN 干补回收数撤销 ON 注浆和成型报损.时间 = 干补回收数撤销.时间
+	LEFT JOIN 出窑数 ON 注浆和成型报损.时间 = 出窑数.时间
+	LEFT JOIN 质量登记次品数 ON 注浆和成型报损.时间 = 质量登记次品数.时间
+	LEFT JOIN 质量登记次品数改判 ON 注浆和成型报损.时间 = 质量登记次品数改判.时间
+	LEFT JOIN 重烧损坯数 ON 注浆和成型报损.时间 = 重烧损坯数.时间
+	LEFT JOIN 重烧损坯数撤销 ON 注浆和成型报损.时间 = 重烧损坯数撤销.时间
+	LEFT JOIN 回收数 ON 注浆和成型报损.时间 = 回收数.时间
+	LEFT JOIN 回收数撤销 ON 注浆和成型报损.时间 = 回收数撤销.时间
+	LEFT JOIN 入库数 ON 注浆和成型报损.时间 = 入库数.时间
+                ".Replace("YYYYMM",totalMaster)
+                 .Replace("{GROUTINGLINEID}",groutinglineId);
+
+                //获取查询条件
+                List<CDAParameter> sqlPara = new List<CDAParameter>();
+                sqlPara.Add(new CDAParameter("DATEBEGIN", dateBegin, DataType.DateTime));
+                sqlPara.Add(new CDAParameter("DATEEND", dateEnd, DataType.DateTime));
+                sqlPara.Add(new CDAParameter("HIGHPRESSUREFLAG",highFlag));
+
+                //sqlPara.Add(new CDAParameter("PROCEDUREID", context.Request["procedureidMaster"]));
+
+                //行列互换
+                //===============================================================================
+                DataTable dt = conn.ExecuteDatatable(sqlStr, sqlPara.ToArray());
+                DataTable dt2 = new DataTable();
+                dt2.Columns.Add("部门序号");
+                dt2.Columns.Add("部门");
+                dt2.Columns.Add("工序");
+                for (int i = 0; i < dt.Rows.Count; i++) dt2.Columns.Add("日期" + dt.Rows[i]["时间"].ToString());
+                for (int j = 1; j < dt.Columns.Count; j++)
+                {
+                    DataRow dr = dt2.NewRow();
+                    dr["部门序号"] = dt.Columns[j].ColumnName.Substring(dt.Columns[j].ColumnName.IndexOf("_")+1)
+                            .Replace("一部小件","1").Replace("一部大件","2").Replace("一部全部","3")
+                            .Replace("二部全部","4").Replace("三部全部","5");
+                    dr["部门"] = dt.Columns[j].ColumnName.Substring(dt.Columns[j].ColumnName.IndexOf("_")+1);
+                    dr["工序"] = dt.Columns[j].ColumnName.Substring(0, dt.Columns[j].ColumnName.IndexOf("_"));
+                    for (int i = 0; i < dt.Rows.Count; i++)
+                    {
+                        dr["日期" + dt.Rows[i]["时间"].ToString()] = dt.Rows[i][dt.Columns[j].ColumnName];
+                    }
+                    dt2.Rows.Add(dr);
+                }
+                DataView dv = dt2.DefaultView;
+                dv.Sort = "部门序号";
+                dt2.Columns.Remove("部门序号");
+                dt2 = dv.ToTable();
+                context.Response.Write(new JsonResult(dt2) { total = dt.Rows.Count }.ToJson());
+                //===============================================================================
+
+                //JsonResult data = Easyui.ExecuteJsonResult(conn, sqlStr, sqlPara);
+                //context.Response.Write(data.ToJson());
+            }
+
+            //子表1
+            if(context.Request["m"].ToString()=="1")
+            {
+                //读取报表数据
+                string sqlStr = @"
+                    SELECT 
+                        '测试子表1' AS 测试列1,
+                        '测试子表1' AS 测试列2,
+                        '测试子表1' AS 测试列3,
+                        '测试子表1' AS 测试列4,
+                        '测试子表1' AS 测试列5
+                    FROM 
+                        DUAL
+                ";
+
+                List<CDAParameter> sqlPara = new List<CDAParameter>();
+                //sqlPara.Add(new CDAParameter("PROCEDUREID", context.Request["procedureidMaster"]));
+
+                JsonResult data = Easyui.ExecuteJsonResult(conn, sqlStr, sqlPara);
+                context.Response.Write(data.ToJson());
+            }
+
+            //子表2
+            if(context.Request["m"].ToString()=="2")
+            {
+                //读取报表数据
+                string sqlStr = @"
+                    SELECT 
+                        '测试子表2' AS 测试列1,
+                        '测试子表2' AS 测试列2,
+                        '测试子表2' AS 测试列3,
+                        '测试子表2' AS 测试列4,
+                        '测试子表2' AS 测试列5
+                    FROM 
+                        DUAL
+                ";
+
+                List<CDAParameter> sqlPara = new List<CDAParameter>();
+                //sqlPara.Add(new CDAParameter("PROCEDUREID", context.Request["procedureidMaster"]));
+
+                JsonResult data = Easyui.ExecuteJsonResult(conn, sqlStr, sqlPara);
+                context.Response.Write(data.ToJson());
+            }
+
+
+        }
+
+    }
+
+    public bool IsReusable
+    {
+        get
+        {
+            return false;
+        }
+    }
+
+}

+ 164 - 0
wwwroot/mes/rpt2/rpt8009/rpt_help.html

@@ -0,0 +1,164 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8" />
+    <meta name="keywords" content="dongke,mes,ibossmes">
+    <meta name="description" content="制造企业生产过程执行管理系统">
+    <meta name="author" content="xuwei">
+    <title>东科软件</title>
+    <script src="/plugins/xeasyui/xeasyui.min.js"></script>
+</head>
+<body class="easyui-layout">
+    <div data-options="region:'center',plain:true,border:false">
+        <form id="ff" method="post" class="w-form">
+            <div class="w-div">
+                <div class="w-fieldbar" onclick="$('#more1').toggle()" style="cursor:pointer;"></div>
+            </div>
+            <div id="more1" style="display:block;">
+                <div class="w-div">
+                    <div class="w-fieldname">1.0 更新:</div>
+                    <div class="w-field">
+                        <div id="ID" data-field="true" class="w-fieldvalue">
+                            
+                        </div>
+                    </div>
+                </div>
+                <div class="w-div">
+                    <div class="w-fieldname">1.1 更新:</div>
+                    <div class="w-field">
+                        <div id="ID" data-field="true" class="w-fieldvalue">
+                            
+                        </div>
+                    </div>
+                </div>
+                <div class="w-div">
+                    <div class="w-fieldname">1.2 更新:</div>
+                    <div class="w-field">
+                        <div id="ID" data-field="true" class="w-fieldvalue">
+                            
+                        </div>
+                    </div>
+                </div>
+                <div class="w-div">
+                    <div class="w-fieldname">1.3 更新:</div>
+                    <div class="w-field">
+                        <div id="ID" data-field="true" class="w-fieldvalue">
+                            
+                        </div>
+                    </div>
+                </div>
+            </div>
+            <div class="w-div">
+                <div class="w-fieldbar" onclick="$('#more2').toggle()" style="cursor:pointer;"></div>
+            </div>
+            <div id="more2" style="display:block;">
+                <div class="w-div">
+                    <div class="w-fieldname">使用说明:</div>
+                    <div class="w-field">
+                        <div id="ID" data-field="true" class="w-fieldvalue">
+                            通用。
+                        </div>
+                    </div>
+                </div>
+                <div class="w-div">
+                    <div class="w-fieldname">数据算法:</div>
+                    <div class="w-field">
+                        <div id="ID" data-field="true" class="w-fieldvalue">
+                            【一部小件】:<br />
+                            【注浆数】:产品变更履历中(数据类型:成型注浆)一部小件注浆数减去一部小件注浆撤销数<br />
+                            【成型报损】:产品变更履历中(数据类型:成型报损)一部小件成型报损数减去一部小件成型报损撤销数<br />
+                            【半检不合格】:半成品检验登记中(半检状态:不合格)一部小件半检不合格数减去一部小件半检不合格撤销数(半检复检状态:未复检)<br />
+                            【复检不合格】:半成品检验登记中(半检复检状态:不合格(返))一部小件复检不合格数减去一部小件复检不合格撤销数<br />
+                            【半成品损坯数】:废弃产品中(产品分级类别:损坯、干补,废弃类型:损坯,非重烧)一部小件半成品损坯数减去一部小件半成品损坯撤销数<br />
+                            【干补回收数】:生产数据中(工序:干补)一部小件干补回收数减去一部小件干补回收撤销数<br />
+                            【出窑数】:生产数据中(工序:7-1成检出窑交接、3#成检交接)一部小件出窑数<br />
+                            【质量登记次品数】:生产数据中(工序:8-1质量登记 8-2重烧质量登记 3#质量登记,产品分级类别:次品)一部小件质量登记次品数减去一部小件质量登记次品改判数<br />
+                            【重烧损坯数】:废弃产品中(产品分级类别:损坯、干补,废弃类型:损坯,工序:4-5重烧交接、4-6重烧补釉、 4-7重烧登窑、6-2重烧卸窑、3#冷补)一部小件重烧损坯数减去一部小件重烧损坯撤销数<br />
+                            【回收数】:生产数据中(工序:10-2回收)一部小件回收数减去一部小件回收撤销数<br />
+                            【入库数】:产品变更履历中(数据类型:成型注浆)一部小件入库数减去一部小件入库撤销数<br />
+                            <br />
+
+                            【一部大件】:<br />
+                            【注浆数】:产品变更履历中(数据类型:成型注浆)一部大件注浆数减去一部大件注浆撤销数<br />
+                            【成型报损】:产品变更履历中(数据类型:成型报损)一部大件成型报损数减去一部大件成型报损撤销数<br />
+                            【半检不合格】:半成品检验登记中(半检状态:不合格)一部大件半检不合格数减去一部大件半检不合格撤销数(半检复检状态:未复检)<br />
+                            【复检不合格】:半成品检验登记中(半检复检状态:不合格(返))一部大件复检不合格数减去一部大件复检不合格撤销数<br />
+                            【半成品损坯数】:废弃产品中(产品分级类别:损坯、干补,废弃类型:损坯,非重烧)一部大件半成品损坯数减去一部大件半成品损坯撤销数<br />
+                            【干补回收数】:生产数据中(工序:干补)一部大件干补回收数减去一部大件干补回收撤销数<br />
+                            【出窑数】:生产数据中(工序:7-1成检出窑交接、3#成检交接)一部大件出窑数<br />
+                            【质量登记次品数】:生产数据中(工序:8-1质量登记 8-2重烧质量登记 3#质量登记,产品分级类别:次品)一部大件质量登记次品数减去一部大件质量登记次品改判数<br />
+                            【重烧损坯数】:废弃产品中(产品分级类别:损坯、干补,废弃类型:损坯,工序:4-5重烧交接、4-6重烧补釉、 4-7重烧登窑、6-2重烧卸窑、3#冷补)一部大件重烧损坯数减去一部大件重烧损坯撤销数<br />
+                            【回收数】:生产数据中(工序:10-2回收)一部大件回收数减去一部大件回收撤销数<br />
+                            【入库数】:产品变更履历中(数据类型:成型注浆)一部大件入库数减去一部大件入库撤销数<br />
+                            <br />
+
+                            【一部全部】:<br />
+                            【注浆数】:产品变更履历中(数据类型:成型注浆)一部注浆数减去一部注浆撤销数<br />
+                            【成型报损】:产品变更履历中(数据类型:成型报损)一部成型报损数减去一部成型报损撤销数<br />
+                            【半检不合格】:半成品检验登记中(半检状态:不合格)一部半检不合格数减去一部半检不合格撤销数(半检复检状态:未复检)<br />
+                            【复检不合格】:半成品检验登记中(半检复检状态:不合格(返))一部复检不合格数减去一部复检不合格撤销数<br />
+                            【半成品损坯数】:废弃产品中(产品分级类别:损坯、干补,废弃类型:损坯,非重烧)一部半成品损坯数减去一部半成品损坯撤销数<br />
+                            【干补回收数】:生产数据中(工序:干补)一部干补回收数减去一部干补回收撤销数<br />
+                            【出窑数】:生产数据中(工序:7-1成检出窑交接、3#成检交接)一部出窑数<br />
+                            【质量登记次品数】:生产数据中(工序:8-1质量登记 8-2重烧质量登记 3#质量登记,产品分级类别:次品)一部质量登记次品数减去一部质量登记次品改判数<br />
+                            【重烧损坯数】:废弃产品中(产品分级类别:损坯、干补,废弃类型:损坯,工序:4-5重烧交接、4-6重烧补釉、 4-7重烧登窑、6-2重烧卸窑、3#冷补)一部重烧损坯数减去一部重烧损坯撤销数<br />
+                            【回收数】:生产数据中(工序:10-2回收)一部回收数减去一部回收撤销数<br />
+                            【入库数】:产品变更履历中(数据类型:成型注浆)一部入库数减去一部入库撤销数<br />
+                            <br />
+
+                            【二部全部】:<br />
+                            【注浆数】:产品变更履历中(数据类型:成型注浆)二部注浆数减去二部注浆撤销数<br />
+                            【成型报损】:产品变更履历中(数据类型:成型报损)二部成型报损数减去二部成型报损撤销数<br />
+                            【半检不合格】:半成品检验登记中(半检状态:不合格)二部半检不合格数减去二部半检不合格撤销数(半检复检状态:未复检)<br />
+                            【复检不合格】:半成品检验登记中(半检复检状态:不合格(返))二部复检不合格数减去二部复检不合格撤销数<br />
+                            【半成品损坯数】:废弃产品中(产品分级类别:损坯、干补,废弃类型:损坯,非重烧)二部半成品损坯数减去二部半成品损坯撤销数<br />
+                            【干补回收数】:生产数据中(工序:干补)二部干补回收数减去二部干补回收撤销数<br />
+                            【出窑数】:生产数据中(工序:7-1成检出窑交接、3#成检交接)二部出窑数<br />
+                            【质量登记次品数】:生产数据中(工序:8-1质量登记 8-2重烧质量登记 3#质量登记,产品分级类别:次品)二部质量登记次品数减去二部质量登记次品改判数<br />
+                            【重烧损坯数】:废弃产品中(产品分级类别:损坯、干补,废弃类型:损坯,工序:4-5重烧交接、4-6重烧补釉、 4-7重烧登窑、6-2重烧卸窑、3#冷补)二部重烧损坯数减去二部重烧损坯撤销数<br />
+                            【回收数】:生产数据中(工序:10-2回收)二部回收数减去二部回收撤销数<br />
+                            【入库数】:产品变更履历中(数据类型:成型注浆)二部入库数减去二部入库撤销数<br />
+                            <br />
+
+                            【三部全部】:<br />
+                            【注浆数】:产品变更履历中(数据类型:成型注浆)三部注浆数减去三部注浆撤销数<br />
+                            【成型报损】:产品变更履历中(数据类型:成型报损)三部成型报损数减去三部成型报损撤销数<br />
+                            【半检不合格】:半成品检验登记中(半检状态:不合格)三部半检不合格数减去三部半检不合格撤销数(半检复检状态:未复检)<br />
+                            【复检不合格】:半成品检验登记中(半检复检状态:不合格(返))三部复检不合格数减去三部复检不合格撤销数<br />
+                            【半成品损坯数】:废弃产品中(产品分级类别:损坯、干补,废弃类型:损坯,非重烧)三部半成品损坯数减去三部半成品损坯撤销数<br />
+                            【干补回收数】:生产数据中(工序:干补)三部干补回收数减去三部干补回收撤销数<br />
+                            【出窑数】:生产数据中(工序:7-1成检出窑交接、3#成检交接)三部出窑数<br />
+                            【质量登记次品数】:生产数据中(工序:8-1质量登记 8-2重烧质量登记 3#质量登记,产品分级类别:次品)三部质量登记次品数减去三部质量登记次品改判数<br />
+                            【重烧损坯数】:废弃产品中(产品分级类别:损坯、干补,废弃类型:损坯,工序:4-5重烧交接、4-6重烧补釉、 4-7重烧登窑、6-2重烧卸窑、3#冷补)三部重烧损坯数减去三部重烧损坯撤销数<br />
+                            【回收数】:生产数据中(工序:10-2回收)三部回收数减去三部回收撤销数<br />
+                            【入库数】:产品变更履历中(数据类型:成型注浆)三部入库数减去三部入库撤销数<br />
+                        </div>
+                    </div>
+                </div>
+                <div class="w-div">
+                    <div class="w-fieldname">更新时间:</div>
+                    <div class="w-field">
+                        <div id="ID" data-field="true" class="w-fieldvalue">
+                            2022-02-28 feiyue。
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </form>
+    </div>
+    <div id="tb" data-options="region:'south',border:false" class="w-bar">
+        <a href="javascript:void(0)" id="tbClose" class="easyui-linkbutton" data-options="iconCls:'icon-cancel'" onclick="cancelForm()">关闭</a>
+    </div>
+    <script type="text/javascript">
+
+        $(function () {
+            $('#more1').toggle();
+        });
+
+        function cancelForm() {
+            $.dialog.close();
+        }
+
+    </script>
+</body>
+</html>

+ 256 - 0
wwwroot/mes/rpt2/rpt8009/rpt_index.html

@@ -0,0 +1,256 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8" />
+    <meta name="keywords" content="dongke,mes,ibossmes">
+    <meta name="description" content="制造企业生产过程执行管理系统">
+    <meta name="author" content="xuwei">
+    <title>东科软件</title>
+    <script src="/plugins/xeasyui/xeasyui.min.js"></script>
+    <link href="/plugins/xeasyui/toolbar.min.css" rel="stylesheet" />
+</head>
+<body class="easyui-layout">
+
+    <!--上部工具条-->
+    <div id="toolbarLayout" data-options="border:false,region:'north',title:'',iconCls:'icon-grid'">
+        <div class="i-toolbar">
+            <a href="javascript:void(0)" id="btnSearch" title="搜索" class="easyui-linkbutton" iconcls="icon-search" plain="true" toggle="true" onclick="tbSearch()">搜索</a>
+            <a href="javascript:void(0)" id="btnExport" title="导出" class="easyui-linkbutton" iconcls="icon-excel" plain="true" onclick="tbExport()">导出</a>
+            <!--<a href="javascript:void(0)" id="btnColumn" class="easyui-menubutton" data-options="menu:'#btnColumnMenu',iconCls:'icon-undo'">列显示</a>-->
+            <!--<div id="btnColumnMenu" style="width:150px;" ></div>-->
+            <a href="javascript:void(0)" id="btnReload" title="刷新" class="easyui-linkbutton" iconcls="icon-reload" plain="true" onclick="tbReload()">刷新</a>
+            
+            <a href="javascript:void(0)" id="btnHelp" title="帮助" class="easyui-linkbutton" iconcls="icon-help" plain="true" onclick="tbHelp()">帮助</a>
+            
+            <div id="tbSearchDiv" style="display:block;padding:10px;">
+                <form id="ffMaster">
+                    <div>
+                        开始日期:
+                        <input class="easyui-datebox" id="datebeginMaster" name="datebeginMaster" data-options="required:true,prompt:'',tipPosition:'top'" style="width:120px; height:32px;">
+                        截止日期:
+                        <input class="easyui-datebox" id="dateendMaster" name="dateendMaster" data-options="required:true,prompt:'',tipPosition:'top'" style="width:120px; height:32px;">
+                        高压标识:
+                        <input class="easyui-combobox" id="highFlagMaster" name="highFlagMaster" data-options="required:false,valueField:'value',textField:'text',
+                               data:[{'text': '普通', 'value': '0'}, {'text': '高压', 'value': '1'}]" style=" width: 120px; height: 32px;">
+                        统计方式:
+                        <input class="easyui-combobox" id="totalMaster" name="totalMaster" data-options="required:true,value:'YYYYMMDD',valueField:'value',textField:'text',
+                               data:[{'text': '按月统计', 'value': 'YYYYMM'}, {'text': '按日统计', 'value': 'YYYYMMDD'}]" style=" width: 120px; height: 32px;">
+                    </div>
+                    <div style="padding-top:10px;">
+                        产品编码:
+                        <input class="easyui-combobox" id="goodsMaster" name="goodsMaster" data-options="required:false,prompt:'',tipPosition:'top',url:'../../rpt/rpt.ashx?m=getGoods&select=1',method:'get',valueField:'GOODSID',textField:'GOODSCODE',panelHeight:'300px',editable:true,multiple:true" style="width:325px;height:32px;">
+                        成型线号:
+                        <input class="easyui-combobox" id="groutinglineMaster" name="groutinglineMaster" data-options="required:false,prompt:'',tipPosition:'top',url:'../../rpt/rpt.ashx?m=getLine&select=1',method:'get',valueField:'GROUTINGLINEID',textField:'GROUTINGLINECODE',panelHeight:'300px',editable:true,multiple:true" style="width: 322px; height: 32px;">
+                        试验:
+                        <input class="easyui-combobox" id="testMaster" name="testMaster" data-options="required:false,valueField:'value',textField:'text',editable:false,value:'0',
+                               data:[{'text': '正常', 'value': '0'}, {'text': '试验', 'value': '1'}, {'text': '全部', 'value': '2'}]" style=" width: 120px; height: 32px;">
+                        试验线:
+                        <input class="easyui-combobox" id="testFlagMaster" name="testFlagMaster" data-options="required:false,valueField:'value',textField:'text',editable:false,value:'0',
+                               data:[{'text': '普通线', 'value': '0'}, {'text': '试验线', 'value': '1'}, {'text': '全部', 'value': '2'}]" style=" width: 120px; height: 32px;">
+                        <a href="javascript:void(0)" id="btnSearchSubmit" title="清空" class="easyui-linkbutton" plain="false" onclick="tbSearchReset()">清空</a>
+                        <a href="javascript:void(0)" id="btnSearchSubmit" title="搜索" class="easyui-linkbutton" plain="false" onclick="tbSearchSubmit()">搜索</a>
+                    </div>
+                </form>
+            </div>
+        </div>
+    </div>
+
+    <!--中部-->
+    <div id="tableLayout" data-options="border:false,region:'center',split:true,title:'',iconCls:'icon-grid'" title="East" style="width:700px;">
+        <div id="tableTabs" class="easyui-tabs" data-options="border:false" style="width: 100%; height: 100%">
+            <!--表格-->
+            <div title="年度生产数据统计表">
+                <table class="easyui-datagrid"
+                       id="DataGrid0"
+                       data-options="method:'get',border:false,singleSelect:true,fit:true,fitColumns:true,onDblClickRow: dgDblclickrow">
+                    <thead>
+                    </thead>
+                </table>
+            </div>
+            <!--<div title="表名明细表1">
+                <table class="easyui-datagrid"
+                       id="DataGrid1"
+                       data-options="method:'get',border:false,singleSelect:true,fit:true,fitColumns:true">
+                    <thead>
+                    </thead>
+                </table>
+            </div>-->
+            <!--<div title="表名明细表2">
+                <table class="easyui-datagrid"
+                       id="DataGrid2"
+                       data-options="method:'get',border:false,singleSelect:true,fit:true,fitColumns:true">
+                    <thead>
+                    </thead>
+                </table>
+            </div>-->
+        </div>
+    </div>
+
+    <script type="text/javascript">
+
+        function formatterUA(value, row, index) {
+            return Math.round(value*10000) / 100 + '%';
+        }
+
+        $(document).ready(function () {
+            var ctime = new Date();
+            var beginDate = ctime.getFullYear() + "-" + (ctime.getMonth() + 1) + "-" + ctime.getDate();
+            var endDate = ctime.getFullYear() + "-" + (ctime.getMonth() + 1) + "-" + ctime.getDate();
+            $("#datebeginMaster").datebox("setValue", beginDate);
+            $("#dateendMaster").datebox("setValue", endDate);
+
+            //tbSearchSubmit();
+
+        });
+
+        //帮助事件
+        function tbHelp() {
+            $('#DataGrid0').datagridDialog({
+                title: '帮助',
+                width: 640,
+                height: 480,
+                url: 'rpt_help.html'
+            });
+        }
+
+        //主表双击事件
+        function dgDblclickrow(index, row) {
+            //$("#tableTabs").tabs("select", 1);
+            //LoadDataGridDetail(index, row);
+        }
+
+        //加载子表数据
+        function LoadDataGridDetail(index, row) {
+            //加载子表1
+            //var id = $('#DataGridMaster').datagrid('getSelections')[0]['SID'];
+            var id = row['测试列1'];
+            $('#DataGrid1').datagridLoadRpt({
+                idField: '测试列1',
+                url: 'rpt.ashx?m=1&id=' + id,
+                pageSize: 10,
+                fixWidth: 120,
+                mergeWidth: 100,
+                splitChar: '_',
+                columnMoving: true
+            });
+            //加载子表2
+            $('#DataGrid2').datagridLoadRpt({
+                idField: '测试列1',
+                url: 'rpt.ashx?m=2&id=' + id,
+                pageSize: 10,
+                fixWidth: 120,
+                mergeWidth: 100,
+                splitChar: '_',
+                columnMoving: true
+            });
+        }
+
+        //清空条件
+        function tbSearchReset() {
+            $('#highFlagMaster').combobox('clear');
+            $('#goodsMaster').combobox( 'clear');
+            $('#groutinglineMaster').combobox('clear');
+            $('#testMaster').combobox('clear');
+            $('#testFlagMaster').combobox('clear');
+            
+        }
+
+        //搜索提交
+        function tbSearchSubmit() {
+            var index = $('#tableTabs').tabs('getTabIndex', $('#tableTabs').tabs('getSelected'));
+
+            if (index == 0) {
+                if ($('#ffMaster').form("validate")) {
+                    $('#DataGrid' + index).datagridLoadRpt({
+                        title: '',
+                        idField: 'SID',
+                        queryParams: $('#ffMaster').serializeJson(),
+                        url: 'rpt.ashx?m=' + index + '&id=' + request('id'),
+                        pageSize: 10,
+                        fixWidth: 120,
+                        mergeWidth: 120,
+                        splitChar: '_',
+                        onLoadSuccess: function (data) {
+                            $('#DataGrid' + index).datagrid("autoMergeCells",["部门"]);
+                        }
+                    });
+                }
+            }
+
+            if (index == 1) {
+                if ($('#ffMaster').form("validate")) {
+                    $('#DataGrid' + index).datagridLoad({
+                        idField: '测试列1',
+                        url: 'rpt.ashx?m=' + index ,
+                        pageSize: 10,
+                        fixWidth: 100,
+                        mergeWidth: 80,
+                        splitChar: '_'
+                    });
+                }
+            }
+
+            if (index == 2) {
+                if ($('#ffMaster').form("validate")) {
+                    $('#DataGrid' + index).datagridLoad({
+                        idField: '测试列1',
+                        url: 'rpt.ashx?m=' + index,
+                        pageSize: 10,
+                        fixWidth: 100,
+                        mergeWidth: 80,
+                        splitChar: '_'
+                    });
+                }
+            }
+        }
+
+        //导出
+        function tbExport() {
+            var index = $('#tableTabs').tabs('getTabIndex', $('#tableTabs').tabs('getSelected'));
+
+            //加载表头
+            var fields1 = $('#DataGrid' + index).datagrid('getColumnFields');
+            var fields2 = $('#DataGrid' + index).datagrid('getColumnFields', true);
+            var fields = fields2.concat(fields1);
+            var headers = [];
+            for (var i = 0; i < fields.length; i++) {
+                //headers.push($('#DataGridMaster').datagrid('getColumnOption', fields[i])['title']);
+                headers.push(fields[i]);
+            }
+            $('#DataGrid' + index).datagridExport({
+                headers: headers,
+                fileName: '导出数据(年度生产数据统计表).xls',
+                workSheet: '导出数据(年度生产数据统计表)'
+            });
+
+            //$('#DataGridMaster').datagridExport({
+            //    headers: headers,
+            //    fileName: '导出数据(表名).xls',
+            //    workSheet: '导出数据(表名)'
+            //});
+
+            //导出多sheet
+            //$.dataGridToExcel(
+            //    ['DataGridMaster', 'DataGridDetail1', 'DataGridDetail2'],
+            //    ['表名','表名明细表1', '表名明细表2'],
+            //    "导出数据(表名).xls"
+            //);
+        }
+
+        //搜索按钮
+        function tbSearch() {
+            $('#tbSearchDiv').toggle();
+            //$('#DataGridMaster').datagrid('resize');
+            $('#toolbarLayout').panel('resize', { height: 'auto' });
+            $('body').layout('resize');
+            $('#tableTabs').tabs('resize');
+        }
+
+        //刷新
+        function tbReload() {
+            tbSearchSubmit();
+        }
+
+    </script>
+</body>
+</html>

+ 235 - 0
wwwroot/mes/rpt2/rpt8009/rpt_index2.html

@@ -0,0 +1,235 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8" />
+    <meta name="keywords" content="dongke,mes,ibossmes">
+    <meta name="description" content="制造企业生产过程执行管理系统">
+    <meta name="author" content="xuwei">
+    <title>东科软件</title>
+    <script src="/plugins/xeasyui/xeasyui.min.js"></script>
+    <link href="/plugins/xeasyui/toolbar.min.css" rel="stylesheet" />
+</head>
+<body class="easyui-layout">
+
+    <!--上部工具条-->
+    <div id="toolbarLayout" data-options="border:false,region:'north',title:'',iconCls:'icon-grid'">
+        <div class="i-toolbar">
+            <a href="javascript:void(0)" id="btnSearch" title="搜索" class="easyui-linkbutton" iconcls="icon-search" plain="true" toggle="true" onclick="tbSearch()">搜索</a>
+            <a href="javascript:void(0)" id="btnExport" title="导出" class="easyui-linkbutton" iconcls="icon-excel" plain="true" onclick="tbExport()">导出</a>
+            <!--<a href="javascript:void(0)" id="btnColumn" class="easyui-menubutton" data-options="menu:'#btnColumnMenu',iconCls:'icon-undo'">列显示</a>-->
+            <!--<div id="btnColumnMenu" style="width:150px;" ></div>-->
+            <a href="javascript:void(0)" id="btnReload" title="刷新" class="easyui-linkbutton" iconcls="icon-reload" plain="true" onclick="tbReload()">刷新</a>
+            <div id="tbSearchDiv" style="display:block;padding:10px;">
+                <form id="ffMaster">
+                    <div>
+                        开始日期:
+                        <input class="easyui-datebox" id="datebeginMaster" name="datebeginMaster" data-options="required:true,prompt:'',tipPosition:'top'" style="width:120px; height:32px;">
+                        截止日期:
+                        <input class="easyui-datebox" id="dateendMaster" name="dateendMaster" data-options="required:true,prompt:'',tipPosition:'top'" style="width:120px; height:32px;">
+                        高压标识:
+                        <input class="easyui-combobox" id="highFlagMaster" name="highFlagMaster" data-options="required:false,valueField:'value',textField:'text',
+                               data:[{'text': '普通', 'value': '0'}, {'text': '高压', 'value': '1'}]" style=" width: 120px; height: 32px;">
+                        统计方式:
+                        <input class="easyui-combobox" id="totalMaster" name="totalMaster" data-options="required:true,value:'YYYYMMDD',valueField:'value',textField:'text',
+                               data:[{'text': '按月统计', 'value': 'YYYYMM'}, {'text': '按日统计', 'value': 'YYYYMMDD'}]" style=" width: 120px; height: 32px;">
+                    </div>
+                    <div style="padding-top:10px;">
+                        产品编码:
+                        <input class="easyui-combobox" id="goodsMaster" name="goodsMaster" data-options="required:false,prompt:'',tipPosition:'top',url:'../../rpt/rpt.ashx?m=getGoods&select=1',method:'get',valueField:'GOODSID',textField:'GOODSCODE',panelHeight:'300px',editable:true,multiple:true" style="width:325px;height:32px;">
+                        成型线号:
+                        <input class="easyui-combobox" id="groutinglineMaster" name="groutinglineMaster" data-options="required:false,prompt:'',tipPosition:'top',url:'../../rpt/rpt.ashx?m=getLine&select=1',method:'get',valueField:'GROUTINGLINEID',textField:'GROUTINGLINECODE',panelHeight:'300px',editable:true,multiple:true" style="width: 322px; height: 32px;">
+
+                        <a href="javascript:void(0)" id="btnSearchSubmit" title="清空" class="easyui-linkbutton" plain="false" onclick="tbSearchReset()">清空</a>
+                        <a href="javascript:void(0)" id="btnSearchSubmit" title="搜索" class="easyui-linkbutton" plain="false" onclick="tbSearchSubmit()">搜索</a>
+                    </div>
+                </form>
+            </div>
+        </div>
+    </div>
+
+    <!--中部-->
+    <div id="tableLayout" data-options="border:false,region:'center',split:true,title:'',iconCls:'icon-grid'" title="East" style="width:700px;">
+        <div id="tableTabs" class="easyui-tabs" data-options="border:false" style="width: 100%; height: 100%">
+            <!--表格-->
+            <div title="年度生产数据统计表">
+                <table class="easyui-datagrid"
+                       id="DataGrid0"
+                       data-options="method:'get',border:false,singleSelect:true,fit:true,fitColumns:true,onDblClickRow: dgDblclickrow">
+                    <thead>
+                    </thead>
+                </table>
+            </div>
+            <div title="表名明细表1">
+                <table class="easyui-datagrid"
+                       id="DataGrid1"
+                       data-options="method:'get',border:false,singleSelect:true,fit:true,fitColumns:true">
+                    <thead>
+                    </thead>
+                </table>
+            </div>
+            <div title="表名明细表2">
+                <table class="easyui-datagrid"
+                       id="DataGrid2"
+                       data-options="method:'get',border:false,singleSelect:true,fit:true,fitColumns:true">
+                    <thead>
+                    </thead>
+                </table>
+            </div>
+        </div>
+    </div>
+
+    <script type="text/javascript">
+
+        function formatterUA(value, row, index) {
+            return Math.round(value*10000) / 100 + '%';
+        }
+
+        $(document).ready(function () {
+            var ctime = new Date();
+            var beginDate = ctime.getFullYear() + "-" + (ctime.getMonth() + 1) + "-" + ctime.getDate();
+            var endDate = ctime.getFullYear() + "-" + (ctime.getMonth() + 1) + "-" + ctime.getDate();
+            $("#datebeginMaster").datebox("setValue", beginDate);
+            $("#dateendMaster").datebox("setValue", endDate);
+
+            //tbSearchSubmit();
+
+        });
+
+        //主表双击事件
+        function dgDblclickrow(index, row) {
+            $("#tableTabs").tabs("select", 1);
+            LoadDataGridDetail(index, row);
+        }
+
+        //加载子表数据
+        function LoadDataGridDetail(index, row) {
+            //加载子表1
+            //var id = $('#DataGridMaster').datagrid('getSelections')[0]['SID'];
+            var id = row['测试列1'];
+            $('#DataGrid1').datagridLoadRpt({
+                idField: '测试列1',
+                url: 'rpt.ashx?m=1&id=' + id,
+                pageSize: 10,
+                fixWidth: 120,
+                mergeWidth: 100,
+                splitChar: '_',
+                columnMoving: true
+            });
+            //加载子表2
+            $('#DataGrid2').datagridLoadRpt({
+                idField: '测试列1',
+                url: 'rpt.ashx?m=2&id=' + id,
+                pageSize: 10,
+                fixWidth: 120,
+                mergeWidth: 100,
+                splitChar: '_',
+                columnMoving: true
+            });
+        }
+
+        //清空条件
+        function tbSearchReset() {
+            $('#highFlagMaster').combobox('clear');
+            $('#goodsMaster').combobox( 'clear');
+            $('#groutinglineMaster').combobox('clear');
+        }
+
+        //搜索提交
+        function tbSearchSubmit() {
+            var index = $('#tableTabs').tabs('getTabIndex', $('#tableTabs').tabs('getSelected'));
+
+            if (index == 0) {
+                if ($('#ffMaster').form("validate")) {
+                    $('#DataGrid' + index).datagridLoadRpt({
+                        title: '',
+                        idField: 'SID',
+                        queryParams: $('#ffMaster').serializeJson(),
+                        url: 'rpt.ashx?m=' + index + '&id=' + request('id'),
+                        pageSize: 10,
+                        fixWidth: 120,
+                        mergeWidth: 120,
+                        splitChar: '_',
+                        onLoadSuccess: function (data) {
+                            $('#DataGrid' + index).datagrid("autoMergeCells",["部门"]);
+                        }
+                    });
+                }
+            }
+
+            if (index == 1) {
+                if ($('#ffMaster').form("validate")) {
+                    $('#DataGrid' + index).datagridLoad({
+                        idField: '测试列1',
+                        url: 'rpt.ashx?m=' + index ,
+                        pageSize: 10,
+                        fixWidth: 100,
+                        mergeWidth: 80,
+                        splitChar: '_'
+                    });
+                }
+            }
+
+            if (index == 2) {
+                if ($('#ffMaster').form("validate")) {
+                    $('#DataGrid' + index).datagridLoad({
+                        idField: '测试列1',
+                        url: 'rpt.ashx?m=' + index,
+                        pageSize: 10,
+                        fixWidth: 100,
+                        mergeWidth: 80,
+                        splitChar: '_'
+                    });
+                }
+            }
+        }
+
+        //导出
+        function tbExport() {
+            var index = $('#tableTabs').tabs('getTabIndex', $('#tableTabs').tabs('getSelected'));
+
+            //加载表头
+            var fields1 = $('#DataGrid' + index).datagrid('getColumnFields');
+            var fields2 = $('#DataGrid' + index).datagrid('getColumnFields', true);
+            var fields = fields2.concat(fields1);
+            var headers = [];
+            for (var i = 0; i < fields.length; i++) {
+                //headers.push($('#DataGridMaster').datagrid('getColumnOption', fields[i])['title']);
+                headers.push(fields[i]);
+            }
+            $('#DataGrid' + index).datagridExport({
+                headers: headers,
+                fileName: '导出数据(年度生产数据统计表).xls',
+                workSheet: '导出数据(年度生产数据统计表)'
+            });
+
+            //$('#DataGridMaster').datagridExport({
+            //    headers: headers,
+            //    fileName: '导出数据(表名).xls',
+            //    workSheet: '导出数据(表名)'
+            //});
+
+            //导出多sheet
+            //$.dataGridToExcel(
+            //    ['DataGridMaster', 'DataGridDetail1', 'DataGridDetail2'],
+            //    ['表名','表名明细表1', '表名明细表2'],
+            //    "导出数据(表名).xls"
+            //);
+        }
+
+        //搜索按钮
+        function tbSearch() {
+            $('#tbSearchDiv').toggle();
+            //$('#DataGridMaster').datagrid('resize');
+            $('#toolbarLayout').panel('resize', { height: 'auto' });
+            $('body').layout('resize');
+            $('#tableTabs').tabs('resize');
+        }
+
+        //刷新
+        function tbReload() {
+            tbSearchSubmit();
+        }
+
+    </script>
+</body>
+</html>