Selaa lähdekoodia

生产数据统计表-裸辞包装(根据成型线区分二三车间)

qinqi 1 vuosi sitten
vanhempi
commit
657ed0644d
1 muutettua tiedostoa jossa 62 lisäystä ja 26 poistoa
  1. 62 26
      wwwroot/mes/rpt2/rpt8001/rpt.ashx

+ 62 - 26
wwwroot/mes/rpt2/rpt8001/rpt.ashx

@@ -3,9 +3,9 @@
 using System;
 using System.Web;
 using System.Web.SessionState;
-using System.Data; 
+using System.Data;
 using System.Collections.Generic;
-using System.Linq; 
+using System.Linq;
 using Curtain.DataAccess;
 using DK.XuWei.WebMes;
 
@@ -795,6 +795,38 @@ WITH
 	AND (GDD.TESTFLAG = @TESTFLAG@ OR @TESTFLAG@ IS NULL)
 	GROUP BY
 		GROUPING SETS ( TO_CHAR( P.CREATETIME, 'YYYYMM' ), ( ) )
+),
+裸瓷包装数 AS
+(
+	SELECT
+		GROUPING_ID ( TO_CHAR( P.CREATETIME, 'YYYYMM' ) ) AS GID,
+		NVL(TO_CHAR( P.CREATETIME, 'YYYYMM' ),'合计') AS 时间,
+		SUM(CASE WHEN (INSTR( P.GROUTINGLINECODE, 'A' ) = 1) AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1  THEN 1 ELSE 0 END ) AS 裸瓷包装数_一部大件,
+		SUM(CASE WHEN (INSTR( GT.GOODSTYPECODE, '001002' ) = 1)  THEN 1 ELSE 0 END ) AS 裸瓷包装数_一部小件,
+		SUM(CASE WHEN (INSTR( P.GROUTINGLINECODE, 'A' ) = 1 OR INSTR( GT.GOODSTYPECODE, '001002' ) = 1 ) THEN 1 ELSE 0 END ) AS 裸瓷包装数_一部全部,
+        SUM(CASE WHEN ((instr(p.groutinglinecode, 'B') = 1 OR instr(p.groutinglinecode, 'D') = 1) AND instr(gt.goodstypecode, '001001') = 1) THEN 1 ELSE  0 END) AS 裸瓷包装数_二部全部,
+        SUM(CASE WHEN (instr(p.groutinglinecode, 'C') = 1 AND instr(p.groutinglinecode, 'A') = 4 OR instr(p.groutinglinecode, 'C06B') = 1) THEN 1 ELSE 0 END) AS 裸瓷包装数_三部全部,
+        COUNT(*) AS 裸瓷包装数_合计
+	FROM
+		TP_PM_PRODUCTIONDATA P
+		INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = P.GROUTINGDAILYDETAILID
+		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 GL ON P.GROUTINGLINEID = GL.GROUTINGLINEID
+	WHERE
+	P.CREATETIME >= @DATEBEGIN@
+	AND P.CREATETIME < @DATEEND@
+	AND P.PROCEDUREID = 159
+	AND P.VALUEFLAG = 1  
+	AND (G.GOODSID IN ({GOODSID}) OR '{GOODSID}' = '0,0') 
+	AND (GL.GROUTINGLINEID IN ({GROUTINGLINEID}) OR '{GROUTINGLINEID}' = '0,0') 
+	AND (GL.HIGHPRESSUREFLAG = @HIGHPRESSUREFLAG@ OR @HIGHPRESSUREFLAG@ = '-1')
+	--AND (GDD.TESTMOULDFLAG = @TESTMOULDFLAG@ OR @TESTMOULDFLAG@ IS NULL)
+		AND (((@TESTMOULDFLAG@ = 0 AND GDD.TESTMOULDFLAG  = @TESTMOULDFLAG@ AND (GDD.TESTFORMFLAG IN(0,1) OR GDD.TESTFORMFLAG IS NULL ) )) OR
+             (@TESTMOULDFLAG@ = 1 AND (GDD.TESTFORMFLAG = 2 OR GDD.TESTMOULDFLAG  = @TESTMOULDFLAG@))  OR @TESTMOULDFLAG@ IS NULL  OR @TESTMOULDFLAG@ = '') 
+	AND (GDD.TESTFLAG = @TESTFLAG@ OR @TESTFLAG@ IS NULL)
+	GROUP BY
+		GROUPING SETS ( TO_CHAR( P.CREATETIME, 'YYYYMM' ), ( ) )
 )
 
 SELECT
@@ -886,7 +918,10 @@ SELECT
 	NVL(注浆和成型报损和入库.入库数_一部大件,0) - NVL(注浆和成型报损和入库.入库数撤销_一部大件,0) AS 入库数_一部大件,
 	NVL(注浆和成型报损和入库.入库数_一部全部,0) - NVL(注浆和成型报损和入库.入库数撤销_一部全部,0) AS 入库数_一部全部,
 	NVL(注浆和成型报损和入库.入库数_二部全部,0) - NVL(注浆和成型报损和入库.入库数撤销_二部全部,0) AS 入库数_二部全部,
