姜永辉 10 месяцев назад
Родитель
Сommit
206c373737

+ 55 - 13
wwwroot/mes/rpt/rpt014/rpt_index_detail.html

@@ -7,19 +7,54 @@
     <meta name="author" content="xuwei">
     <title>东科软件</title>
     <script src="/plugins/xeasyui/xeasyui.min.js"></script>
+    <style>
+        .container {
+            display: flex;
+            flex-wrap: wrap;
+        }
+
+        .sidebar {
+            flex: 1;
+            height:100%;
+            background-color: #f4f4f4;
+            padding: 20px;
+        }
+
+        .content {
+            flex: 1;
+            height: 100%;
+            background-color: red;
+            padding: 20px;
+        }
+        .panel-tool a {
+            display:none !important;
+        }
+    </style>
 </head>
 <body class="easyui-layout">
-    <div data-options="region:'center',plain:true,border:false">
+
+    <div data-options="region:'west',plain:true,border:false,split:true,title:'详细条码'" style="width:50%">
         <!--表格-->
-        <table class="easyui-datagrid"
-               id="DataGridMasterGrid"
+        <table id="DataGridMasterGrid"
                data-options="toolbar: '#tb',method:'get',border:false,singleSelect:true,fit:true,fitColumns:true">
             <thead>
             </thead>
         </table>
+
     </div>
-    
-    <script type="text/javascript"> 
+    <div data-options="region:'east',plain:true,border:false,split:true,title:'改判条码'"style="width:50%">
+        <!--表格-->
+        <table id="DataGridMasterGridChange"
+               data-options="toolbar: '#tb',method:'get',border:false,singleSelect:true,fit:true,fitColumns:true">
+            <thead>
+            </thead>
+        </table>
+
+    </div>
+
+
+
+    <script type="text/javascript">
 
         function cancelForm() {
             $.dialog.close();
@@ -38,21 +73,28 @@
         let params = getQueryParams();
         console.log(params); // {param1: "value1", param2: "value2"}
 
- 
-        
-        $(document).ready(function () {
-            let params = getQueryParams();
-            console.log(params); // {param1: "value1", param2: "value2"}
 
+
+        $(document).ready(function () {
+            let params = getQueryParams(); 
             //传入的参数
             let queryParams = JSON.parse(localStorage.getItem("SearchSubmit"));
-            console.log(queryParams);
+            console.log("$(document).ready",queryParams, params);
             $('#DataGridMasterGrid').datagridLoadRpt({
                 title: '',
                 idField: 'SID',
                 queryParams: queryParams,
-                url: 'rptnew_detail.ashx?fields=' + params["fields"] + "&index=" + params["index"] + "&gs=" + params["gs"]  ,
-                fixWidth: 280,
+                url: 'rptnew_detail.ashx?fields=' + params["fields"] + "&index=" + params["index"] + "&gs=" + params["gs"],
+                fixWidth: 140,
+                mergeWidth: 80,
+                splitChar: '_'
+            });
+            $('#DataGridMasterGridChange').datagridLoadRpt({
+                title: '',
+                idField: 'SID',
+                queryParams: queryParams,
+                url: 'rptnew_detail_change.ashx?fields=' + params["fields"] + "&index=" + params["index"] + "&gs=" + params["gs"],
+                fixWidth: 140,
                 mergeWidth: 80,
                 splitChar: '_'
             });

+ 2 - 3
wwwroot/mes/rpt/rpt014/rpt_index_new.html

@@ -92,8 +92,7 @@
                         //$("#defectMaster").val("");
                         $('#defectMaster').combobox('setValue', "");
                         $('#defectMaster').combobox('setText', '');
-                    }
-                    console.log("getUserDefectGroupNameData",name)
+                    } 
                 }              
 
             });
