张忠帅 1 год назад
Родитель
Сommit
f6e462dcbd

+ 64 - 34
wwwroot/mes/rpt/rpt102/rpt.ashx

@@ -24,6 +24,14 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                 DateTime dateEnd = Convert.ToDateTime(context.Request["dateendMaster"]);
                 string procedure = context.Request["procedureMaster"];
                 string sqlStr = "";
+                  int day = Convert.ToInt32(DateTime.Now.ToString("dd"));
+		    string first = "(ADD_MONTHS(TRUNC(SYSDATE, 'MM'), -1) + 25 )";
+            string second = " (ADD_MONTHS(TRUNC(SYSDATE, 'MM'), 0) + 25)+23/24 +59/(24*60)+59/(24*60*60)";
+            if (day > 25)
+            {
+                first = "(ADD_MONTHS(TRUNC(SYSDATE, 'MM'), 0) + 25)";
+                second = "(ADD_MONTHS(TRUNC(SYSDATE, 'MM'), 1) + 25)+23/24 +59/(24*60)+59/(24*60*60)";
+            }
             //主表
             if (context.Request["m"].ToString() == "master")
             {
@@ -116,8 +124,8 @@ FROM(
                                             LEFT JOIN TP_MST_GOODS gd ON gd.GOODSID=pd.GOODSID
 											LEFT  JOIN TP_PM_PRODUCTIONDATA pds ON PDS.BARCODE=PD.BARCODE AND PDS.PROCEDUREID=60 AND PDS.VALUEFLAG=1
                                             WHERE pd.VALUEFLAG=1
-                                             AND pd.CREATETIME>=  (ADD_MONTHS(TRUNC(SYSDATE, 'MM'), -1) + 25)
-                                            AND pd.CREATETIME<= (ADD_MONTHS(TRUNC(SYSDATE, 'MM'), 0) + 24)+23/24 +59/(24*60)  
+                                             AND pd.CREATETIME>=  {first}
+                                            AND pd.CREATETIME<=  {second}
                                             AND pd.PROCEDUREID =16
                                             
                                             )P
@@ -203,19 +211,15 @@ FROM(
 																										 ELSE NULL END GOODSLEVELTYPEID,
                                             pd.GOODSCODE AS GOODSCODE,
                                             gd.UNITPRICE,
-																						 CASE WHEN PDS.GOODSLEVELTYPEID < PD.GOODSLEVELTYPEID  THEN PD.CREATETIME 
-																								WHEN PD.GOODSLEVELTYPEID  < PDS.GOODSLEVELTYPEID THEN PDS.CREATETIME
-																								WHEN PDS.GOODSLEVELTYPEID IS NULL  THEN PD.CREATETIME
-																								WHEN PD.GOODSLEVELTYPEID  = PDS.GOODSLEVELTYPEID THEN PD.CREATETIME
-																										 ELSE NULL END CREATETIME
+											pd.CREATETIME 
                                             FROM 
                                             TP_PM_PRODUCTIONDATA pd
                                             LEFT JOIN TP_MST_GOODS gd ON gd.GOODSID=pd.GOODSID
 																						LEFT  JOIN TP_PM_PRODUCTIONDATA pds ON PDS.BARCODE=PD.BARCODE AND PDS.PROCEDUREID=60 AND PDS.VALUEFLAG=1
                                            WHERE 
     pd.VALUEFLAG = 1
-    AND pd.CREATETIME >= TO_date((EXTRACT(YEAR FROM SYSDATE) - 1)||'-12-26 00:00:00', 'yyyy-mm-dd hh24:mi:ss')
-    AND pd.CREATETIME < TO_date((EXTRACT(YEAR FROM SYSDATE) )||'12-26 00:00:00', 'yyyy-mm-dd hh24:mi:ss')
+    AND pd.CREATETIME >= TO_date((EXTRACT(YEAR FROM SYSDATE) - 1)||' 12-26 00:00:00', 'yyyy-mm-dd hh24:mi:ss')
+    AND pd.CREATETIME < TO_date( ( EXTRACT( YEAR FROM SYSDATE ) ) || '12-25 23:59:59', 'yyyy-mm-dd hh24:mi:ss' ) 
     AND pd.PROCEDUREID =16
 
 
@@ -267,7 +271,7 @@ FROM(
                                             LEFT JOIN TP_MST_GOODS gd ON gd.GOODSID=pd.GOODSID
 											LEFT  JOIN TP_PM_PRODUCTIONDATA pds ON PDS.BARCODE=PD.BARCODE AND PDS.PROCEDUREID=60 AND PDS.VALUEFLAG=1
                                             WHERE pd.VALUEFLAG=1
-                                              AND pd.CREATETIME >= TO_date((EXTRACT(YEAR FROM SYSDATE) - 1)||'-12-26 00:00:00', 'yyyy-mm-dd hh24:mi:ss')
+                                              AND pd.CREATETIME >= TO_date((EXTRACT(YEAR FROM SYSDATE) - 1)||'12-26 00:00:00', 'yyyy-mm-dd hh24:mi:ss')
 																				AND pd.CREATETIME < TO_date((EXTRACT(YEAR FROM SYSDATE) )||'12-26 00:00:00', 'yyyy-mm-dd hh24:mi:ss')
                                         AND pd.PROCEDUREID =16
 											) )
@@ -275,7 +279,7 @@ FROM(
 										GROUP BY  GOODSCODE,UNITPRICE
                                         )
 
-) ORDER BY DECODE(窑炉, '日合计', 1, '月度累计', 2),窑炉 ";
+) ORDER BY DECODE(窑炉, '日合计', 1, '月度累计', 2),窑炉 ".Replace("{first}",first).Replace("{second}",second);;
 
 
                 }
@@ -371,8 +375,8 @@ FROM(
 																						LEFT  JOIN TP_PM_PRODUCTIONDATA pds ON PDS.BARCODE=PD.BARCODE AND PDS.PROCEDUREID=60 AND PDS.VALUEFLAG=1
                                            INNER  JOIN TP_PM_PRODUCTIONDATA PDL ON PDL.BARCODE=PD.BARCODE AND PDL.PROCEDUREID=24
                                         WHERE pd.VALUEFLAG=1
-                                        AND pd.CREATETIME>  (ADD_MONTHS(TRUNC(SYSDATE, 'MM'), -1) + 25)
-                                        AND pd.CREATETIME< (ADD_MONTHS(TRUNC(SYSDATE, 'MM'), 0) + 24)+23/24 +59/(24*60)  
+                                        AND pd.CREATETIME>  {first}
+                                        AND pd.CREATETIME<  {second}
                                         AND pd.PROCEDUREID = 28
                                             
                                             )P
@@ -469,7 +473,7 @@ FROM(
 																						LEFT  JOIN TP_PM_PRODUCTIONDATA pds ON PDS.BARCODE=PD.BARCODE AND PDS.PROCEDUREID=60 AND PDS.VALUEFLAG=1
                                          INNER  JOIN TP_PM_PRODUCTIONDATA PDL ON PDL.BARCODE=PD.BARCODE AND PDL.PROCEDUREID=24
                                         WHERE pd.VALUEFLAG=1
-                                        AND pd.CREATETIME >= TO_date((EXTRACT(YEAR FROM SYSDATE) - 1)||'-12-26 00:00:00', 'yyyy-mm-dd hh24:mi:ss')
+                                        AND pd.CREATETIME >= TO_date((EXTRACT(YEAR FROM SYSDATE) - 1)||'12-26 00:00:00', 'yyyy-mm-dd hh24:mi:ss')
 																				AND pd.CREATETIME < TO_date((EXTRACT(YEAR FROM SYSDATE) )||'12-26 00:00:00', 'yyyy-mm-dd hh24:mi:ss')
                                         AND pd.PROCEDUREID = 28
 
@@ -523,7 +527,7 @@ union ALL
 																						LEFT  JOIN TP_PM_PRODUCTIONDATA pds ON PDS.BARCODE=PD.BARCODE AND PDS.PROCEDUREID=60 AND PDS.VALUEFLAG=1
                                            	INNER  JOIN TP_PM_PRODUCTIONDATA PDL ON PDL.BARCODE=PD.BARCODE AND PDL.PROCEDUREID=24
                                         WHERE pd.VALUEFLAG=1
-                                        AND pd.CREATETIME >= TO_date((EXTRACT(YEAR FROM SYSDATE) - 1)||'-12-26 00:00:00', 'yyyy-mm-dd hh24:mi:ss')
+                                        AND pd.CREATETIME >= TO_date((EXTRACT(YEAR FROM SYSDATE) - 1)||'12-26 00:00:00', 'yyyy-mm-dd hh24:mi:ss')
 																				AND pd.CREATETIME < TO_date((EXTRACT(YEAR FROM SYSDATE) )||'12-26 00:00:00', 'yyyy-mm-dd hh24:mi:ss')
                                         AND pd.PROCEDUREID = 28
 											) )
@@ -531,7 +535,7 @@ union ALL
 										GROUP BY  GOODSCODE,UNITPRICE
                                         )
 
-) ORDER BY DECODE(窑炉, '日合计', 1, '月度累计', 2),窑炉 ";
+) ORDER BY DECODE(窑炉, '日合计', 1, '月度累计', 2),窑炉 ".Replace("{first}",first).Replace("{second}",second);;
                 }
                 else if (procedure == "冷修") {
                     sqlStr = @"SELECT
@@ -624,8 +628,8 @@ FROM(
 																						LEFT  JOIN TP_PM_PRODUCTIONDATA pds ON PDS.BARCODE=PD.BARCODE AND PDS.PROCEDUREID=60 AND PDS.VALUEFLAG=1
                                            INNER  JOIN TP_PM_PRODUCTIONDATA PDL ON PDL.BARCODE=PD.BARCODE AND PDL.PROCEDUREID=42
                                         WHERE pd.VALUEFLAG=1
-                                        AND pd.CREATETIME>  (ADD_MONTHS(TRUNC(SYSDATE, 'MM'), -1) + 25)
-                                        AND pd.CREATETIME< (ADD_MONTHS(TRUNC(SYSDATE, 'MM'), 0) + 24)+23/24 +59/(24*60)  
+                                        AND pd.CREATETIME>  {first}
+                                        AND pd.CREATETIME<  {second}
                                         AND pd.PROCEDUREID = 28
                                             
                                             )P
@@ -739,13 +743,7 @@ FROM(
                                         )
 										GROUP BY month_group 
 
-) ORDER BY DECODE(窑炉, '日合计', 1, '月度累计', 2),窑炉
-
-
-
-
-
-                    ";
+) ORDER BY DECODE(窑炉, '日合计', 1, '月度累计', 2),窑炉".Replace("{first}",first).Replace("{second}",second);;
 
                 }
 
