Browse Source

个人增加单独缺陷合计行

张忠帅 1 year ago
parent
commit
971b2ebd7a

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

@@ -45,7 +45,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 	                            TP_MST_DEFECT MDF 
                             WHERE
 	                            MDF.DEFECTTYPEID = 1 
-	                            AND MDF.VALUEFLAG = 1");
+	                            AND MDF.VALUEFLAG = 1 ORDER BY  MDF.DEFECTCODE");
                 for (int i = 0; i < dt.Rows.Count; i++) {
                     if (i > 0) defect += ",";
                     defect += dt.Rows[i]["DEFECTCODE"].ToString()+" "+dt.Rows[i]["DEFECTNAME"].ToString();
@@ -59,7 +59,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 	                            TP_MST_DEFECT MDF 
                             WHERE
 	                            MDF.DEFECTTYPEID = 1 
-	                            AND MDF.VALUEFLAG = 1");
+	                            AND MDF.VALUEFLAG = 1 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();

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

@@ -38,7 +38,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                             FROM
 	                            TP_MST_INHERITANCEDEFECTS MDF 
                             WHERE
-	                            DEFECTPROCEDUREID=3
+	                            DEFECTPROCEDUREID=3 ORDER BY  MDF.DEFECTCODE
 	                            ");
 				for (int i = 0; i < dt.Rows.Count; i++)
 				{
@@ -46,14 +46,14 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 					defect += dt.Rows[i]["DEFECTCODE"].ToString() + " " + dt.Rows[i]["DEFECTNAME"].ToString();
 				}
 			string sumdefect = "";
-              DataTable dts = conn.ExecuteDatatable(@"	SELECT DISTINCT
-	                            MDF.DEFECTCODE AS DC,
+              DataTable dts = conn.ExecuteDatatable(@"	SELECT 
+	                           DISTINCT MDF.DEFECTCODE AS DC,
 	                            'TO_CHAR(SUM( CASE WHEN DF.DEFECTCODE = '''||DEFECTCODE||''' THEN 1 ELSE 0 END ))' AS DEFECTCODE,
 	                            MDF.DEFECTNAME 
                             FROM
 	                            TP_MST_INHERITANCEDEFECTS MDF 
                             WHERE
-	                            DEFECTPROCEDUREID=3");
+	                            DEFECTPROCEDUREID=3 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();

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

@@ -37,7 +37,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                             FROM
 	                            TP_MST_INHERITANCEDEFECTS MDF 
                             WHERE
-	                            DEFECTPROCEDUREID IN(4)
+	                            DEFECTPROCEDUREID IN(4) ORDER BY  MDF.DEFECTCODE
 	                            ");
 				for (int i = 0; i < dt.Rows.Count; i++)
 				{
@@ -52,7 +52,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                             FROM
 	                            TP_MST_INHERITANCEDEFECTS MDF 
                             WHERE
-	                            DEFECTPROCEDUREID=4");
+	                            DEFECTPROCEDUREID=4 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();

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

@@ -38,7 +38,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                             FROM
 	                            TP_MST_INHERITANCEDEFECTS MDF 
                             WHERE
-	                            DEFECTPROCEDUREID IN(5)
+	                            DEFECTPROCEDUREID IN(5) ORDER BY  MDF.DEFECTCODE
 	                            ");
 				for (int i = 0; i < dt.Rows.Count; i++)
 				{
@@ -53,7 +53,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                             FROM
 	                            TP_MST_INHERITANCEDEFECTS MDF 
                             WHERE
-	                            DEFECTPROCEDUREID=5");
+	                            DEFECTPROCEDUREID=5 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();

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

@@ -38,7 +38,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                             FROM
 	                            TP_MST_INHERITANCEDEFECTS MDF 
                             WHERE
-	                            DEFECTPROCEDUREID IN(10,37,41)
+	                            DEFECTPROCEDUREID IN(10,37,41) ORDER BY  MDF.DEFECTCODE
 	                            ");
 				for (int i = 0; i < dt.Rows.Count; i++)
 				{
@@ -53,7 +53,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                             FROM
 	                            TP_MST_INHERITANCEDEFECTS MDF 
                             WHERE
-	                            DEFECTPROCEDUREID IN(10,37,41)");
+	                            DEFECTPROCEDUREID IN(10,37,41) 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();

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

@@ -38,7 +38,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 (22)
+															WHERE jobs.JOBSID IN (22) ORDER BY  MDF.DEFECTCODE
 	                            ");
 				for (int i = 0; i < dt.Rows.Count; i++)
 				{
@@ -51,7 +51,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 (22)");
+															WHERE jobs.JOBSID IN (22) 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();

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

@@ -38,7 +38,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                             FROM
 	                            TP_MST_INHERITANCEDEFECTS MDF 
                             WHERE
-	                            DEFECTPROCEDUREID IN(55,13)
+	                            DEFECTPROCEDUREID IN(55,13) ORDER BY  MDF.DEFECTCODE
 	                            ");
 				for (int i = 0; i < dt.Rows.Count; i++)
 				{
@@ -52,7 +52,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 													 FROM
 	                            TP_MST_INHERITANCEDEFECTS MDF 
                             WHERE
-	                            DEFECTPROCEDUREID IN(55,13)");
+	                            DEFECTPROCEDUREID IN(55,13) 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();

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

@@ -39,7 +39,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                             FROM
 	                            TP_MST_INHERITANCEDEFECTS MDF 
                             WHERE
-	                            DEFECTPROCEDUREID IN(39,57)
+	                            DEFECTPROCEDUREID IN(39,57) ORDER BY  MDF.DEFECTCODE
 	                            ");
 				for (int i = 0; i < dt.Rows.Count; i++)
 				{
@@ -53,7 +53,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 	                             FROM
 	                            TP_MST_INHERITANCEDEFECTS MDF 
                             WHERE
-	                            DEFECTPROCEDUREID IN(39,57)");
+	                            DEFECTPROCEDUREID IN(39,57) 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();

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

@@ -38,7 +38,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 	                            MDF.DEFECTNAME 
                             FROM
 	                            TP_MST_DEFECT MDF 
-                            WHERE MDF.DEFECTTYPEID in(8)
+                            WHERE MDF.DEFECTTYPEID in(8) ORDER BY  MDF.DEFECTCODE
 	                            ");
 				for (int i = 0; i < dt.Rows.Count; i++)
 				{
@@ -51,7 +51,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 	                                                   MDF.DEFECTNAME 
                             FROM
 	                            TP_MST_DEFECT MDF 
-                            WHERE MDF.DEFECTTYPEID in(8)");
+                            WHERE MDF.DEFECTTYPEID in(8) 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();

+ 1 - 1
wwwroot/mes/rpt/rpt211/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=2");
+															WHERE jobs.JOBSID=2 ORDER BY  MDF.DEFECTCODE");
                 for (int i = 0; i < dt.Rows.Count; i++)
                 {
                     if (i > 0) defect += ",";

+ 52 - 13
wwwroot/mes/rpt/rpt212/rpt.ashx

@@ -35,14 +35,24 @@ 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)");
+															WHERE jobs.JOBSID IN (3) ORDER BY  MDF.DEFECTCODE");
 				for (int i = 0; i < dt.Rows.Count; i++)
 				{
 					if (i > 0) defect += ",";
 					defect += dt.Rows[i]["DEFECTCODE"].ToString() + " " + dt.Rows[i]["DEFECTNAME"].ToString();
 				}
 
-
+					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,
+	                            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");
+                for (int i = 0; i < dts.Rows.Count; i++) {
+                    if (i > 0) sumdefect += ",";
+                    sumdefect += dts.Rows[i]["DEFECTCODE"].ToString()+" "+dts.Rows[i]["DEFECTNAME"].ToString();
+                }
 
 				string sqlStr = @"WITH 部门 AS (
                                         SELECT  GROUTINGLINEID,
@@ -75,7 +85,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 															FROM TP_PC_DEFECTPROCEDUREJOBS JOBS
 															LEFT JOIN  TP_MST_DEFECT MDF  ON mdf.DEFECTID=JOBS.DEFECTID 
 															WHERE jobs.JOBSID IN (3) )
-											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_PC_CLASSESDETAIL CLS ON CLS.CLASSESSETTINGID=PDC.CLASSESSETTINGID
 											LEFT JOIN TP_HR_STAFF STF ON STF.STAFFID=CLS.STAFFID
                                         WHERE
@@ -94,18 +104,19 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                         	PD.BARCODE ,
                                         	DF.BARCODE 
                                         )
-                                        
+                          SELECT * FROM(
                                         SELECT
                                          GROUPING_ID(基础数据.工号,基础数据.姓名,部门.部门,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标) AS GID,
                                         CASE when GROUPING_ID(基础数据.工号,基础数据.姓名,部门.部门,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标)=127 THEN'总计'
                                         	 when GROUPING_ID(基础数据.工号,基础数据.姓名,部门.部门,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标)=31 THEN'小计'ELSE TO_CHAR(基础数据.工号) END AS 工号,
-                                        基础数据.姓名,基础数据.产品编码,
-                                        基础数据.产品名称,
-                                        基础数据.产品规格,
-                                        基础数据.釉色,
-                                        基础数据.商标,
-                                        COUNT(DISTINCT 出窑条码) 出窑量,
-                                        COUNT(DISTINCT 缺陷条码) 缺陷量,
+                                        TO_CHAR(基础数据.姓名)姓名,
+										TO_CHAR(基础数据.产品编码)产品编码,
+                                        TO_CHAR(基础数据.产品名称)产品名称,
+                                        TO_CHAR(基础数据.产品规格)产品规格,
+                                        TO_CHAR(基础数据.釉色)釉色,
+                                        TO_CHAR(基础数据.商标)商标,
+                                        TO_CHAR(COUNT(DISTINCT 出窑条码)) 出窑量,
+                                        TO_CHAR(COUNT(DISTINCT 缺陷条码)) 缺陷量,
                                         TO_CHAR( (COUNT(DISTINCT 缺陷条码)/COUNT(DISTINCT 出窑条码) * 100), 'fm99990.00') || '%' 缺陷率,
                                         {DEFECT}
                                         FROM 基础数据
@@ -121,9 +132,37 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 																	基础数据.产品规格,
 																	基础数据.釉色,
 																	基础数据.商标), (基础数据.工号,基础数据.姓名),() )
-																	ORDER BY 	基础数据.工号,基础数据.姓名,基础数据.产品编码,基础数据.产品名称,GROUPING_ID(基础数据.工号,基础数据.姓名,部门.部门,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标)
+																	
+						UNION ALL
+																	SELECT
+																	126 ,
+																	'',
+																	'',
+																	'',
+																	'',
+																	'',
+																	'',
+																	'',
+																	'',
+																	'',
+																	'',
+																	TO_CHAR(SUM( CASE WHEN MDF.DEFECTCODE = '12' THEN 1 ELSE 0 END )) 变形,
+																	TO_CHAR(SUM( CASE WHEN MDF.DEFECTCODE = '15' THEN 1 ELSE 0 END )) 孔眼不良,
+																	TO_CHAR(SUM( CASE WHEN MDF.DEFECTCODE = '17' THEN 1 ELSE 0 END )) 眼歪,
+																	TO_CHAR(SUM( CASE WHEN MDF.DEFECTCODE = '18' THEN 1 ELSE 0 END )) 丢气孔,
+																	TO_CHAR(SUM( CASE WHEN MDF.DEFECTCODE = '14' THEN 1 ELSE 0 END )) 管道渣,
+																	TO_CHAR(SUM( CASE WHEN MDF.DEFECTCODE = '19' THEN 1 ELSE 0 END )) 丢眼,
+																	TO_CHAR(SUM( CASE WHEN MDF.DEFECTCODE = '13' THEN 1 ELSE 0 END )) 渣,
+																	TO_CHAR(SUM( CASE WHEN MDF.DEFECTCODE = '20' THEN 1 ELSE 0 END )) 坯磕,
+																	TO_CHAR(SUM( CASE WHEN MDF.DEFECTCODE = '16' THEN 1 ELSE 0 END )) 堵眼,
+																	TO_CHAR(SUM( CASE WHEN MDF.DEFECTCODE = '10' THEN 1 ELSE 0 END )) 糙活   
+															FROM 基础数据
+                                        LEFT JOIN 部门 ON 部门.GROUTINGLINEID=基础数据.GROUTINGLINEID
+                                        LEFT JOIN TP_MST_DEFECT MDF ON 基础数据.缺陷ID = MDF.DEFECTID 
+                                        AND MDF.DEFECTTYPEID = 1 
+		) ORDER BY GID
 
-".Replace("{DEFECT}", defect);
+".Replace("{DEFECTSUM}",sumdefect).Replace("{DEFECT}", defect);
 
 				//获取查询条件
 				List<CDAParameter> sqlPara = new List<CDAParameter>();

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

@@ -35,13 +35,23 @@ 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=4");
+															WHERE jobs.JOBSID=4 ORDER BY  MDF.DEFECTCODE");
 				for (int i = 0; i < dt.Rows.Count; i++)
 				{
 					if (i > 0) defect += ",";
 					defect += dt.Rows[i]["DEFECTCODE"].ToString() + " " + dt.Rows[i]["DEFECTNAME"].ToString();
 				}
-
+				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,
+	                            MDF.DEFECTNAME 
+                           FROM TP_PC_DEFECTPROCEDUREJOBS JOBS
+															LEFT JOIN  TP_MST_DEFECT MDF  ON mdf.DEFECTID=JOBS.DEFECTID 
+															WHERE jobs.JOBSID=4 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();
+                }
 
 
 				string sqlStr = @"WITH 部门 AS (
@@ -93,18 +103,19 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                         	PD.BARCODE ,
                                         	DF.BARCODE 
                                         )
-                                        
+                                        SELECT * FROM(
                                              SELECT
                                         GROUPING_ID(基础数据.工号,基础数据.姓名,部门.部门,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标) AS GID,
                                         CASE when GROUPING_ID(基础数据.工号,基础数据.姓名,部门.部门,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标)=127 THEN'总计'
                                         	 when GROUPING_ID(基础数据.工号,基础数据.姓名,部门.部门,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标)=31 THEN'小计'ELSE TO_CHAR(基础数据.工号) END AS 工号,
-                                         基础数据.姓名,基础数据.产品编码,
-                                        基础数据.产品名称,
-                                        基础数据.产品规格,
-                                        基础数据.釉色,
-                                        基础数据.商标,
-                                        COUNT(DISTINCT 出窑条码) 出窑量,
-                                        COUNT(DISTINCT 缺陷条码) 缺陷量,
+                                        TO_CHAR(基础数据.姓名)姓名,
+										TO_CHAR(基础数据.产品编码)产品编码,
+                                        TO_CHAR(基础数据.产品名称)产品名称,
+                                        TO_CHAR(基础数据.产品规格)产品规格,
+                                        TO_CHAR(基础数据.釉色)釉色,
+                                        TO_CHAR(基础数据.商标)商标,
+                                        TO_CHAR(COUNT(DISTINCT 出窑条码)) 出窑量,
+                                        TO_CHAR(COUNT(DISTINCT 缺陷条码)) 缺陷量,
                                         TO_CHAR( (COUNT(DISTINCT 缺陷条码)/COUNT(DISTINCT 出窑条码) * 100), 'fm99990.00') || '%' 缺陷率,
                                         {DEFECT}
                                         FROM 基础数据
@@ -120,9 +131,37 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 																	基础数据.产品规格,
 																	基础数据.釉色,
 																	基础数据.商标), (基础数据.工号,基础数据.姓名),() )
-																	ORDER BY 	基础数据.工号,基础数据.姓名,基础数据.产品名称,GROUPING_ID(基础数据.工号,基础数据.姓名,部门.部门,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标)
+																													
+						UNION ALL
+																	SELECT
+																	126 ,
+																	'',
+																	'',
+																	'',
+																	'',
+																	'',
+																	'',
+																	'',
+																	'',
+																	'',
+																	'',
+																	TO_CHAR(SUM( CASE WHEN MDF.DEFECTCODE = '12' THEN 1 ELSE 0 END )) 变形,
+																	TO_CHAR(SUM( CASE WHEN MDF.DEFECTCODE = '15' THEN 1 ELSE 0 END )) 孔眼不良,
+																	TO_CHAR(SUM( CASE WHEN MDF.DEFECTCODE = '17' THEN 1 ELSE 0 END )) 眼歪,
+																	TO_CHAR(SUM( CASE WHEN MDF.DEFECTCODE = '18' THEN 1 ELSE 0 END )) 丢气孔,
+																	TO_CHAR(SUM( CASE WHEN MDF.DEFECTCODE = '14' THEN 1 ELSE 0 END )) 管道渣,
+																	TO_CHAR(SUM( CASE WHEN MDF.DEFECTCODE = '19' THEN 1 ELSE 0 END )) 丢眼,
+																	TO_CHAR(SUM( CASE WHEN MDF.DEFECTCODE = '13' THEN 1 ELSE 0 END )) 渣,
+																	TO_CHAR(SUM( CASE WHEN MDF.DEFECTCODE = '20' THEN 1 ELSE 0 END )) 坯磕,
+																	TO_CHAR(SUM( CASE WHEN MDF.DEFECTCODE = '16' THEN 1 ELSE 0 END )) 堵眼,
+																	TO_CHAR(SUM( CASE WHEN MDF.DEFECTCODE = '10' THEN 1 ELSE 0 END )) 糙活   
+															FROM 基础数据
+                                        LEFT JOIN 部门 ON 部门.GROUTINGLINEID=基础数据.GROUTINGLINEID
+                                        LEFT JOIN TP_MST_DEFECT MDF ON 基础数据.缺陷ID = MDF.DEFECTID 
+                                        AND MDF.DEFECTTYPEID = 1 
+		) ORDER BY GID
 
-".Replace("{DEFECT}", defect);
+".Replace("{DEFECTSUM}",sumdefect).Replace("{DEFECT}", defect);
 
 				//获取查询条件
 				List<CDAParameter> sqlPara = new List<CDAParameter>();

+ 49 - 17
wwwroot/mes/rpt/rpt214/rpt.ashx

@@ -39,7 +39,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 	                            TP_MST_DEFECT MDF 
                             WHERE
 	                            MDF.DEFECTTYPEID = 1 
-	                            AND MDF.VALUEFLAG = 1");//半检获取 成型全部缺陷
+	                            AND MDF.VALUEFLAG = 1 ORDER BY  MDF.DEFECTCODE");//半检获取 成型全部缺陷
 				for (int i = 0; i < dt.Rows.Count; i++)
 				{
 					if (i > 0) defect += ",";
@@ -47,7 +47,19 @@ 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,
+	                            MDF.DEFECTNAME 
+                             FROM
+	                            TP_MST_DEFECT MDF 
+                            WHERE
+	                            MDF.DEFECTTYPEID = 1 
+	                            AND MDF.VALUEFLAG = 1 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();
+                }
 				string sqlStr = @"WITH 部门 AS (
                                         SELECT  GROUTINGLINEID,
                                         CASE WHEN HIGHPRESSUREFLAG=1 THEN'高压' else TO_CHAR(SUBSTR(GROUTINGLINECODE, 1, 2)) END AS 部门
@@ -64,7 +76,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                         	LG.LOGONAME AS 商标,
                                         	PD.BARCODE 出窑条码,
                                         	DF.BARCODE 缺陷条码,
-                                        	listagg(DF.DEFECTID,',') within group( order by PD.BARCODE) 缺陷ID
+                                        	DF.DEFECTID 缺陷ID
                                         FROM
                                         	TP_PM_PRODUCTIONDATA PD
                                         	LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GDL ON GDL.BARCODE = PD.BARCODE
@@ -80,7 +92,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 																  WHERE
 																      MDF.DEFECTTYPEID = 1 
 																      AND MDF.VALUEFLAG = 1 )
-											INNER JOIN TP_PM_PRODUCTIONDATA PDC ON PDC.BARCODE=GDL.BARCODE AND PDC.PROCEDUREID IN (	40,6,31)
+											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
                                         WHERE
@@ -97,38 +109,58 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                         	MD.DICTIONARYVALUE ,
                                         	LG.LOGONAME ,
                                         	PD.BARCODE ,
-                                        	DF.BARCODE 
+                                        	DF.BARCODE ,DF.DEFECTID
                                         )
-                                        
+                                        SELECT * FROM(
                                         SELECT
                                          GROUPING_ID(基础数据.工号,基础数据.姓名,部门.部门,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标) AS GID,
                                         CASE when GROUPING_ID(基础数据.工号,基础数据.姓名,部门.部门,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标)=127 THEN'总计'
                                         	 when GROUPING_ID(基础数据.工号,基础数据.姓名,部门.部门,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标)=31 THEN'小计'ELSE TO_CHAR(基础数据.工号) END AS 工号,
-                                        基础数据.姓名,
-                                        基础数据.产品名称,
-                                        基础数据.产品规格,
-                                        基础数据.釉色,
-                                        基础数据.商标,
-                                        COUNT(DISTINCT 出窑条码) 出窑量,
-                                        COUNT(DISTINCT 缺陷条码) 缺陷量,
+                                        TO_CHAR(基础数据.姓名)姓名,
+										TO_CHAR(基础数据.产品编码)产品编码,
+                                        TO_CHAR(基础数据.产品名称)产品名称,
+                                        TO_CHAR(基础数据.产品规格)产品规格,
+                                        TO_CHAR(基础数据.釉色)釉色,
+                                        TO_CHAR(基础数据.商标)商标,
+                                        TO_CHAR(COUNT(DISTINCT 出窑条码)) 出窑量,
+                                        TO_CHAR(COUNT(DISTINCT 缺陷条码)) 缺陷量,
                                         TO_CHAR( (COUNT(DISTINCT 缺陷条码)/COUNT(DISTINCT 出窑条码) * 100), 'fm99990.00') || '%' 缺陷率,
                                         {DEFECT}
                                         FROM 基础数据
                                         LEFT JOIN 部门 ON 部门.GROUTINGLINEID=基础数据.GROUTINGLINEID
                                         LEFT JOIN TP_MST_DEFECT MDF ON 基础数据.缺陷ID = MDF.DEFECTID 
                                         AND MDF.DEFECTTYPEID = 1 
-                                             GROUP BY
+                                              GROUP BY
 												Grouping sets ( ( 
 																	基础数据.工号,
 																	基础数据.姓名,
-																	部门.部门,
+																	部门.部门,基础数据.产品编码,
 																	基础数据.产品名称,
 																	基础数据.产品规格,
 																	基础数据.釉色,
 																	基础数据.商标), (基础数据.工号,基础数据.姓名),() )
-																	ORDER BY 	基础数据.工号,基础数据.姓名,基础数据.产品名称,GROUPING_ID(基础数据.工号,基础数据.姓名,部门.部门,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标)
+																												
+						UNION ALL
+																	SELECT
+																	126 ,
+																	'',
+																	'',
+																	'',
+																	'',
+																	'',
+																	'',
+																	'',
+																	'',
+																	'',
+																	'',
+																	{DEFECTSUM}  
+															FROM 基础数据
+                                        LEFT JOIN 部门 ON 部门.GROUTINGLINEID=基础数据.GROUTINGLINEID
+                                        LEFT JOIN TP_MST_DEFECT MDF ON 基础数据.缺陷ID = MDF.DEFECTID 
+                                        AND MDF.DEFECTTYPEID = 1 
+		) ORDER BY GID
 
-".Replace("{DEFECT}", defect);
+".Replace("{DEFECTSUM}",sumdefect).Replace("{DEFECT}", defect);
 
 				//获取查询条件
 				List<CDAParameter> sqlPara = new List<CDAParameter>();

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

@@ -36,13 +36,24 @@ 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 (8)");//半检获取 成型全部缺陷
+															WHERE jobs.JOBSID IN (8) ORDER BY  MDF.DEFECTCODE" );//半检获取 成型全部缺陷
 				for (int i = 0; i < dt.Rows.Count; i++)
 				{
 					if (i > 0) defect += ",";
 					defect += dt.Rows[i]["DEFECTCODE"].ToString() + " " + dt.Rows[i]["DEFECTNAME"].ToString();
 				}
-
+					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,
+	                            MDF.DEFECTNAME 
+                           	FROM TP_PC_DEFECTPROCEDUREJOBS JOBS
+															LEFT JOIN  TP_MST_DEFECT MDF  ON mdf.DEFECTID=JOBS.DEFECTID 
+															WHERE jobs.JOBSID IN (8) 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();
+                }
 
 
 				string sqlStr = @"WITH 部门 AS (
@@ -75,7 +86,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 															FROM TP_PC_DEFECTPROCEDUREJOBS JOBS
 															LEFT JOIN  TP_MST_DEFECT MDF  ON mdf.DEFECTID=JOBS.DEFECTID 
 															WHERE jobs.JOBSID IN (8) )
-											INNER JOIN TP_PM_PRODUCTIONDATA PDC ON PDC.BARCODE=GDL.BARCODE AND PDC.PROCEDUREID IN (	10,37,41)
+											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
                                         WHERE
@@ -94,18 +105,19 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                         	PD.BARCODE ,
                                         	DF.BARCODE 
                                         )
-                                        
+                                        SELECT * FROM(
                                         SELECT
                                          GROUPING_ID(基础数据.工号,基础数据.姓名,部门.部门,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标) AS GID,
                                         CASE when GROUPING_ID(基础数据.工号,基础数据.姓名,部门.部门,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标)=127 THEN'总计'
                                         	 when GROUPING_ID(基础数据.工号,基础数据.姓名,部门.部门,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标)=31 THEN'小计'ELSE TO_CHAR(基础数据.工号) END AS 工号,
-                                        基础数据.姓名,基础数据.产品编码,
-                                        基础数据.产品名称,
-                                        基础数据.产品规格,
-                                        基础数据.釉色,
-                                        基础数据.商标,
-                                        COUNT(DISTINCT 出窑条码) 出窑量,
-                                        COUNT(DISTINCT 缺陷条码) 缺陷量,
+                                       TO_CHAR(基础数据.姓名)姓名,
+										TO_CHAR(基础数据.产品编码)产品编码,
+                                        TO_CHAR(基础数据.产品名称)产品名称,
+                                        TO_CHAR(基础数据.产品规格)产品规格,
+                                        TO_CHAR(基础数据.釉色)釉色,
+                                        TO_CHAR(基础数据.商标)商标,
+                                        TO_CHAR(COUNT(DISTINCT 出窑条码)) 出窑量,
+                                        TO_CHAR(COUNT(DISTINCT 缺陷条码)) 缺陷量,
                                         TO_CHAR( (COUNT(DISTINCT 缺陷条码)/COUNT(DISTINCT 出窑条码) * 100), 'fm99990.00') || '%' 缺陷率,
                                         {DEFECT}
                                         FROM 基础数据
@@ -121,9 +133,28 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 																	基础数据.产品规格,
 																	基础数据.釉色,
 																	基础数据.商标), (基础数据.工号,基础数据.姓名),() )
-																	ORDER BY 	基础数据.工号,基础数据.姓名,基础数据.产品名称,GROUPING_ID(基础数据.工号,基础数据.姓名,部门.部门,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标)
+																												
+						UNION ALL
+																	SELECT
+																	126 ,
+																	'',
+																	'',
+																	'',
+																	'',
+																	'',
+																	'',
+																	'',
+																	'',
+																	'',
+																	'',
+																	{DEFECTSUM}  
+															FROM 基础数据
+                                        LEFT JOIN 部门 ON 部门.GROUTINGLINEID=基础数据.GROUTINGLINEID
+                                        LEFT JOIN TP_MST_DEFECT MDF ON 基础数据.缺陷ID = MDF.DEFECTID 
+                                        AND MDF.DEFECTTYPEID = 1 
+		) ORDER BY GID
 
-".Replace("{DEFECT}", defect);
+".Replace("{DEFECTSUM}",sumdefect).Replace("{DEFECT}", defect);
 
 				//获取查询条件
 				List<CDAParameter> sqlPara = new List<CDAParameter>();

+ 44 - 13
wwwroot/mes/rpt/rpt216/rpt.ashx

@@ -36,13 +36,25 @@ 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 (22)");
+															WHERE jobs.JOBSID IN (22) ORDER BY  MDF.DEFECTCODE");
 				for (int i = 0; i < dt.Rows.Count; i++)
 				{
 					if (i > 0) defect += ",";
 					defect += dt.Rows[i]["DEFECTCODE"].ToString() + " " + dt.Rows[i]["DEFECTNAME"].ToString();
 				}
 
+						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,
+	                                                   MDF.DEFECTNAME 
+													FROM TP_PC_DEFECTPROCEDUREJOBS JOBS
+															LEFT JOIN  TP_MST_DEFECT MDF  ON mdf.DEFECTID=JOBS.DEFECTID 
+															WHERE jobs.JOBSID IN (22) 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();
+                }
 
 
 				string sqlStr = @"WITH 部门 AS (
@@ -75,7 +87,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 															FROM TP_PC_DEFECTPROCEDUREJOBS JOBS
 															LEFT JOIN  TP_MST_DEFECT MDF  ON mdf.DEFECTID=JOBS.DEFECTID 
 															WHERE jobs.JOBSID IN (22) )
-											INNER JOIN TP_PM_PRODUCTIONDATA PDC ON PDC.BARCODE=GDL.BARCODE AND PDC.PROCEDUREID IN (10,37,41)
+											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
                                         WHERE
@@ -94,18 +106,19 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                         	PD.BARCODE ,
                                         	DF.BARCODE 
                                         )
-                                        
+                                      SELECT * FROM(  
                                         SELECT
                                          GROUPING_ID(基础数据.工号,基础数据.姓名,部门.部门,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标) AS GID,
                                         CASE when GROUPING_ID(基础数据.工号,基础数据.姓名,部门.部门,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标)=127 THEN'总计'
                                         	 when GROUPING_ID(基础数据.工号,基础数据.姓名,部门.部门,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标)=31 THEN'小计'ELSE TO_CHAR(基础数据.工号) END AS 工号,
-                                        基础数据.姓名,基础数据.产品编码,
-                                        基础数据.产品名称,
-                                        基础数据.产品规格,
-                                        基础数据.釉色,
-                                        基础数据.商标,
-                                        COUNT(DISTINCT 出窑条码) 出窑量,
-                                        COUNT(DISTINCT 缺陷条码) 缺陷量,
+                                       TO_CHAR(基础数据.姓名)姓名,
+										TO_CHAR(基础数据.产品编码)产品编码,
+                                        TO_CHAR(基础数据.产品名称)产品名称,
+                                        TO_CHAR(基础数据.产品规格)产品规格,
+                                        TO_CHAR(基础数据.釉色)釉色,
+                                        TO_CHAR(基础数据.商标)商标,
+                                        TO_CHAR(COUNT(DISTINCT 出窑条码)) 出窑量,
+                                        TO_CHAR(COUNT(DISTINCT 缺陷条码)) 缺陷量,
                                         TO_CHAR( (COUNT(DISTINCT 缺陷条码)/COUNT(DISTINCT 出窑条码) * 100), 'fm99990.00') || '%' 缺陷率,
                                         {DEFECT}
                                         FROM 基础数据
@@ -121,9 +134,27 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 																	基础数据.产品规格,
 																	基础数据.釉色,
 																	基础数据.商标), (基础数据.工号,基础数据.姓名),() )
-																	ORDER BY 	基础数据.工号,基础数据.姓名,基础数据.产品名称,GROUPING_ID(基础数据.工号,基础数据.姓名,部门.部门,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标)
-
-".Replace("{DEFECT}", defect);
+																			
+						UNION ALL
+																	SELECT
+																	126 ,
+																	'',
+																	'',
+																	'',
+																	'',
+																	'',
+																	'',
+																	'',
+																	'',
+																	'',
+																	'',
+																	{DEFECTSUM}   
+															FROM 基础数据
+                                        LEFT JOIN 部门 ON 部门.GROUTINGLINEID=基础数据.GROUTINGLINEID
+                                        LEFT JOIN TP_MST_DEFECT MDF ON 基础数据.缺陷ID = MDF.DEFECTID 
+                                        AND MDF.DEFECTTYPEID = 1 
+		) ORDER BY GID
+".Replace("{DEFECTSUM}",sumdefect).Replace("{DEFECT}", defect);
 
 				//获取查询条件
 				List<CDAParameter> sqlPara = new List<CDAParameter>();

+ 44 - 14
wwwroot/mes/rpt/rpt217/rpt.ashx

@@ -36,14 +36,25 @@ 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 (9)");
+															WHERE jobs.JOBSID IN (9) ORDER BY  MDF.DEFECTCODE");
 				for (int i = 0; i < dt.Rows.Count; i++)
 				{
 					if (i > 0) defect += ",";
 					defect += dt.Rows[i]["DEFECTCODE"].ToString() + " " + dt.Rows[i]["DEFECTNAME"].ToString();
 				}
 
-
+				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,
+	                                                   MDF.DEFECTNAME 
+								FROM TP_PC_DEFECTPROCEDUREJOBS JOBS
+															LEFT JOIN  TP_MST_DEFECT MDF  ON mdf.DEFECTID=JOBS.DEFECTID 
+															WHERE jobs.JOBSID IN (9) 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();
+                }
 
 				string sqlStr = @"WITH 部门 AS (
                                         SELECT  GROUTINGLINEID,
@@ -75,7 +86,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 															FROM TP_PC_DEFECTPROCEDUREJOBS JOBS
 															LEFT JOIN  TP_MST_DEFECT MDF  ON mdf.DEFECTID=JOBS.DEFECTID 
 															WHERE jobs.JOBSID IN (9) )
-											INNER JOIN TP_PM_PRODUCTIONDATA PDC ON PDC.BARCODE=GDL.BARCODE AND PDC.PROCEDUREID IN (	55,13,25)
+											INNER JOIN TP_PM_PRODUCTIONDATA PDC ON PDC.BARCODE=GDL.BARCODE AND PDC.PROCEDUREID IN (	55,13,25) 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
@@ -94,18 +105,19 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                         	PD.BARCODE ,
                                         	DF.BARCODE 
                                         )
-                                        
+                                   SELECT * FROM(     
                                         SELECT
                                          GROUPING_ID(基础数据.工号,基础数据.姓名,部门.部门,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标) AS GID,
                                         CASE when GROUPING_ID(基础数据.工号,基础数据.姓名,部门.部门,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标)=127 THEN'总计'
                                         	 when GROUPING_ID(基础数据.工号,基础数据.姓名,部门.部门,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标)=31 THEN'小计'ELSE TO_CHAR(基础数据.工号) END AS 工号,
-                                        基础数据.姓名,基础数据.产品编码,
-                                        基础数据.产品名称,
-                                        基础数据.产品规格,
-                                        基础数据.釉色,
-                                        基础数据.商标,
-                                        COUNT(DISTINCT 出窑条码) 出窑量,
-                                        COUNT(DISTINCT 缺陷条码) 缺陷量,
+                                        TO_CHAR(基础数据.姓名)姓名,
+										TO_CHAR(基础数据.产品编码)产品编码,
+                                        TO_CHAR(基础数据.产品名称)产品名称,
+                                        TO_CHAR(基础数据.产品规格)产品规格,
+                                        TO_CHAR(基础数据.釉色)釉色,
+                                        TO_CHAR(基础数据.商标)商标,
+                                        TO_CHAR(COUNT(DISTINCT 出窑条码)) 出窑量,
+                                        TO_CHAR(COUNT(DISTINCT 缺陷条码)) 缺陷量,
                                         TO_CHAR( (COUNT(DISTINCT 缺陷条码)/COUNT(DISTINCT 出窑条码) * 100), 'fm99990.00') || '%' 缺陷率,
                                         {DEFECT}
                                         FROM 基础数据
@@ -121,10 +133,28 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 																	基础数据.产品规格,
 																	基础数据.釉色,
 																	基础数据.商标), (基础数据.工号,基础数据.姓名),() )
-																	ORDER BY 	基础数据.工号,基础数据.姓名,基础数据.产品名称,GROUPING_ID(基础数据.工号,基础数据.姓名,部门.部门,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标)
-
-".Replace("{DEFECT}", defect);
+																													
+						UNION ALL
+																	SELECT
+																	126 ,
+																	'',
+																	'',
+																	'',
+																	'',
+																	'',
+																	'',
+																	'',
+																	'',
+																	'',
+																	'',
+																	{DEFECTSUM}  
+															FROM 基础数据
+                                        LEFT JOIN 部门 ON 部门.GROUTINGLINEID=基础数据.GROUTINGLINEID
+                                        LEFT JOIN TP_MST_DEFECT MDF ON 基础数据.缺陷ID = MDF.DEFECTID 
+                                        AND MDF.DEFECTTYPEID = 1 
+		) ORDER BY GID
 
+".Replace("{DEFECTSUM}",sumdefect).Replace("{DEFECT}", defect);
 				//获取查询条件
 				List<CDAParameter> sqlPara = new List<CDAParameter>();
 				sqlPara.Add(new CDAParameter("DATEBEGIN", dateBegin, DataType.DateTime));

+ 43 - 10
wwwroot/mes/rpt/rpt218/rpt.ashx

@@ -36,14 +36,25 @@ 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 (10)");
+															WHERE jobs.JOBSID IN (10) ORDER BY  MDF.DEFECTCODE");
 				for (int i = 0; i < dt.Rows.Count; i++)
 				{
 					if (i > 0) defect += ",";
 					defect += dt.Rows[i]["DEFECTCODE"].ToString() + " " + dt.Rows[i]["DEFECTNAME"].ToString();
 				}
 
-
+				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,
+	                                                   MDF.DEFECTNAME 
+	                            FROM TP_PC_DEFECTPROCEDUREJOBS JOBS
+															LEFT JOIN  TP_MST_DEFECT MDF  ON mdf.DEFECTID=JOBS.DEFECTID 
+															WHERE jobs.JOBSID IN (10) 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();
+                }
 
 				string sqlStr = @"WITH 部门 AS (
                                         SELECT  GROUTINGLINEID,
@@ -75,7 +86,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 															FROM TP_PC_DEFECTPROCEDUREJOBS JOBS
 															LEFT JOIN  TP_MST_DEFECT MDF  ON mdf.DEFECTID=JOBS.DEFECTID 
 															WHERE jobs.JOBSID IN (10))
-											INNER JOIN TP_PM_PRODUCTIONDATA PDC ON PDC.BARCODE=GDL.BARCODE AND PDC.PROCEDUREID IN (30,39,57)
+											INNER JOIN TP_PM_PRODUCTIONDATA PDC ON PDC.BARCODE=GDL.BARCODE AND PDC.PROCEDUREID IN (30,39,57) 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
@@ -94,16 +105,19 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                         	LG.LOGONAME ,
                                         	DF.BARCODE
                                         )
-                                        
+                                 SELECT * FROM(       
                                       SELECT
                                          GROUPING_ID(基础数据.工号) AS GID,
                                         CASE when GROUPING_ID(基础数据.工号)=1 THEN'总计'
                                         	 ELSE TO_CHAR(基础数据.工号) END AS 工号,
-										基础数据.姓名,基础数据.产品编码,
-										基础数据.产品名称,基础数据.产品规格,
-										基础数据.釉色,基础数据.商标,
-                                        COUNT(DISTINCT 出窑条码) 出窑量,
-                                        COUNT(DISTINCT 缺陷条码) 缺陷量,
+										TO_CHAR(基础数据.姓名)姓名,
+										TO_CHAR(基础数据.产品编码)产品编码,
+                                        TO_CHAR(基础数据.产品名称)产品名称,
+                                        TO_CHAR(基础数据.产品规格)产品规格,
+                                        TO_CHAR(基础数据.釉色)釉色,
+                                        TO_CHAR(基础数据.商标)商标,
+                                        TO_CHAR(COUNT(DISTINCT 出窑条码)) 出窑量,
+                                        TO_CHAR(COUNT(DISTINCT 缺陷条码)) 缺陷量,
                                         TO_CHAR( (COUNT(DISTINCT 缺陷条码)/COUNT(DISTINCT 出窑条码) * 100), 'fm99990.00') || '%' 缺陷率,
 										{DEFECT}
                                         FROM 基础数据
@@ -112,7 +126,26 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                         AND MDF.DEFECTTYPEID = 1 
                                               GROUP BY
 												Grouping sets ( ( 基础数据.工号,基础数据.姓名,部门.部门,基础数据.产品编码,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标),(基础数据.工号,基础数据.姓名) ,())
-												ORDER BY 基础数据.工号,部门.部门 ".Replace("{DEFECT}", defect);
+																							
+						UNION ALL
+																	SELECT
+																	126 ,
+																	'',
+																	'',
+																	'',
+																	'',
+																	'',
+																	'',
+																	'',
+																	'',
+																	'',
+																	'',
+																	{DEFECTSUM}  
+															FROM 基础数据
+                                        LEFT JOIN 部门 ON 部门.GROUTINGLINEID=基础数据.GROUTINGLINEID
+                                        LEFT JOIN TP_MST_DEFECT MDF ON 基础数据.缺陷ID = MDF.DEFECTID 
+                                        AND MDF.DEFECTTYPEID = 1 
+		) ORDER BY GID ".Replace("{DEFECTSUM}",sumdefect).Replace("{DEFECT}", defect);
 
 				//获取查询条件
 				List<CDAParameter> sqlPara = new List<CDAParameter>();

+ 44 - 13
wwwroot/mes/rpt/rpt219/rpt.ashx

@@ -36,13 +36,25 @@ 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 (11)");
+															WHERE jobs.JOBSID IN (11) ORDER BY  MDF.DEFECTCODE");
 				for (int i = 0; i < dt.Rows.Count; i++)
 				{
 					if (i > 0) defect += ",";
 					defect += dt.Rows[i]["DEFECTCODE"].ToString() + " " + dt.Rows[i]["DEFECTNAME"].ToString();
 				}
 
+				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,
+	                                                   MDF.DEFECTNAME 
+                            FROM TP_PC_DEFECTPROCEDUREJOBS JOBS
+															LEFT JOIN  TP_MST_DEFECT MDF  ON mdf.DEFECTID=JOBS.DEFECTID 
+															WHERE jobs.JOBSID IN (11) 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();
+                }
 
 
 				string sqlStr = @"WITH 部门 AS (
@@ -75,7 +87,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 															FROM TP_PC_DEFECTPROCEDUREJOBS JOBS
 															LEFT JOIN  TP_MST_DEFECT MDF  ON mdf.DEFECTID=JOBS.DEFECTID 
 															WHERE jobs.JOBSID IN (11) )
-											INNER JOIN TP_PM_PRODUCTIONDATA PDC ON PDC.BARCODE=GDL.BARCODE AND PDC.PROCEDUREID IN (14,26,56)
+											INNER JOIN TP_PM_PRODUCTIONDATA PDC ON PDC.BARCODE=GDL.BARCODE AND PDC.PROCEDUREID IN (14,26,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
@@ -94,19 +106,19 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                         	LG.LOGONAME ,
                                         	DF.BARCODE
                                         )
-                                        
+                               SELECT * FROM(         
                                         SELECT
                                          GROUPING_ID(基础数据.工号,基础数据.姓名,部门.部门,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标) AS GID,
                                         CASE when GROUPING_ID(基础数据.工号,基础数据.姓名,部门.部门,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标)=127 THEN'总计'
                                         	 when GROUPING_ID(基础数据.工号,基础数据.姓名,部门.部门,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标)=31 THEN'小计'ELSE TO_CHAR(基础数据.工号) END AS 工号,
-                                        基础数据.姓名,
-										基础数据.产品编码,
-                                        基础数据.产品名称,
-                                        基础数据.产品规格,
-                                        基础数据.釉色,
-                                        基础数据.商标,
-                                        COUNT(DISTINCT 出窑条码) 出窑量,
-                                        COUNT(DISTINCT 缺陷条码) 缺陷量,
+                                        基TO_CHAR(基础数据.姓名)姓名,
+										TO_CHAR(基础数据.产品编码)产品编码,
+                                        TO_CHAR(基础数据.产品名称)产品名称,
+                                        TO_CHAR(基础数据.产品规格)产品规格,
+                                        TO_CHAR(基础数据.釉色)釉色,
+                                        TO_CHAR(基础数据.商标)商标,
+                                        TO_CHAR(COUNT(DISTINCT 出窑条码)) 出窑量,
+                                        TO_CHAR(COUNT(DISTINCT 缺陷条码)) 缺陷量,
                                         TO_CHAR( (COUNT(DISTINCT 缺陷条码)/COUNT(DISTINCT 出窑条码) * 100), 'fm99990.00') || '%' 缺陷率,
                                         {DEFECT}
                                         FROM 基础数据
@@ -122,9 +134,28 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 																	基础数据.产品规格,
 																	基础数据.釉色,
 																	基础数据.商标), (基础数据.工号,基础数据.姓名),() )
-																	ORDER BY 	基础数据.工号,基础数据.姓名,基础数据.产品名称,GROUPING_ID(基础数据.工号,基础数据.姓名,部门.部门,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标)
+																													
+						UNION ALL
+																	SELECT
+																	126 ,
+																	'',
+																	'',
+																	'',
+																	'',
+																	'',
+																	'',
+																	'',
+																	'',
+																	'',
+																	'',
+																{DEFECTSUM}              
+															FROM 基础数据
+                                        LEFT JOIN 部门 ON 部门.GROUTINGLINEID=基础数据.GROUTINGLINEID
+                                        LEFT JOIN TP_MST_DEFECT MDF ON 基础数据.缺陷ID = MDF.DEFECTID 
+                                        AND MDF.DEFECTTYPEID = 1 
+		) ORDER BY GID
 
-".Replace("{DEFECT}", defect);
+".Replace("{DEFECTSUM}",sumdefect).Replace("{DEFECT}", defect);
 
 				//获取查询条件
 				List<CDAParameter> sqlPara = new List<CDAParameter>();