Эх сурвалжийг харах

复检记录表的导出 成检产量统计表的 加入其他 回收。 最后一行 加入 总合计 新每窑 AA 产品合格数的 回收

姜永辉 5 сар өмнө
parent
commit
a7ab2594cc

+ 32 - 187
wwwroot/mes/rpt/rpt008/rpt.ashx

@@ -133,8 +133,20 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                       ,0 OK_H
                                       ,0 OK_RH
                                       ,1 OK_ALL
-                                      ,0 END_B
-                                      ,0 END_R
+                                      ,CASE
+                                         WHEN pdd.PROCEDUREID = 13 AND 
+                                              RPD.Productiondataid IS NULL  and pdd.goodsleveltypeid IN (4, 5) THEN
+                                          1
+                                         ELSE
+                                          0
+                                       END  END_B
+                                      ,CASE
+                                         WHEN pdd.PROCEDUREID = 35 AND 
+                                              RPD.Productiondataid IS NULL   and pdd.goodsleveltypeid IN (4, 5)  THEN
+                                          1
+                                         ELSE
+                                          0
+                                       END END_R
                                       ,0 END_H
                                       ,0 END_RH
                                       ,0 END_ALL
@@ -142,19 +154,21 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                       ,0 bzgp
                                   FROM (SELECT MAX(tp.productiondataid) productiondataid
                                               ,TP.GROUTINGDAILYDETAILID 
-                                          FROM TP_PM_PRODUCTIONDATA TP
-                                        
+                                          FROM TP_PM_PRODUCTIONDATA TP                                        
                                          WHERE   TP.PROCEDUREID IN (13, 35)
                                            AND TP.checktime >= date'" + Convert.ToDateTime(context.Request["datebeginMaster"]).ToString("yyyy-MM-dd") + @"'
                                            AND TP.checktime <= date'" + Convert.ToDateTime(context.Request["dateendMaster"]).AddSeconds(1).ToString("yyyy-MM-dd") + @"'
                                        {strFactoryInspectionCheckTime}  
                                          GROUP BY TP.GROUTINGDAILYDETAILID 
                                             ) P  inner JOIN tp_pm_productiondata pdd ON pdd.productiondataid = p.productiondataid
+
+--   去除复检的质量登记
+  LEFT JOIN tp_pm_productiondata_semicheck semicheck ON semicheck.productiondataid = p.productiondataid
                                    LEFT JOIN tp_pm_productiondata rpd
                                             ON rpd.groutingdailydetailid = p.groutingdailydetailid
                                            AND rpd.productiondataid < p.productiondataid
-                                           and rpd.kilncarbatchno = pdd.kilncarbatchno
-                                           AND rpd.valueflag = '1' 
+                                           and rpd.kilncarbatchno = pdd.kilncarbatchno   and pdd.checkflag = 3
+                                           AND rpd.valueflag = '1' AND semicheck.productiondataid IS NULL
                                               /*20  研磨 22  直接冷补 23  研磨后冷补(非回收) 37  堵漏气 41  刷洗不良*/
                                            AND rpd.procedureid IN (20, 22, 23, 37, 41)
                                   
@@ -165,14 +179,13 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                       ,0 OUT_K_R
                                       ,0 OUT_K_ALL
                                       ,0 OK_B
-                                      ,0 OK_R
-                                     -- ,CASE WHEN SUM(rpd.productiondataid) > 0 and pdd.PROCEDUREID = 13 and   pdd.goodsleveltypeid IN (4, 5)   -- THEN 1  ELSE 0 END OK_H
-                                    ,COUNT(DISTINCT  CASE WHEN rpd.productiondataid is not null and pdd.PROCEDUREID = 13 and   pdd.goodsleveltypeid IN (4, 5)   THEN pdd.barcode  ELSE  NULL  END ) OK_H    
+                                      ,0 OK_R 
+                                      ,COUNT(DISTINCT  CASE WHEN rpd.productiondataid is not null and pdd.PROCEDUREID = 13 and   pdd.goodsleveltypeid IN (4, 5)   THEN pdd.barcode  ELSE  NULL  END ) OK_H    
                                       ,0 OK_RH
                                       ,1 OK_ALL
                                       ,0 END_B
                                       ,0 END_R
-                                      ,0 END_H
+                                      ,COUNT(DISTINCT  CASE WHEN rpd.productiondataid is not null and pdd.PROCEDUREID = 13 and   pdd.goodsleveltypeid IN (4, 5)   THEN pdd.barcode  ELSE  NULL  END ) END_H
                                       ,0 END_RH
                                       ,0 END_ALL
                                       ,0 hgp
@@ -193,7 +206,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                             ON rpd.groutingdailydetailid = p.groutingdailydetailid
                                            AND rpd.productiondataid < p.productiondataid
                                               AND rpd.kilncarbatchno = pdd.kilncarbatchno
-                                           AND rpd.valueflag = '1' 
+                                           AND rpd.valueflag = '1'  and pdd.checkflag = 3
                                              AND  semicheck.productiondataid is null 
                                               /*20  研磨 22  直接冷补 23  研磨后冷补(非回收) 37  堵漏气 41  刷洗不良*/
                                            AND rpd.procedureid IN (20, 22, 23, 37, 41  )
@@ -206,14 +219,13 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                       ,0 OUT_K_ALL
                                       ,0 OK_B
                                       ,0 OK_R
-                                     ,0 OK_H    
-                                      ,COUNT(DISTINCT  CASE WHEN rpd.productiondataid is not null and pdd.PROCEDUREID = 35 and   pdd.goodsleveltypeid IN (4, 5)   THEN pdd.barcode  ELSE  NULL
-                                       END ) OK_RH
+                                      ,0 OK_H    
+                                      ,COUNT(DISTINCT  CASE WHEN rpd.productiondataid is not null and pdd.PROCEDUREID = 35 and   pdd.goodsleveltypeid IN (4, 5)   THEN pdd.barcode  ELSE  NULL  END ) OK_RH
                                       ,1 OK_ALL
                                       ,0 END_B
                                       ,0 END_R
                                       ,0 END_H
-                                      ,0 END_RH
+                                      ,COUNT(DISTINCT  CASE WHEN rpd.productiondataid is not null and pdd.PROCEDUREID = 35 and   pdd.goodsleveltypeid IN (4, 5)   THEN pdd.barcode  ELSE  NULL  END )  END_RH
                                       ,0 END_ALL
                                       ,0 hgp
                                       ,0 bzgp
@@ -231,181 +243,14 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                   LEFT JOIN tp_pm_productiondata_semicheck semicheck ON semicheck.productiondataid = pdd.productiondataid
                                    LEFT JOIN tp_pm_productiondata rpd
                                             ON rpd.groutingdailydetailid = p.groutingdailydetailid
-                                           AND rpd.productiondataid < p.productiondataid
-                                            AND (( rpd.procedureid IN (20, 22, 23, 37, 41 ) and rpd.kilncarbatchno = pdd.kilncarbatchno  )OR  (  rpd.procedureid=35 and  rpd.procedureid = pdd.procedureid))
+                                           AND rpd.productiondataid < p.productiondataid 
+and rpd.kilncarbatchno = pdd.kilncarbatchno  and pdd.checkflag = 3
+                                        --   AND (( rpd.procedureid IN (20, 22, 23, 37, 41 ) and rpd.kilncarbatchno = pdd.kilncarbatchno  )OR   (  rpd.procedureid=35 and  rpd.procedureid = pdd.procedureid))
                                            AND rpd.valueflag = '1' 
                                              AND  semicheck.productiondataid is null 
                                               /*20  研磨 22  直接冷补 23  研磨后冷补(非回收) 37  堵漏气 41  刷洗不良*/
-                                           AND rpd.procedureid IN (20, 22, 23, 37, 41 ,35)
-                                   GROUP BY p.groutingdailydetailid,pdd.goodsleveltypeid ,pdd.PROCEDUREID  ,pdd.barcode 
-                              
-                                UNION ALL
-                                SELECT 3 FLAG
-                                      ,tp.groutingdailydetailid,null  mpdid
-                                      ,0 OUT_K_B
-                                      ,0 OUT_K_R
-                                      ,0 OUT_K_ALL
-                                      ,0 OK_B
-                                      ,0 OK_R
-                                      ,0 OK_H
-                                      ,0 OK_RH
-                                      ,0 OK_ALL
-                                      ,CASE
-                                         WHEN COUNT(DISTINCT CASE
-                                                    WHEN TP.PROCEDUREID = 13 and RPD.groutingdailydetailid is  null  AND TP.checktime >= date'" + Convert.ToDateTime(context.Request["datebeginMaster"]).ToString("yyyy-MM-dd") + @"'
-                                           AND TP.checktime <= date'" + Convert.ToDateTime(context.Request["dateendMaster"]).AddSeconds(1).ToString("yyyy-MM-dd") + @"'   AND (rpdsemi.goodsleveltypeid IS NULL OR rpdsemi.goodsleveltypeid IN (4, 5)) THEN
-                                                     tp.barcode
-                                                    ELSE
-                                                     NULL
-                                                  END) > 0 THEN
-                                          1
-                                         ELSE
-                                          0
-                                       END END_B
-                                      ,CASE
-                                         WHEN COUNT(DISTINCT CASE
-                                                    WHEN TP.PROCEDUREID = 35   and RPD.groutingdailydetailid is  null  AND TP.checktime >= date'" + Convert.ToDateTime(context.Request["datebeginMaster"]).ToString("yyyy-MM-dd") + @"'
-                                           AND TP.checktime <= date'" + Convert.ToDateTime(context.Request["dateendMaster"]).AddSeconds(1).ToString("yyyy-MM-dd") + @"'    AND (rpdsemi.goodsleveltypeid IS NULL OR  rpdsemi.goodsleveltypeid IN (4, 5)) THEN
-                                                     tp.barcode
-                                                    ELSE
-                                                     NULL
-                                                  END) > 0 THEN
-                                          1
-                                         ELSE
-                                          0
-                                       END END_R
-                                      ,0 END_H
-                                      ,0 END_RH
-                                      ,1 END_ALL
-                                      ,0 hgp
-                                      ,0 bzgp
-                                   from 
-                                            (SELECT tp.productiondataid
-                                                          ,tp.groutingdailydetailid
-                                                          ,MAX(pmax.productiondataid) AS maxproductiondataid
-                                                      FROM tp_pm_productiondata tp
-                                                      LEFT JOIN tp_pm_productiondata pmax
-                                                        ON pmax.groutingdailydetailid = tp.groutingdailydetailid
-                                                       AND pmax.productiondataid < tp.productiondataid
-                                                       and pmax.goodsleveltypeid IN (4, 5)
-                                                       AND pmax.procedureid IN (13, 35)
-                                                     WHERE  tp.procedureid = 15 AND tp.valueflag = '1'
-                                                       AND TP.checktime >= date'" + Convert.ToDateTime(context.Request["datebeginMaster"]).ToString("yyyy-MM-dd") + @"'
-                                           AND TP.checktime <=  date'" + Convert.ToDateTime(context.Request["dateendMaster"]).AddSeconds(1).ToString("yyyy-MM-dd") + @"' 
-                                            {strFactoryInspectionCheckTime}
-                                                     GROUP BY tp.productiondataid
-                                                             ,tp.groutingdailydetailid) maxp                                          
-                                             --当前包装入库
-                                             INNER JOIN tp_pm_productiondata pppr
-                                                ON pppr.productiondataid = maxp.productiondataid
-                                            --当前包装入库的质量登记
-                                             INNER JOIN tp_pm_productiondata tp
-                                                ON tp.productiondataid = maxp.maxproductiondataid
-                                            
-                                        LEFT JOIN TP_PM_PRODUCTIONDATA RPD
-                                    ON RPD.BARCODE = tp.BARCODE
-                                    AND rpd.valueflag = '1'
-                                    and rpd.kilncarbatchno = tp.kilncarbatchno
-                                   AND RPD.Procedureid IN (20, 22, 23, 37, 41) 
-                            
-                                   -- 20250925 当前包装入库之后的时间段  是否有复检的条码  ,如果没有复检包装入库的条码、或 有复检包装入库的条码且合格
-                                  LEFT JOIN tp_pm_productiondata_semicheck semi
-                                    ON semi.barcode = tp.barcode
-                                  LEFT JOIN tp_pm_productiondata rpdsemi
-                                    ON rpdsemi.productiondataid = semi.productiondataid
-                                   AND rpdsemi.valueflag = '1'
-                                      -- 当前包装入库之后的时间段
-                                   AND rpdsemi.createtime > tp.createtime
-			                where 
-                            pppr.ProcedureID = 15  AND pppr.valueflag = '1'
-                            and pppr.checktime>= date'" + Convert.ToDateTime(context.Request["datebeginMaster"]).ToString("yyyy-MM-dd") + @"'  
-                            and pppr.checktime<= date'" + Convert.ToDateTime(context.Request["dateendMaster"]).AddSeconds(1).ToString("yyyy-MM-dd") + @"' 
-                            GROUP BY tp.groutingdailydetailid
-
- UNION ALL
-                                SELECT 3 FLAG
-                                      ,tp.groutingdailydetailid,null  mpdid
-                                      ,0 OUT_K_B
-                                      ,0 OUT_K_R
-                                      ,0 OUT_K_ALL
-                                      ,0 OK_B
-                                      ,0 OK_R
-                                      ,0 OK_H
-                                      ,0 OK_RH
-                                      ,0 OK_ALL
-                                      ,0 END_B
-                                      ,0 END_R
-                                      ,CASE
-                                         WHEN COUNT(DISTINCT  CASE
-                                                     WHEN TP.PROCEDUREID = 13 and RPD.groutingdailydetailid is not null THEN
-                                                     tp.barcode
-                                                    ELSE
-                                                     NULL
-                                                  END) > 0 THEN
-                                          1
-                                         ELSE
-                                          0
-                                       END END_H
-                                      ,CASE
-                                         WHEN  COUNT(DISTINCT  CASE
-                                                     WHEN TP.PROCEDUREID = 35 and RPD.groutingdailydetailid is not null THEN
-                                                     tp.barcode
-                                          ELSE
-                                           NULL
-                                                  END) > 0 THEN
-                                          1
-                                         ELSE
-                                          0
-                                       END END_RH
-                                      ,1 END_ALL
-                                      ,0 hgp
-                                      ,0 bzgp
-                                   from 
-                                            (SELECT tp.productiondataid
-                                                          ,tp.groutingdailydetailid
-                                                          ,MAX(pmax.productiondataid) AS maxproductiondataid
-                                                      FROM tp_pm_productiondata tp
-                                                      LEFT JOIN tp_pm_productiondata pmax
-                                                        ON pmax.groutingdailydetailid = tp.groutingdailydetailid
-                                                       AND pmax.productiondataid < tp.productiondataid
-                                                       and pmax.goodsleveltypeid IN (4, 5)
-                                                       AND pmax.procedureid IN (13, 35)
-                                                     WHERE  tp.procedureid = 15 AND tp.valueflag = '1'
-                                                       AND TP.createtime >= date'" + Convert.ToDateTime(context.Request["datebeginMaster"]).ToString("yyyy-MM-dd") + @"'
-                                           AND TP.createtime <=  date'" + Convert.ToDateTime(context.Request["dateendMaster"]).AddSeconds(1).ToString("yyyy-MM-dd") + @"' 
-                                            {strFactoryInspection}
-                                                     GROUP BY tp.productiondataid
-                                                             ,tp.groutingdailydetailid) maxp                                          
-                                             --当前包装入库
-                                             INNER JOIN tp_pm_productiondata pppr
-                                                ON pppr.productiondataid = maxp.productiondataid
-                                            --当前包装入库的质量登记
-                                             INNER JOIN tp_pm_productiondata tp
-                                                ON tp.productiondataid = maxp.maxproductiondataid
-                    --   去除复检的质量登记
-                    LEFT JOIN tp_pm_productiondata_semicheck semicheck ON semicheck.productiondataid = tp.productiondataid
-                                            
-                                        LEFT JOIN TP_PM_PRODUCTIONDATA RPD
-                                    ON RPD.BARCODE = tp.BARCODE
-                                    AND rpd.valueflag = '1'
-                                AND  semicheck.productiondataid is null
-                                    AND rpd.productiondataid < tp.productiondataid
-                                    and rpd.kilncarbatchno = tp.kilncarbatchno
-                                   AND RPD.Procedureid IN (20, 22, 23, 37, 41) 
-                            
-                                   -- 20250925 当前包装入库之后的时间段  是否有复检的条码  ,如果没有复检包装入库的条码、或 有复检包装入库的条码且合格
-                                  LEFT JOIN tp_pm_productiondata_semicheck semi
-                                    ON semi.barcode = tp.barcode
-                                  LEFT JOIN tp_pm_productiondata rpdsemi
-                                    ON rpdsemi.productiondataid = semi.productiondataid
-                                   AND rpdsemi.valueflag = '1'
-                                      -- 当前包装入库之后的时间段
-                                   AND rpdsemi.createtime > tp.createtime
-			                where 
-                            pppr.ProcedureID = 15  AND pppr.valueflag = '1'
-                            and pppr.createtime>= date'" + Convert.ToDateTime(context.Request["datebeginMaster"]).ToString("yyyy-MM-dd") + @"'  
-                            and pppr.createtime<= date'" + Convert.ToDateTime(context.Request["dateendMaster"]).AddSeconds(1).ToString("yyyy-MM-dd") + @"' 
-                            GROUP BY tp.groutingdailydetailid
+                                           AND rpd.procedureid IN (20, 22, 23, 37, 41 )
+                                   GROUP BY p.groutingdailydetailid,pdd.goodsleveltypeid ,pdd.PROCEDUREID  ,pdd.barcode  
 
                          UNION ALL
                           SELECT 4 FLAG

