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

+ 6 - 6
wwwroot/mes/rpt/rpt014/rpt_help_new.html

@@ -29,18 +29,18 @@
                                 <br />
                                 A级:   查询范围内的质量登记/重烧质量登记(没经过【研磨/直接冷补/研磨后冷补/堵漏气/刷洗不良】)副品数据。
                                 <br />
-                                AA级:  查询范围内的质量登记/重烧质量登记(经过【研磨/直接冷补/研磨后冷补/堵漏气/刷洗不良】)合格数据。
+                                AA级:  查询范围内的质量登记/重烧质量登记(经过【研磨/直接冷补/研磨后冷补/堵漏气/刷洗不良】)回收合格数据。
                                 <br />
-                                去AA:  查询范围内的质量登记/重烧质量登记(经过【研磨/直接冷补/研磨后冷补/堵漏气/刷洗不良】)去重的数据。
+                                去AA:  查询范围内的质量登记/重烧质量登记判定为次品,下道工序为(【研磨/直接冷补/研磨后冷补/堵漏气/刷洗不良】)去重的数据。
                                 <br />
-                                R级:   查询范围内的质量登记/重烧质量登记(没经过【研磨/直接冷补/研磨后冷补/堵漏气/刷洗不良】)判为重烧且工艺为R级重烧修补的数据。
+                                R级:   查询范围内的质量登记/重烧质量登记(没经过【研磨/直接冷补/研磨后冷补/堵漏气/刷洗不良】)判为重烧,下道工序为R级重烧修补的数据。
                                 <br />
                                 F级: 查询范围内的质量登记/重烧质量登记(没经过研磨/直接冷补/研磨后冷补/堵漏气/刷洗不良)判为废品的数据。。
                                 <br />
                                 UA率:  (U级 + A级 + AA级)/出窑数 *100%。
-                                <br />                                
-                                <div style="color:red;">工序是AA</div> 
-                                检验数(去AA):查询范围内的所有的质量登记/重烧质量登记(第一次经过【研磨/直接冷补/研磨后冷补/堵漏气/刷洗不良】)的数量:
+                                <br />
+                                <div style="color:red;">工序是AA</div>
+                                检验数(去AA):查询范围内的所有的质量登记/重烧质量登记(经过【研磨/直接冷补/研磨后冷补/堵漏气/刷洗不良】)的数量:
                                 <br />
                                 研磨:查询范围内的质量登记/重烧质量登记(经过【研磨】)数据
                                 <br />

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

@@ -46,7 +46,7 @@
         </table>
 
     </div>
-    <div data-options="region:'east',plain:true,border:false,split:true,title:'改判条码'"style="width:50%">
+    <div data-options="region:'east',plain:true,border:false,split:true,title:'变更条码'"style="width:50%">
         <!--表格-->
         <table id="DataGridMasterGridChange"
                data-options="toolbar: '#tb',method:'get',border:false,singleSelect:true,fit:true,fitColumns:true,rownumbers:true,onDblClickCell:dgDblclickcellrightdetail">

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

@@ -103,20 +103,6 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 
             #endregion
             #region 取缺陷拼接串
-            string procedureId = "21,2,6,16,31,25,30,33,7,8,9";
-            if (context.Request["buildingnoMaster"].ToString().IndexOf("2#") >= 0)
-            {
-                //二期 原料21 成型2 施釉6 循环线16     出装/登窑7 烧窑/入窑8 卸窑9
-                procedureId = "21,2,6,16,7,8,9";
-            }
-
-            if (context.Request["buildingnoMaster"].ToString().IndexOf("1#") >= 0)
-            {
-                //一期 原料31 成型25 施釉30 循环线33   出装/登窑7 烧窑/入窑8 卸窑9
-                procedureId = "31,25,30,33,7,8,9";
-            }
-
-
             if (context.Request["buildingnoMaster"].ToString() != "12")
             {
                 buding = "IN('" + context.Request["buildingnoMaster"] + "')";
@@ -125,7 +111,9 @@ public class rpt : IHttpHandler, IReadOnlySessionState
             {
                 buding = "IN(" + "'1#','2#'" + ")";
             }
-            #region 可选缺陷  删除 插入
+           
+            #endregion
+			 #region 可选缺陷  删除 插入
             //d可选缺陷  删除 插入
             string[] denames = new string[] { };
             if (context.Request["defectMaster[]"] is object)
@@ -196,7 +184,6 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                 }
             }
             #endregion 