@@ -207,7 +206,7 @@
             }
             if (fields == "出窑数" || fields == "U级" || fields == "A级" || fields == "AA级" || fields == "去AA" || fields == "F级" || fields == "R级") {
                 $('#DataGridMasterGrid').datagridDialog({
-                    title: '详细',
+                    title: fields + '详细',
                     width: 640,
                     height: 480,
                     url: 'rpt_index_detail.html?fields=' + fields + "&index=" + index + "&gs=" + row["产品编码"]

+ 15 - 15
wwwroot/mes/rpt/rpt014/rptnew.ashx

@@ -213,7 +213,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 	            DECODE( TA.COUNT_U4, 0, NULL, TA.COUNT_U4 ) AS U级,
 	            DECODE( TA.COUNT_U5  , 0, NULL, TA.COUNT_U5   ) A级,
 	            DECODE( TA.COUNT_AA, 0, NULL, TA.COUNT_AA ) AS AA级, 
-				DECODE(TA.COUNT_L, 0, NULL, TA.COUNT_L) AS 去AA,
+				DECODE(TA.COUNT_U7, 0, NULL, TA.COUNT_U7) AS 去AA,
 	            DECODE( TA.COUNT_R, 0, NULL, TA.COUNT_R ) AS R级,   
 	            DECODE( TA.Waste, 0, NULL, TA.Waste ) AS F级,
 	            CASE WHEN TA.OUT_K IS NULL OR TA.OUT_K = 0 THEN NULL ELSE ROUND( ( TA.COUNT_U4 + TA.COUNT_U5 +  TA.COUNT_AA ) / TA.OUT_K, 4 ) * 100 END AS UA率,
@@ -229,11 +229,11 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 			            SUM( T.OUT_K ) OUT_K,
 			            SUM( CASE WHEN T.H_FLAG = 0 AND T.GOODSLEVELTYPEID = 4 THEN 1 ELSE 0 END ) COUNT_U4, -- 直接正品
 			            SUM( CASE WHEN T.H_FLAG = 0 AND T.GOODSLEVELTYPEID = 5 THEN 1 ELSE 0 END ) COUNT_U5, -- 直接副品
-			            SUM( CASE WHEN T.H_FLAG = 0 AND T.GOODSLEVELTYPEID = 7 THEN 1 ELSE 0 END ) COUNT_U7, -- 直接次品
+			            SUM( CASE WHEN   T.GOODSLEVELTYPEID = 7 THEN 1 ELSE 0 END ) COUNT_U7, -- 直接次品
 			            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 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.H_FLAG = 0 AND T.GOODSLEVELTYPEID = 20 THEN 1 ELSE 0 END ) Waste -- 直接次品
+						SUM( CASE WHEN  T.GOODSLEVELTYPEID = 20 THEN 1 ELSE 0 END ) Waste -- 直接次品
 		            FROM
 			            (
 			            SELECT      
@@ -254,7 +254,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 				           
 			            WHERE
                            PD.PROCEDUREID = @PROCEDUREID@
-                           AND PD.CHECKFLAG = 1
+                           AND PD.VALUEFLAG = '1'  AND PD.CHECKBATCHNO = 1
                            AND PD.CREATETIME >= @DATEBEGIN@
                            AND PD.CREATETIME < @DATEEND@
                            AND (PD.KILNID = @KILNID@ OR @KILNID@ IS NULL) 
@@ -417,7 +417,7 @@ DECODE( TA.GID, 3, '合计', TA.GOODSTYPENAME ) AS 产品类别,
 	            DECODE( TA.COUNT_U5  , 0, NULL, TA.COUNT_U5   ) A级,
 	            DECODE( TA.COUNT_AA, 0, NULL, TA.COUNT_AA ) AS AA级, 
 	            DECODE( TA.COUNT_R, 0, NULL, TA.COUNT_R ) AS R级, 
-	            DECODE( TA.COUNT_L, 0, NULL, TA.COUNT_L ) AS 去AA,  
+	            DECODE( TA.COUNT_U7, 0, NULL, TA.COUNT_U7 ) AS 去AA,  
 	            DECODE( TA.Waste, 0, NULL, TA.Waste ) AS F级,
 	            CASE WHEN TA.OUT_K IS NULL OR TA.OUT_K = 0 THEN NULL ELSE ROUND( ( TA.COUNT_U4 + TA.COUNT_U5 + TA.COUNT_AA ) / TA.OUT_K, 4 ) * 100 END AS UA率,
 	            TD.* 
@@ -432,12 +432,12 @@ DECODE( TA.GID, 3, '合计', TA.GOODSTYPENAME ) AS 产品类别,
 			            SUM( T.OUT_K ) OUT_K,
 			            SUM( CASE WHEN T.H_FLAG = 0 AND T.GOODSLEVELTYPEID = 4 THEN 1 ELSE 0 END ) COUNT_U4, -- 直接正品
 			            SUM( CASE WHEN T.H_FLAG = 0 AND T.GOODSLEVELTYPEID = 5 THEN 1 ELSE 0 END ) COUNT_U5, -- 直接副品
-			            SUM( CASE WHEN T.H_FLAG = 0 AND T.GOODSLEVELTYPEID = 7 THEN 1 ELSE 0 END ) COUNT_U7, -- 直接次品
+			            SUM( CASE WHEN  T.GOODSLEVELTYPEID = 7 THEN 1 ELSE 0 END ) COUNT_U7, -- 直接次品
 			            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 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.H_FLAG = 0 AND T.GOODSLEVELTYPEID = 20 THEN 1 ELSE 0 END ) Waste -- 直接报废
+						SUM( CASE WHEN  T.GOODSLEVELTYPEID = 20 THEN 1 ELSE 0 END ) Waste -- 直接报废
 		            FROM
 			            (
 			            SELECT
@@ -457,7 +457,7 @@ DECODE( TA.GID, 3, '合计', TA.GOODSTYPENAME ) AS 产品类别,
 				           
 			            WHERE
                            PD.PROCEDUREID = @PROCEDUREID@
-                           AND PD.CHECKFLAG = 1
+                            AND PD.VALUEFLAG = '1'  AND PD.CHECKBATCHNO = 1
                            AND PD.CREATETIME >= @DATEBEGIN@
                            AND PD.CREATETIME < @DATEEND@
                            AND (PD.KILNID = @KILNID@ OR @KILNID@ IS NULL) 
@@ -611,14 +611,14 @@ DECODE( TA.GID, 3, '合计', TA.GOODSTYPENAME ) AS 产品类别,
 						TA.GOODSCODE AS 产品编码,
 						DECODE( TA.GID, 3, '合计', TA.GOODSTYPENAME ) AS 产品类别,  
 						DECODE( TA.COUNT_AA, 0, NULL, TA.COUNT_AA ) AS AA级, 
-						DECODE(TA.COUNT_L, 0, NULL, TA.COUNT_L) AS 去AA
+						DECODE(TA.COUNT_U7, 0, NULL, TA.COUNT_U7) AS 去AA
 						,DECODE(ta.count_ym, 0, NULL, ta.count_ym) AS 研磨
 						,DECODE(ta.count_lb, 0, NULL, ta.count_lb) AS 直接冷补
 						,DECODE(ta.count_ymlb, 0, NULL, ta.count_ymlb) AS 研磨后冷补
 						,DECODE(ta.count_dlq, 0, NULL, ta.count_dlq) AS 堵漏气
 						,DECODE(ta.count_sxbl, 0, NULL, ta.count_sxbl) AS 刷洗不良 
-						,DECODE( TA.Waste, 0, NULL, TA.Waste ) AS F级,						 
-						TD.* 
+						--,DECODE( TA.Waste, 0, NULL, TA.Waste ) AS F级						 
+						,TD.* 
 					FROM
 							(
 							SELECT
@@ -627,7 +627,7 @@ DECODE( TA.GID, 3, '合计', TA.GOODSTYPENAME ) AS 产品类别,
 								GT.GOODSTYPENAME,
 								G.GOODSCODE,
 								G.GOODSNAME,  
-								SUM( CASE WHEN T.H_FLAG = 0 AND T.GOODSLEVELTYPEID = 7 THEN 1 ELSE 0 END ) COUNT_U7, -- 直接次品
+								SUM( CASE WHEN  T.GOODSLEVELTYPEID = 7 THEN 1 ELSE 0 END ) COUNT_U7, -- 直接次品
 								SUM( CASE WHEN  rpd.procedureid = 20 THEN 1 ELSE 0 END ) AS  count_ym , --研磨  
 								SUM( CASE WHEN  rpd.procedureid = 22 THEN 1 ELSE 0 END ) AS  count_lb ,--直接冷补, 
 								SUM( CASE WHEN  rpd.procedureid = 23 THEN 1 ELSE 0 END ) AS  count_ymlb, --研磨后冷补, 
@@ -635,7 +635,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 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.H_FLAG = 0 AND T.GOODSLEVELTYPEID = 20 THEN 1 ELSE 0 END ) Waste -- 直接次品
+								SUM( CASE WHEN   T.GOODSLEVELTYPEID = 20 THEN 1 ELSE 0 END ) Waste -- 直接次品
 							FROM
 								(
 								 
@@ -893,6 +893,7 @@ DECODE( TA.GID, 3, '合计', TA.GOODSTYPENAME ) AS 产品类别,
                         }
                     }
                 }
+				// 删除可选缺陷的列
                 for (int m = dt.Columns.Count - 1; m > 0; m--)
                 {
                     for (int mn = 0; mn < defectallnames.Count; mn++)
@@ -906,8 +907,7 @@ DECODE( TA.GID, 3, '合计', TA.GOODSTYPENAME ) AS 产品类别,
                 //获取分页数据
                 int total = 0;
                 //dt = conn.SelectPages(page, rows, out total, sqlStr, sqlPara.ToArray());
-                string jsonStr = new JsonResult(dt) { total = total }.ToJson();
-                //string jsonStr = new JsonResult(dt) { total = dt.Rows.Count }.ToJson();
+                string jsonStr = new JsonResult(dt) { total = total }.ToJson(); 
                 context.Response.Write(jsonStr);
             }
         }