+ 1 - 1
wwwroot/mes/rpt/rpt008/rpt_index.html

@@ -84,7 +84,7 @@
             var row = $('#DataGridMaster').datagrid('getRows')[index];
             console.log(index, fields, value, row);
             if (row["楼号"] == null || row["产品名称"] == null || row["产品编码"] == null || row["产品型号"] == ""
-                || row["釉料"] == "" || row["商标"] == "" || row["楼号"] == "总计" || fields.toString().includes("合计")) {
+                || row["釉料"] == "" || row["商标"] == "" || row["楼号"] == "总计" || fields.toString().includes("合计") || value == 0) {
                 return;
             }
             if (fields.toString().includes("出窑数") || fields.toString().includes("合格数") || fields.toString().includes("包装数")

+ 29 - 259
wwwroot/mes/rpt/rpt008/rptnew_detail.ashx

@@ -3,8 +3,8 @@
 using System;
 using System.Web;
 using System.Web.SessionState;
-using System.Data; 
-using System.Collections.Generic; 
+using System.Data;
+using System.Collections.Generic;
 using Curtain.DataAccess;
 using DK.XuWei.WebMes;
 
@@ -12,8 +12,8 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
 {
     public void ProcessRequest(HttpContext context)
     {
-        context.Response.ContentType = "text/plain"; 
-        string fields = context.Request["fields"].ToString(); 
+        context.Response.ContentType = "text/plain";
+        string fields = context.Request["fields"].ToString();
         int index = Convert.ToInt32(context.Request["index"] + "");
         string gs = context.Request["gs"].ToString();
 
@@ -66,7 +66,7 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
 								   AND (G.LOGOID = @LOGOID@ OR @LOGOID@ IS NULL)
 								   AND (G.GLAZETYPEID = @GLAZETYPEID@ OR @GLAZETYPEID@ IS NULL)
 								   AND (M.GOODSMODEL = @GOODSMODEL@ OR @GOODSMODEL@ IS NULL)
-								   AND (M.GOODSNAME = @GOODSNAME@ OR @GOODSNAME@ IS NULL)   order by TP.Barcode"; 
+								   AND (M.GOODSNAME = @GOODSNAME@ OR @GOODSNAME@ IS NULL)   order by TP.Barcode";
                         break;
                     }
                 case "出窑数_重烧":
@@ -92,9 +92,10 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
 								   AND (G.LOGOID = @LOGOID@ OR @LOGOID@ IS NULL)
 								   AND (G.GLAZETYPEID = @GLAZETYPEID@ OR @GLAZETYPEID@ IS NULL)
 								   AND (M.GOODSMODEL = @GOODSMODEL@ OR @GOODSMODEL@ IS NULL)
-								   AND (M.GOODSNAME = @GOODSNAME@ OR @GOODSNAME@ IS NULL)  order by TP.Barcode "; 
+								   AND (M.GOODSNAME = @GOODSNAME@ OR @GOODSNAME@ IS NULL)  order by TP.Barcode ";
                         break;
                     }
+                case "包装数_本烧":
                 case "合格数_本烧":
                     {
                         sqlDetail = @" SELECT  DISTINCT '" + gs + @"' 产品编码,  pdd.Barcode  产品条码 
@@ -106,11 +107,13 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                                                 AND TP.checktime < @DATEEND@ 
                                          GROUP BY TP.GROUTINGDAILYDETAILID 
                                             ) P  inner JOIN tp_pm_productiondata pdd ON pdd.productiondataid = p.productiondataid
+--   去除复检的质量登记
+  LEFT JOIN tp_pm_productiondata_semicheck semicheck ON semicheck.productiondataid = p.productiondataid
                                    LEFT JOIN tp_pm_productiondata rpd
                                             ON rpd.groutingdailydetailid = p.groutingdailydetailid
-                                           AND rpd.productiondataid < p.productiondataid
-                                           and rpd.kilncarbatchno = pdd.kilncarbatchno
-                                           AND rpd.valueflag = '1' 
+                                           AND rpd.productiondataid < p.productiondataid 
+                                           and rpd.kilncarbatchno = pdd.kilncarbatchno   and pdd.checkflag = 3
+                                           AND rpd.valueflag = '1' AND semicheck.productiondataid IS NULL
                                               /*20  研磨 22  直接冷补 23  研磨后冷补(非回收) 37  堵漏气 41  刷洗不良*/
                                            AND rpd.procedureid IN (20, 22, 23, 37, 41) 
                                   LEFT JOIN TP_PM_GROUTINGDAILYDETAIL G
@@ -130,9 +133,10 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
 								   AND (G.LOGOID = @LOGOID@ OR @LOGOID@ IS NULL)
 								   AND (G.GLAZETYPEID = @GLAZETYPEID@ OR @GLAZETYPEID@ IS NULL)
 								   AND (M.GOODSMODEL = @GOODSMODEL@ OR @GOODSMODEL@ IS NULL)
-								   AND (M.GOODSNAME = @GOODSNAME@ OR @GOODSNAME@ IS NULL)  order by pdd.Barcode "; 
+								   AND (M.GOODSNAME = @GOODSNAME@ OR @GOODSNAME@ IS NULL)  order by pdd.Barcode ";
                         break;
                     }
+                case "包装数_重烧":
                 case "合格数_重烧":
                     {
                         sqlDetail = @" SELECT  DISTINCT '" + gs + @"' 产品编码,  pdd.Barcode  产品条码 
@@ -148,7 +152,7 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                                             ON rpd.groutingdailydetailid = p.groutingdailydetailid
                                            AND rpd.productiondataid < p.productiondataid
                                            and rpd.kilncarbatchno = pdd.kilncarbatchno
-                                           AND rpd.valueflag = '1' 
+                                           AND rpd.valueflag = '1'   and pdd.checkflag = 3
                                               /*20  研磨 22  直接冷补 23  研磨后冷补(非回收) 37  堵漏气 41  刷洗不良*/
                                            AND rpd.procedureid IN (20, 22, 23, 37, 41) 
                                   LEFT JOIN TP_PM_GROUTINGDAILYDETAIL G
@@ -168,9 +172,10 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
 								   AND (G.LOGOID = @LOGOID@ OR @LOGOID@ IS NULL)
 								   AND (G.GLAZETYPEID = @GLAZETYPEID@ OR @GLAZETYPEID@ IS NULL)
 								   AND (M.GOODSMODEL = @GOODSMODEL@ OR @GOODSMODEL@ IS NULL)
-								   AND (M.GOODSNAME = @GOODSNAME@ OR @GOODSNAME@ IS NULL) order by pdd.Barcode  "; 
+								   AND (M.GOODSNAME = @GOODSNAME@ OR @GOODSNAME@ IS NULL) order by pdd.Barcode  ";
                         break;
                     }
+                 case "包装数_重烧回收":
                 case "合格数_重烧回收":
                     {
                         sqlDetail = @" SELECT  DISTINCT '" + gs + @"' 产品编码,  pdd.Barcode  产品条码 
@@ -187,10 +192,12 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                                    LEFT JOIN tp_pm_productiondata rpd
                                             ON rpd.groutingdailydetailid = p.groutingdailydetailid
                                            AND rpd.productiondataid < p.productiondataid 
-  AND (( rpd.procedureid IN (20, 22, 23, 37, 41 ) and rpd.kilncarbatchno = pdd.kilncarbatchno  )OR  (  rpd.procedureid=35 and  rpd.procedureid = pdd.procedureid))
+and rpd.kilncarbatchno = pdd.kilncarbatchno  and pdd.checkflag = 3
+ -- AND (( rpd.procedureid IN (20, 22, 23, 37, 41 ) and rpd.kilncarbatchno = pdd.kilncarbatchno  )
+                     --   OR  (  rpd.procedureid=35 and  rpd.procedureid = pdd.procedureid))
                                            AND rpd.valueflag = '1'    AND  semicheck.productiondataid is null 
                                               /*20  研磨 22  直接冷补 23  研磨后冷补(非回收) 37  堵漏气 41  刷洗不良*/
-                                           AND rpd.procedureid IN (20, 22, 23, 37, 41,35) 
+                                           AND rpd.procedureid IN (20, 22, 23, 37, 41 ) 
                                   LEFT JOIN TP_PM_GROUTINGDAILYDETAIL G
 									ON pdd.GROUTINGDAILYDETAILID = G.GROUTINGDAILYDETAILID
 								  LEFT JOIN TP_PC_GROUTINGLINE L
@@ -208,9 +215,10 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
 								   AND (G.LOGOID = @LOGOID@ OR @LOGOID@ IS NULL)
 								   AND (G.GLAZETYPEID = @GLAZETYPEID@ OR @GLAZETYPEID@ IS NULL)
 								   AND (M.GOODSMODEL = @GOODSMODEL@ OR @GOODSMODEL@ IS NULL)
-								   AND (M.GOODSNAME = @GOODSNAME@ OR @GOODSNAME@ IS NULL)  order by pdd.Barcode "; 
+								   AND (M.GOODSNAME = @GOODSNAME@ OR @GOODSNAME@ IS NULL)  order by pdd.Barcode ";
                         break;
                     }
+                         case "包装数_本烧回收":
                 case "合格数_本烧回收":
                     {
                         sqlDetail = @" SELECT  DISTINCT '" + gs + @"' 产品编码,  pdd.Barcode  产品条码 
@@ -227,7 +235,7 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                                    LEFT JOIN tp_pm_productiondata rpd
                                             ON rpd.groutingdailydetailid = p.groutingdailydetailid
                                            AND rpd.productiondataid < p.productiondataid
-                                           and rpd.kilncarbatchno = pdd.kilncarbatchno
+                                           and rpd.kilncarbatchno = pdd.kilncarbatchno  and pdd.checkflag = 3
                                            AND rpd.valueflag = '1'    AND  semicheck.productiondataid is null
                                               /*20  研磨 22  直接冷补 23  研磨后冷补(非回收) 37  堵漏气 41  刷洗不良*/
                                            AND rpd.procedureid IN (20, 22, 23, 37, 41) 
@@ -248,7 +256,7 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
 								   AND (G.LOGOID = @LOGOID@ OR @LOGOID@ IS NULL)
 								   AND (G.GLAZETYPEID = @GLAZETYPEID@ OR @GLAZETYPEID@ IS NULL)
 								   AND (M.GOODSMODEL = @GOODSMODEL@ OR @GOODSMODEL@ IS NULL)
-								   AND (M.GOODSNAME = @GOODSNAME@ OR @GOODSNAME@ IS NULL)  order by pdd.Barcode  "; 
+								   AND (M.GOODSNAME = @GOODSNAME@ OR @GOODSNAME@ IS NULL)  order by pdd.Barcode  ";
                         break;
                     }
                 case "合格数_改判":
