Prechádzať zdrojové kódy

新每窑报表修正

姜永辉 10 mesiacov pred
rodič
commit
9cbdf832d2

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

@@ -689,14 +689,26 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                         using (IDataAccess conn = DataAccess.Create())
                         using (IDataAccess conn = DataAccess.Create())
                         {
                         {
                             DataTable dt = conn.ExecuteDatatable(@"
                             DataTable dt = conn.ExecuteDatatable(@"
-                                SELECT DISTINCT DEFECTGROUPTYPE
-                                           ,DEFECTGROUPNAME
-                              FROM tp_mst_defectgroup t
-                             WHERE defectgrouptype LIKE '%每窑%'
-                               AND defectgrouptype != '每窑4'
-                               AND valueflag = '1'
-                               AND accountid = @ACCOUNTID@
-                             ORDER BY defectgrouptype
+                                SELECT dg.defectgrouptype AS tno
+                                      ,dg.defectgroupid AS dno
+                                      ,to_char(dg.defectgroupname) || '_' || to_char(d.defectname) AS DEFECTGROUPNAME
+                                  FROM tp_mst_defectgroup dg
+                                  LEFT JOIN tp_mst_defect d
+                                    ON dg.defectid = d.defectid
+                                 WHERE dg.defectgrouptype LIKE '每窑%' and  dg.valueflag = '1' AND dg.defectgrouptype != '每窑4' AND dg.accountid = @ACCOUNTID@
+                                UNION
+
+                                SELECT dg.defectgrouptype AS tno
+                                      ,9999 AS dno
+                                      ,to_char(dg.defectgroupname) || '_合计' AS DEFECTGROUPNAME
+                                  FROM (SELECT *
+                                          FROM tp_mst_defectgroup
+                                         WHERE defectgrouptype LIKE '每窑%'  and  valueflag = '1' AND  defectgrouptype != '每窑4' AND  accountid = @ACCOUNTID@) dg
+                                 GROUP BY dg.defectgrouptype
+                                         ,dg.defectgroupname
+                                 ORDER BY tno
+                                         ,dno
+
                             ",
                             ",
                                 new CDAParameter("ACCOUNTID", accountId)
                                 new CDAParameter("ACCOUNTID", accountId)
                                 );
                                 );

+ 23 - 4
wwwroot/mes/rpt/rpt014/rpt_index_detail.html

@@ -36,7 +36,7 @@
     <div data-options="region:'west',plain:true,border:false,split:true,title:'详细条码'" style="width:50%">
     <div data-options="region:'west',plain:true,border:false,split:true,title:'详细条码'" style="width:50%">
         <!--表格-->
         <!--表格-->
         <table id="DataGridMasterGrid"
         <table id="DataGridMasterGrid"
-               data-options="toolbar: '#tb',method:'get',border:false,singleSelect:true,fit:true,fitColumns:true">
+               data-options="toolbar: '#tb',method:'get',border:false,singleSelect:true,fit:true,fitColumns:true,onDblClickCell:dgDblclickcellleftdetail">
             <thead>
             <thead>
             </thead>
             </thead>
         </table>
         </table>
@@ -45,16 +45,35 @@
     <div data-options="region:'east',plain:true,border:false,split:true,title:'改判条码'"style="width:50%">
     <div data-options="region:'east',plain:true,border:false,split:true,title:'改判条码'"style="width:50%">
         <!--表格-->
         <!--表格-->
         <table id="DataGridMasterGridChange"
         <table id="DataGridMasterGridChange"
-               data-options="toolbar: '#tb',method:'get',border:false,singleSelect:true,fit:true,fitColumns:true">
+               data-options="toolbar: '#tb',method:'get',border:false,singleSelect:true,fit:true,fitColumns:true,onDblClickCell:dgDblclickcellrightdetail">
             <thead>
             <thead>
             </thead>
             </thead>
         </table>
         </table>
-
     </div>
     </div>
 
 
+    <script type="text/javascript">
 
 
+        // 点击某行某列
+        function dgDblclickcellleftdetail(index, fields, value) {         
+            if (fields == "产品条码") { 
+                window.location.href = '../rpt042/rpt_index.html?barcode=' + value;
+                //window.open('../rpt042/rpt_index.html?barcode=' + value, '_blank', 'width=' + 1366 + ',height=' + 768 + ',left=' + left + ',top=' + top + ',toolbar=no,menubar=no,location=no,status=no');
+                // $('#tabs').tabsOpen({ id: 999, title: '产品跟踪表', url: '../rpt042/rpt_index.html?barcode=' + value, closable: true });
+                //$('#DataGridMasterGrid').datagridDialog({
+                //    title:  '产品跟踪',
+                //    width: 1024,
+                //    height: 720,
+                //    url: '../rpt042/rpt_index.html?barcode='  + row["产品条码"]
+                //});
+            }
+        }
 
 
-    <script type="text/javascript">
+        // 点击某行某列
+        function dgDblclickcellrightdetail(index, fields, value) {  
+            if (fields == "产品条码") {
+                window.location.href = '../rpt042/rpt_index.html?barcode=' + value;                
+            }
+        }
 
 
         function cancelForm() {
         function cancelForm() {
             $.dialog.close();
             $.dialog.close();

+ 16 - 9
wwwroot/mes/rpt/rpt014/rpt_index_new.html

@@ -104,16 +104,20 @@
             if ($('#chkNotHave').checkbox('options').checked) {
             if ($('#chkNotHave').checkbox('options').checked) {
                 isNotcheck = 1;
                 isNotcheck = 1;
             }
             }
+            
+            let json = $('#ffMaster').serializeJson();
             // 查询条件的暂存
             // 查询条件的暂存
-            localStorage.setItem("SearchSubmit", JSON.stringify($('#ffMaster').serializeJson()));
+            localStorage.setItem("SearchSubmit", JSON.stringify(json));
+            json["name"] = name;
+            console.log("tbSearchSubmit",json);
             // 插入查询缺陷的条件  
             // 插入查询缺陷的条件  
             if ($('#ffMaster').form("validate")) {
             if ($('#ffMaster').form("validate")) {
                 if ($('#chkMonitor').checkbox('options').checked) {
                 if ($('#chkMonitor').checkbox('options').checked) {
                     $('#DataGridMasterGrid').datagridLoadRpt({
                     $('#DataGridMasterGrid').datagridLoadRpt({
                         title: '',
                         title: '',
                         idField: 'SID',
                         idField: 'SID',
-                        queryParams: $('#ffMaster').serializeJson(),
-                        url: 'rptnew.ashx?m=jiezhauang&id=' + request('id') + '&isNotcheck=' + isNotcheck + '&name=' + name,
+                        queryParams: json,
+                        url: 'rptnew.ashx?m=jiezhauang&id=' + request('id') + '&isNotcheck=' + isNotcheck ,
                         fixWidth: 140,
                         fixWidth: 140,
                         mergeWidth: 80,
                         mergeWidth: 80,
                         splitChar: '_'
                         splitChar: '_'
@@ -124,8 +128,8 @@
                     $('#DataGridMasterGrid').datagridLoadRpt({
                     $('#DataGridMasterGrid').datagridLoadRpt({
                         title: '',
                         title: '',
                         idField: 'SID',
                         idField: 'SID',
-                        queryParams: $('#ffMaster').serializeJson(),
-                        url: 'rptnew.ashx?m=master&id=' + request('id') + '&isNotcheck=' + isNotcheck + '&name=' + name,
+                        queryParams: json,
+                        url: 'rptnew.ashx?m=master&id=' + request('id') + '&isNotcheck=' + isNotcheck  ,
                         fixWidth: 140,
                         fixWidth: 140,
                         mergeWidth: 80,
                         mergeWidth: 80,
                         splitChar: '_'
                         splitChar: '_'
@@ -200,15 +204,18 @@
         // 点击某行某列
         // 点击某行某列
         function dgDblclickcelldetail(index, fields, value) {
         function dgDblclickcelldetail(index, fields, value) {
             var row = $('#DataGridMasterGrid').datagrid('getRows')[index];
             var row = $('#DataGridMasterGrid').datagrid('getRows')[index];
-            console.log(index, fields, value, row, row["产品名称"], JSON.stringify($('#ffMaster').serializeJson()));
+            console.log(index, fields, value, row); 
             if (row["产品名称"] == null || row["产品名称"] == "") {
             if (row["产品名称"] == null || row["产品名称"] == "") {
                 return;
                 return;
             }
             }
-            if (fields == "出窑数" || fields == "U级" || fields == "A级" || fields == "AA级" || fields == "去AA" || fields == "F级" || fields == "R级") {
+            if (fields == "出窑数" || fields == "U级" || fields == "A级" 
+                || fields == "AA级" || fields == "去AA" || fields == "F级" || fields == "R级"
+                || fields == "研磨" || fields == "直接冷补" || fields == "研磨后冷补" || fields == "堵漏气" || fields == "刷洗不良"
+                || (fields.toString().includes("_") && !fields.toString().includes("合计"))) {
                 $('#DataGridMasterGrid').datagridDialog({
                 $('#DataGridMasterGrid').datagridDialog({
                     title: fields + '详细',
                     title: fields + '详细',
-                    width: 640,
-                    height: 480,
+                    width: 1366,
+                    height: 768,
                     url: 'rpt_index_detail.html?fields=' + fields + "&index=" + index + "&gs=" + row["产品编码"]
                     url: 'rpt_index_detail.html?fields=' + fields + "&index=" + index + "&gs=" + row["产品编码"]
                 });
                 });
             }
             }

+ 3 - 6
wwwroot/mes/rpt/rpt014/rptdefectuser.ashx

@@ -63,17 +63,14 @@ public class rpt : IHttpHandler, IReadOnlySessionState
             using (IDataAccess conn = DataAccess.Create())
             using (IDataAccess conn = DataAccess.Create())
             {
             {
                 int result = conn.ExecuteNonQuery(@"
                 int result = conn.ExecuteNonQuery(@"
-                INSERT INTO tp_mst_defectgroup_user ( 
-                    DEFECTGROUPTYPE,
+                INSERT INTO tp_mst_defectgroup_user (  
                     DEFECTGROUPNAME, 
                     DEFECTGROUPNAME, 
                     ACCOUNTID,CREATEUSERID,USERID
                     ACCOUNTID,CREATEUSERID,USERID
-                ) VALUES ( 
-                    @DEFECTGROUPTYPE@,
+                ) VALUES (  
                     @DEFECTGROUPNAME@,                    
                     @DEFECTGROUPNAME@,                    
                     @ACCOUNTID@,@CREATEUSERID@,@USERID@
                     @ACCOUNTID@,@CREATEUSERID@,@USERID@
                 )
                 )
-                ",
-               //new CDAParameter("DEFECTGROUPTYPE", form["DEFECTGROUPNAME"].ToString()),
+                ", 
                //new CDAParameter("DEFECTGROUPNAME", form["DEFECTGROUPNAME"].ToString()),
                //new CDAParameter("DEFECTGROUPNAME", form["DEFECTGROUPNAME"].ToString()),
                new CDAParameter("ACCOUNTID", HttpContext.Current.Session["accountId"].ToString()),
                new CDAParameter("ACCOUNTID", HttpContext.Current.Session["accountId"].ToString()),
                new CDAParameter("CREATEUSERID", HttpContext.Current.Session["userId"].ToString()),
                new CDAParameter("CREATEUSERID", HttpContext.Current.Session["userId"].ToString()),

+ 122 - 80
wwwroot/mes/rpt/rpt014/rptnew.ashx

@@ -24,12 +24,52 @@ public class rpt : IHttpHandler, IReadOnlySessionState
     string sqlStr = "";
     string sqlStr = "";
     //楼号
     //楼号
     string buding = null;
     string buding = null;
-    List<string> defectallnames = new List<string> { "原料缺陷", "成型缺陷", "施釉缺陷", "出装窑缺陷", "烧窑缺陷", "其他缺陷", "研磨缺陷" };
+    List<string> defectallnames = new List<string>();
 
 
     public void ProcessRequest(HttpContext context)
     public void ProcessRequest(HttpContext context)
     {
     {
         context.Response.ContentType = "text/plain";
         context.Response.ContentType = "text/plain";
         proc = context.Request["procedureidMaster"].ToString();
         proc = context.Request["procedureidMaster"].ToString();
+        //获取每窑  全部 
+        using (IDataAccess conn = DataAccess.Create())
+        {
+            DataTable dt = conn.ExecuteDatatable(@"
+                SELECT dg.defectgrouptype AS tno
+                                      ,dg.defectgroupid AS dno
+                                      ,to_char(dg.defectgroupname) || '_' || to_char(d.defectname) AS DEFECTGROUPNAME
+                                  FROM tp_mst_defectgroup dg
+                                  LEFT JOIN tp_mst_defect d
+                                    ON dg.defectid = d.defectid
+                                 WHERE dg.defectgrouptype LIKE '每窑%' and  dg.valueflag = '1' AND dg.defectgrouptype != '每窑4' AND dg.accountid = @ACCOUNTID@
+                                UNION
+
+                                SELECT dg.defectgrouptype AS tno
+                                      ,9999 AS dno
+                                      ,to_char(dg.defectgroupname) || '_合计' AS DEFECTGROUPNAME
+                                  FROM (SELECT *
+                                          FROM tp_mst_defectgroup
+                                         WHERE defectgrouptype LIKE '每窑%'  and  valueflag = '1' AND  defectgrouptype != '每窑4' AND  accountid = @ACCOUNTID@) dg
+                                 GROUP BY dg.defectgrouptype
+                                         ,dg.defectgroupname
+                                 ORDER BY tno
+                                         ,dno
+            ",
+                new CDAParameter("ACCOUNTID", HttpContext.Current.Session["accountId"].ToString())
+                );
+            if (dt != null && dt.Rows.Count > 0)
+            {
+                for (int i = 0; i < dt.Rows.Count; i++)
+                {
+                    defectallnames.Add(dt.Rows[i]["DEFECTGROUPNAME"].ToString());
+                    if (defectStr.IndexOf("'" + dt.Rows[i]["DEFECTGROUPNAME"].ToString() + "'") < 0)
+                    {
+                        if (i > 0) defectStr += ",";
+                        defectStr += "'" + dt.Rows[i]["DEFECTGROUPNAME"].ToString() + "' AS " + dt.Rows[i]["DEFECTGROUPNAME"].ToString();
+                    }
+                }
+
+            }
+        }
 
 
         //主表
         //主表
         if (context.Request["m"].ToString() == "master")
         if (context.Request["m"].ToString() == "master")
@@ -112,12 +152,13 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                 {
                 {
                     continue;
                     continue;
                 }
                 }
+				int index  = defectallnames.FindIndex(item => item.Equals(denames[i]));
                 defectallnames.Remove(denames[i]);
                 defectallnames.Remove(denames[i]);
+                
                 // 前台传过来的 可选缺陷的字符串
                 // 前台传过来的 可选缺陷的字符串
                 if (!context.Request["name"].ToString().Contains(denames[i]))
                 if (!context.Request["name"].ToString().Contains(denames[i]))
                 {
                 {
-                    flg = false;
-                    break;
+                    flg = false; 
                 }
                 }
             }
             }
             if (context.Request["name"].ToString().Split(',').Length != denames.Length)
             if (context.Request["name"].ToString().Split(',').Length != denames.Length)
@@ -139,17 +180,14 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                             continue;
                             continue;
                         }
                         }
                         int result = conn.ExecuteNonQuery(@"
                         int result = conn.ExecuteNonQuery(@"
-					INSERT INTO tp_mst_defectgroup_user ( 
-						DEFECTGROUPTYPE,
+					INSERT INTO tp_mst_defectgroup_user (  
 						DEFECTGROUPNAME, 
 						DEFECTGROUPNAME, 
 						ACCOUNTID,CREATEUSERID,USERID
 						ACCOUNTID,CREATEUSERID,USERID
-					) VALUES ( 
-						@DEFECTGROUPTYPE@,
+					) VALUES (  
 						@DEFECTGROUPNAME@,                    
 						@DEFECTGROUPNAME@,                    
 						@ACCOUNTID@,@CREATEUSERID@,@USERID@
 						@ACCOUNTID@,@CREATEUSERID@,@USERID@
 					)
 					)
 					",
 					",
-                       new CDAParameter("DEFECTGROUPTYPE", denames[i]),
                        new CDAParameter("DEFECTGROUPNAME", denames[i]),
                        new CDAParameter("DEFECTGROUPNAME", denames[i]),
                        new CDAParameter("ACCOUNTID", HttpContext.Current.Session["accountId"].ToString()),
                        new CDAParameter("ACCOUNTID", HttpContext.Current.Session["accountId"].ToString()),
                        new CDAParameter("CREATEUSERID", HttpContext.Current.Session["userId"].ToString()),
                        new CDAParameter("CREATEUSERID", HttpContext.Current.Session["userId"].ToString()),
@@ -160,44 +198,43 @@ public class rpt : IHttpHandler, IReadOnlySessionState
             }
             }
             #endregion
             #endregion
 
 
+            //       using (IDataAccess conn = DataAccess.Create())
+            //       {
+            //           col = conn.ExecuteDatatable(@"
+            //SELECT
+            //	DG.DEFECTGROUPTYPE AS TNO,
+            //	DG.DEFECTGROUPID AS DNO,
+            //	(case when INSTR(to_char(dg.defectgroupname), '施釉缺陷') > 0 then '施釉缺陷' else  to_char(dg.defectgroupname) end ) || '_' || to_char(D.DEFECTNAME) AS DEFECT 
+            //FROM
+            //	TP_MST_DEFECTGROUP DG
+            //	LEFT JOIN TP_MST_DEFECT D ON DG.DEFECTID = D.DEFECTID 
+            //WHERE 
+            //	DG.DEFECTGROUPTYPE LIKE '每窑%' and  DG.defectgrouptype != '每窑4'
+            //UNION
 
 
-            using (IDataAccess conn = DataAccess.Create())
-            {
-                col = conn.ExecuteDatatable(@"
-					SELECT
-						DG.DEFECTGROUPTYPE AS TNO,
-						DG.DEFECTGROUPID AS DNO,
-						(case when INSTR(to_char(dg.defectgroupname), '施釉缺陷') > 0 then '施釉缺陷' else  to_char(dg.defectgroupname) end ) || '_' || to_char(D.DEFECTNAME) AS DEFECT 
-					FROM
-						TP_MST_DEFECTGROUP DG
-						LEFT JOIN TP_MST_DEFECT D ON DG.DEFECTID = D.DEFECTID 
-					WHERE 
-						DG.DEFECTGROUPTYPE LIKE '每窑%'
-					UNION
-
-					SELECT
-						DG.DEFECTGROUPTYPE AS TNO,
-						9999 AS DNO,
-						(case when INSTR(to_char(dg.defectgroupname), '施釉缺陷') > 0 then '施釉缺陷' else  to_char(dg.defectgroupname) end ) || '_合计' AS DEFECT 
-					FROM
-						(select * from TP_MST_DEFECTGROUP WHERE DEFECTGROUPTYPE LIKE '每窑%') DG
-					GROUP BY 
-						DG.DEFECTGROUPTYPE,
-						(case when INSTR(to_char(dg.defectgroupname), '施釉缺陷') > 0 then '施釉缺陷' else  to_char(dg.defectgroupname) end )
+            //SELECT
+            //	DG.DEFECTGROUPTYPE AS TNO,
+            //	9999 AS DNO,
+            //	(case when INSTR(to_char(dg.defectgroupname), '施釉缺陷') > 0 then '施釉缺陷' else  to_char(dg.defectgroupname) end ) || '_合计' AS DEFECT 
+            //FROM
+            //	(select * from TP_MST_DEFECTGROUP WHERE DEFECTGROUPTYPE LIKE '每窑%'  and  DG.defectgrouptype != '每窑4') DG
+            //GROUP BY 
+            //	DG.DEFECTGROUPTYPE,
+            //	(case when INSTR(to_char(dg.defectgroupname), '施釉缺陷') > 0 then '施釉缺陷' else  to_char(dg.defectgroupname) end )
 
 
-					ORDER BY
-						TNO,DNO
-					");
-            }
+            //ORDER BY
+            //	TNO,DNO
+            //");
+            //       }
 
 
-            for (int i = 0; i < col.Rows.Count; i++)
-            {
-                if (defectStr.IndexOf("'" + col.Rows[i]["DEFECT"].ToString() + "'") < 0)
-                {
-                    if (i > 0) defectStr += ",";
-                    defectStr += "'" + col.Rows[i]["DEFECT"].ToString() + "' AS " + col.Rows[i]["DEFECT"].ToString();
-                }
-            }
+            //       for (int i = 0; i < col.Rows.Count; i++)
+            //       {
+            //           if (defectStr.IndexOf("'" + col.Rows[i]["DEFECT"].ToString() + "'") < 0)
+            //           {
+            //               if (i > 0) defectStr += ",";
+            //               defectStr += "'" + col.Rows[i]["DEFECT"].ToString() + "' AS " + col.Rows[i]["DEFECT"].ToString();
+            //           }
+            //       }
             #endregion
             #endregion
             using (IDataAccess conn = DataAccess.Create())
             using (IDataAccess conn = DataAccess.Create())
             {
             {
@@ -233,7 +270,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 			            SUM( CASE WHEN T.H_FLAG = 0 AND T.GOODSLEVELTYPEID = 6 AND T.REWORKPROCEDUREID = 19 THEN 1 ELSE 0 END ) AS COUNT_R,  
 			            SUM( CASE WHEN T.H_FLAG = 0 AND T.GOODSLEVELTYPEID = 6 AND T.REWORKPROCEDUREID = 19 THEN 1 ELSE 0 END ) AS COUNT_R,  
 			            SUM( CASE WHEN RPD.PROCEDUREID IN ( 22, 23, 37, 20, 41 ) THEN  1 ELSE 0 END ) COUNT_L, -- 研磨、堵漏气、刷洗不良、直接冷补、研磨冷补
 			            SUM( CASE WHEN RPD.PROCEDUREID IN ( 22, 23, 37, 20, 41 ) THEN  1 ELSE 0 END ) COUNT_L, -- 研磨、堵漏气、刷洗不良、直接冷补、研磨冷补
 			            SUM( CASE WHEN T.GOODSLEVELTYPEID IN ( 4, 5 ) AND RPD.PROCEDUREID IN ( 22, 23, 37, 20, 41 ) THEN 1 ELSE 0 END ) COUNT_AA, -- 研磨、堵漏气、刷洗不良、直接冷补、研磨冷补合格数
 			            SUM( CASE WHEN T.GOODSLEVELTYPEID IN ( 4, 5 ) AND RPD.PROCEDUREID IN ( 22, 23, 37, 20, 41 ) THEN 1 ELSE 0 END ) COUNT_AA, -- 研磨、堵漏气、刷洗不良、直接冷补、研磨冷补合格数
-						SUM( CASE WHEN  T.GOODSLEVELTYPEID = 20 THEN 1 ELSE 0 END ) Waste -- 直接次品
+						SUM( CASE WHEN  T.H_FLAG = 0 AND  T.GOODSLEVELTYPEID = 20 THEN 1 ELSE 0 END ) Waste -- 直接次品
 		            FROM
 		            FROM
 			            (
 			            (
 			            SELECT      
 			            SELECT      
@@ -617,7 +654,7 @@ DECODE( TA.GID, 3, '合计', TA.GOODSTYPENAME ) AS 产品类别,
 						,DECODE(ta.count_ymlb, 0, NULL, ta.count_ymlb) AS 研磨后冷补
 						,DECODE(ta.count_ymlb, 0, NULL, ta.count_ymlb) AS 研磨后冷补
 						,DECODE(ta.count_dlq, 0, NULL, ta.count_dlq) AS 堵漏气
 						,DECODE(ta.count_dlq, 0, NULL, ta.count_dlq) AS 堵漏气
 						,DECODE(ta.count_sxbl, 0, NULL, ta.count_sxbl) AS 刷洗不良 
 						,DECODE(ta.count_sxbl, 0, NULL, ta.count_sxbl) AS 刷洗不良 
-						--,DECODE( TA.Waste, 0, NULL, TA.Waste ) AS F级						 
+						,DECODE( TA.Waste, 0, NULL, TA.Waste ) AS F级						 
 						,TD.* 
 						,TD.* 
 					FROM
 					FROM
 							(
 							(
@@ -635,7 +672,7 @@ DECODE( TA.GID, 3, '合计', TA.GOODSTYPENAME ) AS 产品类别,
 								SUM( CASE WHEN  rpd.procedureid = 41 THEN 1 ELSE 0 END ) AS  count_sxbl, --刷洗不良,
 								SUM( CASE WHEN  rpd.procedureid = 41 THEN 1 ELSE 0 END ) AS  count_sxbl, --刷洗不良,
 								SUM( CASE WHEN RPD.PROCEDUREID IN ( 22, 23, 37, 20, 41 ) THEN  1 ELSE 0 END ) COUNT_L, -- 研磨、堵漏气、刷洗不良、直接冷补、研磨冷补
 								SUM( CASE WHEN RPD.PROCEDUREID IN ( 22, 23, 37, 20, 41 ) THEN  1 ELSE 0 END ) COUNT_L, -- 研磨、堵漏气、刷洗不良、直接冷补、研磨冷补
 								SUM( CASE WHEN T.GOODSLEVELTYPEID IN ( 4, 5 ) AND RPD.PROCEDUREID IN ( 22, 23, 37, 20, 41 ) THEN 1 ELSE 0 END ) COUNT_AA, -- 研磨、堵漏气、刷洗不良、直接冷补、研磨冷补合格数
 								SUM( CASE WHEN T.GOODSLEVELTYPEID IN ( 4, 5 ) AND RPD.PROCEDUREID IN ( 22, 23, 37, 20, 41 ) THEN 1 ELSE 0 END ) COUNT_AA, -- 研磨、堵漏气、刷洗不良、直接冷补、研磨冷补合格数
-								SUM( CASE WHEN   T.GOODSLEVELTYPEID = 20 THEN 1 ELSE 0 END ) Waste -- 直接次品
+								SUM( CASE WHEN t.h_flag = 1 and   T.GOODSLEVELTYPEID = 20 THEN 1 ELSE 0 END ) Waste -- 二次以后得报废
 							FROM
 							FROM
 								(
 								(
 								 
 								 
@@ -739,7 +776,7 @@ DECODE( TA.GID, 3, '合计', TA.GOODSTYPENAME ) AS 产品类别,
 										) 
 										) 
 								WHERE
 								WHERE
 									P.VALUEFLAG = '1'
 									P.VALUEFLAG = '1'
-									AND P.PROCEDUREID = @PROCEDUREID@
+									AND P.PROCEDUREID  in ( 13 ,35)
 									AND P.CHECKBATCHNO = 1
 									AND P.CHECKBATCHNO = 1
 									--xuwei fix 2020-10-09 begin
 									--xuwei fix 2020-10-09 begin
 									AND P.CHECKTIME >= @DATEBEGIN@
 									AND P.CHECKTIME >= @DATEBEGIN@
@@ -779,6 +816,14 @@ DECODE( TA.GID, 3, '合计', TA.GOODSTYPENAME ) AS 产品类别,
 							OR ( TA.GID = 1 AND TA.GOODSTYPECODE = TD.D_GOODSTYPECODE ) 
 							OR ( TA.GID = 1 AND TA.GOODSTYPECODE = TD.D_GOODSTYPECODE ) 
 							OR ( TA.GID = 3 ) 
 							OR ( TA.GID = 3 ) 
 						)
 						)
+						/* where ta.count_aa  <> 0
+						OR ta.count_u7 <> 0
+						OR ta.count_ym <> 0
+						OR ta.count_lb <> 0
+						OR ta.count_ymlb <> 0
+						OR ta.count_dlq <> 0
+						OR ta.count_sxbl <> 0
+						OR ta.waste <> 0  */
 						ORDER BY TA.GOODSTYPENAME,TA.GOODSCODE
 						ORDER BY TA.GOODSTYPENAME,TA.GOODSCODE
 						".Replace("{DEFECT}", defectStr).Replace("{BUILDINGNO}", buding).Replace("{goodsCodes}", goodssql);
 						".Replace("{DEFECT}", defectStr).Replace("{BUILDINGNO}", buding).Replace("{goodsCodes}", goodssql);
                 }
                 }
@@ -867,33 +912,33 @@ DECODE( TA.GID, 3, '合计', TA.GOODSTYPENAME ) AS 产品类别,
                     dt.Columns[c].ColumnName = dt.Columns[c].ColumnName.Replace("'", "").Replace("+", "").Replace('/', ' ');
                     dt.Columns[c].ColumnName = dt.Columns[c].ColumnName.Replace("'", "").Replace("+", "").Replace('/', ' ');
                 }
                 }
 
 
-                //增加 施釉循环线合计
-                int ind1 = dt.Columns.IndexOf("施釉缺陷_合计");
-                int ind2 = dt.Columns.IndexOf("循环线施釉缺陷_合计");
-                int ind = Math.Max(ind1, ind2);
-                if (ind > 0)
-                {
-                    dt.Columns.Add(new DataColumn("施釉_合计", typeof(Int32)));
-                    dt.Columns["施釉_合计"].SetOrdinal(ind + 1);
-                    for (int i = 0; i < dt.Rows.Count; i++)
-                    {
-                        int c1 = 0;
-                        int c2 = 0;
-                        if (ind1 > 0 && dt.Rows[i]["施釉缺陷_合计"] != DBNull.Value)
-                        {
-                            c1 = Convert.ToInt32(dt.Rows[i]["施釉缺陷_合计"]);
-                        }
-                        if (ind2 > 0 && dt.Rows[i]["循环线施釉缺陷_合计"] != DBNull.Value)
-                        {
-                            c2 = Convert.ToInt32(dt.Rows[i]["循环线施釉缺陷_合计"]);
-                        }
-                        if (c1 + c2 > 0)
-                        {
-                            dt.Rows[i]["施釉_合计"] = c1 + c2;
-                        }
-                    }
-                }
-				// 删除可选缺陷的列
+                ////增加 施釉循环线合计
+                //int ind1 = dt.Columns.IndexOf("施釉缺陷_合计");
+                //int ind2 = dt.Columns.IndexOf("循环线施釉缺陷_合计");
+                //int ind = Math.Max(ind1, ind2);
+                //if (ind > 0)
+                //{
+                //    dt.Columns.Add(new DataColumn("施釉_合计", typeof(Int32)));
+                //    dt.Columns["施釉_合计"].SetOrdinal(ind + 1);
+                //    for (int i = 0; i < dt.Rows.Count; i++)
+                //    {
+                //        int c1 = 0;
+                //        int c2 = 0;
+                //        if (ind1 > 0 && dt.Rows[i]["施釉缺陷_合计"] != DBNull.Value)
+                //        {
+                //            c1 = Convert.ToInt32(dt.Rows[i]["施釉缺陷_合计"]);
+                //        }
+                //        if (ind2 > 0 && dt.Rows[i]["循环线施釉缺陷_合计"] != DBNull.Value)
+                //        {
+                //            c2 = Convert.ToInt32(dt.Rows[i]["循环线施釉缺陷_合计"]);
+                //        }
+                //        if (c1 + c2 > 0)
+                //        {
+                //            dt.Rows[i]["施釉_合计"] = c1 + c2;
+                //        }
+                //    }
+                //}
+                // 删除可选缺陷的列
                 for (int m = dt.Columns.Count - 1; m > 0; m--)
                 for (int m = dt.Columns.Count - 1; m > 0; m--)
                 {
                 {
                     for (int mn = 0; mn < defectallnames.Count; mn++)
                     for (int mn = 0; mn < defectallnames.Count; mn++)
@@ -907,7 +952,7 @@ DECODE( TA.GID, 3, '合计', TA.GOODSTYPENAME ) AS 产品类别,
                 //获取分页数据
                 //获取分页数据
                 int total = 0;
                 int total = 0;
                 //dt = conn.SelectPages(page, rows, out total, sqlStr, sqlPara.ToArray());
                 //dt = conn.SelectPages(page, rows, out total, sqlStr, sqlPara.ToArray());
-                string jsonStr = new JsonResult(dt) { total = total }.ToJson(); 
+                string jsonStr = new JsonResult(dt) { total = total }.ToJson();
                 context.Response.Write(jsonStr);
                 context.Response.Write(jsonStr);
             }
             }
         }
         }
@@ -978,17 +1023,14 @@ DECODE( TA.GID, 3, '合计', TA.GOODSTYPENAME ) AS 产品类别,
                                 continue;
                                 continue;
                             }
                             }
                             int result = connn.ExecuteNonQuery(@"
                             int result = connn.ExecuteNonQuery(@"
-					INSERT INTO tp_mst_defectgroup_user ( 
-						DEFECTGROUPTYPE,
+					INSERT INTO tp_mst_defectgroup_user (  
 						DEFECTGROUPNAME, 
 						DEFECTGROUPNAME, 
 						ACCOUNTID,CREATEUSERID,USERID
 						ACCOUNTID,CREATEUSERID,USERID
-					) VALUES ( 
-						@DEFECTGROUPTYPE@,
+					) VALUES (  
 						@DEFECTGROUPNAME@,                    
 						@DEFECTGROUPNAME@,                    
 						@ACCOUNTID@,@CREATEUSERID@,@USERID@
 						@ACCOUNTID@,@CREATEUSERID@,@USERID@
 					)
 					)
 					",
 					",
-                           new CDAParameter("DEFECTGROUPTYPE", denames[i]),
                            new CDAParameter("DEFECTGROUPNAME", denames[i]),
                            new CDAParameter("DEFECTGROUPNAME", denames[i]),
                            new CDAParameter("ACCOUNTID", HttpContext.Current.Session["accountId"].ToString()),
                            new CDAParameter("ACCOUNTID", HttpContext.Current.Session["accountId"].ToString()),
                            new CDAParameter("CREATEUSERID", HttpContext.Current.Session["userId"].ToString()),
                            new CDAParameter("CREATEUSERID", HttpContext.Current.Session["userId"].ToString()),

+ 226 - 10
wwwroot/mes/rpt/rpt014/rptnew_detail.ashx

@@ -161,7 +161,7 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                     }
                     }
                 case "A级":
                 case "A级":
                     {
                     {
-                         sqlDetail = @" SELECT  DISTINCT '" + gs + @"' 产品编码,  Barcode  产品条码				            
+                        sqlDetail = @" SELECT  DISTINCT '" + gs + @"' 产品编码,  Barcode  产品条码				            
 			            FROM
 			            FROM
 				            (SELECT to_char(pd.Barcode) Barcode
 				            (SELECT to_char(pd.Barcode) Barcode
                               ,MAX(pmax.productiondataid) mpdid
                               ,MAX(pmax.productiondataid) mpdid
@@ -198,7 +198,7 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                     }
                     }
                 case "AA级":
                 case "AA级":
                     {
                     {
-                            sqlDetail = @" SELECT  DISTINCT '" + gs + @"' 产品编码, T.Barcode  产品条码				            
+                        sqlDetail = @" SELECT  DISTINCT '" + gs + @"' 产品编码, T.Barcode  产品条码				            
 			            FROM
 			            FROM
 				            (SELECT to_char(pd.Barcode) Barcode
 				            (SELECT to_char(pd.Barcode) Barcode
                               ,MAX(pmax.productiondataid) mpdid
                               ,MAX(pmax.productiondataid) mpdid
@@ -269,11 +269,11 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                                  ,pd.goodsleveltypeid
                                  ,pd.goodsleveltypeid
                                  ,pd.goodsid  ) T  
                                  ,pd.goodsid  ) T  
                                 where  T.GOODSLEVELTYPEID = 7  ";
                                 where  T.GOODSLEVELTYPEID = 7  ";
-                            break;
+                        break;
                     }
                     }
                 case "F级":
                 case "F级":
                     {
                     {
-                         sqlDetail = @" SELECT  DISTINCT '" + gs + @"' 产品编码,  Barcode  产品条码				            
+                        sqlDetail = @" SELECT  DISTINCT '" + gs + @"' 产品编码,  Barcode  产品条码				            
 			            FROM
 			            FROM
 				            (SELECT to_char(pd.Barcode) Barcode
 				            (SELECT to_char(pd.Barcode) Barcode
                               ,MAX(pmax.productiondataid) mpdid
                               ,MAX(pmax.productiondataid) mpdid
@@ -306,11 +306,11 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                          GROUP BY pd.Barcode
                          GROUP BY pd.Barcode
                                  ,pd.goodsleveltypeid
                                  ,pd.goodsleveltypeid
                                  ,pd.goodsid  ) T where T.GOODSLEVELTYPEID = 20   and T.H_FLAG = 0";
                                  ,pd.goodsid  ) T where T.GOODSLEVELTYPEID = 20   and T.H_FLAG = 0";
-                            break;
+                        break;
                     }
                     }
                 case "R级":
                 case "R级":
                     {
                     {
-                         sqlDetail = @" SELECT  DISTINCT '" + gs + @"' 产品编码,  Barcode  产品条码				            
+                        sqlDetail = @" SELECT  DISTINCT '" + gs + @"' 产品编码,  Barcode  产品条码				            
 			            FROM
 			            FROM
 				            (SELECT to_char(pd.Barcode) Barcode
 				            (SELECT to_char(pd.Barcode) Barcode
                               ,MAX(pmax.productiondataid) mpdid
                               ,MAX(pmax.productiondataid) mpdid
@@ -345,10 +345,226 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                                  ,pd.goodsleveltypeid
                                  ,pd.goodsleveltypeid
                                  ,pd.goodsid
                                  ,pd.goodsid
                                  ,pd.reworkprocedureid ) T where T.GOODSLEVELTYPEID = 6 AND T.REWORKPROCEDUREID = 19 and T.H_FLAG = 0";
                                  ,pd.reworkprocedureid ) T where T.GOODSLEVELTYPEID = 6 AND T.REWORKPROCEDUREID = 19 and T.H_FLAG = 0";
-                            break;
+                        break;
+                    }
+                case "研磨":
+                    {
+                        sqlDetail = @" SELECT  DISTINCT '" + gs + @"' 产品编码, T.Barcode  产品条码				            
+			            FROM
+				            (SELECT to_char(pd.Barcode) Barcode
+                              ,MAX(pmax.productiondataid) mpdid
+                              ,pd.goodsleveltypeid
+                              ,pd.goodsid 
+                              ,CASE
+                                   WHEN SUM(pmax.productiondataid) > 0 THEN
+                                    1
+                                   ELSE
+                                    0
+                               END h_flag 
+                          FROM tp_pm_productiondata pd
+                          LEFT JOIN tp_pm_productiondata pmax
+                            ON pmax.groutingdailydetailid = pd.groutingdailydetailid
+                           AND pmax.productiondataid < pd.productiondataid
+                           AND pmax.valueflag = '1'
+                           AND pmax.proceduremodel = '1'
+                              /*20  研磨 22  直接冷补 23  研磨后冷补(非回收) 37  堵漏气 41  刷洗不良*/
+                           AND pmax.procedureid IN (20, 22, 23, 37, 41)
+                         INNER JOIN tp_pc_groutingline gl
+                            ON gl.groutinglineid = pd.groutinglineid
+                         WHERE pd.valueflag = '1'
+                           AND pd.procedureid in ( @PROCEDUREID@ )
+                           AND pd.checkbatchno = 1
+                           AND pd.createtime >= @DATEBEGIN@
+                           AND pd.createtime < @DATEEND@
+                           AND (pd.kilnid = @KILNID@ OR @KILNID@ IS NULL)
+                           AND pd.goodscode IN( '" + gs + @"' )
+                           AND gl.buildingno {BUILDINGNO}
+                         GROUP BY pd.Barcode
+                                 ,pd.goodsleveltypeid
+                                 ,pd.goodsid  ) T  LEFT JOIN TP_PM_PRODUCTIONDATA RPD ON RPD.PRODUCTIONDATAID = T.MPDID where  rpd.procedureid = 20 ";
+                        break;
+                    }
+                case "直接冷补":
+                    {
+                        sqlDetail = @" SELECT  DISTINCT '" + gs + @"' 产品编码, T.Barcode  产品条码				            
+			            FROM
+				            (SELECT to_char(pd.Barcode) Barcode
+                              ,MAX(pmax.productiondataid) mpdid
+                              ,pd.goodsleveltypeid
+                              ,pd.goodsid 
+                              ,CASE
+                                   WHEN SUM(pmax.productiondataid) > 0 THEN
+                                    1
+                                   ELSE
+                                    0
+                               END h_flag 
+                          FROM tp_pm_productiondata pd
+                          LEFT JOIN tp_pm_productiondata pmax
+                            ON pmax.groutingdailydetailid = pd.groutingdailydetailid
+                           AND pmax.productiondataid < pd.productiondataid
+                           AND pmax.valueflag = '1'
+                           AND pmax.proceduremodel = '1'
+                              /*20  研磨 22  直接冷补 23  研磨后冷补(非回收) 37  堵漏气 41  刷洗不良*/
+                           AND pmax.procedureid IN (20, 22, 23, 37, 41)
+                         INNER JOIN tp_pc_groutingline gl
+                            ON gl.groutinglineid = pd.groutinglineid
+                         WHERE pd.valueflag = '1'
+                           AND pd.procedureid in ( @PROCEDUREID@ )
+                           AND pd.checkbatchno = 1
+                           AND pd.createtime >= @DATEBEGIN@
+                           AND pd.createtime < @DATEEND@
+                           AND (pd.kilnid = @KILNID@ OR @KILNID@ IS NULL)
+                           AND pd.goodscode IN( '" + gs + @"' )
+                           AND gl.buildingno {BUILDINGNO}
+                         GROUP BY pd.Barcode
+                                 ,pd.goodsleveltypeid
+                                 ,pd.goodsid  ) T  LEFT JOIN TP_PM_PRODUCTIONDATA RPD ON RPD.PRODUCTIONDATAID = T.MPDID where  rpd.procedureid = 22 ";
+                        break;
+                    }
+                case "研磨后冷补":
+                    {
+                        sqlDetail = @" SELECT  DISTINCT '" + gs + @"' 产品编码, T.Barcode  产品条码				            
+			            FROM
+				            (SELECT to_char(pd.Barcode) Barcode
+                              ,MAX(pmax.productiondataid) mpdid
+                              ,pd.goodsleveltypeid
+                              ,pd.goodsid 
+                              ,CASE
+                                   WHEN SUM(pmax.productiondataid) > 0 THEN
+                                    1
+                                   ELSE
+                                    0
+                               END h_flag 
+                          FROM tp_pm_productiondata pd
+                          LEFT JOIN tp_pm_productiondata pmax
+                            ON pmax.groutingdailydetailid = pd.groutingdailydetailid
+                           AND pmax.productiondataid < pd.productiondataid
+                           AND pmax.valueflag = '1'
+                           AND pmax.proceduremodel = '1'
+                              /*20  研磨 22  直接冷补 23  研磨后冷补(非回收) 37  堵漏气 41  刷洗不良*/
+                           AND pmax.procedureid IN (20, 22, 23, 37, 41)
+                         INNER JOIN tp_pc_groutingline gl
+                            ON gl.groutinglineid = pd.groutinglineid
+                         WHERE pd.valueflag = '1'
+                           AND pd.procedureid in ( @PROCEDUREID@ )
+                           AND pd.checkbatchno = 1
+                           AND pd.createtime >= @DATEBEGIN@
+                           AND pd.createtime < @DATEEND@
+                           AND (pd.kilnid = @KILNID@ OR @KILNID@ IS NULL)
+                           AND pd.goodscode IN( '" + gs + @"' )
+                           AND gl.buildingno {BUILDINGNO}
+                         GROUP BY pd.Barcode
+                                 ,pd.goodsleveltypeid
+                                 ,pd.goodsid  ) T  LEFT JOIN TP_PM_PRODUCTIONDATA RPD ON RPD.PRODUCTIONDATAID = T.MPDID where  rpd.procedureid = 23 ";
+                        break;
+                    }
+                case "堵漏气":
+                    {
+                        sqlDetail = @" SELECT  DISTINCT '" + gs + @"' 产品编码, T.Barcode  产品条码				            
+			            FROM
+				            (SELECT to_char(pd.Barcode) Barcode
+                              ,MAX(pmax.productiondataid) mpdid
+                              ,pd.goodsleveltypeid
+                              ,pd.goodsid 
+                              ,CASE
+                                   WHEN SUM(pmax.productiondataid) > 0 THEN
+                                    1
+                                   ELSE
+                                    0
+                               END h_flag 
+                          FROM tp_pm_productiondata pd
+                          LEFT JOIN tp_pm_productiondata pmax
+                            ON pmax.groutingdailydetailid = pd.groutingdailydetailid
+                           AND pmax.productiondataid < pd.productiondataid
+                           AND pmax.valueflag = '1'
+                           AND pmax.proceduremodel = '1'
+                              /*20  研磨 22  直接冷补 23  研磨后冷补(非回收) 37  堵漏气 41  刷洗不良*/
+                           AND pmax.procedureid IN (20, 22, 23, 37, 41)
+                         INNER JOIN tp_pc_groutingline gl
+                            ON gl.groutinglineid = pd.groutinglineid
+                         WHERE pd.valueflag = '1'
+                           AND pd.procedureid in ( @PROCEDUREID@ )
+                           AND pd.checkbatchno = 1
+                           AND pd.createtime >= @DATEBEGIN@
+                           AND pd.createtime < @DATEEND@
+                           AND (pd.kilnid = @KILNID@ OR @KILNID@ IS NULL)
+                           AND pd.goodscode IN( '" + gs + @"' )
+                           AND gl.buildingno {BUILDINGNO}
+                         GROUP BY pd.Barcode
+                                 ,pd.goodsleveltypeid
+                                 ,pd.goodsid  ) T  LEFT JOIN TP_PM_PRODUCTIONDATA RPD ON RPD.PRODUCTIONDATAID = T.MPDID where  rpd.procedureid = 37 ";
+                        break;
+                    }
+                case "刷洗不良":
+                    {
+                        sqlDetail = @" SELECT  DISTINCT '" + gs + @"' 产品编码, T.Barcode  产品条码				            
+			            FROM
+				            (SELECT to_char(pd.Barcode) Barcode
+                              ,MAX(pmax.productiondataid) mpdid
+                              ,pd.goodsleveltypeid
+                              ,pd.goodsid 
+                              ,CASE
+                                   WHEN SUM(pmax.productiondataid) > 0 THEN
+                                    1
+                                   ELSE
+                                    0
+                               END h_flag 
+                          FROM tp_pm_productiondata pd
+                          LEFT JOIN tp_pm_productiondata pmax
+                            ON pmax.groutingdailydetailid = pd.groutingdailydetailid
+                           AND pmax.productiondataid < pd.productiondataid
+                           AND pmax.valueflag = '1'
+                           AND pmax.proceduremodel = '1'
+                              /*20  研磨 22  直接冷补 23  研磨后冷补(非回收) 37  堵漏气 41  刷洗不良*/
+                           AND pmax.procedureid IN (20, 22, 23, 37, 41)
+                         INNER JOIN tp_pc_groutingline gl
+                            ON gl.groutinglineid = pd.groutinglineid
+                         WHERE pd.valueflag = '1'
+                           AND pd.procedureid in ( @PROCEDUREID@ )
+                           AND pd.checkbatchno = 1
+                           AND pd.createtime >= @DATEBEGIN@
+                           AND pd.createtime < @DATEEND@
+                           AND (pd.kilnid = @KILNID@ OR @KILNID@ IS NULL)
+                           AND pd.goodscode IN( '" + gs + @"' )
+                           AND gl.buildingno {BUILDINGNO}
+                         GROUP BY pd.Barcode
+                                 ,pd.goodsleveltypeid
+                                 ,pd.goodsid  ) T  LEFT JOIN TP_PM_PRODUCTIONDATA RPD ON RPD.PRODUCTIONDATAID = T.MPDID where  rpd.procedureid = 41 ";
+                        break;
                     }
                     }
                 default:
                 default:
                     {
                     {
+                        // 缺陷的详细条码
+                        if (fields.Contains("_") && !fields.Contains("合计"))
+                        {
+                            sqlDetail = @"SELECT DISTINCT  '" + gs + @"' 产品编码,  p.Barcode  产品条码	
+			             FROM
+				            TP_PM_PRODUCTIONDATA P
+							-- 缺陷工序分组的 工序id1 工序id2 对应
+							inner join   tp_pm_productiondata pp on p.groutingdailydetailid = pp.groutingdailydetailid  and pp.valueflag = '1'                               
+				            INNER JOIN TP_MST_GOODS G ON G.GOODSID = P.GOODSID
+				            INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID
+				            INNER JOIN TP_PC_GROUTINGLINE L ON P.GROUTINGLINEID = L.GROUTINGLINEID
+				            INNER JOIN TP_PM_DEFECT D ON P.PRODUCTIONDATAID = D.PRODUCTIONDATAID  
+				            INNER JOIN TP_MST_DEFECT M ON ( M.DEFECTID = D.DEFECTID AND M.DEFECTID > 0 )
+				            LEFT JOIN TP_PC_PROCEDURE PR ON PR.PROCEDUREID = D.DEFECTPROCEDUREID
+				            INNER JOIN TP_MST_DEFECTGROUP PDP ON PDP.DEFECTID = D.DEFECTID AND PDP.DEFECTGROUPTYPE LIKE '每窑%'
+				            AND ( 
+									pdp.procedureid1 = pp.procedureid OR pdp.procedureid2 = pp.procedureid
+								) 
+			            WHERE
+				            P.VALUEFLAG = '1'
+                            AND P.PROCEDUREID = @PROCEDUREID@
+                            AND P.CHECKBATCHNO = 1
+                            AND P.CHECKTIME >= @DATEBEGIN@
+                            AND P.CHECKTIME < @DATEEND@ 
+                            AND P.GOODSLEVELTYPEID <> 4
+                            AND (P.KILNID = @KILNID@ OR @KILNID@ IS NULL)
+                             AND P.GOODSCODE IN( '" + gs + @"')
+                            and to_char(pdp.defectgroupname || '_' || m.defectname)  =  '" + fields + @"'
+                            AND L.BUILDINGNO {BUILDINGNO} 
+                             and not  (d.defectid = 11 AND (p.goodsleveltypeid = 4 OR p.goodsleveltypeid = 5)) ";
+                        }
                         break;
                         break;
                     }
                     }
 
 
@@ -359,9 +575,9 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
             sqlPara.Add(new CDAParameter("DATEBEGIN", Convert.ToDateTime(context.Request["datebeginMaster"]), DataType.DateTime));
             sqlPara.Add(new CDAParameter("DATEBEGIN", Convert.ToDateTime(context.Request["datebeginMaster"]), DataType.DateTime));
             sqlPara.Add(new CDAParameter("DATEEND", Convert.ToDateTime(context.Request["dateendMaster"]).AddSeconds(1), DataType.DateTime));
             sqlPara.Add(new CDAParameter("DATEEND", Convert.ToDateTime(context.Request["dateendMaster"]).AddSeconds(1), DataType.DateTime));
             sqlPara.Add(new CDAParameter("KILNID", context.Request["kilnidMaster"]));
             sqlPara.Add(new CDAParameter("KILNID", context.Request["kilnidMaster"]));
-            sqlPara.Add(new CDAParameter("PROCEDUREID", (context.Request["procedureidMaster"].ToString() == "13" || context.Request["procedureidMaster"].ToString()=="35") ? context.Request["procedureidMaster"] + "":"13"));
- 
- 
+            sqlPara.Add(new CDAParameter("PROCEDUREID", (context.Request["procedureidMaster"].ToString() == "13" || context.Request["procedureidMaster"].ToString() == "35") ? context.Request["procedureidMaster"] + "" : "13"));
+
+
             DataTable dt = conn.ExecuteDatatable(sqlDetail, sqlPara.ToArray());
             DataTable dt = conn.ExecuteDatatable(sqlDetail, sqlPara.ToArray());
 
 
 
 

+ 41 - 37
wwwroot/mes/rpt/rpt014/rptnew_detail_change.ashx

@@ -66,40 +66,44 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
         using (IDataAccess conn = DataAccess.Create())
         using (IDataAccess conn = DataAccess.Create())
         {
         {
             col = conn.ExecuteDatatable(@"
             col = conn.ExecuteDatatable(@"
-					SELECT
-						DG.DEFECTGROUPTYPE AS TNO,
-						DG.DEFECTGROUPID AS DNO,
-						DG.DEFECTGROUPNAME || '_' || D.DEFECTNAME AS DEFECT 
-					FROM
-						TP_MST_DEFECTGROUP DG
-						LEFT JOIN TP_MST_DEFECT D ON DG.DEFECTID = D.DEFECTID 
-					WHERE 
-						DG.DEFECTGROUPTYPE LIKE '每窑%'
-					UNION
+                SELECT dg.defectgrouptype AS tno
+                                      ,dg.defectgroupid AS dno
+                                      ,to_char(dg.defectgroupname) || '_' || to_char(d.defectname) AS DEFECTGROUPNAME
+                                  FROM tp_mst_defectgroup dg
+                                  LEFT JOIN tp_mst_defect d
+                                    ON dg.defectid = d.defectid
+                                 WHERE dg.defectgrouptype LIKE '每窑%' and  dg.valueflag = '1' AND dg.defectgrouptype != '每窑4' AND dg.accountid = @ACCOUNTID@
+                                UNION
 
 
-					SELECT
-						DG.DEFECTGROUPTYPE AS TNO,
-						9999 AS DNO,
-						DG.DEFECTGROUPNAME || '_合计' AS DEFECT 
-					FROM
-						(select * from TP_MST_DEFECTGROUP WHERE DEFECTGROUPTYPE LIKE '每窑%') DG
-					GROUP BY 
-						DG.DEFECTGROUPTYPE,
-						DG.DEFECTGROUPNAME
-
-					ORDER BY
-						TNO,DNO
-					");
+                                SELECT dg.defectgrouptype AS tno
+                                      ,9999 AS dno
+                                      ,to_char(dg.defectgroupname) || '_合计' AS DEFECTGROUPNAME
+                                  FROM (SELECT *
+                                          FROM tp_mst_defectgroup
+                                         WHERE defectgrouptype LIKE '每窑%'  and  valueflag = '1' AND  defectgrouptype != '每窑4' AND  accountid = @ACCOUNTID@) dg
+                                 GROUP BY dg.defectgrouptype
+                                         ,dg.defectgroupname
+                                 ORDER BY tno
+                                         ,dno
+            ",
+               new CDAParameter("ACCOUNTID", HttpContext.Current.Session["accountId"].ToString())
+               );
 
 
             for (int i = 0; i < col.Rows.Count; i++)
             for (int i = 0; i < col.Rows.Count; i++)
             {
             {
-                if (defectStr.IndexOf("'" + col.Rows[i]["DEFECT"].ToString() + "'") < 0)
+                if (defectStr.IndexOf("'" + col.Rows[i]["DEFECTGROUPNAME"].ToString() + "'") < 0)
                 {
                 {
                     if (i > 0) defectStr += ",";
                     if (i > 0) defectStr += ",";
-                    defectStr += "'" + col.Rows[i]["DEFECT"].ToString() + "' AS " + col.Rows[i]["DEFECT"].ToString();
+                    defectStr += "'" + col.Rows[i]["DEFECTGROUPNAME"].ToString() + "' AS " + col.Rows[i]["DEFECTGROUPNAME"].ToString();
                 }
                 }
             }
             }
             #endregion
             #endregion
+            if (fields.Contains("_"))
+            {
+                string jsonStrR = new JsonResult(new DataTable()) { total = 0 }.ToJson();
+                context.Response.Write(jsonStrR);
+                    return;
+            }
             // 各个列的明细数据
             // 各个列的明细数据
             string sqlDetail = "";
             string sqlDetail = "";
             switch (fields)
             switch (fields)
@@ -113,7 +117,7 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
 				           
 				           
 			            WHERE
 			            WHERE
                            PD.PROCEDUREID in ( @PROCEDUREID@ )
                            PD.PROCEDUREID in ( @PROCEDUREID@ )
-                            AND PD.VALUEFLAG = '1'  AND PD.CHECKBATCHNO = 1
+                           AND PD.VALUEFLAG = '1'  AND PD.CHECKBATCHNO = 1
                            AND PD.CREATETIME >= @DATEBEGIN@
                            AND PD.CREATETIME >= @DATEBEGIN@
                            AND PD.CREATETIME < @DATEEND@
                            AND PD.CREATETIME < @DATEEND@
                            AND (PD.KILNID = @KILNID@ OR @KILNID@ IS NULL) 
                            AND (PD.KILNID = @KILNID@ OR @KILNID@ IS NULL) 
@@ -155,13 +159,13 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                            AND gl.buildingno {BUILDINGNO}
                            AND gl.buildingno {BUILDINGNO}
                          GROUP BY pd.Barcode
                          GROUP BY pd.Barcode
                                  ,pd.goodsleveltypeid
                                  ,pd.goodsleveltypeid
-                                 ,pd.goodsid  ) T where T.GOODSLEVELTYPEID = 4 and T.H_FLAG = 0";
+                                 ,pd.goodsid  ) T  ";
 
 
                         break;
                         break;
                     }
                     }
                 case "A级":
                 case "A级":
                     {
                     {
-                         sqlDetail = @" SELECT  DISTINCT '" + gs + @"' 产品编码,  Barcode  产品条码				            
+                        sqlDetail = @" SELECT  DISTINCT '" + gs + @"' 产品编码,  Barcode  产品条码				            
 			            FROM
 			            FROM
 				            (SELECT to_char(pd.Barcode) Barcode
 				            (SELECT to_char(pd.Barcode) Barcode
                               ,MAX(pmax.productiondataid) mpdid
                               ,MAX(pmax.productiondataid) mpdid
@@ -198,7 +202,7 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                     }
                     }
                 case "AA级":
                 case "AA级":
                     {
                     {
-                            sqlDetail = @" SELECT  DISTINCT '" + gs + @"' 产品编码, T.Barcode  产品条码				            
+                        sqlDetail = @" SELECT  DISTINCT '" + gs + @"' 产品编码, T.Barcode  产品条码				            
 			            FROM
 			            FROM
 				            (SELECT to_char(pd.Barcode) Barcode
 				            (SELECT to_char(pd.Barcode) Barcode
                               ,MAX(pmax.productiondataid) mpdid
                               ,MAX(pmax.productiondataid) mpdid
@@ -269,11 +273,11 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                                  ,pd.goodsleveltypeid
                                  ,pd.goodsleveltypeid
                                  ,pd.goodsid  ) T  
                                  ,pd.goodsid  ) T  
                                  ";
                                  ";
-                            break;
+                        break;
                     }
                     }
                 case "F级":
                 case "F级":
                     {
                     {
-                         sqlDetail = @" SELECT  DISTINCT '" + gs + @"' 产品编码,  Barcode  产品条码				            
+                        sqlDetail = @" SELECT  DISTINCT '" + gs + @"' 产品编码,  Barcode  产品条码				            
 			            FROM
 			            FROM
 				            (SELECT to_char(pd.Barcode) Barcode
 				            (SELECT to_char(pd.Barcode) Barcode
                               ,MAX(pmax.productiondataid) mpdid
                               ,MAX(pmax.productiondataid) mpdid
@@ -306,11 +310,11 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                          GROUP BY pd.Barcode
                          GROUP BY pd.Barcode
                                  ,pd.goodsleveltypeid
                                  ,pd.goodsleveltypeid
                                  ,pd.goodsid  ) T  ";
                                  ,pd.goodsid  ) T  ";
-                            break;
+                        break;
                     }
                     }
                 case "R级":
                 case "R级":
                     {
                     {
-                         sqlDetail = @" SELECT  DISTINCT '" + gs + @"' 产品编码,  Barcode  产品条码				            
+                        sqlDetail = @" SELECT  DISTINCT '" + gs + @"' 产品编码,  Barcode  产品条码				            
 			            FROM
 			            FROM
 				            (SELECT to_char(pd.Barcode) Barcode
 				            (SELECT to_char(pd.Barcode) Barcode
                               ,MAX(pmax.productiondataid) mpdid
                               ,MAX(pmax.productiondataid) mpdid
@@ -345,7 +349,7 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                                  ,pd.goodsleveltypeid
                                  ,pd.goodsleveltypeid
                                  ,pd.goodsid
                                  ,pd.goodsid
                                  ,pd.reworkprocedureid ) T  ";
                                  ,pd.reworkprocedureid ) T  ";
-                            break;
+                        break;
                     }
                     }
                 default:
                 default:
                     {
                     {
@@ -393,10 +397,10 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
             sqlPara.Add(new CDAParameter("DATEBEGIN", Convert.ToDateTime(context.Request["dateendMaster"]).AddSeconds(1).AddDays(-1), DataType.DateTime));
             sqlPara.Add(new CDAParameter("DATEBEGIN", Convert.ToDateTime(context.Request["dateendMaster"]).AddSeconds(1).AddDays(-1), DataType.DateTime));
             sqlPara.Add(new CDAParameter("DATEEND", Convert.ToDateTime(context.Request["dateendMaster"]).AddSeconds(1), DataType.DateTime));
             sqlPara.Add(new CDAParameter("DATEEND", Convert.ToDateTime(context.Request["dateendMaster"]).AddSeconds(1), DataType.DateTime));
             sqlPara.Add(new CDAParameter("KILNID", context.Request["kilnidMaster"]));
             sqlPara.Add(new CDAParameter("KILNID", context.Request["kilnidMaster"]));
-            sqlPara.Add(new CDAParameter("PROCEDUREID", (context.Request["procedureidMaster"].ToString() == "13" || context.Request["procedureidMaster"].ToString()=="35") ? context.Request["procedureidMaster"] + "":"13")); 
- 
+            sqlPara.Add(new CDAParameter("PROCEDUREID", (context.Request["procedureidMaster"].ToString() == "13" || context.Request["procedureidMaster"].ToString() == "35") ? context.Request["procedureidMaster"] + "" : "13"));
+
             DataTable dt = conn.ExecuteDatatable(sqlDetail, sqlPara.ToArray());
             DataTable dt = conn.ExecuteDatatable(sqlDetail, sqlPara.ToArray());
-            string jsonStr = new JsonResult(dt) { total = dt.Rows.Count }.ToJson(); 
+            string jsonStr = new JsonResult(dt) { total = dt.Rows.Count }.ToJson();
             context.Response.Write(jsonStr);
             context.Response.Write(jsonStr);
         }
         }
 
 

+ 2 - 1
wwwroot/mes/rpt/rpt042/rpt.ashx

@@ -21,8 +21,9 @@ public class rpt : IHttpHandler, IReadOnlySessionState
             int accountId = (context.Session["accountId"] is object) ?
             int accountId = (context.Session["accountId"] is object) ?
                Convert.ToInt32(context.Session["accountId"]) : 1;
                Convert.ToInt32(context.Session["accountId"]) : 1;
 
 
-            if (context.Request["m"].ToString() == "master")
+            if (context.Request["m"].ToString() == "master" && context.Request["BARCODE"]!="")
             {
             {
+
                 //获取查询条件
                 //获取查询条件
                 List<CDAParameter> sqlPara = new List<CDAParameter>();
                 List<CDAParameter> sqlPara = new List<CDAParameter>();
                 sqlPara.Add(new CDAParameter("in_barCode", context.Request["BARCODE"]));
                 sqlPara.Add(new CDAParameter("in_barCode", context.Request["BARCODE"]));

+ 31 - 3
wwwroot/mes/rpt/rpt042/rpt_index.html

@@ -13,15 +13,16 @@
 	<!--中部主体-->
 	<!--中部主体-->
 	<div data-options="border:false,region:'center',title:'',iconCls:'icon-grid'" style="display: flex; flex-direction: column;">
 	<div data-options="border:false,region:'center',title:'',iconCls:'icon-grid'" style="display: flex; flex-direction: column;">
 		<!--工具条-->
 		<!--工具条-->
-		<div > 
+		<div>
 			<a href="javascript:void(0)" id="btnSearch" title="搜索" class="easyui-linkbutton" iconcls="icon-search" plain="true" toggle="true" onclick="tbSearch()">搜索</a>
 			<a href="javascript:void(0)" id="btnSearch" title="搜索" class="easyui-linkbutton" iconcls="icon-search" plain="true" toggle="true" onclick="tbSearch()">搜索</a>
 			<a href="javascript:void(0)" id="btnExport" title="导出" class="easyui-linkbutton" iconcls="icon-excel" plain="true" onclick="tbExport()">导出</a>
 			<a href="javascript:void(0)" id="btnExport" title="导出" class="easyui-linkbutton" iconcls="icon-excel" plain="true" onclick="tbExport()">导出</a>
 			<a href="javascript:void(0)" id="btnReload" title="刷新" class="easyui-linkbutton" iconcls="icon-reload" plain="true" onclick="tbReload()">刷新</a>
 			<a href="javascript:void(0)" id="btnReload" title="刷新" class="easyui-linkbutton" iconcls="icon-reload" plain="true" onclick="tbReload()">刷新</a>
+			<a href="javascript:void(0)" id="btnBack" title="后退" style="width:90px;" class="easyui-linkbutton" iconcls="icon-reload" plain="true" onclick="window.history.go(-1);">后退</a>
 			<div id="tbSearchDiv" style="display:block;padding:10px;">
 			<div id="tbSearchDiv" style="display:block;padding:10px;">
 				<form id="ffMaster">
 				<form id="ffMaster">
 					<div style="padding-top:10px">
 					<div style="padding-top:10px">
 						产品条码:
 						产品条码:
-						<input class="easyui-textbox" id="BARCODE" name="BARCODE" data-options="required:false,prompt:'',tipPosition:'top',url:'../rpt.ashx?m=getUser&select=1',method:'get',valueField:'USERCODE',textField:'USERCODE',panelHeight:'300px',editable:'true'" style="width:120px;height:32px;">
+						<input class="easyui-textbox" id="BARCODE" name="BARCODE" data-options="required:false,prompt:'',tipPosition:'top',  panelHeight:'300px',editable:'true'" style="width:120px;height:32px;">
 
 
 						<a href="javascript:void(0)" id="btnSearchSubmit" title="清空" class="easyui-linkbutton" plain="false" onclick="$('#ffMaster').form('clear')">清空</a>
 						<a href="javascript:void(0)" id="btnSearchSubmit" title="清空" class="easyui-linkbutton" plain="false" onclick="$('#ffMaster').form('clear')">清空</a>
 						<a href="javascript:void(0)" id="btnSearchSubmit" title="搜索" class="easyui-linkbutton" plain="false" onclick="tbSearchSubmit()">搜索</a>
 						<a href="javascript:void(0)" id="btnSearchSubmit" title="搜索" class="easyui-linkbutton" plain="false" onclick="tbSearchSubmit()">搜索</a>
@@ -87,7 +88,22 @@
 			</div>
 			</div>
 		</div>
 		</div>
 	</div>
 	</div>
-	<script type="text/javascript">
+	<script type="text/javascript"> 
+		$(document).ready(function () { 
+            let params = getQueryParams(); 
+			console.log("更总表--", request('barcode'), params);
+			// 从新每窑报表的改判调过来的条码
+			if (request('barcode') != null && request('barcode') != "") {
+				$('#BARCODE').textbox('setValue', request('barcode'));
+				tbSearchSubmit(); 
+                // 显示
+                $('#btnBack').show();
+			} else { 
+                // 显示
+                $('#btnBack').hide();
+            }           
+        });
+
 		 
 		 
 		//搜索提交
 		//搜索提交
 		function tbSearchSubmit() { 
 		function tbSearchSubmit() { 
@@ -145,6 +161,18 @@
 		function tbReload() {
 		function tbReload() {
 			tbSearchSubmit();
 			tbSearchSubmit();
 		}
 		}
+
+        function getQueryParams() {
+            let params = {};
+            let queryString = window.location.search.substring(1); // 获取查询字符串并去掉前面的问号
+            let pairs = queryString.split("&"); // 将查询字符串分割成键值对数组
+            for (let pair of pairs) {
+                let [key, value] = pair.split("="); // 将键值对分割成键和值
+                params[key] = decodeURIComponent(value); // 对值进行URL解码
+            }
+            return params;
+        }
+
 	</script>
 	</script>
 </body>
 </body>
 </html>
 </html>