-            #endregion
             using (IDataAccess conn = DataAccess.Create())
             {
                 if (proc == "13" || proc == "35")
@@ -352,37 +339,27 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 				            INNER JOIN TP_MST_GOODS G ON G.GOODSID = P.GOODSID
 				            INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID
 				            INNER JOIN TP_PC_GROUTINGLINE L ON P.GROUTINGLINEID = L.GROUTINGLINEID
-				            INNER JOIN TP_PM_DEFECT D ON P.PRODUCTIONDATAID = D.PRODUCTIONDATAID --AND (P.GOODSLEVELTYPEID NOT IN (4, 5) OR D.DEFECTID <> 11)
+				            INNER JOIN TP_PM_DEFECT D ON P.PRODUCTIONDATAID = D.PRODUCTIONDATAID 
 				            INNER JOIN TP_MST_DEFECT M ON ( M.DEFECTID = D.DEFECTID AND M.DEFECTID > 0 )
 				            LEFT JOIN TP_PC_PROCEDURE PR ON PR.PROCEDUREID = D.DEFECTPROCEDUREID
 				            INNER JOIN TP_MST_DEFECTGROUP PDP ON PDP.DEFECTID = D.DEFECTID AND PDP.DEFECTGROUPTYPE LIKE '每窑%'
-				            AND ( 
- 
+				            AND (  
 									-- ( PDP.PROCEDUREID1 = PR.PROCEDUREID OR PDP.PROCEDUREID2 = PR.PROCEDUREID )
-									--xuwei 2020-09-01 add 重烧的没有责任工序也算
-									-- OR @PROCEDUREID@ = 35
+									--xuwei 2020-09-01 add 重烧的没有责任工序也算 
 									-- 20250417 改为用 是否走过 tp_mst_defectgroup 缺陷工序分组的 工序id1 工序id2 为基准
 									pdp.procedureid1 = pp.procedureid OR pdp.procedureid2 = pp.procedureid
 								) 
-			            WHERE
-				            P.VALUEFLAG = '1'
-                            AND P.PROCEDUREID = @PROCEDUREID@
-                            AND P.CHECKBATCHNO = 1
-							--xuwei fix 2020-10-09 begin
+			            WHERE P.PROCEDUREID = @PROCEDUREID@				            
+                            -- AND P.VALUEFLAG = '1'
+                            -- AND P.CHECKBATCHNO = 1 
                             AND P.CHECKTIME >= @DATEBEGIN@
                             AND P.CHECKTIME < @DATEEND@
                             --AND P.CREATETIME >= @DATEBEGIN@
-                            --AND P.CREATETIME < @DATEEND@
-							--xuwei fix 2020-10-09 end 
-
+                            --AND P.CREATETIME < @DATEEND@ 
                             AND P.GOODSLEVELTYPEID <> 4
-                            AND (P.KILNID = @KILNID@ OR @KILNID@ IS NULL)
-                            -- AND (P.GOODSCODE = @GOODSCODE@ OR @GOODSCODE@ IS NULL)
-                            --AND (INSTR((@GOODSCODE@),P.GOODSCODE)>0 OR @GOODSCODE@ IS NULL)
+                            AND (P.KILNID = @KILNID@ OR @KILNID@ IS NULL) 
                              AND P.GOODSCODE IN({goodsCodes})
-                            AND L.BUILDINGNO {BUILDINGNO} ) ppp
-				            --XUWEI 2020-07-10 ADD
-				            --AND (NOT D.DEFECTPROCEDUREID IS NULL)
+                            AND L.BUILDINGNO {BUILDINGNO} ) ppp 
 			            GROUP BY GROUPING SETS((ppp.goodstypecode, ppp.goodstypename, ppp.goodscode, (case when INSTR(to_char(ppp.defectgroupname), '施釉缺陷') > 0 then '施釉缺陷' else  to_char(ppp.defectgroupname) end ), ppp.defectname),
                               (ppp.goodstypecode, ppp.goodstypename, ppp.goodscode, (case when INSTR(to_char(ppp.defectgroupname), '施釉缺陷') > 0 then '施釉缺陷' else  to_char(ppp.defectgroupname) end )),
                               (ppp.goodstypecode, ppp.goodstypename, ppp.goodscode),
@@ -417,7 +394,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 						TA.GOODSNAME AS 产品名称,
 						TA.GOODSCODE AS 产品编码						
 						,DECODE( TA.GID, 3, '合计', TA.GOODSTYPENAME ) AS 产品类别  						
-						,DECODE(TA.COUNT_AAF, 0, NULL, TA.COUNT_AAF) AS 检验数
+						,DECODE(TA.count_l, 0, NULL, TA.count_l) AS 检验数
 						,DECODE( TA.COUNT_AA, 0, NULL, TA.COUNT_AA ) AS AA级
 						,DECODE(ta.count_ym, 0, NULL, ta.count_ym) AS 研磨
 						,DECODE(ta.count_lb, 0, NULL, ta.count_lb) AS 直接冷补
@@ -435,14 +412,14 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 								GT.GOODSTYPENAME,
 								G.GOODSCODE,
 								G.GOODSNAME,  
-								SUM( CASE WHEN  T.flagaa = 1  and t.h_flag = 2   THEN 1 ELSE 0 END ) AS  COUNT_AAF, -- 第一次去AA
+								SUM( CASE WHEN  T.flagaa = 1  and t.h_flag = 2   THEN 1 ELSE 0 END ) AS  COUNT_AAF,  
 								SUM( CASE WHEN  T.flagaa = 1  and t.h_flag = 3  THEN 1 ELSE 0 END ) AS  COUNT_AAS,-- 再去AA
 								SUM( CASE WHEN  T.flagaa = 0  and rpd.procedureid = 20 THEN 1 ELSE 0 END ) AS  count_ym , --研磨  
 								SUM( CASE WHEN  T.flagaa = 0  and rpd.procedureid = 22 THEN 1 ELSE 0 END ) AS  count_lb ,--直接冷补, 
 								SUM( CASE WHEN  T.flagaa = 0  and rpd.procedureid = 23 THEN 1 ELSE 0 END ) AS  count_ymlb, --研磨后冷补, 
 								SUM( CASE WHEN  T.flagaa = 0  and rpd.procedureid = 37 THEN 1 ELSE 0 END ) AS   count_dlq ,--堵漏气, 
 								SUM( CASE WHEN  T.flagaa = 0  and rpd.procedureid = 41 THEN 1 ELSE 0 END ) AS  count_sxbl, --刷洗不良,
-								  
+								SUM( CASE WHEN  T.flagaa = 0  and rpd.procedureid IN (22, 23, 37, 20, 41) THEN  1 ELSE 0  END)  count_l  ,
 								SUM( CASE WHEN  T.flagaa = 0  and T.GOODSLEVELTYPEID IN ( 4, 5 ) AND RPD.PROCEDUREID IN ( 22, 23, 37, 20, 41 ) THEN 1 ELSE 0 END ) COUNT_AA, -- 研磨、堵漏气、刷洗不良、直接冷补、研磨冷补合格数
 								SUM( CASE WHEN  T.flagaa = 0  and t.h_flag = 1 and   T.GOODSLEVELTYPEID = 20 THEN 1 ELSE 0 END ) Waste -- 二次以后得报废
 							FROM
@@ -465,8 +442,8 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 								  PD.PROCEDUREID in ( 13 ,35)
 								   AND  PD.VALUEFLAG = '1'
 								   AND PD.CHECKBATCHNO = 1
-								   AND PD.CHECKTIME >= @DATEBEGIN@
-								   AND PD.CHECKTIME < @DATEEND@
+								   AND PD.createtime >= @DATEBEGIN@
+								   AND PD.createtime < @DATEEND@
 								   AND (PD.KILNID = @KILNID@ OR @KILNID@ IS NULL) 
 									AND PD.GOODSCODE IN({goodsCodes})
 								   AND GL.BUILDINGNO {BUILDINGNO}
@@ -548,44 +525,83 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 															,p.goodsleveltypeid
 															,pp.productiondataid
 								 FROM
-									TP_PM_PRODUCTIONDATA P
+									
+									(SELECT PD.PRODUCTIONDATAID
+											  ,MAX(PMAX.PRODUCTIONDATAID) MPDID
+											  ,PD.GOODSLEVELTYPEID
+											  ,PD.GOODSID
+											  ,PD.GROUTINGDAILYDETAILID
+										  FROM TP_PM_PRODUCTIONDATA PD
+										 INNER JOIN TP_PM_PRODUCTIONDATA PMAX
+											ON PMAX.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID
+										   AND PMAX.PRODUCTIONDATAID < PD.PRODUCTIONDATAID
+										   AND PMAX.VALUEFLAG = '1'
+										   AND PMAX.PROCEDUREMODEL = '1'
+											  /*20  研磨 22  直接冷补 23  研磨后冷补(非回收) 37  堵漏气 41  刷洗不良*/
+										   AND PMAX.PROCEDUREID IN (20, 22, 23, 37, 41)
+										 INNER JOIN TP_PC_GROUTINGLINE GL
+											ON GL.GROUTINGLINEID = PD.GROUTINGLINEID
+										 WHERE PD.PROCEDUREID IN (13, 35)
+										   AND PD.VALUEFLAG = '1'
+										   AND PD.CHECKBATCHNO = 1
+										   AND PD.createtime >= @DATEBEGIN@
+										   AND PD.createtime < @DATEEND@
+										   AND PD.GOODSLEVELTYPEID = 20
+										   AND (PD.KILNID = @KILNID@ OR @KILNID@ IS NULL) 
+										   AND PD.GOODSCODE IN({goodsCodes})
+										   AND GL.BUILDINGNO {BUILDINGNO}
+										 GROUP BY PD.PRODUCTIONDATAID
+												 ,PD.GOODSLEVELTYPEID
+												 ,PD.GOODSID
+												 ,PD.GROUTINGDAILYDETAILID
+										UNION ALL
+										SELECT PD.PRODUCTIONDATAID
+											  ,MAX(PMAX.PRODUCTIONDATAID) MPDID
+											  ,PD.GOODSLEVELTYPEID
+											  ,PD.GOODSID
+											  ,PD.GROUTINGDAILYDETAILID
+										  FROM TP_PM_PRODUCTIONDATA PD
+										 INNER JOIN TP_PM_PRODUCTIONDATA PMAX
+											ON PMAX.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID
+										   AND PMAX.PRODUCTIONDATAID < PD.PRODUCTIONDATAID
+										   AND PMAX.VALUEFLAG = '1'
+										   AND PMAX.PROCEDUREMODEL = '1'
+											  /*20  研磨 22  直接冷补 23  研磨后冷补(非回收) 37  堵漏气 41  刷洗不良*/
+										   AND PMAX.PROCEDUREID IN (20, 22, 23, 37, 41)
+										 INNER JOIN TP_PC_GROUTINGLINE GL
+											ON GL.GROUTINGLINEID = PD.GROUTINGLINEID
+										 WHERE PD.PROCEDUREID IN (13, 35)
+											  -- AND PD.VALUEFLAG = '1'
+											  -- AND PD.CHECKBATCHNO = 1
+										   AND PD.CREATETIME >= @DATEBEGIN@
+										   AND PD.CREATETIME < @DATEEND@
+										   AND PD.CHECKBATCHNO > 1
+										   AND PD.GOODSLEVELTYPEID <> 4	
+										   AND (PD.KILNID = @KILNID@ OR @KILNID@ IS NULL) 
+										   AND PD.GOODSCODE IN({goodsCodes})
+										   AND GL.BUILDINGNO {BUILDINGNO}
+										 GROUP BY PD.PRODUCTIONDATAID
+												 ,PD.GOODSLEVELTYPEID
+												 ,PD.GOODSID
+												 ,PD.GROUTINGDAILYDETAILID
+										)  P
 									-- 缺陷工序分组的 工序id1 工序id2 对应
 									inner join   tp_pm_productiondata pp on p.groutingdailydetailid = pp.groutingdailydetailid  and pp.valueflag = '1'
                                
 									INNER JOIN TP_MST_GOODS G ON G.GOODSID = P.GOODSID
-									INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID
-									INNER JOIN TP_PC_GROUTINGLINE L ON P.GROUTINGLINEID = L.GROUTINGLINEID
+									INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID 
 									INNER JOIN TP_PM_DEFECT D ON P.PRODUCTIONDATAID = D.PRODUCTIONDATAID --AND (P.GOODSLEVELTYPEID NOT IN (4, 5) OR D.DEFECTID <> 11)
 									INNER JOIN TP_MST_DEFECT M ON ( M.DEFECTID = D.DEFECTID AND M.DEFECTID > 0 )
 									LEFT JOIN TP_PC_PROCEDURE PR ON PR.PROCEDUREID = D.DEFECTPROCEDUREID
 									INNER JOIN TP_MST_DEFECTGROUP PDP ON PDP.DEFECTID = D.DEFECTID AND PDP.DEFECTGROUPTYPE LIKE '每窑%'
-									AND ( 
- 
+									AND (  
 											-- ( PDP.PROCEDUREID1 = PR.PROCEDUREID OR PDP.PROCEDUREID2 = PR.PROCEDUREID )
 											--xuwei 2020-09-01 add 重烧的没有责任工序也算
 											-- OR @PROCEDUREID@ = 35
 											-- 20250417 改为用 是否走过 tp_mst_defectgroup 缺陷工序分组的 工序id1 工序id2 为基准
 											pdp.procedureid1 = pp.procedureid OR pdp.procedureid2 = pp.procedureid
 										) 
-								WHERE
-									P.VALUEFLAG = '1'
-									AND P.PROCEDUREID  in ( 13 ,35)
-									AND P.CHECKBATCHNO = 1
-									--xuwei fix 2020-10-09 begin
-									AND P.CHECKTIME >= @DATEBEGIN@
-									AND P.CHECKTIME < @DATEEND@
-									--AND P.CREATETIME >= @DATEBEGIN@
-									--AND P.CREATETIME < @DATEEND@
-									--xuwei fix 2020-10-09 end 
-
-									AND P.GOODSLEVELTYPEID <> 4
-									AND (P.KILNID = @KILNID@ OR @KILNID@ IS NULL)
-									-- AND (P.GOODSCODE = @GOODSCODE@ OR @GOODSCODE@ IS NULL)
-									--AND (INSTR((@GOODSCODE@),P.GOODSCODE)>0 OR @GOODSCODE@ IS NULL)
-									 AND P.GOODSCODE IN({goodsCodes})
-									AND L.BUILDINGNO {BUILDINGNO} ) ppp
-									--XUWEI 2020-07-10 ADD
-									--AND (NOT D.DEFECTPROCEDUREID IS NULL)
+								  ) ppp 
 								GROUP BY GROUPING SETS((ppp.goodstypecode, ppp.goodstypename, ppp.goodscode, (case when INSTR(to_char(ppp.defectgroupname), '施釉缺陷') > 0 then '施釉缺陷' else  to_char(ppp.defectgroupname) end ), ppp.defectname),
 									  (ppp.goodstypecode, ppp.goodstypename, ppp.goodscode, (case when INSTR(to_char(ppp.defectgroupname), '施釉缺陷') > 0 then '施釉缺陷' else  to_char(ppp.defectgroupname) end )),
 									  (ppp.goodstypecode, ppp.goodstypename, ppp.goodscode),

+ 129 - 57
wwwroot/mes/rpt/rpt014/rptnew_detail.ashx

@@ -118,8 +118,7 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
 										  ,TO_CHAR(PD.CREATETIME, 'YYYY-MM-DD')
 							 FROM TP_PM_PRODUCTIONDATA PD 
 							  INNER JOIN TP_PC_GROUTINGLINE GL ON GL.GROUTINGLINEID = PD.GROUTINGLINEID
-								WHERE
-                           PD.PROCEDUREID in ( {PROCEDUREID} ) 
+								WHERE  PD.PROCEDUREID in ( {PROCEDUREID} ) 
                             -- AND PD.VALUEFLAG = '1'
                            -- AND PD.CHECKBATCHNO = 1 
                            AND PD.CREATETIME >= @DATEBEGIN@
@@ -181,13 +180,12 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                     }
                 case "检验数":
                     {
-                        sqlDetail = @" SELECT  DISTINCT '" + gs + @"' 产品编码,   T.Barcode  产品条码				            
+                        sqlDetail = @" SELECT  DISTINCT '" + gs + @"' 产品编码, T.Barcode  产品条码				            
 			            FROM
 				            (SELECT to_char(pd.Barcode) Barcode
                               ,MAX(pmax.productiondataid) mpdid
                               ,pd.goodsleveltypeid
                               ,pd.goodsid 
-                               ,pd.checkbatchno 
                               ,CASE
                                    WHEN SUM(pmax.productiondataid) > 0 THEN
                                     1
@@ -204,16 +202,17 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                            AND pmax.procedureid IN (20, 22, 23, 37, 41)
                          INNER JOIN tp_pc_groutingline gl
                             ON gl.groutinglineid = pd.groutinglineid
-                         WHERE   pd.procedureid in ( {PROCEDUREID} ) 
-                           AND pd.CHECKTIME >= @DATEBEGIN@
-                           AND pd.CHECKTIME < @DATEEND@
+                         WHERE pd.valueflag = '1'
+                           AND pd.procedureid in ( {PROCEDUREID} )
+                           AND pd.checkbatchno = 1
+                           AND pd.createtime >= @DATEBEGIN@
+                           AND pd.createtime < @DATEEND@
                            AND (pd.kilnid = @KILNID@ OR @KILNID@ IS NULL)
                            AND pd.goodscode IN( '" + gs + @"' )
                            AND gl.buildingno {BUILDINGNO}
                          GROUP BY pd.Barcode
                                  ,pd.goodsleveltypeid
-                                 ,pd.goodsid ,pd.checkbatchno  ) T  
-                                where    mpdid > 0 and checkbatchno = 1  ";
+                                 ,pd.goodsid  ) T  LEFT JOIN TP_PM_PRODUCTIONDATA RPD ON RPD.PRODUCTIONDATAID = T.MPDID  where  rpd.procedureid IN (22, 23, 37, 20, 41)  ";
                         break;
                     }
                 case "再去AA":