@@ -300,251 +308,13 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                                    and  not exists ( select 1 from tp_pm_productiondata rpdd where  rpdd.GROUTINGDAILYDETAILID = p.GROUTINGDAILYDETAILID
                                        AND rpdd.procedureid IN (20, 22, 23, 37, 35) AND rpdd.productiondataid < p.productiondataid
                                        AND rpd.productiondataid < rpdd.productiondataid AND rpdd.valueflag = '1')  order by rpd.Barcode  ";
- 
-                        break;
-                    }
-
-                case "包装数_本烧":
-                    {
-                        sqlDetail = @" SELECT  DISTINCT '" + gs + @"' 产品编码,  tp.Barcode  产品条码 
-                                 from (SELECT tp.productiondataid
-              ,tp.groutingdailydetailid
-              ,MAX(pmax.productiondataid) AS maxproductiondataid
-          FROM tp_pm_productiondata tp
-          LEFT JOIN tp_pm_productiondata pmax
-            ON pmax.groutingdailydetailid = tp.groutingdailydetailid
-           AND pmax.productiondataid < tp.productiondataid
-           and pmax.goodsleveltypeid IN (4, 5)
-           AND pmax.procedureid IN (13, 35)
-         WHERE  tp.procedureid = 15  AND tp.valueflag = '1'
-           AND tp.checktime >=  @DATEBEGIN@
-           AND tp.checktime < @DATEEND@    
-         GROUP BY tp.productiondataid
-                 ,tp.groutingdailydetailid) maxp
---当前包装入库
- INNER JOIN tp_pm_productiondata pppr
-    ON pppr.productiondataid = maxp.productiondataid
---当前包装入库的质量登记
- INNER JOIN tp_pm_productiondata tp
-    ON tp.productiondataid = maxp.maxproductiondataid
 
-                                        LEFT JOIN TP_PM_PRODUCTIONDATA RPD
-                                    ON RPD.BARCODE = tp.BARCODE
-                                    AND rpd.valueflag = '1'
-                                    and rpd.kilncarbatchno = tp.kilncarbatchno
-                                   AND RPD.Procedureid IN (20, 22, 23, 37, 41) 
-                                -- 20250925 当前包装入库之后的时间段  是否有复检的条码  ,如果没有复检包装入库的条码、或 有复检包装入库的条码且合格
-                                  LEFT JOIN tp_pm_productiondata_semicheck semi
-                                    ON semi.barcode = tp.barcode
-                                  LEFT JOIN tp_pm_productiondata rpdsemi
-                                    ON rpdsemi.productiondataid = semi.productiondataid
-                                   AND rpdsemi.valueflag = '1'
-                                      -- 当前包装入库之后的时间段
-                                   AND rpdsemi.createtime > tp.createtime
-                                LEFT JOIN TP_PM_GROUTINGDAILYDETAIL G
-									ON tp.GROUTINGDAILYDETAILID = G.GROUTINGDAILYDETAILID
-								  LEFT JOIN TP_PC_GROUTINGLINE L
-									ON G.GROUTINGLINEID = L.GROUTINGLINEID
-								  LEFT JOIN TP_MST_DATADICTIONARY D
-									ON G.GLAZETYPEID = D.DICTIONARYID
-								  LEFT JOIN TP_MST_LOGO O
-									ON G.LOGOID = O.LOGOID
-								  LEFT JOIN TP_MST_GOODS M
-									ON G.GOODSID = M.GOODSID
-			                where  pppr.ProcedureID = 15 AND pppr.valueflag = '1'
-                            AND pppr.checktime >= @DATEBEGIN@
-                            AND pppr.checktime < @DATEEND@                            
-							AND tp.GOODSCODE IN( '" + gs + @"' ) 
-                            AND TP.PROCEDUREID = 13 and RPD.groutingdailydetailid is  null
-                            AND TP.checktime >= @DATEBEGIN@
-                            AND TP.checktime < @DATEEND@   
-                            AND ( rpdsemi.goodsleveltypeid IS NULL OR rpdsemi.goodsleveltypeid IN (4, 5))
-							AND  L.BUILDINGNO {BUILDINGNO}
-							AND (G.LOGOID = @LOGOID@ OR @LOGOID@ IS NULL)
-							AND (G.GLAZETYPEID = @GLAZETYPEID@ OR @GLAZETYPEID@ IS NULL)
-							AND (M.GOODSMODEL = @GOODSMODEL@ OR @GOODSMODEL@ IS NULL)
-							AND (M.GOODSNAME = @GOODSNAME@ OR @GOODSNAME@ IS NULL) order by TP.Barcode  "; 
                         break;
                     }
-                case "包装数_重烧":
-                    {
-                        sqlDetail = @" SELECT  DISTINCT '" + gs + @"' 产品编码,  tp.Barcode  产品条码 
-                                 from (SELECT tp.productiondataid
-              ,tp.groutingdailydetailid
-              ,MAX(pmax.productiondataid) AS maxproductiondataid
-          FROM tp_pm_productiondata tp
-          LEFT JOIN tp_pm_productiondata pmax
-            ON pmax.groutingdailydetailid = tp.groutingdailydetailid
-           AND pmax.productiondataid < tp.productiondataid
-           and pmax.goodsleveltypeid IN (4, 5)
-           AND pmax.procedureid IN (13, 35)
-         WHERE  tp.procedureid = 15  AND tp.valueflag = '1'
-           AND tp.checktime >=  @DATEBEGIN@
-           AND tp.checktime < @DATEEND@    
-         GROUP BY tp.productiondataid
-                 ,tp.groutingdailydetailid) maxp
---当前包装入库
- INNER JOIN tp_pm_productiondata pppr
-    ON pppr.productiondataid = maxp.productiondataid
---当前包装入库的质量登记
- INNER JOIN tp_pm_productiondata tp
-    ON tp.productiondataid = maxp.maxproductiondataid
 
-                                        LEFT JOIN TP_PM_PRODUCTIONDATA RPD
-                                    ON RPD.BARCODE = tp.BARCODE
-                                    AND rpd.valueflag = '1'
-                                    and rpd.kilncarbatchno = tp.kilncarbatchno
-                                   AND RPD.Procedureid IN (20, 22, 23, 37, 41) 
-                                -- 20250925 当前包装入库之后的时间段  是否有复检的条码  ,如果没有复检包装入库的条码、或 有复检包装入库的条码且合格
-                                  LEFT JOIN tp_pm_productiondata_semicheck semi
-                                    ON semi.barcode = tp.barcode
-                                  LEFT JOIN tp_pm_productiondata rpdsemi
-                                    ON rpdsemi.productiondataid = semi.productiondataid
-                                   AND rpdsemi.valueflag = '1'
-                                      -- 当前包装入库之后的时间段
-                                   AND rpdsemi.createtime > tp.createtime
-                                LEFT JOIN TP_PM_GROUTINGDAILYDETAIL G
-									ON tp.GROUTINGDAILYDETAILID = G.GROUTINGDAILYDETAILID
-								  LEFT JOIN TP_PC_GROUTINGLINE L
-									ON G.GROUTINGLINEID = L.GROUTINGLINEID
-								  LEFT JOIN TP_MST_DATADICTIONARY D
-									ON G.GLAZETYPEID = D.DICTIONARYID
-								  LEFT JOIN TP_MST_LOGO O
-									ON G.LOGOID = O.LOGOID
-								  LEFT JOIN TP_MST_GOODS M
-									ON G.GOODSID = M.GOODSID
-			                where  pppr.ProcedureID = 15 AND pppr.valueflag = '1'
-                            AND pppr.checktime >= @DATEBEGIN@
-                            AND pppr.checktime < @DATEEND@                            
-							AND tp.GOODSCODE IN( '" + gs + @"' )  
-                            AND TP.PROCEDUREID = 35 and RPD.groutingdailydetailid is  null
-                            AND TP.checktime >= @DATEBEGIN@
-                            AND TP.checktime < @DATEEND@   
-                            AND ( rpdsemi.goodsleveltypeid IS NULL OR  rpdsemi.goodsleveltypeid IN (4, 5))                            
-							AND L.BUILDINGNO {BUILDINGNO}
-							AND (G.LOGOID = @LOGOID@ OR @LOGOID@ IS NULL)
-							AND (G.GLAZETYPEID = @GLAZETYPEID@ OR @GLAZETYPEID@ IS NULL)
-							AND (M.GOODSMODEL = @GOODSMODEL@ OR @GOODSMODEL@ IS NULL)
-							AND (M.GOODSNAME = @GOODSNAME@ OR @GOODSNAME@ IS NULL)  order by tp.Barcode "; 
-                        break;
-                    }
-                case "包装数_重烧回收":
-                    {
-                         sqlDetail = @" SELECT  DISTINCT '" + gs + @"' 产品编码,  tp.Barcode  产品条码 
-                                  from (SELECT tp.productiondataid
-              ,tp.groutingdailydetailid
-              ,MAX(pmax.productiondataid) AS maxproductiondataid
-          FROM tp_pm_productiondata tp
-          LEFT JOIN tp_pm_productiondata pmax
-            ON pmax.groutingdailydetailid = tp.groutingdailydetailid
-           AND pmax.productiondataid < tp.productiondataid
-           and pmax.goodsleveltypeid IN (4, 5)
-           AND pmax.procedureid IN (13, 35)
-         WHERE  tp.procedureid = 15  AND tp.valueflag = '1'
-           AND tp.createtime >=  @DATEBEGIN@
-           AND tp.createtime < @DATEEND@    
-         GROUP BY tp.productiondataid
-                 ,tp.groutingdailydetailid) maxp
---当前包装入库
- INNER JOIN tp_pm_productiondata pppr
-    ON pppr.productiondataid = maxp.productiondataid
---当前包装入库的质量登记
- INNER JOIN tp_pm_productiondata tp
-    ON tp.productiondataid = maxp.maxproductiondataid
-                                        LEFT JOIN TP_PM_PRODUCTIONDATA RPD
-                                    ON RPD.BARCODE = tp.BARCODE
-                                    AND rpd.valueflag = '1'
-                                    and rpd.kilncarbatchno = tp.kilncarbatchno
-                                   AND RPD.Procedureid IN (20, 22, 23, 37, 41) 
-                                -- 20250925 当前包装入库之后的时间段  是否有复检的条码  ,如果没有复检包装入库的条码、或 有复检包装入库的条码且合格
-                                  LEFT JOIN tp_pm_productiondata_semicheck semi
-                                    ON semi.barcode = tp.barcode
-                                  LEFT JOIN tp_pm_productiondata rpdsemi
-                                    ON rpdsemi.productiondataid = semi.productiondataid
-                                   AND rpdsemi.valueflag = '1'
-                                      -- 当前包装入库之后的时间段
-                                   AND rpdsemi.createtime > tp.createtime
-                                LEFT JOIN TP_PM_GROUTINGDAILYDETAIL G
-									ON tp.GROUTINGDAILYDETAILID = G.GROUTINGDAILYDETAILID
-								  LEFT JOIN TP_PC_GROUTINGLINE L
-									ON G.GROUTINGLINEID = L.GROUTINGLINEID
-								  LEFT JOIN TP_MST_DATADICTIONARY D
-									ON G.GLAZETYPEID = D.DICTIONARYID
-								  LEFT JOIN TP_MST_LOGO O
-									ON G.LOGOID = O.LOGOID
-								  LEFT JOIN TP_MST_GOODS M
-									ON G.GOODSID = M.GOODSID
-			                where  pppr.ProcedureID = 15 AND pppr.valueflag = '1'
-                            AND pppr.createtime >= @DATEBEGIN@
-                            AND pppr.createtime < @DATEEND@                                       
-							AND tp.GOODSCODE IN( '" + gs + @"' ) 
-                            and TP.PROCEDUREID = 35 and RPD.groutingdailydetailid is not null   
-							AND  L.BUILDINGNO {BUILDINGNO}
-							AND (G.LOGOID = @LOGOID@ OR @LOGOID@ IS NULL)
-							AND (G.GLAZETYPEID = @GLAZETYPEID@ OR @GLAZETYPEID@ IS NULL)
-							AND (M.GOODSMODEL = @GOODSMODEL@ OR @GOODSMODEL@ IS NULL)
-							AND (M.GOODSNAME = @GOODSNAME@ OR @GOODSNAME@ IS NULL)  order by tp.Barcode "; 
-                        break;
-                    }
-                case "包装数_本烧回收":
-                    {
-                         sqlDetail = @" SELECT  DISTINCT '" + gs + @"' 产品编码,  tp.Barcode  产品条码 
-                                  from (SELECT tp.productiondataid
-              ,tp.groutingdailydetailid
-              ,MAX(pmax.productiondataid) AS maxproductiondataid
-          FROM tp_pm_productiondata tp
-          LEFT JOIN tp_pm_productiondata pmax
-            ON pmax.groutingdailydetailid = tp.groutingdailydetailid
-           AND pmax.productiondataid < tp.productiondataid
-           and pmax.goodsleveltypeid IN (4, 5)
-           AND pmax.procedureid IN (13, 35)
-         WHERE  tp.procedureid = 15  AND tp.valueflag = '1'
-           AND tp.createtime >=  @DATEBEGIN@
-           AND tp.createtime < @DATEEND@    
-         GROUP BY tp.productiondataid
-                 ,tp.groutingdailydetailid) maxp
---当前包装入库
- INNER JOIN tp_pm_productiondata pppr
-    ON pppr.productiondataid = maxp.productiondataid
---当前包装入库的质量登记
- INNER JOIN tp_pm_productiondata tp
-    ON tp.productiondataid = maxp.maxproductiondataid
-                                        LEFT JOIN TP_PM_PRODUCTIONDATA RPD
-                                    ON RPD.BARCODE = tp.BARCODE
-                                    AND rpd.valueflag = '1'
-                                    and rpd.kilncarbatchno = tp.kilncarbatchno
-                                   AND RPD.Procedureid IN (20, 22, 23, 37, 41) 
-                                -- 20250925 当前包装入库之后的时间段  是否有复检的条码  ,如果没有复检包装入库的条码、或 有复检包装入库的条码且合格
-                                  LEFT JOIN tp_pm_productiondata_semicheck semi
-                                    ON semi.barcode = tp.barcode
-                                  LEFT JOIN tp_pm_productiondata rpdsemi
-                                    ON rpdsemi.productiondataid = semi.productiondataid
-                                   AND rpdsemi.valueflag = '1'
-                                      -- 当前包装入库之后的时间段
-                                   AND rpdsemi.createtime > tp.createtime
-                                LEFT JOIN TP_PM_GROUTINGDAILYDETAIL G
-									ON tp.GROUTINGDAILYDETAILID = G.GROUTINGDAILYDETAILID
-								  LEFT JOIN TP_PC_GROUTINGLINE L
-									ON G.GROUTINGLINEID = L.GROUTINGLINEID
-								  LEFT JOIN TP_MST_DATADICTIONARY D
-									ON G.GLAZETYPEID = D.DICTIONARYID
-								  LEFT JOIN TP_MST_LOGO O
-									ON G.LOGOID = O.LOGOID
-								  LEFT JOIN TP_MST_GOODS M
-									ON G.GOODSID = M.GOODSID
-			                where   pppr.ProcedureID = 15 AND pppr.valueflag = '1'
-                            AND pppr.createtime >= @DATEBEGIN@
-                            AND pppr.createtime < @DATEEND@                                          
-							AND tp.GOODSCODE IN( '" + gs + @"' ) 
-                            and TP.PROCEDUREID = 13 and RPD.groutingdailydetailid is not null   
-							AND  L.BUILDINGNO {BUILDINGNO}
-							AND (G.LOGOID = @LOGOID@ OR @LOGOID@ IS NULL)
-							AND (G.GLAZETYPEID = @GLAZETYPEID@ OR @GLAZETYPEID@ IS NULL)
-							AND (M.GOODSMODEL = @GOODSMODEL@ OR @GOODSMODEL@ IS NULL)
-							AND (M.GOODSNAME = @GOODSNAME@ OR @GOODSNAME@ IS NULL)  order by tp.Barcode ";
-     
-                        break;
-                    }
+                 
+               
+                    
                 case "包装数_改判":
                     {
                         sqlDetail = @" SELECT  DISTINCT '" + gs + @"' 产品编码,  TP_PM_ProductionData.Barcode  产品条码 
@@ -601,7 +371,7 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
 							        AND (G.GLAZETYPEID = @GLAZETYPEID@ OR @GLAZETYPEID@ IS NULL)
 							        AND (M.GOODSMODEL = @GOODSMODEL@ OR @GOODSMODEL@ IS NULL)
 							        AND (M.GOODSNAME = @GOODSNAME@ OR @GOODSNAME@ IS NULL) order by TP_PM_ProductionData.Barcode  ";
-                   
+
                         break;
                     }
                 default:

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

