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

+ 1 - 1
wwwroot/mes/rpt/rpt014/rpt_index_new.html

@@ -208,7 +208,7 @@
             if (row["产品名称"] == null || row["产品名称"] == "") {
                 return;
             }
-            if (fields == "出窑数" || fields == "U级" || fields == "A级" 
+            if (fields == "出窑数" || fields == "U级" || fields == "A级" || fields == "检验数"
                 || fields == "AA级" || fields == "去AA" || fields == "F级" || fields == "R级"
                 || fields == "研磨" || fields == "直接冷补" || fields == "研磨后冷补" || fields == "堵漏气" || fields == "刷洗不良"
                 || (fields.toString().includes("_") && !fields.toString().includes("合计"))) {

+ 8 - 9
wwwroot/mes/rpt/rpt014/rptnew.ashx

@@ -3,10 +3,9 @@
 using System;
 using System.Web;
 using System.Web.SessionState;
-using System.Data;
-using System.Text;
 using System.Collections;
 using System.Collections.Generic;
+using System.Data;
 using Newtonsoft.Json;
 using Newtonsoft.Json.Linq;
 using Curtain.DataAccess;
@@ -152,13 +151,13 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                 {
                     continue;
                 }
-				int index  = defectallnames.FindIndex(item => item.Equals(denames[i]));
+                int index  = defectallnames.FindIndex(item => item.Equals(denames[i]));
                 defectallnames.Remove(denames[i]);
-                
+
                 // 前台传过来的 可选缺陷的字符串
                 if (!context.Request["name"].ToString().Contains(denames[i]))
                 {
-                    flg = false; 
+                    flg = false;
                 }
             }
             if (context.Request["name"].ToString().Split(',').Length != denames.Length)
@@ -645,10 +644,10 @@ DECODE( TA.GID, 3, '合计', TA.GOODSTYPENAME ) AS 产品类别,
                     //读取报表数据
                     sqlStr = @" SELECT 
 						TA.GOODSNAME 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_U7, 0, NULL, TA.COUNT_U7) AS 去AA
+						TA.GOODSCODE AS 产品编码						
+						,DECODE( TA.GID, 3, '合计', TA.GOODSTYPENAME ) AS 产品类别  						
+						,DECODE(TA.COUNT_U7, 0, NULL, TA.COUNT_U7) AS 检验数
+						,DECODE( TA.COUNT_AA, 0, NULL, TA.COUNT_AA ) 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 研磨后冷补

+ 24 - 25
wwwroot/mes/rpt/rpt014/rptnew_detail.ashx

@@ -15,21 +15,22 @@ 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();
+        if (proc != "13" && proc != "35")
+        {
+            proc = "13,35";
+        }
         string fields = context.Request["fields"].ToString();
-        string index = context.Request["index"].ToString();
+        int index = Convert.ToInt32(context.Request["index"] + "");
         string gs = context.Request["gs"].ToString();
         //GOODSCODE: ""
         //buildingnoMaster: "12"
@@ -112,7 +113,7 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
 				            INNER JOIN TP_PC_GROUTINGLINE GL ON GL.GROUTINGLINEID = PD.GROUTINGLINEID  
 				           
 			            WHERE
-                           PD.PROCEDUREID in ( @PROCEDUREID@ )
+                           PD.PROCEDUREID in ( {PROCEDUREID} )
                             AND PD.VALUEFLAG = '1'  AND PD.CHECKBATCHNO = 1
                            AND PD.CREATETIME >= @DATEBEGIN@
                            AND PD.CREATETIME < @DATEEND@
@@ -146,7 +147,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 in ( @PROCEDUREID@ )
+                           AND pd.procedureid in ( {PROCEDUREID} )
                            AND pd.checkbatchno = 1
                            AND pd.createtime >= @DATEBEGIN@
                            AND pd.createtime < @DATEEND@
@@ -184,7 +185,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 in ( @PROCEDUREID@ )
+                           AND pd.procedureid in ( {PROCEDUREID} )
                            AND pd.checkbatchno = 1
                            AND pd.createtime >= @DATEBEGIN@
                            AND pd.createtime < @DATEEND@
