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

+ 603 - 130
wwwroot/mes/rpt2/rpt8009/rpt.ashx

@@ -69,12 +69,12 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 
                 //读取报表数据
                 string sqlStr = @"
-WITH
-拼接日期 AS 
-({DATESTR}),
-注浆数 AS
-(
-SELECT 											
+                        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)
@@ -106,15 +106,15 @@ SELECT
 				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 (@TESTMOULDFLAG@ IS NULL OR GDD.TESTMOULDFLAG = @TESTMOULDFLAG@)
+			AND (@TESTFLAG@ IS NULL OR GDD.TESTFLAG = @TESTFLAG@)
         AND GH.DATATYPE IN (1, 2)
         AND G.SCRAPSUMFLAG = '1'
       GROUP BY GROUPING SETS (TO_CHAR(GH.CREATETIME, 'YYYYMM'),())
  ),
  成型报损 AS
  (
-				SELECT 											
+				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)
@@ -143,8 +143,8 @@ SELECT
             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 (@TESTMOULDFLAG@ IS NULL OR GDD.TESTMOULDFLAG = @TESTMOULDFLAG@)
+			AND (@TESTFLAG@ IS NULL OR GDD.TESTFLAG = @TESTFLAG@)
 			AND GH.DATATYPE IN ( 3, 4 ) 
 			AND G.SCRAPSUMFLAG = '1' 
       GROUP BY GROUPING SETS (TO_CHAR(GH.CREATETIME, 'YYYYMM'),())
@@ -185,8 +185,8 @@ SELECT
 					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 (@TESTMOULDFLAG@ IS NULL OR GDD.TESTMOULDFLAG = @TESTMOULDFLAG@)
+			AND (@TESTFLAG@ IS NULL OR GDD.TESTFLAG = @TESTFLAG@)
 					AND SP.SCRAPTYPE IN (2)
 					GROUP BY TO_CHAR(SP.AUDITDATE, 'YYYYMM')
 					UNION ALL-- 工序报损撤销
@@ -219,8 +219,8 @@ SELECT
 							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 (@TESTMOULDFLAG@ IS NULL OR GDD.TESTMOULDFLAG = @TESTMOULDFLAG@)
+							AND (@TESTFLAG@ IS NULL OR GDD.TESTFLAG = @TESTFLAG@)
 							GROUP BY TO_CHAR(SP.BACKOUTTIME, 'YYYYMM')
 							--  AND SP.SCRAPTYPE IN (0, 2, 3)
 							UNION ALL
@@ -288,8 +288,8 @@ SELECT
 												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 (@TESTMOULDFLAG@ IS NULL OR GDD.TESTMOULDFLAG = @TESTMOULDFLAG@)
+												AND (@TESTFLAG@ IS NULL OR GDD.TESTFLAG = @TESTFLAG@)
 											) T 
 										WHERE
 											T.RK <= 1 
@@ -322,7 +322,7 @@ SELECT
 								END ) AS 二车间,
             SUM(CASE WHEN INSTR(GDD.GROUTINGLINECODE, 'C') = 1 THEN 1 ELSE 0
 						    END ) 三车间,
-						TO_CHAR(SP.AUDITDATE, 'YYYYMMDD') 时间
+						TO_CHAR(SP.AUDITDATE, 'YYYYMM') 时间
 				FROM
 					TP_PM_SCRAPPRODUCT SP
 					INNER JOIN TSAP_HEGII_DATAITEM HGDI ON HGDI.DATACODE IN ( 20,30,40 ) 
@@ -340,10 +340,10 @@ SELECT
                     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 (@TESTMOULDFLAG@ IS NULL OR GDD.TESTMOULDFLAG = @TESTMOULDFLAG@)
+					AND (@TESTFLAG@ IS NULL OR GDD.TESTFLAG = @TESTFLAG@)
 					AND SP.SCRAPTYPE IN (3)
-					GROUP BY TO_CHAR(SP.AUDITDATE, 'YYYYMMDD')
+					GROUP BY TO_CHAR(SP.AUDITDATE, 'YYYYMM')
 					UNION ALL-- 工序报损撤销
 				SELECT
 					SUM(CASE WHEN (INSTR(GDD.GROUTINGLINECODE, 'A') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
@@ -354,7 +354,7 @@ SELECT
 								END ) AS 二车间,
             SUM(CASE WHEN INSTR(GDD.GROUTINGLINECODE, 'C') = 1 THEN -1 ELSE 0
 						    END ) 三车间,
-								TO_CHAR(SP.BACKOUTTIME, 'YYYYMMDD') 时间
+								TO_CHAR(SP.BACKOUTTIME, 'YYYYMM') 时间
 						FROM
 							TP_PM_SCRAPPRODUCT SP
 							INNER JOIN TSAP_HEGII_DATAITEM HGDI ON HGDI.DATACODE IN ( 20,30,40 ) 
@@ -374,9 +374,9 @@ SELECT
                             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 (@TESTMOULDFLAG@ IS NULL OR GDD.TESTMOULDFLAG = @TESTMOULDFLAG@)
+							AND (@TESTFLAG@ IS NULL OR GDD.TESTFLAG = @TESTFLAG@)
+							GROUP BY TO_CHAR(SP.BACKOUTTIME, 'YYYYMM')
 							--  AND SP.SCRAPTYPE IN (0, 2, 3)
 							 UNION ALL
 							-- 干补报损
@@ -385,7 +385,7 @@ 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') 时间
+						TO_CHAR(AUDITDATE, 'YYYYMM') 时间
 						FROM
 							(
 							SELECT
@@ -442,8 +442,8 @@ SELECT
                                                 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 (@TESTMOULDFLAG@ IS NULL OR GDD.TESTMOULDFLAG = @TESTMOULDFLAG@)
+							                    AND (@TESTFLAG@ IS NULL OR GDD.TESTFLAG = @TESTFLAG@)
 											) T 
 										WHERE
 											T.RK <= 1 
@@ -455,7 +455,7 @@ SELECT
 										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')
+									) GROUP BY TO_CHAR(AUDITDATE, 'YYYYMM')
 									)T GROUP BY
 		GROUPING SETS ( T.时间, ( ) )
  ),
@@ -477,7 +477,7 @@ SELECT
 								END ) AS 二车间,
             SUM(CASE WHEN INSTR(GDD.GROUTINGLINECODE, 'C') = 1 THEN 1 ELSE 0
 						    END ) 三车间,
-						TO_CHAR(SP.AUDITDATE, 'YYYYMMDD') 时间
+						TO_CHAR(SP.AUDITDATE, 'YYYYMM') 时间
 				FROM
 					TP_PM_SCRAPPRODUCT SP
 					INNER JOIN TSAP_HEGII_DATAITEM HGDI ON HGDI.DATACODE IN ( 20,30,40 ) 
@@ -495,10 +495,10 @@ SELECT
                      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 (@TESTMOULDFLAG@ IS NULL OR GDD.TESTMOULDFLAG = @TESTMOULDFLAG@)
+							AND (@TESTFLAG@ IS NULL OR GDD.TESTFLAG = @TESTFLAG@)
 					AND SP.SCRAPTYPE IN (0)