@@ -130,7 +130,7 @@
                 title: '',
                 idField: 'SID',
                 queryParams: queryParams,
-                url: 'rptnew_detail_total.ashx?fields=' + params["fields"] + "&index=" + params["index"] + "&gs=" + params["gs"],
+                url: 'rptnew_detail_total.ashx?fields=' + params["fields"] + "&index=" + params["index"] + "&isNotcheck=" + params["isNotcheck"] + "&gs=" + params["gs"],
                 fixWidth: 140,
                 mergeWidth: 80,
                 pagination: false,

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

@@ -244,6 +244,11 @@
 
         // 点击某行某列
         function dgDblclickcelldetail(index, fields, value) {
+            var isNotcheck = 0;
+            if ($('#chkNotHave').checkbox('options').checked) {
+                isNotcheck = 1;
+            }
+
             var width = window.screen.width;
             var height = $(document).height();
             var row = $('#DataGridMasterGrid').datagrid('getRows')[index];
@@ -256,9 +261,9 @@
                     || (fields.toString().includes("_") && !fields.toString().includes("合计")))) {
                     $('#DataGridMasterGrid').datagridDialog({
                         title: fields + '合计',
-                        width: width,
+                        width: width/2,
                         height: height,
-                        url: 'rpt_index_detail_total.html?fields=' + fields + "&index=" + index + "&gs=" + row["产品编码"]
+                        url: 'rpt_index_detail_total.html?fields=' + fields + "&index=" + index + "&isNotcheck=" + isNotcheck + "&gs=" + row["产品编码"]
                     });
                 } 
                 return;

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

@@ -348,7 +348,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 							 GROUP BY PD.GOODSID,PD.BARCODE ,PD.GROUTINGDAILYDETAILID 
 							) PD  INNER JOIN TP_PM_PRODUCTIONDATA PDD ON PDD.PRODUCTIONDATAID = PD.PRODUCTIONDATAID 
 			                LEFT JOIN TP_PM_PRODUCTIONDATA PMAX ON PMAX.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID 
-							 and pmax.KILNCARBATCHNO= PDD.KILNCARBATCHNO	
+							 and pmax.KILNCARBATCHNO= PDD.KILNCARBATCHNO	  and pdd.checkflag = 3
 			                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)		            
@@ -391,7 +391,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 				  --   去除复检的质量登记
                   LEFT JOIN tp_pm_productiondata_semicheck semicheck ON semicheck.productiondataid = pd.productiondataid   
 
-			                LEFT JOIN TP_PM_PRODUCTIONDATA PMAX ON PMAX.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID  and pmax.KILNCARBATCHNO= PDD.KILNCARBATCHNO AND  semicheck.productiondataid is null 
+			                LEFT JOIN TP_PM_PRODUCTIONDATA PMAX ON PMAX.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID  and pmax.KILNCARBATCHNO= PDD.KILNCARBATCHNO AND  semicheck.productiondataid is null   and pdd.checkflag = 3 
 			                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)				            
@@ -550,7 +550,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 					--   去除复检的质量登记
                   LEFT JOIN tp_pm_productiondata_semicheck semicheck ON semicheck.productiondataid = pd.productiondataid
 										LEFT JOIN TP_PM_PRODUCTIONDATA PMAX ON PMAX.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID 
-										AND PMAX.PRODUCTIONDATAID < PD.PRODUCTIONDATAID AND PMAX.VALUEFLAG = '1' AND PMAX.PROCEDUREMODEL = '1'  and pmax.KILNCARBATCHNO= PDD.KILNCARBATCHNO	AND  semicheck.productiondataid is null 
+										AND PMAX.PRODUCTIONDATAID < PD.PRODUCTIONDATAID AND PMAX.VALUEFLAG = '1' AND PMAX.PROCEDUREMODEL = '1'  and pmax.KILNCARBATCHNO= PDD.KILNCARBATCHNO	AND  semicheck.productiondataid is null   and pdd.checkflag = 3
 										/*20  研磨 22  直接冷补 23  研磨后冷补(非回收) 37  堵漏气 41  刷洗不良*/
 										AND PMAX.PROCEDUREID IN (20, 22, 23, 37, 41)									  
 			             
@@ -589,7 +589,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 					--   去除复检的质量登记
                   LEFT JOIN tp_pm_productiondata_semicheck semicheck ON semicheck.productiondataid = pd.productiondataid
 										LEFT JOIN TP_PM_PRODUCTIONDATA PMAX ON PMAX.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID 
-										AND PMAX.PRODUCTIONDATAID < PD.PRODUCTIONDATAID AND PMAX.VALUEFLAG = '1' AND PMAX.PROCEDUREMODEL = '1' and pmax.KILNCARBATCHNO= PDD.KILNCARBATCHNO		AND  semicheck.productiondataid is null 
+										AND PMAX.PRODUCTIONDATAID < PD.PRODUCTIONDATAID AND PMAX.VALUEFLAG = '1' AND PMAX.PROCEDUREMODEL = '1' and pmax.KILNCARBATCHNO= PDD.KILNCARBATCHNO		AND  semicheck.productiondataid is null  and pdd.checkflag = 3
 										/*20  研磨 22  直接冷补 23  研磨后冷补(非回收) 37  堵漏气 41  刷洗不良*/
 										AND PMAX.PROCEDUREID IN (20, 22, 23, 37, 41) 
 			             
@@ -686,7 +686,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 											ON PMAX.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID
 										   AND PMAX.PRODUCTIONDATAID < PD.PRODUCTIONDATAID
 											and pmax.KILNCARBATCHNO= pd.KILNCARBATCHNO
-										   AND PMAX.VALUEFLAG = '1'
+										   AND PMAX.VALUEFLAG = '1'  and pd.checkflag = 3
 										   AND PMAX.PROCEDUREMODEL = '1'
 											  /*20  研磨 22  直接冷补 23  研磨后冷补(非回收) 37  堵漏气 41  刷洗不良*/
 										   AND PMAX.PROCEDUREID IN (20, 22, 23, 37, 41)
@@ -853,7 +853,9 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 					--   去除复检的质量登记
                   LEFT JOIN tp_pm_productiondata_semicheck semicheck ON semicheck.productiondataid = pd.productiondataid
 										LEFT JOIN TP_PM_PRODUCTIONDATA PMAX ON PMAX.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID 
-										AND PMAX.PRODUCTIONDATAID < PD.PRODUCTIONDATAID AND PMAX.VALUEFLAG = '1' AND (pmax.kilncarbatchno = PDD.kilncarbatchno OR pmax.procedureid = PDD.procedureid) AND  semicheck.productiondataid is null 
+										AND PMAX.PRODUCTIONDATAID < PD.PRODUCTIONDATAID AND PMAX.VALUEFLAG = '1' 									   
+    AND (( pmax.procedureid IN (20, 22, 23, 37, 41 ) and pmax.kilncarbatchno = pdd.kilncarbatchno   and pdd.checkflag = 3 )  OR ( pmax.procedureid=35 and  pmax.procedureid = pdd.procedureid))
+									 AND  semicheck.productiondataid is null  
 										/* 20  研磨 22  直接冷补 23  研磨后冷补(非回收) 37  堵漏气 41  刷洗不良 */
 										AND PMAX.PROCEDUREID IN (20, 22, 23, 37, 41, 35)
 										 		             
@@ -893,7 +895,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 					--   去除复检的质量登记
                   LEFT JOIN tp_pm_productiondata_semicheck semicheck ON semicheck.productiondataid = pd.productiondataid
 										LEFT JOIN TP_PM_PRODUCTIONDATA PMAX ON PMAX.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID 
-										AND PMAX.PRODUCTIONDATAID < PD.PRODUCTIONDATAID AND PMAX.VALUEFLAG = '1' AND PMAX.PROCEDUREMODEL = '1' and pmax.KILNCARBATCHNO= PDD.KILNCARBATCHNO  AND  semicheck.productiondataid is null 
+										AND PMAX.PRODUCTIONDATAID < PD.PRODUCTIONDATAID AND PMAX.VALUEFLAG = '1' AND PMAX.PROCEDUREMODEL = '1' and pmax.KILNCARBATCHNO= PDD.KILNCARBATCHNO  AND  semicheck.productiondataid is null   and pdd.checkflag = 3
 										/*20  研磨 22  直接冷补 23  研磨后冷补(非回收) 37  堵漏气 41  刷洗不良*/
 										AND PMAX.PROCEDUREID IN (20, 22, 23, 37, 41)			             
 									GROUP BY
@@ -996,6 +998,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 											ON PMAX.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID
 										   AND PMAX.PRODUCTIONDATAID < PD.PRODUCTIONDATAID
 											 and pmax.KILNCARBATCHNO= pd.KILNCARBATCHNO
+ and pd.checkflag = 3
 										   AND PMAX.VALUEFLAG = '1'
 										   AND PMAX.PROCEDUREMODEL = '1'
 											  /*20  研磨 22  直接冷补 23  研磨后冷补(非回收) 37  堵漏气 41  刷洗不良*/
@@ -1027,7 +1030,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 											ON PMAX.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID
 										   AND PMAX.PRODUCTIONDATAID < PD.PRODUCTIONDATAID
 											 and pmax.KILNCARBATCHNO= pd.KILNCARBATCHNO
-										   AND PMAX.VALUEFLAG = '1'
+										   AND PMAX.VALUEFLAG = '1'  and pd.checkflag = 3
 										   AND PMAX.PROCEDUREMODEL = '1'
 											  /*20  研磨 22  直接冷补 23  研磨后冷补(非回收) 37  堵漏气 41  刷洗不良*/
 										   AND PMAX.PROCEDUREID IN (20, 22, 23, 37, 41)

+ 16 - 15
wwwroot/mes/rpt/rpt014/rptnew_detail.ashx

@@ -126,7 +126,7 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
 							 GROUP BY PD.GOODSID ,PD.BARCODE,PD.GROUTINGDAILYDETAILID 
 							) PD  INNER JOIN TP_PM_PRODUCTIONDATA PDD ON PDD.PRODUCTIONDATAID = PD.PRODUCTIONDATAID 
 			                LEFT JOIN TP_PM_PRODUCTIONDATA PMAX ON PMAX.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID 
-                            and pmax.KILNCARBATCHNO= PDD.KILNCARBATCHNO
+                            and pmax.KILNCARBATCHNO= PDD.KILNCARBATCHNO   and pdd.checkflag = 3
 			                AND PMAX.PRODUCTIONDATAID < PD.PRODUCTIONDATAID AND PMAX.VALUEFLAG = '1' 
 				            /*20  研磨 22  直接冷补 23  研磨后冷补(非回收) 37  堵漏气 41  刷洗不良*/
 				            AND PMAX.PROCEDUREID IN (20, 22, 23, 37, 41)			             