@@ -224,15 +223,9 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                               ,MAX(pmax.productiondataid) mpdid
                               ,pd.goodsleveltypeid
                               ,pd.goodsid 
-                               ,pd.checkbatchno 
-                              ,CASE
-                                   WHEN SUM(pmax.productiondataid) > 0 THEN
-                                    1
-                                   ELSE
-                                    0
-                               END h_flag 
+                              ,pd.checkbatchno                              
                           FROM tp_pm_productiondata pd
-                          LEFT JOIN tp_pm_productiondata pmax
+                          INNER JOIN tp_pm_productiondata pmax
                             ON pmax.groutingdailydetailid = pd.groutingdailydetailid
                            AND pmax.productiondataid < pd.productiondataid
                            AND pmax.valueflag = '1'
@@ -242,15 +235,15 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                          INNER JOIN tp_pc_groutingline gl
                             ON gl.groutinglineid = pd.groutinglineid
                          WHERE   pd.procedureid in ( {PROCEDUREID} ) 
-                           AND pd.CHECKTIME >= @DATEBEGIN@
-                           AND pd.CHECKTIME < @DATEEND@
+                           AND pd.createtime >= @DATEBEGIN@
+                           AND pd.createtime < @DATEEND@ 
                            AND (pd.kilnid = @KILNID@ OR @KILNID@ IS NULL)
                            AND pd.goodscode IN( '" + gs + @"' )
                            AND gl.buildingno {BUILDINGNO}
                          GROUP BY pd.Barcode
                                  ,pd.goodsleveltypeid
                                  ,pd.goodsid ,pd.checkbatchno  ) T  
-                                where    mpdid > 0 and checkbatchno > 1  ";
+                                where mpdid > 0 and checkbatchno > 1  ";
                         break;
                     }
                 case "F级":
@@ -291,8 +284,8 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                          WHERE pd.valueflag = '1'
                            AND pd.procedureid in ( {PROCEDUREID} )
                            AND pd.checkbatchno = 1
-                           AND pd.CHECKTIME >= @DATEBEGIN@
-                           AND pd.CHECKTIME < @DATEEND@
+                           AND pd.createtime >= @DATEBEGIN@
+                           AND pd.createtime < @DATEEND@
                            AND (pd.kilnid = @KILNID@ OR @KILNID@ IS NULL)
                            AND pd.goodscode IN( '" + gs + @"' )
                            AND gl.buildingno {BUILDINGNO}
@@ -328,8 +321,8 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                          WHERE pd.valueflag = '1'
                            AND pd.procedureid in ( {PROCEDUREID} )
                            AND pd.checkbatchno = 1
-                           AND pd.CHECKTIME >= @DATEBEGIN@
-                           AND pd.CHECKTIME < @DATEEND@
+                           AND pd.createtime >= @DATEBEGIN@
+                           AND pd.createtime < @DATEEND@
                            AND (pd.kilnid = @KILNID@ OR @KILNID@ IS NULL)
                            AND pd.goodscode IN( '" + gs + @"' )
                            AND gl.buildingno {BUILDINGNO}
@@ -365,8 +358,8 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                          WHERE pd.valueflag = '1'
                            AND pd.procedureid in ( {PROCEDUREID} )
                            AND pd.checkbatchno = 1
-                           AND pd.CHECKTIME >= @DATEBEGIN@
-                           AND pd.CHECKTIME < @DATEEND@
+                           AND pd.createtime >= @DATEBEGIN@
+                           AND pd.createtime < @DATEEND@
                            AND (pd.kilnid = @KILNID@ OR @KILNID@ IS NULL)
                            AND pd.goodscode IN( '" + gs + @"' )
                            AND gl.buildingno {BUILDINGNO}
@@ -402,8 +395,8 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                          WHERE pd.valueflag = '1'
                            AND pd.procedureid in ( {PROCEDUREID} )
                            AND pd.checkbatchno = 1
-                           AND pd.CHECKTIME >= @DATEBEGIN@
-                           AND pd.CHECKTIME < @DATEEND@
+                           AND pd.createtime >= @DATEBEGIN@
+                           AND pd.createtime < @DATEEND@
                            AND (pd.kilnid = @KILNID@ OR @KILNID@ IS NULL)
                            AND pd.goodscode IN( '" + gs + @"' )
                            AND gl.buildingno {BUILDINGNO}
@@ -439,8 +432,8 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                          WHERE pd.valueflag = '1'
                            AND pd.procedureid in ( {PROCEDUREID} )
                            AND pd.checkbatchno = 1
-                           AND pd.CHECKTIME >= @DATEBEGIN@
-                           AND pd.CHECKTIME < @DATEEND@
+                           AND pd.createtime >= @DATEBEGIN@
+                           AND pd.createtime < @DATEEND@
                            AND (pd.kilnid = @KILNID@ OR @KILNID@ IS NULL)
                            AND pd.goodscode IN( '" + gs + @"' )
                            AND gl.buildingno {BUILDINGNO}