-					GROUP BY TO_CHAR(SP.AUDITDATE, 'YYYYMMDD')
+					GROUP BY TO_CHAR(SP.AUDITDATE, 'YYYYMM')
 					UNION ALL-- 工序报损撤销
 				SELECT
 					SUM(CASE WHEN (INSTR(GDD.GROUTINGLINECODE, 'A') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
@@ -509,7 +509,7 @@ SELECT
 								END ) AS 二车间,
             SUM(CASE WHEN INSTR(GDD.GROUTINGLINECODE, 'C') = 1 THEN -1 ELSE 0
 						    END ) 三车间,
-								TO_CHAR(SP.BACKOUTTIME, 'YYYYMMDD') 时间
+								TO_CHAR(SP.BACKOUTTIME, 'YYYYMM') 时间
 						FROM
 							TP_PM_SCRAPPRODUCT SP
 							INNER JOIN TSAP_HEGII_DATAITEM HGDI ON HGDI.DATACODE IN ( 20,30,40 ) 
@@ -528,16 +528,16 @@ SELECT
                              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
+							AND (@TESTMOULDFLAG@ IS NULL OR GDD.TESTMOULDFLAG = @TESTMOULDFLAG@)
+							AND (@TESTFLAG@ IS NULL OR GDD.TESTFLAG = @TESTFLAG@)
+						GROUP BY TO_CHAR(SP.BACKOUTTIME, 'YYYYMM') 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') 时间
+						TO_CHAR(AUDITDATE, 'YYYYMM') 时间
 						FROM
 							(
 							SELECT
@@ -594,8 +594,8 @@ SELECT
                                                 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 (@TESTMOULDFLAG@ IS NULL OR GDD.TESTMOULDFLAG = @TESTMOULDFLAG@)
+							                    AND (@TESTFLAG@ IS NULL OR GDD.TESTFLAG = @TESTFLAG@)
 											) T 
 										WHERE
 											T.RK <= 1 
@@ -607,7 +607,7 @@ SELECT
 										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')
+									)  GROUP BY TO_CHAR(AUDITDATE, 'YYYYMM')
 									)T GROUP BY
 		GROUPING SETS ( T.时间, ( ) )
  ),
@@ -629,7 +629,7 @@ SELECT
 								END ) AS 二车间,
             SUM(CASE WHEN INSTR(GDD.GROUTINGLINECODE, 'C') = 1 THEN 1 ELSE 0
 						    END ) 三车间,
-						TO_CHAR(SP.SPECIALREPAIRTIME, 'YYYYMMDD') 时间
+						TO_CHAR(SP.SPECIALREPAIRTIME, 'YYYYMM') 时间
 			FROM
 				TP_PM_SCRAPPRODUCT SP
 				INNER JOIN TSAP_HEGII_DATAITEM HGDI ON HGDI.DATACODE IN ( '20', '30', '40' ) 
@@ -647,9 +647,9 @@ SELECT
                 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
+				AND (@TESTMOULDFLAG@ IS NULL OR GDD.TESTMOULDFLAG = @TESTMOULDFLAG@)
+				AND (@TESTFLAG@ IS NULL OR GDD.TESTFLAG = @TESTFLAG@)
+			GROUP BY TO_CHAR(SP.SPECIALREPAIRTIME, 'YYYYMM'))T GROUP BY
 		GROUPING SETS ( T.时间, ( ) )
  ),
  出窑数 AS
@@ -662,7 +662,7 @@ SELECT
 					SUM(TT2.出窑数_三部全部) 出窑数_三部全部
 					FROM(
  									SELECT
-										TO_CHAR(TT.CREATETIME, 'YYYYMMDD') AS 时间,
+										TO_CHAR(TT.CREATETIME, 'YYYYMM') AS 时间,
 										SUM(CASE WHEN TT.WORKSHOP = 1 THEN 1 ELSE 0 END) 出窑数_一部全部,
 										SUM(CASE WHEN TT.WORKSHOP = 2 THEN 1 ELSE 0 END) 出窑数_二部全部,
 										SUM(CASE WHEN TT.WORKSHOP = 3 THEN 1 ELSE 0 END) 出窑数_三部全部
@@ -711,8 +711,8 @@ SELECT
                                          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 (@TESTMOULDFLAG@ IS NULL OR GDD.TESTMOULDFLAG = @TESTMOULDFLAG@)
+							            AND (@TESTFLAG@ IS NULL OR GDD.TESTFLAG = @TESTFLAG@)
                                         AND PD.ISREFIRE = '0'
                                         AND PD.Islengbu = '0'
                                         --AND PD.KILNID IN(1,2,5)-- 取本烧的窑炉
@@ -721,7 +721,7 @@ SELECT
                                         --    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
+                     GROUP BY TO_CHAR(TT.CREATETIME, 'YYYYMM') )TT2 GROUP BY
 		GROUPING SETS ( TT2.时间, ( ) )
  ),
  回收数 AS
@@ -785,7 +785,7 @@ SELECT BAR.GOODSCODE,
                                        ELSE
                                         0
                                    END AS WORKSHOP,
-                                   TO_CHAR(GH.FHTIME, 'YYYYMMDD') AS CHARG
+                                   TO_CHAR(GH.FHTIME, 'YYYYMM') AS CHARG
                               FROM TP_PM_GROUTINGDAILYDETAIL BAR
                              INNER JOIN TP_PM_FINISHEDPRODUCT GH
                                 ON BAR.GROUTINGDAILYDETAILID = GH.GROUTINGDAILYDETAILID
@@ -803,8 +803,8 @@ SELECT BAR.GOODSCODE,
                                 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 (@TESTMOULDFLAG@ IS NULL OR GDD.TESTMOULDFLAG = @TESTMOULDFLAG@)
+							AND (@TESTFLAG@ IS NULL OR GDD.TESTFLAG = @TESTFLAG@)
                                AND GH.FHTIME < @DATEEND@ )TT  GROUP BY TT.CHARG )TT2 GROUP BY
 		GROUPING SETS ( TT2.时间, ( ) )
  ),
@@ -869,7 +869,7 @@ SELECT BAR.GOODSCODE,
                                        ELSE
                                         0
                                    END AS WORKSHOP,
-                                   TO_CHAR(GH.FHTIME, 'YYYYMMDD') AS CHARG
+                                   TO_CHAR(GH.FHTIME, 'YYYYMM') AS CHARG
                               FROM TP_PM_GROUTINGDAILYDETAIL BAR
                              INNER JOIN TP_PM_FINISHEDPRODUCT GH
                                 ON BAR.GROUTINGDAILYDETAILID = GH.GROUTINGDAILYDETAILID
@@ -888,8 +888,8 @@ SELECT BAR.GOODSCODE,
                                 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 (@TESTMOULDFLAG@ IS NULL OR GDD.TESTMOULDFLAG = @TESTMOULDFLAG@)
+							AND (@TESTFLAG@ IS NULL OR GDD.TESTFLAG = @TESTFLAG@)
                                 )TT  GROUP BY TT.CHARG)TT2 GROUP BY
 		GROUPING SETS ( TT2.时间, ( ) )
  ),
