Просмотр исходного кода

年度生产数据统计表增加回收次品数

ztl 2 лет назад
Родитель
Сommit
4d8ff25fee
1 измененных файлов с 79 добавлено и 1 удалено
  1. 79 1
      wwwroot/mes/rpt2/rpt8001/rpt.ashx

+ 79 - 1
wwwroot/mes/rpt2/rpt8001/rpt.ashx

@@ -469,7 +469,39 @@ WITH
 	  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
+		LEFT JOIN TP_PM_DEFECT TPD ON TPD.BARCODE = P.BARCODE
+	WHERE
+	P.CREATETIME >= @DATEBEGIN@ 
+	AND P.CREATETIME < @DATEEND@
+	AND P.GOODSLEVELTYPEID = 7 
+	AND P.VALUEFLAG = 1 
+	AND P.CHECKBATCHNO = 1 
+	AND TPD.defectname is null
+		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 (GDD.TESTFLAG = @TESTFLAG@ OR @TESTFLAG@ IS NULL)
+	GROUP BY
+		GROUPING SETS ( TO_CHAR( P.CREATETIME, 'YYYYMM' ), ( ) )
+),
 质量登记次品数改判 AS
 (
 	SELECT
@@ -694,6 +726,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.GOODSLEVELTYPEID = 7 
+	AND P.VALUEFLAG = 1 
+	AND P.CHECKBATCHNO = 1 
+	AND GDD.RECYCLINGFLAG = 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 (GDD.TESTFLAG = @TESTFLAG@ OR @TESTFLAG@ IS NULL)
+	GROUP BY
+		GROUPING SETS ( TO_CHAR( P.CREATETIME, 'YYYYMM' ), ( ) )
 )
 
 SELECT
@@ -751,6 +815,12 @@ SELECT
 	NVL(质量登记次品数.重烧登记次品数_二部全部,0) - NVL(质量登记次品数改判.重烧登记次品数_二部全部,0) AS 重烧登记次品数_二部全部,
 	NVL(质量登记次品数.重烧登记次品数_三部全部,0) - NVL(质量登记次品数改判.重烧登记次品数_三部全部,0) AS 重烧登记次品数_三部全部,
 
+	NVL(次品未判缺陷数.次品未判缺陷数_一部小件,0)  AS 次品未判缺陷数_一部小件,
+	NVL(次品未判缺陷数.次品未判缺陷数_一部大件,0)  AS 次品未判缺陷数_一部大件,
+	NVL(次品未判缺陷数.次品未判缺陷数_一部全部,0)  AS 次品未判缺陷数_一部全部,
+	NVL(次品未判缺陷数.次品未判缺陷数_二部全部,0)  AS 次品未判缺陷数_二部全部,
+	NVL(次品未判缺陷数.次品未判缺陷数_三部全部,0)  AS 次品未判缺陷数_三部全部,
+
 	NVL(质量登记损坯数.质量登记损坯数_一部小件,0) - NVL(质量登记损坯数撤销.质量登记损坯数_一部小件,0) AS 质量登记损坯数_一部小件,
 	NVL(质量登记损坯数.质量登记损坯数_一部大件,0) - NVL(质量登记损坯数撤销.质量登记损坯数_一部大件,0) AS 质量登记损坯数_一部大件,
 	NVL(质量登记损坯数.质量登记损坯数_一部全部,0) - NVL(质量登记损坯数撤销.质量登记损坯数_一部全部,0) AS 质量登记损坯数_一部全部,
@@ -769,6 +839,12 @@ SELECT
 	NVL(回收数.回收数_二部全部,0) - NVL(回收数撤销.回收数_二部全部,0) AS 回收数_二部全部,
 	NVL(回收数.回收数_三部全部,0) - NVL(回收数撤销.回收数_三部全部,0) AS 回收数_三部全部,
 
+	NVL(回收次品数.回收次品数_一部小件,0)  AS 回收次品数_一部小件,
+	NVL(回收次品数.回收次品数_一部大件,0)  AS 回收次品数_一部大件,
+	NVL(回收次品数.回收次品数_一部全部,0)  AS 回收次品数_一部全部,
+	NVL(回收次品数.回收次品数_二部全部,0)  AS 回收次品数_二部全部,
+	NVL(回收次品数.回收次品数_三部全部,0)  AS 回收次品数_三部全部,
+
 	NVL(注浆和成型报损和入库.入库数_一部小件,0) - NVL(注浆和成型报损和入库.入库数撤销_一部小件,0) AS 入库数_一部小件,
 	NVL(注浆和成型报损和入库.入库数_一部大件,0) - NVL(注浆和成型报损和入库.入库数撤销_一部大件,0) AS 入库数_一部大件,
 	NVL(注浆和成型报损和入库.入库数_一部全部,0) - NVL(注浆和成型报损和入库.入库数撤销_一部全部,0) AS 入库数_一部全部,
@@ -794,6 +870,8 @@ FROM
 	LEFT JOIN 重烧损坯数撤销 ON 拼接日期.时间 = 重烧损坯数撤销.时间
 	LEFT JOIN 回收数 ON 拼接日期.时间 = 回收数.时间
 	LEFT JOIN 回收数撤销 ON 拼接日期.时间 = 回收数撤销.时间
+	LEFT JOIN 回收次品数 ON 拼接日期.时间 = 回收次品数.时间
+	LEFT JOIN 次品未判缺陷数 ON 拼接日期.时间 = 次品未判缺陷数.时间
 ORDER BY 
 	拼接日期.时间
                 ".Replace("YYYYMM",totalMaster)