Browse Source

检验数 再去AA

姜永辉 10 tháng trước cách đây
mục cha
commit
d73d3764a3

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

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

+ 45 - 22
wwwroot/mes/rpt/rpt014/rptnew.ashx

@@ -646,13 +646,14 @@ DECODE( TA.GID, 3, '合计', TA.GOODSTYPENAME ) AS 产品类别,
 						TA.GOODSNAME AS 产品名称,
 						TA.GOODSCODE AS 产品编码						
 						,DECODE( TA.GID, 3, '合计', TA.GOODSTYPENAME ) AS 产品类别  						
-						,DECODE(TA.COUNT_U7, 0, NULL, TA.COUNT_U7) AS 检验数
+						,DECODE(TA.COUNT_AAF, 0, NULL, TA.COUNT_AAF) AS 检验数
 						,DECODE( TA.COUNT_AA, 0, NULL, TA.COUNT_AA ) AS AA级
 						,DECODE(ta.count_ym, 0, NULL, ta.count_ym) AS 研磨
 						,DECODE(ta.count_lb, 0, NULL, ta.count_lb) AS 直接冷补
 						,DECODE(ta.count_ymlb, 0, NULL, ta.count_ymlb) AS 研磨后冷补
 						,DECODE(ta.count_dlq, 0, NULL, ta.count_dlq) AS 堵漏气
 						,DECODE(ta.count_sxbl, 0, NULL, ta.count_sxbl) AS 刷洗不良 
+						,DECODE(TA.COUNT_AAS, 0, NULL, TA.COUNT_AAS) AS 再去AA
 						,DECODE( TA.Waste, 0, NULL, TA.Waste ) AS F级						 
 						,TD.* 
 					FROM
@@ -663,15 +664,16 @@ DECODE( TA.GID, 3, '合计', TA.GOODSTYPENAME ) AS 产品类别,
 								GT.GOODSTYPENAME,
 								G.GOODSCODE,
 								G.GOODSNAME,  
-								SUM( CASE WHEN  T.GOODSLEVELTYPEID = 7 THEN 1 ELSE 0 END ) COUNT_U7, -- 直接次品
-								SUM( CASE WHEN  rpd.procedureid = 20 THEN 1 ELSE 0 END ) AS  count_ym , --研磨  
-								SUM( CASE WHEN  rpd.procedureid = 22 THEN 1 ELSE 0 END ) AS  count_lb ,--直接冷补, 
-								SUM( CASE WHEN  rpd.procedureid = 23 THEN 1 ELSE 0 END ) AS  count_ymlb, --研磨后冷补, 
-								SUM( CASE WHEN  rpd.procedureid = 37 THEN 1 ELSE 0 END ) AS   count_dlq ,--堵漏气, 
-								SUM( CASE WHEN  rpd.procedureid = 41 THEN 1 ELSE 0 END ) AS  count_sxbl, --刷洗不良,
-								SUM( CASE WHEN RPD.PROCEDUREID IN ( 22, 23, 37, 20, 41 ) THEN  1 ELSE 0 END ) COUNT_L, -- 研磨、堵漏气、刷洗不良、直接冷补、研磨冷补
-								SUM( CASE WHEN T.GOODSLEVELTYPEID IN ( 4, 5 ) AND RPD.PROCEDUREID IN ( 22, 23, 37, 20, 41 ) THEN 1 ELSE 0 END ) COUNT_AA, -- 研磨、堵漏气、刷洗不良、直接冷补、研磨冷补合格数
-								SUM( CASE WHEN t.h_flag = 1 and   T.GOODSLEVELTYPEID = 20 THEN 1 ELSE 0 END ) Waste -- 二次以后得报废
+								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 = 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 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
 								(
 								 
@@ -680,23 +682,17 @@ DECODE( TA.GID, 3, '合计', TA.GOODSTYPENAME ) AS 产品类别,
 										MAX( PMAX.PRODUCTIONDATAID ) MPDID,
 										PD.GOODSLEVELTYPEID,
 										PD.GOODSID,
-										PD.REWORKPROCEDUREID,
-										0 LB_NUM,
-										0 B_NUM, 
-										0 OUT_K,
-										CASE WHEN sum( PMAX.PRODUCTIONDATAID ) > 0 THEN 1 ELSE 0 END H_FLAG, 
-										0 Waste
+										CASE WHEN sum( PMAX.PRODUCTIONDATAID ) > 0 THEN  1 ELSE 0 END H_FLAG , 0 flagaa
 								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)
-				            
+									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 ( 13 ,35)
+								  PD.PROCEDUREID in ( 13 ,35)
+								   AND  PD.VALUEFLAG = '1'
 								   AND PD.CHECKBATCHNO = 1
 								   AND PD.CREATETIME >= @DATEBEGIN@
 								   AND PD.CREATETIME < @DATEEND@
@@ -706,8 +702,35 @@ DECODE( TA.GID, 3, '合计', TA.GOODSTYPENAME ) AS 产品类别,
 								GROUP BY
 									PD.PRODUCTIONDATAID,
 									PD.GOODSLEVELTYPEID,