@@ -941,7 +941,7 @@ SELECT GOODSCODE,
                                             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,
                                             --TO_CHAR(SP.AUDITDATE, 'yyyymm') AS CHARG,
                                             HGDI.WORKSHOP AS HGDIWORKSHOP,
                                             -- 如果参与了重烧,则判断这个条码是否走过3#卸窑
@@ -971,8 +971,8 @@ SELECT GOODSCODE,
                                          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 (@TESTMOULDFLAG@ IS NULL OR GDD.TESTMOULDFLAG = @TESTMOULDFLAG@)
+							AND (@TESTFLAG@ IS NULL OR GDD.TESTFLAG = @TESTFLAG@)
 																				AND PD.ISREFIRE = 0
 																			  AND SP.GOODSLEVELTYPEID in (7)
 																				--AND SP.SCRAPTYPE = 1
@@ -1022,7 +1022,7 @@ SELECT GOODSCODE,
                                             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.BACKOUTTIME, 'YYYYMM')  AS CHARG,
                                             --TO_CHAR(SP.AUDITDATE, 'yyyymm') AS CHARG,
                                             HGDI.WORKSHOP AS HGDIWORKSHOP,
                                             -- 如果参与了重烧,则判断这个条码是否走过3#卸窑
@@ -1052,8 +1052,8 @@ SELECT GOODSCODE,
                                          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 (@TESTMOULDFLAG@ IS NULL OR GDD.TESTMOULDFLAG = @TESTMOULDFLAG@)
+							AND (@TESTFLAG@ IS NULL OR GDD.TESTFLAG = @TESTFLAG@)
 																				AND PD.ISREFIRE = 0
 																				AND SP.GOODSLEVELTYPEID in (7)
 																				--AND SP.SCRAPTYPE = 1
@@ -1099,7 +1099,7 @@ SELECT GOODSCODE,
                                     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
                                     --TO_CHAR(SP.AUDITDATE, 'yyyymm') AS CHARG
                                FROM (SELECT T.*
                                        FROM (SELECT SP.BARCODE,
@@ -1131,8 +1131,8 @@ SELECT GOODSCODE,
                                                  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 (@TESTMOULDFLAG@ IS NULL OR GDD.TESTMOULDFLAG = @TESTMOULDFLAG@)
+							AND (@TESTFLAG@ IS NULL OR GDD.TESTFLAG = @TESTFLAG@)
                                                 ) T
                                       WHERE T.RK <= 1) SP
                               INNER JOIN TSAP_HEGII_DATAITEM HGDI
@@ -1204,7 +1204,7 @@ SELECT GOODSCODE,
                                             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,
                                             --TO_CHAR(SP.AUDITDATE, 'yyyymm') AS CHARG,
                                             HGDI.WORKSHOP AS HGDIWORKSHOP,
                                             -- 如果参与了重烧,则判断这个条码是否走过3#卸窑
@@ -1234,8 +1234,8 @@ SELECT GOODSCODE,
                                          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 (@TESTMOULDFLAG@ IS NULL OR GDD.TESTMOULDFLAG = @TESTMOULDFLAG@)
+							AND (@TESTFLAG@ IS NULL OR GDD.TESTFLAG = @TESTFLAG@)
 																				AND PD.ISREFIRE = 0
 																			  AND SP.GOODSLEVELTYPEID in (8,9)
 																				--AND SP.SCRAPTYPE = 1
@@ -1285,7 +1285,7 @@ SELECT GOODSCODE,
                                             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,
                                             --TO_CHAR(SP.AUDITDATE, 'yyyymm') AS CHARG,
                                             HGDI.WORKSHOP AS HGDIWORKSHOP,
                                             -- 如果参与了重烧,则判断这个条码是否走过3#卸窑
@@ -1315,8 +1315,8 @@ SELECT GOODSCODE,
                                          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 (@TESTMOULDFLAG@ IS NULL OR GDD.TESTMOULDFLAG = @TESTMOULDFLAG@)
+							AND (@TESTFLAG@ IS NULL OR GDD.TESTFLAG = @TESTFLAG@)
 																				AND PD.ISREFIRE = 0
 																				AND SP.GOODSLEVELTYPEID in (8,9)
 																				--AND SP.SCRAPTYPE = 1
@@ -1362,7 +1362,7 @@ SELECT GOODSCODE,
                                     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
                                     --TO_CHAR(SP.AUDITDATE, 'yyyymm') AS CHARG
                                FROM (SELECT T.*
                                        FROM (SELECT SP.BARCODE,
@@ -1396,8 +1396,8 @@ SELECT GOODSCODE,
                                                  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 (@TESTMOULDFLAG@ IS NULL OR GDD.TESTMOULDFLAG = @TESTMOULDFLAG@)
+							AND (@TESTFLAG@ IS NULL OR GDD.TESTFLAG = @TESTFLAG@)
                                                 ) T
                                       WHERE T.RK <= 1) SP
                               INNER JOIN TSAP_HEGII_DATAITEM HGDI
@@ -1470,7 +1470,7 @@ SELECT GOODSCODE,
                                             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,
                                             --TO_CHAR(SP.AUDITDATE, 'yyyymm') AS CHARG,
                                             HGDI.WORKSHOP AS HGDIWORKSHOP,
                                             -- 如果参与了重烧,则判断这个条码是否走过3#卸窑
@@ -1500,8 +1500,8 @@ SELECT GOODSCODE,
                                          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 (@TESTMOULDFLAG@ IS NULL OR GDD.TESTMOULDFLAG = @TESTMOULDFLAG@)
+							AND (@TESTFLAG@ IS NULL OR GDD.TESTFLAG = @TESTFLAG@)
 																				AND PD.ISREFIRE = 6
 																			  AND SP.GOODSLEVELTYPEID in (7)
 																				--AND SP.SCRAPTYPE = 1
@@ -1551,7 +1551,7 @@ SELECT GOODSCODE,
                                             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.BACKOUTTIME, 'YYYYMM')  AS CHARG,
                                             --TO_CHAR(SP.AUDITDATE, 'yyyymm') AS CHARG,
                                             HGDI.WORKSHOP AS HGDIWORKSHOP,
                                             -- 如果参与了重烧,则判断这个条码是否走过3#卸窑
@@ -1581,8 +1581,8 @@ SELECT GOODSCODE,
                                          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 (@TESTMOULDFLAG@ IS NULL OR GDD.TESTMOULDFLAG = @TESTMOULDFLAG@)
+							AND (@TESTFLAG@ IS NULL OR GDD.TESTFLAG = @TESTFLAG@)
 																				AND PD.ISREFIRE = 6
 																				AND SP.GOODSLEVELTYPEID in (7)
 																				--AND SP.SCRAPTYPE = 1