+ 11 - 11
wwwroot/mes/rpt/rpt014/rptnew_detail.ashx

@@ -112,8 +112,8 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
 				            INNER JOIN TP_PC_GROUTINGLINE GL ON GL.GROUTINGLINEID = PD.GROUTINGLINEID  
 				           
 			            WHERE
-                           PD.PROCEDUREID = @PROCEDUREID@
-                           AND PD.CHECKFLAG = 1
+                           PD.PROCEDUREID in ( @PROCEDUREID@ )
+                            AND PD.VALUEFLAG = '1'  AND PD.CHECKBATCHNO = 1
                            AND PD.CREATETIME >= @DATEBEGIN@
                            AND PD.CREATETIME < @DATEEND@
                            AND (PD.KILNID = @KILNID@ OR @KILNID@ IS NULL) 
@@ -146,7 +146,7 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                          INNER JOIN tp_pc_groutingline gl
                             ON gl.groutinglineid = pd.groutinglineid
                          WHERE pd.valueflag = '1'
-                           AND pd.procedureid = @PROCEDUREID@
+                           AND pd.procedureid in ( @PROCEDUREID@ )
                            AND pd.checkbatchno = 1
                            AND pd.createtime >= @DATEBEGIN@
                            AND pd.createtime < @DATEEND@