@@ -198,8 +198,8 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                             LEFT JOIN tp_pm_productiondata_semicheck semicheck ON semicheck.productiondataid = pd.productiondataid
 			                LEFT JOIN TP_PM_PRODUCTIONDATA PMAX ON PMAX.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID 
 			                AND PMAX.PRODUCTIONDATAID < PD.PRODUCTIONDATAID AND PMAX.VALUEFLAG = '1'   AND semicheck.productiondataid is null
-                            " + (proc == "999" ? "AND (pmax.kilncarbatchno = PDD.kilncarbatchno OR pmax.procedureid = PDD.procedureid)"
-                                            : "AND (pmax.kilncarbatchno = PDD.kilncarbatchno )")
+                            " + (proc == "999" ? "  AND (( pmax.procedureid IN (20, 22, 23, 37, 41 ) and pmax.kilncarbatchno = pdd.kilncarbatchno   and pdd.checkflag = 3 )  OR ( pmax.procedureid=35 and  pmax.procedureid = pdd.procedureid)) "
+                                            : "AND (pmax.kilncarbatchno = PDD.kilncarbatchno   and pdd.checkflag = 3)")
                            /*20  研磨 22  直接冷补 23  研磨后冷补(非回收) 37  堵漏气 41  刷洗不良*/
                            + @" AND PMAX.PROCEDUREID IN  " + lb + @"				             
 			             
@@ -256,8 +256,8 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                             LEFT JOIN tp_pm_productiondata_semicheck semicheck ON semicheck.productiondataid = pd.productiondataid
 			                LEFT JOIN TP_PM_PRODUCTIONDATA PMAX ON PMAX.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID 
 			                AND PMAX.PRODUCTIONDATAID < PD.PRODUCTIONDATAID AND PMAX.VALUEFLAG = '1'    AND semicheck.productiondataid is null 
-                             " + (proc == "999" ? "AND (pmax.kilncarbatchno = PDD.kilncarbatchno OR pmax.procedureid = PDD.procedureid)"
-                                            : "AND (pmax.kilncarbatchno = PDD.kilncarbatchno )")
+                             " + (proc == "999" ? "  AND (( pmax.procedureid IN (20, 22, 23, 37, 41 ) and pmax.kilncarbatchno = pdd.kilncarbatchno   and pdd.checkflag = 3 )  OR ( pmax.procedureid=35 and  pmax.procedureid = pdd.procedureid)) "
+                                            : "AND (pmax.kilncarbatchno = PDD.kilncarbatchno   and pdd.checkflag = 3  )")
                             /*20  研磨 22  直接冷补 23  研磨后冷补(非回收) 37  堵漏气 41  刷洗不良*/
                             + @" AND PMAX.PROCEDUREID IN  " + lb + @"			            
 			             
@@ -306,7 +306,7 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                             ON pmax.groutingdailydetailid = pd.groutingdailydetailid
                            AND pmax.productiondataid < pd.productiondataid
                             and pmax.KILNCARBATCHNO= PDD.KILNCARBATCHNO
-                           AND pmax.valueflag = '1' 
+                           AND pmax.valueflag = '1'   and pdd.checkflag = 3
                               /*20  研磨 22  直接冷补 23  研磨后冷补(非回收) 37  堵漏气 41  刷洗不良*/
                            AND pmax.procedureid IN (20, 22, 23, 37, 41)
                           
@@ -345,7 +345,7 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                           INNER JOIN tp_pm_productiondata pmax
                             ON pmax.groutingdailydetailid = pd.groutingdailydetailid
                            AND pmax.productiondataid < pd.productiondataid 
-                           AND pmax.valueflag = '1' 
+                           AND pmax.valueflag = '1'   
                               /*20  研磨 22  直接冷补 23  研磨后冷补(非回收) 37  堵漏气 41  刷洗不良*/
                            AND pmax.procedureid IN ( {PROCEDUREID} )
                           
@@ -384,8 +384,8 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                           INNER JOIN tp_pm_productiondata pmax
                             ON pmax.groutingdailydetailid = pd.groutingdailydetailid
                            AND pmax.productiondataid < pd.productiondataid 
-                           AND pmax.valueflag = '1' 
-                           and pmax.KILNCARBATCHNO= PDD.KILNCARBATCHNO
+                           AND pmax.valueflag = '1'  
+                           and pmax.KILNCARBATCHNO= PDD.KILNCARBATCHNO   and pdd.checkflag = 3
                            AND pmax.valueflag = '1' 
                               /*20  研磨 22  直接冷补 23  研磨后冷补(非回收) 37  堵漏气 41  刷洗不良*/
                            AND pmax.procedureid IN (20, 22, 23, 37, 41)
@@ -433,8 +433,8 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
 							    ) PD INNER JOIN TP_PM_PRODUCTIONDATA PDD ON PDD.PRODUCTIONDATAID = PD.PRODUCTIONDATAID 	
 			                    LEFT JOIN TP_PM_PRODUCTIONDATA PMAX ON PMAX.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID 
 			                    AND PMAX.PRODUCTIONDATAID < PD.PRODUCTIONDATAID AND PMAX.VALUEFLAG = '1'
-                                 " + (proc == "999" ? "AND (pmax.kilncarbatchno = PDD.kilncarbatchno OR pmax.procedureid = PDD.procedureid)"
-                                            : "AND (pmax.kilncarbatchno = PDD.kilncarbatchno )")
+                                 " + (proc == "999" ? "    AND (( pmax.procedureid IN (20, 22, 23, 37, 41 ) and pmax.kilncarbatchno = pdd.kilncarbatchno   and pdd.checkflag = 3 )  OR ( pmax.procedureid=35 and  pmax.procedureid = pdd.procedureid)) "
+                                            : "AND (pmax.kilncarbatchno = PDD.kilncarbatchno  and pdd.checkflag = 3 )")
                                 /*20  研磨 22  直接冷补 23  研磨后冷补(非回收) 37  堵漏气 41  刷洗不良*/
                                 + @" AND PMAX.PROCEDUREID IN  " + lb + @"	
 				                 	             
@@ -535,7 +535,7 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
  --   去除复检的质量登记
                             LEFT JOIN tp_pm_productiondata_semicheck semicheck ON semicheck.productiondataid = pd.productiondataid
 							LEFT JOIN TP_PM_PRODUCTIONDATA PMAX ON PMAX.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID 
-							AND PMAX.PRODUCTIONDATAID < PD.PRODUCTIONDATAID AND PMAX.VALUEFLAG = '1' 
+							AND PMAX.PRODUCTIONDATAID < PD.PRODUCTIONDATAID AND PMAX.VALUEFLAG = '1'   and pdd.checkflag = 3
                             and pmax.KILNCARBATCHNO= PDD.KILNCARBATCHNO 	AND  semicheck.productiondataid is null 
 							/*20  研磨 22  直接冷补 23  研磨后冷补(非回收) 37  堵漏气 41  刷洗不良*/
 							AND PMAX.PROCEDUREID IN " + lb + @"							 
@@ -590,7 +590,8 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
 					--   去除复检的质量登记
                   LEFT JOIN tp_pm_productiondata_semicheck semicheck ON semicheck.productiondataid = pd.productiondataid
 							LEFT JOIN TP_PM_PRODUCTIONDATA PMAX ON PMAX.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID 
-                              AND (pmax.kilncarbatchno = pdd.kilncarbatchno OR pmax.procedureid = pdd.procedureid)
+                          --    AND (pmax.kilncarbatchno = pdd.kilncarbatchno OR pmax.procedureid = pdd.procedureid)
+    AND (( pmax.procedureid IN (20, 22, 23, 37, 41 ) and pmax.kilncarbatchno = pdd.kilncarbatchno   and pdd.checkflag = 3 )  OR ( pmax.procedureid=35 and  pmax.procedureid = pdd.procedureid))
 							AND PMAX.PRODUCTIONDATAID < PD.PRODUCTIONDATAID AND PMAX.VALUEFLAG = '1'  AND  semicheck.productiondataid is null  
 							AND PMAX.PROCEDUREID IN (20, 22, 23, 37, 41, 35)
 								 			             
@@ -654,7 +655,7 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
 										 INNER JOIN TP_PM_PRODUCTIONDATA PMAX
 											ON PMAX.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID
 										   AND PMAX.PRODUCTIONDATAID < PD.PRODUCTIONDATAID
-										   AND PMAX.VALUEFLAG = '1' 
+										   AND PMAX.VALUEFLAG = '1'    and pd.checkflag = 3
                                             and pmax.KILNCARBATCHNO= pd.KILNCARBATCHNO
 											  /*20  研磨 22  直接冷补 23  研磨后冷补(非回收) 37  堵漏气 41  刷洗不良*/
 										   AND PMAX.PROCEDUREID IN (20, 22, 23, 37, 41)
@@ -683,7 +684,7 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
 										 INNER JOIN TP_PM_PRODUCTIONDATA PMAX
 											ON PMAX.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID
 										   AND PMAX.PRODUCTIONDATAID < PD.PRODUCTIONDATAID
-										   AND PMAX.VALUEFLAG = '1'
+										   AND PMAX.VALUEFLAG = '1'   and pd.checkflag = 3
 										   and pmax.KILNCARBATCHNO= pd.KILNCARBATCHNO
 											  /*20  研磨 22  直接冷补 23  研磨后冷补(非回收) 37  堵漏气 41  刷洗不良*/
 										   AND PMAX.PROCEDUREID IN (20, 22, 23, 37, 41)

+ 63 - 34
wwwroot/mes/rpt/rpt014/rptnew_detail_total.ashx

@@ -14,8 +14,7 @@ using DK.XuWei.WebMes;
 
 public class rptnew_detail : IHttpHandler, IReadOnlySessionState
 {
-    List<CDAParameter> goodsnull = new List<CDAParameter>();
-
+    string[] goodsCodes = new string[] { };
     string defectStr = "";
     DataTable col = new DataTable();
     string proc = "";
@@ -26,6 +25,37 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
         context.Response.ContentType = "text/plain";
         proc = context.Request["procedureidMaster"].ToString();
 
+       
+        if (context.Request["GOODSCODE"] != "" || context.Request["GOODSCODE"] != null)
+        {
+            goodsCodes = context.Request["GOODSCODE"].ToString().Split(',');
+        }
+        string goodssql = @"SELECT GOODSCODE   FROM TP_MST_GOODS where 1=1 ";
+        if (goodsCodes.Length > 1 || goodsCodes[0] != "")
+        {
+            if ( "1" == context.Request["isNotcheck"] +"")
+            {
+                goodssql += @" AND GOODSCODE NOT LIKE ('%" + goodsCodes[0].ToUpper() + "%') ";
+                for (int i = 1; i < goodsCodes.Length; i++)
+                {
+                    goodssql += @" AND GOODSCODE NOT LIKE ('%" + goodsCodes[i].ToUpper() + "%') ";
+                }
+            }
+            else
+            {
+                goodssql += @" AND GOODSCODE  LIKE ('%" + goodsCodes[0].ToUpper() + "%') ";
+                for (int i = 1; i < goodsCodes.Length; i++)
+                {
+                    goodssql += @" OR GOODSCODE  LIKE ('%" + goodsCodes[i].ToUpper() + "%') ";
+                }
+            }
+        }
+
+        if (!string.IsNullOrEmpty(context.Request["goodsnameMaster"].ToString()))
+        {
+            goodssql += @" AND  GOODSNAME  LIKE ('%" + context.Request["goodsnameMaster"].ToString() + "%') ";
+        }
+
         string fields = context.Request["fields"].ToString();
         int index = Convert.ToInt32(context.Request["index"] + "");
         string gs = context.Request["gs"].ToString();
@@ -121,12 +151,12 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                            AND PD.CHECKTIME >= @DATEBEGIN@
                            AND PD.CHECKTIME < @DATEEND@
                            AND (PD.KILNID = @KILNID@ OR @KILNID@ IS NULL) 
-                           --  AND PD.GOODSCODE IN( '" + gs + @"' )
+                            AND PD.GOODSCODE   IN ({goodsCodes})
                            AND GL.BUILDINGNO {BUILDINGNO}
 							 GROUP BY PD.GOODSID ,PD.BARCODE,PD.GROUTINGDAILYDETAILID 
 							) PD  INNER JOIN TP_PM_PRODUCTIONDATA PDD ON PDD.PRODUCTIONDATAID = PD.PRODUCTIONDATAID 
 			                LEFT JOIN TP_PM_PRODUCTIONDATA PMAX ON PMAX.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID 
-                            and pmax.KILNCARBATCHNO= PDD.KILNCARBATCHNO
+                            and pmax.KILNCARBATCHNO= PDD.KILNCARBATCHNO  and pdd.checkflag = 3 
 			                AND PMAX.PRODUCTIONDATAID < PD.PRODUCTIONDATAID AND PMAX.VALUEFLAG = '1' 
 				            /*20  研磨 22  直接冷补 23  研磨后冷补(非回收) 37  堵漏气 41  刷洗不良*/
 				            AND PMAX.PROCEDUREID IN (20, 22, 23, 37, 41)	
@@ -151,7 +181,7 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                            AND PD.CREATETIME >= @DATEBEGIN@
                            AND PD.CREATETIME < @DATEEND@
                            AND (PD.KILNID = @KILNID@ OR @KILNID@ IS NULL) 
-                           -- AND PD.GOODSCODE IN( '" + gs + @"' )
+                            AND PD.GOODSCODE IN ({goodsCodes})
                            AND GL.BUILDINGNO {BUILDINGNO} ";
                         sqlDetail += " order by G.GOODSCODE, pd.Barcode ";
                         break;
@@ -191,7 +221,7 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                            AND PD.CREATETIME >= @DATEBEGIN@
                            AND PD.CREATETIME < @DATEEND@ 
                            AND (PD.KILNID = @KILNID@ OR @KILNID@ IS NULL) 