@@ -1628,7 +1628,7 @@ SELECT GOODSCODE,
                                     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
                                     --TO_CHAR(SP.AUDITDATE, 'yyyymm') AS CHARG
                                FROM (SELECT T.*
                                        FROM (SELECT SP.BARCODE,
@@ -1662,8 +1662,8 @@ SELECT GOODSCODE,
                                                  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 (@TESTMOULDFLAG@ IS NULL OR GDD.TESTMOULDFLAG = @TESTMOULDFLAG@)
+							AND (@TESTFLAG@ IS NULL OR GDD.TESTFLAG = @TESTFLAG@)                                                
                             ) T
                                       WHERE T.RK <= 1) SP
                               INNER JOIN TSAP_HEGII_DATAITEM HGDI
@@ -1735,7 +1735,7 @@ SELECT GOODSCODE,
                                             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,
                                             --TO_CHAR(SP.AUDITDATE, 'yyyymm') AS CHARG,
                                             HGDI.WORKSHOP AS HGDIWORKSHOP,
                                             -- 如果参与了重烧,则判断这个条码是否走过3#卸窑
@@ -1765,8 +1765,8 @@ SELECT GOODSCODE,
                                          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 (@TESTMOULDFLAG@ IS NULL OR GDD.TESTMOULDFLAG = @TESTMOULDFLAG@)
+							AND (@TESTFLAG@ IS NULL OR GDD.TESTFLAG = @TESTFLAG@)
 																				AND PD.ISREFIRE = 6
 																			  AND SP.GOODSLEVELTYPEID in (8,9)
 																				--AND SP.SCRAPTYPE = 1
@@ -1816,7 +1816,7 @@ SELECT GOODSCODE,
                                             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,
                                             --TO_CHAR(SP.AUDITDATE, 'yyyymm') AS CHARG,
                                             HGDI.WORKSHOP AS HGDIWORKSHOP,
                                             -- 如果参与了重烧,则判断这个条码是否走过3#卸窑
@@ -1846,8 +1846,8 @@ SELECT GOODSCODE,
                                          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 (@TESTMOULDFLAG@ IS NULL OR GDD.TESTMOULDFLAG = @TESTMOULDFLAG@)
+							AND (@TESTFLAG@ IS NULL OR GDD.TESTFLAG = @TESTFLAG@)
 																				AND PD.ISREFIRE = 6
 																				AND SP.GOODSLEVELTYPEID in (8,9)
 																				--AND SP.SCRAPTYPE = 1
@@ -1893,7 +1893,7 @@ SELECT GOODSCODE,
                                     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
                                     --TO_CHAR(SP.AUDITDATE, 'yyyymm') AS CHARG
                                FROM (SELECT T.*
                                        FROM (SELECT SP.BARCODE,
@@ -1927,8 +1927,8 @@ SELECT GOODSCODE,
                                                  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 (@TESTMOULDFLAG@ IS NULL OR GDD.TESTMOULDFLAG = @TESTMOULDFLAG@)
+							AND (@TESTFLAG@ IS NULL OR GDD.TESTFLAG = @TESTFLAG@)
                                                 ) T
                                       WHERE T.RK <= 1) SP
                               INNER JOIN TSAP_HEGII_DATAITEM HGDI
@@ -1954,7 +1954,7 @@ SELECT GOODSCODE,
  )
 
     SELECT
-	拼接日期.时间,
+		拼接日期.时间,
 	NVL(注浆数.注浆数_一部全部,0) 注浆数_一部全部,
 	NVL(注浆数.注浆数_二部全部,0) 注浆数_二部全部,
 	NVL(注浆数.注浆数_三部全部,0) 注浆数_三部全部,
@@ -1964,36 +1964,36 @@ SELECT GOODSCODE,
 	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) 半成品损坯数_三部全部,