@@ -184,7 +184,7 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                          INNER JOIN tp_pc_groutingline gl
                             ON gl.groutinglineid = pd.groutinglineid
                          WHERE pd.valueflag = '1'
-                           AND pd.procedureid = @PROCEDUREID@
+                           AND pd.procedureid in ( @PROCEDUREID@ )
                            AND pd.checkbatchno = 1
                            AND pd.createtime >= @DATEBEGIN@
                            AND pd.createtime < @DATEEND@
@@ -221,7 +221,7 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                          INNER JOIN tp_pc_groutingline gl
                             ON gl.groutinglineid = pd.groutinglineid
                          WHERE pd.valueflag = '1'
-                           AND pd.procedureid = @PROCEDUREID@
+                           AND pd.procedureid in ( @PROCEDUREID@ )
                            AND pd.checkbatchno = 1
                            AND pd.createtime >= @DATEBEGIN@
                            AND pd.createtime < @DATEEND@
@@ -258,7 +258,7 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                          INNER JOIN tp_pc_groutingline gl
                             ON gl.groutinglineid = pd.groutinglineid
                          WHERE pd.valueflag = '1'
-                           AND pd.procedureid = @PROCEDUREID@
+                           AND pd.procedureid in ( @PROCEDUREID@ )
                            AND pd.checkbatchno = 1
                            AND pd.createtime >= @DATEBEGIN@
                            AND pd.createtime < @DATEEND@
@@ -267,8 +267,8 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                            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 IN ( 22, 23, 37, 20, 41 ) ";
+                                 ,pd.goodsid  ) T  
+                                where  T.GOODSLEVELTYPEID = 7  ";
                             break;
                     }
                 case "F级":
@@ -296,7 +296,7 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                          INNER JOIN tp_pc_groutingline gl
                             ON gl.groutinglineid = pd.groutinglineid
                          WHERE pd.valueflag = '1'