-                           --   AND PD.GOODSCODE IN( '" + gs + @"' )
+                            AND PD.GOODSCODE IN ({goodsCodes})
                            AND GL.BUILDINGNO {BUILDINGNO}
 							 GROUP BY PD.GOODSID ,PD.BARCODE,PD.GROUTINGDAILYDETAILID  
 							) PD INNER JOIN TP_PM_PRODUCTIONDATA PDD ON PDD.PRODUCTIONDATAID = PD.PRODUCTIONDATAID 
@@ -199,8 +229,8 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                             LEFT JOIN tp_pm_productiondata_semicheck semicheck ON semicheck.productiondataid = pd.productiondataid
 			                LEFT JOIN TP_PM_PRODUCTIONDATA PMAX ON PMAX.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID 
 			                AND PMAX.PRODUCTIONDATAID < PD.PRODUCTIONDATAID AND PMAX.VALUEFLAG = '1'   AND semicheck.productiondataid is null
-                            " + (proc == "999" ? "AND (pmax.kilncarbatchno = PDD.kilncarbatchno OR pmax.procedureid = PDD.procedureid)"
-                                            : "AND (pmax.kilncarbatchno = PDD.kilncarbatchno )")
+                            " + (proc == "999" ? "  AND (( pmax.procedureid IN (20, 22, 23, 37, 41 ) and pmax.kilncarbatchno = pdd.kilncarbatchno   and pdd.checkflag = 3 )  OR ( pmax.procedureid=35 and  pmax.procedureid = pdd.procedureid)) "
+                                            : "AND (pmax.kilncarbatchno = PDD.kilncarbatchno  and pdd.checkflag = 3)")
                            /*20  研磨 22  直接冷补 23  研磨后冷补(非回收) 37  堵漏气 41  刷洗不良*/
                            + @" AND PMAX.PROCEDUREID IN  " + lb + @"				             
 			             INNER JOIN TP_MST_GOODS G ON G.GOODSID = PDD.GOODSID 
@@ -249,7 +279,7 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                            AND PD.CREATETIME >= @DATEBEGIN@
                            AND PD.CREATETIME < @DATEEND@ 
                            AND (PD.KILNID = @KILNID@ OR @KILNID@ IS NULL) 
-                           --   AND PD.GOODSCODE IN( '" + gs + @"' )
+                            AND PD.GOODSCODE IN ({goodsCodes})
                            AND GL.BUILDINGNO {BUILDINGNO}
 							 GROUP BY PD.GOODSID ,PD.BARCODE,PD.GROUTINGDAILYDETAILID  
 							) PD  INNER JOIN TP_PM_PRODUCTIONDATA PDD ON PDD.PRODUCTIONDATAID = PD.PRODUCTIONDATAID 
@@ -258,7 +288,7 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
 			                LEFT JOIN TP_PM_PRODUCTIONDATA PMAX ON PMAX.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID 
 			                AND PMAX.PRODUCTIONDATAID < PD.PRODUCTIONDATAID AND PMAX.VALUEFLAG = '1'   AND semicheck.productiondataid is null 
                              " + (proc == "999" ? "AND (pmax.kilncarbatchno = PDD.kilncarbatchno OR pmax.procedureid = PDD.procedureid)"
-                                            : "AND (pmax.kilncarbatchno = PDD.kilncarbatchno )")
+                                            : "AND (pmax.kilncarbatchno = PDD.kilncarbatchno  and pdd.checkflag = 3)")
                             /*20  研磨 22  直接冷补 23  研磨后冷补(非回收) 37  堵漏气 41  刷洗不良*/
                             + @" AND PMAX.PROCEDUREID IN  " + lb + @"	 		            
 			              INNER JOIN TP_MST_GOODS G ON G.GOODSID = PDD.GOODSID 
@@ -299,7 +329,7 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
 									   AND PD.CREATETIME >= @DATEBEGIN@
 									   AND PD.CREATETIME < @DATEEND@ 
 									   AND (PD.KILNID = @KILNID@ OR @KILNID@ IS NULL) 
-										--  AND PD.GOODSCODE IN( '" + gs + @"')
+										 AND PD.GOODSCODE IN ({goodsCodes})
 									   AND GL.BUILDINGNO {BUILDINGNO}
 										 GROUP BY PD.GOODSID,PD.BARCODE ,PD.GROUTINGDAILYDETAILID  
 										) PD INNER JOIN TP_PM_PRODUCTIONDATA PDD ON PDD.PRODUCTIONDATAID = PD.PRODUCTIONDATAID 
@@ -307,7 +337,7 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                             ON pmax.groutingdailydetailid = pd.groutingdailydetailid
                            AND pmax.productiondataid < pd.productiondataid
                             and pmax.KILNCARBATCHNO= PDD.KILNCARBATCHNO
-                           AND pmax.valueflag = '1' 
+                           AND pmax.valueflag = '1'   and pdd.checkflag = 3 
                               /*20  研磨 22  直接冷补 23  研磨后冷补(非回收) 37  堵漏气 41  刷洗不良*/
                            AND pmax.procedureid IN (20, 22, 23, 37, 41)
                            INNER JOIN TP_MST_GOODS G ON G.GOODSID = PDD.GOODSID 
@@ -339,7 +369,7 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
 									   AND PD.CREATETIME >= @DATEBEGIN@
 									   AND PD.CREATETIME < @DATEEND@ 
 									   AND (PD.KILNID = @KILNID@ OR @KILNID@ IS NULL) 
-										--  AND PD.GOODSCODE IN( '" + gs + @"')
+										 AND PD.GOODSCODE IN ({goodsCodes})
 									   AND GL.BUILDINGNO {BUILDINGNO}
 										 GROUP BY PD.GOODSID,PD.BARCODE ,PD.GROUTINGDAILYDETAILID 
 										) PD INNER JOIN TP_PM_PRODUCTIONDATA PDD ON PDD.PRODUCTIONDATAID = PD.PRODUCTIONDATAID 
@@ -378,14 +408,14 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
 									   AND PD.CREATETIME >= @DATEBEGIN@
 									   AND PD.CREATETIME < @DATEEND@ 
 									   AND (PD.KILNID = @KILNID@ OR @KILNID@ IS NULL) 
-										--  AND PD.GOODSCODE IN( '" + gs + @"')
+										 AND PD.GOODSCODE IN ({goodsCodes})
 									   AND GL.BUILDINGNO {BUILDINGNO}
 										 GROUP BY PD.GOODSID,PD.BARCODE ,PD.GROUTINGDAILYDETAILID 
 										) PD INNER JOIN TP_PM_PRODUCTIONDATA PDD ON PDD.PRODUCTIONDATAID = PD.PRODUCTIONDATAID 
                           INNER JOIN tp_pm_productiondata pmax
                             ON pmax.groutingdailydetailid = pd.groutingdailydetailid
                            AND pmax.productiondataid < pd.productiondataid 
-                           AND pmax.valueflag = '1' 
+                           AND pmax.valueflag = '1'  and pdd.checkflag = 3 
                            and pmax.KILNCARBATCHNO= PDD.KILNCARBATCHNO
                            AND pmax.valueflag = '1' 
                               /*20  研磨 22  直接冷补 23  研磨后冷补(非回收) 37  堵漏气 41  刷洗不良*/
@@ -428,14 +458,14 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                                AND PD.CREATETIME >= @DATEBEGIN@
                                AND PD.CREATETIME < @DATEEND@ 
                                AND (PD.KILNID = @KILNID@ OR @KILNID@ IS NULL) 
-                               --   AND PD.GOODSCODE IN( '" + gs + @"' )
+                               AND PD.GOODSCODE IN ({goodsCodes})
                                AND GL.BUILDINGNO {BUILDINGNO} 
 							     GROUP BY PD.GOODSID ,PD.BARCODE,PD.GROUTINGDAILYDETAILID  
 							    ) PD INNER JOIN TP_PM_PRODUCTIONDATA PDD ON PDD.PRODUCTIONDATAID = PD.PRODUCTIONDATAID 	
 			                    LEFT JOIN TP_PM_PRODUCTIONDATA PMAX ON PMAX.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID 
 			                    AND PMAX.PRODUCTIONDATAID < PD.PRODUCTIONDATAID AND PMAX.VALUEFLAG = '1'
-                                 " + (proc == "999" ? "AND (pmax.kilncarbatchno = PDD.kilncarbatchno OR pmax.procedureid = PDD.procedureid)"
-                                            : "AND (pmax.kilncarbatchno = PDD.kilncarbatchno )")
+                                 " + (proc == "999" ? "   AND (( pmax.procedureid IN (20, 22, 23, 37, 41 ) and pmax.kilncarbatchno = pdd.kilncarbatchno   and pdd.checkflag = 3 )  OR ( pmax.procedureid=35 and  pmax.procedureid = pdd.procedureid)) "
+                                            : "AND (pmax.kilncarbatchno = PDD.kilncarbatchno  and pdd.checkflag = 3 )")
                                 /*20  研磨 22  直接冷补 23  研磨后冷补(非回收) 37  堵漏气 41  刷洗不良*/
                                 + @" AND PMAX.PROCEDUREID IN  " + lb + @"	
 				                 INNER JOIN TP_MST_GOODS G ON G.GOODSID = PDD.GOODSID             
@@ -462,8 +492,8 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                 case "研磨后冷补_合格数":
                 case "堵漏气_检验数":
                 case "堵漏气_合格数":
-                // case "刷洗不良_检验数":
-                // case "刷洗不良_合格数":
+                    // case "刷洗不良_检验数":
+                    // case "刷洗不良_合格数":
                     {
                         string procedureid = "";
                         if (fields == "研磨_检验数")
@@ -529,14 +559,14 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
 							AND PD.CREATETIME >= @DATEBEGIN@
 							AND PD.CREATETIME < @DATEEND@ 
 							AND (PD.KILNID = @KILNID@ OR @KILNID@ IS NULL) 
-							--  AND PD.GOODSCODE IN( '" + gs + @"' )
+							 AND PD.GOODSCODE IN ({goodsCodes})
 							AND GL.BUILDINGNO {BUILDINGNO}
 								GROUP BY PD.GOODSID,PD.BARCODE ,PD.GROUTINGDAILYDETAILID 
 							) PD INNER JOIN TP_PM_PRODUCTIONDATA PDD ON PDD.PRODUCTIONDATAID = PD.PRODUCTIONDATAID
  --   去除复检的质量登记
                             LEFT JOIN tp_pm_productiondata_semicheck semicheck ON semicheck.productiondataid = pd.productiondataid
 							LEFT JOIN TP_PM_PRODUCTIONDATA PMAX ON PMAX.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID 
-							AND PMAX.PRODUCTIONDATAID < PD.PRODUCTIONDATAID AND PMAX.VALUEFLAG = '1' 
+							AND PMAX.PRODUCTIONDATAID < PD.PRODUCTIONDATAID AND PMAX.VALUEFLAG = '1'   and pdd.checkflag = 3
                             and pmax.KILNCARBATCHNO= PDD.KILNCARBATCHNO 	AND  semicheck.productiondataid is null 
 							/*20  研磨 22  直接冷补 23  研磨后冷补(非回收) 37  堵漏气 41  刷洗不良*/
 							AND PMAX.PROCEDUREID IN " + lb + @"							 
@@ -584,14 +614,15 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
 							AND PD.CREATETIME >= @DATEBEGIN@
 							AND PD.CREATETIME < @DATEEND@ 
 							AND (PD.KILNID = @KILNID@ OR @KILNID@ IS NULL) 
-							--  AND PD.GOODSCODE IN( '" + gs + @"' )
+							 AND PD.GOODSCODE IN ({goodsCodes})
 							AND GL.BUILDINGNO {BUILDINGNO}
 								GROUP BY PD.GOODSID,PD.BARCODE ,PD.GROUTINGDAILYDETAILID  ,pd.KILNCARBATCHNO   
 							) PD INNER JOIN TP_PM_PRODUCTIONDATA PDD ON PDD.PRODUCTIONDATAID = PD.PRODUCTIONDATAID 
  --   去除复检的质量登记
                             LEFT JOIN tp_pm_productiondata_semicheck semicheck ON semicheck.productiondataid = pd.productiondataid
 							LEFT JOIN TP_PM_PRODUCTIONDATA PMAX ON PMAX.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID 
-                            AND (pmax.kilncarbatchno = pdd.kilncarbatchno OR pmax.procedureid = pdd.procedureid)
+                            -- AND (pmax.kilncarbatchno = pdd.kilncarbatchno OR pmax.procedureid = pdd.procedureid)
+    AND (( pmax.procedureid IN (20, 22, 23, 37, 41 ) and pmax.kilncarbatchno = pdd.kilncarbatchno   and pdd.checkflag = 3 )  OR ( pmax.procedureid=35 and  pmax.procedureid = pdd.procedureid))
 							AND PMAX.PRODUCTIONDATAID < PD.PRODUCTIONDATAID AND PMAX.VALUEFLAG = '1'   AND  semicheck.productiondataid is null
 							AND PMAX.PROCEDUREID IN (20, 22, 23, 37, 41, 35)
 							 INNER JOIN TP_MST_GOODS G ON G.GOODSID = PDD.GOODSID	 			             
@@ -621,7 +652,7 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
 						                           AND PD.CHECKTIME >= @DATEBEGIN@
                                                    AND PD.CHECKTIME < @DATEEND@
                                                    AND (PD.KILNID = @KILNID@ OR @KILNID@ IS NULL) 
-                                                   --   AND PD.GOODSCODE IN  ( '" + gs + @"')
+                                                   AND PD.GOODSCODE IN ({goodsCodes})
                                                    AND GL.BUILDINGNO {BUILDINGNO} 
                                                         AND pd.goodsleveltypeid <> 4
 							                         GROUP BY  PD.GROUTINGDAILYDETAILID   
@@ -655,7 +686,7 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
 										 INNER JOIN TP_PM_PRODUCTIONDATA PMAX
 											ON PMAX.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID
 										   AND PMAX.PRODUCTIONDATAID < PD.PRODUCTIONDATAID