@@ -454,33 +447,112 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                         // 缺陷的详细条码
                         if (fields.Contains("_") && !fields.Contains("合计"))
                         {
-                            sqlDetail = @"SELECT DISTINCT  '" + gs + @"' 产品编码,  p.Barcode  产品条码	
-			             FROM
-				            TP_PM_PRODUCTIONDATA P
-							-- 缺陷工序分组的 工序id1 工序id2 对应
-							inner join   tp_pm_productiondata pp on p.groutingdailydetailid = pp.groutingdailydetailid  and pp.valueflag = '1'                               
-				            INNER JOIN TP_MST_GOODS G ON G.GOODSID = P.GOODSID
-				            INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID
-				            INNER JOIN TP_PC_GROUTINGLINE L ON P.GROUTINGLINEID = L.GROUTINGLINEID
-				            INNER JOIN TP_PM_DEFECT D ON P.PRODUCTIONDATAID = D.PRODUCTIONDATAID  
-				            INNER JOIN TP_MST_DEFECT M ON ( M.DEFECTID = D.DEFECTID AND M.DEFECTID > 0 )
-				            LEFT JOIN TP_PC_PROCEDURE PR ON PR.PROCEDUREID = D.DEFECTPROCEDUREID
-				            INNER JOIN TP_MST_DEFECTGROUP PDP ON PDP.DEFECTID = D.DEFECTID AND PDP.DEFECTGROUPTYPE LIKE '每窑%'
-				            AND ( 
-									pdp.procedureid1 = pp.procedureid OR pdp.procedureid2 = pp.procedureid
-								) 
-			            WHERE
-				            P.VALUEFLAG = '1'
-                            AND P.PROCEDUREID in ( {PROCEDUREID} )
-                            AND P.CHECKBATCHNO = 1
-                            AND P.CHECKTIME >= @DATEBEGIN@
-                            AND P.CHECKTIME < @DATEEND@ 
-                            AND P.GOODSLEVELTYPEID <> 4
-                            AND (P.KILNID = @KILNID@ OR @KILNID@ IS NULL)
-                             AND P.GOODSCODE IN( '" + gs + @"')
-                            and to_char(pdp.defectgroupname || '_' || m.defectname)  =  '" + fields + @"'
-                            AND L.BUILDINGNO {BUILDINGNO} 
-                             and not  (d.defectid = 11 AND (p.goodsleveltypeid = 4 OR p.goodsleveltypeid = 5)) ";
+                            if (proc == "13" || proc == "35")
+                            {
+                                sqlDetail = @"SELECT DISTINCT  '" + gs + @"' 产品编码,  p.Barcode  产品条码	
+			                             FROM
+				                            TP_PM_PRODUCTIONDATA P
+							                -- 缺陷工序分组的 工序id1 工序id2 对应
+							                inner join   tp_pm_productiondata pp on p.groutingdailydetailid = pp.groutingdailydetailid  and pp.valueflag = '1'                               
+				                            INNER JOIN TP_MST_GOODS G ON G.GOODSID = P.GOODSID
+				                            INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID
+				                            INNER JOIN TP_PC_GROUTINGLINE L ON P.GROUTINGLINEID = L.GROUTINGLINEID
+				                            INNER JOIN TP_PM_DEFECT D ON P.PRODUCTIONDATAID = D.PRODUCTIONDATAID  
+				                            INNER JOIN TP_MST_DEFECT M ON ( M.DEFECTID = D.DEFECTID AND M.DEFECTID > 0 )
+				                            LEFT JOIN TP_PC_PROCEDURE PR ON PR.PROCEDUREID = D.DEFECTPROCEDUREID
+				                            INNER JOIN TP_MST_DEFECTGROUP PDP ON PDP.DEFECTID = D.DEFECTID AND PDP.DEFECTGROUPTYPE LIKE '每窑%'
+				                            AND ( 
+									                pdp.procedureid1 = pp.procedureid OR pdp.procedureid2 = pp.procedureid
+								                ) 
+			                            WHERE
+				                            P.VALUEFLAG = '1'
+                                            AND P.PROCEDUREID in ( {PROCEDUREID} )
+                                            AND P.CHECKBATCHNO = 1
+                                            AND P.CHECKTIME >= @DATEBEGIN@
+                                            AND P.CHECKTIME < @DATEEND@ 
+                                            AND P.GOODSLEVELTYPEID <> 4
+                                            AND (P.KILNID = @KILNID@ OR @KILNID@ IS NULL)
+                                             AND P.GOODSCODE IN( '" + gs + @"')
+                                            and to_char(pdp.defectgroupname || '_' || m.defectname)  =  '" + fields + @"'
+                                            AND L.BUILDINGNO {BUILDINGNO} 
+                                             and not  (d.defectid = 11 AND (p.goodsleveltypeid = 4 OR p.goodsleveltypeid = 5)) ";
+                            }
+                            else
+                            {
+                                sqlDetail = @"SELECT DISTINCT  '" + gs + @"' 产品编码,  p.Barcode  产品条码	
+			                             FROM
+				                            (SELECT PD.PRODUCTIONDATAID
+											  ,MAX(PMAX.PRODUCTIONDATAID) MPDID
+											  ,PD.GOODSLEVELTYPEID
+											  ,PD.GOODSID
+											  ,PD.GROUTINGDAILYDETAILID
+										  FROM TP_PM_PRODUCTIONDATA PD
+										 INNER JOIN TP_PM_PRODUCTIONDATA PMAX
+											ON PMAX.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID
+										   AND PMAX.PRODUCTIONDATAID < PD.PRODUCTIONDATAID
+										   AND PMAX.VALUEFLAG = '1'
+										   AND PMAX.PROCEDUREMODEL = '1'
+											  /*20  研磨 22  直接冷补 23  研磨后冷补(非回收) 37  堵漏气 41  刷洗不良*/
+										   AND PMAX.PROCEDUREID IN (20, 22, 23, 37, 41)
+										 INNER JOIN TP_PC_GROUTINGLINE GL
+											ON GL.GROUTINGLINEID = PD.GROUTINGLINEID
+										 WHERE PD.PROCEDUREID IN (13, 35)
+										   AND PD.VALUEFLAG = '1'
+										   AND PD.CHECKBATCHNO = 1
+										   AND PD.createtime >= @DATEBEGIN@
+										   AND PD.createtime < @DATEEND@
+										   AND PD.GOODSLEVELTYPEID = 20
+										   AND (PD.KILNID = @KILNID@ OR @KILNID@ IS NULL) 
+										   AND PD.GOODSCODE IN( '" + gs + @"')
+										   AND GL.BUILDINGNO {BUILDINGNO}
+										 GROUP BY PD.PRODUCTIONDATAID
+												 ,PD.GOODSLEVELTYPEID
+												 ,PD.GOODSID
+												 ,PD.GROUTINGDAILYDETAILID
+										UNION ALL
+										SELECT PD.PRODUCTIONDATAID
+											  ,MAX(PMAX.PRODUCTIONDATAID) MPDID
+											  ,PD.GOODSLEVELTYPEID
+											  ,PD.GOODSID
+											  ,PD.GROUTINGDAILYDETAILID
+										  FROM TP_PM_PRODUCTIONDATA PD
+										 INNER JOIN TP_PM_PRODUCTIONDATA PMAX
+											ON PMAX.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID
+										   AND PMAX.PRODUCTIONDATAID < PD.PRODUCTIONDATAID
+										   AND PMAX.VALUEFLAG = '1'
+										   AND PMAX.PROCEDUREMODEL = '1'
+											  /*20  研磨 22  直接冷补 23  研磨后冷补(非回收) 37  堵漏气 41  刷洗不良*/
+										   AND PMAX.PROCEDUREID IN (20, 22, 23, 37, 41)
+										 INNER JOIN TP_PC_GROUTINGLINE GL
+											ON GL.GROUTINGLINEID = PD.GROUTINGLINEID
+										 WHERE PD.PROCEDUREID IN (13, 35)
+											  -- AND PD.VALUEFLAG = '1'
+											  -- AND PD.CHECKBATCHNO = 1
+										   AND PD.CREATETIME >= @DATEBEGIN@
+										   AND PD.CREATETIME < @DATEEND@
+										   AND PD.CHECKBATCHNO > 1
+										   AND PD.GOODSLEVELTYPEID <> 4	
+										   AND (PD.KILNID = @KILNID@ OR @KILNID@ IS NULL) 
+										   AND PD.GOODSCODE IN( '" + gs + @"')
+										   AND GL.BUILDINGNO {BUILDINGNO}
+										 GROUP BY PD.PRODUCTIONDATAID
+												 ,PD.GOODSLEVELTYPEID
+												 ,PD.GOODSID
+												 ,PD.GROUTINGDAILYDETAILID
+										)  P
+							                -- 缺陷工序分组的 工序id1 工序id2 对应
+							                inner join   tp_pm_productiondata pp on p.groutingdailydetailid = pp.groutingdailydetailid  and pp.valueflag = '1'                               
+				                            INNER JOIN TP_MST_GOODS G ON G.GOODSID = P.GOODSID
+				                            INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID 
+				                            INNER JOIN TP_PM_DEFECT D ON P.PRODUCTIONDATAID = D.PRODUCTIONDATAID  
+				                            INNER JOIN TP_MST_DEFECT M ON ( M.DEFECTID = D.DEFECTID AND M.DEFECTID > 0 )
+				                            LEFT JOIN TP_PC_PROCEDURE PR ON PR.PROCEDUREID = D.DEFECTPROCEDUREID
+				                            INNER JOIN TP_MST_DEFECTGROUP PDP ON PDP.DEFECTID = D.DEFECTID AND PDP.DEFECTGROUPTYPE LIKE '每窑%'
+				                            AND ( 
+									                pdp.procedureid1 = pp.procedureid OR pdp.procedureid2 = pp.procedureid
+								                )   and  to_char(pdp.defectgroupname || '_' || m.defectname)  =  '" + fields + @"' ";
+                            }
+
                         }
                         break;
                     }

+ 145 - 467
wwwroot/mes/rpt/rpt014/rptnew_detail_change.ashx

@@ -87,34 +87,13 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
             #endregion
 
             // 各个列的明细数据