-                           AND pd.procedureid = @PROCEDUREID@
+                           AND pd.procedureid in ( @PROCEDUREID@ )
                            AND pd.checkbatchno = 1
                            AND pd.createtime >= @DATEBEGIN@
                            AND pd.createtime < @DATEEND@
@@ -334,7 +334,7 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                          INNER JOIN tp_pc_groutingline gl
                             ON gl.groutinglineid = pd.groutinglineid
                          WHERE pd.valueflag = '1'
-                           AND pd.procedureid = @PROCEDUREID@
+                           AND pd.procedureid in ( @PROCEDUREID@ )
                            AND pd.checkbatchno = 1
                            AND pd.createtime >= @DATEBEGIN@
                            AND pd.createtime < @DATEEND@
@@ -359,7 +359,7 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
             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("KILNID", context.Request["kilnidMaster"]));
-            sqlPara.Add(new CDAParameter("PROCEDUREID", context.Request["procedureidMaster"]));
+            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());

+ 413 - 0
wwwroot/mes/rpt/rpt014/rptnew_detail_change.ashx

@@ -0,0 +1,413 @@
+<%@ WebHandler Language="C#" Class="rptnew_detail" %>
+
+using System;
+using System.Web;
+using System.Web.SessionState;
+using System.Data;
+using System.Text;
+using System.Collections;
+using System.Collections.Generic;
+using Newtonsoft.Json;
+using Newtonsoft.Json.Linq;
+using Curtain.DataAccess;
+using DK.XuWei.WebMes;
+
+public class rptnew_detail : IHttpHandler, IReadOnlySessionState
+{
+    List<CDAParameter> goodsnull = new List<CDAParameter>();
+    string[] goodsCodes = new string[] { };
+    string goodsStr = "";
+    DataTable goodsTable = new DataTable();
+    string defectStr = "";
+    DataTable col = new DataTable();
+    string proc = "";
+    string sqlStr = "";
+    //楼号
+    string buding = null;
+    public void ProcessRequest(HttpContext context)
+    {
+        context.Response.ContentType = "text/plain";
+        proc = context.Request["procedureidMaster"].ToString();
+        string fields = context.Request["fields"].ToString();
+        string index = context.Request["index"].ToString();
+        string gs = context.Request["gs"].ToString();
+        //GOODSCODE: ""
+        //buildingnoMaster: "12"
+        //datebeginMaster: "2025-01-06 00:00:00"
+        //dateendMaster: "2025-06-06 23:59:59"
+        //goodsnameMaster: ""
+        //kilnidMaster: ""
+        //procedureidMaster: "13"
+
+        #region 取缺陷拼接串
+        string procedureId = "21,2,6,16,31,25,30,33,7,8,9";
+        if (context.Request["buildingnoMaster"].ToString().IndexOf("2#") >= 0)
+        {
+            //二期 原料21 成型2 施釉6 循环线16     出装/登窑7 烧窑/入窑8 卸窑9
+            procedureId = "21,2,6,16,7,8,9";
+        }
+
+        if (context.Request["buildingnoMaster"].ToString().IndexOf("1#") >= 0)
+        {
+            //一期 原料31 成型25 施釉30 循环线33   出装/登窑7 烧窑/入窑8 卸窑9
+            procedureId = "31,25,30,33,7,8,9";
+        }
+
+
+        if (context.Request["buildingnoMaster"].ToString() != "12")
+        {
+            buding = "IN('" + context.Request["buildingnoMaster"] + "')";
+        }
+        else
+        {
+            buding = "IN(" + "'1#','2#'" + ")";
+        }
+        // 缺陷数据
+        using (IDataAccess conn = DataAccess.Create())
+        {
+            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,
+						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
+					");
+
+            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
+            // 各个列的明细数据
+            string sqlDetail = "";
+            switch (fields)
+            {
+                case "出窑数":
+                    {
+                        sqlDetail = @" SELECT  DISTINCT '" + gs + @"' 产品编码, TO_CHAR(pd.Barcode)	产品条码				            
+			            FROM
+				            TP_PM_PRODUCTIONDATA PD
+				            INNER JOIN TP_PC_GROUTINGLINE GL ON GL.GROUTINGLINEID = PD.GROUTINGLINEID  
+				           
+			            WHERE
+                           PD.PROCEDUREID in ( @PROCEDUREID@ )
+                            AND PD.VALUEFLAG = '1'  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} ";
+                        break;
+                    }
+                case "U级":
+                    {
+                        sqlDetail = @" SELECT  DISTINCT '" + gs + @"' 产品编码,  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 where T.GOODSLEVELTYPEID = 4 and T.H_FLAG = 0";
+
+                        break;
+                    }
+                case "A级":
+                    {
+                         sqlDetail = @" SELECT  DISTINCT '" + gs + @"' 产品编码,  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  ";
+                        break;
+                    }
+                case "AA级":
+                    {
+                            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    ";
+                        break;
+                    }
+                case "去AA":
+                    {
+                        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  
+                                 ";
+                            break;
+                    }
+                case "F级":
+                    {
+                         sqlDetail = @" SELECT  DISTINCT '" + gs + @"' 产品编码,  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  ";
+                            break;
+                    }
+                case "R级":
+                    {
+                         sqlDetail = @" SELECT  DISTINCT '" + gs + @"' 产品编码,  Barcode  产品条码				            
+			            FROM
+				            (SELECT to_char(pd.Barcode) Barcode
+                              ,MAX(pmax.productiondataid) mpdid
+                              ,pd.goodsleveltypeid
+                              ,pd.goodsid 
+                              ,PD.REWORKPROCEDUREID
+                              ,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
+                                 ,pd.reworkprocedureid ) T  ";
+                            break;
+                    }
+                default:
+                    {
+                        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   ";
+                        break;
+                    }
+
+            }
+            sqlDetail = sqlDetail.Replace("{DEFECT}", defectStr).Replace("{BUILDINGNO}", buding);
+            //获取查询条件
+            List<CDAParameter> sqlPara = new List<CDAParameter>();
+            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("KILNID", context.Request["kilnidMaster"]));
+            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());
+            string jsonStr = new JsonResult(dt) { total = dt.Rows.Count }.ToJson(); 
+            context.Response.Write(jsonStr);
+        }
+
+
+    }
+
+    public bool IsReusable
+    {
+        get
+        {
+            return false;
+        }
+    }
+}