-									PD.GOODSID,
-									PD.REWORKPROCEDUREID                              
+									PD.GOODSID   
+								UNION ALL
+								SELECT
+										TO_CHAR(PD.PRODUCTIONDATAID),
+										MAX( PMAX.PRODUCTIONDATAID ) MPDID,
+										PD.GOODSLEVELTYPEID,
+										PD.GOODSID,
+										CASE WHEN sum( PMAX.PRODUCTIONDATAID ) > 0 THEN (CASE WHEN pd.checkbatchno = 1 THEN 2 else 3 end) ELSE 0 END H_FLAG , 1 flagaa
+								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 ( 13 ,35)
+								   -- AND PD.VALUEFLAG = '1'
+								   -- AND PD.CHECKBATCHNO = 1
+								   AND PD.CREATETIME >= @DATEBEGIN@
+								   AND PD.CREATETIME < @DATEEND@
+								   AND (PD.KILNID = @KILNID@ OR @KILNID@ IS NULL) 
+									AND PD.GOODSCODE IN({goodsCodes})
+								   AND GL.BUILDINGNO {BUILDINGNO}
+								GROUP BY
+									PD.PRODUCTIONDATAID,
+									PD.GOODSLEVELTYPEID,
+									PD.GOODSID,pd.checkbatchno
+									
 									) T
 								LEFT JOIN TP_PM_PRODUCTIONDATA RPD ON RPD.PRODUCTIONDATAID = T.MPDID
 								INNER JOIN TP_MST_GOODS G ON G.GOODSID = T.GOODSID

+ 75 - 2
wwwroot/mes/rpt/rpt014/rptnew_detail.ashx

@@ -235,7 +235,6 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                         break;
                     }
                 case "去AA":
-                         case  "检验数":
                     {
                         sqlDetail = @" SELECT  DISTINCT '" + gs + @"' 产品编码,   T.Barcode  产品条码				            
 			            FROM
@@ -273,6 +272,80 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                                 where  T.GOODSLEVELTYPEID = 7  ";
                         break;
                     }
+                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 (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  ";
+                        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 (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  ";
+                        break;
+                    }
                 case "F级":
                     {
                         sqlDetail = @" SELECT  DISTINCT '" + gs + @"' 产品编码,  Barcode  产品条码				            
@@ -572,7 +645,7 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                     }
 
             }
-            sqlDetail = sqlDetail.Replace("{DEFECT}", defectStr).Replace("{BUILDINGNO}", buding).Replace("{PROCEDUREID}",proc);
+            sqlDetail = sqlDetail.Replace("{DEFECT}", defectStr).Replace("{BUILDINGNO}", buding).Replace("{PROCEDUREID}", proc);
             //获取查询条件
             List<CDAParameter> sqlPara = new List<CDAParameter>();
             sqlPara.Add(new CDAParameter("DATEBEGIN", Convert.ToDateTime(context.Request["datebeginMaster"]), DataType.DateTime));

+ 83 - 7
wwwroot/mes/rpt/rpt014/rptnew_detail_change.ashx

@@ -85,7 +85,7 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                 }
             }
             #endregion
-            
+
             // 各个列的明细数据
             string sqlDetail = "";
             switch (fields)
@@ -222,8 +222,7 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                                  ,pd.goodsid  ) T  LEFT JOIN TP_PM_PRODUCTIONDATA RPD ON RPD.PRODUCTIONDATAID = T.MPDID    ";
                         break;
                     }
-                case "去AA" :
-                 case  "检验数":
+                case "去AA":
                     {
                         sqlDetail = @" SELECT  DISTINCT '" + gs + @"' 产品编码,   T.Barcode  产品条码				            
 			            FROM
@@ -252,6 +251,7 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                            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 + @"' )
@@ -262,6 +262,82 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                                  ";
                         break;
                     }
+                        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  ";
+                        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  ";
+                        break;
+                    }
                 case "F级":
                     {
                         sqlDetail = @" SELECT  DISTINCT '" + gs + @"' 产品编码,  Barcode  产品条码				            
@@ -341,7 +417,7 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                                  ,pd.reworkprocedureid ) T  ";
                         break;
                     }
-                        case "研磨":
+                case "研磨":
                     {
                         sqlDetail = @" SELECT  DISTINCT '" + gs + @"' 产品编码, T.Barcode  产品条码				            
 			            FROM
@@ -533,7 +609,7 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                     }
                 default:
                     {
-                       // 缺陷的详细条码
+                        // 缺陷的详细条码
                         if (fields.Contains("_") && !fields.Contains("合计"))
                         {
                             sqlDetail = @"SELECT DISTINCT  '" + gs + @"' 产品编码,  p.Barcode  产品条码	
@@ -569,7 +645,7 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
                     }
 
             }
-            sqlDetail = sqlDetail.Replace("{DEFECT}", defectStr).Replace("{BUILDINGNO}", buding).Replace("{PROCEDUREID}",proc);
+            sqlDetail = sqlDetail.Replace("{DEFECT}", defectStr).Replace("{BUILDINGNO}", buding).Replace("{PROCEDUREID}", proc);
             //获取查询条件
             List<CDAParameter> sqlPara = new List<CDAParameter>();
 
@@ -577,7 +653,7 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
             /* sqlPara.Add(new CDAParameter("DATEBEGIN", Convert.ToDateTime(context.Request["dateendMaster"]).AddSeconds(1).AddDays(-1), DataTy
             pe.DateTime));*/
             sqlPara.Add(new CDAParameter("DATEEND", Convert.ToDateTime(context.Request["dateendMaster"]).AddSeconds(1), DataType.DateTime));
-            sqlPara.Add(new CDAParameter("KILNID", context.Request["kilnidMaster"])); 
+            sqlPara.Add(new CDAParameter("KILNID", context.Request["kilnidMaster"]));
             DataTable dt = conn.ExecuteDatatable(sqlDetail, sqlPara.ToArray());
             string jsonStr = new JsonResult(dt) { total = dt.Rows.Count }.ToJson();
             context.Response.Write(jsonStr);