+	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 拼接日期.时间 = 成型报损.时间
@@ -2056,14 +2056,487 @@ SELECT GOODSCODE,
             {
                 //读取报表数据
                 string sqlStr = @"
-                    SELECT 
-                        '测试子表1' AS 测试列1,
-                        '测试子表1' AS 测试列2,
-                        '测试子表1' AS 测试列3,
-                        '测试子表1' AS 测试列4,
-                        '测试子表1' AS 测试列5
-                    FROM 
-                        DUAL
+                    SELECT
+TT.BARCODE
+FROM(
+SELECT GDD.BARCODE,'1' nodetype FROM(
+SELECT s.groutingdailydetailid,s.outputnum,NVL(s.counts,0),NVL(s.countt,0)
+  FROM (SELECT a.groutingdailydetailid,a.outputnum,a.counts,tt.countt
+          FROM (SELECT groutingdailydetailid,outputnum,COUNT(*) counts
+                  FROM (SELECT decode(gh.datatype, 1, 1, -1) outputnum,gdd.groutingdailydetailid
+                          FROM tp_pm_goodschangehistory gh
+                         INNER JOIN tp_pm_groutingdailydetail gdd
+                            ON gdd.groutingdailydetailid = gh.groutingdailydetailid
+                         INNER JOIN tp_mst_goods g
+                            ON g.goodsid = gh.goodsid
+                         INNER JOIN tp_mst_goodstype gt
+                            ON g.goodstypeid = gt.goodstypeid
+                         WHERE gh.createtime >= DATE '2023-11-15'
+                           AND gh.createtime < DATE '2023-11-16'
+                           AND gh.datatype IN (1, 2)
+                           AND g.scrapsumflag = '1')
+                 GROUP BY groutingdailydetailid,outputnum) a
+          LEFT JOIN (SELECT groutingdailydetailid,outputnum,COUNT(*) countt
+                      FROM tsap_hegii_datalog_bg_detail THDBD
+											LEFT JOIN TSAP_HEGII_DATALOG_BG THDB ON THDBD.LOGID = THDB.LOGID
+                     WHERE THDBD.outputnum NOT IN (0)
+										 AND THDB.DATACODE = 20
+										 AND THDB.YYYYMMDD='20231115'
+                     GROUP BY groutingdailydetailid,outputnum) tt
+            ON tt.groutingdailydetailid = a.groutingdailydetailid
+           AND tt.outputnum = a.outputnum ) s
+ WHERE NVL(s.counts,0)!=NVL(s.countt,0))T
+ LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON T.groutingdailydetailid = GDD.groutingdailydetailid
+ UNION ALL
+ SELECT GDD.BARCODE,'2' nodetype FROM(
+ SELECT s.groutingdailydetailid,s.SCRAPNUM,NVL(s.counts,0),NVL(s.countt,0)
+  FROM (SELECT a.groutingdailydetailid,a.SCRAPNUM,a.counts,tt.countt
+          FROM (SELECT
+TT.GROUTINGDAILYDETAILID,
+TT.SCRAPNUM,
+COUNT(*) counts
+FROM(
+SELECT
+	gdd.groutingdailydetailid,
+	 DECODE( GH.DATATYPE, 3, 1, - 1 )SCRAPNUM
+		FROM
+			TP_PM_GOODSCHANGEHISTORY GH
+			INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = GH.GROUTINGDAILYDETAILID
+			INNER JOIN TP_MST_USER U ON U.USERID = GH.USERID
+			INNER JOIN TP_MST_GOODS G ON G.GOODSID = GH.GOODSID
+			INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID 
+		WHERE
+			GH.CREATETIME >= DATE '2023-11-15' 
+			AND GH.CREATETIME < DATE '2023-11-16' 
+			AND GH.DATATYPE IN ( 3, 4 ) 
+			AND G.SCRAPSUMFLAG = '1' 
+		 UNION ALL-- 工序报损
+		SELECT
+		gdd.groutingdailydetailid,
+			1  SCRAPNUM
+				FROM
+					TP_PM_SCRAPPRODUCT SP
+					INNER JOIN TSAP_HEGII_DATAITEM HGDI ON HGDI.DATACODE IN ( 20,30,40 ) 
+					AND HGDI.ITEMTYPE = 2 
+					AND HGDI.ITEMID = SP.PROCEDUREID
+					INNER JOIN TP_PM_PRODUCTIONDATA PD ON PD.PRODUCTIONDATAID = SP.PRODUCTIONDATAID
+					INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = SP.GROUTINGDAILYDETAILID
+					INNER JOIN TP_MST_GOODS G ON G.GOODSID = GDD.GOODSID
+					INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID 
+				WHERE
+					SP.AUDITSTATUS = 1 
+					AND SP.AUDITDATE >= DATE '2023-11-15' 
+					AND SP.AUDITDATE < DATE '2023-11-16' -- AND SP.SCRAPTYPE IN (0, 2, 3)
+					UNION ALL-- 工序报损撤销
+				SELECT
+				gdd.groutingdailydetailid,
+					-1 SCRAPNUM
+						FROM
+							TP_PM_SCRAPPRODUCT SP
+							INNER JOIN TSAP_HEGII_DATAITEM HGDI ON HGDI.DATACODE IN ( 20,30,40 ) 
+							AND HGDI.ITEMTYPE = 2 
+							AND HGDI.ITEMID = SP.PROCEDUREID
+							INNER JOIN TP_PM_PRODUCTIONDATA PD ON PD.PRODUCTIONDATAID = SP.PRODUCTIONDATAID
+							INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = SP.GROUTINGDAILYDETAILID
+							INNER JOIN TP_MST_GOODS G ON G.GOODSID = GDD.GOODSID
+							INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID 
+						WHERE
+							SP.AUDITSTATUS = 1 
+							AND SP.VALUEFLAG = '0' 
+							AND SP.BACKOUTTIME >= DATE '2023-11-15' 
+							AND SP.BACKOUTTIME < DATE '2023-11-16' --  AND SP.SCRAPTYPE IN (0, 2, 3)
+							UNION ALL-- 干补报损
+---------------------------------------------------
+						SELECT
+							groutingdailydetailid,
+							1
+						FROM
+							(
+							SELECT
+								SP.GOODSCODE,
+								GDD.MATERIALCODE SAPCODE,
+								PD.USERCODE,
+								gdd.groutingdailydetailid,
+							CASE
+									
+									WHEN HGDI.WORKSHOP = 2 
+									AND INSTR( GT.GOODSTYPECODE, '001002' ) = 1 THEN
+										1 
+										WHEN HGDI.WORKSHOP = 2 
+										AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1 THEN
+											2 
+											WHEN HGDI.WORKSHOP = 3 THEN
+											3 ELSE 4 
+										END AS WORKSHOP,
+										GDD.TESTMOULDFLAG,
+										G.GOODS_LINE_CODE,
+										TO_CHAR( SP.AUDITDATE, 'yymm' ) || '5000E' AS CHARG --TO_CHAR(SP.AUDITDATE, 'yyyymm') AS CHARG
+										
+									FROM
+										(
+										SELECT
+											T.* 
+										FROM
+											(
+											SELECT
+												SP.BARCODE,
+												SP.GOODSCODE,
+												SP.GROUTINGDAILYDETAILID,
+												PD.PROCEDUREID,
+												PD.PRODUCTIONDATAID,
+												SP.AUDITDATE,
+												RANK ( ) OVER ( PARTITION BY SP.BARCODE ORDER BY PD.PRODUCTIONDATAID DESC ) AS RK 
+											FROM
+												TP_PM_SCRAPPRODUCT SP
+												INNER JOIN TP_PM_PRODUCTIONDATA PD ON SP.BARCODE = PD.BARCODE -- 不包含干补工序
+												
+												AND PD.PROCEDUREID <> 18 -- 要找干补之前的工序
+												
+												AND PD.PRODUCTIONDATAID < SP.PRODUCTIONDATAID 
+												AND PD.VALUEFLAG = '1' 
+											WHERE
+												SP.AUDITSTATUS = 1 
+												AND SP.PROCEDUREID = 18 
+												AND SP.AUDITDATE >= DATE '2023-11-15' 
+												AND SP.AUDITDATE < DATE '2023-11-16' 
+											) T 
+										WHERE
+											T.RK <= 1 
+										) SP
+										INNER JOIN TSAP_HEGII_DATAITEM HGDI ON HGDI.DATACODE IN ( 20,30,40 ) 
+										AND HGDI.ITEMTYPE = 2 
+										AND HGDI.ITEMID = SP.PROCEDUREID
+										INNER JOIN TP_PM_PRODUCTIONDATA PD ON PD.PRODUCTIONDATAID = SP.PRODUCTIONDATAID
+										INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = SP.GROUTINGDAILYDETAILID
+										INNER JOIN TP_MST_GOODS G ON G.GOODSID = PD.GOODSID
+										INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID 
+									) )TT GROUP BY TT.GROUTINGDAILYDETAILID,TT.SCRAPNUM) a
+          LEFT JOIN (SELECT groutingdailydetailid,SCRAPNUM,COUNT(*) countt
+                      FROM tsap_hegii_datalog_bg_detail THDBD
+											LEFT JOIN TSAP_HEGII_DATALOG_BG THDB ON THDBD.LOGID = THDB.LOGID
+                     WHERE THDBD.SCRAPNUM NOT IN (0)
+										 AND THDB.DATACODE IN (20,30,40)
+										 AND THDB.YYYYMMDD='20231115'
+                     GROUP BY groutingdailydetailid,SCRAPNUM) tt
+            ON tt.groutingdailydetailid = a.groutingdailydetailid
+           AND tt.SCRAPNUM = a.SCRAPNUM ) s
+ WHERE NVL(s.counts,0)!=NVL(s.countt,0))T
+ LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON T.groutingdailydetailid = GDD.groutingdailydetailid
+ UNION ALL
+ SELECT GDD.BARCODE,'3' nodetype FROM(
+ SELECT s.groutingdailydetailid,s.outputnum,NVL(s.counts,0),NVL(s.countt,0)
+  FROM (SELECT a.groutingdailydetailid,a.outputnum,a.counts,tt.countt
+          FROM (SELECT groutingdailydetailid,outputnum,COUNT(*) counts
+                  FROM (--20、30、40干补
+									SELECT
+										1 outputnum,
+										groutingdailydetailid
+									FROM
+										(
+										SELECT
+											SP.GOODSCODE,
+											GDD.MATERIALCODE SAPCODE,
+											SP.SPECIALREPAIRUSERCODE USERCODE,
+											gdd.groutingdailydetailid,
+										CASE
+												
+												WHEN HGDI.WORKSHOP = 2 
+												AND INSTR( GT.GOODSTYPECODE, '001002' ) = 1 THEN
+													1 
+													WHEN HGDI.WORKSHOP = 2 
+													AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1 THEN
+														2 
+														WHEN HGDI.WORKSHOP = 3 THEN
+														3 ELSE 4 
+													END AS WORKSHOP,
+													DECODE( GDD.TESTMOULDFLAG, 0, 'C', 1, 'Y', '-' ) AS TESTMOULDFLAG,
+													G.GOODS_LINE_CODE,
+													TO_CHAR( SP.SPECIALREPAIRTIME, 'yymm' ) || '5000E' AS CHARG --TO_CHAR(SP.SPECIALREPAIRTIME, 'yyyymm') AS CHARG
+													
+												FROM
+													TP_PM_SCRAPPRODUCT SP
+													INNER JOIN TSAP_HEGII_DATAITEM HGDI ON HGDI.DATACODE IN ( '20','30','40') 
+													AND HGDI.ITEMTYPE = 2 
+													AND HGDI.ITEMID = SP.PROCEDUREID
+													INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = SP.GROUTINGDAILYDETAILID
+													INNER JOIN TP_MST_GOODS G ON G.GOODSID = GDD.GOODSID
+													INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID 
+												WHERE
+													SP.AUDITSTATUS = 1 
+													AND SP.GOODSLEVELTYPEID = 9 
+													AND SP.SPECIALREPAIRTIME >= DATE '2023-11-15' 
+													AND SP.SPECIALREPAIRTIME < DATE '2023-11-16' 
+												) )
+                 GROUP BY groutingdailydetailid,outputnum) a
+          LEFT JOIN (SELECT groutingdailydetailid,REPAIRNUM outputnum,COUNT(*) countt
+                      FROM tsap_hegii_datalog_bg_detail THDBD
+											LEFT JOIN TSAP_HEGII_DATALOG_BG THDB ON THDBD.LOGID = THDB.LOGID
+                     WHERE THDBD.REPAIRNUM NOT IN (0)
+										 AND THDB.DATACODE IN ('20','30','40')
+										 AND THDB.YYYYMMDD='20231115'
+                     GROUP BY groutingdailydetailid,REPAIRNUM) tt
+            ON tt.groutingdailydetailid = a.groutingdailydetailid
+           AND tt.outputnum = a.outputnum ) s
+ WHERE NVL(s.counts,0)!=NVL(s.countt,0))T
+ LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON T.groutingdailydetailid = GDD.groutingdailydetailid
+ UNION ALL
+SELECT GDD.BARCODE,'4' nodetype FROM(
+SELECT s.groutingdailydetailid,s.outputnum,NVL(s.counts,0),NVL(s.countt,0)
+  FROM (SELECT a.groutingdailydetailid,a.outputnum,a.counts,tt.countt
+          FROM (SELECT groutingdailydetailid,outputnum,COUNT(*) counts
+                  FROM (SELECT 											GROUTINGDAILYDETAILID,
+                            1 OUTPUTNUM
+                      FROM (SELECT CASE
+                                        WHEN T.IS3 > 0 THEN
+                                         3
+                                        WHEN INSTR(T.GOODSTYPECODE, '001002') = 1 THEN
+                                         1
+                                        WHEN INSTR(T.GOODSTYPECODE, '001001') = 1 THEN
+                                         2
+                                        ELSE
+                                         2
+                                    END AS WORKSHOP,
+                                    T.GROUTINGDAILYDETAILID
+                               FROM (SELECT DISTINCT PD.BARCODE,
+                                                     PD.GOODSCODE,
+																										 GDD.GROUTINGDAILYDETAILID,
+                                                     GDD.MATERIALCODE SAPCODE,
+                                                     PD.USERCODE,
+                                                     DECODE(GDD.TESTMOULDFLAG, 0, 'C', 1, 'Y', '-') AS TESTMOULDFLAG,
+                                                     G.GOODS_LINE_CODE,
+                                                     TO_CHAR(PD.CREATETIME, 'yymm') || '5000E' AS CHARG,
+                                                     --TO_CHAR(PD.CREATETIME, 'yyyymm') AS CHARG,
+                                                     HGDI.WORKSHOP AS HGDIWORKSHOP,
+                                                     GT.GOODSTYPECODE,
+                                                     -- 如果3#卸窑(103),就是3车间的
+                                                     (SELECT COUNT(1)
+                                                        FROM TP_PM_PRODUCTIONDATA PD2
+                                                       WHERE PD2.BARCODE = PD.BARCODE
+                                                         AND PD2.PROCEDUREID = 103) AS IS3
+                                       FROM TP_PM_PRODUCTIONDATA PD
+                                      INNER JOIN TSAP_HEGII_DATAITEM HGDI
+                                         ON HGDI.DATACODE = '50'
+                                        AND HGDI.ITEMTYPE = 1
+                                        AND HGDI.ITEMID = PD.PROCEDUREID -- 3#成检交接(本烧重烧共用,且可以改判)
+                                      INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD
+                                         ON GDD.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID
+                                      INNER JOIN TP_MST_GOODS G
+                                         ON G.GOODSID = PD.GOODSID
+                                      INNER JOIN TP_MST_GOODSTYPE GT
+                                         ON G.GOODSTYPEID = GT.GOODSTYPEID
+                                      WHERE PD.CREATETIME >= date'2023-11-15'
+                                        AND PD.CREATETIME < date'2023-11-16'
+                                        AND PD.ISREFIRE = '0'
+                                        AND PD.Islengbu = '0'
+                                        --AND PD.KILNID IN(1,2,5)-- 取本烧的窑炉
+                                        --AND ((HGDI.ITEMID <> 104 AND PD.VALUEFLAG = '1') OR
+                                        --    (HGDI.ITEMID = 104 AND PD.ISREFIRE = '0' AND
+                                        --    PD.CHECKFLAG = '1'))) T
+                                         AND ((HGDI.ITEMID = 11 AND (PD.CHECKFLAG = '1' OR PD.CHECKFLAG IS NULL)) 
+                                          OR (HGDI.ITEMID = 104 AND PD.CHECKFLAG = '1')) ) T
+                             
+                             ))
+                 GROUP BY groutingdailydetailid,outputnum) a
+          LEFT JOIN (SELECT groutingdailydetailid,outputnum,COUNT(*) countt
+                      FROM tsap_hegii_datalog_bg_detail THDBD
+											LEFT JOIN TSAP_HEGII_DATALOG_BG THDB ON THDBD.LOGID = THDB.LOGID
+                     WHERE THDBD.outputnum NOT IN (0)
+										 AND THDB.DATACODE = 50
+										 AND THDB.YYYYMMDD='20231115'
+                     GROUP BY groutingdailydetailid,outputnum) tt
+            ON tt.groutingdailydetailid = a.groutingdailydetailid
+           AND tt.outputnum = a.outputnum ) s
+ WHERE NVL(s.counts,0)!=NVL(s.countt,0)
+															 )T
+ LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON T.groutingdailydetailid = GDD.groutingdailydetailid
+ UNION ALL
+ SELECT GDD.BARCODE,'5' nodetype FROM(
+ SELECT s.groutingdailydetailid,s.outputnum,NVL(s.counts,0),NVL(s.countt,0)
+  FROM (SELECT a.groutingdailydetailid,a.outputnum,a.counts,tt.countt
+          FROM (SELECT groutingdailydetailid,outputnum,COUNT(*) counts
+                  FROM (SELECT 										 	groutingdailydetailid,
+                            1 outputnum
+                      FROM (SELECT 
+                                    T.groutingdailydetailid
+                               FROM (SELECT GDD.groutingdailydetailid
+                                       FROM TP_PM_SCRAPPRODUCT SP
+                                      INNER JOIN TSAP_HEGII_DATAITEM HGDI
+                                         ON HGDI.DATACODE = '50'
+                                        AND HGDI.ITEMTYPE = 2
+                                        AND HGDI.ITEMID = SP.PROCEDUREID
+                                      INNER JOIN TP_PM_PRODUCTIONDATA PD
+                                         ON PD.PRODUCTIONDATAID = SP.PRODUCTIONDATAID
+                                      INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD
+                                         ON GDD.GROUTINGDAILYDETAILID = SP.GROUTINGDAILYDETAILID
+                                      INNER JOIN TP_MST_GOODS G
+                                         ON G.GOODSID = PD.GOODSID
+                                      INNER JOIN TP_MST_GOODSTYPE GT
+                                         ON G.GOODSTYPEID = GT.GOODSTYPEID
+                                      WHERE SP.AUDITSTATUS = 1
+                                        AND SP.AUDITDATE >= date'2023-11-15'
+                                        AND SP.AUDITDATE < date'2023-11-16'
+                                     --AND SP.SCRAPTYPE IN (0, 2, 3) 
+                                     ) T)
+                    ---------------------------------------------------                      
+                    UNION ALL
+                    -- 工序报损撤销
+                    ---------------------------------------------------                      
+                    SELECT  groutingdailydetailid,
+                            -1 SCRAPNUM
+                      FROM (SELECT 
+                                    T.groutingdailydetailid
+                               FROM (SELECT gdd.groutingdailydetailid
+                                       FROM TP_PM_SCRAPPRODUCT SP
+                                      INNER JOIN TSAP_HEGII_DATAITEM HGDI
+                                         ON HGDI.DATACODE = '50'
+                                        AND HGDI.ITEMTYPE = 2
+                                        AND HGDI.ITEMID = SP.PROCEDUREID
+                                      INNER JOIN TP_PM_PRODUCTIONDATA PD
+                                         ON PD.PRODUCTIONDATAID = SP.PRODUCTIONDATAID
+                                      INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD
+                                         ON GDD.GROUTINGDAILYDETAILID = SP.GROUTINGDAILYDETAILID
+                                      INNER JOIN TP_MST_GOODS G
+                                         ON G.GOODSID = PD.GOODSID
+                                      INNER JOIN TP_MST_GOODSTYPE GT
+                                         ON G.GOODSTYPEID = GT.GOODSTYPEID
+                                      WHERE SP.AUDITSTATUS = 1
+                                        AND SP.BACKOUTTIME >= date'2023-11-15'
+                                        AND SP.BACKOUTTIME < date'2023-11-16'
+                                     --AND SP.SCRAPTYPE IN (0, 2, 3) 
+                                     ) T)
+                    
+                    ---------------------------------------------------         
+                    UNION ALL
+                    -- 干补报损
+                    ---------------------------------------------------       
+                    SELECT groutingdailydetailid,
+                            1
+                      FROM (SELECT SP.groutingdailydetailid
+                               FROM (SELECT T.*
+                                       FROM (SELECT SP.BARCODE,
+                                                    SP.GOODSCODE,
+                                                    SP.groutingdailydetailid,
+                                                    PD.PROCEDUREID,
+                                                    PD.PRODUCTIONDATAID,
+                                                    SP.AUDITDATE,
+                                                    RANK() OVER(PARTITION BY SP.BARCODE ORDER BY PD.PRODUCTIONDATAID DESC) AS RK
+                                               FROM TP_PM_SCRAPPRODUCT SP
+                                              INNER JOIN TP_PM_PRODUCTIONDATA PD
+                                                 ON SP.BARCODE = PD.BARCODE
+                                                   -- 不包含干补工序
+                                                AND PD.PROCEDUREID <> 18
+                                                   -- 要找干补之前的工序
+                                                AND PD.PRODUCTIONDATAID < SP.PRODUCTIONDATAID
+                                                AND PD.VALUEFLAG = '1'
+                                              WHERE SP.AUDITSTATUS = 1
+                                                AND SP.PROCEDUREID = 18
+                                                AND SP.AUDITDATE >= date'2023-11-15'
+                                                AND SP.AUDITDATE < date'2023-11-16') T
+                                      WHERE T.RK <= 1) SP
+                              INNER JOIN TSAP_HEGII_DATAITEM HGDI
+                                 ON HGDI.DATACODE = '50'
+                                AND HGDI.ITEMTYPE = 2
+                                AND HGDI.ITEMID = SP.PROCEDUREID
+                              INNER JOIN TP_PM_PRODUCTIONDATA PD
+                                 ON PD.PRODUCTIONDATAID = SP.PRODUCTIONDATAID
+                              INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD
+                                 ON GDD.GROUTINGDAILYDETAILID = SP.GROUTINGDAILYDETAILID
+                              INNER JOIN TP_MST_GOODS G
+                                 ON G.GOODSID = PD.GOODSID
+                              INNER JOIN TP_MST_GOODSTYPE GT
+                                 ON G.GOODSTYPEID = GT.GOODSTYPEID))
+                 GROUP BY groutingdailydetailid,outputnum) a
+          LEFT JOIN (SELECT groutingdailydetailid,outputnum,COUNT(*) countt
+                      FROM tsap_hegii_datalog_bg_detail THDBD
+											LEFT JOIN TSAP_HEGII_DATALOG_BG THDB ON THDBD.LOGID = THDB.LOGID
+                     WHERE THDBD.SCRAPNUM NOT IN (0)
+										 AND THDB.DATACODE IN (50)
+										 AND THDB.YYYYMMDD='20231115'
+                     GROUP BY groutingdailydetailid,outputnum) tt
+            ON tt.groutingdailydetailid = a.groutingdailydetailid
+           AND tt.outputnum = a.outputnum ) s
+ WHERE NVL(s.counts,0)!=NVL(s.countt,0) )T
+ LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON T.groutingdailydetailid = GDD.groutingdailydetailid
+ UNION ALL
+ SELECT GDD.BARCODE,'6' nodetype FROM(
+ SELECT s.groutingdailydetailid,s.outputnum,NVL(s.counts,0),NVL(s.countt,0)
+  FROM (SELECT a.groutingdailydetailid,a.outputnum,a.counts,tt.countt
+          FROM (SELECT groutingdailydetailid,outputnum,COUNT(*) counts
+                  FROM (SELECT 										 T.GROUTINGDAILYDETAILID,
+                           DECODE(T.RECYCLINGFLAG, '0', 0, 1) outputnum
+                      FROM (SELECT 
+                                   BAR.RECYCLINGFLAG,
+																	 BAR.GROUTINGDAILYDETAILID,
+                                   TO_CHAR(GH.FHTIME, 'yyyymm') AS CHARG
+                              FROM TP_PM_GROUTINGDAILYDETAIL BAR
+                             INNER JOIN TP_PM_FINISHEDPRODUCT GH
+                                ON BAR.GROUTINGDAILYDETAILID = GH.GROUTINGDAILYDETAILID
+                             INNER JOIN TP_MST_GOODS G
+                                ON G.GOODSID = BAR.GOODSID
+                             INNER JOIN TP_MST_GOODSTYPE GT
+                                ON GT.GOODSTYPEID = G.GOODSTYPEID
+                              LEFT JOIN TP_PM_ORDER O
+                                ON O.ORDERID = GH.FHORDERID
+                             WHERE GH.FHUSERID IS NOT NULL
+                               AND GH.FHTIME >= date'2023-11-15'
+                               AND GH.FHTIME < date'2023-11-16') T)
+                 GROUP BY groutingdailydetailid,outputnum) a
+          LEFT JOIN ( SELECT T1.groutingdailydetailid,T1.OUTPUTNUM,COUNT(*) countt FROM (
+										 SELECT DISTINCT TPF.groutingdailydetailid,DECODE(BAR.RECYCLINGFLAG, '0', 0, 1) outputnum FROM TSAP_HEGII_WORKDATA_BG TSH
+										 INNER JOIN TP_PM_FINISHEDPRODUCT TPF ON TSH.LOGID = TPF.BGLOGID
+										 INNER JOIN TP_PM_GROUTINGDAILYDETAIL BAR ON TPF.groutingdailydetailid = BAR.groutingdailydetailid
+										 WHERE 
+										 TSH.CREATETIME>=DATE'2023-11-15'
+										 AND TSH.CREATETIME<DATE'2023-11-16'
+										 AND TPF.CREATETIME>=DATE'2023-11-14'
+										 AND TPF.CREATETIME<DATE'2023-11-16'
+										 AND TPF.VALUEFLAG = 1
+										 and TSH.DATACODE = 60
+										 AND TSH.outputnum NOT IN (0))T1 GROUP BY T1.groutingdailydetailid,T1.OUTPUTNUM) tt
+            ON tt.groutingdailydetailid = a.groutingdailydetailid
+           AND tt.outputnum = a.outputnum ) s
+ WHERE NVL(s.counts,0)!=NVL(s.countt,0))T
+ LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON T.groutingdailydetailid = GDD.groutingdailydetailid
+ UNION ALL
+  SELECT GDD.BARCODE,'7' nodetype FROM(
+ SELECT s.groutingdailydetailid,s.outputnum,NVL(s.counts,0),NVL(s.countt,0)
+  FROM (SELECT a.groutingdailydetailid,a.outputnum,a.counts,tt.countt
+          FROM (SELECT groutingdailydetailid,outputnum,COUNT(*) counts
+                  FROM (SELECT 										 T1.GROUTINGDAILYDETAILID,
+                           DECODE(T1.RECYCLINGFLAG, '1', 0, 1) OUTPUTNUM
+                      FROM (SELECT 
+                                   BAR.RECYCLINGFLAG,
+																	 BAR.GROUTINGDAILYDETAILID,
+                                   TO_CHAR(GH.FHTIME, 'yyyymm') AS CHARG
+                              FROM TP_PM_GROUTINGDAILYDETAIL BAR
+                             INNER JOIN TP_PM_FINISHEDPRODUCT GH
+                                ON BAR.GROUTINGDAILYDETAILID = GH.GROUTINGDAILYDETAILID
+                             INNER JOIN TP_MST_GOODS G
+                                ON G.GOODSID = BAR.GOODSID
+                             INNER JOIN TP_MST_GOODSTYPE GT
+                                ON GT.GOODSTYPEID = G.GOODSTYPEID
+                              LEFT JOIN TP_PM_ORDER O
+                                ON O.ORDERID = GH.FHORDERID
+                             WHERE GH.FHUSERID IS NOT NULL
+                               AND GH.FHTIME >= date'2023-11-15'
+                               AND GH.FHTIME < date'2023-11-16') T1)
+                 GROUP BY groutingdailydetailid,outputnum) a
+          LEFT JOIN ( SELECT T1.groutingdailydetailid,T1.OUTPUTNUM,COUNT(*) countt FROM (
+										 SELECT DISTINCT TPF.groutingdailydetailid,DECODE(BAR.RECYCLINGFLAG, '1', 0, 1) OUTPUTNUM FROM TSAP_HEGII_WORKDATA_BG TSH
+										 INNER JOIN TP_PM_FINISHEDPRODUCT TPF ON TSH.LOGID = TPF.BGLOGID
+										 INNER JOIN TP_PM_GROUTINGDAILYDETAIL BAR ON TPF.groutingdailydetailid = BAR.groutingdailydetailid
+										 WHERE 
+										 TSH.CREATETIME>=DATE'2023-11-15'
+										 AND TSH.CREATETIME<DATE'2023-11-16'
+										 AND TPF.CREATETIME>=DATE'2023-11-14'
+										 AND TPF.CREATETIME<DATE'2023-11-16'
+										 AND TPF.VALUEFLAG = 1
+										 and TSH.DATACODE = 60
+										 AND TSH.outputnum NOT IN (0))T1 GROUP BY T1.groutingdailydetailid,T1.OUTPUTNUM) tt
+            ON tt.groutingdailydetailid = a.groutingdailydetailid
+           AND tt.outputnum = a.outputnum ) s
+ WHERE NVL(s.counts,0)!=NVL(s.countt,0))T
+ LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON T.groutingdailydetailid = GDD.groutingdailydetailid) TT WHERE TT.nodetype = 4
                 ";
 
                 List<CDAParameter> sqlPara = new List<CDAParameter>();

+ 10 - 2
wwwroot/mes/rpt2/rpt8009/rpt_index.html

@@ -49,6 +49,8 @@
                                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>
+                        差异标识
+                        <input class="easyui-checkbox" id="chkAll" name="chkAll" onclick="difference()">
                     </div>
                 </form>
             </div>
@@ -67,14 +69,14 @@
                     </thead>
                 </table>
             </div>
-            <!--<div title="表名明细表1">
+            <div title="报工差异明细">
                 <table class="easyui-datagrid"
                        id="DataGrid1"
                        data-options="method:'get',border:false,singleSelect:true,fit:true,fitColumns:true">
                     <thead>
                     </thead>
                 </table>
-            </div>-->
+            </div>
             <!--<div title="表名明细表2">
                 <table class="easyui-datagrid"
                        id="DataGrid2"
@@ -113,6 +115,12 @@
             });
         }
 
+        //差异更改时间
+        function difference()
+        {
+            console.log(1);
+        }
+
         //主表双击事件
         function dgDblclickrow(index, row) {
             //$("#tableTabs").tabs("select", 1);

BIN
wwwroot/mes/upload/2023-12-22/研发实验单2023-12-22.xlsx