+ 4 - 4
wwwroot/mes/rpt/rpt041/rpt_index.html

@@ -21,9 +21,9 @@
 				<form id="ffMaster">
 					<div>
 						首检日期:
-						<input class="easyui-datetimebox" id="firstdatebeginMaster" name="firstdatebeginMaster" data-options="required:true,prompt:'开始日期必须填写!',tipPosition:'top'" style="width:180px; height:32px;">
+						<input class="easyui-datetimebox" id="firstdatebeginMaster" name="firstdatebeginMaster" data-options="required:false,prompt:'首检开始日期!',tipPosition:'top'" style="width:180px; height:32px;">
 						-
-						<input class="easyui-datetimebox" id="firstdateendMaster" name="firstdateendMaster" data-options="required:true,prompt:'截止日期必须填写',tipPosition:'top'" style="width:180px; height:32px;">
+						<input class="easyui-datetimebox" id="firstdateendMaster" name="firstdateendMaster" data-options="required:false,prompt:'首检截止日期',tipPosition:'top'" style="width:180px; height:32px;">
 						产品编码:
 						<input class="easyui-combobox" id="GOODSCODE" name="GOODSCODE" data-options="required:false,prompt:'',tipPosition:'top',url:'../rpt.ashx?m=getGoods&select=1',method:'get',valueField:'GOODSCODE',textField:'GOODSCODE',panelHeight:'300px',editable:'true'" style="width:120px;height:32px;">
 						首检工号:
@@ -82,8 +82,8 @@
             var ctime = new Date();
             var beginDate = ctime.getFullYear() + "-" + (ctime.getMonth() + 1) + "-" + ctime.getDate() + " 00:00:00";
             var endDate = ctime.getFullYear() + "-" + (ctime.getMonth() + 1) + "-" + ctime.getDate() + " 23:59:59";
-            $("#firstdatebeginMaster").datetimebox("setValue", beginDate);
-            $("#firstdateendMaster").datetimebox("setValue", endDate);
+            //$("#firstdatebeginMaster").datetimebox("setValue", beginDate);
+           // $("#firstdateendMaster").datetimebox("setValue", endDate);
             $("#twodatebeginMaster").datetimebox("setValue", beginDate);
             $("#twodateendMaster").datetimebox("setValue", endDate);
 		});