@@ -221,7 +222,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 in ( @PROCEDUREID@ )
+                           AND pd.procedureid in ( {PROCEDUREID} )
                            AND pd.checkbatchno = 1
                            AND pd.createtime >= @DATEBEGIN@
                            AND pd.createtime < @DATEEND@
@@ -234,6 +235,7 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                         break;
                     }
                 case "去AA":
+                         case  "检验数":
                     {
                         sqlDetail = @" SELECT  DISTINCT '" + gs + @"' 产品编码,   T.Barcode  产品条码				            
 			            FROM
@@ -258,7 +260,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 in ( @PROCEDUREID@ )
+                           AND pd.procedureid in ( {PROCEDUREID} )
                            AND pd.checkbatchno = 1
                            AND pd.createtime >= @DATEBEGIN@
                            AND pd.createtime < @DATEEND@
@@ -296,7 +298,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 in ( @PROCEDUREID@ )
+                           AND pd.procedureid in ( {PROCEDUREID} )
                            AND pd.checkbatchno = 1
                            AND pd.createtime >= @DATEBEGIN@
                            AND pd.createtime < @DATEEND@
@@ -305,7 +307,8 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                            AND gl.buildingno {BUILDINGNO}
                          GROUP BY pd.Barcode
                                  ,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 = "
+                        + ((proc == "13" || proc == "35") ? 0 : 1);
                         break;
                     }
                 case "R级":
@@ -334,7 +337,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 in ( @PROCEDUREID@ )
+                           AND pd.procedureid in ( {PROCEDUREID} )
                            AND pd.checkbatchno = 1
                            AND pd.createtime >= @DATEBEGIN@
                            AND pd.createtime < @DATEEND@
@@ -372,7 +375,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 in ( @PROCEDUREID@ )
+                           AND pd.procedureid in ( {PROCEDUREID} )
                            AND pd.checkbatchno = 1
                            AND pd.createtime >= @DATEBEGIN@
                            AND pd.createtime < @DATEEND@
@@ -409,7 +412,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 in ( @PROCEDUREID@ )
+                           AND pd.procedureid in ( {PROCEDUREID} )
                            AND pd.checkbatchno = 1
                            AND pd.createtime >= @DATEBEGIN@
                            AND pd.createtime < @DATEEND@
@@ -446,7 +449,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 in ( @PROCEDUREID@ )
+                           AND pd.procedureid in ( {PROCEDUREID} )
                            AND pd.checkbatchno = 1
                            AND pd.createtime >= @DATEBEGIN@
                            AND pd.createtime < @DATEEND@
@@ -483,7 +486,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 in ( @PROCEDUREID@ )
+                           AND pd.procedureid in ( {PROCEDUREID} )
                            AND pd.checkbatchno = 1
                            AND pd.createtime >= @DATEBEGIN@
                            AND pd.createtime < @DATEEND@
@@ -520,7 +523,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 in ( @PROCEDUREID@ )
+                           AND pd.procedureid in ( {PROCEDUREID} )
                            AND pd.checkbatchno = 1
                            AND pd.createtime >= @DATEBEGIN@
                            AND pd.createtime < @DATEEND@
@@ -554,7 +557,7 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
 								) 
 			            WHERE
 				            P.VALUEFLAG = '1'
-                            AND P.PROCEDUREID = @PROCEDUREID@
+                            AND P.PROCEDUREID in ( {PROCEDUREID} )
                             AND P.CHECKBATCHNO = 1
                             AND P.CHECKTIME >= @DATEBEGIN@
                             AND P.CHECKTIME < @DATEEND@ 
@@ -569,18 +572,14 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                     }
 
             }
-            sqlDetail = sqlDetail.Replace("{DEFECT}", defectStr).Replace("{BUILDINGNO}", buding);
+            sqlDetail = sqlDetail.Replace("{DEFECT}", defectStr).Replace("{BUILDINGNO}", buding).Replace("{PROCEDUREID}",proc);
             //获取查询条件
             List<CDAParameter> sqlPara = new List<CDAParameter>();
             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"].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,35"));
             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);