-            string sqlDetail = "";
-            switch (fields)
-            {
-                case "出窑数":
-                    {
-                        sqlDetail = @" SELECT  DISTINCT '" + gs + @"' 产品编码, TO_CHAR(pd.Barcode)	产品条码				            
-			            FROM
-				            TP_PM_PRODUCTIONDATA PD
-				            INNER JOIN TP_PC_GROUTINGLINE GL ON GL.GROUTINGLINEID = PD.GROUTINGLINEID   
-			            WHERE
-                           PD.PROCEDUREID in ( {PROCEDUREID} )
-                           AND PD.CHECKFLAG = 1
-                           AND PD.CREATETIME >= @DATEBEGIN@
-                           AND PD.CREATETIME < @DATEEND@
-                           AND to_char(PD.createtime, 'YYYY-MM-DD') <> to_char(PD.checktime, 'YYYY-MM-DD')
-                           AND (PD.KILNID = @KILNID@ OR @KILNID@ IS NULL) 
-                           AND PD.GOODSCODE IN( '" + gs + @"' )
-                           AND GL.BUILDINGNO {BUILDINGNO} ";
-                        break;
-                    }
-                case "U级":
-                    {
-                        sqlDetail = @" SELECT  DISTINCT '" + gs + @"' 产品编码,  Barcode  产品条码				            
+            string sqlDetail = @" SELECT  DISTINCT '" + gs + @"' 产品编码,  T.Barcode  产品条码				            
 			            FROM
 				            (SELECT to_char(pd.Barcode)  Barcode
                               ,MAX(pmax.productiondataid) mpdid
                               ,pd.goodsleveltypeid
                               ,pd.goodsid 
+                              ,pd.checkbatchno 
                               ,CASE
                                    WHEN SUM(pmax.productiondataid) > 0 THEN
                                     1
@@ -142,469 +121,90 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                            AND gl.buildingno {BUILDINGNO}
                          GROUP BY pd.Barcode
                                  ,pd.goodsleveltypeid
-                                 ,pd.goodsid  ) T  ";
-
+                                 ,pd.goodsid ,pd.checkbatchno  ) T  ";
+            switch (fields)
+            {
+                case "出窑数":
+                    {
+                        sqlDetail = @" SELECT  DISTINCT '" + gs + @"' 产品编码, TO_CHAR(pd.Barcode)	产品条码				            
+			            FROM
+				            TP_PM_PRODUCTIONDATA PD
+				            INNER JOIN TP_PC_GROUTINGLINE GL ON GL.GROUTINGLINEID = PD.GROUTINGLINEID   
+			            WHERE
+                           PD.PROCEDUREID in ( {PROCEDUREID} )
+                           AND PD.CHECKFLAG = 1
+                           AND PD.CREATETIME >= @DATEBEGIN@
+                           AND PD.CREATETIME < @DATEEND@
+                           AND to_char(PD.createtime, 'YYYY-MM-DD') <> to_char(PD.checktime, 'YYYY-MM-DD')
+                           AND (PD.KILNID = @KILNID@ OR @KILNID@ IS NULL) 
+                           AND PD.GOODSCODE IN( '" + gs + @"' )
+                           AND GL.BUILDINGNO {BUILDINGNO} ";
+                        break;
+                    }
+                case "U级":
+                    {
+                        sqlDetail += @"   where T.GOODSLEVELTYPEID = 4 and T.H_FLAG = 0 ";
                         break;
                     }
                 case "A级":
                     {
-                        sqlDetail = @" SELECT  DISTINCT '" + gs + @"' 产品编码,  Barcode  产品条码				            
-			            FROM
-				            (SELECT to_char(pd.Barcode) Barcode
-                              ,MAX(pmax.productiondataid) mpdid
-                              ,pd.goodsleveltypeid
-                              ,pd.goodsid 
-                              ,CASE
-                                   WHEN SUM(pmax.productiondataid) > 0 THEN
-                                    1
-                                   ELSE
-                                    0
-                               END h_flag 
-                          FROM tp_pm_productiondata pd
-                          LEFT JOIN tp_pm_productiondata pmax
-                            ON pmax.groutingdailydetailid = pd.groutingdailydetailid
-                           AND pmax.productiondataid < pd.productiondataid
-                           AND pmax.valueflag = '1'
-                           AND pmax.proceduremodel = '1'
-                              /*20  研磨 22  直接冷补 23  研磨后冷补(非回收) 37  堵漏气 41  刷洗不良*/
-                           AND pmax.procedureid IN (20, 22, 23, 37, 41)
-                         INNER JOIN tp_pc_groutingline gl
-                            ON gl.groutinglineid = pd.groutinglineid
-                         WHERE pd.valueflag = '1'
-                           AND pd.procedureid in ( {PROCEDUREID} )
-                           AND pd.checkbatchno = 1
-                           AND pd.createtime >= @DATEBEGIN@
-                           AND pd.createtime < @DATEEND@
-                           AND to_char(PD.createtime, 'YYYY-MM-DD') <> to_char(PD.checktime, 'YYYY-MM-DD')
-                           AND (pd.kilnid = @KILNID@ OR @KILNID@ IS NULL)
-                           AND pd.goodscode IN( '" + gs + @"' )
-                           AND gl.buildingno {BUILDINGNO}
-                         GROUP BY pd.Barcode
-                                 ,pd.goodsleveltypeid
-                                 ,pd.goodsid  ) T  ";
+                        sqlDetail += @"  where T.GOODSLEVELTYPEID = 5 and T.H_FLAG = 0";
                         break;
                     }
                 case "AA级":
                     {
-                        sqlDetail = @" SELECT  DISTINCT '" + gs + @"' 产品编码, T.Barcode  产品条码				            
-			            FROM
-				            (SELECT to_char(pd.Barcode) Barcode
-                              ,MAX(pmax.productiondataid) mpdid
-                              ,pd.goodsleveltypeid
-                              ,pd.goodsid 
-                              ,CASE
-                                   WHEN SUM(pmax.productiondataid) > 0 THEN
-                                    1
-                                   ELSE
-                                    0
-                               END h_flag 
-                          FROM tp_pm_productiondata pd
-                          LEFT JOIN tp_pm_productiondata pmax
-                            ON pmax.groutingdailydetailid = pd.groutingdailydetailid
-                           AND pmax.productiondataid < pd.productiondataid
-                           AND pmax.valueflag = '1'
-                           AND pmax.proceduremodel = '1'
-                              /*20  研磨 22  直接冷补 23  研磨后冷补(非回收) 37  堵漏气 41  刷洗不良*/
-                           AND pmax.procedureid IN (20, 22, 23, 37, 41)
-                         INNER JOIN tp_pc_groutingline gl
-                            ON gl.groutinglineid = pd.groutinglineid
-                         WHERE pd.valueflag = '1'
-                           AND pd.procedureid in ( {PROCEDUREID} )
-                           AND pd.checkbatchno = 1
-                           AND pd.createtime >= @DATEBEGIN@
-                           AND pd.createtime < @DATEEND@
-                           AND to_char(PD.createtime, 'YYYY-MM-DD') <> to_char(PD.checktime, 'YYYY-MM-DD')
-                           AND (pd.kilnid = @KILNID@ OR @KILNID@ IS NULL)
-                           AND pd.goodscode IN( '" + gs + @"' )
-                           AND gl.buildingno {BUILDINGNO}
-                         GROUP BY pd.Barcode
-                                 ,pd.goodsleveltypeid
-                                 ,pd.goodsid  ) T  LEFT JOIN TP_PM_PRODUCTIONDATA RPD ON RPD.PRODUCTIONDATAID = T.MPDID    ";
+                        sqlDetail += @"   LEFT JOIN TP_PM_PRODUCTIONDATA RPD ON RPD.PRODUCTIONDATAID = T.MPDID where  T.GOODSLEVELTYPEID IN ( 4, 5 ) AND RPD.PROCEDUREID IN ( 22, 23, 37, 20, 41 )  ";
                         break;
                     }
                 case "去AA":
                     {
-                        sqlDetail = @" SELECT  DISTINCT '" + gs + @"' 产品编码,   T.Barcode  产品条码				            
-			            FROM
-				            (SELECT to_char(pd.Barcode) Barcode
-                              ,MAX(pmax.productiondataid) mpdid
-                              ,pd.goodsleveltypeid
-                              ,pd.goodsid 
-                              ,CASE
-                                   WHEN SUM(pmax.productiondataid) > 0 THEN
-                                    1
-                                   ELSE
-                                    0
-                               END h_flag 
-                          FROM tp_pm_productiondata pd
-                          LEFT JOIN tp_pm_productiondata pmax
-                            ON pmax.groutingdailydetailid = pd.groutingdailydetailid
-                           AND pmax.productiondataid < pd.productiondataid
-                           AND pmax.valueflag = '1'
-                           AND pmax.proceduremodel = '1'
-                              /*20  研磨 22  直接冷补 23  研磨后冷补(非回收) 37  堵漏气 41  刷洗不良*/
-                           AND pmax.procedureid IN (20, 22, 23, 37, 41)
-                         INNER JOIN tp_pc_groutingline gl
-                            ON gl.groutinglineid = pd.groutinglineid
-                         WHERE pd.valueflag = '1'
-                           AND pd.procedureid in ( {PROCEDUREID} )
-                           AND pd.checkbatchno = 1
-                           AND pd.createtime >= @DATEBEGIN@
-                           AND pd.createtime < @DATEEND@
-
-                           AND to_char(PD.createtime, 'YYYY-MM-DD') <> to_char(PD.checktime, 'YYYY-MM-DD')
-                           AND (pd.kilnid = @KILNID@ OR @KILNID@ IS NULL)
-                           AND pd.goodscode IN( '" + gs + @"' )
-                           AND gl.buildingno {BUILDINGNO}
-                         GROUP BY pd.Barcode
-                                 ,pd.goodsleveltypeid
-                                 ,pd.goodsid  ) T  
-                                 ";
+                        sqlDetail += @"  where  T.GOODSLEVELTYPEID = 7  ";
                         break;
                     }
-                        case "检验数":
+                case "检验数":
                     {
-                        sqlDetail = @" SELECT  DISTINCT '" + gs + @"' 产品编码,   T.Barcode  产品条码				            
-			            FROM
-				            (SELECT to_char(pd.Barcode) Barcode
-                              ,MAX(pmax.productiondataid) mpdid
-                              ,pd.goodsleveltypeid
-                              ,pd.goodsid 
-                               ,pd.checkbatchno 
-                              ,CASE
-                                   WHEN SUM(pmax.productiondataid) > 0 THEN
-                                    1
-                                   ELSE
-                                    0
-                               END h_flag 
-                          FROM tp_pm_productiondata pd
-                          LEFT JOIN tp_pm_productiondata pmax
-                            ON pmax.groutingdailydetailid = pd.groutingdailydetailid
-                           AND pmax.productiondataid < pd.productiondataid
-                           AND pmax.valueflag = '1'
-                           AND pmax.proceduremodel = '1'
-                              /*20  研磨 22  直接冷补 23  研磨后冷补(非回收) 37  堵漏气 41  刷洗不良*/
-                           AND pmax.procedureid IN (20, 22, 23, 37, 41)
-                         INNER JOIN tp_pc_groutingline gl
-                            ON gl.groutinglineid = pd.groutinglineid
-                         WHERE  pd.procedureid in ( {PROCEDUREID} ) 
-                           AND pd.createtime >= @DATEBEGIN@
-                           AND pd.createtime < @DATEEND@
-                            AND to_char(PD.createtime, 'YYYY-MM-DD') <> to_char(PD.checktime, 'YYYY-MM-DD')
-                           AND (pd.kilnid = @KILNID@ OR @KILNID@ IS NULL)
-                           AND pd.goodscode IN( '" + gs + @"' )
-                           AND gl.buildingno {BUILDINGNO}
-                         GROUP BY pd.Barcode
-                                 ,pd.goodsleveltypeid
-                                 ,pd.goodsid ,pd.checkbatchno  ) T  
-                                where    mpdid > 0 and checkbatchno = 1  ";
+                        sqlDetail += @"    LEFT JOIN TP_PM_PRODUCTIONDATA RPD ON RPD.PRODUCTIONDATAID = T.MPDID  where  rpd.procedureid IN (22, 23, 37, 20, 41)   ";
                         break;
                     }
                 case "再去AA":
                     {
-                        sqlDetail = @" SELECT  DISTINCT '" + gs + @"' 产品编码,   T.Barcode  产品条码				            
-			            FROM
-				            (SELECT to_char(pd.Barcode) Barcode
-                              ,MAX(pmax.productiondataid) mpdid
-                              ,pd.goodsleveltypeid
-                              ,pd.goodsid 
-                               ,pd.checkbatchno 
-                              ,CASE
-                                   WHEN SUM(pmax.productiondataid) > 0 THEN
-                                    1
-                                   ELSE
-                                    0
-                               END h_flag 
-                          FROM tp_pm_productiondata pd
-                          LEFT JOIN tp_pm_productiondata pmax
-                            ON pmax.groutingdailydetailid = pd.groutingdailydetailid
-                           AND pmax.productiondataid < pd.productiondataid
-                           AND pmax.valueflag = '1'
-                           AND pmax.proceduremodel = '1'
-                              /*20  研磨 22  直接冷补 23  研磨后冷补(非回收) 37  堵漏气 41  刷洗不良*/
-                           AND pmax.procedureid IN (20, 22, 23, 37, 41)
-                         INNER JOIN tp_pc_groutingline gl
-                            ON gl.groutinglineid = pd.groutinglineid
-                         WHERE  pd.procedureid in ( {PROCEDUREID} ) 
-                           AND pd.createtime >= @DATEBEGIN@
-                           AND pd.createtime < @DATEEND@
-                            AND to_char(PD.createtime, 'YYYY-MM-DD') <> to_char(PD.checktime, 'YYYY-MM-DD')
-                           AND (pd.kilnid = @KILNID@ OR @KILNID@ IS NULL)
-                           AND pd.goodscode IN( '" + gs + @"' )
-                           AND gl.buildingno {BUILDINGNO}
-                         GROUP BY pd.Barcode
-                                 ,pd.goodsleveltypeid
-                                 ,pd.goodsid ,pd.checkbatchno  ) T  
-                                where    mpdid > 0 and checkbatchno > 1  ";
+                        sqlDetail += @"   where mpdid > 0 and checkbatchno > 1  ";
                         break;
                     }
                 case "F级":
                     {
-                        sqlDetail = @" SELECT  DISTINCT '" + gs + @"' 产品编码,  Barcode  产品条码				            
-			            FROM
-				            (SELECT to_char(pd.Barcode) Barcode
-                              ,MAX(pmax.productiondataid) mpdid
-                              ,pd.goodsleveltypeid
-                              ,pd.goodsid 
-                              ,CASE
-                                   WHEN SUM(pmax.productiondataid) > 0 THEN
-                                    1
-                                   ELSE
-                                    0
-                               END h_flag 
-                          FROM tp_pm_productiondata pd
-                          LEFT JOIN tp_pm_productiondata pmax
-                            ON pmax.groutingdailydetailid = pd.groutingdailydetailid
-                           AND pmax.productiondataid < pd.productiondataid
-                           AND pmax.valueflag = '1'
-                           AND pmax.proceduremodel = '1'
-                              /*20  研磨 22  直接冷补 23  研磨后冷补(非回收) 37  堵漏气 41  刷洗不良*/
-                           AND pmax.procedureid IN (20, 22, 23, 37, 41)
-                         INNER JOIN tp_pc_groutingline gl
-                            ON gl.groutinglineid = pd.groutinglineid
-                         WHERE pd.valueflag = '1'
-                           AND pd.procedureid in ( {PROCEDUREID} )
-                           AND pd.checkbatchno = 1
-                           AND pd.createtime >= @DATEBEGIN@
-                           AND pd.createtime < @DATEEND@
-                           AND to_char(PD.createtime, 'YYYY-MM-DD') <> to_char(PD.checktime, 'YYYY-MM-DD')
-                           AND (pd.kilnid = @KILNID@ OR @KILNID@ IS NULL)
-                           AND pd.goodscode IN( '" + gs + @"' )
-                           AND gl.buildingno {BUILDINGNO}
-                         GROUP BY pd.Barcode
-                                 ,pd.goodsleveltypeid
-                                 ,pd.goodsid  ) T  ";
+                        sqlDetail += @"   where T.GOODSLEVELTYPEID = 20   and T.H_FLAG = "
+                                    + ((proc == "13" || proc == "35") ? 0 : 1);
                         break;
                     }
                 case "R级":
                     {
-                        sqlDetail = @" SELECT  DISTINCT '" + gs + @"' 产品编码,  Barcode  产品条码				            
-			            FROM
-				            (SELECT to_char(pd.Barcode) Barcode
-                              ,MAX(pmax.productiondataid) mpdid
-                              ,pd.goodsleveltypeid
-                              ,pd.goodsid 
-                              ,PD.REWORKPROCEDUREID
-                              ,CASE
-                                   WHEN SUM(pmax.productiondataid) > 0 THEN
-                                    1
-                                   ELSE
-                                    0
-                               END h_flag 
-                          FROM tp_pm_productiondata pd
-                          LEFT JOIN tp_pm_productiondata pmax
-                            ON pmax.groutingdailydetailid = pd.groutingdailydetailid
-                           AND pmax.productiondataid < pd.productiondataid
-                           AND pmax.valueflag = '1'
-                           AND pmax.proceduremodel = '1'
-                              /*20  研磨 22  直接冷补 23  研磨后冷补(非回收) 37  堵漏气 41  刷洗不良*/
-                           AND pmax.procedureid IN (20, 22, 23, 37, 41)
-                         INNER JOIN tp_pc_groutingline gl
-                            ON gl.groutinglineid = pd.groutinglineid
-                         WHERE pd.valueflag = '1'
-                           AND pd.procedureid in ( {PROCEDUREID} )
-                           AND pd.checkbatchno = 1
-                           AND pd.createtime >= @DATEBEGIN@
-                           AND pd.createtime < @DATEEND@
-                            AND to_char(PD.createtime, 'YYYY-MM-DD') <> to_char(PD.checktime, 'YYYY-MM-DD')
-                           AND to_char(PD.createtime, 'YYYY-MM-DD') <> to_char(PD.checktime, 'YYYY-MM-DD')
-                           AND (pd.kilnid = @KILNID@ OR @KILNID@ IS NULL)
-                           AND pd.goodscode IN( '" + gs + @"' )
-                           AND gl.buildingno {BUILDINGNO}
-                         GROUP BY pd.Barcode
-                                 ,pd.goodsleveltypeid
-                                 ,pd.goodsid
-                                 ,pd.reworkprocedureid ) T  ";
+                        sqlDetail += @"   where T.GOODSLEVELTYPEID = 6 AND T.REWORKPROCEDUREID = 19 and T.H_FLAG = 0 ";
                         break;
                     }
                 case "研磨":
                     {
-                        sqlDetail = @" SELECT  DISTINCT '" + gs + @"' 产品编码, T.Barcode  产品条码				            
-			            FROM
-				            (SELECT to_char(pd.Barcode) Barcode
-                              ,MAX(pmax.productiondataid) mpdid
-                              ,pd.goodsleveltypeid
-                              ,pd.goodsid 
-                              ,CASE
-                                   WHEN SUM(pmax.productiondataid) > 0 THEN
-                                    1
-                                   ELSE
-                                    0
-                               END h_flag 
-                          FROM tp_pm_productiondata pd
-                          LEFT JOIN tp_pm_productiondata pmax
-                            ON pmax.groutingdailydetailid = pd.groutingdailydetailid
-                           AND pmax.productiondataid < pd.productiondataid
-                           AND pmax.valueflag = '1'
-                           AND pmax.proceduremodel = '1'
-                              /*20  研磨 22  直接冷补 23  研磨后冷补(非回收) 37  堵漏气 41  刷洗不良*/
-                           AND pmax.procedureid IN (20, 22, 23, 37, 41)
-                         INNER JOIN tp_pc_groutingline gl
-                            ON gl.groutinglineid = pd.groutinglineid
-                         WHERE pd.valueflag = '1'
-                           AND pd.procedureid in ( {PROCEDUREID} )
-                           AND pd.checkbatchno = 1
-                           AND pd.createtime >= @DATEBEGIN@
-                           AND pd.createtime < @DATEEND@
-                            AND to_char(PD.createtime, 'YYYY-MM-DD') <> to_char(PD.checktime, 'YYYY-MM-DD')
-                           AND (pd.kilnid = @KILNID@ OR @KILNID@ IS NULL)
-                           AND pd.goodscode IN( '" + gs + @"' )
-                           AND gl.buildingno {BUILDINGNO}
-                         GROUP BY pd.Barcode
-                                 ,pd.goodsleveltypeid
-                                 ,pd.goodsid  ) T  LEFT JOIN TP_PM_PRODUCTIONDATA RPD ON RPD.PRODUCTIONDATAID = T.MPDID where  rpd.procedureid = 20 ";
+                        sqlDetail += @"   LEFT JOIN TP_PM_PRODUCTIONDATA RPD ON RPD.PRODUCTIONDATAID = T.MPDID where  rpd.procedureid = 20 ";
                         break;
                     }
                 case "直接冷补":
                     {
-                        sqlDetail = @" SELECT  DISTINCT '" + gs + @"' 产品编码, T.Barcode  产品条码				            
-			            FROM
-				            (SELECT to_char(pd.Barcode) Barcode
-                              ,MAX(pmax.productiondataid) mpdid
-                              ,pd.goodsleveltypeid
-                              ,pd.goodsid 
-                              ,CASE
-                                   WHEN SUM(pmax.productiondataid) > 0 THEN
-                                    1
-                                   ELSE
-                                    0
-                               END h_flag 
-                          FROM tp_pm_productiondata pd
-                          LEFT JOIN tp_pm_productiondata pmax
-                            ON pmax.groutingdailydetailid = pd.groutingdailydetailid
-                           AND pmax.productiondataid < pd.productiondataid
-                           AND pmax.valueflag = '1'
-                           AND pmax.proceduremodel = '1'
-                              /*20  研磨 22  直接冷补 23  研磨后冷补(非回收) 37  堵漏气 41  刷洗不良*/
-                           AND pmax.procedureid IN (20, 22, 23, 37, 41)
-                         INNER JOIN tp_pc_groutingline gl
-                            ON gl.groutinglineid = pd.groutinglineid
-                         WHERE pd.valueflag = '1'
-                           AND pd.procedureid in ( {PROCEDUREID} )
-                           AND pd.checkbatchno = 1
-                           AND pd.createtime >= @DATEBEGIN@
-                           AND pd.createtime < @DATEEND@
-                            AND to_char(PD.createtime, 'YYYY-MM-DD') <> to_char(PD.checktime, 'YYYY-MM-DD')
-                           AND (pd.kilnid = @KILNID@ OR @KILNID@ IS NULL)
-                           AND pd.goodscode IN( '" + gs + @"' )
-                           AND gl.buildingno {BUILDINGNO}
-                         GROUP BY pd.Barcode
-                                 ,pd.goodsleveltypeid
-                                 ,pd.goodsid  ) T  LEFT JOIN TP_PM_PRODUCTIONDATA RPD ON RPD.PRODUCTIONDATAID = T.MPDID where  rpd.procedureid = 22 ";
+                        sqlDetail += @"   LEFT JOIN TP_PM_PRODUCTIONDATA RPD ON RPD.PRODUCTIONDATAID = T.MPDID where  rpd.procedureid = 22 ";
                         break;
                     }
                 case "研磨后冷补":
                     {
-                        sqlDetail = @" SELECT  DISTINCT '" + gs + @"' 产品编码, T.Barcode  产品条码				            
-			            FROM
-				            (SELECT to_char(pd.Barcode) Barcode
-                              ,MAX(pmax.productiondataid) mpdid
-                              ,pd.goodsleveltypeid
-                              ,pd.goodsid 
-                              ,CASE
-                                   WHEN SUM(pmax.productiondataid) > 0 THEN
-                                    1
-                                   ELSE
-                                    0
-                               END h_flag 
-                          FROM tp_pm_productiondata pd
-                          LEFT JOIN tp_pm_productiondata pmax
-                            ON pmax.groutingdailydetailid = pd.groutingdailydetailid
-                           AND pmax.productiondataid < pd.productiondataid
-                           AND pmax.valueflag = '1'
-                           AND pmax.proceduremodel = '1'
-                              /*20  研磨 22  直接冷补 23  研磨后冷补(非回收) 37  堵漏气 41  刷洗不良*/
-                           AND pmax.procedureid IN (20, 22, 23, 37, 41)
-                         INNER JOIN tp_pc_groutingline gl
-                            ON gl.groutinglineid = pd.groutinglineid
-                         WHERE pd.valueflag = '1'
-                           AND pd.procedureid in ( {PROCEDUREID} )
-                           AND pd.checkbatchno = 1
-                           AND pd.createtime >= @DATEBEGIN@
-                           AND pd.createtime < @DATEEND@
-                            AND to_char(PD.createtime, 'YYYY-MM-DD') <> to_char(PD.checktime, 'YYYY-MM-DD')
-                           AND (pd.kilnid = @KILNID@ OR @KILNID@ IS NULL)
-                           AND pd.goodscode IN( '" + gs + @"' )
-                           AND gl.buildingno {BUILDINGNO}
-                         GROUP BY pd.Barcode
-                                 ,pd.goodsleveltypeid
-                                 ,pd.goodsid  ) T  LEFT JOIN TP_PM_PRODUCTIONDATA RPD ON RPD.PRODUCTIONDATAID = T.MPDID where  rpd.procedureid = 23 ";
+                        sqlDetail += @"    LEFT JOIN TP_PM_PRODUCTIONDATA RPD ON RPD.PRODUCTIONDATAID = T.MPDID where  rpd.procedureid = 23 ";
                         break;
                     }
                 case "堵漏气":
                     {
-                        sqlDetail = @" SELECT  DISTINCT '" + gs + @"' 产品编码, T.Barcode  产品条码				            
-			            FROM
-				            (SELECT to_char(pd.Barcode) Barcode
-                              ,MAX(pmax.productiondataid) mpdid
-                              ,pd.goodsleveltypeid
-                              ,pd.goodsid 
-                              ,CASE
-                                   WHEN SUM(pmax.productiondataid) > 0 THEN
-                                    1
-                                   ELSE
-                                    0
-                               END h_flag 
-                          FROM tp_pm_productiondata pd
-                          LEFT JOIN tp_pm_productiondata pmax
-                            ON pmax.groutingdailydetailid = pd.groutingdailydetailid
-                           AND pmax.productiondataid < pd.productiondataid
-                           AND pmax.valueflag = '1'
-                           AND pmax.proceduremodel = '1'
-                              /*20  研磨 22  直接冷补 23  研磨后冷补(非回收) 37  堵漏气 41  刷洗不良*/
-                           AND pmax.procedureid IN (20, 22, 23, 37, 41)
-                         INNER JOIN tp_pc_groutingline gl
-                            ON gl.groutinglineid = pd.groutinglineid
-                         WHERE pd.valueflag = '1'
-                           AND pd.procedureid in ( {PROCEDUREID} )
-                           AND pd.checkbatchno = 1
-                           AND pd.createtime >= @DATEBEGIN@
-                           AND pd.createtime < @DATEEND@
-                            AND to_char(PD.createtime, 'YYYY-MM-DD') <> to_char(PD.checktime, 'YYYY-MM-DD')
-                           AND (pd.kilnid = @KILNID@ OR @KILNID@ IS NULL)
-                           AND pd.goodscode IN( '" + gs + @"' )
-                           AND gl.buildingno {BUILDINGNO}
-                         GROUP BY pd.Barcode
-                                 ,pd.goodsleveltypeid
-                                 ,pd.goodsid  ) T  LEFT JOIN TP_PM_PRODUCTIONDATA RPD ON RPD.PRODUCTIONDATAID = T.MPDID where  rpd.procedureid = 37 ";
+                        sqlDetail += @"    LEFT JOIN TP_PM_PRODUCTIONDATA RPD ON RPD.PRODUCTIONDATAID = T.MPDID where  rpd.procedureid = 37 ";
                         break;
                     }
                 case "刷洗不良":
                     {
-                        sqlDetail = @" SELECT  DISTINCT '" + gs + @"' 产品编码, T.Barcode  产品条码				            
-			            FROM
-				            (SELECT to_char(pd.Barcode) Barcode
-                              ,MAX(pmax.productiondataid) mpdid
-                              ,pd.goodsleveltypeid
-                              ,pd.goodsid 
-                              ,CASE
-                                   WHEN SUM(pmax.productiondataid) > 0 THEN
-                                    1
-                                   ELSE
-                                    0
-                               END h_flag 
-                          FROM tp_pm_productiondata pd
-                          LEFT JOIN tp_pm_productiondata pmax
-                            ON pmax.groutingdailydetailid = pd.groutingdailydetailid
-                           AND pmax.productiondataid < pd.productiondataid
-                           AND pmax.valueflag = '1'
-                           AND pmax.proceduremodel = '1'
-                              /*20  研磨 22  直接冷补 23  研磨后冷补(非回收) 37  堵漏气 41  刷洗不良*/
-                           AND pmax.procedureid IN (20, 22, 23, 37, 41)
-                         INNER JOIN tp_pc_groutingline gl
-                            ON gl.groutinglineid = pd.groutinglineid
-                         WHERE pd.valueflag = '1'
-                           AND pd.procedureid in ( {PROCEDUREID} )
-                           AND pd.checkbatchno = 1
-                           AND pd.createtime >= @DATEBEGIN@
-                           AND pd.createtime < @DATEEND@
-                            AND to_char(PD.createtime, 'YYYY-MM-DD') <> to_char(PD.checktime, 'YYYY-MM-DD')
-                           AND (pd.kilnid = @KILNID@ OR @KILNID@ IS NULL)
-                           AND pd.goodscode IN( '" + gs + @"' )
-                           AND gl.buildingno {BUILDINGNO}
-                         GROUP BY pd.Barcode
-                                 ,pd.goodsleveltypeid
-                                 ,pd.goodsid  ) T  LEFT JOIN TP_PM_PRODUCTIONDATA RPD ON RPD.PRODUCTIONDATAID = T.MPDID where  rpd.procedureid = 41 ";
+                        sqlDetail += @"   LEFT JOIN TP_PM_PRODUCTIONDATA RPD ON RPD.PRODUCTIONDATAID = T.MPDID where  rpd.procedureid = 41 ";
                         break;
                     }
                 default:
@@ -612,34 +212,112 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                         // 缺陷的详细条码
                         if (fields.Contains("_") && !fields.Contains("合计"))
                         {
-                            sqlDetail = @"SELECT DISTINCT  '" + gs + @"' 产品编码,  p.Barcode  产品条码	
-			             FROM
-				            TP_PM_PRODUCTIONDATA P
-							-- 缺陷工序分组的 工序id1 工序id2 对应
-							inner join   tp_pm_productiondata pp on p.groutingdailydetailid = pp.groutingdailydetailid  and pp.valueflag = '1'                               
-				            INNER JOIN TP_MST_GOODS G ON G.GOODSID = P.GOODSID
-				            INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID
-				            INNER JOIN TP_PC_GROUTINGLINE L ON P.GROUTINGLINEID = L.GROUTINGLINEID
-				            INNER JOIN TP_PM_DEFECT D ON P.PRODUCTIONDATAID = D.PRODUCTIONDATAID  
-				            INNER JOIN TP_MST_DEFECT M ON ( M.DEFECTID = D.DEFECTID AND M.DEFECTID > 0 )
-				            LEFT JOIN TP_PC_PROCEDURE PR ON PR.PROCEDUREID = D.DEFECTPROCEDUREID
-				            INNER JOIN TP_MST_DEFECTGROUP PDP ON PDP.DEFECTID = D.DEFECTID AND PDP.DEFECTGROUPTYPE LIKE '每窑%'
-				            AND ( 
-									pdp.procedureid1 = pp.procedureid OR pdp.procedureid2 = pp.procedureid
-								) 
-			            WHERE
-				            P.VALUEFLAG = '1'
-                            AND P.PROCEDUREID in ( {PROCEDUREID} )
-                            AND P.CHECKBATCHNO = 1
-                            AND P.CHECKTIME >= @DATEBEGIN@
-                            AND P.CHECKTIME < @DATEEND@ 
-                            AND to_char(P.createtime, 'YYYY-MM-DD') <> to_char(P.checktime, 'YYYY-MM-DD')
-                            AND P.GOODSLEVELTYPEID <> 4
-                            AND (P.KILNID = @KILNID@ OR @KILNID@ IS NULL)
-                             AND P.GOODSCODE IN( '" + gs + @"')
-                            and to_char(pdp.defectgroupname || '_' || m.defectname)  =  '" + fields + @"'
-                            AND L.BUILDINGNO {BUILDINGNO} 
-                             and not  (d.defectid = 11 AND (p.goodsleveltypeid = 4 OR p.goodsleveltypeid = 5)) ";
+                            if (proc == "13" || proc == "35")
+                            {
+                                sqlDetail = @"SELECT DISTINCT  '" + gs + @"' 产品编码,  p.Barcode  产品条码	
+			                             FROM
+				                            TP_PM_PRODUCTIONDATA P
+							                -- 缺陷工序分组的 工序id1 工序id2 对应
+							                inner join   tp_pm_productiondata pp on p.groutingdailydetailid = pp.groutingdailydetailid  and pp.valueflag = '1'                               
+				                            INNER JOIN TP_MST_GOODS G ON G.GOODSID = P.GOODSID
+				                            INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID
+				                            INNER JOIN TP_PC_GROUTINGLINE L ON P.GROUTINGLINEID = L.GROUTINGLINEID
+				                            INNER JOIN TP_PM_DEFECT D ON P.PRODUCTIONDATAID = D.PRODUCTIONDATAID  
+				                            INNER JOIN TP_MST_DEFECT M ON ( M.DEFECTID = D.DEFECTID AND M.DEFECTID > 0 )
+				                            LEFT JOIN TP_PC_PROCEDURE PR ON PR.PROCEDUREID = D.DEFECTPROCEDUREID
+				                            INNER JOIN TP_MST_DEFECTGROUP PDP ON PDP.DEFECTID = D.DEFECTID AND PDP.DEFECTGROUPTYPE LIKE '每窑%'
+				                            AND ( 
+									                pdp.procedureid1 = pp.procedureid OR pdp.procedureid2 = pp.procedureid
+								                ) 
+			                            WHERE
+				                            P.VALUEFLAG = '1'
+                                            AND P.PROCEDUREID in ( {PROCEDUREID} )
+                                            AND P.CHECKBATCHNO = 1
+                                            AND P.CHECKTIME >= @DATEBEGIN@
+                                            AND P.CHECKTIME < @DATEEND@ 
+                                            AND to_char(P.createtime, 'YYYY-MM-DD') <> to_char(P.checktime, 'YYYY-MM-DD')
+                                            AND P.GOODSLEVELTYPEID <> 4
+                                            AND (P.KILNID = @KILNID@ OR @KILNID@ IS NULL)
+                                             AND P.GOODSCODE IN( '" + gs + @"')
+                                            and to_char(pdp.defectgroupname || '_' || m.defectname)  =  '" + fields + @"'
+                                            AND L.BUILDINGNO {BUILDINGNO} 
+                                             and not  (d.defectid = 11 AND (p.goodsleveltypeid = 4 OR p.goodsleveltypeid = 5)) ";
+                            }
+                            else
+                            {
+                                sqlDetail = @"SELECT DISTINCT  '" + gs + @"' 产品编码,  p.Barcode  产品条码	
+			                             FROM
+				                            (SELECT PD.PRODUCTIONDATAID
+											  ,MAX(PMAX.PRODUCTIONDATAID) MPDID
+											  ,PD.GOODSLEVELTYPEID
+											  ,PD.GOODSID
+											  ,PD.GROUTINGDAILYDETAILID
+										  FROM TP_PM_PRODUCTIONDATA PD
+										 INNER JOIN TP_PM_PRODUCTIONDATA PMAX
+											ON PMAX.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID
+										   AND PMAX.PRODUCTIONDATAID < PD.PRODUCTIONDATAID
+										   AND PMAX.VALUEFLAG = '1'
+										   AND PMAX.PROCEDUREMODEL = '1'
+											  /*20  研磨 22  直接冷补 23  研磨后冷补(非回收) 37  堵漏气 41  刷洗不良*/
+										   AND PMAX.PROCEDUREID IN (20, 22, 23, 37, 41)
+										 INNER JOIN TP_PC_GROUTINGLINE GL
+											ON GL.GROUTINGLINEID = PD.GROUTINGLINEID
+										 WHERE PD.PROCEDUREID IN (13, 35)
+										   AND PD.VALUEFLAG = '1'
+										   AND PD.CHECKBATCHNO = 1
+										   AND PD.createtime >= @DATEBEGIN@
+										   AND PD.createtime < @DATEEND@
+										   AND PD.GOODSLEVELTYPEID = 20
+										   AND (PD.KILNID = @KILNID@ OR @KILNID@ IS NULL) 
+										   AND PD.GOODSCODE IN( '" + gs + @"')
+										   AND GL.BUILDINGNO {BUILDINGNO}
+										 GROUP BY PD.PRODUCTIONDATAID
+												 ,PD.GOODSLEVELTYPEID
+												 ,PD.GOODSID
+												 ,PD.GROUTINGDAILYDETAILID
+										UNION ALL
+										SELECT PD.PRODUCTIONDATAID
+											  ,MAX(PMAX.PRODUCTIONDATAID) MPDID
+											  ,PD.GOODSLEVELTYPEID
+											  ,PD.GOODSID
+											  ,PD.GROUTINGDAILYDETAILID
+										  FROM TP_PM_PRODUCTIONDATA PD
+										 INNER JOIN TP_PM_PRODUCTIONDATA PMAX
+											ON PMAX.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID
+										   AND PMAX.PRODUCTIONDATAID < PD.PRODUCTIONDATAID
+										   AND PMAX.VALUEFLAG = '1'
+										   AND PMAX.PROCEDUREMODEL = '1'
+											  /*20  研磨 22  直接冷补 23  研磨后冷补(非回收) 37  堵漏气 41  刷洗不良*/
+										   AND PMAX.PROCEDUREID IN (20, 22, 23, 37, 41)
+										 INNER JOIN TP_PC_GROUTINGLINE GL
+											ON GL.GROUTINGLINEID = PD.GROUTINGLINEID
+										 WHERE PD.PROCEDUREID IN (13, 35)
+											  -- AND PD.VALUEFLAG = '1'
+											  -- AND PD.CHECKBATCHNO = 1
+										   AND PD.CREATETIME >= @DATEBEGIN@
+										   AND PD.CREATETIME < @DATEEND@
+										   AND PD.CHECKBATCHNO > 1
+										   AND PD.GOODSLEVELTYPEID <> 4	
+										   AND (PD.KILNID = @KILNID@ OR @KILNID@ IS NULL) 
+										   AND PD.GOODSCODE IN( '" + gs + @"')
+										   AND GL.BUILDINGNO {BUILDINGNO}
+										 GROUP BY PD.PRODUCTIONDATAID
+												 ,PD.GOODSLEVELTYPEID
+												 ,PD.GOODSID
+												 ,PD.GROUTINGDAILYDETAILID
+										)  P
+							                -- 缺陷工序分组的 工序id1 工序id2 对应
+							                inner join   tp_pm_productiondata pp on p.groutingdailydetailid = pp.groutingdailydetailid  and pp.valueflag = '1'                               
+				                            INNER JOIN TP_MST_GOODS G ON G.GOODSID = P.GOODSID
+				                            INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID 
+				                            INNER JOIN TP_PM_DEFECT D ON P.PRODUCTIONDATAID = D.PRODUCTIONDATAID  
+				                            INNER JOIN TP_MST_DEFECT M ON ( M.DEFECTID = D.DEFECTID AND M.DEFECTID > 0 )
+				                            LEFT JOIN TP_PC_PROCEDURE PR ON PR.PROCEDUREID = D.DEFECTPROCEDUREID
+				                            INNER JOIN TP_MST_DEFECTGROUP PDP ON PDP.DEFECTID = D.DEFECTID AND PDP.DEFECTGROUPTYPE LIKE '每窑%'
+				                            AND ( 
+									                pdp.procedureid1 = pp.procedureid OR pdp.procedureid2 = pp.procedureid
+								                )   and  to_char(pdp.defectgroupname || '_' || m.defectname)  =  '" + fields + @"' ";
+                            }
                         }
                         break;
                     }