-										   AND PMAX.VALUEFLAG = '1' 
+										   AND PMAX.VALUEFLAG = '1'   and pd.checkflag = 3 
                                             and pmax.KILNCARBATCHNO= pd.KILNCARBATCHNO
 											  /*20  研磨 22  直接冷补 23  研磨后冷补(非回收) 37  堵漏气 41  刷洗不良*/
 										   AND PMAX.PROCEDUREID IN (20, 22, 23, 37, 41)
@@ -668,7 +699,7 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
 										   AND PD.createtime < @DATEEND@
 										   AND PD.GOODSLEVELTYPEID = 20
 										   AND (PD.KILNID = @KILNID@ OR @KILNID@ IS NULL) 
-										   --  AND PD.GOODSCODE IN( '" + gs + @"')
+										   AND PD.GOODSCODE IN ({goodsCodes})
 										   AND GL.BUILDINGNO {BUILDINGNO}
 										 GROUP BY PD.PRODUCTIONDATAID
 												 ,PD.GOODSLEVELTYPEID
@@ -684,7 +715,7 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
 										 INNER JOIN TP_PM_PRODUCTIONDATA PMAX
 											ON PMAX.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID
 										   AND PMAX.PRODUCTIONDATAID < PD.PRODUCTIONDATAID
-										   AND PMAX.VALUEFLAG = '1'
+										   AND PMAX.VALUEFLAG = '1'  and pd.checkflag = 3 
 										   and pmax.KILNCARBATCHNO= pd.KILNCARBATCHNO
 											  /*20  研磨 22  直接冷补 23  研磨后冷补(非回收) 37  堵漏气 41  刷洗不良*/
 										   AND PMAX.PROCEDUREID IN (20, 22, 23, 37, 41)
@@ -698,7 +729,7 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
 										   --AND PD.CHECKBATCHNO > 1
 										   AND PD.GOODSLEVELTYPEID <> 4	
 										   AND (PD.KILNID = @KILNID@ OR @KILNID@ IS NULL) 
-										   --  AND PD.GOODSCODE IN( '" + gs + @"')
+										   AND PD.GOODSCODE IN ({goodsCodes})
 										   AND GL.BUILDINGNO {BUILDINGNO}
 										 GROUP BY PD.PRODUCTIONDATAID
 												 ,PD.GOODSLEVELTYPEID
@@ -732,16 +763,14 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
             {
                 proc = "35";
             }
-            sqlDetail = sqlDetail.Replace("{DEFECT}", defectStr).Replace("{BUILDINGNO}", buding).Replace("{PROCEDUREID}", proc);
+            sqlDetail = sqlDetail.Replace("{DEFECT}", defectStr).Replace("{BUILDINGNO}", buding).Replace("{PROCEDUREID}", proc).Replace("{goodsCodes}", goodssql);
             //获取查询条件
             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,35"));
+            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();
-            //string jsonStr = new JsonResult(dt) { total = dt.Rows.Count }.ToJson();
+            string jsonStr = new JsonResult(dt) { total = dt.Rows.Count }.ToJson(); 
             context.Response.Write(jsonStr);
         }
 

+ 137 - 21
wwwroot/mes/rpt/rpt017/rpt.ashx

@@ -32,7 +32,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                 }
                 conn.BeginTransaction();
 
-                string sqltmp = @" insert into TMP_CHECK_PROD_STATISTIC(PRODUCTIONDATAID,
+                string sqltmp = @" insert into TMP_CHECK_PROD_STATISTIC(FLAG,PRODUCTIONDATAID,
                                      BARCODE,
                                      USERID,
                                      GOODSID,
@@ -47,7 +47,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                      GOODSLEVELTYPEID,
                                      PROCEDUREID,
                                      MAXPRODUCTIONDATAID,
-                                     CLASSESSETTINGID)  (  SELECT
+                                     CLASSESSETTINGID)  (  SELECT 0 as flag,
                                         TP.PRODUCTIONDATAID,
                                         TP.BARCODE,
                                         decode(pdsemi.productiondataid, NULL, decode(pdsemicheck.productiondataid,NULL,tp.userid,pdfirst.userid) , decode(pdrefirst.userid, NULL, pdfirst.userid, pdrefirst.userid)) userid,
@@ -114,8 +114,8 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                                        pdrefirst.kilncarbatchno = tp.kilncarbatchno))
                                             AND pdrefirst.productiondataid <= tp.productiondataid 
                                         INNER JOIN TP_PC_GROUTINGLINE L ON TP.GROUTINGLINEID = L.GROUTINGLINEID
-                                        LEFT JOIN TP_PM_PRODUCTIONDATA PMAX ON PMAX.GROUTINGDAILYDETAILID = TP.GROUTINGDAILYDETAILID  AND PMAX.KILNCARBATCHNO = TP.KILNCARBATCHNO
-                                        AND PMAX.PRODUCTIONDATAID < TP.PRODUCTIONDATAID AND PMAX.VALUEFLAG = '1'  AND pmax.procedureid IN (22, 23)
+                                        LEFT JOIN TP_PM_PRODUCTIONDATA PMAX ON PMAX.GROUTINGDAILYDETAILID = TP.GROUTINGDAILYDETAILID  AND PMAX.KILNCARBATCHNO = TP.KILNCARBATCHNO  AND pdsemi.productiondataid IS NULL   and tp.checkflag = 3
+                                        AND PMAX.PRODUCTIONDATAID < TP.PRODUCTIONDATAID AND PMAX.VALUEFLAG = '1'  AND pmax.procedureid IN (22, 23, 37, 20, 41)
                                         LEFT JOIN TP_MST_GOODS G ON G.GOODSID = TP.GOODSID
                                         LEFT JOIN TP_PM_GROUTINGDAILYDETAIL Gg ON TP.GROUTINGDAILYDETAILID = Gg.GROUTINGDAILYDETAILID
                                         LEFT JOIN TP_MST_DATADICTIONARY D ON Gg.GLAZETYPEID = D.DICTIONARYID
@@ -148,7 +148,113 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                         TP.GROUTINGLINEID,
                                         TP.GOODSLEVELTYPEID,
                                         TP.PROCEDUREID,
-                                                        pdfirst.CLASSESSETTINGID ,pdrefirst.classessettingid,pdsemi.productiondataid ,pdsemicheck.productiondataid,tp.userid ,tp.classessettingid )  ";
+                                                        pdfirst.CLASSESSETTINGID ,pdrefirst.classessettingid,pdsemi.productiondataid ,pdsemicheck.productiondataid,tp.userid ,tp.classessettingid  
+
+union all 
+ SELECT 1 as flag,
+                                        TP.PRODUCTIONDATAID,
+                                        TP.BARCODE,
+                                        decode(pdsemi.productiondataid, NULL, decode(pdsemicheck.productiondataid,NULL,tp.userid,pdfirst.userid) , decode(pdrefirst.userid, NULL, pdfirst.userid, pdrefirst.userid)) userid,
+                                        TP.GOODSID,
+                                        G.GOODSMODEL,
+                                        G.GOODSCODE,
+                                        G.GOODSNAME,
+                                        Gg.GLAZETYPEID AS 釉料ID,
+                                        D.DICTIONARYVALUE AS 釉料,
+                                        Gg.LOGOID AS 商标ID,
+                                        O.LOGONAME AS 商标,
+                                        TP.GROUTINGLINEID,
+                                        TP.GOODSLEVELTYPEID,
+                                        TP.PROCEDUREID,
+                                        MAX( PMAX.PRODUCTIONDATAID ) AS MAXPRODUCTIONDATAID,
+                                        decode(pdsemi.productiondataid
+                                         ,NULL
+                                         ,tp.classessettingid
+                                         ,decode(pdrefirst.classessettingid, NULL, pdfirst.classessettingid, pdrefirst.classessettingid))   CLASSESSETTINGID
+                                    FROM
+
+                                        (SELECT MAX(tp.productiondataid) productiondataid
+                                          ,tp.groutingdailydetailid
+                                              FROM tp_pm_productiondata tp
+                                             WHERE tp.procedureid IN (13, 35) 
+                                               AND tp.checktime >=  @DATEBEGIN@
+                                               AND tp.checktime <= @DATEEND@
+                                             GROUP BY tp.groutingdailydetailid) maxp
+                                         INNER JOIN tp_pm_productiondata tp  ON maxp.productiondataid = tp.productiondataid
+                                    -- 研发
+                                  LEFT JOIN tp_pm_productiondata tprd
+                                    ON tprd.groutingdailydetailid = tp.groutingdailydetailid
+                                        AND tprd.valueflag = '1' AND tprd.procedureid = 34
+                                          -- 复检的数据
+                                        LEFT JOIN tp_pm_productiondata_semicheck pdsemi ON pdsemi.productiondataid = tp.productiondataid
+                                 -- 是否经过复检的数据
+                                        LEFT JOIN tp_pm_productiondata pdissemi
+                                            ON pdissemi.groutingdailydetailid = tp.groutingdailydetailid  
+                                           AND ((tprd.groutingdailydetailid IS NOT NULL AND
+                                                   pdissemi.kilncarbatchno IS NULL AND tp.kilncarbatchno IS NULL) OR
+                                                   (tprd.groutingdailydetailid IS NULL AND
+                                                   pdissemi.kilncarbatchno = tp.kilncarbatchno))
+                                            AND pdissemi.productiondataid < tp.productiondataid
+                                            and pdissemi.procedureid IN (13, 35)                               
+                                        LEFT JOIN tp_pm_productiondata_semicheck pdsemicheck
+                                            ON pdsemicheck.productiondataid = pdissemi.productiondataid   
+
+                                        --   找到复检的那个人
+                                           LEFT JOIN tp_pm_productiondata pdfirst
+                                             ON pdfirst.groutingdailydetailid = tp.groutingdailydetailid
+                                            AND pdfirst.checkflag = 1
+                                            AND ((tprd.groutingdailydetailid IS NOT NULL AND
+                                                   pdfirst.kilncarbatchno IS NULL AND tp.kilncarbatchno IS NULL) OR
+                                                   (tprd.groutingdailydetailid IS NULL AND
+                                                   pdfirst.kilncarbatchno = tp.kilncarbatchno))
+                                            AND pdfirst.productiondataid <= tp.productiondataid 
+                                            --   找到研磨 堵漏气 刷洗不良 的那个人
+                                             LEFT JOIN tp_pm_productiondata pdrefirst
+                                             ON pdrefirst.groutingdailydetailid = tp.groutingdailydetailid
+                                            AND pdrefirst.checkflag = 3
+                                              AND ((tprd.groutingdailydetailid IS NOT NULL AND
+                                                       pdrefirst.kilncarbatchno IS NULL AND tp.kilncarbatchno IS NULL) OR
+                                                       (tprd.groutingdailydetailid IS NULL AND
+                                                       pdrefirst.kilncarbatchno = tp.kilncarbatchno))
+                                            AND pdrefirst.productiondataid <= tp.productiondataid 
+                                        INNER JOIN TP_PC_GROUTINGLINE L ON TP.GROUTINGLINEID = L.GROUTINGLINEID
+                                        LEFT JOIN TP_PM_PRODUCTIONDATA PMAX ON PMAX.GROUTINGDAILYDETAILID = TP.GROUTINGDAILYDETAILID  AND PMAX.KILNCARBATCHNO = TP.KILNCARBATCHNO  AND pdsemi.productiondataid IS NULL   and tp.checkflag = 3
+                                        AND PMAX.PRODUCTIONDATAID < TP.PRODUCTIONDATAID AND PMAX.VALUEFLAG = '1'  AND pmax.procedureid IN (22, 23, 37, 20, 41)
+                                        LEFT JOIN TP_MST_GOODS G ON G.GOODSID = TP.GOODSID
+                                        LEFT JOIN TP_PM_GROUTINGDAILYDETAIL Gg ON TP.GROUTINGDAILYDETAILID = Gg.GROUTINGDAILYDETAILID
+                                        LEFT JOIN TP_MST_DATADICTIONARY D ON Gg.GLAZETYPEID = D.DICTIONARYID
+                                        LEFT JOIN TP_MST_LOGO O ON Gg.LOGOID = O.LOGOID
+                                        LEFT JOIN tp_mst_user mu ON mu.userid =  decode(pdsemi.productiondataid, NULL, decode(pdsemicheck.productiondataid,NULL,tp.userid,pdfirst.userid), decode(pdrefirst.userid, NULL, pdfirst.userid, pdrefirst.userid))
+                                    WHERE 
+                                        TP.PROCEDUREID IN ( 13, 35 )
+                                        AND ( G.GOODSMODEL = @GOODSMODEL@ OR @GOODSMODEL@ IS NULL )
+                                        AND ( G.GOODSNAME = @GOODSNAME@ OR @GOODSNAME@ IS NULL )
+                                        AND ( mu.USERCODE = @USERCODE@ OR @USERCODE@ IS NULL )                                        
+                                         AND TP.checktime >= @DATEBEGIN@
+                                         AND TP.checktime <= @DATEEND@
+                                        {strFactoryInspectionCheckTime}
+                                        AND ( L.BUILDINGNO = @BUILDINGNO@ OR @BUILDINGNO@ IS NULL )
+                                        AND (Gg.LOGOID = @LOGOID@ OR @LOGOID@ IS NULL)
+                                        AND (Gg.GLAZETYPEID = @GLAZETYPEID@ OR @GLAZETYPEID@ IS NULL)
+                                    GROUP BY
+                                        TP.PRODUCTIONDATAID,
+                                        TP.BARCODE,
+                                        pdfirst.USERID, pdrefirst.userid,
+                                        G.GOODSCODE,
+                                        G.GOODSNAME,
+                                        TP.GOODSID,
+                                        G.GOODSMODEL,
+                                        Gg.GLAZETYPEID,
+                                        D.DICTIONARYVALUE,
+                                        Gg.LOGOID,
+                                        O.LOGONAME,
+                                        TP.GROUTINGLINEID,
+                                        TP.GOODSLEVELTYPEID,
+                                        TP.PROCEDUREID,
+                                                        pdfirst.CLASSESSETTINGID ,pdrefirst.classessettingid,pdsemi.productiondataid ,pdsemicheck.productiondataid,tp.userid ,tp.classessettingid
+
+
+)  ";
                      List<CDAParameter> sqlParaInert = new List<CDAParameter>();
                      sqlParaInert.Add(new CDAParameter("DATEBEGIN", Convert.ToDateTime(context.Request["datebeginMaster"]), DataType.DateTime));
                 sqlParaInert.Add(new CDAParameter("DATEEND", Convert.ToDateTime(context.Request["dateendMaster"]), DataType.DateTime));