+ 223 - 44
wwwroot/mes/rpt/rpt014/rptnew_detail_change.ashx

@@ -15,13 +15,9 @@ 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)
@@ -31,6 +27,10 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
         string fields = context.Request["fields"].ToString();
         string index = context.Request["index"].ToString();
         string gs = context.Request["gs"].ToString();
+        if (proc != "13" && proc != "35")
+        {
+            proc = "13,35";
+        }
         //GOODSCODE: ""
         //buildingnoMaster: "12"
         //datebeginMaster: "2025-01-06 00:00:00"
@@ -40,19 +40,6 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
         //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")
         {
@@ -98,12 +85,7 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                 }
             }
             #endregion
-            if (fields.Contains("_"))
-            {
-                string jsonStrR = new JsonResult(new DataTable()) { total = 0 }.ToJson();
-                context.Response.Write(jsonStrR);
-                    return;
-            }
+            
             // 各个列的明细数据
             string sqlDetail = "";
             switch (fields)
@@ -113,13 +95,13 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                         sqlDetail = @" SELECT  DISTINCT '" + gs + @"' 产品编码, TO_CHAR(pd.Barcode)	产品条码				            
 			            FROM
 				            TP_PM_PRODUCTIONDATA PD
-				            INNER JOIN TP_PC_GROUTINGLINE GL ON GL.GROUTINGLINEID = PD.GROUTINGLINEID  
-				           
+				            INNER JOIN TP_PC_GROUTINGLINE GL ON GL.GROUTINGLINEID = PD.GROUTINGLINEID   
 			            WHERE
-                           PD.PROCEDUREID in ( @PROCEDUREID@ )
+                           PD.PROCEDUREID in ( {PROCEDUREID} )
                            AND PD.VALUEFLAG = '1'  AND PD.CHECKBATCHNO = 1
                            AND PD.CREATETIME >= @DATEBEGIN@
                            AND PD.CREATETIME < @DATEEND@
+                           AND to_char(PD.createtime, 'YYYY-MM-DD') <> to_char(PD.checktime, 'YYYY-MM-DD')
                            AND (PD.KILNID = @KILNID@ OR @KILNID@ IS NULL) 
                            AND PD.GOODSCODE IN( '" + gs + @"' )
                            AND GL.BUILDINGNO {BUILDINGNO} ";
@@ -150,10 +132,11 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                          INNER JOIN tp_pc_groutingline gl
                             ON gl.groutinglineid = pd.groutinglineid
                          WHERE pd.valueflag = '1'
-                           AND pd.procedureid in ( @PROCEDUREID@ )
+                           AND pd.procedureid in ( {PROCEDUREID} )
                            AND pd.checkbatchno = 1
                            AND pd.createtime >= @DATEBEGIN@
                            AND pd.createtime < @DATEEND@
+                           AND to_char(PD.createtime, 'YYYY-MM-DD') <> to_char(PD.checktime, 'YYYY-MM-DD')
                            AND (pd.kilnid = @KILNID@ OR @KILNID@ IS NULL)
                            AND pd.goodscode IN( '" + gs + @"' )
                            AND gl.buildingno {BUILDINGNO}
@@ -188,10 +171,11 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                          INNER JOIN tp_pc_groutingline gl
                             ON gl.groutinglineid = pd.groutinglineid
                          WHERE pd.valueflag = '1'
-                           AND pd.procedureid in ( @PROCEDUREID@ )
+                           AND pd.procedureid in ( {PROCEDUREID} )
                            AND pd.checkbatchno = 1
                            AND pd.createtime >= @DATEBEGIN@
                            AND pd.createtime < @DATEEND@
+                           AND to_char(PD.createtime, 'YYYY-MM-DD') <> to_char(PD.checktime, 'YYYY-MM-DD')
                            AND (pd.kilnid = @KILNID@ OR @KILNID@ IS NULL)
                            AND pd.goodscode IN( '" + gs + @"' )
                            AND gl.buildingno {BUILDINGNO}