@@ -758,11 +756,19 @@ FROM(
                 if (procedure == "本烧")
                 {
                     sqlStr = @" SELECT
+ CASE WHEN  GROUPING_ID(产品编码,产品名称,产品单价) =7 THEN '合计'
+ ELSE TO_CHAR(产品编码) END 产品编码,
+产品名称,
+产品单价,
+SUM(产品产量) 产品产量,
+SUM(产值) 产值
+FROM(
+SELECT
 																						GOODSCODE AS 产品编码,
 																						GOODSNAME AS 产品名称,
                                             UNITPRICE AS 产品单价,
                                             COUNT(DISTINCT CASE WHEN  GOODSLEVELTYPEID IN (4,5) THEN BARCODE ELSE NULL END) AS 产品产量,
-                                            TO_CHAR(( NVL( SUM(CASE WHEN PROCEDUREID=16  AND GOODSLEVELTYPEID in (4,5)  THEN 1 ELSE 0 END), 0 ) * UNITPRICE ))   AS 产值
+                                            (( NVL( SUM(CASE WHEN PROCEDUREID=16  AND GOODSLEVELTYPEID in (4,5)  THEN 1 ELSE 0 END), 0 ) * UNITPRICE ))   AS 产值
 	                                     FROM(
 	                                        SELECT
 	                                        BARCODE,PROCEDUREID,GOODSLEVELTYPEID,GOODSCODE,UNITPRICE,GOODSNAME,
@@ -790,18 +796,31 @@ FROM(
                                             AND pd.PROCEDUREID =16
 											) )
 										WHERE rownums=1
-										GROUP BY  GOODSCODE,GOODSNAME,UNITPRICE  ";
+										GROUP BY GOODSCODE,GOODSNAME,UNITPRICE
+										)
+										  GROUP BY
+												Grouping sets ( (产品编码,产品名称,产品单价),())  ";
 
 
                 }
                 else if (procedure == "回烧")
                 {
-                    sqlStr = @" SELECT
+                    sqlStr = @" 
+
+SELECT
+ CASE WHEN  GROUPING_ID(产品编码,产品名称,产品单价) =7 THEN '合计'
+ ELSE TO_CHAR(产品编码) END 产品编码,
+产品名称,
+产品单价,
+SUM(产品产量) 产品产量,
+SUM(产值) 产值
+FROM(
+SELECT
 																						GOODSCODE AS 产品编码,
 																						GOODSNAME AS 产品名称,
                                             UNITPRICE AS 产品单价,
                                             COUNT(DISTINCT CASE WHEN  GOODSLEVELTYPEID IN (4,5) THEN BARCODE ELSE NULL END) AS 产品产量,
-                                            TO_CHAR(( NVL( SUM(CASE WHEN PROCEDUREID=28  AND GOODSLEVELTYPEID in (4,5)  THEN 1 ELSE 0 END), 0 ) * UNITPRICE ))   AS 产值
+                                            (( NVL( SUM(CASE WHEN PROCEDUREID=28  AND GOODSLEVELTYPEID in (4,5)  THEN 1 ELSE 0 END), 0 ) * UNITPRICE ))   AS 产值
 	                                     FROM(
 	                                        SELECT
 	                                        BARCODE,PROCEDUREID,GOODSLEVELTYPEID,GOODSCODE,UNITPRICE,GOODSNAME,
@@ -822,7 +841,7 @@ FROM(
                                             FROM 
                                             TP_PM_PRODUCTIONDATA pd
                                             LEFT JOIN TP_MST_GOODS gd ON gd.GOODSID=pd.GOODSID
-											INNER  JOIN TP_PM_PRODUCTIONDATA PDL ON PDL.BARCODE=PD.BARCODE AND PDL.PROCEDUREID=42
+											INNER  JOIN TP_PM_PRODUCTIONDATA PDL ON PDL.BARCODE=PD.BARCODE AND PDL.PROCEDUREID=61
 											LEFT  JOIN TP_PM_PRODUCTIONDATA pds ON PDS.BARCODE=PD.BARCODE AND PDS.PROCEDUREID=24
                                            WHERE pd.VALUEFLAG=1
                                         AND pd.CREATETIME>= @DATETIME@
@@ -830,15 +849,24 @@ FROM(
                                         AND pd.PROCEDUREID = 28
 											) )
 										WHERE rownums=1
-										GROUP BY  GOODSCODE,GOODSNAME,UNITPRICE   ";
+										GROUP BY  GOODSCODE,GOODSNAME,UNITPRICE  )
+										  GROUP BY
+												Grouping sets ( (产品编码,产品名称,产品单价),()) ";
                 }
                 else if (procedure == "冷修") {
                     sqlStr = @" SELECT
+ CASE WHEN  GROUPING_ID(产品编码,产品名称,产品单价) =7 THEN '合计'
+ ELSE TO_CHAR(产品编码) END 产品编码,
+产品名称,
+产品单价,
+SUM(产品产量) 产品产量,
+SUM(产值) 产值
+FROM(  SELECT
 																						GOODSCODE AS 产品编码,
 																						GOODSNAME AS 产品名称,
                                             UNITPRICE AS 产品单价,
                                             COUNT(DISTINCT CASE WHEN  GOODSLEVELTYPEID IN (4,5) THEN BARCODE ELSE NULL END) AS 产品产量,
-                                            TO_CHAR(( NVL( SUM(CASE WHEN PROCEDUREID=28  AND GOODSLEVELTYPEID in (4,5)  THEN 1 ELSE 0 END), 0 ) * UNITPRICE ))   AS 产值
+                                            (( NVL( SUM(CASE WHEN PROCEDUREID=28  AND GOODSLEVELTYPEID in (4,5)  THEN 1 ELSE 0 END), 0 ) * UNITPRICE ))   AS 产值
 	                                     FROM(
 	                                        SELECT
 	                                        BARCODE,PROCEDUREID,GOODSLEVELTYPEID,GOODSCODE,UNITPRICE,GOODSNAME,
@@ -860,14 +888,16 @@ FROM(
                                             TP_PM_PRODUCTIONDATA pd
                                             LEFT JOIN TP_MST_GOODS gd ON gd.GOODSID=pd.GOODSID
 											INNER  JOIN TP_PM_PRODUCTIONDATA PDL ON PDL.BARCODE=PD.BARCODE AND PDL.PROCEDUREID=42
-											LEFT  JOIN TP_PM_PRODUCTIONDATA pds ON PDS.BARCODE=PD.BARCODE AND PDS.PROCEDUREID=60 AND PDS.VALUEFLAG=1
+											LEFT  JOIN TP_PM_PRODUCTIONDATA pds ON PDS.BARCODE=PD.BARCODE AND PDS.PROCEDUREID=61 AND PDS.VALUEFLAG=1
                                            WHERE pd.VALUEFLAG=1
                                         AND pd.CREATETIME>= @DATETIME@
                                          AND pd.CREATETIME<=  @dateEnd@
                                         AND pd.PROCEDUREID = 28
 											) )
 										WHERE rownums=1
-										GROUP BY  GOODSCODE,GOODSNAME,UNITPRICE  ";
+										GROUP BY  GOODSCODE,GOODSNAME,UNITPRICE )
+										  GROUP BY
+												Grouping sets ( (产品编码,产品名称,产品单价),()) ";
 
                 }
             }

+ 10 - 10
wwwroot/mes/rpt/rpt201/rpt.ashx

@@ -44,7 +44,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                             FROM
 	                            TP_MST_DEFECT MDF 
                             WHERE
-	                            MDF.DEFECTTYPEID = 1 
+	                              ( MDF.DEFECTTYPEID = 1  OR MDF.DEFECTCODE ='99')
 	                            AND MDF.VALUEFLAG = 1 ORDER BY  MDF.DEFECTID");
                 for (int i = 0; i < dt.Rows.Count; i++) {
                     if (i > 0) defect += ",";
@@ -53,12 +53,12 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                 string sumdefect = "";
                 DataTable dts = conn.ExecuteDatatable(@"	SELECT DISTINCT
 	                            MDF.DEFECTID,
-	                            'TO_CHAR(SUM( CASE WHEN DF.DEFECTCODE = '''||DEFECTCODE||''' THEN 1 ELSE 0 END ))' AS DEFECTCODE,
+	                             'TO_CHAR( COUNT( DISTINCT  CASE WHEN   DF.DEFECTCODE IS NOT NULL  AND  DF.DEFECTCODE = '''||MDF.DEFECTCODE||''' THEN to_char(pd.BARCODE||DF.DEFECTCODE ) ELSE NULL END ) )' AS DEFECTCODE,
 	                            MDF.DEFECTNAME 
                             FROM
 	                            TP_MST_DEFECT MDF 
                             WHERE
-	                            MDF.DEFECTTYPEID = 1 
+	                              ( MDF.DEFECTTYPEID = 1  OR MDF.DEFECTCODE ='99')
 	                            AND MDF.VALUEFLAG = 1 ORDER BY  MDF.DEFECTID");
                 for (int i = 0; i < dts.Rows.Count; i++) {
                     if (i > 0) sumdefect += ",";
@@ -75,13 +75,13 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 	                                TO_CHAR(TP_MST_DataDictionary.DICTIONARYVALUE) AS 釉色,
 	                                TO_CHAR(logo.LOGONAME) AS 商标,
 	                                TO_CHAR(COUNT(DISTINCT PD.BARCODE)) 出窑量,
-                                                                      TO_CHAR(COUNT( DISTINCT CASE WHEN  MDF.DEFECTTYPEID=1 AND MDF.DEFECTCODE IS NOT NULL AND DF.BARCODE IS NOT NULL THEN TO_CHAR(DF.BARCODE||MDF.DEFECTCODE) ELSE NULL END )) AS 缺陷量,
+                                    TO_CHAR(COUNT( DISTINCT CASE WHEN  (  MDF.DEFECTTYPEID=1 OR MDF.DEFECTCODE='99' ) AND MDF.DEFECTCODE IS NOT NULL AND DF.BARCODE IS NOT NULL THEN TO_CHAR(DF.BARCODE||MDF.DEFECTCODE) ELSE NULL END )) AS 缺陷量,
 	                                TO_CHAR((COUNT( DISTINCT CASE WHEN MDF.DEFECTCODE IS NOT NULL AND DF.BARCODE IS NOT NULL  THEN DF.BARCODE ELSE NULL END )/COUNT(DISTINCT PD.BARCODE) * 100), 'fm99990.00') || '%' 缺陷率,
                                     {DEFECT}
                                 FROM
 	                              TP_PM_PRODUCTIONDATA PD
-                                  LEFT JOIN TP_PM_DEFECT df ON DF.BARCODE=PD.BARCODE AND DF.VALUEFLAG=1
-                                  LEFT JOIN TP_MST_DEFECT MDF ON MDF.DEFECTID=DF.DEFECTID AND MDF.VALUEFLAG=1 AND MDF.DEFECTTYPEID=1
+                                  LEFT JOIN TP_PM_DEFECT DF ON DF.BARCODE = PD.BARCODE AND DF.VALUEFLAG=1  AND DF.PROCEDUREID NOT IN(61,28)
+                                  LEFT JOIN TP_MST_DEFECT MDF ON MDF.DEFECTID=DF.DEFECTID AND MDF.VALUEFLAG=1 AND (  MDF.DEFECTTYPEID=1 OR MDF.DEFECTCODE='99' )
                                   LEFT JOIN TP_MST_GOODS good on good.GOODSID=PD.GOODSID
                                   LEFT JOIN TP_MST_LOGO logo ON logo.LOGOID=pd.LOGOID
                                   LEFT JOIN TP_PM_GROUTINGDAILYDETAIL gd ON gd.barcode=pd.barcode
@@ -90,7 +90,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                 WHERE
 	                                PD.PROCEDUREID IN (16)  
 	                                AND PD.CREATETIME >= @DATEBEGIN@
-                                    AND PD.CREATETIME < @DATEEND@ ".Replace("{DEFECT}",defect);
+                                    AND PD.CREATETIME <= @DATEEND@ ".Replace("{DEFECT}",defect);
                 if (context.Request["linecodeMaster"] != null && context.Request["linecodeMaster"] != "") { //判断首个下拉框是否有值
 
 
@@ -152,8 +152,8 @@ public class rpt : IHttpHandler, IReadOnlySessionState
     
                                 FROM
 	                             TP_PM_PRODUCTIONDATA PD
-                                  LEFT JOIN TP_PM_DEFECT df ON DF.BARCODE=PD.BARCODE AND DF.VALUEFLAG=1
-                                  LEFT JOIN TP_MST_DEFECT MDF ON MDF.DEFECTID=DF.DEFECTID AND MDF.VALUEFLAG=1 AND MDF.DEFECTTYPEID=1
+                                  LEFT JOIN TP_PM_DEFECT df ON DF.BARCODE=PD.BARCODE AND DF.VALUEFLAG=1 AND DF.PROCEDUREID NOT IN(61,28)
+                                  LEFT JOIN TP_MST_DEFECT MDF ON MDF.DEFECTID=DF.DEFECTID AND MDF.VALUEFLAG=1 AND (  MDF.DEFECTTYPEID=1 OR MDF.DEFECTCODE='99' )
                                   LEFT JOIN TP_MST_GOODS good on good.GOODSID=PD.GOODSID
                                   LEFT JOIN TP_MST_LOGO logo ON logo.LOGOID=pd.LOGOID
                                   LEFT JOIN TP_PM_GROUTINGDAILYDETAIL gd ON gd.barcode=pd.barcode
@@ -162,7 +162,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                 WHERE
 	                                PD.PROCEDUREID IN ( 16) 
 	                                 AND PD.CREATETIME >= @DATEBEGIN@
-                                    AND PD.CREATETIME < @DATEEND@  ".Replace("{DEFECTSUM}",sumdefect);
+                                    AND PD.CREATETIME <=  @DATEEND@  ".Replace("{DEFECTSUM}",sumdefect);
                        if (context.Request["linecodeMaster"] != null && context.Request["linecodeMaster"] != "") { //判断首个下拉框是否有值
 
 

+ 22 - 21
wwwroot/mes/rpt/rpt202/rpt.ashx

@@ -28,20 +28,19 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                 DateTime dateEnd = Convert.ToDateTime(context.Request["dateendMaster"]);
                 string defect = "";
 
-                DataTable dt = conn.ExecuteDatatable(@"SELECT DISTINCT
+                        DataTable dt = conn.ExecuteDatatable(@"SELECT DISTINCT
 	                            MDF.DEFECTID,
-	                            'CASE WHEN gd.GOODSNAME IS NULL 
+	                            'CASE WHEN GD.GOODSNAME IS NULL 
                                   THEN
-	                                TO_CHAR( ( COUNT( DISTINCT  CASE WHEN   DF.DEFECTCODE = '''||MDF.DEFECTCODE||''' THEN to_char(pd.BARCODE||DF.DEFECTCODE ) ELSE NULL END ) / COUNT( DISTINCT PD.BARCODE ) * 100 ), ''fm99990.00'' ) || ''%''
+	                                TO_CHAR( ( SUM( CASE WHEN DF.DEFECTCODE = '''||MDF.DEFECTCODE||''' THEN 1 ELSE 0 END ) / COUNT( DISTINCT PD.BARCODE ) * 100 ), ''fm99990.00'' ) || ''%''
 	                              ELSE
-                                   TO_CHAR( COUNT( DISTINCT  CASE WHEN DF.DEFECTCODE IS NOT NULL  AND   DF.DEFECTCODE = '''||MDF.DEFECTCODE||''' THEN to_char(pd.BARCODE||DF.DEFECTCODE ) ELSE NULL END ) ) END
-' AS DEFECTCODE,
+                                    TO_CHAR(SUM( CASE WHEN DF.DEFECTCODE = '''||MDF.DEFECTCODE||''' THEN 1 ELSE 0 END )) END' AS DEFECTCODE,
 	                            MDF.DEFECTNAME 
                             FROM
 	                            TP_MST_DEFECT MDF 
                             WHERE
 	                            MDF.DEFECTTYPEID = 1 
-	                            AND MDF.VALUEFLAG = 1 ORDER BY  MDF.DEFECTID");
+	                            AND MDF.VALUEFLAG = 1 AND MDF.DEFECTCODE NOT IN  ('001','002','1','2','3') ORDER BY  MDF.DEFECTID");
                 for (int i = 0; i < dt.Rows.Count; i++) {
                     if (i > 0) defect += ",";
                     defect += dt.Rows[i]["DEFECTCODE"].ToString()+" "+dt.Rows[i]["DEFECTNAME"].ToString();
@@ -55,7 +54,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 	                            TP_MST_DEFECT MDF 
                             WHERE
 	                            MDF.DEFECTTYPEID = 1 
-	                            AND MDF.VALUEFLAG = 1 ORDER BY  MDF.DEFECTID");
+	                            AND MDF.VALUEFLAG = 1 AND MDF.DEFECTCODE NOT IN  ('001','002','1','2','3') ORDER BY  MDF.DEFECTID");
                 for (int i = 0; i < dts.Rows.Count; i++) {
                     if (i > 0) sumdefect += ",";
                     sumdefect += dts.Rows[i]["DEFECTCODE"].ToString()+" "+dts.Rows[i]["DEFECTNAME"].ToString();
@@ -75,12 +74,14 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                     {DEFECT}
                                 FROM
 	                            TP_PM_PRODUCTIONDATA PD
-								INNER JOIN TP_PM_PRODUCTIONDATA PDC ON PDC.BARCODE=PD.BARCODE AND PDC.PROCEDUREID IN (	40,6,31) AND PDC.VALUEFLAG=1		
-                                LEFT JOIN TP_MST_GOODS GD ON PD.GOODSID = GD.GOODSID
-                                LEFT JOIN TP_MST_DataDictionary MD ON GD.GLAZETYPEID = MD.DICTIONARYID AND MD.DICTIONARYTYPE = 'TPC002'
-                                LEFT JOIN TP_MST_LOGO LG ON PD.LOGOID = LG.LOGOID 
-                                LEFT JOIN TP_PM_DEFECT DF ON PD.BARCODE = DF.BARCODE  AND DF.VALUEFLAG=1
-                                LEFT JOIN TP_MST_DEFECT MDF ON DF.DEFECTID = MDF.DEFECTID AND  MDF.DEFECTTYPEID = 1 
+								  INNER JOIN TP_PM_PRODUCTIONDATA PDC ON PDC.BARCODE=PD.BARCODE AND PDC.PROCEDUREID IN (40,6,31) AND PDC.VALUEFLAG=1		
+                                  LEFT JOIN TP_PM_DEFECT df ON DF.BARCODE=PD.BARCODE AND DF.VALUEFLAG=1 AND DF.PROCEDUREID NOT IN(61,28)
+                                  LEFT JOIN TP_MST_DEFECT MDF ON MDF.DEFECTID=DF.DEFECTID AND MDF.VALUEFLAG=1 AND MDF.DEFECTTYPEID=1 AND MDF.DEFECTCODE NOT IN  ('001','002','1','2','3')
+                                  LEFT JOIN TP_MST_GOODS GD on GD.GOODSID=PD.GOODSID
+                                  LEFT JOIN TP_MST_LOGO LG ON LG.LOGOID=pd.LOGOID
+                                  LEFT JOIN TP_PM_GROUTINGDAILYDETAIL gd ON gd.barcode=pd.barcode
+                                  LEFT JOIN TP_PC_GROUTINGLINE GDL ON GDL.GROUTINGLINEID=gd.GROUTINGLINEID
+                                  LEFT JOIN TP_MST_DataDictionary  MD ON MD.DICTIONARYID=gd.GLAZETYPEID AND MD.DictionaryType = 'TPC002'
                                 WHERE
 	                                PD.PROCEDUREID IN ( 16) 
 	                                AND PD.CREATETIME >= @DATEBEGIN@
@@ -107,14 +108,14 @@ public class rpt : IHttpHandler, IReadOnlySessionState
     
 												 FROM
 												     TP_PM_PRODUCTIONDATA PD
-												INNER JOIN TP_PM_PRODUCTIONDATA PDC ON PDC.BARCODE=PD.BARCODE AND PDC.PROCEDUREID IN (	40,6,31)AND PDC.VALUEFLAG=1
-												 LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GDL ON GDL.BARCODE=PD.BARCODE
-												 LEFT JOIN TP_PC_GROUTINGLINE gl ON gl.GROUTINGLINEID=gdl.GROUTINGLINEID
-												 LEFT JOIN TP_MST_GOODS GD ON PD.GOODSID = GD.GOODSID
-												 LEFT JOIN TP_MST_DataDictionary MD ON GD.GLAZETYPEID = MD.DICTIONARYID AND MD.DICTIONARYTYPE = 'TPC002'
-												 LEFT JOIN TP_MST_LOGO LG ON PD.LOGOID = LG.LOGOID 
-												 LEFT JOIN TP_PM_DEFECT DF ON PD.BARCODE = DF.BARCODE 
-												 LEFT JOIN TP_MST_DEFECT MDF ON DF.DEFECTCODE = MDF.DEFECTCODE AND  MDF.DEFECTTYPEID = 1 
+												INNER JOIN TP_PM_PRODUCTIONDATA PDC ON PDC.BARCODE=PD.BARCODE AND PDC.PROCEDUREID IN (40,6,31) AND PDC.VALUEFLAG=1
+												LEFT JOIN TP_PM_DEFECT df ON DF.BARCODE=PD.BARCODE AND DF.VALUEFLAG=1 AND DF.PROCEDUREID NOT IN(61,28)
+                                                LEFT JOIN TP_MST_DEFECT MDF ON MDF.DEFECTID=DF.DEFECTID AND MDF.VALUEFLAG=1 AND MDF.DEFECTTYPEID=1
+                                                LEFT JOIN TP_MST_GOODS GD on GD.GOODSID=PD.GOODSID
+                                                LEFT JOIN TP_MST_LOGO LG ON LG.LOGOID=pd.LOGOID
+                                                LEFT JOIN TP_PM_GROUTINGDAILYDETAIL gd ON gd.barcode=pd.barcode
+                                                LEFT JOIN TP_PC_GROUTINGLINE GDL ON GDL.GROUTINGLINEID=gd.GROUTINGLINEID
+                                                LEFT JOIN TP_MST_DataDictionary MD ON MD.DICTIONARYID=gd.GLAZETYPEID AND MD.DictionaryType = 'TPC002'
 												 WHERE
 												     PD.PROCEDUREID IN ( 16) 
 												      AND PD.CREATETIME >= @DATEBEGIN@

+ 5 - 5
wwwroot/mes/rpt/rpt203/rpt.ashx

@@ -74,14 +74,14 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 	                          TP_PM_PRODUCTIONDATA PD
                                         	LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GDL ON GDL.BARCODE = PD.BARCODE
 												LEFT JOIN TP_PC_GROUTINGLINE gl ON gl.GROUTINGLINEID=gdl.GROUTINGLINEID
-												INNER JOIN TP_PM_PRODUCTIONDATA PDC ON PDC.BARCODE=GDL.BARCODE AND PDC.PROCEDUREID IN (4,36,53)
+												INNER JOIN TP_PM_PRODUCTIONDATA PDC ON PDC.BARCODE=GDL.BARCODE AND PDC.PROCEDUREID IN (4,36,53)  AND PDC.VALUEFLAG=1
 												LEFT JOIN TP_MST_GOODS GD ON PD.GOODSID = GD.GOODSID
 												LEFT JOIN TP_MST_DataDictionary MD ON GD.GLAZETYPEID = MD.DICTIONARYID AND MD.DICTIONARYTYPE = 'TPC002'
 												LEFT JOIN TP_MST_LOGO LG ON PD.LOGOID = LG.LOGOID 
-												LEFT JOIN TP_PM_DEFECT DF ON PD.BARCODE = DF.BARCODE  AND DF.VALUEFLAG=1
+												LEFT JOIN TP_PM_DEFECT DF ON PD.BARCODE = DF.BARCODE  AND DF.VALUEFLAG=1 AND  DF.PROCEDUREID NOT IN (61,28) AND DF.PROCEDUREID NOT IN(61,28)
 												LEFT JOIN TP_MST_DEFECT MDF ON DF.DEFECTID = MDF.DEFECTID AND MDF.DEFECTCODE IN ('10', '12', '13', '14', '15', '16', '17', '18', '19', '20' )
 												LEFT JOIN TP_PC_CLASSESDETAIL CLS ON CLS.CLASSESSETTINGID=PDC.CLASSESSETTINGID
-												LEFT JOIN TP_HR_STAFF STF ON STF.STAFFID=CLS.STAFFID AND STF.JOBS=3
+												LEFT JOIN TP_HR_STAFF STF ON STF.STAFFID=CLS.STAFFID  AND STF.JOBS IN(3,5)
                                 WHERE PD.PROCEDUREID IN (16)  
 	                                AND PD.CREATETIME >= @DATEBEGIN@ AND PD.CREATETIME < @DATEEND@ 
 	                                AND PD.VALUEFLAG = 1
@@ -112,12 +112,12 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 												LEFT JOIN TP_MST_GOODS GD ON PD.GOODSID = GD.GOODSID
 												LEFT JOIN TP_MST_DataDictionary MD ON GD.GLAZETYPEID = MD.DICTIONARYID AND MD.DICTIONARYTYPE = 'TPC002'
 												LEFT JOIN TP_MST_LOGO LG ON PD.LOGOID = LG.LOGOID 
-												LEFT JOIN TP_PM_DEFECT DF ON PD.BARCODE = DF.BARCODE  AND DF.VALUEFLAG=1
+												LEFT JOIN TP_PM_DEFECT DF ON PD.BARCODE = DF.BARCODE  AND DF.VALUEFLAG=1 AND  DF.PROCEDUREID NOT IN (61,28) 
 												LEFT JOIN TP_MST_DEFECT MDF ON DF.DEFECTID = MDF.DEFECTID AND MDF.DEFECTCODE IN ('10', '12', '13', '14', '15', '16', '17', '18', '19', '20'  )
 												LEFT JOIN TP_PC_CLASSESDETAIL CLS ON CLS.CLASSESSETTINGID=PDC.CLASSESSETTINGID
 												LEFT JOIN TP_HR_STAFF STF ON STF.STAFFID=CLS.STAFFID AND STF.JOBS=3
 												 WHERE
-												     PD.PROCEDUREID IN ( 16) 
+												     PD.PROCEDUREID = 16 
 												      AND PD.CREATETIME >= @DATEBEGIN@
 												     AND PD.CREATETIME < @DATEEND@  
 												     AND PD.VALUEFLAG = 1

+ 13 - 13
wwwroot/mes/rpt/rpt204/rpt.ashx

@@ -37,9 +37,9 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 ' AS DEFECTCODE,
 	                            MDF.DEFECTNAME 
                             FROM
-	                            TP_MST_INHERITANCEDEFECTS MDF 
+	                            TP_MST_DEFECT MDF 
                             WHERE
-	                            DEFECTPROCEDUREID IN(5) ORDER BY  MDF.DEFECTCODE
+	                            MDF.DEFECTCODE IN ( '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '25', '34' ) ORDER BY  MDF.DEFECTCODE
 	                            ");
 				for (int i = 0; i < dt.Rows.Count; i++)
 				{
@@ -52,9 +52,9 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 	                           'TO_CHAR( COUNT( DISTINCT  CASE WHEN   DF.DEFECTCODE IS NOT NULL  AND  DF.DEFECTCODE = '''||MDF.DEFECTCODE||''' THEN to_char(pd.BARCODE||DF.DEFECTCODE ) ELSE NULL END ) )' AS DEFECTCODE,
 	                            MDF.DEFECTNAME 
                             FROM
-	                            TP_MST_INHERITANCEDEFECTS MDF 
+	                            TP_MST_DEFECT MDF 
                             WHERE
-	                            DEFECTPROCEDUREID=5 ORDER BY  MDF.DEFECTCODE " );
+	                           MDF.DEFECTCODE IN ( '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '25', '34' ) ORDER BY  MDF.DEFECTCODE " );
                 for (int i = 0; i < dts.Rows.Count; i++) {
                     if (i > 0) sumdefect += ",";
                     sumdefect += dts.Rows[i]["DEFECTCODE"].ToString()+" "+dts.Rows[i]["DEFECTNAME"].ToString();
@@ -76,11 +76,11 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                         		LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GDL ON GDL.BARCODE = PD.BARCODE
                                         		LEFT JOIN TP_PC_GROUTINGLINE gl ON gl.GROUTINGLINEID=gdl.GROUTINGLINEID
                                         		LEFT JOIN TP_MST_GOODS GD ON PD.GOODSID = GD.GOODSID
-                                        		LEFT JOIN TP_MST_DataDictionary MD ON GD.GLAZETYPEID = MD.DICTIONARYID 
-                                        		AND MD.DICTIONARYTYPE = 'TPC002'
+                                        		LEFT JOIN TP_MST_DataDictionary MD ON GD.GLAZETYPEID = MD.DICTIONARYID  AND MD.DICTIONARYTYPE = 'TPC002'
                                         		LEFT JOIN TP_MST_LOGO LG ON PD.LOGOID = LG.LOGOID
-                                        		LEFT JOIN TP_PM_DEFECT DF ON PD.BARCODE = DF.BARCODE  AND DF.DEFECTCODE IN ( '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '25', '34' )  AND DF.VALUEFLAG=1
-													INNER JOIN TP_PM_PRODUCTIONDATA PDC ON PDC.BARCODE=GDL.BARCODE AND PDC.PROCEDUREID IN (5,36,52) 
+												INNER JOIN TP_PM_PRODUCTIONDATA PDC ON PDC.BARCODE=GDL.BARCODE AND PDC.PROCEDUREID IN (5,36,52)   AND PDC.VALUEFLAG=1
+												LEFT JOIN TP_MST_USER USERS ON USERS.USERID=PDC.USERID 
+												LEFT JOIN TP_PM_DEFECT DF ON PD.BARCODE = DF.BARCODE   AND DF.PROCEDUREID NOT IN(61,28) AND DF.DEFECTCODE IN ( '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '25', '34' )  AND DF.VALUEFLAG=1
 												LEFT JOIN TP_PC_CLASSESDETAIL CLS ON CLS.CLASSESSETTINGID=PDC.CLASSESSETTINGID
 												LEFT JOIN TP_HR_STAFF STF ON STF.STAFFID=CLS.STAFFID and STF.JOBS=4
                                 WHERE
@@ -108,15 +108,15 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 														{DEFECTSUM}                              
     
 												 FROM
-									TP_PM_PRODUCTIONDATA PD
+												TP_PM_PRODUCTIONDATA PD
                                         		LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GDL ON GDL.BARCODE = PD.BARCODE
                                         		LEFT JOIN TP_PC_GROUTINGLINE gl ON gl.GROUTINGLINEID=gdl.GROUTINGLINEID
                                         		LEFT JOIN TP_MST_GOODS GD ON PD.GOODSID = GD.GOODSID
-                                        		LEFT JOIN TP_MST_DataDictionary MD ON GD.GLAZETYPEID = MD.DICTIONARYID 
-                                        		AND MD.DICTIONARYTYPE = 'TPC002'
+                                        		LEFT JOIN TP_MST_DataDictionary MD ON GD.GLAZETYPEID = MD.DICTIONARYID  AND MD.DICTIONARYTYPE = 'TPC002'
                                         		LEFT JOIN TP_MST_LOGO LG ON PD.LOGOID = LG.LOGOID
-                                        		LEFT JOIN TP_PM_DEFECT DF ON PD.BARCODE = DF.BARCODE  AND DF.DEFECTCODE IN ( '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '25', '34' )  AND DF.VALUEFLAG=1
-													INNER JOIN TP_PM_PRODUCTIONDATA PDC ON PDC.BARCODE=GDL.BARCODE AND PDC.PROCEDUREID IN (5,36,52) AND PDC.VALUEFLAG=1
+												INNER JOIN TP_PM_PRODUCTIONDATA PDC ON PDC.BARCODE=GDL.BARCODE AND PDC.PROCEDUREID IN (5,36,52) 
+												LEFT JOIN TP_MST_USER USERS ON USERS.USERID=PDC.USERID 
+												LEFT JOIN TP_PM_DEFECT DF ON PD.BARCODE = DF.BARCODE   AND DF.PROCEDUREID NOT IN(61,28) AND DF.DEFECTCODE IN ( '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '25', '34' )  AND DF.VALUEFLAG=1
 												LEFT JOIN TP_PC_CLASSESDETAIL CLS ON CLS.CLASSESSETTINGID=PDC.CLASSESSETTINGID
 												LEFT JOIN TP_HR_STAFF STF ON STF.STAFFID=CLS.STAFFID and STF.JOBS=4
 												 WHERE

+ 2 - 2
wwwroot/mes/rpt/rpt205/rpt.ashx

@@ -72,7 +72,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                 LEFT JOIN TP_MST_GOODS GD ON PD.GOODSID = GD.GOODSID
                                 LEFT JOIN TP_MST_DataDictionary MD ON GD.GLAZETYPEID = MD.DICTIONARYID AND MD.DICTIONARYTYPE = 'TPC002'
                                 LEFT JOIN TP_MST_LOGO LG ON PD.LOGOID = LG.LOGOID 
-                                LEFT JOIN TP_PM_DEFECT DF ON PD.PRODUCTIONDATAID = DF.PRODUCTIONDATAID 
+                                LEFT JOIN TP_PM_DEFECT DF ON PD.BARCODE = DF.BARCODE  AND DF.PROCEDUREID NOT IN(61,28) AND DF.VALUEFLAG=1
                                 LEFT JOIN TP_MST_DEFECT MDF ON DF.DEFECTID = MDF.DEFECTID AND (MDF.DEFECTTYPEID =4 )
                                 WHERE
 	                                PD.PROCEDUREID IN ( 16) 
@@ -105,7 +105,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 												 LEFT JOIN TP_MST_GOODS GD ON PD.GOODSID = GD.GOODSID
 												 LEFT JOIN TP_MST_DataDictionary MD ON GD.GLAZETYPEID = MD.DICTIONARYID AND MD.DICTIONARYTYPE = 'TPC002'
 												 LEFT JOIN TP_MST_LOGO LG ON PD.LOGOID = LG.LOGOID 
-												 LEFT JOIN TP_PM_DEFECT DF ON PD.PRODUCTIONDATAID = DF.PRODUCTIONDATAID   AND DF.VALUEFLAG=1
+												 LEFT JOIN TP_PM_DEFECT DF ON PD.BARCODE = DF.BARCODE   AND DF.VALUEFLAG=1 AND DF.PROCEDUREID NOT IN(61,28)
 												 LEFT JOIN TP_MST_DEFECT MDF ON DF.DEFECTCODE = MDF.DEFECTCODE AND ( MDF.DEFECTTYPEID =4 or  MDF.DEFECTCODE='20')
 												 WHERE
 												     PD.PROCEDUREID IN ( 16) 

+ 4 - 4
wwwroot/mes/rpt/rpt206/rpt.ashx

@@ -65,15 +65,15 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 	                                TO_CHAR(MD.DICTIONARYVALUE) AS 釉色,
 	                                TO_CHAR(LG.LOGONAME) AS 商标,
 	                                TO_CHAR(COUNT(DISTINCT PD.BARCODE)) 出窑量,
-                                TO_CHAR(COUNT( DISTINCT CASE WHEN MDF.DEFECTCODE IS NOT NULL AND DF.BARCODE IS NOT NULL  THEN DF.BARCODE ELSE NULL END ))缺陷量,
+                                TO_CHAR(COUNT( DISTINCT CASE WHEN MDF.DEFECTCODE IS NOT NULL AND DF.BARCODE IS NOT NULL  THEN  to_char(DF.BARCODE||DF.DEFECTID )ELSE NULL END ))缺陷量,
 	                                TO_CHAR( (COUNT( DISTINCT CASE WHEN MDF.DEFECTCODE IS NOT NULL AND DF.BARCODE IS NOT NULL  THEN DF.BARCODE ELSE NULL END )/COUNT(DISTINCT PD.BARCODE) * 100), 'fm99990.00') || '%' 缺陷率,
                                     {DEFECT}
                                 FROM
 	                            TP_PM_PRODUCTIONDATA PD
                                 LEFT JOIN TP_MST_GOODS GD ON PD.GOODSID = GD.GOODSID
                                 LEFT JOIN TP_MST_DataDictionary MD ON GD.GLAZETYPEID = MD.DICTIONARYID AND MD.DICTIONARYTYPE = 'TPC002'
-                                LEFT JOIN TP_MST_LOGO LG ON PD.LOGOID = LG.LOGOID 
-                                LEFT JOIN TP_PM_DEFECT DF ON PD.PRODUCTIONDATAID = DF.PRODUCTIONDATAID 
+                                LEFT JOIN TP_MST_LOGO LG ON PD.LOGOID = LG.LOGOID  
+                                LEFT JOIN TP_PM_DEFECT DF ON PD.BARCODE = DF.BARCODE  AND DF.PROCEDUREID NOT IN(61,28) AND DF.VALUEFLAG=1
                                 LEFT JOIN TP_MST_DEFECT MDF ON DF.DEFECTID = MDF.DEFECTID AND MDF.DEFECTID IN (
 													SELECT  DISTINCT 		 MDF.DEFECTID
 															FROM TP_MST_DEFECT MDF
@@ -109,7 +109,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 												 LEFT JOIN TP_MST_GOODS GD ON PD.GOODSID = GD.GOODSID
 												 LEFT JOIN TP_MST_DataDictionary MD ON GD.GLAZETYPEID = MD.DICTIONARYID AND MD.DICTIONARYTYPE = 'TPC002'
 												 LEFT JOIN TP_MST_LOGO LG ON PD.LOGOID = LG.LOGOID  
-												 LEFT JOIN TP_PM_DEFECT DF ON PD.PRODUCTIONDATAID = DF.PRODUCTIONDATAID   AND DF.VALUEFLAG=1
+												 LEFT JOIN TP_PM_DEFECT DF ON PD.BARCODE = DF.BARCODE   AND DF.VALUEFLAG=1 AND DF.PROCEDUREID NOT IN(61,28)
 												 LEFT JOIN TP_MST_DEFECT MDF ON DF.DEFECTCODE = MDF.DEFECTCODE AND MDF.DEFECTCODE IN ( '47','48','49','50','51','52','53','54','55','56','20','57')
 												 WHERE
 												     PD.PROCEDUREID IN ( 16) 

+ 9 - 8
wwwroot/mes/rpt/rpt207/rpt.ashx

@@ -37,7 +37,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 ' AS DEFECTCODE,
 	                            MDF.DEFECTNAME 
                           FROM TP_MST_DEFECT MDF
-															where DEFECTTYPEID=6 ORDER BY  MDF.DEFECTCODE
+															where DEFECTCODE IN('61','62','63','64','65','66','67') ORDER BY  MDF.DEFECTCODE
 	                            ");
 				for (int i = 0; i < dt.Rows.Count; i++)
 				{
@@ -46,11 +46,11 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 				}
 			string sumdefect = "";
               DataTable dts = conn.ExecuteDatatable(@"SELECT DISTINCT MDF.DEFECTCODE AS DC,
-                                                        'TO_CHAR( COUNT( DISTINCT  CASE WHEN   DF.DEFECTCODE IS NOT NULL  AND  DF.DEFECTCODE = '''||MDF.DEFECTCODE||''' THEN to_char(pd.BARCODE||DF.DEFECTCODE ) ELSE NULL END ) )' AS DEFECTCODE,
+                                                          'TO_CHAR( COUNT( DISTINCT  CASE WHEN   DF.DEFECTCODE IS NOT NULL  AND  DF.DEFECTCODE = '''||MDF.DEFECTCODE||''' THEN to_char(pd.BARCODE||DF.DEFECTCODE ) ELSE NULL END ) )' AS DEFECTCODE,
 	                                                   MDF.DEFECTNAME 
 													 
 	                          FROM TP_MST_DEFECT MDF
-															where DEFECTTYPEID=6  ORDER BY  MDF.DEFECTCODE");
+															where DEFECTCODE IN('61','62','63','64','65','66','67')  ORDER BY  MDF.DEFECTCODE");
                 for (int i = 0; i < dts.Rows.Count; i++) {
                     if (i > 0) sumdefect += ",";
                     sumdefect += dts.Rows[i]["DEFECTCODE"].ToString()+" "+dts.Rows[i]["DEFECTNAME"].ToString();
@@ -74,13 +74,14 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                 LEFT JOIN TP_MST_GOODS GD ON PD.GOODSID = GD.GOODSID
                                 LEFT JOIN TP_MST_DataDictionary MD ON GD.GLAZETYPEID = MD.DICTIONARYID AND MD.DICTIONARYTYPE = 'TPC002'
                                 LEFT JOIN TP_MST_LOGO LG ON PD.LOGOID = LG.LOGOID 
-                                LEFT JOIN TP_PM_DEFECT DF ON PD.BARCODE = DF.BARCODE 
+                                LEFT JOIN TP_PM_DEFECT DF ON PD.BARCODE = DF.BARCODE  AND DF.PROCEDUREID NOT IN(61,28)
                                 LEFT JOIN TP_MST_DEFECT MDF ON DF.DEFECTID = MDF.DEFECTID AND MDF.DEFECTCODE IN('61','62','63','64','65','66','67') AND DF.VALUEFLAG=1
                                 WHERE
-	                                PD.PROCEDUREID IN ( 16) 
+	                                PD.PROCEDUREID = 16 
 	                                AND PD.CREATETIME >= @DATEBEGIN@
                                     AND PD.CREATETIME < @DATEEND@ 
 	                                AND PD.VALUEFLAG = 1
+									
                                 GROUP BY
 												Grouping sets ( (GD.GOODSCODE ,
 	                                                    GD.GOODSNAME,
@@ -107,10 +108,10 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 												 LEFT JOIN TP_MST_GOODS GD ON PD.GOODSID = GD.GOODSID
 												 LEFT JOIN TP_MST_DataDictionary MD ON GD.GLAZETYPEID = MD.DICTIONARYID AND MD.DICTIONARYTYPE = 'TPC002'
 												 LEFT JOIN TP_MST_LOGO LG ON PD.LOGOID = LG.LOGOID 
-												 LEFT JOIN TP_PM_DEFECT DF ON PD.PRODUCTIONDATAID = DF.PRODUCTIONDATAID   AND DF.VALUEFLAG=1
-												 LEFT JOIN TP_MST_DEFECT MDF ON DF.DEFECTCODE = MDF.DEFECTCODE AND MDF.DEFECTCODE IN('61','62','63','64','65','66','67')
+												 LEFT JOIN TP_PM_DEFECT DF ON PD.BARCODE = DF.BARCODE   AND DF.VALUEFLAG=1  AND DF.PROCEDUREID NOT IN(61,28)
+												 LEFT JOIN TP_MST_DEFECT MDF ON DF.DEFECTCODE = MDF.DEFECTCODE AND MDF.DEFECTCODE IN('61','62','63','64','65','66','67') 
 												 WHERE
-												     PD.PROCEDUREID IN ( 16) 
+												     PD.PROCEDUREID = 16 
 												      AND PD.CREATETIME >= @DATEBEGIN@
 												     AND PD.CREATETIME < @DATEEND@  
 												     AND PD.VALUEFLAG = 1

+ 3 - 3
wwwroot/mes/rpt/rpt208/rpt.ashx

@@ -50,7 +50,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                                         'TO_CHAR( COUNT( DISTINCT  CASE WHEN   DF.DEFECTCODE IS NOT NULL  AND  DF.DEFECTCODE = '''||MDF.DEFECTCODE||''' THEN to_char(pd.BARCODE||DF.DEFECTCODE ) ELSE NULL END ) )' AS DEFECTCODE,
 	                                                   MDF.DEFECTNAME 
 	                         FROM TP_MST_DEFECT MDF
-															where MDF.VALUEFLAG=1 AND(DEFECTTYPEID=7 or  MDF.DEFECTCODE=43) ORDER BY  MDF.DEFECTCODE");
+															where MDF.VALUEFLAG=1 AND(DEFECTTYPEID=7 or  MDF.DEFECTCODE=43 ) ORDER BY  MDF.DEFECTCODE");
                 for (int i = 0; i < dts.Rows.Count; i++) {
                     if (i > 0) sumdefect += ",";
                     sumdefect += dts.Rows[i]["DEFECTCODE"].ToString()+" "+dts.Rows[i]["DEFECTNAME"].ToString();
@@ -74,7 +74,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                 LEFT JOIN TP_MST_GOODS GD ON PD.GOODSID = GD.GOODSID
                                 LEFT JOIN TP_MST_DataDictionary MD ON GD.GLAZETYPEID = MD.DICTIONARYID AND MD.DICTIONARYTYPE = 'TPC002'
                                 LEFT JOIN TP_MST_LOGO LG ON PD.LOGOID = LG.LOGOID 
-                                LEFT JOIN TP_PM_DEFECT DF ON PD.BARCODE = DF.BARCODE  AND DF.VALUEFLAG=1
+                                LEFT JOIN TP_PM_DEFECT DF ON PD.BARCODE = DF.BARCODE  AND DF.VALUEFLAG=1 AND DF.PROCEDUREID NOT IN(61,28)
                                 LEFT JOIN TP_MST_DEFECT MDF ON DF.DEFECTID = MDF.DEFECTID AND(DEFECTTYPEID=7 or  MDF.DEFECTCODE=43)
                                 WHERE
 	                                PD.PROCEDUREID IN ( 16) 
@@ -107,7 +107,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 												 LEFT JOIN TP_MST_GOODS GD ON PD.GOODSID = GD.GOODSID
 												 LEFT JOIN TP_MST_DataDictionary MD ON GD.GLAZETYPEID = MD.DICTIONARYID AND MD.DICTIONARYTYPE = 'TPC002'
 												 LEFT JOIN TP_MST_LOGO LG ON PD.LOGOID = LG.LOGOID 
-												 LEFT JOIN TP_PM_DEFECT DF ON PD.BARCODE = DF.BARCODE  AND DF.VALUEFLAG=1
+												 LEFT JOIN TP_PM_DEFECT DF ON PD.BARCODE = DF.BARCODE  AND DF.VALUEFLAG=1 
 												 LEFT JOIN TP_MST_DEFECT MDF ON DF.DEFECTCODE = MDF.DEFECTCODE AND(DEFECTTYPEID=7 or  MDF.DEFECTCODE=43)
 												 WHERE
 												     PD.PROCEDUREID IN ( 16) 

+ 2 - 2
wwwroot/mes/rpt/rpt209/rpt.ashx

@@ -76,7 +76,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                 LEFT JOIN TP_MST_GOODS GD ON PD.GOODSID = GD.GOODSID
                                 LEFT JOIN TP_MST_DataDictionary MD ON GD.GLAZETYPEID = MD.DICTIONARYID AND MD.DICTIONARYTYPE = 'TPC002'
                                 LEFT JOIN TP_MST_LOGO LG ON PD.LOGOID = LG.LOGOID 
-                                LEFT JOIN TP_PM_DEFECT DF ON PD.PRODUCTIONDATAID = DF.PRODUCTIONDATAID   AND DF.VALUEFLAG=1
+                                LEFT JOIN TP_PM_DEFECT DF ON PD.BARCODE = DF.BARCODE   AND DF.VALUEFLAG=1 AND DF.PROCEDUREID NOT IN(61,28)
                                 LEFT JOIN TP_MST_DEFECT MDF ON DF.DEFECTID = MDF.DEFECTID AND MDF.DEFECTTYPEID =8
                                 WHERE
 	                                PD.PROCEDUREID IN ( 16) 
@@ -109,7 +109,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 												 LEFT JOIN TP_MST_GOODS GD ON PD.GOODSID = GD.GOODSID
 												 LEFT JOIN TP_MST_DataDictionary MD ON GD.GLAZETYPEID = MD.DICTIONARYID AND MD.DICTIONARYTYPE = 'TPC002'
 												 LEFT JOIN TP_MST_LOGO LG ON PD.LOGOID = LG.LOGOID 
-												 LEFT JOIN TP_PM_DEFECT DF ON PD.PRODUCTIONDATAID = DF.PRODUCTIONDATAID  AND DF.VALUEFLAG=1
+												 LEFT JOIN TP_PM_DEFECT DF ON PD.BARCODE = DF.BARCODE  AND DF.VALUEFLAG=1 AND DF.PROCEDUREID NOT IN(61,28)
 												 LEFT JOIN TP_MST_DEFECT MDF ON DF.DEFECTCODE = MDF.DEFECTCODE AND MDF.DEFECTTYPEID =8
 												 WHERE
 												     PD.PROCEDUREID IN ( 16) 

+ 5 - 5
wwwroot/mes/rpt/rpt210/rpt.ashx

@@ -57,7 +57,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                 LEFT JOIN TP_MST_GOODS GD ON PD.GOODSID = GD.GOODSID
                                 LEFT JOIN TP_MST_DataDictionary MD ON GD.GLAZETYPEID = MD.DICTIONARYID AND MD.DICTIONARYTYPE = 'TPC002'
                                 LEFT JOIN TP_MST_LOGO LG ON PD.LOGOID = LG.LOGOID 
-                                LEFT JOIN TP_PM_DEFECT DF ON PD.PRODUCTIONDATAID = DF.PRODUCTIONDATAID  AND DF.VALUEFLAG=1
+                                LEFT JOIN TP_PM_DEFECT DF ON PD.BARCODE = DF.BARCODE  AND DF.VALUEFLAG=1  AND DF.PROCEDUREID NOT IN(61,28)
                                 LEFT JOIN TP_MST_DEFECT MDF ON DF.DEFECTID = MDF.DEFECTID AND MDF.DEFECTCODE in('87','88','086','86')
                                 WHERE
 	                                PD.PROCEDUREID IN ( 16) 
@@ -84,19 +84,19 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 										TO_CHAR(SUM( CASE WHEN DF.DEFECTCODE = '87' THEN 1 ELSE 0 END ) )  原料泥料料脏,
 										TO_CHAR(SUM( CASE WHEN DF.DEFECTCODE = '88' THEN 1 ELSE 0 END ) ) 原料釉料铁脏,
 										TO_CHAR(SUM( CASE WHEN DF.DEFECTCODE = '086' THEN 1 ELSE 0 END ) ) 原料釉料铜脏,
-										TO_CHAR(SUM( CASE WHEN DF.DEFECTCODE = '86	' THEN 1 ELSE 0 END ))  原料泥料铜脏
+										TO_CHAR(SUM( CASE WHEN DF.DEFECTCODE = '86' THEN 1 ELSE 0 END ))  原料泥料铜脏
 									FROM
 	                                TP_PM_PRODUCTIONDATA PD
                                 LEFT JOIN TP_MST_GOODS GD ON PD.GOODSID = GD.GOODSID
                                 LEFT JOIN TP_MST_DataDictionary MD ON GD.GLAZETYPEID = MD.DICTIONARYID AND MD.DICTIONARYTYPE = 'TPC002'
                                 LEFT JOIN TP_MST_LOGO LG ON PD.LOGOID = LG.LOGOID 
-                                LEFT JOIN TP_PM_DEFECT DF ON PD.PRODUCTIONDATAID = DF.PRODUCTIONDATAID  AND DF.VALUEFLAG=1
+                                LEFT JOIN TP_PM_DEFECT DF ON PD.BARCODE = DF.BARCODE  AND DF.VALUEFLAG=1
                                 LEFT JOIN TP_MST_DEFECT MDF ON DF.DEFECTID = MDF.DEFECTID AND MDF.DEFECTCODE in('87','88','086','86')
 									WHERE
-	                                PD.PROCEDUREID IN ( 16) 
+	                                PD.PROCEDUREID =16
 	                                AND PD.CREATETIME >= @DATEBEGIN@
                                     AND PD.CREATETIME < @DATEEND@ 
-	                                
+	                                AND DF.PROCEDUREID NOT IN(61,28)
 	                                AND PD.VALUEFLAG = 1) ORDER BY GID ";
 
                 //获取查询条件

+ 14 - 12
wwwroot/mes/rpt/rpt211/rpt.ashx

@@ -36,8 +36,8 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 														 FROM
 	                            TP_MST_DEFECT MDF 
                             WHERE
-	                            MDF.DEFECTTYPEID = 1 
-	                            AND MDF.VALUEFLAG = 1 ORDER BY  MDF.DEFECTID");
+	                           ( MDF.DEFECTTYPEID = 1  OR MDF.DEFECTCODE ='99')
+	                            AND MDF.VALUEFLAG = 1   ORDER BY  MDF.DEFECTID");
                 for (int i = 0; i < dt.Rows.Count; i++)
                 {
                     if (i > 0) defect += ",";
@@ -55,8 +55,8 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 															 FROM
 	                            TP_MST_DEFECT MDF 
                             WHERE
-	                            MDF.DEFECTTYPEID = 1 
-	                            AND MDF.VALUEFLAG = 1 ORDER BY  MDF.DEFECTID");
+	                             ( MDF.DEFECTTYPEID = 1  OR MDF.DEFECTCODE = '99')
+	                            AND MDF.VALUEFLAG = 1  ORDER BY  MDF.DEFECTID");
                 for (int i = 0; i < dts.Rows.Count; i++) {
                     if (i > 0) sumdefect += ",";
                     sumdefect += dts.Rows[i]["DEFECTCODE"].ToString()+" "+dts.Rows[i]["DEFECTNAME"].ToString();
@@ -69,9 +69,9 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                         ),基础数据 AS 
                                         (
                                         SELECT
-                                        		GDL.GROUTINGLINEID,
-                                        	us.USERCODE AS 工号,
-                                        	us.USERNAME AS 姓名,
+                                        	GDL.GROUTINGLINEID,
+                                        	gdl.USERCODE AS 工号,
+                                        	staff.STAFFNAME AS 姓名,
 											GD.GOODSCODE AS 产品编码,
                                         	GD.GOODSNAME AS 产品名称,
                                         	GD.GOODSSPECIFICATION AS 产品规格,
@@ -90,9 +90,11 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                         	LEFT JOIN TP_MST_DataDictionary MD ON GD.GLAZETYPEID = MD.DICTIONARYID 
                                         	AND MD.DICTIONARYTYPE = 'TPC002'
                                         	LEFT JOIN TP_MST_LOGO LG ON PD.LOGOID = LG.LOGOID
-                                        	LEFT JOIN TP_PM_DEFECT DF ON DF.BARCODE = PD.BARCODE AND DF.VALUEFLAG=1
-                                            LEFT JOIN TP_MST_DEFECT MDF ON MDF.DEFECTID=DF.DEFECTID AND MDF.VALUEFLAG=1 AND MDF.DEFECTTYPEID=1
+                                        	LEFT JOIN TP_PM_DEFECT DF ON DF.BARCODE = PD.BARCODE AND DF.VALUEFLAG=1  AND DF.PROCEDUREID NOT IN(61,28)
+                                            LEFT JOIN TP_MST_DEFECT MDF ON MDF.DEFECTID=DF.DEFECTID AND MDF.VALUEFLAG=1 AND (  MDF.DEFECTTYPEID=1 OR MDF.DEFECTCODE='99' )
                                         	LEFT JOIN TP_MST_USER us ON us.USERID=gdl.USERID
+																					LEFT JOIN TP_MST_USERSTAFF us ON us.USERID=gdl.USERID
+																					LEFT JOIN TP_HR_STAFF  staff ON staff.STAFFID=us.STAFFID 
                                             
                                         WHERE
                                         	PD.PROCEDUREID IN ( 16) 
@@ -128,8 +130,8 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                 sqlStr +=@"  
                                         	AND PD.VALUEFLAG = 1
 							GROUP BY 		GDL.GROUTINGLINEID,
-                                        	us.USERCODE ,
-                                        	us.USERNAME,
+                                        	gdl.USERCODE ,
+                                        	staff.STAFFNAME,
 											GD.GOODSCODE,
                                         	GD.GOODSNAME ,
                                         	GD.GOODSSPECIFICATION ,
@@ -153,7 +155,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                         基础数据.釉色,
                                         基础数据.商标,
                                         TO_CHAR(COUNT(DISTINCT 出窑条码)) 出窑量,
-                                       TO_CHAR(COUNT( DISTINCT CASE WHEN  缺陷类别 =1  THEN TO_CHAR(缺陷条码||基础数据.缺陷ID) ELSE NULL END )) 缺陷量,
+                                       TO_CHAR(COUNT( DISTINCT CASE WHEN  (缺陷类别 =1 OR 缺陷ID=126) THEN TO_CHAR(缺陷条码||基础数据.缺陷ID) ELSE NULL END )) 缺陷量,
                                            TO_CHAR( ((COUNT( DISTINCT CASE WHEN  缺陷类别 =1  THEN 缺陷条码 ELSE NULL END ))/COUNT(DISTINCT 出窑条码) * 100), 'fm99990.00') || '%' 缺陷率,
                                         {DEFECT}
                                         FROM 基础数据

+ 18 - 18
wwwroot/mes/rpt/rpt212/rpt.ashx

@@ -35,7 +35,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 	                            MDF.DEFECTNAME 
 															FROM TP_PC_DEFECTPROCEDUREJOBS JOBS
 															LEFT JOIN  TP_MST_DEFECT MDF  ON mdf.DEFECTID=JOBS.DEFECTID 
-															WHERE jobs.JOBSID IN (3) ORDER BY  MDF.DEFECTCODE");
+															WHERE MDF.DEFECTCODE IN ('10', '12', '13', '14', '15', '16', '17', '18', '19', '20'  ) ORDER BY  MDF.DEFECTCODE");
 				for (int i = 0; i < dt.Rows.Count; i++)
 				{
 					if (i > 0) defect += ",";
@@ -44,11 +44,11 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 
 					string sumdefect = "";
               DataTable dts = conn.ExecuteDatatable(@"	SELECT  DISTINCT MDF.DEFECTCODE AS DC,			 MDF.DEFECTID,
-	                            'TO_CHAR(SUM( CASE WHEN 基础数据.PROCEDUREID IN (4,36,53) AND MDF.DEFECTCODE = '''||DEFECTCODE||''' THEN 1 ELSE 0 END ))' AS DEFECTCODE,
+	                             ' TO_CHAR( COUNT( DISTINCT  CASE WHEN  缺陷ID IS NOT NULL AND 基础数据.缺陷编码 = '''||MDF.DEFECTCODE||''' THEN to_char(缺陷条码||基础数据.缺陷ID ) ELSE NULL END ) ) ' AS DEFECTCODE,
 	                            MDF.DEFECTNAME 
                            FROM TP_PC_DEFECTPROCEDUREJOBS JOBS
 															LEFT JOIN  TP_MST_DEFECT MDF  ON mdf.DEFECTID=JOBS.DEFECTID 
-															WHERE jobs.JOBSID IN (3) ORDER BY  MDF.DEFECTCODE");
+															WHERE MDF.DEFECTCODE IN ('10', '12', '13', '14', '15', '16', '17', '18', '19', '20'  ) ORDER BY  MDF.DEFECTCODE");
                 for (int i = 0; i < dts.Rows.Count; i++) {
                     if (i > 0) sumdefect += ",";
                     sumdefect += dts.Rows[i]["DEFECTCODE"].ToString()+" "+dts.Rows[i]["DEFECTNAME"].ToString();
@@ -61,8 +61,8 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                         ),基础数据 AS 
                                         (
                                         SELECT
-                                        		GDL.GROUTINGLINEID,
-                                        	STF.STAFFCODE AS 工号,
+                                        	GDL.GROUTINGLINEID,
+                                        	PDC.USERCODE AS 工号,
                                         	STF.STAFFNAME AS 姓名,
 											GD.GOODSCODE AS 产品编码,
                                         	GD.GOODSNAME AS 产品名称,
@@ -71,36 +71,36 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                         	LG.LOGONAME AS 商标,
                                         	PD.BARCODE 出窑条码,
                                         	DF.BARCODE 缺陷条码,
-                                        	DF.DEFECTID 缺陷ID,
+                                        	DF.DEFECTID 缺陷ID,DF.DEFECTCODE 缺陷编码,
 											df.DEFECTCODE,
 											PDC.PROCEDUREID
                                         FROM
                                         	TP_PM_PRODUCTIONDATA PD
                                         	LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GDL ON GDL.BARCODE = PD.BARCODE
 												LEFT JOIN TP_PC_GROUTINGLINE gl ON gl.GROUTINGLINEID=gdl.GROUTINGLINEID
-												INNER JOIN TP_PM_PRODUCTIONDATA PDC ON PDC.BARCODE=GDL.BARCODE AND PDC.PROCEDUREID IN (4,36,53)
+												INNER JOIN TP_PM_PRODUCTIONDATA PDC ON PDC.BARCODE=GDL.BARCODE AND PDC.PROCEDUREID IN (4,36,53) AND PDC.VALUEFLAG=1
 												LEFT JOIN TP_MST_GOODS GD ON PD.GOODSID = GD.GOODSID
 												LEFT JOIN TP_MST_DataDictionary MD ON GD.GLAZETYPEID = MD.DICTIONARYID AND MD.DICTIONARYTYPE = 'TPC002'
 												LEFT JOIN TP_MST_LOGO LG ON PD.LOGOID = LG.LOGOID 
-												LEFT JOIN TP_PM_DEFECT DF ON PD.BARCODE = DF.BARCODE  AND DF.VALUEFLAG=1
+												LEFT JOIN TP_PM_DEFECT DF ON PD.BARCODE = DF.BARCODE  AND DF.VALUEFLAG=1  AND DF.PROCEDUREID NOT IN(61,28)
 												LEFT JOIN TP_MST_DEFECT MDF ON DF.DEFECTID = MDF.DEFECTID AND MDF.DEFECTCODE IN ('10', '12', '13', '14', '15', '16', '17', '18', '19', '20'  )
 												LEFT JOIN TP_PC_CLASSESDETAIL CLS ON CLS.CLASSESSETTINGID=PDC.CLASSESSETTINGID
-												LEFT JOIN TP_HR_STAFF STF ON STF.STAFFID=CLS.STAFFID AND STF.JOBS IN(3,5)
+												LEFT JOIN TP_HR_STAFF STF ON STF.STAFFID=CLS.STAFFID   AND STF.JOBS IN(3,5)
                                         WHERE
                                         	PD.PROCEDUREID IN ( 16) 
                                            AND PD.CREATETIME >= @DATEBEGIN@
-                                           AND PD.CREATETIME < @DATEEND@ 
-                                        	 
+                                           AND PD.CREATETIME <= @DATEEND@ 
+                                        	
                                         	AND PD.VALUEFLAG = 1
 								GROUP BY GDL.GROUTINGLINEID,
-                                        	STF.STAFFCODE ,
-                                        	STF.STAFFNAME ,GD.GOODSCODE ,
-                                        	GD.GOODSNAME ,
-                                        	GD.GOODSSPECIFICATION ,
+                                        	PDC.USERCODE,
+                                        	STF.STAFFNAME,GD.GOODSCODE,
+                                        	GD.GOODSNAME,
+                                        	GD.GOODSSPECIFICATION,
                                         	MD.DICTIONARYVALUE ,
-                                        	LG.LOGONAME ,
-                                        	PD.BARCODE ,
-                                        	DF.BARCODE ,DF.DEFECTID,df.DEFECTCODE,PDC.PROCEDUREID
+                                        	LG.LOGONAME,
+                                        	PD.BARCODE,
+                                        	DF.BARCODE,DF.DEFECTID,df.DEFECTCODE,PDC.PROCEDUREID
                                         )
                           SELECT * FROM(
                                         SELECT

+ 12 - 11
wwwroot/mes/rpt/rpt213/rpt.ashx

@@ -61,9 +61,10 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 											),基础数据 AS 
 											(
 											SELECT
-                                        			GDL.GROUTINGLINEID,
-                                        		STF.STAFFCODE AS 工号,
-                                        		STF.STAFFNAME AS 姓名,GD.GOODSCODE AS 产品编码,
+                                        		GDL.GROUTINGLINEID,
+                                        		PDC.USERCODE AS 工号,
+                                        		CASE WHEN STF.STAFFNAME IS NULL THEN USERS.USERNAME 
+													 ELSE STF.STAFFNAME END AS 姓名,GD.GOODSCODE AS 产品编码,
                                         		GD.GOODSNAME AS 产品名称,
                                         		GD.GOODSSPECIFICATION AS 产品规格,
                                         		MD.DICTIONARYVALUE AS 釉色,
@@ -80,20 +81,20 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                         		LEFT JOIN TP_MST_GOODS GD ON PD.GOODSID = GD.GOODSID
                                         		LEFT JOIN TP_MST_DataDictionary MD ON GD.GLAZETYPEID = MD.DICTIONARYID  AND MD.DICTIONARYTYPE = 'TPC002'
                                         		LEFT JOIN TP_MST_LOGO LG ON PD.LOGOID = LG.LOGOID
-												INNER JOIN TP_PM_PRODUCTIONDATA PDC ON PDC.BARCODE=GDL.BARCODE AND PDC.PROCEDUREID IN (5,36,52) 
-												LEFT JOIN TP_PM_DEFECT DF ON PD.BARCODE = DF.BARCODE  AND DF.DEFECTCODE IN ( '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '25', '34' )  AND DF.VALUEFLAG=1
+												INNER JOIN TP_PM_PRODUCTIONDATA PDC ON PDC.BARCODE=GDL.BARCODE AND PDC.PROCEDUREID IN (5,36,52) AND PDC.VALUEFLAG=1
+												LEFT JOIN TP_MST_USER USERS ON USERS.USERID=PDC.USERID 
+												LEFT JOIN TP_PM_DEFECT DF ON PD.BARCODE = DF.BARCODE   AND DF.PROCEDUREID NOT IN(61,28) AND DF.DEFECTCODE IN ( '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '25', '34' )  AND DF.VALUEFLAG=1
 												LEFT JOIN TP_PC_CLASSESDETAIL CLS ON CLS.CLASSESSETTINGID=PDC.CLASSESSETTINGID
-												LEFT JOIN TP_HR_STAFF STF ON STF.STAFFID=CLS.STAFFID and STF.JOBS IN(4,5)
+												LEFT JOIN TP_HR_STAFF STF ON STF.STAFFID=CLS.STAFFID 
 
 											WHERE
                                         		PD.PROCEDUREID IN ( 16) 
 											   AND PD.CREATETIME >= @DATEBEGIN@
-											   AND PD.CREATETIME < @DATEEND@ 
-                                        	 
-                                        		AND PD.VALUEFLAG = 1
+											   AND PD.CREATETIME <= @DATEEND@ 
+                                        	   AND PD.VALUEFLAG = 1
 										GROUP BY GDL.GROUTINGLINEID,
-                                        	STF.STAFFCODE ,
-                                        	STF.STAFFNAME ,GD.GOODSCODE ,
+                                        	PDC.USERCODE ,
+                                        	STF.STAFFNAME ,USERS.USERNAME,GD.GOODSCODE ,
                                         	GD.GOODSNAME ,
                                         	GD.GOODSSPECIFICATION ,
                                         	MD.DICTIONARYVALUE ,

+ 5 - 5
wwwroot/mes/rpt/rpt214/rpt.ashx

@@ -36,7 +36,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                     TO_CHAR( COUNT( DISTINCT  CASE WHEN  缺陷ID IS NOT NULL AND 基础数据.缺陷编码 = '''||MDF.DEFECTCODE||''' THEN to_char(缺陷条码||基础数据.缺陷ID ) ELSE NULL END ) ) END' AS DEFECTCODE,
 	                            MDF.DEFECTNAME 
 															FROM TP_MST_DEFECT MDF
-															where DEFECTTYPEID=1 ORDER BY  MDF.DEFECTID");
+															where MDF.DEFECTTYPEID = 1  AND DEFECTTYPEID=1 AND MDF.DEFECTCODE NOT IN  ('001','002','1','2','3') ORDER BY  MDF.DEFECTID");
 				for (int i = 0; i < dt.Rows.Count; i++)
 				{
 					if (i > 0) defect += ",";
@@ -48,8 +48,8 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 	                           DISTINCT MDF.DEFECTCODE AS DC,			 MDF.DEFECTID,
 	                            'TO_CHAR( COUNT( DISTINCT  CASE WHEN  缺陷ID IS NOT NULL AND 基础数据.缺陷编码 = '''||MDF.DEFECTCODE||''' THEN to_char(缺陷条码||基础数据.缺陷ID ) ELSE NULL END ) )' AS DEFECTCODE,
 	                            MDF.DEFECTNAME 
-                           	FROM TP_MST_DEFECT MDF
-															where DEFECTTYPEID=1  ORDER BY  MDF.DEFECTID");
+                           	FROM TP_MST_DEFECT MDF 
+															where   MDF.DEFECTTYPEID = 1  AND DEFECTTYPEID=1   AND MDF.DEFECTCODE NOT IN  ('001','002','1','2','3')  ORDER BY  MDF.DEFECTID");
                 for (int i = 0; i < dts.Rows.Count; i++) {
                     if (i > 0) sumdefect += ",";
                     sumdefect += dts.Rows[i]["DEFECTCODE"].ToString()+" "+dts.Rows[i]["DEFECTNAME"].ToString();
@@ -80,13 +80,13 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                         	LEFT JOIN TP_MST_DataDictionary MD ON GD.GLAZETYPEID = MD.DICTIONARYID 
                                         	AND MD.DICTIONARYTYPE = 'TPC002'
                                         	LEFT JOIN TP_MST_LOGO LG ON PD.LOGOID = LG.LOGOID
-                                        	LEFT JOIN TP_PM_DEFECT DF ON PD.BARCODE = DF.BARCODE  AND DF.DEFECTID IN (
+                                        	LEFT JOIN TP_PM_DEFECT DF ON PD.BARCODE = DF.BARCODE AND DF.PROCEDUREID NOT IN(61,28)   AND DF.DEFECTID IN (
 												SELECT   DISTINCT  	 MDF.DEFECTID
 																  FROM
 																      TP_MST_DEFECT MDF 
 																  WHERE
 																      MDF.DEFECTTYPEID = 1 
-																      AND MDF.VALUEFLAG = 1 )  AND DF.VALUEFLAG=1
+																      AND MDF.VALUEFLAG = 1 AND MDF.DEFECTCODE NOT IN  ('001','002','1','2','3') )  AND DF.VALUEFLAG=1
 											INNER JOIN TP_PM_PRODUCTIONDATA PDC ON PDC.BARCODE=GDL.BARCODE AND PDC.PROCEDUREID IN (	40,6,31)AND PDC.VALUEFLAG=1
 											LEFT JOIN TP_PC_CLASSESDETAIL CLS ON CLS.CLASSESSETTINGID=PDC.CLASSESSETTINGID
 											LEFT JOIN TP_HR_STAFF STF ON STF.STAFFID=CLS.STAFFID

+ 13 - 11
wwwroot/mes/rpt/rpt215/rpt.ashx

@@ -44,7 +44,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 					string sumdefect = "";
               DataTable dts = conn.ExecuteDatatable(@"	SELECT
 	                           DISTINCT MDF.DEFECTCODE AS DC,			 MDF.DEFECTID,
-	                            'TO_CHAR(SUM( CASE WHEN MDF.DEFECTCODE = '''||DEFECTCODE||''' THEN 1 ELSE 0 END ))' AS DEFECTCODE,
+	                            'TO_CHAR(( COUNT( DISTINCT  CASE WHEN  缺陷ID IS NOT NULL AND 基础数据.缺陷编码 = '''||MDF.DEFECTCODE||''' THEN to_char(缺陷条码||基础数据.缺陷ID ) ELSE NULL END ) / COUNT(DISTINCT 出窑条码) * 100 ), ''fm99990.00'' ) || ''%''' AS DEFECTCODE,
 	                            MDF.DEFECTNAME 
                            	FROM TP_MST_DEFECT MDF
 															where DEFECTTYPEID=4  ORDER BY  MDF.DEFECTID");
@@ -80,7 +80,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                         	LEFT JOIN TP_MST_DataDictionary MD ON GD.GLAZETYPEID = MD.DICTIONARYID 
                                         	AND MD.DICTIONARYTYPE = 'TPC002'
                                         	LEFT JOIN TP_MST_LOGO LG ON PD.LOGOID = LG.LOGOID
-                                        	LEFT JOIN TP_PM_DEFECT DF ON PD.PRODUCTIONDATAID = DF.PRODUCTIONDATAID  AND DF.DEFECTID IN (
+                                        	LEFT JOIN TP_PM_DEFECT DF ON PD.BARCODE = DF.BARCODE AND DF.PROCEDUREID NOT IN(61,28)   AND DF.DEFECTID IN (
 																										SELECT  DISTINCT 		 MDF.DEFECTID  FROM TP_MST_DEFECT MDF where DEFECTTYPEID=4 )  AND DF.VALUEFLAG=1
 											INNER JOIN TP_PM_PRODUCTIONDATA PDC ON PDC.BARCODE=GDL.BARCODE AND PDC.PROCEDUREID IN (	10,37,41) AND PDC.VALUEFLAG=1
 											LEFT JOIN TP_PC_CLASSESDETAIL CLS ON CLS.CLASSESSETTINGID=PDC.CLASSESSETTINGID
@@ -110,11 +110,12 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                         SELECT * FROM(
                                         SELECT
                                         GROUPING_ID(基础数据.工号,基础数据.姓名,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标,基础数据.工序) AS GID,
-                                        CASE when GROUPING_ID(基础数据.工号,基础数据.姓名,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标,基础数据.工序)=126 THEN TO_CHAR(基础数据.工序)
+                                        CASE when GROUPING_ID(基础数据.工号,基础数据.姓名,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标,基础数据.工序)=126 THEN TO_CHAR(基础数据.工序)||' 合计'
 																						 when GROUPING_ID(基础数据.工号,基础数据.姓名,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标,基础数据.工序)=127 THEN '总计'
                                         	   when GROUPING_ID(基础数据.工号,基础数据.姓名,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标,基础数据.工序)=30 THEN'小计'ELSE NULL END AS 统计方式,
+										TO_CHAR(工序) AS 工序,
                                        TO_CHAR(基础数据.工号) AS 工号,
-																			 TO_CHAR(基础数据.姓名)姓名,
+										TO_CHAR(基础数据.姓名)姓名,
 										TO_CHAR(基础数据.产品编码)产品编码,
                                         TO_CHAR(基础数据.产品名称)产品名称,
                                         TO_CHAR(基础数据.产品规格)产品规格,
@@ -144,12 +145,13 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 						FROM(
 																	SELECT 
 																GROUPING_ID(基础数据.工号,基础数据.姓名,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标,基础数据.工序) AS GID,
-                                        CASE when GROUPING_ID(基础数据.工号,基础数据.姓名,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标,基础数据.工序)=126 THEN TO_CHAR(基础数据.工序)
-																						 when GROUPING_ID(基础数据.工号,基础数据.姓名,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标,基础数据.工序)=127 THEN '总计'
-                                        	   when GROUPING_ID(基础数据.工号,基础数据.姓名,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标,基础数据.工序)=30 THEN'小计'ELSE NULL END AS 统计方式,
-																									TO_CHAR(基础数据.工号) AS 工号,
-                                       TO_CHAR(基础数据.姓名)姓名,
-																			TO_CHAR(基础数据.产品编码)产品编码,
+                                        CASE when GROUPING_ID(基础数据.工号,基础数据.姓名,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标,基础数据.工序)=126 THEN TO_CHAR(基础数据.工序)||' 合计'
+											 when GROUPING_ID(基础数据.工号,基础数据.姓名,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标,基础数据.工序)=127 THEN '总计'
+                                        	 when GROUPING_ID(基础数据.工号,基础数据.姓名,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标,基础数据.工序)=30 THEN'小计'ELSE NULL END AS 统计方式,
+										TO_CHAR(工序) AS 工序,		
+										TO_CHAR(基础数据.工号) AS 工号,
+                                        TO_CHAR(基础数据.姓名)姓名,
+										TO_CHAR(基础数据.产品编码)产品编码,
                                         TO_CHAR(基础数据.产品名称)产品名称,
                                         TO_CHAR(基础数据.产品规格)产品规格,
                                         TO_CHAR(基础数据.釉色)釉色,
@@ -175,7 +177,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 																				)
                                         WHERE GID IN (126,127)
                                         
-		) ORDER BY 姓名,工号,GID,统计方式
+		) ORDER BY 工序, 姓名,GID,统计方式,产品编码,出窑量 ASC
 
 ".Replace("{DEFECTSUM}",sumdefect).Replace("{DEFECT}", defect);
 

+ 53 - 61
wwwroot/mes/rpt/rpt216/rpt.ashx

@@ -45,7 +45,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 						string sumdefect = "";
               DataTable dts = conn.ExecuteDatatable(@"SELECT
 	                           DISTINCT MDF.DEFECTCODE AS DC,			 MDF.DEFECTID,
-	                            'TO_CHAR(SUM( CASE WHEN MDF.DEFECTCODE = '''||DEFECTCODE||''' THEN 1 ELSE 0 END ))' AS DEFECTCODE,
+	                            'TO_CHAR(( COUNT( DISTINCT  CASE WHEN  缺陷ID IS NOT NULL AND 基础数据.缺陷编码 = '''||MDF.DEFECTCODE||''' THEN to_char(缺陷条码||基础数据.缺陷ID ) ELSE NULL END ) / COUNT(DISTINCT 出窑条码) * 100 ), ''fm99990.00'' ) || ''%''' AS DEFECTCODE,
 	                            MDF.DEFECTNAME 
                            	FROM TP_MST_DEFECT MDF
 															where DEFECTTYPEID=5 or MDF.DEFECTCODE='20' ORDER BY  MDF.DEFECTID");
@@ -55,27 +55,22 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                 }
 
 
-				string sqlStr = @"WITH 部门 AS (
-                                        SELECT  GROUTINGLINEID,
-                                        CASE WHEN HIGHPRESSUREFLAG=1 THEN'高压' else TO_CHAR(SUBSTR(GROUTINGLINECODE, 1, 2)) END AS 部门
-                                        FROM  TP_PC_GROUTINGLINE
-                                        ),基础数据 AS 
+				string sqlStr = @"WITH 基础数据 AS 
                                         (
                                         SELECT
-                                        	GDL.GROUTINGLINEID,
                                         	CASE  WHEN  PDC.PROCEDUREID=41 THEN PDC.USERCODE  ELSE STF.STAFFCODE END  AS 工号,
                                         	STF.STAFFNAME AS 姓名,
-											jobs.JOBSNAME,jobs.JOBSID,
-											GD.GOODSCODE AS 产品编码,
+																				  jobs.JOBSNAME,jobs.JOBSID,
+																				  GD.GOODSCODE AS 产品编码,
                                         	GD.GOODSNAME AS 产品名称,
                                         	GD.GOODSSPECIFICATION AS 产品规格,
                                         	MD.DICTIONARYVALUE AS 釉色,
                                         	LG.LOGONAME AS 商标,
                                         	PD.BARCODE 出窑条码,
                                         	DF.BARCODE 缺陷条码,
-											CASE WHEN  PDC.PROCEDUREID=10 THEN  '人工' 
-												WHEN  PDC.PROCEDUREID=37 THEN  '机械手单柜' 
-												WHEN  PDC.PROCEDUREID=41 THEN  '1拖4机械手'  ELSE NULL END    工序,
+																				CASE WHEN  PDC.PROCEDUREID=10 THEN  '人工' 
+																					WHEN  PDC.PROCEDUREID=37 THEN  '机械手单柜' 
+																					WHEN  PDC.PROCEDUREID=41 THEN  '1拖4机械手'  ELSE NULL END    工序,
                                         	DF.DEFECTID 缺陷ID,	df.DEFECTCODE 缺陷编码
                                       FROM
                                         	TP_PM_PRODUCTIONDATA PD
@@ -85,59 +80,57 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                         	LEFT JOIN TP_MST_DataDictionary MD ON GD.GLAZETYPEID = MD.DICTIONARYID 
                                         	AND MD.DICTIONARYTYPE = 'TPC002'
                                         	LEFT JOIN TP_MST_LOGO LG ON PD.LOGOID = LG.LOGOID
-                                        	LEFT JOIN TP_PM_DEFECT DF ON PD.PRODUCTIONDATAID = DF.PRODUCTIONDATAID  AND DF.DEFECTID IN (
-													SELECT  DISTINCT 		 MDF.DEFECTID FROM TP_MST_DEFECT MDF
-															where DEFECTTYPEID=5 or  MDF.DEFECTCODE='20')  AND DF.VALUEFLAG=1
-											INNER JOIN TP_PM_PRODUCTIONDATA PDC ON PDC.BARCODE=GDL.BARCODE AND PDC.PROCEDUREID IN (10,37,41)AND PDC.VALUEFLAG=1
-											LEFT JOIN TP_PC_CLASSESDETAIL CLS ON CLS.CLASSESSETTINGID=PDC.CLASSESSETTINGID
-											LEFT JOIN TP_HR_STAFF STF ON STF.STAFFID=CLS.STAFFID
-											LEFT JOIN TP_MST_JOBS jobs ON jobs.JOBSID=CLS.SJOBSID
+                                        	LEFT JOIN TP_PM_DEFECT DF ON PD.BARCODE = DF.BARCODE AND DF.PROCEDUREID NOT IN(61,28)  AND DF.DEFECTID IN (
+																								SELECT  DISTINCT 		 MDF.DEFECTID FROM TP_MST_DEFECT MDF  where DEFECTTYPEID=5 or  MDF.DEFECTCODE='20')  AND DF.VALUEFLAG=1
+															INNER JOIN TP_PM_PRODUCTIONDATA PDC ON PDC.BARCODE=GDL.BARCODE AND PDC.PROCEDUREID IN (10,37,41)AND PDC.VALUEFLAG=1
+															LEFT JOIN TP_PC_CLASSESDETAIL CLS ON CLS.CLASSESSETTINGID=PDC.CLASSESSETTINGID
+															LEFT JOIN TP_HR_STAFF STF ON STF.STAFFID=CLS.STAFFID
+															LEFT JOIN TP_MST_JOBS jobs ON jobs.JOBSID=CLS.SJOBSID
                                         WHERE
-                                        	PD.PROCEDUREID IN (16) AND STF.JOBS=22
+                                        	  PD.PROCEDUREID IN (16) AND STF.JOBS=22
                                             AND PD.CREATETIME >= @DATEBEGIN@
                                             AND PD.CREATETIME < @DATEEND@ 
-                                        	AND PD.VALUEFLAG = 1
-												GROUP BY GDL.GROUTINGLINEID,
-                                        	STF.STAFFCODE  ,
-                                        	STF.STAFFNAME ,
-											GD.GOODSCODE,
-                                        	GD.GOODSNAME ,
-                                        	GD.GOODSSPECIFICATION ,
-                                        	MD.DICTIONARYVALUE ,
-                                        	LG.LOGONAME ,
-											jobs.JOBSID,
-                                        	PD.BARCODE ,
-											PDC.USERCODE,	
-											jobs.JOBSNAME,
-                                        	DF.BARCODE ,
-											PDC.PROCEDUREID,
-											DF.DEFECTID,	df.DEFECTCODE 
+                                        	  AND PD.VALUEFLAG = 1
+																					GROUP BY 
+																					STF.STAFFCODE  ,
+																					STF.STAFFNAME ,
+																					GD.GOODSCODE,
+																					GD.GOODSNAME ,
+																					GD.GOODSSPECIFICATION ,
+																					MD.DICTIONARYVALUE ,
+																					LG.LOGONAME ,
+																					jobs.JOBSID,
+																					PD.BARCODE ,
+																					PDC.USERCODE,	
+																					jobs.JOBSNAME,
+																					DF.BARCODE ,
+																					PDC.PROCEDUREID,
+																					DF.DEFECTID,	df.DEFECTCODE 
                                         )
                                       SELECT * FROM(  
                                         SELECT
-                                        GROUPING_ID(基础数据.工号,基础数据.姓名,部门.部门,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标,基础数据.工序) AS GID,
-                                        CASE when GROUPING_ID(基础数据.工号,基础数据.姓名,部门.部门,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标,基础数据.工序)=254 THEN TO_CHAR(基础数据.工序)
-											 when GROUPING_ID(基础数据.工号,基础数据.姓名,部门.部门,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标,基础数据.工序)=255 THEN '总计'
-                                        	 when GROUPING_ID(基础数据.工号,基础数据.姓名,部门.部门,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标)=31 THEN'小计'ELSE NULL  END AS 统计方式,TO_CHAR(基础数据.工号) AS 工号,
-                                       TO_CHAR(基础数据.姓名)姓名,
-										TO_CHAR(基础数据.产品编码)产品编码,
+                                        GROUPING_ID(基础数据.工号,基础数据.姓名,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标,基础数据.工序) AS GID,
+                                        CASE when GROUPING_ID(基础数据.工号,基础数据.姓名,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标,基础数据.工序)=126 THEN TO_CHAR(基础数据.工序)||' 合计'
+											 when GROUPING_ID(基础数据.工号,基础数据.姓名,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标,基础数据.工序)=127 THEN '总计'
+                                        	   when  GROUPING_ID(基础数据.工号,基础数据.姓名,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标,基础数据.工序) = 30 THEN'小计'ELSE NULL  END AS 统计方式,
+																			  TO_CHAR(工序) AS 工序,
+																			  TO_CHAR(基础数据.工号) AS 工号,
+                                        TO_CHAR(基础数据.姓名)姓名,
+																			  TO_CHAR(基础数据.产品编码)产品编码,
                                         TO_CHAR(基础数据.产品名称)产品名称,
                                         TO_CHAR(基础数据.产品规格)产品规格,
                                         TO_CHAR(基础数据.釉色)釉色,
                                         TO_CHAR(基础数据.商标)商标,
                                         TO_CHAR(COUNT(DISTINCT 出窑条码)) 出窑量,
                                         TO_CHAR(COUNT( DISTINCT  CASE WHEN  缺陷ID IS NOT NULL AND 缺陷条码 IS NOT NULL  THEN to_char(缺陷条码||缺陷ID ) ELSE NULL END )) 缺陷量,
-                                        TO_CHAR( (COUNT( DISTINCT  CASE WHEN  缺陷ID IS NOT NULL AND 缺陷条码 IS NOT NULL  THEN to_char(缺陷条码||缺陷ID ) ELSE NULL END ) /COUNT(DISTINCT 出窑条码) * 100), 'fm99990.00') || '%' 缺陷率,
-                                        {DEFECT}
-                                        FROM 基础数据
-                                        LEFT JOIN 部门 ON 部门.GROUTINGLINEID=基础数据.GROUTINGLINEID
-                                        LEFT JOIN TP_MST_DEFECT MDF ON 基础数据.缺陷ID = MDF.DEFECTID 
-                                        
+                                        TO_CHAR( (COUNT( DISTINCT  CASE WHEN  缺陷ID IS NOT NULL AND 缺陷条码 IS NOT NULL  THEN to_char(缺陷条码||缺陷ID ) ELSE NULL END ) /COUNT(DISTINCT 出窑条码) * 100), 'fm99990.00') || '%' 缺陷率, {DEFECT}
+                               FROM 基础数据
+                               LEFT JOIN TP_MST_DEFECT MDF ON 基础数据.缺陷ID = MDF.DEFECTID 
                                  	GROUP BY			Grouping sets ( ( 
 																	基础数据.工号,
 																	基础数据.姓名,
 																	基础数据.工序,
-																	部门.部门,基础数据.产品编码,
+																	基础数据.产品编码,
 																	基础数据.产品名称,
 																	基础数据.产品规格,
 																	基础数据.釉色,
@@ -146,13 +139,13 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 					UNION ALL
 				SELECT * FROM(
 								SELECT 
-										GROUPING_ID(基础数据.工号,基础数据.姓名,部门.部门,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标,基础数据.工序) AS GID,
-                                        CASE when GROUPING_ID(基础数据.工号,基础数据.姓名,部门.部门,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标,基础数据.工序)=254 THEN TO_CHAR(基础数据.工序)
-											 when GROUPING_ID(基础数据.工号,基础数据.姓名,部门.部门,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标,基础数据.工序)=255 THEN '总计'
-                                        	 when GROUPING_ID(基础数据.工号,基础数据.姓名,部门.部门,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标)=31 
-											     THEN'小计'ELSE NULL END AS 统计方式,TO_CHAR(基础数据.工号) AS 工号,
+										GROUPING_ID(基础数据.工号,基础数据.姓名,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标,基础数据.工序) AS GID,
+                  CASE when GROUPING_ID(基础数据.工号,基础数据.姓名,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标,基础数据.工序)=126 THEN TO_CHAR(基础数据.工序)||' 合计'
+											 when GROUPING_ID(基础数据.工号,基础数据.姓名,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标,基础数据.工序)=127 THEN '总计'
+                       when GROUPING_ID(基础数据.工号,基础数据.姓名,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标,基础数据.工序) =30 THEN'小计'
+								ELSE NULL END AS 统计方式,TO_CHAR(工序) AS 工序,TO_CHAR(基础数据.工号) AS 工号,
                                         TO_CHAR(基础数据.姓名)姓名,
-										TO_CHAR(基础数据.产品编码)产品编码,
+																				TO_CHAR(基础数据.产品编码)产品编码,
                                         TO_CHAR(基础数据.产品名称)产品名称,
                                         TO_CHAR(基础数据.产品规格)产品规格,
                                         TO_CHAR(基础数据.釉色)釉色,
@@ -160,20 +153,19 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                         '' 出窑量,
                                         '' 缺陷量,
                                         '' 缺陷率,
-										{DEFECTSUM}  
+																					{DEFECTSUM}  
 										FROM 基础数据
-                                        LEFT JOIN 部门 ON 部门.GROUTINGLINEID=基础数据.GROUTINGLINEID
-                                        LEFT JOIN TP_MST_DEFECT MDF ON 基础数据.缺陷ID = MDF.DEFECTID 
-                                     GROUP BY	Grouping sets ( ( 
+                    LEFT JOIN TP_MST_DEFECT MDF ON 基础数据.缺陷ID = MDF.DEFECTID 
+              GROUP BY	Grouping sets ( ( 
 																	基础数据.工号,
 																	基础数据.姓名,
 																	基础数据.工序,
-																	部门.部门,基础数据.产品编码,
+																	基础数据.产品编码,
 																	基础数据.产品名称,
 																	基础数据.产品规格,
 																	基础数据.釉色,
 																	基础数据.商标), (基础数据.工号,基础数据.姓名,基础数据.工序),(基础数据.工序),()) )
-                                        WHERE GID IN (126,127)  ) ORDER BY 姓名,统计方式,工号 ".Replace("{DEFECTSUM}",sumdefect).Replace("{DEFECT}", defect);
+                                        WHERE GID IN (126,127)  ) ORDER BY 工序, 姓名,GID,统计方式,产品编码,出窑量 ASC  ".Replace("{DEFECTSUM}",sumdefect).Replace("{DEFECT}", defect);
 
 				//获取查询条件
 				List<CDAParameter> sqlPara = new List<CDAParameter>();

+ 3 - 3
wwwroot/mes/rpt/rpt217/rpt.ashx

@@ -45,7 +45,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 				string sumdefect = "";
               DataTable dts = conn.ExecuteDatatable(@"SELECT DISTINCT
 															 MDF.DEFECTID,
-                                                        'TO_CHAR(SUM( CASE WHEN MDF.DEFECTCODE = '''||DEFECTCODE||''' THEN 1 ELSE 0 END ))' AS DEFECTCODE,
+                                                        ' TO_CHAR( COUNT( DISTINCT  CASE WHEN  缺陷ID IS NOT NULL AND 基础数据.缺陷编码 = '''||MDF.DEFECTCODE||''' THEN to_char(缺陷条码||基础数据.缺陷ID ) ELSE NULL END ) ) ' AS DEFECTCODE,
 	                                                   MDF.DEFECTNAME 
 								FROM TP_MST_DEFECT MDF
 															where DEFECTTYPEID=6  ORDER BY  MDF.DEFECTID");
@@ -79,7 +79,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                         	LEFT JOIN TP_MST_DataDictionary MD ON GD.GLAZETYPEID = MD.DICTIONARYID 
                                         	AND MD.DICTIONARYTYPE = 'TPC002'
                                         	LEFT JOIN TP_MST_LOGO LG ON PD.LOGOID = LG.LOGOID
-                                        	LEFT JOIN TP_PM_DEFECT DF ON PD.BARCODE = DF.BARCODE  AND DF.DEFECTCODE IN('61','62','63','64','65','66','67')  AND DF.VALUEFLAG=1
+                                        	LEFT JOIN TP_PM_DEFECT DF ON PD.BARCODE = DF.BARCODE   AND DF.DEFECTCODE IN('61','62','63','64','65','66','67')  AND DF.VALUEFLAG=1  AND DF.PROCEDUREID NOT IN(61,28)
 											INNER JOIN TP_PM_PRODUCTIONDATA PDC ON PDC.BARCODE=GDL.BARCODE AND PDC.PROCEDUREID IN (	55,13) AND PDC.VALUEFLAG=1
 											LEFT JOIN TP_PC_CLASSESDETAIL CLS ON CLS.CLASSESSETTINGID=PDC.CLASSESSETTINGID
 											LEFT JOIN TP_HR_STAFF STF ON STF.STAFFID=CLS.STAFFID
@@ -87,7 +87,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                         	PD.PROCEDUREID IN ( 16) 
                                            AND PD.CREATETIME >= @DATEBEGIN@
                                            AND PD.CREATETIME < @DATEEND@ 
-                                        	 
+                                        	
                                         	AND PD.VALUEFLAG = 1
 																					GROUP BY GDL.GROUTINGLINEID,
                                         	PDC.USERCODE ,

+ 5 - 3
wwwroot/mes/rpt/rpt218/rpt.ashx

@@ -80,7 +80,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                         	LEFT JOIN TP_MST_DataDictionary MD ON GD.GLAZETYPEID = MD.DICTIONARYID 
                                         	AND MD.DICTIONARYTYPE = 'TPC002'
                                         	LEFT JOIN TP_MST_LOGO LG ON PD.LOGOID = LG.LOGOID
-                                        	LEFT JOIN TP_PM_DEFECT DF ON PD.BARCODE = DF.BARCODE  AND DF.DEFECTCODE IN (SELECT DISTINCT  MDF.DEFECTCODE
+                                        	LEFT JOIN TP_PM_DEFECT DF ON PD.BARCODE = DF.BARCODE AND DF.PROCEDUREID NOT IN(61,28)  AND DF.DEFECTCODE IN (SELECT DISTINCT  MDF.DEFECTCODE
 																							  FROM TP_MST_DEFECT MDF where MDF.VALUEFLAG=1 AND( DEFECTTYPEID=7 or  MDF.DEFECTCODE='43' ) )  AND DF.VALUEFLAG=1
 											INNER JOIN TP_PM_PRODUCTIONDATA PDC ON PDC.BARCODE=GDL.BARCODE AND PDC.PROCEDUREID IN (39,57) AND PDC.VALUEFLAG=1
 											LEFT JOIN TP_PC_CLASSESDETAIL CLS ON CLS.CLASSESSETTINGID=PDC.CLASSESSETTINGID
@@ -103,8 +103,10 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                         )
                                  SELECT * FROM(       
                                       SELECT
-                                         GROUPING_ID(基础数据.工号) AS GID,
-                                        CASE when GROUPING_ID(基础数据.工号)=1 THEN'总计'
+                                         GROUPING_ID(基础数据.工号,基础数据.姓名,部门.部门,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标) AS GID,
+                                        CASE when  GROUPING_ID(基础数据.工号,基础数据.姓名,部门.部门,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标) =127 THEN'总计'
+																						 WHEN  GROUPING_ID(基础数据.工号,基础数据.姓名,部门.部门,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标)=31 THEN '小计'
+																						 WHEN  GROUPING_ID(基础数据.工号,基础数据.姓名,部门.部门,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标)=126 THEN '合计'
                                         	 ELSE NULL END AS 统计方式,TO_CHAR(基础数据.工号) AS 工号,
 										TO_CHAR(基础数据.姓名)姓名,
 										TO_CHAR(基础数据.产品编码)产品编码,

+ 5 - 5
wwwroot/mes/rpt/rpt219/rpt.ashx

@@ -45,7 +45,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 				string sumdefect = "";
               DataTable dts = conn.ExecuteDatatable(@"SELECT DISTINCT
 															 MDF.DEFECTID,
-                                                        'TO_CHAR(SUM( CASE WHEN MDF.DEFECTCODE = '''||DEFECTCODE||''' THEN 1 ELSE 0 END ))' AS DEFECTCODE,
+                                                         ' TO_CHAR( COUNT( DISTINCT  CASE WHEN  缺陷ID IS NOT NULL AND 基础数据.缺陷编码 = '''||MDF.DEFECTCODE||''' THEN to_char(缺陷条码||基础数据.缺陷ID ) ELSE NULL END ) ) ' AS DEFECTCODE,
 	                                                   MDF.DEFECTNAME 
                             FROM TP_MST_DEFECT MDF
 															where DEFECTTYPEID=8 ORDER BY  MDF.DEFECTID");
@@ -80,18 +80,18 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                         	LEFT JOIN TP_MST_DataDictionary MD ON GD.GLAZETYPEID = MD.DICTIONARYID 
                                         	AND MD.DICTIONARYTYPE = 'TPC002'
                                         	LEFT JOIN TP_MST_LOGO LG ON PD.LOGOID = LG.LOGOID
-                                        	LEFT JOIN TP_PM_DEFECT DF ON PD.PRODUCTIONDATAID = DF.PRODUCTIONDATAID  AND DF.DEFECTID IN (
+                                        	LEFT JOIN TP_PM_DEFECT DF ON PD.BARCODE = DF.BARCODE  AND DF.DEFECTID IN (
 													SELECT  DISTINCT 		 MDF.DEFECTID
 															 FROM TP_MST_DEFECT MDF
-															where DEFECTTYPEID=8 )  AND DF.VALUEFLAG=1
-											INNER JOIN TP_PM_PRODUCTIONDATA PDC ON PDC.BARCODE=GDL.BARCODE AND PDC.PROCEDUREID IN (14,56) AND PDC.VALUEFLAG=1
+															where DEFECTTYPEID=8 )  AND DF.VALUEFLAG=1  AND DF.PROCEDUREID NOT IN(61,28) 
+											INNER JOIN TP_PM_PRODUCTIONDATA PDC ON PDC.BARCODE=GDL.BARCODE    AND PDC.PROCEDUREID IN (14,56) AND PDC.VALUEFLAG=1
 											LEFT JOIN TP_PC_CLASSESDETAIL CLS ON CLS.CLASSESSETTINGID=PDC.CLASSESSETTINGID
 											LEFT JOIN TP_HR_STAFF STF ON STF.STAFFID=CLS.STAFFID
                                         WHERE
                                         		PD.PROCEDUREID IN ( 16) 
                                            AND PD.CREATETIME >= @DATEBEGIN@
                                            AND PD.CREATETIME < @DATEEND@ 
-                                        	 
+                                           
                                         	AND PD.VALUEFLAG = 1
 											GROUP BY  PD.BARCODE,
                                         	GDL.GROUTINGLINEID,

+ 11 - 11
wwwroot/mes/rpt/rpt223/rpt.ashx

@@ -53,22 +53,22 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 											GROUPING_ID(TO_CHAR( PD.CREATETIME, 'yyyy-mm' )) AS GID,
 											TO_CHAR( PD.CREATETIME, 'yyyy-mm' )  时间,
 											COUNT(DISTINCT PD.BARCODE) 出窑量,
-											 TO_CHAR(COUNT( DISTINCT CASE WHEN MDF.DEFECTCODE IS NOT NULL AND DF.BARCODE IS NOT NULL  THEN DF.BARCODE ELSE NULL END ))  缺陷量,
-											SUM(CASE WHEN MDF.DEFECTCODE IN ('01') THEN 1 ELSE 0 END ) C1,
-											SUM(CASE WHEN MDF.DEFECTCODE IN ('03','04','05','06','07','08','09','34') THEN 1 ELSE 0 END ) C2,
-											SUM(CASE WHEN MDF.DEFECTCODE IN ('12') THEN 1 ELSE 0 END ) C3,
-											SUM(CASE WHEN MDF.DEFECTCODE IN ('02') THEN 1 ELSE 0 END ) C4,
-											SUM(CASE WHEN MDF.DEFECTCODE IN ('27','28','29') THEN 1 ELSE 0 END ) C5,
-											SUM(CASE WHEN MDF.DEFECTCODE IN ('24','25','26','21') THEN 1 ELSE 0 END ) C6,
-											SUM(CASE WHEN MDF.DEFECTCODE IN ('22') THEN 1 ELSE 0 END ) C7,
-											SUM(CASE WHEN MDF.DEFECTCODE IN ('19','18','32') THEN 1 ELSE 0 END ) C8,
-											SUM(CASE WHEN MDF.DEFECTCODE IN ('10','13','14') THEN 1 ELSE 0 END ) D1
+											TO_CHAR(COUNT( DISTINCT CASE WHEN  MDF.DEFECTTYPEID=1 AND MDF.DEFECTCODE IS NOT NULL AND DF.BARCODE IS NOT NULL THEN TO_CHAR(PD.BARCODE||MDF.DEFECTCODE) ELSE NULL END )) AS 缺陷量,
+											TO_NUMBER( COUNT( DISTINCT CASE WHEN MDF.DEFECTCODE IN ('01') THEN TO_CHAR(PD.BARCODE || MDF.DEFECTCODE) ELSE NULL END )) C1,
+											TO_NUMBER( COUNT( DISTINCT CASE WHEN MDF.DEFECTCODE IN ('03','04','05','06','07','08','09','34') THEN TO_CHAR(PD.BARCODE || MDF.DEFECTCODE) ELSE NULL END )) C2,
+											TO_NUMBER( COUNT( DISTINCT CASE WHEN MDF.DEFECTCODE IN ('12') THEN TO_CHAR(PD.BARCODE || MDF.DEFECTCODE) ELSE NULL END )) C3,
+											TO_NUMBER( COUNT( DISTINCT CASE WHEN MDF.DEFECTCODE IN ('02') THEN TO_CHAR(PD.BARCODE || MDF.DEFECTCODE) ELSE NULL END )) C4,
+											TO_NUMBER( COUNT( DISTINCT CASE WHEN MDF.DEFECTCODE IN ('27','28','29') THEN TO_CHAR(PD.BARCODE || MDF.DEFECTCODE) ELSE NULL END )) C5,
+											TO_NUMBER( COUNT( DISTINCT CASE WHEN MDF.DEFECTCODE IN ('24','25','26','21') THEN TO_CHAR(PD.BARCODE || MDF.DEFECTCODE) ELSE NULL END )) C6,
+											TO_NUMBER( COUNT( DISTINCT CASE WHEN MDF.DEFECTCODE IN ('22') THEN TO_CHAR(PD.BARCODE || MDF.DEFECTCODE) ELSE NULL END )) C7,
+											TO_NUMBER( COUNT( DISTINCT CASE WHEN MDF.DEFECTCODE IN ('19','18','32') THEN TO_CHAR(PD.BARCODE || MDF.DEFECTCODE) ELSE NULL END )) C8,
+											TO_NUMBER( COUNT( DISTINCT CASE WHEN MDF.DEFECTCODE IN ('10','13','14') THEN TO_CHAR(PD.BARCODE || MDF.DEFECTCODE) ELSE NULL END )) D1
 									FROM TP_PM_PRODUCTIONDATA PD
 									  LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GDL ON GDL.BARCODE=PD.BARCODE
 									  LEFT JOIN TP_MST_GOODS GD ON PD.GOODSID = GD.GOODSID
 									  LEFT JOIN TP_MST_DataDictionary MD ON GD.GLAZETYPEID = MD.DICTIONARYID AND MD.DICTIONARYTYPE = 'TPC002'
 									  LEFT JOIN TP_MST_LOGO LG ON PD.LOGOID = LG.LOGOID 
-									  LEFT JOIN TP_PM_DEFECT DF ON PD.PRODUCTIONDATAID = DF.PRODUCTIONDATAID   AND DF.VALUEFLAG=1
+									  LEFT JOIN TP_PM_DEFECT DF ON PD.BARCODE = DF.BARCODE   AND DF.VALUEFLAG=1
 									  LEFT JOIN TP_MST_DEFECT MDF ON DF.DEFECTID = MDF.DEFECTID AND MDF.DEFECTTYPEID =1
 									  WHERE
 									      PD.PROCEDUREID IN ( 16) 

+ 23 - 16
wwwroot/mes/rpt/rpt224/rpt.ashx

@@ -66,28 +66,35 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                           SELECT     	GROUPING_ID(TO_CHAR( PD.CREATETIME, 'yyyy-mm' )) AS GID,
 								                        TO_CHAR( PD.CREATETIME, 'yyyy-mm' )  时间,
 	                                                    COUNT(DISTINCT PD.BARCODE) 出窑量,
-	                                                    COUNT(DISTINCT DF.BARCODE) 缺陷量,
-														SUM(CASE WHEN MDF.DEFECTNAME IN('落脏') THEN 1 ELSE 0 END ) 落脏缺陷,
-														SUM(CASE WHEN MDF.DEFECTNAME IN('缺釉') THEN 1 ELSE 0 END ) 缺釉缺陷,
-														SUM(CASE WHEN MDF.DEFECTNAME IN('装脏') THEN 1 ELSE 0 END ) 装脏缺陷,
-														SUM(CASE WHEN MDF.DEFECTNAME IN('装磕') THEN 1 ELSE 0 END ) 装磕缺陷,
-														SUM(CASE WHEN MDF.DEFECTNAME IN('装沾') THEN 1 ELSE 0 END ) 装沾缺陷,
-														SUM(CASE WHEN MDF.DEFECTNAME IN('走形') THEN 1 ELSE 0 END ) 走形缺陷,
-														SUM(CASE WHEN MDF.DEFECTTYPEID =6 THEN 1 ELSE 0 END ) 装窑缺陷,
-														SUM(CASE WHEN MDF.DEFECTNAME IN('窑脏') THEN 1 ELSE 0 END ) 窑脏缺陷,
-														SUM(CASE WHEN MDF.DEFECTNAME IN('桔釉') THEN 1 ELSE 0 END ) 桔釉缺陷,
-														SUM(CASE WHEN MDF.DEFECTNAME IN('烧坑') THEN 1 ELSE 0 END ) 烧坑缺陷,
-														SUM(CASE WHEN MDF.DEFECTNAME IN('烧裂') THEN 1 ELSE 0 END ) 烧裂缺陷,
-														SUM(CASE WHEN MDF.DEFECTNAME IN('针孔') THEN 1 ELSE 0 END ) 针孔缺陷,
-														SUM(CASE WHEN MDF.DEFECTNAME IN('出磕') THEN 1 ELSE 0 END ) 出磕缺陷,
-								                    	SUM(CASE WHEN MDF.DEFECTNAME IN('划釉') THEN 1 ELSE 0 END ) 划釉缺陷
+														TO_CHAR(COUNT( DISTINCT CASE WHEN   MDF.DEFECTCODE IN (  SELECT DEFECTCODE FROM TP_MST_DEFECT 
+			WHERE DEFECTNAME IN('落脏','缺釉','装脏','装磕','装沾','走形','窑脏','桔釉','烧坑','烧裂','针孔','出磕','划釉') OR DEFECTTYPEID =6  AND VALUEFLAG=1
+)AND DF.BARCODE IS NOT NULL THEN TO_CHAR(DF.BARCODE||MDF.DEFECTCODE) ELSE NULL END )) AS 缺陷量,
+														TO_NUMBER(COUNT(DISTINCT CASE WHEN MDF.DEFECTNAME IN('落脏') THEN 1 ELSE 0 END )) 落脏缺陷,
+														TO_NUMBER(COUNT(DISTINCT CASE WHEN MDF.DEFECTNAME IN('缺釉') THEN 1 ELSE 0 END )) 缺釉缺陷,
+														TO_NUMBER(COUNT(DISTINCT CASE WHEN MDF.DEFECTNAME IN('装脏') THEN 1 ELSE 0 END )) 装脏缺陷,
+														TO_NUMBER(COUNT(DISTINCT CASE WHEN MDF.DEFECTNAME IN('装磕') THEN 1 ELSE 0 END )) 装磕缺陷,
+														TO_NUMBER(COUNT(DISTINCT CASE WHEN MDF.DEFECTNAME IN('装沾') THEN 1 ELSE 0 END )) 装沾缺陷,
+														TO_NUMBER(COUNT(DISTINCT CASE WHEN MDF.DEFECTNAME IN('走形') THEN 1 ELSE 0 END )) 走形缺陷,
+														TO_NUMBER(COUNT(DISTINCT CASE WHEN MDF.DEFECTTYPEID =6 THEN 1 ELSE 0 END )) 装窑缺陷,
+														TO_NUMBER(COUNT(DISTINCT CASE WHEN MDF.DEFECTNAME IN('窑脏') THEN 1 ELSE 0 END )) 窑脏缺陷,
+														TO_NUMBER(COUNT(DISTINCT CASE WHEN MDF.DEFECTNAME IN('桔釉') THEN 1 ELSE 0 END )) 桔釉缺陷,
+														TO_NUMBER(COUNT(DISTINCT CASE WHEN MDF.DEFECTNAME IN('烧坑') THEN 1 ELSE 0 END )) 烧坑缺陷,
+														TO_NUMBER(COUNT(DISTINCT CASE WHEN MDF.DEFECTNAME IN('烧裂') THEN 1 ELSE 0 END )) 烧裂缺陷,
+														TO_NUMBER(COUNT(DISTINCT CASE WHEN MDF.DEFECTNAME IN('针孔') THEN 1 ELSE 0 END )) 针孔缺陷,
+														TO_NUMBER(COUNT(DISTINCT CASE WHEN MDF.DEFECTNAME IN('出磕') THEN 1 ELSE 0 END )) 出磕缺陷,
+														TO_NUMBER(COUNT(DISTINCT CASE WHEN MDF.DEFECTNAME IN('划釉') THEN 1 ELSE 0 END )) 划釉缺陷
                                           FROM TP_PM_PRODUCTIONDATA PD
                                                     LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GDL ON GDL.BARCODE=PD.BARCODE
                                                     LEFT JOIN TP_MST_GOODS GD ON PD.GOODSID = GD.GOODSID
                                                     LEFT JOIN TP_MST_DataDictionary MD ON GD.GLAZETYPEID = MD.DICTIONARYID AND MD.DICTIONARYTYPE = 'TPC002'
                                                     LEFT JOIN TP_MST_LOGO LG ON PD.LOGOID = LG.LOGOID 
-                                                    LEFT JOIN TP_PM_DEFECT DF ON PD.PRODUCTIONDATAID = DF.PRODUCTIONDATAID 
+                                                    LEFT JOIN TP_PM_DEFECT DF ON PD.BARCODE = DF.BARCODE 
                                                     LEFT JOIN TP_MST_DEFECT MDF ON DF.DEFECTID = MDF.DEFECTID   AND DF.VALUEFLAG=1
+														AND MDF.DEFECTCODE(
+												SELECT DEFECTCODE FROM TP_MST_DEFECT
+																		WHERE DEFECTNAME IN('落脏','缺釉','装脏','装磕','装沾','走形','窑脏','桔釉','烧坑','烧裂','针孔','出磕','划釉') OR DEFECTTYPEID =6 
+														AND VALUEFLAG=1
+															)
                                                     INNER JOIN TP_PM_PRODUCTIONDATA pds ON pds.BARCODE=pd.BARCODE
                                                     WHERE
 	                                                  PD.PROCEDUREID IN ( 16) 

+ 3 - 3
wwwroot/mes/rpt/rpt226/rpt.ashx

@@ -64,11 +64,11 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 													FROM
                                                     TP_PM_PRODUCTIONDATA pd
                                                 LEFT JOIN TP_MST_GOODS good on good.GOODSID=PD.GOODSID
-                                                LEFT JOIN TP_MST_LOGO logo ON logo.LOGOID=pd.LOGOID
-                                                LEFT JOIN TP_PM_GROUTINGDAILYDETAIL gd ON gd.barcode=pd.barcode
+                                                INNER JOIN TP_PM_GROUTINGDAILYDETAIL gd ON gd.barcode=pd.barcode
+                                                LEFT JOIN TP_MST_LOGO logo ON logo.LOGOID=gd.LOGOID
                                                 LEFT JOIN TP_PC_GROUTINGLINE GL ON GL.GROUTINGLINEID=gd.GROUTINGLINEID
 												LEFT  JOIN TP_PM_PRODUCTIONDATA PDL ON PDL.BARCODE=PD.BARCODE AND PDL.PROCEDUREID=24
-												LEFT JOIN TP_PM_DEFECT df ON DF.BARCODE=PDL.BARCODE AND DF.VALUEFLAG=1
+												LEFT JOIN TP_PM_DEFECT df ON DF.BARCODE=PDL.BARCODE AND DF.VALUEFLAG=1 AND DF.PROCEDUREID NOT IN(61,28) 
 												LEFT JOIN TP_MST_DEFECT DEFECT ON DEFECT.DEFECTID=DF.DEFECTID
                                                 LEFT JOIN TP_MST_DataDictionary ON TP_MST_DataDictionary.DICTIONARYID=gd.GLAZETYPEID AND TP_MST_DataDictionary.DictionaryType = 'TPC002'
 												LEFT JOIN TP_PC_CLASSESDETAIL CLS ON CLS.CLASSESSETTINGID=PD.CLASSESSETTINGID

+ 217 - 192
wwwroot/mes/rpt/rpt304/rpt.ashx

@@ -26,17 +26,24 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                 //读取报表数据
                 sqlStr = @"WITH 
 							产品汇总缺陷 AS ( 
-										SELECT
-																 CASE WHEN  GROUPING_ID(good.GOODSCODE,gtp.GOODSTYPENAME) =2   THEN '小计'
-												WHEN  GROUPING_ID(good.GOODSCODE,gtp.GOODSTYPENAME) =3   THEN '总计'ELSE to_char(good.GOODSCODE) END AS GOODSCODE,
+												SELECT 	
+														 CASE WHEN  GROUPING_ID(good.GOODSCODE,gtp.GOODSTYPENAME,SUBSTR(gtp.GOODSTYPECODE, 0, 6)) =5   THEN '小计'
+											WHEN  GROUPING_ID(good.GOODSCODE,gtp.GOODSTYPENAME,SUBSTR(gtp.GOODSTYPECODE, 0, 6)) =6  AND SUBSTR(gtp.GOODSTYPECODE, 0, 6)='001001' THEN '大件合计'
+											WHEN  GROUPING_ID(good.GOODSCODE,gtp.GOODSTYPENAME,SUBSTR(gtp.GOODSTYPECODE, 0, 6)) =6  AND SUBSTR(gtp.GOODSTYPECODE, 0, 6)='001002' THEN '小件合计'
+											WHEN  GROUPING_ID(good.GOODSCODE,gtp.GOODSTYPENAME,SUBSTR(gtp.GOODSTYPECODE, 0, 6)) =7   THEN '总计'
+														ELSE to_char(good.GOODSCODE) END AS GOODSCODE,
 									GROUPING_ID(good.GOODSCODE,gtp.GOODSTYPENAME) AS GID,
 									good.GOODSSPECIFICATION,
-									good.GOODSNAME,gtp.GOODSTYPENAME,
+									good.GOODSNAME,
+										CASE WHEN GROUPING_ID(good.GOODSCODE,gtp.GOODSTYPENAME,SUBSTR(gtp.GOODSTYPECODE, 0, 6))=6 AND SUBSTR(gtp.GOODSTYPECODE, 0, 6)='001001' THEN '大件' 
+										 WHEN GROUPING_ID(good.GOODSCODE,gtp.GOODSTYPENAME,SUBSTR(gtp.GOODSTYPECODE, 0, 6))=6 AND SUBSTR(gtp.GOODSTYPECODE, 0, 6)='001002' THEN '小件'
+										 ELSE TO_CHAR(gtp.GOODSTYPENAME )END GOODSTYPENAME,
+									SUBSTR(gtp.GOODSTYPECODE, 0, 6)  AS GOODSTYPECODE,
 									TO_CHAR(COUNT( DISTINCT CASE WHEN  MDF.DEFECTTYPEID=1  AND MDF.DEFECTCODE IS NOT NULL AND DF.BARCODE IS NOT NULL THEN to_char(DF.BARCODE||df.DEFECTCODE ) ELSE NULL END )) AS 成型半检缺陷__缺陷汇总,
 									
-									TO_CHAR(COUNT( DISTINCT  CASE WHEN PDS.PROCEDUREID IN (4,36,53) AND df.DEFECTCODE IN ( '10', '12', '13', '14', '15', '16', '17', '18', '19', '20' ) THEN to_char(DF.BARCODE||df.DEFECTCODE ) ELSE NULL END )) AS 精修缺陷_打磨缺陷_缺陷汇总,
+									TO_CHAR(COUNT( DISTINCT  CASE WHEN PDS.PROCEDUREID IN (4,36,53) AND df.DEFECTCODE IN ( '10', '12', '13', '14', '15', '16', '17', '18', '19', '20' ) AND PDS.VALUEFLAG=1 THEN to_char(DF.BARCODE||df.DEFECTCODE ) ELSE NULL END )) AS 精修缺陷_打磨缺陷_缺陷汇总,
 									
-									TO_CHAR(COUNT( DISTINCT  CASE WHEN PDS.PROCEDUREID IN (5,36,52) AND df.DEFECTCODE IN ( '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '25', '34') THEN to_char(DF.BARCODE||df.DEFECTCODE ) ELSE NULL END )) AS 精修缺陷_刷洗缺陷_缺陷汇总,
+									TO_CHAR(COUNT( DISTINCT  CASE WHEN PDS.PROCEDUREID IN (5,36,52)  AND PDS.VALUEFLAG=1 AND df.DEFECTCODE IN ( '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '25', '34') THEN to_char(DF.BARCODE||df.DEFECTCODE ) ELSE NULL END )) AS 精修缺陷_刷洗缺陷_缺陷汇总,
 									
 									TO_CHAR(COUNT( DISTINCT  CASE WHEN df.DEFECTCODE IN ( '36','37','38','39','40','41','42','43','44') THEN to_char(DF.BARCODE||df.DEFECTCODE ) ELSE NULL END )) AS 施釉擦坯缺陷_施釉缺陷_缺陷汇总,
 																
@@ -78,176 +85,182 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 											WHERE df.VALUEFLAG=1
 												AND PD.PROCEDUREID=16 AND PD.VALUEFLAG=1 
 												AND PD.CREATETIME >= @DATEBEGIN@
-												AND PD.CREATETIME <=  @DATEEND@ 
+												AND PD.CREATETIME <=  @DATEEND@  AND DF.PROCEDUREID NOT IN(61,28) 
 												GROUP BY
-												Grouping sets ( ( good.GOODSCODE, good.GOODSNAME,good.GOODSSPECIFICATION,gtp.GOODSTYPENAME ), ( gtp.GOODSTYPENAME) ,()) 
+												Grouping sets ( ( good.GOODSCODE, good.GOODSNAME,good.GOODSSPECIFICATION,gtp.GOODSTYPENAME ), ( gtp.GOODSTYPENAME) ,(SUBSTR(gtp.GOODSTYPECODE, 0, 6)),()) 
 											),
 											产品明细缺陷 AS (
-											SELECT
-								 CASE WHEN  GROUPING_ID(GD.GOODSCODE,gtp.GOODSTYPENAME) =2   THEN '小计'
-											WHEN  GROUPING_ID(GD.GOODSCODE,gtp.GOODSTYPENAME) =3   THEN '总计'ELSE to_char(GD.GOODSCODE) END AS GOODSCODE,
+											SELECT			GROUPING_ID(GD.GOODSCODE,gtp.GOODSTYPENAME,SUBSTR(gtp.GOODSTYPECODE, 0, 6)),
+								 CASE WHEN  GROUPING_ID(GD.GOODSCODE,gtp.GOODSTYPENAME,SUBSTR(gtp.GOODSTYPECODE, 0, 6)) =5   THEN '小计'
+											WHEN  GROUPING_ID(GD.GOODSCODE,gtp.GOODSTYPENAME,SUBSTR(gtp.GOODSTYPECODE, 0, 6)) =6   AND SUBSTR(gtp.GOODSTYPECODE, 0, 6)='001001' THEN '大件合计'
+											WHEN  GROUPING_ID(GD.GOODSCODE,gtp.GOODSTYPENAME,SUBSTR(gtp.GOODSTYPECODE, 0, 6)) =6   AND SUBSTR(gtp.GOODSTYPECODE, 0, 6)='001002' THEN '小件合计'
+											WHEN  GROUPING_ID(GD.GOODSCODE,gtp.GOODSTYPENAME,SUBSTR(gtp.GOODSTYPECODE, 0, 6)) =7   THEN '总计'
+														ELSE to_char(GD.GOODSCODE) END AS GOODSCODE,
 									GROUPING_ID(GD.GOODSCODE,gtp.GOODSTYPENAME) AS GID,
-								gd.GOODSNAME,gtp.GOODSTYPENAME,
-
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '01' )  THEN DF.BARCODE ELSE NULL END ) AS 成型半检缺陷_坯脏,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '02' )  THEN DF.BARCODE ELSE NULL END ) AS 成型半检缺陷_棕眼,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '03' )  THEN DF.BARCODE ELSE NULL END ) AS 成型半检缺陷_裂底,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '04' )  THEN DF.BARCODE ELSE NULL END ) AS 成型半检缺陷_裂圈,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '05' )  THEN DF.BARCODE ELSE NULL END ) AS 成型半检缺陷_裂鼻子,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '06' )  THEN DF.BARCODE ELSE NULL END ) AS 成型半检缺陷_裂水道,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '07' )  THEN DF.BARCODE ELSE NULL END ) AS 成型半检缺陷_裂管,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '08' )  THEN DF.BARCODE ELSE NULL END ) AS 成型半检缺陷_沾接裂,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '09' )  THEN DF.BARCODE ELSE NULL END ) AS 成型半检缺陷_裂眼,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '10' )  THEN DF.BARCODE ELSE NULL END ) AS 成型半检缺陷_糙活,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '11' )  THEN DF.BARCODE ELSE NULL END ) AS 成型半检缺陷_板折,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '12' )  THEN DF.BARCODE ELSE NULL END ) AS 成型半检缺陷_变形,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '13' )  THEN DF.BARCODE ELSE NULL END ) AS 成型半检缺陷_渣,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '14' )  THEN DF.BARCODE ELSE NULL END ) AS 成型半检缺陷_管道渣,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '15' )  THEN DF.BARCODE ELSE NULL END ) AS 成型半检缺陷_孔眼不良,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '16' )  THEN DF.BARCODE ELSE NULL END ) AS 成型半检缺陷_堵眼,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '17' )  THEN DF.BARCODE ELSE NULL END ) AS 成型半检缺陷_眼歪,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '18' )  THEN DF.BARCODE ELSE NULL END ) AS 成型半检缺陷_丢气孔,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '19' )  THEN DF.BARCODE ELSE NULL END ) AS 成型半检缺陷_丢眼,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '20' )  THEN DF.BARCODE ELSE NULL END ) AS 成型半检缺陷_坯磕,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '21' )  THEN DF.BARCODE ELSE NULL END ) AS 成型半检缺陷_漏气,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '22' )  THEN DF.BARCODE ELSE NULL END ) AS 成型半检缺陷_空泡,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '23' )  THEN DF.BARCODE ELSE NULL END ) AS 成型半检缺陷_水封不良,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '24' )  THEN DF.BARCODE ELSE NULL END ) AS 成型半检缺陷_漏水,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '25' )  THEN DF.BARCODE ELSE NULL END ) AS 成型半检缺陷_卡球,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '26' )  THEN DF.BARCODE ELSE NULL END ) AS 成型半检缺陷_冲刷不好,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '27' )  THEN DF.BARCODE ELSE NULL END ) AS 成型半检缺陷_泥埂,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '28' )  THEN DF.BARCODE ELSE NULL END ) AS 成型半检缺陷_断浆迹,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '29' )  THEN DF.BARCODE ELSE NULL END ) AS 成型半检缺陷_模迹,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '30' )  THEN DF.BARCODE ELSE NULL END ) AS 成型半检缺陷_重皮,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '31' )  THEN DF.BARCODE ELSE NULL END ) AS 成型半检缺陷_气泡,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '32' )  THEN DF.BARCODE ELSE NULL END ) AS 成型半检缺陷_眼扁,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '33' )  THEN DF.BARCODE ELSE NULL END ) AS 成型半检缺陷_水绺,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '34' )  THEN DF.BARCODE ELSE NULL END ) AS 成型半检缺陷_裂,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '001' ) THEN DF.BARCODE ELSE NULL END ) AS 成型半检缺陷_贴码不良,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '002' ) THEN DF.BARCODE ELSE NULL END ) AS 成型半检缺陷_干补不良,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '1' )   THEN DF.BARCODE ELSE NULL END ) AS 成型半检缺陷_内漏不合格,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '2' )   THEN DF.BARCODE ELSE NULL END ) AS 成型半检缺陷_外漏不合格,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '3' )   THEN DF.BARCODE ELSE NULL END ) AS 成型半检缺陷_试水不合格,
-
-count( DISTINCT CASE WHEN PDS.PROCEDUREID IN (4,36,53) AND df.DEFECTCODE IN ( '10' )  THEN DF.BARCODE ELSE NULL END ) AS 精修缺陷_打磨缺陷_糙活,
-count( DISTINCT CASE WHEN PDS.PROCEDUREID IN (4,36,53) AND df.DEFECTCODE IN ( '12' )  THEN DF.BARCODE ELSE NULL END ) AS 精修缺陷_打磨缺陷_变形,
-count( DISTINCT CASE WHEN PDS.PROCEDUREID IN (4,36,53) AND df.DEFECTCODE IN ( '13' )  THEN DF.BARCODE ELSE NULL END ) AS 精修缺陷_打磨缺陷_渣,
-count( DISTINCT CASE WHEN PDS.PROCEDUREID IN (4,36,53) AND df.DEFECTCODE IN ( '14' )  THEN DF.BARCODE ELSE NULL END ) AS 精修缺陷_打磨缺陷_管道渣,
-count( DISTINCT CASE WHEN PDS.PROCEDUREID IN (4,36,53) AND df.DEFECTCODE IN ( '15' )  THEN DF.BARCODE ELSE NULL END ) AS 精修缺陷_打磨缺陷_孔眼不良,
-count( DISTINCT CASE WHEN PDS.PROCEDUREID IN (4,36,53) AND df.DEFECTCODE IN ( '16' )  THEN DF.BARCODE ELSE NULL END ) AS 精修缺陷_打磨缺陷_睹眼,
-count( DISTINCT CASE WHEN PDS.PROCEDUREID IN (4,36,53) AND df.DEFECTCODE IN ( '17' )  THEN DF.BARCODE ELSE NULL END ) AS 精修缺陷_打磨缺陷_眼歪,
-count( DISTINCT CASE WHEN PDS.PROCEDUREID IN (4,36,53) AND df.DEFECTCODE IN ( '18' )  THEN DF.BARCODE ELSE NULL END ) AS 精修缺陷_打磨缺陷_丢气孔,
-count( DISTINCT CASE WHEN PDS.PROCEDUREID IN (4,36,53) AND df.DEFECTCODE IN ( '19' )  THEN DF.BARCODE ELSE NULL END ) AS 精修缺陷_打磨缺陷_丢眼,
-count( DISTINCT CASE WHEN PDS.PROCEDUREID IN (4,36,53) AND df.DEFECTCODE IN ( '20' )  THEN DF.BARCODE ELSE NULL END ) AS 精修缺陷_打磨缺陷_坯磕,
-
-
-count( DISTINCT CASE WHEN PDS.PROCEDUREID IN (5,36,52) AND df.DEFECTCODE IN ( '01' )  THEN DF.BARCODE ELSE NULL END ) AS 精修缺陷_刷洗缺陷_坯脏,
-count( DISTINCT CASE WHEN PDS.PROCEDUREID IN (5,36,52) AND df.DEFECTCODE IN ( '02' )  THEN DF.BARCODE ELSE NULL END ) AS 精修缺陷_刷洗缺陷_棕眼,
-count( DISTINCT CASE WHEN PDS.PROCEDUREID IN (5,36,52) AND df.DEFECTCODE IN ( '03' )  THEN DF.BARCODE ELSE NULL END ) AS 精修缺陷_刷洗缺陷_裂底,
-count( DISTINCT CASE WHEN PDS.PROCEDUREID IN (5,36,52) AND df.DEFECTCODE IN ( '04' )  THEN DF.BARCODE ELSE NULL END ) AS 精修缺陷_刷洗缺陷_裂圈,
-count( DISTINCT CASE WHEN PDS.PROCEDUREID IN (5,36,52) AND df.DEFECTCODE IN ( '05' )  THEN DF.BARCODE ELSE NULL END ) AS 精修缺陷_刷洗缺陷_裂鼻子,
-count( DISTINCT CASE WHEN PDS.PROCEDUREID IN (5,36,52) AND df.DEFECTCODE IN ( '06' )  THEN DF.BARCODE ELSE NULL END ) AS 精修缺陷_刷洗缺陷_裂水道,
-count( DISTINCT CASE WHEN PDS.PROCEDUREID IN (5,36,52) AND df.DEFECTCODE IN ( '07' )  THEN DF.BARCODE ELSE NULL END ) AS 精修缺陷_刷洗缺陷_裂管,
-count( DISTINCT CASE WHEN PDS.PROCEDUREID IN (5,36,52) AND df.DEFECTCODE IN ( '08' )  THEN DF.BARCODE ELSE NULL END ) AS 精修缺陷_刷洗缺陷_沾接裂,
-count( DISTINCT CASE WHEN PDS.PROCEDUREID IN (5,36,52) AND df.DEFECTCODE IN ( '09' )  THEN DF.BARCODE ELSE NULL END ) AS 精修缺陷_刷洗缺陷_裂眼,
-count( DISTINCT CASE WHEN PDS.PROCEDUREID IN (5,36,52) AND df.DEFECTCODE IN ( '10' )  THEN DF.BARCODE ELSE NULL END ) AS 精修缺陷_刷洗缺陷_糙活,
-count( DISTINCT CASE WHEN PDS.PROCEDUREID IN (5,36,52) AND df.DEFECTCODE IN ( '25' )  THEN DF.BARCODE ELSE NULL END ) AS 精修缺陷_刷洗缺陷_卡球,
-count( DISTINCT CASE WHEN PDS.PROCEDUREID IN (5,36,52) AND df.DEFECTCODE IN ( '34' )  THEN DF.BARCODE ELSE NULL END ) AS 精修缺陷_刷洗缺陷_裂,
-
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '36' )  THEN DF.BARCODE ELSE NULL END ) AS 施釉擦坯缺陷_施釉缺陷_滚釉,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '37' )  THEN DF.BARCODE ELSE NULL END ) AS 施釉擦坯缺陷_施釉缺陷_釉薄,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '38' )  THEN DF.BARCODE ELSE NULL END ) AS 施釉擦坯缺陷_施釉缺陷_釉不匀,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '39' )  THEN DF.BARCODE ELSE NULL END ) AS 施釉擦坯缺陷_施釉缺陷_釉磕,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '40' )  THEN DF.BARCODE ELSE NULL END ) AS 施釉擦坯缺陷_施釉缺陷_釉脏,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '41' )  THEN DF.BARCODE ELSE NULL END ) AS 施釉擦坯缺陷_施釉缺陷_釉沾,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '42' )  THEN DF.BARCODE ELSE NULL END ) AS 施釉擦坯缺陷_施釉缺陷_釉绺,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '43' )  THEN DF.BARCODE ELSE NULL END ) AS 施釉擦坯缺陷_施釉缺陷_针孔,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '44' )  THEN DF.BARCODE ELSE NULL END ) AS 施釉擦坯缺陷_施釉缺陷_色脏,
-
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '47' )  THEN DF.BARCODE ELSE NULL END ) AS 施釉擦坯缺陷_擦坯缺陷_灌釉不良,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '48' )  THEN DF.BARCODE ELSE NULL END ) AS 施釉擦坯缺陷_擦坯缺陷_擦脏,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '49' )  THEN DF.BARCODE ELSE NULL END ) AS 施釉擦坯缺陷_擦坯缺陷_崩标,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '50' )  THEN DF.BARCODE ELSE NULL END ) AS 施釉擦坯缺陷_擦坯缺陷_倒标,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '51' )  THEN DF.BARCODE ELSE NULL END ) AS 施釉擦坯缺陷_擦坯缺陷_标污,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '52' )  THEN DF.BARCODE ELSE NULL END ) AS 施釉擦坯缺陷_擦坯缺陷_错标,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '53' )  THEN DF.BARCODE ELSE NULL END ) AS 施釉擦坯缺陷_擦坯缺陷_丢标,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '54' )  THEN DF.BARCODE ELSE NULL END ) AS 施釉擦坯缺陷_擦坯缺陷_标错位,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '55' )  THEN DF.BARCODE ELSE NULL END ) AS 施釉擦坯缺陷_擦坯缺陷_未灌釉,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '56' )  THEN DF.BARCODE ELSE NULL END ) AS 施釉擦坯缺陷_擦坯缺陷_灌磕,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '20' )  THEN DF.BARCODE ELSE NULL END ) AS 施釉擦坯缺陷_擦坯缺陷_坯磕,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '57' )  THEN DF.BARCODE ELSE NULL END ) AS 施釉擦坯缺陷_擦坯缺陷_碱石,
-
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '61' ) AND PDS.PROCEDUREID IN (55,13,25) THEN DF.BARCODE ELSE NULL END ) AS 烧成缺陷_装窑缺陷_落脏,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '62' ) AND PDS.PROCEDUREID IN (55,13,25) THEN DF.BARCODE ELSE NULL END ) AS 烧成缺陷_装窑缺陷_装沾,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '63' ) AND PDS.PROCEDUREID IN (55,13,25) THEN DF.BARCODE ELSE NULL END ) AS 烧成缺陷_装窑缺陷_装磕,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '64' ) AND PDS.PROCEDUREID IN (55,13,25) THEN DF.BARCODE ELSE NULL END ) AS 烧成缺陷_装窑缺陷_装裂,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '65' ) AND PDS.PROCEDUREID IN (55,13,25) THEN DF.BARCODE ELSE NULL END ) AS 烧成缺陷_装窑缺陷_装走,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '66' ) AND PDS.PROCEDUREID IN (55,13,25) THEN DF.BARCODE ELSE NULL END ) AS 烧成缺陷_装窑缺陷_装脏,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '67' ) AND PDS.PROCEDUREID IN (55,13,25) THEN DF.BARCODE ELSE NULL END ) AS 烧成缺陷_装窑缺陷_缺釉,
-
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '69' ) AND PDS.PROCEDUREID IN (30,39,57)  THEN DF.BARCODE ELSE NULL END ) AS 烧成缺陷_烧窑缺陷_水滴,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '70' ) AND PDS.PROCEDUREID IN (30,39,57)  THEN DF.BARCODE ELSE NULL END ) AS 烧成缺陷_烧窑缺陷_窑脏,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '71' ) AND PDS.PROCEDUREID IN (30,39,57)  THEN DF.BARCODE ELSE NULL END ) AS 烧成缺陷_烧窑缺陷_烧裂,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '43' ) AND PDS.PROCEDUREID IN (30,39,57)  THEN DF.BARCODE ELSE NULL END ) AS 烧成缺陷_烧窑缺陷_针孔,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '73' ) AND PDS.PROCEDUREID IN (30,39,57)  THEN DF.BARCODE ELSE NULL END ) AS 烧成缺陷_烧窑缺陷_风惊,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '74' ) AND PDS.PROCEDUREID IN (30,39,57)  THEN DF.BARCODE ELSE NULL END ) AS 烧成缺陷_烧窑缺陷_烧生,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '75' ) AND PDS.PROCEDUREID IN (30,39,57)  THEN DF.BARCODE ELSE NULL END ) AS 烧成缺陷_烧窑缺陷_串烟,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '76' ) AND PDS.PROCEDUREID IN (30,39,57)  THEN DF.BARCODE ELSE NULL END ) AS 烧成缺陷_烧窑缺陷_烧坑,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '77' ) AND PDS.PROCEDUREID IN (30,39,57)  THEN DF.BARCODE ELSE NULL END ) AS 烧成缺陷_烧窑缺陷_桔釉,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '78' ) AND PDS.PROCEDUREID IN (30,39,57)  THEN DF.BARCODE ELSE NULL END ) AS 烧成缺陷_烧窑缺陷_过火,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '79' ) AND PDS.PROCEDUREID IN (30,39,57)  THEN DF.BARCODE ELSE NULL END ) AS 烧成缺陷_烧窑缺陷_火燎,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '80' ) AND PDS.PROCEDUREID IN (30,39,57)  THEN DF.BARCODE ELSE NULL END ) AS 烧成缺陷_烧窑缺陷_烧走,
-
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '83' )  THEN DF.BARCODE ELSE NULL END ) AS 烧成缺陷_出窑缺陷_磕碰,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '84' )  THEN DF.BARCODE ELSE NULL END ) AS 烧成缺陷_出窑缺陷_划釉,
-
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '86' )  THEN DF.BARCODE ELSE NULL END ) AS 原料缺陷_泥料缺陷_铜脏,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '87' )  THEN DF.BARCODE ELSE NULL END ) AS 原料缺陷_泥料缺陷_料脏,
-
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '086' ) THEN DF.BARCODE ELSE NULL END ) AS 原料缺陷_釉料缺陷_铜脏,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '88' )  THEN DF.BARCODE ELSE NULL END ) AS 原料缺陷_釉料缺陷_铁脏,
-
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '91' )  THEN DF.BARCODE ELSE NULL END ) AS 冷修缺陷_修补不良,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '92' )  THEN DF.BARCODE ELSE NULL END ) AS 冷修缺陷_漏修,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '93' )  THEN DF.BARCODE ELSE NULL END ) AS 冷修缺陷_漏检,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '083' )  THEN DF.BARCODE ELSE NULL END ) AS 冷修缺陷_磕碰,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '084' )  THEN DF.BARCODE ELSE NULL END ) AS 冷修缺陷_划釉,
-
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '091' )  THEN DF.BARCODE ELSE NULL END ) AS 回烧修补缺陷_修补不良,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '092' )  THEN DF.BARCODE ELSE NULL END ) AS 回烧修补缺陷_漏修,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '093' )  THEN DF.BARCODE ELSE NULL END ) AS 回烧修补缺陷_漏检,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '96' )   THEN DF.BARCODE ELSE NULL END ) AS 回烧修补缺陷_白点,
-
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '061' )  THEN DF.BARCODE ELSE NULL END ) AS 回烧缺陷_装窑缺陷_落脏,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '062' )  THEN DF.BARCODE ELSE NULL END ) AS 回烧缺陷_装窑缺陷_装沾,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '063' )  THEN DF.BARCODE ELSE NULL END ) AS 回烧缺陷_装窑缺陷_装磕,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '064' )  THEN DF.BARCODE ELSE NULL END ) AS 回烧缺陷_装窑缺陷_装裂,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '065' )  THEN DF.BARCODE ELSE NULL END ) AS 回烧缺陷_装窑缺陷_装走,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '066' )  THEN DF.BARCODE ELSE NULL END ) AS 回烧缺陷_装窑缺陷_装脏,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '067' )  THEN DF.BARCODE ELSE NULL END ) AS 回烧缺陷_装窑缺陷_缺釉,
-
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '069' )  THEN DF.BARCODE ELSE NULL END ) AS 回烧缺陷_烧窑缺陷_水滴,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '070' )  THEN DF.BARCODE ELSE NULL END ) AS 回烧缺陷_烧窑缺陷_窑脏,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '071' )  THEN DF.BARCODE ELSE NULL END ) AS 回烧缺陷_烧窑缺陷_烧裂,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '43' )   THEN DF.BARCODE ELSE NULL END ) AS 回烧缺陷_烧窑缺陷_针孔,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '073' )  THEN DF.BARCODE ELSE NULL END ) AS 回烧缺陷_烧窑缺陷_风惊,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '074' )  THEN DF.BARCODE ELSE NULL END ) AS 回烧缺陷_烧窑缺陷_烧生,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '075' )  THEN DF.BARCODE ELSE NULL END ) AS 回烧缺陷_烧窑缺陷_串烟,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '076' )  THEN DF.BARCODE ELSE NULL END ) AS 回烧缺陷_烧窑缺陷_烧坑,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '077' )  THEN DF.BARCODE ELSE NULL END ) AS 回烧缺陷_烧窑缺陷_桔釉,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '078' )  THEN DF.BARCODE ELSE NULL END ) AS 回烧缺陷_烧窑缺陷_过火,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '079' )  THEN DF.BARCODE ELSE NULL END ) AS 回烧缺陷_烧窑缺陷_火燎,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '080' )  THEN DF.BARCODE ELSE NULL END ) AS 回烧缺陷_烧窑缺陷_烧走,
-
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '0083')  THEN DF.BARCODE ELSE NULL END ) AS 回烧缺陷_出窑缺陷_磕碰,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '0084')  THEN DF.BARCODE ELSE NULL END ) AS 回烧缺陷_出窑缺陷_划釉,
-
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '98' )   THEN DF.BARCODE ELSE NULL END ) AS 研磨缺陷_研磨不良,
-
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '99' )   THEN DF.BARCODE ELSE NULL END ) AS 其他_隧道窑其他蹦脏,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '100' )  THEN DF.BARCODE ELSE NULL END ) AS 其他_隧道窑其他试验不良,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '099' )  THEN DF.BARCODE ELSE NULL END ) AS 其他_梭式窑其他蹦脏,
-count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '0100')  THEN DF.BARCODE ELSE NULL END ) AS 其他_梭式窑其他试验不良
+								gd.GOODSNAME,
+								CASE WHEN GROUPING_ID(GD.GOODSCODE,gtp.GOODSTYPENAME,SUBSTR(gtp.GOODSTYPECODE, 0, 6))=6 AND SUBSTR(gtp.GOODSTYPECODE, 0, 6)='001001' THEN '大件' 
+										 WHEN GROUPING_ID(GD.GOODSCODE,gtp.GOODSTYPENAME,SUBSTR(gtp.GOODSTYPECODE, 0, 6))=6 AND SUBSTR(gtp.GOODSTYPECODE, 0, 6)='001002' THEN '小件'
+										 ELSE TO_CHAR(gtp.GOODSTYPENAME )END GOODSTYPENAME,
+								SUBSTR(gtp.GOODSTYPECODE, 0, 6)  AS GOODSTYPECODE,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '01' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 成型半检缺陷_坯脏,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '02' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 成型半检缺陷_棕眼,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '03' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 成型半检缺陷_裂底,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '04' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 成型半检缺陷_裂圈,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '05' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 成型半检缺陷_裂鼻子,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '06' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 成型半检缺陷_裂水道,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '07' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 成型半检缺陷_裂管,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '08' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 成型半检缺陷_沾接裂,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '09' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 成型半检缺陷_裂眼,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '10' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 成型半检缺陷_糙活,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '11' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 成型半检缺陷_板折,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '12' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 成型半检缺陷_变形,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '13' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 成型半检缺陷_渣,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '14' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 成型半检缺陷_管道渣,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '15' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 成型半检缺陷_孔眼不良,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '16' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 成型半检缺陷_堵眼,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '17' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 成型半检缺陷_眼歪,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '18' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 成型半检缺陷_丢气孔,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '19' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 成型半检缺陷_丢眼,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '20' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 成型半检缺陷_坯磕,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '21' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 成型半检缺陷_漏气,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '22' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 成型半检缺陷_空泡,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '23' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 成型半检缺陷_水封不良,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '24' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 成型半检缺陷_漏水,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '25' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 成型半检缺陷_卡球,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '26' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 成型半检缺陷_冲刷不好,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '27' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 成型半检缺陷_泥埂,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '28' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 成型半检缺陷_断浆迹,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '29' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 成型半检缺陷_模迹,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '30' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 成型半检缺陷_重皮,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '31' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 成型半检缺陷_气泡,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '32' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 成型半检缺陷_眼扁,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '33' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 成型半检缺陷_水绺,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '34' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 成型半检缺陷_裂,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '001' ) THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 成型半检缺陷_贴码不良,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '002' ) THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 成型半检缺陷_干补不良,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '1' )   THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 成型半检缺陷_内漏不合格,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '2' )   THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 成型半检缺陷_外漏不合格,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '3' )   THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 成型半检缺陷_试水不合格,
+
+count( DISTINCT CASE WHEN PDS.PROCEDUREID IN (4,36,53) AND df.DEFECTCODE IN ( '10' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 精修缺陷_打磨缺陷_糙活,
+count( DISTINCT CASE WHEN PDS.PROCEDUREID IN (4,36,53) AND df.DEFECTCODE IN ( '12' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 精修缺陷_打磨缺陷_变形,
+count( DISTINCT CASE WHEN PDS.PROCEDUREID IN (4,36,53) AND df.DEFECTCODE IN ( '13' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 精修缺陷_打磨缺陷_渣,
+count( DISTINCT CASE WHEN PDS.PROCEDUREID IN (4,36,53) AND df.DEFECTCODE IN ( '14' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 精修缺陷_打磨缺陷_管道渣,
+count( DISTINCT CASE WHEN PDS.PROCEDUREID IN (4,36,53) AND df.DEFECTCODE IN ( '15' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 精修缺陷_打磨缺陷_孔眼不良,
+count( DISTINCT CASE WHEN PDS.PROCEDUREID IN (4,36,53) AND df.DEFECTCODE IN ( '16' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 精修缺陷_打磨缺陷_睹眼,
+count( DISTINCT CASE WHEN PDS.PROCEDUREID IN (4,36,53) AND df.DEFECTCODE IN ( '17' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 精修缺陷_打磨缺陷_眼歪,
+count( DISTINCT CASE WHEN PDS.PROCEDUREID IN (4,36,53) AND df.DEFECTCODE IN ( '18' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 精修缺陷_打磨缺陷_丢气孔,
+count( DISTINCT CASE WHEN PDS.PROCEDUREID IN (4,36,53) AND df.DEFECTCODE IN ( '19' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 精修缺陷_打磨缺陷_丢眼,
+count( DISTINCT CASE WHEN PDS.PROCEDUREID IN (4,36,53) AND df.DEFECTCODE IN ( '20' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 精修缺陷_打磨缺陷_坯磕,
+
+
+count( DISTINCT CASE WHEN PDS.PROCEDUREID IN (5,36,52) AND df.DEFECTCODE IN ( '01' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 精修缺陷_刷洗缺陷_坯脏,
+count( DISTINCT CASE WHEN PDS.PROCEDUREID IN (5,36,52) AND df.DEFECTCODE IN ( '02' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 精修缺陷_刷洗缺陷_棕眼,
+count( DISTINCT CASE WHEN PDS.PROCEDUREID IN (5,36,52) AND df.DEFECTCODE IN ( '03' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 精修缺陷_刷洗缺陷_裂底,
+count( DISTINCT CASE WHEN PDS.PROCEDUREID IN (5,36,52) AND df.DEFECTCODE IN ( '04' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 精修缺陷_刷洗缺陷_裂圈,
+count( DISTINCT CASE WHEN PDS.PROCEDUREID IN (5,36,52) AND df.DEFECTCODE IN ( '05' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 精修缺陷_刷洗缺陷_裂鼻子,
+count( DISTINCT CASE WHEN PDS.PROCEDUREID IN (5,36,52) AND df.DEFECTCODE IN ( '06' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 精修缺陷_刷洗缺陷_裂水道,
+count( DISTINCT CASE WHEN PDS.PROCEDUREID IN (5,36,52) AND df.DEFECTCODE IN ( '07' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 精修缺陷_刷洗缺陷_裂管,
+count( DISTINCT CASE WHEN PDS.PROCEDUREID IN (5,36,52) AND df.DEFECTCODE IN ( '08' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 精修缺陷_刷洗缺陷_沾接裂,
+count( DISTINCT CASE WHEN PDS.PROCEDUREID IN (5,36,52) AND df.DEFECTCODE IN ( '09' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 精修缺陷_刷洗缺陷_裂眼,
+count( DISTINCT CASE WHEN PDS.PROCEDUREID IN (5,36,52) AND df.DEFECTCODE IN ( '10' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 精修缺陷_刷洗缺陷_糙活,
+count( DISTINCT CASE WHEN PDS.PROCEDUREID IN (5,36,52) AND df.DEFECTCODE IN ( '25' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 精修缺陷_刷洗缺陷_卡球,
+count( DISTINCT CASE WHEN PDS.PROCEDUREID IN (5,36,52) AND df.DEFECTCODE IN ( '34' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 精修缺陷_刷洗缺陷_裂,
+
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '36' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 施釉擦坯缺陷_施釉缺陷_滚釉,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '37' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 施釉擦坯缺陷_施釉缺陷_釉薄,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '38' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 施釉擦坯缺陷_施釉缺陷_釉不匀,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '39' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 施釉擦坯缺陷_施釉缺陷_釉磕,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '40' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 施釉擦坯缺陷_施釉缺陷_釉脏,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '41' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 施釉擦坯缺陷_施釉缺陷_釉沾,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '42' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 施釉擦坯缺陷_施釉缺陷_釉绺,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '43' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 施釉擦坯缺陷_施釉缺陷_针孔,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '44' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 施釉擦坯缺陷_施釉缺陷_色脏,
+
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '47' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 施釉擦坯缺陷_擦坯缺陷_灌釉不良,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '48' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 施釉擦坯缺陷_擦坯缺陷_擦脏,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '49' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 施釉擦坯缺陷_擦坯缺陷_崩标,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '50' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 施釉擦坯缺陷_擦坯缺陷_倒标,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '51' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 施釉擦坯缺陷_擦坯缺陷_标污,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '52' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 施釉擦坯缺陷_擦坯缺陷_错标,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '53' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 施釉擦坯缺陷_擦坯缺陷_丢标,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '54' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 施釉擦坯缺陷_擦坯缺陷_标错位,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '55' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 施釉擦坯缺陷_擦坯缺陷_未灌釉,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '56' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 施釉擦坯缺陷_擦坯缺陷_灌磕,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '20' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 施釉擦坯缺陷_擦坯缺陷_坯磕,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '57' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 施釉擦坯缺陷_擦坯缺陷_碱石,
+
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '61' ) AND PDS.PROCEDUREID IN (55,13,25) THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 烧成缺陷_装窑缺陷_落脏,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '62' ) AND PDS.PROCEDUREID IN (55,13,25) THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 烧成缺陷_装窑缺陷_装沾,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '63' ) AND PDS.PROCEDUREID IN (55,13,25) THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 烧成缺陷_装窑缺陷_装磕,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '64' ) AND PDS.PROCEDUREID IN (55,13,25) THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 烧成缺陷_装窑缺陷_装裂,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '65' ) AND PDS.PROCEDUREID IN (55,13,25) THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 烧成缺陷_装窑缺陷_装走,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '66' ) AND PDS.PROCEDUREID IN (55,13,25) THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 烧成缺陷_装窑缺陷_装脏,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '67' ) AND PDS.PROCEDUREID IN (55,13,25) THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 烧成缺陷_装窑缺陷_缺釉,
+
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '69' ) AND PDS.PROCEDUREID IN (30,39,57)  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 烧成缺陷_烧窑缺陷_水滴,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '70' ) AND PDS.PROCEDUREID IN (30,39,57)  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 烧成缺陷_烧窑缺陷_窑脏,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '71' ) AND PDS.PROCEDUREID IN (30,39,57)  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 烧成缺陷_烧窑缺陷_烧裂,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '43' ) AND PDS.PROCEDUREID IN (30,39,57)  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 烧成缺陷_烧窑缺陷_针孔,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '73' ) AND PDS.PROCEDUREID IN (30,39,57)  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 烧成缺陷_烧窑缺陷_风惊,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '74' ) AND PDS.PROCEDUREID IN (30,39,57)  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 烧成缺陷_烧窑缺陷_烧生,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '75' ) AND PDS.PROCEDUREID IN (30,39,57)  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 烧成缺陷_烧窑缺陷_串烟,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '76' ) AND PDS.PROCEDUREID IN (30,39,57)  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 烧成缺陷_烧窑缺陷_烧坑,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '77' ) AND PDS.PROCEDUREID IN (30,39,57)  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 烧成缺陷_烧窑缺陷_桔釉,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '78' ) AND PDS.PROCEDUREID IN (30,39,57)  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 烧成缺陷_烧窑缺陷_过火,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '79' ) AND PDS.PROCEDUREID IN (30,39,57)  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 烧成缺陷_烧窑缺陷_火燎,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '80' ) AND PDS.PROCEDUREID IN (30,39,57)  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 烧成缺陷_烧窑缺陷_烧走,
+
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '83' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 烧成缺陷_出窑缺陷_磕碰,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '84' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 烧成缺陷_出窑缺陷_划釉,
+
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '86' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 原料缺陷_泥料缺陷_铜脏,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '87' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 原料缺陷_泥料缺陷_料脏,
+
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '086' ) THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 原料缺陷_釉料缺陷_铜脏,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '88' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 原料缺陷_釉料缺陷_铁脏,
+
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '91' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 冷修缺陷_修补不良,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '92' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 冷修缺陷_漏修,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '93' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 冷修缺陷_漏检,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '083' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 冷修缺陷_磕碰,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '084' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 冷修缺陷_划釉,
+
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '091' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 回烧修补缺陷_修补不良,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '092' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 回烧修补缺陷_漏修,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '093' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 回烧修补缺陷_漏检,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '96' )   THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 回烧修补缺陷_白点,
+
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '061' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 回烧缺陷_装窑缺陷_落脏,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '062' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 回烧缺陷_装窑缺陷_装沾,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '063' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 回烧缺陷_装窑缺陷_装磕,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '064' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 回烧缺陷_装窑缺陷_装裂,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '065' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 回烧缺陷_装窑缺陷_装走,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '066' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 回烧缺陷_装窑缺陷_装脏,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '067' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 回烧缺陷_装窑缺陷_缺釉,
+
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '069' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 回烧缺陷_烧窑缺陷_水滴,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '070' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 回烧缺陷_烧窑缺陷_窑脏,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '071' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 回烧缺陷_烧窑缺陷_烧裂,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '43' )   THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 回烧缺陷_烧窑缺陷_针孔,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '073' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 回烧缺陷_烧窑缺陷_风惊,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '074' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 回烧缺陷_烧窑缺陷_烧生,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '075' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 回烧缺陷_烧窑缺陷_串烟,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '076' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 回烧缺陷_烧窑缺陷_烧坑,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '077' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 回烧缺陷_烧窑缺陷_桔釉,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '078' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 回烧缺陷_烧窑缺陷_过火,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '079' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 回烧缺陷_烧窑缺陷_火燎,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '080' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 回烧缺陷_烧窑缺陷_烧走,
+
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '0083')  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 回烧缺陷_出窑缺陷_磕碰,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '0084')  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 回烧缺陷_出窑缺陷_划釉,
+
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '98' )   THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 研磨缺陷_研磨不良,
+
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '99' )   THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 其他_隧道窑其他蹦脏,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '100' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 其他_隧道窑其他试验不良,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '099' )  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 其他_梭式窑其他蹦脏,
+count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '0100')  THEN (DF.BARCODE || df.DEFECTCODE) ELSE NULL END ) AS 其他_梭式窑其他试验不良
 							FROM
 								TP_PM_DEFECT df
 									LEFT JOIN TP_PM_GROUTINGDAILYDETAIL gd ON  df.BARCODE = gd.BARCODE 
@@ -257,24 +270,29 @@ count( DISTINCT CASE WHEN df.DEFECTCODE IN ( '0100')  THEN DF.BARCODE ELSE NULL
 									LEFT JOIN TP_MST_GOODSTYPE gtp ON good.GOODSTYPEID=gtp.GOODSTYPEID
 									LEFT JOIN TP_MST_DEFECT MDF ON DF.DEFECTID = MDF.DEFECTID 
 							WHERE
-								df.VALUEFLAG=1
+												df.VALUEFLAG=1
 												AND PD.PROCEDUREID=16 AND PD.VALUEFLAG=1 
 												AND PD.CREATETIME >= @DATEBEGIN@
-												AND PD.CREATETIME <=  @DATEEND@  
+												AND PD.CREATETIME <=  @DATEEND@   AND DF.PROCEDUREID NOT IN(61,28) 
 								GROUP BY
-												Grouping sets ( ( gd.GOODSCODE, gd.GOODSNAME,gtp.GOODSTYPENAME ), ( gtp.GOODSTYPENAME) ,()) 
+												Grouping sets ( ( gd.GOODSCODE, gd.GOODSNAME,gtp.GOODSTYPENAME ), ( gtp.GOODSTYPENAME) , ( gtp.GOODSTYPENAME) ,(SUBSTR(gtp.GOODSTYPECODE, 0, 6)),()    ) 
 								),
-								检验数 AS (		SELECT
- CASE WHEN  GROUPING_ID(pd.GOODSCODE,pd.GOODSTYPENAME) =2   THEN '小计'
-												WHEN  GROUPING_ID(pd.GOODSCODE,pd.GOODSTYPENAME) =3   THEN '总计'ELSE to_char(pd.GOODSCODE) END AS GOODSCODE,
-									GROUPING_ID(pd.GOODSCODE,pd.GOODSTYPENAME) AS GID,
-									pd.GOODSNAME ,PD.GOODSTYPENAME,
+								检验数 AS (	SELECT
+ CASE WHEN  GROUPING_ID(pd.GOODSCODE,pd.GOODSTYPENAME,SUBSTR(pd.GOODSTYPECODE, 0, 6)) =5   THEN '小计'
+											WHEN  GROUPING_ID(pd.GOODSCODE,pd.GOODSTYPENAME,SUBSTR(pd.GOODSTYPECODE, 0, 6)) =6   THEN '合计'
+											WHEN  GROUPING_ID(pd.GOODSCODE,pd.GOODSTYPENAME,SUBSTR(pd.GOODSTYPECODE, 0, 6)) =7   THEN '总计'
+														ELSE to_char(pd.GOODSCODE) END AS GOODSCODE,
+									GROUPING_ID(pd.GOODSCODE,pd.GOODSTYPENAME,SUBSTR(pd.GOODSTYPECODE, 0, 6)),
+									pd.GOODSNAME,
+									CASE WHEN GROUPING_ID(PD.GOODSCODE,PD.GOODSTYPENAME,SUBSTR(PD.GOODSTYPECODE, 0, 6))=6 AND SUBSTR(PD.GOODSTYPECODE, 0, 6)='001001' THEN '大件' 
+										 WHEN GROUPING_ID(PD.GOODSCODE,PD.GOODSTYPENAME,SUBSTR(PD.GOODSTYPECODE, 0, 6))=6 AND SUBSTR(PD.GOODSTYPECODE, 0, 6)='001002' THEN '小件'
+										 ELSE TO_CHAR(PD.GOODSTYPENAME )END GOODSTYPENAME,
 									COUNT( DISTINCT pd.BARCODE ) AS 检验量,
 									SUM( CASE WHEN PD.GOODSLEVELTYPEID IN ( 4, 5 ) THEN 1 ELSE 0 END ) AS 合格量,
 								SUM( CASE WHEN PD.GOODSLEVELTYPEID  NOT IN ( 4, 5 ) THEN 1 ELSE 0  END ) 残品 
 FROM(
 SELECT
-	PRODUCTIONDATAID,BARCODE,GOODSCODE,GOODSLEVELTYPEID,REWORKPROCEDUREID ,GOODSNAME,GOODSTYPENAME,
+	PRODUCTIONDATAID,BARCODE,GOODSCODE,GOODSLEVELTYPEID,REWORKPROCEDUREID ,GOODSNAME,GOODSTYPENAME,GOODSTYPECODE,
 row_number() over (partition by BARCODE order by GOODSLEVELTYPEID DESC ) as rownums 
 	FROM(
 	SELECT DISTINCT
@@ -282,12 +300,14 @@ row_number() over (partition by BARCODE order by GOODSLEVELTYPEID DESC ) as rown
 									PD.BARCODE,
 									PD.GOODSCODE,
 									PD.GOODSNAME,
+									gtp.GOODSTYPECODE,
 									CASE WHEN PDS.GOODSLEVELTYPEID < PD.GOODSLEVELTYPEID  THEN PD.GOODSLEVELTYPEID 
 									     WHEN PD.GOODSLEVELTYPEID  < PDS.GOODSLEVELTYPEID THEN PDS.GOODSLEVELTYPEID
-											  WHEN PDS.GOODSLEVELTYPEID IS NULL  THEN PD.GOODSLEVELTYPEID
-											  WHEN PD.GOODSLEVELTYPEID  = PDS.GOODSLEVELTYPEID THEN PD.GOODSLEVELTYPEID
+											 WHEN PDS.GOODSLEVELTYPEID IS NULL  THEN PD.GOODSLEVELTYPEID
+											 WHEN PD.GOODSLEVELTYPEID  = PDS.GOODSLEVELTYPEID THEN PD.GOODSLEVELTYPEID
 											 ELSE NULL END GOODSLEVELTYPEID,
-									PD.REWORKPROCEDUREID ,gtp.GOODSTYPENAME
+									PD.REWORKPROCEDUREID ,
+									gtp.GOODSTYPENAME
 								FROM
 									TP_PM_PRODUCTIONDATA pd
 									LEFT JOIN TP_MST_GOODS good on good.GOODSID=PD.GOODSID
@@ -303,13 +323,15 @@ row_number() over (partition by BARCODE order by GOODSLEVELTYPEID DESC ) as rown
 ) pd
 WHERE rownums=1
 	GROUP BY
-									Grouping sets ( ( pd.GOODSCODE, pd.GOODSNAME,PD.GOODSTYPENAME ), (PD.GOODSTYPENAME),() ) 		),
+									Grouping sets ( ( pd.GOODSCODE, pd.GOODSNAME,PD.GOODSTYPENAME ), (PD.GOODSTYPENAME),(SUBSTR(pd.GOODSTYPECODE, 0, 6)),() ) 		),
 								产品 AS (
-								SELECT TO_CHAR(GOODSCODE) AS GOODSCODE,GOODSNAME,GOODSSPECIFICATION,gtp.GOODSTYPENAME FROM TP_MST_GOODS
+								SELECT TO_CHAR(GOODSCODE) AS GOODSCODE,GOODSNAME,GOODSSPECIFICATION,gtp.GOODSTYPENAME 
+											,TP_MST_GOODS.LUSTERWAREWEIGHT
+								FROM TP_MST_GOODS
 								LEFT JOIN TP_MST_GOODSTYPE gtp ON TP_MST_GOODS.GOODSTYPEID=gtp.GOODSTYPEID
 								 WHERE TP_MST_GOODS.VALUEFLAG=1
 								UNION ALL
-								SELECT '总计' AS GOODSCODE,null,NULL ,NULL FROM dual
+								SELECT '总计' AS GOODSCODE,null,NULL ,NULL,null  FROM dual
 	
 								),
 打磨擦洗出窑数 AS (
@@ -325,15 +347,16 @@ WHERE rownums=1
 	
 								)
 						SELECT * FROM (
-								SELECT
+									SELECT
 								to_CHAR(检验数.GOODSCODE) AS  产品编码,
-								CASE WHEN 检验数.GOODSCODE <> '总计' THEN to_CHAR(产品.GOODSNAME) ELSE NULL END 产品名称,
+								CASE WHEN 检验数.GOODSCODE <> '总计' THEN to_CHAR(检验数.GOODSNAME) ELSE NULL END 产品名称,
 								CASE WHEN 检验数.GOODSCODE <> '总计' THEN to_CHAR(产品.GOODSSPECIFICATION) ELSE NULL END 产品规格,
 								CASE WHEN 检验数.GOODSCODE <> '总计' THEN to_CHAR(检验数.GOODSTYPENAME) ELSE NULL END 产品类别,
-								CASE WHEN 检验数.GOODSCODE <> '总计' THEN to_CHAR(打磨擦洗出窑数.质量登记) ELSE NULL END 检验量,
+								CASE WHEN 检验数.GOODSCODE <> '总计' THEN to_CHAR(产品.LUSTERWAREWEIGHT) ELSE NULL END 重量,
+								CASE WHEN 检验数.GOODSCODE <> '总计' THEN to_CHAR(检验数.检验量) ELSE NULL END 检验量,
 								CASE WHEN 检验数.GOODSCODE <> '总计' THEN to_CHAR(检验数.合格量) ELSE NULL END 合格量,
 								CASE WHEN 检验数.GOODSCODE <> '总计' THEN to_CHAR(检验数.残品) ELSE NULL END 残品,
-								CASE WHEN 检验数.GOODSCODE <> '总计' THEN DECODE( NVL( 检验数.合格量, 0 ), 0, '0%', TO_CHAR( ( NVL( 检验数.合格量, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ) ELSE NULL END AS 合格率,
+								CASE WHEN 检验数.GOODSCODE <> '总计' THEN DECODE( NVL( 检验数.合格量, 0 ), 0, '0%', TO_CHAR( ( NVL( 检验数.合格量, 0 ) / DECODE( NVL( 检验数.检验量, 1 ), 0, 1, NVL( 检验数.检验量, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ) ELSE NULL END AS 合格率,
 								to_char(nvl(s.成型半检缺陷_坯脏,0)) AS 成型半检缺陷__坯脏,
 								to_char(nvl(s.成型半检缺陷_棕眼,0)) AS 成型半检缺陷__棕眼,
 								to_char(nvl(s.成型半检缺陷_裂底,0)) AS 成型半检缺陷__裂底,
@@ -477,10 +500,11 @@ WHERE rownums=1
 								to_Char(检验数.GOODSNAME),
 								to_Char(产品.GOODSSPECIFICATION),
 								to_Char(产品.GOODSTYPENAME),
+								to_Char(产品.LUSTERWAREWEIGHT),
 								to_Char(打磨擦洗出窑数.质量登记),
 								to_Char(检验数.合格量),
 								to_Char(检验数.残品),
-								DECODE( NVL( 检验数.合格量, 0 ), 0, '0%', TO_CHAR( ( NVL( 检验数.合格量, 0 ) / DECODE( NVL( 检验数.检验量, 1 ), 0, 1, NVL( 检验数.检验量, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ) AS 合格率,
+								DECODE( NVL( 检验数.合格量, 0 ), 0, '0%', TO_CHAR( ( NVL( 检验数.合格量, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ) AS 合格率,
 								DECODE( NVL( s.成型半检缺陷_坯脏, 0 ), 0, '0%', TO_CHAR( ( NVL( s.成型半检缺陷_坯脏, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
 DECODE( NVL( s.成型半检缺陷_棕眼, 0 ), 0, '0%', TO_CHAR( ( NVL( s.成型半检缺陷_棕眼, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
 DECODE( NVL( s.成型半检缺陷_裂底, 0 ), 0, '0%', TO_CHAR( ( NVL( s.成型半检缺陷_裂底, 0 ) / DECODE( NVL( 打磨擦洗出窑数.质量登记, 1 ), 0, 1, NVL( 打磨擦洗出窑数.质量登记, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ),
@@ -621,6 +645,7 @@ DECODE( NVL( s.其他_隧道窑其他试验不良, 0 ), 0, '0%', TO_CHAR( ( NVL(
 								'' 产品名称,
 								'' 产品规格,
 								''产品类别,
+								'' 重量,
 								'' 检验量,
 								'' 合格量,
 								'' 残品,

+ 137 - 107
wwwroot/mes/rpt/rpt305/rpt.ashx

@@ -30,26 +30,32 @@ public class rpt : IHttpHandler, IReadOnlySessionState
             {
                 if (procedure == "本烧")
                 {
-                        sqlStr = @" WITH 数据源 AS ( SELECT
-                                                CASE WHEN  GROUPING_ID(PD.GOODSCODE,PD.GOODSTYPENAME) =2   THEN '小计'
-													WHEN  GROUPING_ID(PD.GOODSCODE,PD.GOODSTYPENAME) =3   THEN '总计'ELSE to_char(PD.GOODSCODE) END AS 产品编码,
-													GROUPING_ID(PD.GOODSCODE,PD.GOODSTYPENAME) AS GID,
+                        sqlStr = @" WITH 数据源 AS ( SELECT											 GROUPING_ID(pd.GOODSCODE,pd.GOODSTYPENAME,SUBSTR(pd.GOODSTYPECODE, 0, 6)) GID,
+                                               CASE WHEN  GROUPING_ID(pd.GOODSCODE,pd.GOODSTYPENAME,SUBSTR(pd.GOODSTYPECODE, 0, 6)) =5   THEN '小计'
+											WHEN  GROUPING_ID(pd.GOODSCODE,pd.GOODSTYPENAME,SUBSTR(pd.GOODSTYPECODE, 0, 6)) =6   AND SUBSTR(PD.GOODSTYPECODE, 0, 6)='001002'  THEN '小件合计'
+                                            WHEN  GROUPING_ID(pd.GOODSCODE,pd.GOODSTYPENAME,SUBSTR(pd.GOODSTYPECODE, 0, 6)) =6   AND SUBSTR(PD.GOODSTYPECODE, 0, 6)='001001'  THEN '大件合计'
+											WHEN  GROUPING_ID(pd.GOODSCODE,pd.GOODSTYPENAME,SUBSTR(pd.GOODSTYPECODE, 0, 6)) =7   THEN '总计'
+														ELSE to_char(pd.GOODSCODE) END AS 产品编码,
+                                                    TO_CHAR(PD.LUSTERWAREWEIGHT)  AS LUSTERWAREWEIGHT,
+																								
                                                 PD.GOODSNAME 产品名称,
                                                 PD.LOGONAME 商标,
                                                 PD.DICTIONARYVALUE 釉色,
                                                 PD.GOODSSPECIFICATION 产品规格,
-												PD.GOODSTYPENAME 产品类别,
+												CASE WHEN GROUPING_ID(PD.GOODSCODE,PD.GOODSTYPENAME,SUBSTR(PD.GOODSTYPECODE, 0, 6))=6 AND SUBSTR(PD.GOODSTYPECODE, 0, 6)='001001' THEN '大件' 
+										 WHEN GROUPING_ID(PD.GOODSCODE,PD.GOODSTYPENAME,SUBSTR(PD.GOODSTYPECODE, 0, 6))=6 AND SUBSTR(PD.GOODSTYPECODE, 0, 6)='001002' THEN '小件'
+										 ELSE TO_CHAR(PD.GOODSTYPENAME )END 产品类别,
                                                 COUNT(DISTINCT PD.BARCODE ) as 出窑量_出窑量,
 												COUNT(DISTINCT CASE WHEN   PD.GOODSLEVELTYPEID IN (4,5) THEN PD.BARCODE ELSE NULL END) AS 出窑量_产量,
                                                 COUNT(DISTINCT CASE WHEN   PD.GOODSLEVELTYPEID NOT IN (4,5) AND PD.GOODSLEVELTYPEID IS NOT NULL   THEN PD.BARCODE ELSE NULL END) AS 出窑量_残品,
                                                 COUNT(DISTINCT CASE WHEN   DEFECTTYPEID IN (9,10) THEN PD.BARCODE ELSE NULL END) 原料缺陷,
-                                                COUNT(DISTINCT CASE WHEN   instr(PD.GROUTINGLINECODE, 'A') > 0 AND PD.HIGHPRESSUREFLAG=0 AND DEFECT.DEFECTTYPEID=1 THEN to_char(PD.BARCODE||DF.DEFECTCODE ) ELSE NULL END) 成型缺陷_成A,
-                                                COUNT(DISTINCT CASE WHEN   instr(PD.GROUTINGLINECODE, 'B') > 0 AND PD.HIGHPRESSUREFLAG=0 AND DEFECT.DEFECTTYPEID=1 THEN to_char(PD.BARCODE||DF.DEFECTCODE ) ELSE NULL END) 成型缺陷_成B,
-                                                COUNT(DISTINCT CASE WHEN   instr(PD.GROUTINGLINECODE, 'C') > 0 AND PD.HIGHPRESSUREFLAG=0 AND DEFECT.DEFECTTYPEID=1 THEN to_char(PD.BARCODE||DF.DEFECTCODE ) ELSE NULL END) 成型缺陷_成C,
-                                                COUNT(DISTINCT CASE WHEN   PD.HIGHPRESSUREFLAG=1 AND DEFECT.DEFECTTYPEID=1 THEN to_char(PD.BARCODE||DF.DEFECTCODE ) ELSE NULL END) 成型缺陷_高压,
-                                                TO_CHAR(COUNT( DISTINCT   CASE WHEN PDS.PROCEDUREID IN (4,36,53) AND df.DEFECTCODE IN ( '10', '12', '13', '14', '15', '16', '17', '18', '19', '20' ) THEN to_char(DF.BARCODE||df.DEFECTCODE ) ELSE NULL END )) AS 成型缺陷_打磨,
-									            TO_CHAR(COUNT( DISTINCT   CASE WHEN PDS.PROCEDUREID IN (5,36,52) AND df.DEFECTCODE IN ( '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '25', '34') THEN to_char(DF.BARCODE||df.DEFECTCODE ) ELSE NULL END )) AS 成型缺陷_擦洗,
-                                                COUNT(DISTINCT CASE WHEN  DEFECT.DEFECTTYPEID=1 THEN PD.BARCODE ELSE NULL END) 成型缺陷_半检,
+                                                COUNT(DISTINCT CASE WHEN   instr(PD.GROUTINGLINECODE, 'A') > 0 AND PD.HIGHPRESSUREFLAG=0 AND (DEFECT.DEFECTTYPEID=1 OR df.DEFECTCODE ='99' ) THEN to_char(PD.BARCODE||DF.DEFECTCODE ) ELSE NULL END) 成型缺陷_成A,
+                                                COUNT(DISTINCT CASE WHEN   instr(PD.GROUTINGLINECODE, 'B') > 0 AND PD.HIGHPRESSUREFLAG=0 AND (DEFECT.DEFECTTYPEID=1 OR df.DEFECTCODE ='99' ) THEN to_char(PD.BARCODE||DF.DEFECTCODE ) ELSE NULL END) 成型缺陷_成B,
+                                                COUNT(DISTINCT CASE WHEN   instr(PD.GROUTINGLINECODE, 'C') > 0 AND PD.HIGHPRESSUREFLAG=0 AND (DEFECT.DEFECTTYPEID=1 OR df.DEFECTCODE ='99' ) THEN to_char(PD.BARCODE||DF.DEFECTCODE ) ELSE NULL END) 成型缺陷_成C,
+                                                COUNT(DISTINCT CASE WHEN   PD.HIGHPRESSUREFLAG=1 AND ( DEFECT.DEFECTTYPEID=1 OR df.DEFECTCODE ='99' ) THEN to_char(PD.BARCODE||DF.DEFECTCODE ) ELSE NULL END) 成型缺陷_高压,
+                                                TO_CHAR(COUNT( DISTINCT   CASE WHEN PDS.PROCEDUREID IN (4,36,53) AND PDS.VALUEFLAG=1 AND df.DEFECTCODE IN ( '10', '12', '13', '14', '15', '16', '17', '18', '19', '20' ) THEN to_char(DF.BARCODE||df.DEFECTCODE ) ELSE NULL END )) AS 成型缺陷_打磨,
+									            TO_CHAR(COUNT( DISTINCT   CASE WHEN PDS.PROCEDUREID IN (5,36,52) AND PDS.VALUEFLAG=1 AND df.DEFECTCODE IN ( '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '25', '34') THEN to_char(DF.BARCODE||df.DEFECTCODE ) ELSE NULL END )) AS 成型缺陷_擦洗,
+                                                COUNT(DISTINCT CASE WHEN DEFECT.VALUEFLAG=1 AND DEFECT.DEFECTTYPEID=1 AND DEFECT.DEFECTCODE NOT IN  ('001','002','1','2','3') THEN PD.BARCODE ELSE NULL END) 成型缺陷_半检,
 									            TO_CHAR(COUNT( DISTINCT  CASE WHEN DF.DEFECTCODE IN ( '36','37','38','39','40','41','42','43','44') THEN to_char(PD.BARCODE||DF.DEFECTCODE ) ELSE NULL END )) AS 烧成窑缺陷_施釉,
                                                 TO_CHAR(COUNT( DISTINCT  CASE WHEN DF.DEFECTCODE IN ( '47','48','49','50','51','52','53','54','55','56','20','57')AND DF.DEFECTCODE IS NOT NULL AND PD.BARCODE IS NOT NULL  THEN to_char(PD.BARCODE||DF.DEFECTCODE ) ELSE NULL END ))AS 烧成窑缺陷_擦坯,
 												TO_CHAR(COUNT( DISTINCT  CASE WHEN DF.DEFECTCODE IN ( '61','62','63','64','65','66','67') THEN to_char(PD.BARCODE||DF.DEFECTCODE ) ELSE NULL END )) AS 烧成窑缺陷_装窑,
@@ -57,45 +63,46 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 									            TO_CHAR(COUNT( DISTINCT  CASE WHEN DF.DEFECTCODE IN ( '83','84')  THEN to_char(PD.BARCODE||DF.DEFECTCODE ) ELSE NULL END )) AS 烧成窑缺陷_出窑,
                                                 COUNT(DISTINCT CASE WHEN  DF.DEFECTCODE IN ('99','100') THEN to_char(PD.BARCODE||DF.DEFECTCODE ) ELSE NULL END) 其他缺陷
                                                 FROM(
-                                                SELECT * FROM(
+                                               SELECT * FROM(
                                                          SELECT
-                                                         BARCODE,PROCEDUREIDS,REWORKPROCEDUREID,GROUTINGLINECODE,GOODSCODE,GOODSNAME,LOGONAME,GOODSLEVELTYPEID,GOODSSPECIFICATION,DICTIONARYVALUE,
-                                                       HIGHPRESSUREFLAG,PROCEDUREID,GOODSTYPENAME,
+                                                         BARCODE,REWORKPROCEDUREID,GROUTINGLINECODE,GOODSCODE,GOODSNAME,LOGONAME,GOODSLEVELTYPEID,GOODSSPECIFICATION,DICTIONARYVALUE,
+                                                       HIGHPRESSUREFLAG,PROCEDUREID,GOODSTYPENAME,GOODSTYPECODE,LUSTERWAREWEIGHT,
                                                          row_number() over (partition by BARCODE order by GOODSLEVELTYPEID DESC ) as rownums
                                                      FROM(
                                              SELECT
-                                                DISTINCT pd.BARCODE,PDS.PROCEDUREID AS PROCEDUREIDS,
+                                                DISTINCT pd.BARCODE,
 												PD.REWORKPROCEDUREID,
                                                 pd.GROUTINGLINECODE,
                                                 pd.GOODSCODE,
                                                 pd.GOODSNAME,
                                                 LOGO.LOGONAME,
-                                                good.GOODSSPECIFICATION,
+                                                good.GOODSSPECIFICATION,good.LUSTERWAREWEIGHT,
                                                 TP_MST_DataDictionary.DICTIONARYVALUE,
                                                 GL.HIGHPRESSUREFLAG,
                                                 pd.PROCEDUREID AS PROCEDUREID,
-												gtp.GOODSTYPENAME,
+												gtp.GOODSTYPENAME,gtp.GOODSTYPECODE,
 												CASE WHEN PDL.GOODSLEVELTYPEID < PD.GOODSLEVELTYPEID  THEN PD.GOODSLEVELTYPEID 
 												WHEN PD.GOODSLEVELTYPEID  < PDL.GOODSLEVELTYPEID THEN PDL.GOODSLEVELTYPEID
 												WHEN PDL.GOODSLEVELTYPEID IS NULL  THEN PD.GOODSLEVELTYPEID
 												WHEN PD.GOODSLEVELTYPEID  = PDL.GOODSLEVELTYPEID THEN PD.GOODSLEVELTYPEID
 												ELSE NULL END GOODSLEVELTYPEID
 										    FROM TP_PM_PRODUCTIONDATA pd
-												INNER JOIN TP_PM_PRODUCTIONDATA PDS ON PDS.BARCODE=PD.BARCODE
-												LEFT  JOIN TP_PM_PRODUCTIONDATA PDL ON PDL.BARCODE=PD.BARCODE AND PDL.PROCEDUREID=60 AND PDL.VALUEFLAG=1
-												LEFT JOIN TP_MST_GOODS good on good.GOODSID=PD.GOODSID
-												LEFT JOIN TP_MST_GOODSTYPE gtp ON good.GOODSTYPEID=gtp.GOODSTYPEID
-                                                LEFT JOIN TP_MST_LOGO logo ON logo.LOGOID=pd.LOGOID
-                                                LEFT JOIN TP_PM_GROUTINGDAILYDETAIL gd ON gd.barcode=pd.barcode
+                                                INNER JOIN TP_PM_GROUTINGDAILYDETAIL gd ON gd.barcode=pd.barcode
+						                        LEFT  JOIN TP_PM_PRODUCTIONDATA PDL ON PDL.BARCODE=PD.BARCODE AND PDL.PROCEDUREID=60 AND PDL.VALUEFLAG=1
+						                        LEFT JOIN TP_MST_GOODS good on good.GOODSID=PD.GOODSID
+						                        LEFT JOIN TP_MST_GOODSTYPE gtp ON good.GOODSTYPEID=gtp.GOODSTYPEID
+                                                LEFT JOIN TP_MST_LOGO logo ON logo.LOGOID=gd.LOGOID
                                                 LEFT JOIN TP_PC_GROUTINGLINE GL ON GL.GROUTINGLINEID=gd.GROUTINGLINEID
                                                 LEFT JOIN TP_MST_DataDictionary ON TP_MST_DataDictionary.DICTIONARYID=gd.GLAZETYPEID AND TP_MST_DataDictionary.DictionaryType = 'TPC002'
-                                                WHERE PD.PROCEDUREID IN(16) AND PD.VALUEFLAG=1    AND PD.CREATETIME >= @DATEBEGIN@ AND PD.CREATETIME <=  @DATEEND@ 
+                                                WHERE PD.PROCEDUREID IN(16) AND PD.VALUEFLAG=1     AND PD.CREATETIME >= @DATEBEGIN@ AND PD.CREATETIME <=  @DATEEND@ 
 												) )WHERE rownums=1
                                                 ) PD
-                                                LEFT JOIN TP_PM_DEFECT df ON DF.BARCODE=PD.BARCODE AND DF.VALUEFLAG=1
+                                                LEFT JOIN TP_PM_DEFECT df ON DF.BARCODE=PD.BARCODE AND DF.VALUEFLAG=1 AND DF.PROCEDUREID NOT IN(61,28) 
 												LEFT JOIN TP_MST_DEFECT DEFECT ON DEFECT.DEFECTID=DF.DEFECTID AND DEFECT.VALUEFLAG=1   
-												INNER JOIN TP_PM_PRODUCTIONDATA PDS ON PDS.BARCODE = PD.BARCODE
-												GROUP BY Grouping sets((PD.GOODSCODE ,PD.GOODSNAME ,PD.LOGONAME ,PD.DICTIONARYVALUE,PD.GOODSSPECIFICATION,PD.GOODSTYPENAME),(PD.GOODSTYPENAME),())
+												INNER JOIN TP_PM_PRODUCTIONDATA PDS ON PDS.BARCODE = PD.BARCODE AND PDS.VALUEFLAG=1
+												GROUP BY Grouping sets(
+                                                        (PD.GOODSCODE ,PD.GOODSNAME ,PD.LOGONAME ,PD.DICTIONARYVALUE,PD.GOODSSPECIFICATION,PD.GOODSTYPENAME,PD.LUSTERWAREWEIGHT),
+                                                        (PD.GOODSTYPENAME),(SUBSTR(pd.GOODSTYPECODE, 0, 6)),())
                                                  ),
 													 工序对应出窑量 AS (
 											    SELECT
@@ -103,8 +110,8 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 											    TO_CHAR(COUNT( DISTINCT CASE WHEN  PDS.GROUTINGLINECODE LIKE '%B%'  THEN PD.BARCODE ELSE NULL END )) 成B出窑量,
 											    TO_CHAR(COUNT( DISTINCT CASE WHEN  PDS.GROUTINGLINECODE LIKE '%C%'  THEN PD.BARCODE ELSE NULL END )) 成C出窑量,
 											    TO_CHAR(COUNT( DISTINCT CASE WHEN  GL.HIGHPRESSUREFLAG =1  THEN PD.BARCODE ELSE NULL END )) 高压出窑量,
-											    TO_CHAR(COUNT( DISTINCT CASE WHEN  PDS.PROCEDUREID IN (4,36,53)  THEN PD.BARCODE ELSE NULL END )) 打磨出窑量,
-											    TO_CHAR(COUNT( DISTINCT CASE WHEN  PDS.PROCEDUREID IN (5,36,52)  THEN PD.BARCODE ELSE NULL END )) 擦洗出窑量,
+											    TO_CHAR(COUNT( DISTINCT CASE WHEN  PDS.PROCEDUREID IN (4,36,53) AND PDS.VALUEFLAG=1  THEN PD.BARCODE ELSE NULL END )) 打磨出窑量,
+											    TO_CHAR(COUNT( DISTINCT CASE WHEN  PDS.PROCEDUREID IN (5,36,52) AND PDS.VALUEFLAG=1 THEN PD.BARCODE ELSE NULL END )) 擦洗出窑量,
 											    TO_CHAR(COUNT( DISTINCT CASE WHEN  PDS.PROCEDUREID =6  THEN PD.BARCODE ELSE NULL END )) 半检出窑量,
 											    TO_CHAR(COUNT( DISTINCT CASE WHEN  PDS.PROCEDUREID IN (10,37,41)  THEN PD.BARCODE ELSE NULL END )) 施釉出窑量,
 											    TO_CHAR(COUNT( DISTINCT CASE WHEN  PDS.PROCEDUREID IN (10,37,41)  THEN PD.BARCODE ELSE NULL END )) 擦坯出窑量,
@@ -116,7 +123,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 											    LEFT JOIN TP_PM_GROUTINGDAILYDETAIL gd ON gd.barcode=pd.barcode
 											    LEFT JOIN TP_PC_GROUTINGLINE GL ON GL.GROUTINGLINEID=gd.GROUTINGLINEID
 											    WHERE PD.VALUEFLAG=1 AND PD.PROCEDUREID=16
-											    AND pd.CREATETIME>= @DATEBEGIN@ AND pd.CREATETIME< @DATEEND@
+											    	AND pd.CREATETIME>=@DATEBEGIN@ AND pd.CREATETIME<= @DATEEND@
 																								 )
                                                  SELECT
                                                  *
@@ -125,12 +132,14 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                         TO_CHAR(产品编码) AS 产品编码,
                                         TO_CHAR(产品名称) AS 产品名称,
                                         TO_CHAR(产品规格) AS 产品规格,
-																				TO_CHAR(产品类别) AS 产品类别,
+										TO_CHAR(产品类别) AS 产品类别,
+                                        TO_CHAR(LUSTERWAREWEIGHT) 重量,
                                         TO_CHAR(釉色) AS 釉色,
                                         TO_CHAR(商标) AS 商标,
-                                        TO_CHAR(出窑量_出窑量) AS 出窑量_出窑量,
-                                        TO_CHAR(出窑量_产量) AS 出窑量_产量,
-                                        TO_CHAR(出窑量_残品) AS 出窑量_残品,
+                                        TO_CHAR(出窑量_出窑量) AS 出窑量,
+                                        TO_CHAR(出窑量_产量) AS 产量,
+                                        TO_CHAR(出窑量_残品) AS 残品,
+                                         DECODE( NVL( 出窑量_产量, 0 ), 0, '0%', TO_CHAR( ( NVL( 出窑量_产量, 0 ) / DECODE( NVL( 出窑量_出窑量, 1 ), 0, 1, NVL( 出窑量_出窑量, 1 ) ) ) * 100, 'fm99990.00' ) || '%' )  合格率,
                                         TO_CHAR(原料缺陷) AS 原料缺陷,
                                         TO_CHAR(成型缺陷_成A) AS 成型缺陷_成A,
                                         TO_CHAR(成型缺陷_成B) AS 成型缺陷_成B,
@@ -156,7 +165,10 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 	                                '',
 	                                '',
 	                                '',
-	                                '','',
+	                                '',
+                                    '',
+                                    '',
+                                    '',
 	                                to_Char(出窑量_出窑量),	
 																	to_Char(成A出窑量),
 																	to_Char(成B出窑量),
@@ -174,7 +186,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                 FROM
 	                                工序对应出窑量
 	                                LEFT JOIN 数据源 ON 1=1 
-	                                WHERE 数据源.GID=3
+	                                WHERE 数据源.GID=7
 
                                         UNION ALL 
                                      SELECT
@@ -185,7 +197,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                       '',
                                       '',
                                       '',
-                                      '','',
+                                      '','','','',
                                       DECODE( NVL(  数据源.原料缺陷, 0 ), 0, '0%', TO_CHAR( (    ( NVL(数据源.原料缺陷, 0 ) / DECODE( NVL( 数据源.出窑量_出窑量, 1 ), 0, 1, NVL(  数据源.出窑量_出窑量, 1 ) ) ) ) * 100, 'fm99990.00' ) || '%' ) 原料缺陷,
 																			
                                       DECODE( NVL(  数据源.成型缺陷_成A, 0 ), 0, '0%', TO_CHAR( (    ( NVL(数据源.成型缺陷_成A, 0 ) / DECODE( NVL( 工序对应出窑量.成A出窑量, 1 ), 0, 1, NVL(  工序对应出窑量.成A出窑量, 1 ) ) ) ) * 100, 'fm99990.00' ) || '%' ) 成型缺陷_成A,
@@ -214,19 +226,27 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                       DECODE( NVL(  数据源.其他缺陷, 0 ), 0, '0%',TO_CHAR( (    ( NVL(数据源.其他缺陷, 0 ) / DECODE( NVL( 数据源.出窑量_出窑量, 1 ), 0, 1, NVL(  数据源.出窑量_出窑量, 1 ) ) ) ) * 100, 'fm99990.00' ) || '%' ) 其他缺陷
                                         FROM 数据源
 										LEFT JOIN 工序对应出窑量 ON 1=1
-                                        WHERE 数据源.GID=3 )  ORDER BY 产品类别,产品编码 ";
+                                        WHERE 数据源.GID=7 )  ORDER BY 产品类别,产品编码";
                 }
                 else if (procedure == "回烧")
                 {
-                           sqlStr = @"  WITH 数据源 AS (SELECT
-                                                CASE WHEN  GROUPING_ID(PD.GOODSCODE,PD.GOODSTYPENAME) =2   THEN '小计'
-													WHEN  GROUPING_ID(PD.GOODSCODE,PD.GOODSTYPENAME) =3   THEN '总计'ELSE to_char(PD.GOODSCODE) END AS 产品编码,
-													GROUPING_ID(PD.GOODSCODE,PD.GOODSTYPENAME) AS GID,
+                           sqlStr = @" WITH 数据源 AS (SELECT
+                       GROUPING_ID(pd.GOODSCODE,pd.GOODSTYPENAME,SUBSTR(pd.GOODSTYPECODE, 0, 6))GID,
+								 CASE WHEN  GROUPING_ID(pd.GOODSCODE,pd.GOODSTYPENAME,SUBSTR(pd.GOODSTYPECODE, 0, 6)) =5   THEN '小计'
+											WHEN  GROUPING_ID(pd.GOODSCODE,pd.GOODSTYPENAME,SUBSTR(pd.GOODSTYPECODE, 0, 6)) =6   AND SUBSTR(PD.GOODSTYPECODE, 0, 6)='001002'  THEN '小件合计'
+                                            WHEN  GROUPING_ID(pd.GOODSCODE,pd.GOODSTYPENAME,SUBSTR(pd.GOODSTYPECODE, 0, 6)) =6   AND SUBSTR(PD.GOODSTYPECODE, 0, 6)='001001'  THEN '大件合计'
+											WHEN  GROUPING_ID(pd.GOODSCODE,pd.GOODSTYPENAME,SUBSTR(pd.GOODSTYPECODE, 0, 6)) =7   THEN '总计'
+														ELSE to_char(pd.GOODSCODE) END AS 产品编码,
+                                                    TO_CHAR(PD.LUSTERWAREWEIGHT)  AS LUSTERWAREWEIGHT,
+																								
                                                 PD.GOODSNAME 产品名称,
                                                 PD.LOGONAME 商标,
                                                 PD.DICTIONARYVALUE 釉色,
                                                 PD.GOODSSPECIFICATION 产品规格,
-												PD.GOODSTYPENAME 产品类别,
+
+																							CASE WHEN GROUPING_ID(PD.GOODSCODE,PD.GOODSTYPENAME,SUBSTR(PD.GOODSTYPECODE, 0, 6))=6 AND SUBSTR(PD.GOODSTYPECODE, 0, 6)='001001' THEN '大件' 
+										 WHEN GROUPING_ID(PD.GOODSCODE,PD.GOODSTYPENAME,SUBSTR(PD.GOODSTYPECODE, 0, 6))=6 AND SUBSTR(PD.GOODSTYPECODE, 0, 6)='001002' THEN '小件'
+										 ELSE TO_CHAR(PD.GOODSTYPENAME )END 产品类别,
                                                 COUNT(DISTINCT PD.BARCODE ) as 出窑量_出窑量,
 												COUNT(DISTINCT CASE WHEN   PD.GOODSLEVELTYPEID IN (4,5) THEN PD.BARCODE ELSE NULL END) AS 出窑量_产量,
                                                 COUNT(DISTINCT CASE WHEN   PD.GOODSLEVELTYPEID NOT IN (4,5) AND PD.GOODSLEVELTYPEID IS NOT NULL   THEN PD.BARCODE ELSE NULL END) AS 出窑量_残品,
@@ -240,14 +260,14 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                                 COUNT(DISTINCT CASE WHEN  DEFECT.DEFECTTYPEID=1 THEN PD.BARCODE ELSE NULL END) 成型缺陷_半检,
 									            TO_CHAR(COUNT( DISTINCT  CASE WHEN DF.DEFECTCODE IN ( '36','37','38','39','40','41','42','43','44') THEN to_char(PD.BARCODE||DF.DEFECTCODE ) ELSE NULL END )) AS 烧成窑缺陷_施釉,
                                                 TO_CHAR(COUNT( DISTINCT  CASE WHEN DF.DEFECTCODE IN ( '47','48','49','50','51','52','53','54','55','56','20','57')AND DF.DEFECTCODE IS NOT NULL AND PD.BARCODE IS NOT NULL  THEN to_char(PD.BARCODE||DF.DEFECTCODE ) ELSE NULL END ))AS 烧成窑缺陷_擦坯,
-												TO_CHAR(COUNT( DISTINCT  CASE WHEN DF.DEFECTCODE IN ( '070','071','43','073','074','075','076','077','078','079','069','080'') THEN to_char(PD.BARCODE||DF.DEFECTCODE ) ELSE NULL END )) AS 烧成窑缺陷_装窑,
+												TO_CHAR(COUNT( DISTINCT  CASE WHEN DF.DEFECTCODE IN ( '070','071','43','073','074','075','076','077','078','079','069','080') THEN to_char(PD.BARCODE||DF.DEFECTCODE ) ELSE NULL END )) AS 烧成窑缺陷_装窑,
 									            TO_CHAR(COUNT( DISTINCT  CASE WHEN DF.DEFECTCODE IN ( '69','70','71','43','73','74','75','76','77','78','79','80') THEN to_char(PD.BARCODE||DF.DEFECTCODE ) ELSE NULL END ))AS 烧成窑缺陷_烧窑,
 									            TO_CHAR(COUNT( DISTINCT  CASE WHEN DF.DEFECTCODE IN ( '0083','0084')  THEN to_char(PD.BARCODE||DF.DEFECTCODE ) ELSE NULL END )) AS 烧成窑缺陷_出窑,
                                                 COUNT(DISTINCT CASE WHEN  DF.DEFECTCODE IN ('099','0100') THEN to_char(PD.BARCODE||DF.DEFECTCODE ) ELSE NULL END) 其他缺陷
                                                 FROM(SELECT * FROM(
                                                  SELECT
-                                                      BARCODE,REWORKPROCEDUREID,GROUTINGLINECODE,GOODSCODE,GOODSNAME,LOGONAME,GOODSLEVELTYPEID,GOODSSPECIFICATION,DICTIONARYVALUE,
-                                                      HIGHPRESSUREFLAG,PROCEDUREID,GOODSTYPENAME,row_number() over (partition by BARCODE order by GOODSLEVELTYPEID DESC ) as rownums
+                                                      BARCODE,REWORKPROCEDUREID,GROUTINGLINECODE,GOODSCODE,GOODSNAME,LOGONAME,GOODSLEVELTYPEID,GOODSSPECIFICATION,DICTIONARYVALUE,GOODSTYPECODE,
+                                                      LUSTERWAREWEIGHT,HIGHPRESSUREFLAG,PROCEDUREID,GOODSTYPENAME,row_number() over (partition by BARCODE order by GOODSLEVELTYPEID DESC ) as rownums
                                                  FROM(
                                                  SELECT
                                                 DISTINCT pd.BARCODE,
@@ -256,11 +276,11 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                                 pd.GOODSCODE,
                                                 pd.GOODSNAME,
                                                 LOGO.LOGONAME,
-                                                good.GOODSSPECIFICATION,
+                                                good.GOODSSPECIFICATION,good.LUSTERWAREWEIGHT,
                                                 TP_MST_DataDictionary.DICTIONARYVALUE,
                                                 GL.HIGHPRESSUREFLAG,
                                                 pd.PROCEDUREID AS PROCEDUREID,
-												gtp.GOODSTYPENAME,
+												gtp.GOODSTYPENAME,gtp.GOODSTYPECODE,
 												CASE WHEN PDLS.GOODSLEVELTYPEID < PD.GOODSLEVELTYPEID  THEN PD.GOODSLEVELTYPEID 
 												WHEN PD.GOODSLEVELTYPEID  < PDLS.GOODSLEVELTYPEID THEN PDLS.GOODSLEVELTYPEID
 												WHEN PDL.GOODSLEVELTYPEID IS NULL  THEN PD.GOODSLEVELTYPEID
@@ -269,7 +289,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                   FROM
                        TP_PM_PRODUCTIONDATA pd
 											  INNER  JOIN TP_PM_PRODUCTIONDATA PDL ON PDL.BARCODE=PD.BARCODE AND PDL.PROCEDUREID=24
-												LEFT  JOIN TP_PM_PRODUCTIONDATA PDLS ON PDL.BARCODE=PD.BARCODE AND PDLS.PROCEDUREID=61 AND PDLS.VALUEFLAG=1
+												LEFT  JOIN TP_PM_PRODUCTIONDATA PDLS ON PDLS.BARCODE=PD.BARCODE AND PDLS.PROCEDUREID=61 AND PDLS.VALUEFLAG=1
                         LEFT JOIN TP_MST_GOODS good on good.GOODSID=PD.GOODSID
 												LEFT JOIN TP_MST_GOODSTYPE gtp ON good.GOODSTYPEID=gtp.GOODSTYPEID
                         LEFT JOIN TP_MST_LOGO logo ON logo.LOGOID=pd.LOGOID
@@ -284,7 +304,9 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                                 LEFT JOIN TP_PM_DEFECT df ON DF.BARCODE=PD.BARCODE AND DF.VALUEFLAG=1
 																								LEFT JOIN TP_MST_DEFECT DEFECT ON DEFECT.DEFECTID=DF.DEFECTID AND DEFECT.VALUEFLAG=1   
 																								INNER JOIN TP_PM_PRODUCTIONDATA PDS ON PDS.BARCODE = PD.BARCODE
-																								 GROUP BY Grouping sets((PD.GOODSCODE ,PD.GOODSNAME ,PD.LOGONAME ,PD.DICTIONARYVALUE,PD.GOODSSPECIFICATION,PD.GOODSTYPENAME),(PD.GOODSTYPENAME),())
+													GROUP BY Grouping sets(
+                                                    (PD.GOODSCODE ,PD.GOODSNAME ,PD.LOGONAME ,PD.DICTIONARYVALUE,PD.GOODSSPECIFICATION,PD.GOODSTYPENAME,PD.LUSTERWAREWEIGHT),
+                                                    (PD.GOODSTYPENAME),(SUBSTR(pd.GOODSTYPECODE, 0, 6)),())
                                                  ),
 											工序对应出窑量 AS (
 											SELECT
@@ -316,11 +338,13 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                         TO_CHAR(产品名称) AS 产品名称,
                                         TO_CHAR(产品规格) AS 产品规格,
 										TO_CHAR(产品类别) AS 产品类别,
+                                        TO_CHAR(LUSTERWAREWEIGHT) 重量,
                                         TO_CHAR(釉色) AS 釉色,
                                         TO_CHAR(商标) AS 商标,
-                                        TO_CHAR(出窑量_出窑量) AS 出窑量_出窑量,
-                                        TO_CHAR(出窑量_产量) AS 出窑量_产量,
-                                        TO_CHAR(出窑量_残品) AS 出窑量_残品,
+                                        TO_CHAR(出窑量_出窑量) AS 出窑量,
+                                        TO_CHAR(出窑量_产量) AS 产量,
+                                        TO_CHAR(出窑量_残品) AS 残品,
+                                         DECODE( NVL( 出窑量_产量, 0 ), 0, '0%', TO_CHAR( ( NVL( 出窑量_产量, 0 ) / DECODE( NVL( 出窑量_出窑量, 1 ), 0, 1, NVL( 出窑量_出窑量, 1 ) ) ) * 100, 'fm99990.00' ) || '%' )  合格率,   
                                         TO_CHAR(原料缺陷) AS 原料缺陷,
                                         TO_CHAR(成型缺陷_成A) AS 成型缺陷_成A,
                                         TO_CHAR(成型缺陷_成B) AS 成型缺陷_成B,
@@ -345,7 +369,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 	                                '',
 	                                '',
 	                                '',
-	                                '','',
+	                                '','','','',
 	                                to_Char(出窑量_出窑量),	
 																	to_Char(成A出窑量),
 																	to_Char(成B出窑量),
@@ -363,7 +387,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                 FROM
 	                                工序对应出窑量
 	                                LEFT JOIN 数据源 ON 1=1 
-	                                WHERE GID = 3
+	                                WHERE GID = 7
                                         UNION ALL 
                                         
                                     SELECT
@@ -374,7 +398,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                       '',
                                       '',
                                       '',
-                                      '','',
+                                      '','','','',
                                       DECODE( NVL(  原料缺陷, 0 ), 0, '0%', TO_CHAR( (    ( NVL(原料缺陷, 0 ) / DECODE( NVL( 出窑量_出窑量, 1 ), 0, 1, NVL(  出窑量_出窑量, 1 ) ) ) ) * 100, 'fm99990.00' ) || '%' ) ,
                                       DECODE( NVL(  成型缺陷_成A, 0 ), 0, '0%', TO_CHAR( (    ( NVL(成型缺陷_成A, 0 ) / DECODE( NVL( 出窑量_出窑量, 1 ), 0, 1, NVL(  出窑量_出窑量, 1 ) ) ) ) * 100, 'fm99990.00' ) || '%' ) ,
                                       DECODE( NVL(  成型缺陷_成B, 0 ), 0, '0%', TO_CHAR( (    ( NVL(成型缺陷_成B, 0 ) / DECODE( NVL( 出窑量_出窑量, 1 ), 0, 1, NVL(  出窑量_出窑量, 1 ) ) ) ) * 100, 'fm99990.00' ) || '%' ) ,
@@ -390,46 +414,46 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                       DECODE( NVL(  烧成窑缺陷_出窑, 0 ), 0, '0%', TO_CHAR( (    ( NVL(烧成窑缺陷_出窑, 0 ) / DECODE( NVL( 出窑量_出窑量, 1 ), 0, 1, NVL(  出窑量_出窑量, 1 ) ) ) ) * 100, 'fm99990.00' ) || '%' ) ,
                                       DECODE( NVL(  其他缺陷, 0 ), 0, '0%', TO_CHAR( (    ( NVL(其他缺陷, 0 ) / DECODE( NVL( 出窑量_出窑量, 1 ), 0, 1, NVL(  出窑量_出窑量, 1 ) ) ) ) * 100, 'fm99990.00' ) || '%' ) 
                                         FROM 数据源
-                                        WHERE GID=3 ) ORDER BY 产品类别,产品编码 ";
+                                        WHERE GID=7 ) ORDER BY 产品类别,产品编码 ";
                 }
                 else if (procedure == "冷修") { 
-                    sqlStr = @" WITH 数据源 AS ( SELECT
-                                                CASE WHEN  GROUPING_ID(PD.GOODSCODE,PD.GOODSTYPENAME) =2   THEN '小计'
-																										 WHEN  GROUPING_ID(PD.GOODSCODE,PD.GOODSTYPENAME) =3   THEN '总计'ELSE to_char(PD.GOODSCODE) END AS 产品编码,
-																										GROUPING_ID(PD.GOODSCODE,PD.GOODSTYPENAME) AS GID,
+                    sqlStr = @"WITH 数据源 AS (SELECT
+                       GROUPING_ID(pd.GOODSCODE,pd.GOODSTYPENAME,SUBSTR(pd.GOODSTYPECODE, 0, 6))GID,
+								 CASE WHEN  GROUPING_ID(pd.GOODSCODE,pd.GOODSTYPENAME,SUBSTR(pd.GOODSTYPECODE, 0, 6)) =5   THEN '小计'
+										    WHEN  GROUPING_ID(pd.GOODSCODE,pd.GOODSTYPENAME,SUBSTR(pd.GOODSTYPECODE, 0, 6)) =6   AND SUBSTR(PD.GOODSTYPECODE, 0, 6)='001002'  THEN '小件合计'
+                                            WHEN  GROUPING_ID(pd.GOODSCODE,pd.GOODSTYPENAME,SUBSTR(pd.GOODSTYPECODE, 0, 6)) =6   AND SUBSTR(PD.GOODSTYPECODE, 0, 6)='001001'  THEN '大件合计'
+											WHEN  GROUPING_ID(pd.GOODSCODE,pd.GOODSTYPENAME,SUBSTR(pd.GOODSTYPECODE, 0, 6)) =7   THEN '总计'
+														ELSE to_char(pd.GOODSCODE) END AS 产品编码,
+																								
                                                 PD.GOODSNAME 产品名称,
                                                 PD.LOGONAME 商标,
                                                 PD.DICTIONARYVALUE 釉色,
                                                 PD.GOODSSPECIFICATION 产品规格,
-																								PD.GOODSTYPENAME 产品类别,
+                                               TO_CHAR(PD.LUSTERWAREWEIGHT)  AS LUSTERWAREWEIGHT,
+                                    CASE WHEN GROUPING_ID(PD.GOODSCODE,PD.GOODSTYPENAME,SUBSTR(PD.GOODSTYPECODE, 0, 6))=6 AND SUBSTR(PD.GOODSTYPECODE, 0, 6)='001001' THEN '大件' 
+										 WHEN GROUPING_ID(PD.GOODSCODE,PD.GOODSTYPENAME,SUBSTR(PD.GOODSTYPECODE, 0, 6))=6 AND SUBSTR(PD.GOODSTYPECODE, 0, 6)='001002' THEN '小件'
+										 ELSE TO_CHAR(PD.GOODSTYPENAME )END 产品类别,
                                                 COUNT(DISTINCT PD.BARCODE ) as 出窑量_出窑量,
-																							COUNT(DISTINCT CASE WHEN   PD.GOODSLEVELTYPEID IN (4,5) THEN PD.BARCODE ELSE NULL END) AS 出窑量_产量,
+												COUNT(DISTINCT CASE WHEN   PD.GOODSLEVELTYPEID IN (4,5) THEN PD.BARCODE ELSE NULL END) AS 出窑量_产量,
                                                 COUNT(DISTINCT CASE WHEN   PD.GOODSLEVELTYPEID NOT IN (4,5) AND PD.GOODSLEVELTYPEID IS NOT NULL   THEN PD.BARCODE ELSE NULL END) AS 出窑量_残品,
                                                 COUNT(DISTINCT CASE WHEN   DEFECTTYPEID IN (9,10) THEN PD.BARCODE ELSE NULL END) 原料缺陷,
-                                                COUNT(DISTINCT CASE WHEN   instr(PD.GROUTINGLINECODE, 'A') > 0 AND PD.HIGHPRESSUREFLAG=0 AND DEFECT.DEFECTTYPEID=1 THEN PD.BARCODE ELSE NULL END) 成型缺陷_成A,
-                                                COUNT(DISTINCT CASE WHEN   instr(PD.GROUTINGLINECODE, 'B') > 0 AND PD.HIGHPRESSUREFLAG=0 AND DEFECT.DEFECTTYPEID=1 THEN PD.BARCODE ELSE NULL END) 成型缺陷_成B,
-                                                COUNT(DISTINCT CASE WHEN   instr(PD.GROUTINGLINECODE, 'C') > 0 AND PD.HIGHPRESSUREFLAG=0 AND DEFECT.DEFECTTYPEID=1 THEN PD.BARCODE ELSE NULL END) 成型缺陷_成C,
-                                                COUNT(DISTINCT CASE WHEN   PD.HIGHPRESSUREFLAG=1 AND DEFECT.DEFECTTYPEID=1 THEN PD.BARCODE ELSE NULL END) 成型缺陷_高压,
-                                              TO_CHAR(COUNT( DISTINCT  CASE WHEN PDS.PROCEDUREID IN (4,36,53) AND df.DEFECTCODE IN ( '10', '12', '13', '14', '15', '16', '17', '18', '19', '20' ) THEN to_char(DF.BARCODE||df.DEFECTCODE ) ELSE NULL END )) AS 成型缺陷_打磨,
-									
-									TO_CHAR(COUNT( DISTINCT  CASE WHEN PDS.PROCEDUREID IN (5,36,52) AND df.DEFECTCODE IN ( '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '25', '34') THEN to_char(DF.BARCODE||df.DEFECTCODE ) ELSE NULL END )) AS 成型缺陷_擦洗,
-                                                COUNT(DISTINCT CASE WHEN   DEFECT.DEFECTTYPEID=1 THEN PD.BARCODE ELSE NULL END) 成型缺陷_半检,
-                                                
-									TO_CHAR(COUNT( DISTINCT  CASE WHEN DF.DEFECTCODE IN ( '36','37','38','39','40','41','42','43','44') THEN to_char(PD.BARCODE||DF.DEFECTCODE ) ELSE NULL END )) AS 烧成窑缺陷_施釉,
-                                            TO_CHAR(COUNT( DISTINCT  CASE WHEN DF.DEFECTCODE IN ( '47','48','49','50','51','52','53','54','55','56','20','57')AND DF.DEFECTCODE IS NOT NULL AND PD.BARCODE IS NOT NULL  THEN to_char(PD.BARCODE||DF.DEFECTCODE ) ELSE NULL END ))AS 烧成窑缺陷_擦坯,
-																
-									TO_CHAR(COUNT( DISTINCT  CASE WHEN DF.DEFECTCODE IN ( '61','62','63','64','65','66','67') THEN to_char(PD.BARCODE||DF.DEFECTCODE ) ELSE NULL END )) AS 烧成窑缺陷_装窑,
-									
-									TO_CHAR(COUNT( DISTINCT  CASE WHEN DF.DEFECTCODE IN ( '69','70','71','43','73','74','75','76','77','78','79','80') THEN to_char(PD.BARCODE||DF.DEFECTCODE ) ELSE NULL END ))AS 烧成窑缺陷_烧窑,
-									
-									TO_CHAR(COUNT( DISTINCT  CASE WHEN DF.DEFECTCODE IN ( '83','84')  THEN to_char(PD.BARCODE||DF.DEFECTCODE ) ELSE NULL END )) AS 烧成窑缺陷_出窑,
-
-                                                COUNT(DISTINCT CASE WHEN    DF.DEFECTCODE IN (SELECT DEFECTCODE  FROM TP_MST_DEFECT WHERE DEFECTTYPEID NOT IN(1,4,5,6,7,8)
-                                                AND DF.DEFECTCODE NOT IN('10','12','13','14','15','16','17','18','19','20','01','02','03','04','05','06','07','08','09','10','25','34')) THEN PD.BARCODE ELSE NULL END) 其他缺陷
+                                                COUNT(DISTINCT CASE WHEN   instr(PD.GROUTINGLINECODE, 'A') > 0 AND PD.HIGHPRESSUREFLAG=0 AND DEFECT.DEFECTTYPEID=1 THEN to_char(PD.BARCODE||DF.DEFECTCODE ) ELSE NULL END) 成型缺陷_成A,
+                                                COUNT(DISTINCT CASE WHEN   instr(PD.GROUTINGLINECODE, 'B') > 0 AND PD.HIGHPRESSUREFLAG=0 AND DEFECT.DEFECTTYPEID=1 THEN to_char(PD.BARCODE||DF.DEFECTCODE ) ELSE NULL END) 成型缺陷_成B,
+                                                COUNT(DISTINCT CASE WHEN   instr(PD.GROUTINGLINECODE, 'C') > 0 AND PD.HIGHPRESSUREFLAG=0 AND DEFECT.DEFECTTYPEID=1 THEN to_char(PD.BARCODE||DF.DEFECTCODE ) ELSE NULL END) 成型缺陷_成C,
+                                                COUNT(DISTINCT CASE WHEN   PD.HIGHPRESSUREFLAG=1 AND DEFECT.DEFECTTYPEID=1 THEN to_char(PD.BARCODE||DF.DEFECTCODE ) ELSE NULL END) 成型缺陷_高压,
+                                                TO_CHAR(COUNT( DISTINCT   CASE WHEN PDS.PROCEDUREID IN (4,36,53) AND df.DEFECTCODE IN ( '10', '12', '13', '14', '15', '16', '17', '18', '19', '20' ) THEN to_char(DF.BARCODE||df.DEFECTCODE ) ELSE NULL END )) AS 成型缺陷_打磨,
+									            TO_CHAR(COUNT( DISTINCT   CASE WHEN PDS.PROCEDUREID IN (5,36,52) AND df.DEFECTCODE IN ( '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '25', '34') THEN to_char(DF.BARCODE||df.DEFECTCODE ) ELSE NULL END )) AS 成型缺陷_擦洗,
+                                                COUNT(DISTINCT CASE WHEN  DEFECT.DEFECTTYPEID=1 THEN PD.BARCODE ELSE NULL END) 成型缺陷_半检,
+									            TO_CHAR(COUNT( DISTINCT  CASE WHEN DF.DEFECTCODE IN ( '36','37','38','39','40','41','42','43','44') THEN to_char(PD.BARCODE||DF.DEFECTCODE ) ELSE NULL END )) AS 烧成窑缺陷_施釉,
+                                                TO_CHAR(COUNT( DISTINCT  CASE WHEN DF.DEFECTCODE IN ( '47','48','49','50','51','52','53','54','55','56','20','57')AND DF.DEFECTCODE IS NOT NULL AND PD.BARCODE IS NOT NULL  THEN to_char(PD.BARCODE||DF.DEFECTCODE ) ELSE NULL END ))AS 烧成窑缺陷_擦坯,
+												TO_CHAR(COUNT( DISTINCT  CASE WHEN DF.DEFECTCODE IN ( '070','071','43','073','074','075','076','077','078','079','069','080') THEN to_char(PD.BARCODE||DF.DEFECTCODE ) ELSE NULL END )) AS 烧成窑缺陷_装窑,
+									            TO_CHAR(COUNT( DISTINCT  CASE WHEN DF.DEFECTCODE IN ( '69','70','71','43','73','74','75','76','77','78','79','80') THEN to_char(PD.BARCODE||DF.DEFECTCODE ) ELSE NULL END ))AS 烧成窑缺陷_烧窑,
+									            TO_CHAR(COUNT( DISTINCT  CASE WHEN DF.DEFECTCODE IN ( '0083','0084')  THEN to_char(PD.BARCODE||DF.DEFECTCODE ) ELSE NULL END )) AS 烧成窑缺陷_出窑,
+                                                COUNT(DISTINCT CASE WHEN  DF.DEFECTCODE IN ('099','0100') THEN to_char(PD.BARCODE||DF.DEFECTCODE ) ELSE NULL END) 其他缺陷
                                                 FROM(SELECT * FROM(
                                                  SELECT
-                                                      BARCODE,REWORKPROCEDUREID,GROUTINGLINECODE,GOODSCODE,GOODSNAME,LOGONAME,GOODSLEVELTYPEID,GOODSSPECIFICATION,DICTIONARYVALUE,
-                                                      HIGHPRESSUREFLAG,PROCEDUREID,GOODSTYPENAME,row_number() over (partition by BARCODE order by GOODSLEVELTYPEID DESC ) as rownums
+                                                      BARCODE,REWORKPROCEDUREID,GROUTINGLINECODE,GOODSCODE,GOODSNAME,LOGONAME,GOODSLEVELTYPEID,GOODSSPECIFICATION,DICTIONARYVALUE,GOODSTYPECODE,
+                                                     LUSTERWAREWEIGHT, HIGHPRESSUREFLAG,PROCEDUREID,GOODSTYPENAME,row_number() over (partition by BARCODE order by GOODSLEVELTYPEID DESC ) as rownums
                                                  FROM(
                                                  SELECT
                                                 DISTINCT pd.BARCODE,
@@ -438,11 +462,11 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                                 pd.GOODSCODE,
                                                 pd.GOODSNAME,
                                                 LOGO.LOGONAME,
-                                                good.GOODSSPECIFICATION,
+                                                good.GOODSSPECIFICATION,good.LUSTERWAREWEIGHT,
                                                 TP_MST_DataDictionary.DICTIONARYVALUE,
                                                 GL.HIGHPRESSUREFLAG,
                                                 pd.PROCEDUREID AS PROCEDUREID,
-												gtp.GOODSTYPENAME,
+												gtp.GOODSTYPENAME,gtp.GOODSTYPECODE,
 												CASE WHEN PDLS.GOODSLEVELTYPEID < PD.GOODSLEVELTYPEID  THEN PD.GOODSLEVELTYPEID 
 												WHEN PD.GOODSLEVELTYPEID  < PDLS.GOODSLEVELTYPEID THEN PDLS.GOODSLEVELTYPEID
 												WHEN PDL.GOODSLEVELTYPEID IS NULL  THEN PD.GOODSLEVELTYPEID
@@ -450,23 +474,25 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 												ELSE NULL END GOODSLEVELTYPEID
                   FROM
                        TP_PM_PRODUCTIONDATA pd
-						INNER JOIN TP_PM_PRODUCTIONDATA PDL ON PDL.BARCODE=PD.BARCODE AND PDL.PROCEDUREID=42		
-                        LEFT  JOIN TP_PM_PRODUCTIONDATA PDLS ON PDL.BARCODE=PD.BARCODE AND PDLS.PROCEDUREID=61 AND PDLS.VALUEFLAG=1
+											  INNER JOIN TP_PM_PRODUCTIONDATA PDL ON PDL.BARCODE=PD.BARCODE AND PDL.PROCEDUREID=42		
+                       LEFT  JOIN TP_PM_PRODUCTIONDATA PDLS ON PDLS.BARCODE=PD.BARCODE AND PDLS.PROCEDUREID=61 AND PDLS.VALUEFLAG=1
                         LEFT JOIN TP_MST_GOODS good on good.GOODSID=PD.GOODSID
-						LEFT JOIN TP_MST_GOODSTYPE gtp ON good.GOODSTYPEID=gtp.GOODSTYPEID
+												LEFT JOIN TP_MST_GOODSTYPE gtp ON good.GOODSTYPEID=gtp.GOODSTYPEID
                         LEFT JOIN TP_MST_LOGO logo ON logo.LOGOID=pd.LOGOID
                         LEFT JOIN TP_PM_GROUTINGDAILYDETAIL gd ON gd.barcode=pd.barcode
                         LEFT JOIN TP_PC_GROUTINGLINE GL ON GL.GROUTINGLINEID=gd.GROUTINGLINEID
                         LEFT JOIN TP_MST_DataDictionary ON TP_MST_DataDictionary.DICTIONARYID=gd.GLAZETYPEID AND TP_MST_DataDictionary.DictionaryType = 'TPC002'
                   WHERE PD.PROCEDUREID IN (28) AND PD.VALUEFLAG=1 AND PDL.BARCODE IS NOT NULL
 												AND PD.CREATETIME >= @DATEBEGIN@ AND PD.CREATETIME <=  @DATEEND@ 
-														AND PDLS.CREATETIME >= PD.CREATETIME
+													AND PDLS.CREATETIME >= PD.CREATETIME
 													) )WHERE rownums=1
                                                 ) PD
                                                 LEFT JOIN TP_PM_DEFECT df ON DF.BARCODE=PD.BARCODE AND DF.VALUEFLAG=1
 																								LEFT JOIN TP_MST_DEFECT DEFECT ON DEFECT.DEFECTID=DF.DEFECTID AND DEFECT.VALUEFLAG=1   
 																								INNER JOIN TP_PM_PRODUCTIONDATA PDS ON PDS.BARCODE = PD.BARCODE
-																								 GROUP BY Grouping sets((PD.GOODSCODE ,PD.GOODSNAME ,PD.LOGONAME ,PD.DICTIONARYVALUE,PD.GOODSSPECIFICATION,PD.GOODSTYPENAME),(PD.GOODSTYPENAME),())
+													GROUP BY Grouping sets(
+                                            (PD.GOODSCODE ,PD.GOODSNAME ,PD.LOGONAME ,PD.DICTIONARYVALUE,PD.GOODSSPECIFICATION,PD.GOODSTYPENAME,PD.LUSTERWAREWEIGHT),(PD.GOODSTYPENAME),
+                                            (SUBSTR(pd.GOODSTYPECODE, 0, 6)),())
                                                  ),
 											工序对应出窑量 AS (
 											SELECT
@@ -484,13 +510,13 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 											TO_CHAR(COUNT( DISTINCT CASE WHEN  PDS.PROCEDUREID IN (56,14) THEN PD.BARCODE ELSE NULL END )) 卸窑出窑量
 											FROM TP_PM_PRODUCTIONDATA PD
 											INNER JOIN TP_PM_PRODUCTIONDATA pds on pds.BARCODE=pd.BARCODE 
-                                            INNER  JOIN TP_PM_PRODUCTIONDATA PDL ON PDL.BARCODE=PD.BARCODE AND PDL.PROCEDUREID=42
+                       INNER  JOIN TP_PM_PRODUCTIONDATA PDL ON PDL.BARCODE=PD.BARCODE AND PDL.PROCEDUREID=42
 											LEFT JOIN TP_PM_GROUTINGDAILYDETAIL gd ON gd.barcode=pd.barcode
 											LEFT JOIN TP_PC_GROUTINGLINE GL ON GL.GROUTINGLINEID=gd.GROUTINGLINEID
 											WHERE PD.VALUEFLAG=1 AND PD.PROCEDUREID=28	
 											AND pd.CREATETIME>=@DATEBEGIN@ AND pd.CREATETIME< @DATEEND@
 											)
-                                                 SELECT
+                            SELECT
                                                  *
                                                  FROM(
                                     SELECT
@@ -498,11 +524,13 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                         TO_CHAR(产品名称) AS 产品名称,
                                         TO_CHAR(产品规格) AS 产品规格,
 										TO_CHAR(产品类别) AS 产品类别,
+                                         TO_CHAR(LUSTERWAREWEIGHT) 重量,
                                         TO_CHAR(釉色) AS 釉色,
                                         TO_CHAR(商标) AS 商标,
-                                        TO_CHAR(出窑量_出窑量) AS 出窑量_出窑量,
-                                        TO_CHAR(出窑量_产量) AS 出窑量_产量,
-                                        TO_CHAR(出窑量_残品) AS 出窑量_残品,
+                                        TO_CHAR(出窑量_出窑量) AS 出窑量,
+                                        TO_CHAR(出窑量_产量) AS 产量,
+                                        TO_CHAR(出窑量_残品) AS 残品,
+                                        DECODE( NVL( 出窑量_产量, 0 ), 0, '0%', TO_CHAR( ( NVL( 出窑量_产量, 0 ) / DECODE( NVL( 出窑量_出窑量, 1 ), 0, 1, NVL( 出窑量_出窑量, 1 ) ) ) * 100, 'fm99990.00' ) || '%' )  合格率,
                                         TO_CHAR(原料缺陷) AS 原料缺陷,
                                         TO_CHAR(成型缺陷_成A) AS 成型缺陷_成A,
                                         TO_CHAR(成型缺陷_成B) AS 成型缺陷_成B,
@@ -515,9 +543,10 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                         TO_CHAR(烧成窑缺陷_擦坯) AS 烧成窑缺陷_擦坯,
                                         TO_CHAR(烧成窑缺陷_装窑) AS 烧成窑缺陷_装窑,
                                         TO_CHAR(烧成窑缺陷_烧窑) AS 烧成窑缺陷_烧窑,
-                                        TO_CHAR(烧成窑缺陷_出窑) AS 烧成窑缺陷_出窑
+                                        TO_CHAR(烧成窑缺陷_出窑) AS 烧成窑缺陷_出窑,
+                                        TO_CHAR(其他缺陷) AS 其他缺陷
                                         FROM 数据源
- UNION ALL                                    
+                                UNION ALL                                    
                                 SELECT
 	                                '出窑数',
 	                                '',
@@ -526,7 +555,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 	                                '',
 	                                '',
 	                                '',
-	                                '','',
+	                                '','','','',
 	                                to_Char(出窑量_出窑量),	
 																	to_Char(成A出窑量),
 																	to_Char(成B出窑量),
@@ -539,11 +568,12 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 																	to_Char(擦坯出窑量),
 																	to_Char(装窑出窑量),
 																	to_Char(烧窑出窑量),
-																	to_Char(卸窑出窑量)
+																	to_Char(卸窑出窑量),
+																	to_Char(出窑量_出窑量 )
                                 FROM
 	                                工序对应出窑量
 	                                LEFT JOIN 数据源 ON 1=1 
-	                                WHERE 产品编码 = '合计'
+	                                WHERE GID = 7
                                         UNION ALL 
                                         
                                     SELECT
@@ -554,7 +584,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                       '',
                                       '',
                                       '',
-                                      '','',
+                                      '','','','',
                                       DECODE( NVL(  原料缺陷, 0 ), 0, '0%', TO_CHAR( (    ( NVL(原料缺陷, 0 ) / DECODE( NVL( 出窑量_出窑量, 1 ), 0, 1, NVL(  出窑量_出窑量, 1 ) ) ) ) * 100, 'fm99990.00' ) || '%' ) ,
                                       DECODE( NVL(  成型缺陷_成A, 0 ), 0, '0%', TO_CHAR( (    ( NVL(成型缺陷_成A, 0 ) / DECODE( NVL( 出窑量_出窑量, 1 ), 0, 1, NVL(  出窑量_出窑量, 1 ) ) ) ) * 100, 'fm99990.00' ) || '%' ) ,
                                       DECODE( NVL(  成型缺陷_成B, 0 ), 0, '0%', TO_CHAR( (    ( NVL(成型缺陷_成B, 0 ) / DECODE( NVL( 出窑量_出窑量, 1 ), 0, 1, NVL(  出窑量_出窑量, 1 ) ) ) ) * 100, 'fm99990.00' ) || '%' ) ,
@@ -567,10 +597,10 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                       DECODE( NVL(  烧成窑缺陷_擦坯, 0 ), 0, '0%', TO_CHAR( (    ( NVL(烧成窑缺陷_擦坯, 0 ) / DECODE( NVL( 出窑量_出窑量, 1 ), 0, 1, NVL(  出窑量_出窑量, 1 ) ) ) ) * 100, 'fm99990.00' ) || '%' ) ,
                                       DECODE( NVL(  烧成窑缺陷_装窑, 0 ), 0, '0%', TO_CHAR( (    ( NVL(烧成窑缺陷_装窑, 0 ) / DECODE( NVL( 出窑量_出窑量, 1 ), 0, 1, NVL(  出窑量_出窑量, 1 ) ) ) ) * 100, 'fm99990.00' ) || '%' ) ,
                                       DECODE( NVL(  烧成窑缺陷_烧窑, 0 ), 0, '0%', TO_CHAR( (    ( NVL(烧成窑缺陷_烧窑, 0 ) / DECODE( NVL( 出窑量_出窑量, 1 ), 0, 1, NVL(  出窑量_出窑量, 1 ) ) ) ) * 100, 'fm99990.00' ) || '%' ) ,
-                                      DECODE( NVL(  烧成窑缺陷_出窑, 0 ), 0, '0%', TO_CHAR( (    ( NVL(烧成窑缺陷_出窑, 0 ) / DECODE( NVL( 出窑量_出窑量, 1 ), 0, 1, NVL(  出窑量_出窑量, 1 ) ) ) ) * 100, 'fm99990.00' ) || '%' ) 
-                                     
+                                      DECODE( NVL(  烧成窑缺陷_出窑, 0 ), 0, '0%', TO_CHAR( (    ( NVL(烧成窑缺陷_出窑, 0 ) / DECODE( NVL( 出窑量_出窑量, 1 ), 0, 1, NVL(  出窑量_出窑量, 1 ) ) ) ) * 100, 'fm99990.00' ) || '%' ) ,
+                                      DECODE( NVL(  其他缺陷, 0 ), 0, '0%', TO_CHAR( (    ( NVL(其他缺陷, 0 ) / DECODE( NVL( 出窑量_出窑量, 1 ), 0, 1, NVL(  出窑量_出窑量, 1 ) ) ) ) * 100, 'fm99990.00' ) || '%' ) 
                                         FROM 数据源
-                                        WHERE GID=3 )  ORDER BY 产品类别,产品编码 ";
+                                        WHERE GID=7 ) ORDER BY 产品类别,产品编码  ";
                     }
                 //读取报表数据
              

+ 190 - 120
wwwroot/mes/rpt/rpt306/rpt.ashx

@@ -29,138 +29,208 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 			if (context.Request["m"].ToString() == "Burnish")
 			{
 				//读取报表数据
-				sqlStr = @"WITH PDS AS 
-												(
-												SELECT
-														COUNT(DISTINCT BARCODE) SUMS, 
-														PD.GROUTINGUSERID,
-														SUBSTR( GROUTINGLINECODE, 1, 2 ) GROUTINGLINECODE2
-													FROM
-														TP_PM_PRODUCTIONDATA pd
-													WHERE
-														pd.PROCEDUREID = 7 
-														AND pd.VALUEFLAG = 1 
-															AND pd.CREATETIME>=@DATEBEGIN@ AND pd.CREATETIME<=@DATEEND@
-														GROUP BY PD.GROUTINGUSERID,SUBSTR( GROUTINGLINECODE, 1, 2 )
-												),
-												QCHU AS (
-												
-	
-SELECT 
-	GOODSCODE,USERID,COUNT(DISTINCT BARCODE) QICHU
+				sqlStr = @"WITH 
+模型数 AS (
+SELECT
+	line.GROUTINGLINECODE,
+	users.USERCODE,
+	users.USERNAME,
+	goods.GOODSCODE,
+	COUNT(DISTINCT detail.GROUTINGMOULDCODE) 模具数量,
+  COUNT( CASE WHEN status.GMOULDSTATUSNAME <> '停用' THEN detail.GROUTINGMOULDCODE ELSE NULL END)应注次数
+	FROM
+		TP_PC_GROUTINGLINEDETAIL detail
+		INNER JOIN TP_SYS_GMOULDSTATUS status ON status.GMOULDSTATUSID = detail.GMouldStatus
+		INNER JOIN TP_MST_GOODS goods ON goods.goodsid = detail.goodsid
+		INNER JOIN TP_PC_GroutingLine line ON detail.GroutingLineID = line.GroutingLineID
+		LEFT JOIN TP_MST_USER users ON line.UserId = users.userId
+		LEFT JOIN TP_PC_Mould m ON detail.MouldSource = '1' 
+		AND ( ( detail.MouldID IS NOT NULL AND m.MouldID = detail.MouldID ) OR ( detail.MouldCode = m.MouldCode ) )
+		LEFT JOIN TP_PC_GMouldRecord gmr ON gmr.GMouldRecordID = detail.LastGMouldRecordID 
+		WHERE detail.valueflag = 1  AND line.accountid = 1
+		AND LINE.VALUEFLAG=1  AND LINE.GMOULDSTATUS=1   
+		GROUP BY line.GROUTINGLINECODE,goods.GOODSCODE,users.USERCODE,users.USERNAME
+		ORDER BY  line.GROUTINGLINECODE
+),
+期初 AS (
+	SELECT
+		gdd.USERCODE,
+		gl.GROUTINGLINECODE,
+		gdd.GOODSCODE,
+		gl.MOULDQUANTITY ,
+		0 模具数量,
+		0 应注次数,
+		COUNT( DISTINCT gdd.BARCODE ) AS 期初数
 FROM
-	TP_PM_GROUTINGDAILYDETAIL d
+	TP_PC_GROUTINGLINE gl
+	INNER JOIN TP_PM_GROUTINGDAILYDETAIL gdd  ON gl.GROUTINGLINECODE=gdd.GROUTINGLINECODE
 WHERE
-	NOT EXISTS ( SELECT BARCODE  FROM TP_PM_PRODUCTIONDATA p where d.BARCODE = p.BARCODE AND P.PROCEDUREID=3 )
-	GROUP BY USERID,GOODSCODE
-												)
-												
-									
-												
-												SELECT
-													case WHEN GROUPING_ID(USERCODE,USERNAME,GOODSCODE,GOODSNAME,GOODSSPECIFICATION,	车间 )=62 THEN 
-													(
-															CASE
-														WHEN 车间= '1A' THEN
-														'成A' 
-														WHEN 车间= '1B' THEN
-														'成B' 
-														WHEN 车间= '1C' THEN
-														'成C' 
-														WHEN 车间= '1D' THEN
-														'成D' 
-														WHEN 车间= '8-' THEN
-														'高压' ELSE '' 
-													END  
-													)
-													
-															 WHEN GROUPING_ID(USERCODE,USERNAME,GOODSCODE,GOODSNAME,GOODSSPECIFICATION,	车间 )=63 THEN '总计' ELSE NULL END AS 统计方式,
-													USERCODE 工号,
-													USERNAME 姓名,
-													GOODSCODE 产品编码,
-													GOODSNAME 产品名称,
-													GOODSSPECIFICATION 产品规格,
-													sum(模型设置数量) 模型设置数量,
-													sum(应注模型数量) 应注模型数量,
-													sum(期初) 期初,
-													sum(注浆个数) 注浆个数,
-													sum(注浆损失) 注浆损失,
-													( sum(注浆个数)-sum(注浆损失) ) 毛坯产量,
-													SUM(毛坯损失) 毛坯损失,
-													SUM(交坯个数) 交坯个数,
-													( sum(期初) + sum(注浆个数) -sum(注浆损失)-SUM(毛坯损失)-SUM(交坯个数) ) 期末,
-													DECODE(NVL( SUM(交坯个数), 0 ),0,'100%',TO_CHAR(( ( NVL( SUM(交坯个数), 0 ) / DECODE( NVL( sum(注浆个数), 1 ), 0, 1, NVL( sum(注浆个数), 1 ) ) ) ) * 100,'fm99990.00' ) || '%' ) 保坯率,
-													DECODE(NVL( sum(应注模型数量), 0 ),0,'100%',TO_CHAR(( ( NVL( sum(应注模型数量), 0 ) / DECODE( NVL( sum(模型设置数量), 1 ), 0, 1, NVL( sum(模型设置数量), 1 ) ) ) ) * 100,'fm99990.00' ) || '%'
-													) 模型利用率,
-													DECODE(1- NVL( SUM(毛坯损失), 0 ),0,'100%',TO_CHAR(( ( ( sum(注浆个数)-SUM(毛坯损失) ) / DECODE( NVL( sum(注浆个数), 1 ), 0, 1, NVL( sum(注浆个数), 1 ) ) ) ) * 100,'fm99990.00' ) || '%' ) 注浆率,
-													SUM(累计次数) 累计次数,'' 组别,'' 工作地点,
-												CASE
-														
-														WHEN 车间= '1A' THEN
-														'成A' 
-														WHEN 车间= '1B' THEN
-														'成B' 
-														WHEN 车间= '1C' THEN
-														'成C' 
-														WHEN 车间= '1D' THEN
-														'成D' 
-														WHEN 车间= '8-' THEN
-														'高压' ELSE '' 
-													END 车间 
-												FROM
-													(
-												SELECT
-														SUBSTR( GDD.GROUTINGLINECODE, 1, 2 ) 车间,
-														GDD.USERID,
-														GDD.USERCODE,
-														GDD.GOODSCODE,
-														USERS.USERNAME,
-														GDD.GOODSNAME,
-														GOOD.GOODSSPECIFICATION,
-														QCHU.QICHU AS 期初,
-												--gdd.GROUTINGBATCHNO,
-													SUM( CASE WHEN GDD.GMOULDSTATUS IN ( 0, 1, 2, 3, 4 ) THEN 1 ELSE 0 END ) 模型设置数量,
-													SUM( CASE WHEN GDD.GMOULDSTATUS <> 0 THEN 1 ELSE 0 END ) 应注模型数量,
-													SUM( CASE WHEN GDD.GROUTINGFLAG = 1 THEN 1 ELSE 0 END ) 注浆个数,
-													SUM( CASE WHEN GDD.SCRAPTYPE = 0 THEN 1 ELSE 0 END ) 注浆损失,
-													SUM( CASE WHEN GDD.SCRAPTYPE = 1 THEN 1 ELSE 0 END ) 毛坯损失,
-													SUMS 交坯个数,
-														(
-																						SELECT
-																							SUM( GROUTINGBATCHNO ) 
-																						FROM
-																							( SELECT GROUTINGDATE, MAX( GROUTINGBATCHNO ) GROUTINGBATCHNO FROM TP_PM_GROUTINGDAILYDETAIL WHERE USERCODE = GDD.USERCODE GROUP BY GROUTINGDATE ) 
-																						) 累计次数
-												FROM
-													TP_PM_GROUTINGDAILYDETAIL GDD
-													LEFT JOIN TP_MST_GOODS GOOD ON GOOD.GOODSID = GDD.GOODSID
-													LEFT JOIN TP_MST_USER USERS ON USERS.USERCODE = GDD.USERCODE 
-													LEFT JOIN PDS ON PDS.GROUTINGLINECODE2=SUBSTR( GDD.GROUTINGLINECODE, 1, 2 )  AND PDS.GROUTINGUSERID=GDD.USERID
-													INNER JOIN QCHU ON QCHU.USERID=GDD.USERID AND QCHU.GOODSCODE=GDD.GOODSCODE
-												WHERE
-														 GDD.CREATETIME>= @DATEBEGIN@ AND GDD.CREATETIME<=@DATEEND@
-												GROUP BY
-													SUBSTR( GDD.GROUTINGLINECODE, 1, 2 ),GDD.USERID,
-													GDD.USERCODE,
-													USERS.USERNAME,
-													GDD.GOODSCODE,
-													GDD.GOODSNAME,SUMS,QCHU.QICHU,
-													GOOD.GOODSSPECIFICATION --gdd.GROUTINGBATCHNO
-													
-													) 
-												GROUP BY Grouping sets ( (
+	gdd.VALUEFLAG = 1 
+	AND gdd.BARCODE IS NOT NULL 
+	AND gdd.SCRAPFLAG = 0 
+	AND gdd.TESTFLAG = 0 
+	AND gdd.TESTMOULDFLAG = 0 
+	AND gl.VALUEFLAG=1
+	AND GL.GMOULDSTATUS=1  
+	AND gdd.BARCODE NOT IN ( SELECT BARCODE FROM TP_PM_PRODUCTIONDATA WHERE PROCEDUREID = 7 AND VALUEFLAG = 1 ) 
+GROUP BY
+	gdd.USERCODE,
+	gl.GROUTINGLINECODE,gl.MOULDQUANTITY,
+	gdd.GOODSCODE 
+	),
+	交坯 AS (
+	SELECT
+		GROUTINGUSERCODE,
+		GOODSCODE,
+		GROUTINGLINECODE,
+		COUNT( DISTINCT BARCODE ) AS 交坯个数 
+	FROM
+		TP_PM_PRODUCTIONDATA 
+	WHERE
+			CREATETIME >@DATEBEGIN@ AND CREATETIME<=@DATEEND@
+		AND VALUEFLAG = 1 
+		AND PROCEDUREID = 7 
+	GROUP BY
+		GROUTINGUSERCODE,
+		GOODSCODE,
+		GROUTINGLINECODE 
+	),
+	注浆明细 AS (
+	SELECT
+		USERCODE,
+		GOODSCODE,
+		GROUTINGLINECODE,
+		GMOULDSTATUS,
+		SCRAPTYPE,
+	COUNT( DISTINCT CASE WHEN SCRAPTYPE = 0 THEN GROUTINGDAILYDETAILID ELSE NULL END ) 注浆损失,
+	SUM( CASE WHEN GROUTINGFLAG = 1 THEN 1 ELSE 0 END ) 注浆个数 ,
+	COUNT(DISTINCT CASE WHEN GMOULDSTATUS IN ( 0, 1, 2, 3, 4 ) THEN GROUTINGDAILYDETAILID ELSE NULL END ) 模型设置数量,
+	COUNT(DISTINCT CASE WHEN GMOULDSTATUS <> 0 THEN GROUTINGDAILYDETAILID ELSE NULL END ) 应注模型数量 
+FROM
+	TP_PM_GROUTINGDAILYDETAIL 
+WHERE
+    CREATETIME >=@DATEBEGIN@ AND CREATETIME<=@DATEEND@
+	AND VALUEFLAG = 1 
+GROUP BY
+	USERCODE,
+	GOODSCODE,
+	GROUTINGLINECODE,
+	GMOULDSTATUS,
+	SCRAPTYPE,
+	GROUTINGFLAG 
+	),
+	损坯 AS (
+	SELECT
+		GROUTINGUSERCODE,
+		GOODSCODE,
+		GROUTINGLINECODE,
+	COUNT( DISTINCT CASE WHEN ( PROCEDUREID < 6 OR PROCEDUREID IN ( 36, 52 ) ) THEN BARCODE ELSE NULL END ) 损坯个数 
+FROM
+	TP_PM_SCRAPPRODUCT 
+WHERE
+	CREATETIME >=@DATEBEGIN@ AND CREATETIME<=@DATEEND@
+	AND VALUEFLAG = 1 
+GROUP BY
+	GROUTINGUSERCODE,
+	GOODSCODE,
+	GROUTINGLINECODE 
+	) 
+	
+	
+	SELECT
+CASE WHEN
+		GROUPING_ID ( USERCODE, USERNAME, GOODSCODE, GOODSNAME, GOODSSPECIFICATION,	车间 ) = 62 THEN
+			(
+			CASE WHEN 车间= '1A' THEN '成A' 
+					 WHEN 车间= '1B' THEN '成B' 
+					 WHEN 车间= '1C' THEN '成C' 
+					 WHEN 车间= '1D' THEN '成D' 
+					 WHEN 车间= '8-' THEN '高压' ELSE ''  END   ) 
+			WHEN GROUPING_ID ( USERCODE, USERNAME, GOODSCODE, GOODSNAME, GOODSSPECIFICATION,	车间 ) = 63 THEN
+				'总计' ELSE NULL  END AS 统计方式,
+				GROUTINGLINECODE 成型线编码,
+			USERCODE 工号,
+			USERNAME 姓名,
+			GOODSCODE 产品编码,
+			GOODSNAME 产品名称,
+			GOODSSPECIFICATION 产品规格,
+			nvl(sum(模型设置数量),0) 模型设置数量,
+			nvl(sum(应注模型数量),0) 应注模型数量,
+			sum(期初数) 期初,
+			sum(注浆个数) 注浆个数,
+			nvl(SUM(交坯个数),0)  交坯个数,
+			sum(注浆损失) 注浆损失,
+			SUM(毛坯损失) 毛坯损失,
+				(sum(期初数) + sum(注浆个数) - nvl(SUM(交坯个数),0)-sum(注浆损失) - SUM(毛坯损失) ) 期末数,
+			DECODE(NVL( SUM(注浆个数), 0 ),0,'100%',TO_CHAR(( ( NVL( SUM(交坯个数), 0 ) / DECODE( NVL( sum(注浆个数), 1 ), 0, 1, NVL( sum(注浆个数), 1 ) ) ) ) * 100,'fm99990.00' ) || '%' ) 保坯率,
+			DECODE(NVL( sum(应注模型数量), 0 ),0,'100%',TO_CHAR(( ( NVL( sum(应注模型数量), 0 ) / DECODE( NVL( sum(模型设置数量), 1 ), 0, 1, NVL( sum(模型设置数量), 1 ) ) ) ) * 100,'fm99990.00' ) || '%') 模型利用率,
+			DECODE(NVL( SUM(毛坯损失), 0 ),0,'100%',TO_CHAR(( ( ( sum(注浆个数)-SUM(毛坯损失) ) / DECODE( NVL( sum(注浆个数), 1 ), 0, 1, NVL( sum(注浆个数), 1 ) ) ) ) * 100,'fm99990.00' ) || '%' ) 注浆率,
+			SUM(累计次数) 累计次数,'' 组别,'' 工作地点,
+			CASE WHEN 车间= '1A' THEN '成A' 
+					 WHEN 车间= '1B' THEN '成B' 
+					 WHEN 车间= '1C' THEN '成C' 
+					 WHEN 车间= '1D' THEN '成D' 
+					 WHEN 车间= '8-' THEN '高压' ELSE ''  END 车间 
+		FROM
+			(
+			SELECT DISTINCT
+			    期初.GROUTINGLINECODE GROUTINGLINECODE,
+				SUBSTR( 期初.GROUTINGLINECODE, 1, 2 ) 车间,
+				期初.USERCODE,
+				users.USERNAME,
+				期初.GOODSCODE,
+				GOOD.GOODSNAME,
+				GOOD.GOODSSPECIFICATION,
+				NVL( SUM(期初.期初数), 0 ) 期初数,
+				交坯.交坯个数,
+				NVL( 注浆个数, 0 ) 注浆个数,
+				NVL( 注浆损失, 0 ) 注浆损失,
+				( NVL( 注浆损失, 0 ) + NVL( 损坯个数, 0 ) ) 毛坯损失,
+			    模型数.模具数量 AS 模型设置数量,
+				模型数.应注次数 AS 应注模型数量,
+				(
+				SELECT
+					SUM( GROUTINGBATCHNO ) 
+				FROM
+					( SELECT GROUTINGDATE, MAX( GROUTINGBATCHNO ) GROUTINGBATCHNO FROM TP_PM_GROUTINGDAILYDETAIL WHERE USERCODE = 期初.USERCODE AND GOODSCODE =期初.GOODSCODE GROUP BY GROUTINGDATE ) 
+				) 累计次数 
+			FROM
+				  期初
+				LEFT JOIN 交坯 ON 交坯.GROUTINGUSERCODE =期初.USERCODE AND 交坯.GOODSCODE =期初.GOODSCODE  AND 交坯.GROUTINGLINECODE =期初.GROUTINGLINECODE 
+				LEFT JOIN TP_MST_GOODS GOOD ON GOOD.GOODSCODE = 期初.GOODSCODE
+				LEFT JOIN TP_MST_USER users ON users.USERCODE = 期初.USERCODE
+				LEFT JOIN 注浆明细 ON 注浆明细.USERCODE = 期初.USERCODE  AND 注浆明细.GOODSCODE =期初.GOODSCODE AND 注浆明细.GROUTINGLINECODE =期初.GROUTINGLINECODE 
+				LEFT JOIN 损坯 ON 损坯.GROUTINGUSERCODE = 期初.USERCODE  AND 损坯.GOODSCODE =期初.GOODSCODE AND 损坯.GROUTINGLINECODE =期初.GROUTINGLINECODE 
+			    LEFT JOIN 模型数 on 模型数.USERCODE =期初.USERCODE AND 模型数.GOODSCODE =期初.GOODSCODE  AND 模型数.GROUTINGLINECODE =期初.GROUTINGLINECODE 
+				
+					GROUP BY   
+				期初.GROUTINGLINECODE ,SUBSTR( 期初.GROUTINGLINECODE, 1, 2 ),
+				期初.USERCODE,
+				users.USERNAME,
+				期初.GOODSCODE,
+				GOOD.GOODSNAME,
+				GOOD.GOODSSPECIFICATION,
+				交坯.交坯个数,
+				注浆个数,
+				注浆损失,
+			   模型数.模具数量 ,损坯个数,
+				模型数.应注次数 		
+	
+	)
+	WHERE GROUTINGLINECODE <>'00'
+		GROUP BY Grouping sets ( (
 												USERCODE,
 													USERNAME,
 													GOODSCODE,
 													GOODSNAME,
-													GOODSSPECIFICATION,				
+													GOODSSPECIFICATION,	GROUTINGLINECODE,
 													车间 
 												),
 												(车间),()
 												)
 													
 												ORDER BY
-												车间,USERCODE";
+												车间,GROUTINGLINECODE,USERCODE";
 			}
 			//获取查询条件
 			List<CDAParameter> sqlPara = new List<CDAParameter>();

+ 49 - 28
wwwroot/mes/rpt/rpt307/rpt.ashx

@@ -32,9 +32,11 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 				sqlStr = @"WITH 精坯拉入 AS (
                                             SELECT
                                             GOODSCODE,
-                                            COUNT( BARCODE) NUMS
+                                            COUNT(DISTINCT BARCODE) NUMS
                                             FROM TP_PM_PRODUCTIONDATA
-                                            WHERE CREATETIME>=@DATEBEGIN@ AND CREATETIME<@DATEEND@  AND PROCEDUREID=7 AND VALUEFLAG=1
+                                            WHERE CREATETIME>@DATEBEGIN@ AND CREATETIME<=@DATEEND@  AND PROCEDUREID=8 
+																						
+																
                                             GROUP BY GOODSCODE
                                             ),
                                             施釉转出 AS (
@@ -42,42 +44,60 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                             GOODSCODE,
                                             COUNT(DISTINCT BARCODE) NUMS
                                             FROM TP_PM_PRODUCTIONDATA
-                                            WHERE CREATETIME>=@DATEBEGIN@ AND CREATETIME<=@DATEEND@ AND PROCEDUREID IN(10,37,41) AND VALUEFLAG=1
+                                            WHERE CREATETIME>@DATEBEGIN@ AND CREATETIME<=@DATEEND@  AND PROCEDUREID IN(10,37,41) 
                                             GROUP BY GOODSCODE
                                             ),
                                             损坯 AS (
                                             SELECT
                                              scap.GOODSCODE,
-                                              SUM(CASE WHEN scap.PROCEDUREID IN(10,37,41) THEN 1 ELSE 0 end) 施釉损失,
-                                             SUM(CASE WHEN scap.PROCEDUREID IN(10,37,41) AND JOB.JOBSID in(15,22) THEN 1 ELSE 0 end) 精坯损失
+                                              COUNT(DISTINCT CASE WHEN scap.PROCEDUREID IN(10,37,41,9) THEN BARCODE ELSE NULL end) 施釉损失,
+                                             COUNT(DISTINCT CASE WHEN scap.PROCEDUREID IN(8)  THEN BARCODE ELSE NULL end) 精坯损失
                                             FROM TP_PM_SCRAPPRODUCT scap
-                                            LEFT JOIN TP_PM_ScrapResponsible sss on scap.ScrapProductID = sss.ScrapProductID 
-                                            LEFT JOIN TP_HR_STAFF userjob on userjob.STAFFID=sss.STAFFID 
-                                            LEFT JOIN TP_MST_JOBS JOB ON JOB.JOBSID=userjob.JOBS 
-                                            WHERE scap.CREATETIME>=@DATEBEGIN@ AND scap.CREATETIME<=@DATEEND@ AND scap.VALUEFLAG=1 AND scap.GOODSLEVELTYPEID=8
+                                            WHERE scap.SCRAPDATE>=@DATEBEGIN@ AND scap.SCRAPDATE<=@DATEEND@ 
+																						AND scap.VALUEFLAG=1  AND SCAP.SCRAPTYPE=0 AND AUDITSTATUS=1 AND GOODSLEVELTYPEID=8
                                             GROUP BY  scap.GOODSCODE
                                             ),
 											期初 AS (
-											SELECT
+													SELECT
 											GOODSCODE 产品编码,
 											COUNT(DISTINCT BARCODE) AS 期初数量
-											FROM TP_PM_INPRODUCTION
-											WHERE  PROCEDUREID=8
+											FROM TP_PM_INPRODUCTION_BAKBYMONTH
+											WHERE  PROCEDUREID=8 
+											AND INSCRAPFLAG=0
+											AND BACKUPTIME>=@DATEBEGIN@
+											
+											GROUP BY GOODSCODE
+											),
+											期末 AS (
+											SELECT GOODSCODE,COUNT( DISTINCT BARCODE)期末 FROM TP_PM_INPRODUCTION WHERE PROCEDUREID=8 AND VALUEFLAG=1
 											GROUP BY GOODSCODE
 											)
 											SELECT
-												产品编码,
-												产品规格,窑号,
+											*
+											FROM(
+											SELECT
+											产品编码,产品名称,
+											产品规格,
+											SUM(期初库存) 期初库存,
+											SUM(精坯拉入量)精坯拉入量,
+											SUM(转窑转入)转窑转入,
+											SUM(施釉转出)施釉转出,
+											SUM(精坯损失)精坯损失,
+											SUM( 期末)期末库存
+											FROM(
+											SELECT
+												产品编码,产品名称,
+												产品规格,
 												期初库存, 
-												精坯拉入量,转窑转入,
+												精坯拉入量,
+												转窑转入,
 												施釉转出,
 												转窑转出,
-												施釉损失,
 												精坯损失,
-											   (期初库存+ 精坯拉入量 + 转窑转入 - 转窑转出 - 施釉转出 - 施釉损失 - 精坯损失) AS 期末库存
+											  nvl((期初库存+精坯拉入量-转窑转入-施釉转出-转窑转出-精坯损失),0) 期末
 											FROM(
                                             SELECT
-                                            good.GOODSCODE 产品编码,
+                                            good.GOODSCODE 产品编码,good.GOODSNAME 产品名称,
                                             good.GOODSSPECIFICATION 产品规格,
                                             '' AS  窑号,
                                             NVL(期初.期初数量, 0) AS 期初库存,
@@ -86,16 +106,17 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                             NVL(施釉转出.NUMS, 0) AS 施釉转出,
                                             0 AS 转窑转出,
                                             NVL(损坯.施釉损失, 0) AS 施釉损失,
-                                            NVL(损坯.精坯损失, 0) AS 精坯损失
-                                            FROM 施釉转出
-                                            LEFT JOIN 精坯拉入 ON 精坯拉入.GOODSCODE=施釉转出.GOODSCODE
-                                            LEFT JOIN 损坯     ON 损坯.GOODSCODE=精坯拉入.GOODSCODE
-                                            LEFT JOIN TP_MST_GOODS good ON good.GOODSCODE=施釉转出.GOODSCODE
-																						LEFT JOIN 期初 ON 期初.产品编码=good.GOODSCODE
-
-																						
-										
-										)";
+                                            NVL(损坯.精坯损失, 0) AS 精坯损失,
+											期末.期末
+                                            FROM      TP_MST_GOODS good
+										  LEFT JOIN 期末 on good.GOODSCODE=期末.GOODSCODE
+											LEFT JOIN 精坯拉入 ON 精坯拉入.GOODSCODE=good.GOODSCODE
+											LEFT JOIN 期初     ON good.GOODSCODE=期初.产品编码
+											LEFT JOIN 施釉转出 ON 施釉转出.GOODSCODE=good.GOODSCODE	
+                      LEFT JOIN 损坯     ON 损坯.GOODSCODE=good.GOODSCODE	
+										))
+										GROUP BY  Grouping sets((产品编码,产品名称,产品规格),())
+										) WHERE (期初库存!=0 OR 精坯拉入量!=0 OR 转窑转入!=0 OR 施釉转出!=0	OR 精坯损失!=0 OR 期末库存!=0)";
 			}
 			//获取查询条件
 			List<CDAParameter> sqlPara = new List<CDAParameter>();

+ 86 - 54
wwwroot/mes/rpt/rpt308/rpt.ashx

@@ -27,67 +27,99 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 			if (context.Request["m"].ToString() == "master")
 			{
 				//读取报表数据
-				sqlStr = @" WITH 釉坯库入 AS (
-                                                SELECT
-                                                GOODSCODE,
-                                                COUNT(DISTINCT BARCODE) NUMS
-                                                FROM TP_PM_PRODUCTIONDATA
-                                                WHERE CREATETIME>=@DATEBEGIN@ AND CREATETIME<=@DATEEND@  AND PROCEDUREID=11 AND VALUEFLAG=1
-                                                GROUP BY GOODSCODE
-                                                ),
-                                                登窑 AS (
-                                                SELECT
-                                                GOODSCODE,
-                                                COUNT(DISTINCT BARCODE) NUMS
-                                                FROM TP_PM_PRODUCTIONDATA
-                                                WHERE CREATETIME>=@DATEBEGIN@ AND CREATETIME<=@DATEEND@  AND PROCEDUREID IN(55,13,25) AND VALUEFLAG=1
-                                                GROUP BY GOODSCODE
-                                                ),
-                                                损坯 AS (
-                                                SELECT
-                                                 GOODSCODE,
-                                                 SUM(CASE WHEN PROCEDUREID IN(55,13,25) THEN 1 ELSE 0 END) 装车损失,
-                                                 SUM(CASE WHEN PROCEDUREID = 11 THEN 1 ELSE 0 END) 釉坯损失
-                                                FROM TP_PM_SCRAPPRODUCT
-                                                WHERE CREATETIME>=@DATEBEGIN@ AND CREATETIME<=@DATEEND@  AND VALUEFLAG=1 AND GOODSLEVELTYPEID=8
-                                                GROUP BY GOODSCODE
-                                                ),
-												期初 AS (
-												SELECT
-												GOODSCODE 产品编码,
-												COUNT(DISTINCT GROUTINGDAILYDETAILID) AS 期初数量
-												FROM TP_PM_INPRODUCTION_BAKBYMONTH
-												WHERE  PROCEDUREID =11
-												GROUP BY GOODSCODE
-												)
+				sqlStr = @"WITH 釉坯库入 AS (
+	SELECT
+		GOODSCODE,
+		COUNT( DISTINCT BARCODE ) 施釉转入 
+	FROM
+		TP_PM_PRODUCTIONDATA 
+WHERE CREATETIME>=@DATEBEGIN@  AND CREATETIME<=@DATEEND@ 
+		AND PROCEDUREID = 11 
+	GROUP BY
+		GOODSCODE 
+	),
+	登窑 AS (
+	SELECT
+		GOODSCODE,
+		COUNT( DISTINCT BARCODE ) NUMS 
+	FROM
+		TP_PM_PRODUCTIONDATA 
+	WHERE CREATETIME>=@DATEBEGIN@  AND CREATETIME<=@DATEEND@ 
+		AND PROCEDUREID IN ( 55, 13 ) 
+		AND VALUEFLAG = 1 
+	GROUP BY
+		GOODSCODE 
+	),
+	损坯 AS (
+	SELECT
+		GOODSCODE,
+	SUM( CASE WHEN PROCEDUREID IN ( 55, 13, 25 ) THEN 1 ELSE 0 END ) 装车损失,
+	SUM( CASE WHEN PROCEDUREID = 11 THEN 1 ELSE 0 END ) 釉坯损失 
+FROM
+	TP_PM_SCRAPPRODUCT 
+  WHERE CREATETIME>=@DATEBEGIN@  AND CREATETIME<=@DATEEND@ 
+	AND VALUEFLAG = 1 
+	AND GOODSLEVELTYPEID = 8 
+GROUP BY
+	GOODSCODE 
+	),
+	期初 AS (
+				SELECT
+											GOODSCODE 产品编码,
+											COUNT(DISTINCT BARCODE) AS 期初数量
+											FROM TP_PM_INPRODUCTION_BAKBYMONTH
+											WHERE  PROCEDUREID=11 
+											AND BACKUPTIME>=@DATEBEGIN@ 
+											GROUP BY GOODSCODE
+	) ,
+	期末 AS (
+											SELECT GOODSCODE,COUNT( DISTINCT BARCODE)期末 FROM TP_PM_INPRODUCTION WHERE PROCEDUREID=11 AND VALUEFLAG=1
+											GROUP BY GOODSCODE
+											)
+	SELECT
+	* 
+	FROM(
+			SELECT
+												产品编码,产品名称,
+												SUM(期初库存)期初库存,
+												SUM(施釉转入)施釉转入,
+												SUM(转窑转入)转窑转入,
+												SUM(装车转出)装车转出,
+												SUM(釉坯损失)釉坯损失,
+												SUM(期末) 期末库存
+												FROM(
 												SELECT
-												产品编码,
+												产品编码,产品名称,
 												期初库存,
 												施釉转入,
 												转窑转入,
 												装车转出,
-												装车损失,
 												釉坯损失,
-												(期初库存 + 施釉转入 + 转窑转入 - 装车转出 - 转窑转出 - 装车损失 - 釉坯损失) AS 期末库存
+											  NVL(期末, 0) 期末
 												FROM(
-                                                SELECT
-                                                good.GOODSCODE 产品编码,
-                                                good.GOODSSPECIFICATION 产品规格,
-                                                '' AS  窑号,
-                                                NVL(SUM(期初.期初数量), 0) AS 期初库存,
-                                                NVL(釉坯库入.NUMS, 0) AS 施釉转入,
-                                                0 AS 转窑转入,
-                                                 NVL( SUM(登窑.NUMS )  , 0)AS 装车转出,
-                                                0 AS 转窑转出,
-                                                 NVL(SUM(损坯.装车损失) , 0)AS 装车损失,
-                                                 NVL(SUM(损坯.釉坯损失) , 0)AS 釉坯损失
-                                                FROM 登窑
-                                                LEFT JOIN 釉坯库入 ON 釉坯库入.GOODSCODE=登窑.GOODSCODE
-                                                LEFT JOIN 损坯     ON 损坯.GOODSCODE=釉坯库入.GOODSCODE
-                                                LEFT JOIN TP_MST_GOODS good ON good.GOODSCODE=登窑.GOODSCODE
-												LEFT JOIN 期初 ON 期初.产品编码=good.GOODSCODE
-												GROUP BY good.GOODSCODE, good.GOODSSPECIFICATION,釉坯库入.NUMS
-																								)";
+	SELECT
+	good.GOODSCODE 产品编码,
+	good.GOODSNAME 产品名称,
+	good.GOODSSPECIFICATION 产品规格,
+	'' AS 窑号,
+	NVL(  期初.期初数量 , 0 ) AS 期初库存,
+	NVL( 釉坯库入.施釉转入, 0 ) AS 施釉转入,
+	0 AS 转窑转入,
+	NVL( 登窑.NUMS , 0 ) AS 装车转出,
+	0 AS 转窑转出,
+	NVL( 损坯.釉坯损失 , 0 ) AS 釉坯损失 ,
+	期末.期末
+FROM
+	TP_MST_GOODS good
+	LEFT JOIN 期末 on good.GOODSCODE=期末.GOODSCODE
+	LEFT JOIN 期初 ON 期初.产品编码 = good.GOODSCODE
+	LEFT JOIN 登窑 ON 登窑.GOODSCODE = good.GOODSCODE
+	LEFT JOIN 釉坯库入 ON 釉坯库入.GOODSCODE = good.GOODSCODE
+	LEFT JOIN 损坯 ON 损坯.GOODSCODE = good.GOODSCODE 
+
+	))GROUP BY Grouping sets((产品编码,产品名称),())
+	)
+	WHERE (期初库存<>0 OR 施釉转入<>0 OR 转窑转入<>0  OR 装车转出<>0 OR 釉坯损失<>0 OR 期末库存<>0)";
 			}
 			//获取查询条件
 			List<CDAParameter> sqlPara = new List<CDAParameter>();