@@ -207,8 +313,12 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 	                    SUM( PP.OK_B ) AS 合格数_本烧,
 	                    SUM( PP.OK_R ) AS 合格数_重烧,
 	                    SUM( PP.OK_L ) AS 合格数_冷补,
-	                    SUM( PP.OK_ALL ) AS 合格数_合计,
-                        SUM( PP.OK_P ) AS 包装入仓,
+      SUM(PP.OK_YM) AS 合格数_研磨,
+      SUM(PP.OK_DLQ) AS 合格数_堵漏气,
+      -- SUM(PP.OK_CXBL) AS 合格数_刷洗不良,
+  SUM(pp.ok_b + pp.ok_r + pp.ok_l + pp.ok_ym + pp.ok_dlq  ) AS 合格数_合计,
+	                    -- SUM( PP.OK_ALL ) AS 合格数_合计,
+                        SUM(pp.ok_b + pp.ok_r   ) AS 包装入仓,
 	                    SUM( PP.DNUM1 ) AS 本烧缺陷数_排水不良,
                         SUM( PP.DNUM2 ) AS 本烧缺陷数_漏气,
                         SUM( PP.DNUM3 ) AS 重烧缺陷数_排水不良,
@@ -240,6 +350,10 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                         NVL( PM.OK_B, 0 ) OK_B,
                         NVL( PM.OK_R, 0 ) OK_R,
                         NVL( PM.OK_L, 0 ) OK_L,
+              NVL(pm.OK_YM, 0) OK_YM,
+              NVL(pm.OK_DLQ, 0) OK_DLQ,
+              NVL(pm.OK_CXBL, 0) OK_CXBL,
+
                         NVL( PM.OK_ALL, 0 ) OK_ALL
                     FROM
                         (
@@ -307,28 +421,30 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                 p.釉料,
                                 P.商标ID,
                                 P.商标,
-                                COUNT(distinct CASE WHEN ( P.GOODSLEVELTYPEID = 4 OR P.GOODSLEVELTYPEID = 5 ) AND P.PROCEDUREID IN (13,35) AND NOT PDP.BARCODE IS NULL THEN P.BARCODE
-                                             ELSE NULL END) AS OK_P,
-                                COUNT(distinct CASE WHEN ( P.GOODSLEVELTYPEID = 4 OR P.GOODSLEVELTYPEID = 5 ) AND P.PROCEDUREID = 13  AND tpp.checktime >= date'" + Convert.ToDateTime(context.Request["datebeginMaster"]).ToString("yyyy-MM-dd") + @"'
+                                0 AS OK_P,
+                                COUNT(distinct CASE WHEN p.flag = 1 and  ( P.GOODSLEVELTYPEID = 4 OR P.GOODSLEVELTYPEID = 5 ) AND P.PROCEDUREID = 13  AND tpp.checktime >= date'" + Convert.ToDateTime(context.Request["datebeginMaster"]).ToString("yyyy-MM-dd") + @"'
                                            AND tpp.checktime <= date'" + Convert.ToDateTime(context.Request["dateendMaster"]).AddSeconds(1).ToString("yyyy-MM-dd") + @"'  AND p.maxproductiondataid IS NULL THEN P.BARCODE
                                              ELSE NULL END ) AS OK_B,
-                                COUNT(distinct CASE WHEN ( P.GOODSLEVELTYPEID = 4 OR P.GOODSLEVELTYPEID = 5 ) AND P.PROCEDUREID = 35  AND tpp.checktime >= date'" + Convert.ToDateTime(context.Request["datebeginMaster"]).ToString("yyyy-MM-dd") + @"'
+                                COUNT(distinct CASE WHEN p.flag = 1 and  ( P.GOODSLEVELTYPEID = 4 OR P.GOODSLEVELTYPEID = 5 ) AND P.PROCEDUREID = 35  AND tpp.checktime >= date'" + Convert.ToDateTime(context.Request["datebeginMaster"]).ToString("yyyy-MM-dd") + @"'
                                            AND tpp.checktime <= date'" + Convert.ToDateTime(context.Request["dateendMaster"]).AddSeconds(1).ToString("yyyy-MM-dd") + @"' AND p.maxproductiondataid IS NULL THEN P.BARCODE
                                              ELSE NULL END ) AS OK_R,
-                                COUNT(distinct CASE WHEN ( P.GOODSLEVELTYPEID = 4 OR P.GOODSLEVELTYPEID = 5 ) AND NOT p.maxproductiondataid IS NULL THEN P.BARCODE
-                                             ELSE NULL END ) AS OK_L,
-                                COUNT(distinct DECODE( P.GOODSLEVELTYPEID, 4, P.PRODUCTIONDATAID, 5, P.PRODUCTIONDATAID, NULL ) ) AS OK_ALL ,
-                                SUM( CASE WHEN P.GOODSLEVELTYPEID NOT IN (4,5) AND D.DEFECTID IN(9) AND P.PROCEDUREID = 13 THEN 1 ELSE 0 END) AS DNUM1,
-                                SUM( CASE WHEN P.GOODSLEVELTYPEID NOT IN (4,5) AND D.DEFECTID IN(11) AND P.PROCEDUREID = 13 THEN 1 ELSE 0 END) AS DNUM2,
-                                SUM( CASE WHEN P.GOODSLEVELTYPEID NOT IN (4,5) AND D.DEFECTID IN(9) AND P.PROCEDUREID = 35 THEN 1 ELSE 0 END) AS DNUM3,
-                                SUM( CASE WHEN P.GOODSLEVELTYPEID NOT IN (4,5) AND D.DEFECTID IN(11) AND P.PROCEDUREID = 35 THEN 1 ELSE 0 END) AS DNUM4
+                                COUNT(distinct CASE WHEN p.flag = 0 and  ( P.GOODSLEVELTYPEID = 4 OR P.GOODSLEVELTYPEID = 5 ) AND (pdd.procedureid = 22 OR pdd.procedureid = 23) AND  p.maxproductiondataid IS NOT NULL THEN P.BARCODE ELSE NULL END ) AS OK_L,
+ COUNT(distinct CASE WHEN p.flag = 0 and  ( P.GOODSLEVELTYPEID = 4 OR P.GOODSLEVELTYPEID = 5 ) AND  pdd.procedureid = 20  AND  p.maxproductiondataid IS NOT NULL THEN P.BARCODE ELSE NULL END ) AS OK_YM,
+ COUNT(distinct CASE WHEN p.flag = 0 and  ( P.GOODSLEVELTYPEID = 4 OR P.GOODSLEVELTYPEID = 5 ) AND  pdd.procedureid = 37  AND  p.maxproductiondataid IS NOT NULL THEN P.BARCODE ELSE NULL END ) AS OK_DLQ,
+ COUNT(distinct CASE WHEN p.flag = 0 and  ( P.GOODSLEVELTYPEID = 4 OR P.GOODSLEVELTYPEID = 5 ) AND  pdd.procedureid = 41  AND  p.maxproductiondataid IS NOT NULL THEN P.BARCODE ELSE NULL END ) AS OK_CXBL,
+                                -- COUNT(distinct DECODE( P.GOODSLEVELTYPEID, 4, P.PRODUCTIONDATAID, 5, P.PRODUCTIONDATAID, NULL ) ) AS OK_ALL ,
+ 0 OK_ALL ,
+                                SUM( CASE WHEN p.flag = 0 and  P.GOODSLEVELTYPEID NOT IN (4,5) AND D.DEFECTID IN(9) AND P.PROCEDUREID = 13 THEN 1 ELSE 0 END) AS DNUM1,
+                                SUM( CASE WHEN p.flag = 0 and  P.GOODSLEVELTYPEID NOT IN (4,5) AND D.DEFECTID IN(11) AND P.PROCEDUREID = 13 THEN 1 ELSE 0 END) AS DNUM2,
+                                SUM( CASE WHEN p.flag = 0 and  P.GOODSLEVELTYPEID NOT IN (4,5) AND D.DEFECTID IN(9) AND P.PROCEDUREID = 35 THEN 1 ELSE 0 END) AS DNUM3,
+                                SUM( CASE WHEN p.flag = 0 and  P.GOODSLEVELTYPEID NOT IN (4,5) AND D.DEFECTID IN(11) AND P.PROCEDUREID = 35 THEN 1 ELSE 0 END) AS DNUM4
                             FROM
                                 (
                                      TMP_CHECK_PROD_STATISTIC
                                 ) P
-                                LEFT JOIN TP_PM_PRODUCTIONDATA PDP ON P.BARCODE = PDP.BARCODE AND PDP.PROCEDUREID =15  AND PDP.VALUEFLAG = '1'
+                                -- LEFT JOIN TP_PM_PRODUCTIONDATA PDP ON P.BARCODE = PDP.BARCODE AND PDP.PROCEDUREID = 15  AND PDP.VALUEFLAG = '1'
                                 INNER JOIN tp_pm_productiondata tpp  ON tpp.productiondataid = p.productiondataid
-                               --  LEFT JOIN TP_PM_PRODUCTIONDATA PDD ON P.MAXPRODUCTIONDATAID = PDD.PRODUCTIONDATAID AND PDD.PROCEDUREID IN ( 22, 23 )
+                                LEFT JOIN TP_PM_PRODUCTIONDATA PDD ON P.MAXPRODUCTIONDATAID = PDD.PRODUCTIONDATAID  
                                 LEFT JOIN TP_PM_DEFECT D ON D.PRODUCTIONDATAID = P.PRODUCTIONDATAID AND D.DEFECTID IN(9,11)
                                 LEFT JOIN TP_PC_CLASSESDETAIL CD ON P.CLASSESSETTINGID = CD.CLASSESSETTINGID
                                 GROUP BY
@@ -353,7 +469,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                             (CDU.STAFFNAME = @USERNAME@ OR @USERNAME@ IS NULL)
                             AND (J.JOBSID = @JOBSID@ OR @JOBSID@ IS NULL)
                         GROUP BY
-                            GROUPING SETS ( ( U.USERCODE,PP.GOODSCODE,PP.GOODSNAME,CDU.STAFFNAME, U.USERNAME, PP.GOODSMODEL,J.JOBSNAME,PP.釉料,PP.商标 ,G.GOODSSPECIFICATION), ( U.USERCODE ))
+                            GROUPING SETS ( ( U.USERCODE,PP.GOODSCODE,PP.GOODSNAME,CDU.STAFFNAME, U.USERNAME, PP.GOODSMODEL,J.JOBSNAME,PP.釉料,PP.商标 ,G.GOODSSPECIFICATION), ( U.USERCODE ),())
                           HAVING SUM(pp.checknum1) <> 0 OR SUM(pp.checknum2) <> 0 OR SUM(pp.checknum3) <> 0 OR SUM(pp.checknum4) <> 0 
                     --  检验数_本烧  检验数_重烧 首检数_本烧  首检数_重烧 250924 和石磊沟通后暂时把 这四个为0的数据过滤  先不管后面的列的数据情况
                     -- OR SUM(pp.ok_b) <> 0 OR SUM(pp.ok_r) <> 0 OR SUM(pp.ok_l) <> 0 OR SUM(pp.ok_all) <> 0 OR SUM(pp.ok_p) <> 0 OR SUM(pp.dnum1) <> 0 OR SUM(pp.dnum2) <> 0 OR SUM(pp.dnum3) <> 0 OR SUM(pp.dnum4) <> 0

+ 10 - 9
wwwroot/mes/rpt/rpt041/rpt_index.html

@@ -57,7 +57,7 @@
 			   data-options="toolbar: '#tb',method:'get',border:false,singleSelect:true,fit:true,fitColumns:true">
 			<thead>
 				<tr>
-					<th data-options="field:'ROWNO',title:'序号',width:220,align:'center',checkbox:true,hidden:true">SID</th>
+					<!--<th data-options="field:'ROWNO',title:'序号',width:220,align:'center',checkbox:true,hidden:true">SID</th>-->
 					<th data-options="field:'GOODSCODE',title:'产品编码',width:220,align:'center',sortable:false"></th>
 					<th data-options="field:'GOODSNAME',title:'产品名称',width:220,align:'center',sortable:false"></th>
 					<th data-options="field:'DICTIONARYVALUE',title:'釉料',width:220,align:'center',sortable:false"></th>
@@ -106,16 +106,17 @@
 		}
 
 		//导出
-		function tbExport() {
-            var fields = $('#DataGridMaster').datagrid('getColumnFields');
-			var headers = [];
-			for (var i = 0; i < fields.length; i++) {
-				headers.push(fields[i]);
-			}
+		function tbExport() { 
+   //         var fields = $('#DataGridMaster').datagrid('getColumnFields');
+			//var headers = [];
+			//for (var i = 0; i < fields.length; i++) {
+			//	headers.push(fields[i]);
+			//}
+            headers = ['产品编码', '产品名称', '釉料', '商标', '首检日期', '首检工号', '首检姓名', '首检质量', '复检质量', '复检日期', '复检工号', '复检姓名', '产品条码'];
             $('#DataGridMaster').datagridExport({
 				headers: headers,
-				fileName: '导出数据(改判清单).xls',
-                workSheet: '导出数据(改判清单)'
+				fileName: '导出数据(复检记录表).xls',
+                workSheet: '导出数据(复检记录表)'
 			});
 		}