@@ -225,10 +209,11 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                          INNER JOIN tp_pc_groutingline gl
                             ON gl.groutinglineid = pd.groutinglineid
                          WHERE pd.valueflag = '1'
-                           AND pd.procedureid in ( @PROCEDUREID@ )
+                           AND pd.procedureid in ( {PROCEDUREID} )
                            AND pd.checkbatchno = 1
                            AND pd.createtime >= @DATEBEGIN@
                            AND pd.createtime < @DATEEND@
+                           AND to_char(PD.createtime, 'YYYY-MM-DD') <> to_char(PD.checktime, 'YYYY-MM-DD')
                            AND (pd.kilnid = @KILNID@ OR @KILNID@ IS NULL)
                            AND pd.goodscode IN( '" + gs + @"' )
                            AND gl.buildingno {BUILDINGNO}
@@ -237,7 +222,8 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                                  ,pd.goodsid  ) T  LEFT JOIN TP_PM_PRODUCTIONDATA RPD ON RPD.PRODUCTIONDATAID = T.MPDID    ";
                         break;
                     }
-                case "去AA":
+                case "去AA" :
+                 case  "检验数":
                     {
                         sqlDetail = @" SELECT  DISTINCT '" + gs + @"' 产品编码,   T.Barcode  产品条码				            
 			            FROM
@@ -262,10 +248,11 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                          INNER JOIN tp_pc_groutingline gl
                             ON gl.groutinglineid = pd.groutinglineid
                          WHERE pd.valueflag = '1'
-                           AND pd.procedureid in ( @PROCEDUREID@ )
+                           AND pd.procedureid in ( {PROCEDUREID} )
                            AND pd.checkbatchno = 1
                            AND pd.createtime >= @DATEBEGIN@
                            AND pd.createtime < @DATEEND@
+                           AND to_char(PD.createtime, 'YYYY-MM-DD') <> to_char(PD.checktime, 'YYYY-MM-DD')
                            AND (pd.kilnid = @KILNID@ OR @KILNID@ IS NULL)
                            AND pd.goodscode IN( '" + gs + @"' )
                            AND gl.buildingno {BUILDINGNO}
@@ -300,10 +287,11 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                          INNER JOIN tp_pc_groutingline gl
                             ON gl.groutinglineid = pd.groutinglineid
                          WHERE pd.valueflag = '1'
-                           AND pd.procedureid in ( @PROCEDUREID@ )
+                           AND pd.procedureid in ( {PROCEDUREID} )
                            AND pd.checkbatchno = 1
                            AND pd.createtime >= @DATEBEGIN@
                            AND pd.createtime < @DATEEND@
+                           AND to_char(PD.createtime, 'YYYY-MM-DD') <> to_char(PD.checktime, 'YYYY-MM-DD')
                            AND (pd.kilnid = @KILNID@ OR @KILNID@ IS NULL)
                            AND pd.goodscode IN( '" + gs + @"' )
                            AND gl.buildingno {BUILDINGNO}
@@ -338,10 +326,12 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                          INNER JOIN tp_pc_groutingline gl
                             ON gl.groutinglineid = pd.groutinglineid
                          WHERE pd.valueflag = '1'
-                           AND pd.procedureid in ( @PROCEDUREID@ )
+                           AND pd.procedureid in ( {PROCEDUREID} )
                            AND pd.checkbatchno = 1
                            AND pd.createtime >= @DATEBEGIN@
                            AND pd.createtime < @DATEEND@
+                            AND to_char(PD.createtime, 'YYYY-MM-DD') <> to_char(PD.checktime, 'YYYY-MM-DD')
+                           AND to_char(PD.createtime, 'YYYY-MM-DD') <> to_char(PD.checktime, 'YYYY-MM-DD')
                            AND (pd.kilnid = @KILNID@ OR @KILNID@ IS NULL)
                            AND pd.goodscode IN( '" + gs + @"' )
                            AND gl.buildingno {BUILDINGNO}
@@ -351,12 +341,163 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                                  ,pd.reworkprocedureid ) T  ";
                         break;
                     }