-	NVL(注浆和成型报损和入库.入库数_三部全部,0) - NVL(注浆和成型报损和入库.入库数撤销_三部全部,0) AS 入库数_三部全部
+	NVL(注浆和成型报损和入库.入库数_三部全部,0) - NVL(注浆和成型报损和入库.入库数撤销_三部全部,0) AS 入库数_三部全部,
+
+	NVL(裸瓷包装数.裸瓷包装数_二部全部,0)  AS 裸瓷包装数_二部全部,
+	NVL(裸瓷包装数.裸瓷包装数_三部全部,0)  AS 裸瓷包装数_三部全部
 FROM
 	拼接日期
 	LEFT JOIN 注浆和成型报损和入库 ON 拼接日期.时间 = 注浆和成型报损和入库.时间
@@ -909,6 +944,7 @@ FROM
 	LEFT JOIN 回收数撤销 ON 拼接日期.时间 = 回收数撤销.时间
 	LEFT JOIN 回收次品数 ON 拼接日期.时间 = 回收次品数.时间
 	LEFT JOIN 次品未判缺陷数 ON 拼接日期.时间 = 次品未判缺陷数.时间
+    LEFT JOIN 裸瓷包装数 ON 拼接日期.时间 = 裸瓷包装数.时间
 ORDER BY 
 	拼接日期.时间
                 ".Replace("YYYYMM",totalMaster)
@@ -922,7 +958,7 @@ ORDER BY
                 sqlPara.Add(new CDAParameter("DATEEND", dateEnd, DataType.DateTime));
                 sqlPara.Add(new CDAParameter("HIGHPRESSUREFLAG",highFlag));
                 sqlPara.Add(new CDAParameter("TESTMOULDFLAG",testType));
-                sqlPara.Add(new CDAParameter("TESTFLAG",testFlagMaster)); 
+                sqlPara.Add(new CDAParameter("TESTFLAG",testFlagMaster));
                 //sqlPara.Add(new CDAParameter("PROCEDUREID", context.Request["procedureidMaster"]));
 
                 //行列互换
@@ -950,28 +986,28 @@ ORDER BY
                     }
                     dt2.Rows.Add(dr);
                 }
-				//裸瓷包装数
-				   string strsql3 = @"SELECT  COUNT(DISTINCT P.BARCODE) as count ,TO_CHAR( TRUNC( P.CREATETIME ) , 'YYYYMMDD' ) as time
-                                    FROM TP_PM_PRODUCTIONDATA P
-                                    WHERE P.PROCEDUREID =159
-				                    AND p.VALUEFLAG=1
-                                    AND P.CREATETIME >= to_date('"+dateBegin+"','YYYY-MM-DD HH24:MI:SS')"+
-				                    "AND P.CREATETIME < to_date('"+dateEnd+"','YYYY-MM-DD HH24:MI:SS')"+
-			                        "GROUP BY TRUNC(P.CREATETIME) ORDER BY time";
-                DataTable dt3 = conn.ExecuteDatatable(strsql3);
-                DataRow dr1 = dt2.NewRow();
-                dr1["部门序号"] = "6";
-                dr1["部门"] = "裸瓷包装数";
-                dr1["工序"] = "裸瓷包装";
-                decimal count = 0;
-                for (int i = 0; i <dt3.Rows.Count; i++)
-                {
-                    var num = dt3.AsEnumerable().Where(ex => ex.Field<string>("TIME") == dt.Rows[i]["时间"].ToString()).Select(ex => ex.Field<decimal>("COUNT")).FirstOrDefault();
-                    dr1["日期" + dt.Rows[i]["时间"].ToString()] = num;
-                    count += num;
-                }
-                dr1["日期合计"] =count.ToString();
-                dt2.Rows.Add(dr1);
+                ////裸瓷包装数
+                //   string strsql3 = @"SELECT  COUNT(DISTINCT P.BARCODE) as count ,TO_CHAR( TRUNC( P.CREATETIME ) , 'YYYYMMDD' ) as time
+                //                                FROM TP_PM_PRODUCTIONDATA P
+                //                                WHERE P.PROCEDUREID =159
+                //                    AND p.VALUEFLAG=1
+                //                                AND P.CREATETIME >= to_date('"+dateBegin+"','YYYY-MM-DD HH24:MI:SS')"+
+                //                    "AND P.CREATETIME < to_date('"+dateEnd+"','YYYY-MM-DD HH24:MI:SS')"+
+                //                       "GROUP BY TRUNC(P.CREATETIME) ORDER BY time";
+                //            DataTable dt3 = conn.ExecuteDatatable(strsql3);
+                //            DataRow dr1 = dt2.NewRow();
+                //            dr1["部门序号"] = "6";
+                //            dr1["部门"] = "裸瓷包装数";
+                //            dr1["工序"] = "裸瓷包装";
+                //            decimal count = 0;
+                //            for (int i = 0; i <dt3.Rows.Count; i++)
+                //            {
+                //                var num = dt3.AsEnumerable().Where(ex => ex.Field<string>("TIME") == dt.Rows[i]["时间"].ToString()).Select(ex => ex.Field<decimal>("COUNT")).FirstOrDefault();
+                //                dr1["日期" + dt.Rows[i]["时间"].ToString()] = num;
+                //                count += num;
+                //            }
+                //            dr1["日期合计"] =count.ToString();
+                //            dt2.Rows.Add(dr1);
                 DataView dv = dt2.DefaultView;
                 dv.Sort = "部门序号";
                 dt2.Columns.Remove("部门序号");