-                default:
+                        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 to_char(PD.createtime, 'YYYY-MM-DD') <> to_char(PD.checktime, 'YYYY-MM-DD')
+                           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 to_char(PD.createtime, 'YYYY-MM-DD') <> to_char(PD.checktime, 'YYYY-MM-DD')
+                           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 to_char(PD.createtime, 'YYYY-MM-DD') <> to_char(PD.checktime, 'YYYY-MM-DD')
+                           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 to_char(PD.createtime, 'YYYY-MM-DD') <> to_char(PD.checktime, 'YYYY-MM-DD')
+                           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  产品条码		            
+                        sqlDetail = @" SELECT  DISTINCT '" + gs + @"' 产品编码, T.Barcode  产品条码				            
 			            FROM
-				            (    
-                            SELECT to_char(pd.Barcode) Barcode
+				            (SELECT to_char(pd.Barcode) Barcode
                               ,MAX(pmax.productiondataid) mpdid
                               ,pd.goodsleveltypeid
                               ,pd.goodsid 
@@ -377,28 +518,66 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                          INNER JOIN tp_pc_groutingline gl
                             ON gl.groutinglineid = pd.groutinglineid
                          WHERE pd.valueflag = '1'
-                           AND pd.procedureid in ( @PROCEDUREID@ )
+                           AND pd.procedureid in ( {PROCEDUREID} )
                            AND pd.checkbatchno = 1
                            AND pd.createtime >= @DATEBEGIN@
                            AND pd.createtime < @DATEEND@
+                            AND to_char(PD.createtime, 'YYYY-MM-DD') <> to_char(PD.checktime, 'YYYY-MM-DD')
                            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   ";
+                                 ,pd.goodsid  ) T  LEFT JOIN TP_PM_PRODUCTIONDATA RPD ON RPD.PRODUCTIONDATAID = T.MPDID where  rpd.procedureid = 41 ";
+                        break;
+                    }
+                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 in ( {PROCEDUREID} )
+                            AND P.CHECKBATCHNO = 1
+                            AND P.CHECKTIME >= @DATEBEGIN@
+                            AND P.CHECKTIME < @DATEEND@ 
+                            AND to_char(P.createtime, 'YYYY-MM-DD') <> to_char(P.checktime, 'YYYY-MM-DD')
+                            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;
                     }
 
             }
-            sqlDetail = sqlDetail.Replace("{DEFECT}", defectStr).Replace("{BUILDINGNO}", buding);
+            sqlDetail = sqlDetail.Replace("{DEFECT}", defectStr).Replace("{BUILDINGNO}", buding).Replace("{PROCEDUREID}",proc);
             //获取查询条件
             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"));
 
+            sqlPara.Add(new CDAParameter("DATEBEGIN", Convert.ToDateTime(context.Request["datebeginMaster"]), DataType.DateTime));
+            /* sqlPara.Add(new CDAParameter("DATEBEGIN", Convert.ToDateTime(context.Request["dateendMaster"]).AddSeconds(1).AddDays(-1), DataTy
+            pe.DateTime));*/
+            sqlPara.Add(new CDAParameter("DATEEND", Convert.ToDateTime(context.Request["dateendMaster"]).AddSeconds(1), DataType.DateTime));
+            sqlPara.Add(new CDAParameter("KILNID", context.Request["kilnidMaster"])); 
             DataTable dt = conn.ExecuteDatatable(sqlDetail, sqlPara.ToArray());
             string jsonStr = new JsonResult(dt) { total = dt.Rows.Count }.ToJson();
             context.Response.Write(jsonStr);

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

@@ -14,9 +14,9 @@
 	<div data-options="border:false,region:'center',title:'',iconCls:'icon-grid'" style="display: flex; flex-direction: column;">
 		<!--工具条-->
 		<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="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="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="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;">
 				<form id="ffMaster">