|
|
@@ -432,70 +432,237 @@ SELECT 检验数.一烧产量
|
|
|
if (context.Request["m"].ToString() == "DefectDetail")
|
|
|
{
|
|
|
string sqlStr = @"WITH 缺陷 AS (
|
|
|
- SELECT
|
|
|
- 缺陷名称,
|
|
|
- 缺陷数量
|
|
|
- FROM
|
|
|
- (
|
|
|
- SELECT
|
|
|
- dfc.DEFECTNAME 缺陷名称,
|
|
|
- COUNT( dfc.DEFECTNAME ) 缺陷数量
|
|
|
- FROM
|
|
|
- TP_PM_DEFECT dfc
|
|
|
- LEFT JOIN TP_MST_DEFECT df ON df.DEFECTID = dfc.DEFECTID
|
|
|
- WHERE
|
|
|
- dfc.VALUEFLAG = 1
|
|
|
- AND ( dfc.CREATETIME ) >= trunc(sysdate)
|
|
|
- AND dfc.DEFECTCODE IN ('01','02','03','04','05','06','07','08','09','10','19','20','25','26','27','28','29','30','12','13','14','15','16','17','18','23','31','32','33','34','35')
|
|
|
- GROUP BY
|
|
|
- dfc.DEFECTNAME
|
|
|
- ORDER BY
|
|
|
- COUNT( dfc.DEFECTNAME ) DESC
|
|
|
- )
|
|
|
- WHERE
|
|
|
- ROWNUM <= 4
|
|
|
- ),
|
|
|
- 其他缺陷 AS (
|
|
|
- SELECT
|
|
|
- SUM(缺陷数量) 其他缺陷数量
|
|
|
- FROM
|
|
|
- (
|
|
|
- SELECT
|
|
|
- dfc.DEFECTNAME 缺陷名称,
|
|
|
- COUNT( dfc.DEFECTNAME ) 缺陷数量
|
|
|
- FROM
|
|
|
- TP_PM_DEFECT dfc
|
|
|
- WHERE
|
|
|
- ( dfc.CREATETIME ) >= trunc(sysdate)
|
|
|
- AND dfc.DEFECTCODE IN ('01','02','03','04','05','06','07','08','09','10','19','20','25','26','27','28','29','30','12','13','14','15','16','17','18','23','31','32','33','34','35')
|
|
|
- GROUP BY
|
|
|
- dfc.DEFECTNAME
|
|
|
- ORDER BY
|
|
|
- COUNT( dfc.DEFECTNAME ) DESC
|
|
|
- )
|
|
|
- WHERE 缺陷名称 not IN(SELECT
|
|
|
- 缺陷名称
|
|
|
- FROM
|
|
|
- (
|
|
|
- SELECT
|
|
|
- dfc.DEFECTNAME 缺陷名称,
|
|
|
- COUNT( dfc.DEFECTNAME ) 缺陷数量
|
|
|
- FROM
|
|
|
- TP_PM_DEFECT dfc
|
|
|
- LEFT JOIN TP_MST_DEFECT df ON df.DEFECTID = dfc.DEFECTID
|
|
|
- WHERE
|
|
|
- dfc.VALUEFLAG = 1
|
|
|
- AND ( dfc.CREATETIME ) >= trunc(sysdate)
|
|
|
- AND dfc.DEFECTCODE IN ('01','02','03','04','05','06','07','08','09','10','19','20','25','26','27','28','29','30','12','13','14','15','16','17','18','23','31','32','33','34','35')
|
|
|
- GROUP BY
|
|
|
- dfc.DEFECTNAME
|
|
|
- ORDER BY
|
|
|
- COUNT( dfc.DEFECTNAME ) DESC
|
|
|
- )
|
|
|
- WHERE
|
|
|
- ROWNUM <= 4 )
|
|
|
+ SELECT *
|
|
|
+ FROM (SELECT mdf.defectname 缺陷名称
|
|
|
+ ,COUNT(DISTINCT CASE
|
|
|
+ WHEN mdf.defectcode IS NOT NULL
|
|
|
+ AND df.barcode IS NOT NULL THEN
|
|
|
+ pd.productiondataid || df.barcode || df.defectcode
|
|
|
+ ELSE
|
|
|
+ NULL
|
|
|
+ END) 缺陷数量
|
|
|
+ FROM (SELECT DISTINCT pd.barcode
|
|
|
+ ,pd.reworkprocedureid
|
|
|
+ ,pd.groutinglinecode
|
|
|
+ ,pd.goodsid
|
|
|
+ ,pd.goodscode
|
|
|
+ ,pd.goodsname
|
|
|
+ ,pd.groutinguserid
|
|
|
+ ,pd.groutingusercode
|
|
|
+ ,pd.groutingdailydetailid
|
|
|
+ ,pd.procedureid AS procedureid
|
|
|
+ ,nvl(pd61.goodsleveltypeid, pd.goodsleveltypeid) goodsleveltypeid
|
|
|
+ ,nvl(pd61.productiondataid, pd.productiondataid) productiondataid
|
|
|
+ ,pd.productiondataid fproductiondataid
|
|
|
+ ,pd.createtime
|
|
|
+ ,pd.logoid
|
|
|
+ FROM (SELECT *
|
|
|
+ FROM (SELECT pd28.groutinglinecode
|
|
|
+ ,pd28.reworkprocedureid
|
|
|
+ ,pd28.barcode
|
|
|
+ ,pd28.createtime
|
|
|
+ ,pd28.goodsid
|
|
|
+ ,pd28.goodsname
|
|
|
+ ,pd28.valueflag
|
|
|
+ ,pd28.goodsleveltypeid
|
|
|
+ ,pd28.goodscode
|
|
|
+ ,pd28.logoid
|
|
|
+ ,pd28.groutinguserid
|
|
|
+ ,pd28.groutingusercode
|
|
|
+ ,pd28.kilncarbatchno
|
|
|
+ ,pd28.productiondataid
|
|
|
+ ,pd28.groutingdailydetailid
|
|
|
+ ,pd24.procedureid
|
|
|
+ ,row_number() over(PARTITION BY pd28.productiondataid ORDER BY pd24.productiondataid DESC) AS rownums
|
|
|
+ FROM tp_pm_productiondata pd28 -- 重烧质量登记
|
|
|
+ INNER JOIN tp_pm_productiondata pd24 -- 重烧修补24 / 冷补42
|
|
|
+ ON pd24.groutingdailydetailid = pd28.groutingdailydetailid
|
|
|
+ WHERE pd28.procedureid = 16 -- 28
|
|
|
+ AND pd28.valueflag = 1
|
|
|
+ AND pd24.valueflag = 1
|
|
|
+ AND pd24.procedureid IN (42, 40, 6, 31) -- 重烧质量登记里包含 重烧修补24 / 冷补42
|
|
|
+ -- 20251027 web报表中以末次质量登记时间节点统计质量数据调整为首次质量登记时间做统计质量数据变更 createtime - > checktime
|
|
|
+ AND pd28.checktime >= trunc(SYSDATE)
|
|
|
+ AND pd24.productiondataid < pd28.productiondataid) t
|
|
|
+ WHERE rownums = 1
|
|
|
+ AND t.procedureid IN (40, 6, 31)) pd
|
|
|
+ LEFT JOIN tp_mst_goods gd
|
|
|
+ ON gd.goodsid = pd.goodsid
|
|
|
+ LEFT JOIN tp_pm_productiondata pd61 -- 重烧质量检测
|
|
|
+ ON pd61.procedureid = 60
|
|
|
+ AND pd61.valueflag = 1
|
|
|
+ AND pd61.groutingdailydetailid = pd.groutingdailydetailid
|
|
|
+ AND pd61.kilncarbatchno = pd.kilncarbatchno
|
|
|
+ AND pd61.productiondataid > pd.productiondataid
|
|
|
+ -- 取最近的数据
|
|
|
+ AND NOT EXISTS (SELECT 1
|
|
|
+ FROM tp_pm_productiondata pd28c -- 重烧质量登记 重复的
|
|
|
+ WHERE pd28c.procedureid = 16 -- 28
|
|
|
+ AND pd28c.valueflag = 1
|
|
|
+ AND pd28c.groutingdailydetailid = pd.groutingdailydetailid
|
|
|
+ AND pd28c.kilncarbatchno = pd.kilncarbatchno
|
|
|
+ AND pd28c.productiondataid > pd.productiondataid
|
|
|
+ AND pd28c.productiondataid < pd61.productiondataid)) pd
|
|
|
+
|
|
|
+ LEFT JOIN tp_pm_defect df
|
|
|
+ ON df.productiondataid IN (pd.productiondataid, pd.fproductiondataid)
|
|
|
+ AND df.valueflag = 1
|
|
|
+ AND df.procedureid NOT IN (61, 28)
|
|
|
+ LEFT JOIN tp_mst_defect mdf
|
|
|
+ ON df.defectid = mdf.defectid
|
|
|
+ AND mdf.defectcode IN ('01'
|
|
|
+ ,'02'
|
|
|
+ ,'03'
|
|
|
+ ,'04'
|
|
|
+ ,'05'
|
|
|
+ ,'06'
|
|
|
+ ,'07'
|
|
|
+ ,'08'
|
|
|
+ ,'09'
|
|
|
+ ,'10'
|
|
|
+ ,'19'
|
|
|
+ ,'20'
|
|
|
+ ,'25'
|
|
|
+ ,'26'
|
|
|
+ ,'27'
|
|
|
+ ,'28'
|
|
|
+ ,'29'
|
|
|
+ ,'30'
|
|
|
+ ,'12'
|
|
|
+ ,'13'
|
|
|
+ ,'14'
|
|
|
+ ,'15'
|
|
|
+ ,'16'
|
|
|
+ ,'17'
|
|
|
+ ,'18'
|
|
|
+ ,'23'
|
|
|
+ ,'31'
|
|
|
+ ,'32'
|
|
|
+ ,'33'
|
|
|
+ ,'34'
|
|
|
+ ,'35')
|
|
|
+ GROUP BY mdf.defectname
|
|
|
+ ORDER BY 缺陷数量 DESC)
|
|
|
+ WHERE rownum <= 4
|
|
|
|
|
|
),
|
|
|
+ 其他缺陷 AS (
|
|
|
+ SELECT SUM(缺陷数量) - SUM(CASE
|
|
|
+ WHEN rownum <= 4 THEN
|
|
|
+ 缺陷数量
|
|
|
+ ELSE
|
|
|
+ NULL
|
|
|
+ END) 其他缺陷数量
|
|
|
+ FROM (SELECT mdf.defectname 缺陷名称
|
|
|
+ ,COUNT(DISTINCT CASE
|
|
|
+ WHEN mdf.defectcode IS NOT NULL
|
|
|
+ AND df.barcode IS NOT NULL THEN
|
|
|
+ pd.productiondataid || df.barcode || df.defectcode
|
|
|
+ ELSE
|
|
|
+ NULL
|
|
|
+ END) 缺陷数量
|
|
|
+ FROM (SELECT DISTINCT pd.barcode
|
|
|
+ ,pd.reworkprocedureid
|
|
|
+ ,pd.groutinglinecode
|
|
|
+ ,pd.goodsid
|
|
|
+ ,pd.goodscode
|
|
|
+ ,pd.goodsname
|
|
|
+ ,pd.groutinguserid
|
|
|
+ ,pd.groutingusercode
|
|
|
+ ,pd.groutingdailydetailid
|
|
|
+ ,pd.procedureid AS procedureid
|
|
|
+ ,nvl(pd61.goodsleveltypeid, pd.goodsleveltypeid) goodsleveltypeid
|
|
|
+ ,nvl(pd61.productiondataid, pd.productiondataid) productiondataid
|
|
|
+ ,pd.productiondataid fproductiondataid
|
|
|
+ ,pd.createtime
|
|
|
+ ,pd.logoid
|
|
|
+ FROM (SELECT *
|
|
|
+ FROM (SELECT pd28.groutinglinecode
|
|
|
+ ,pd28.reworkprocedureid
|
|
|
+ ,pd28.barcode
|
|
|
+ ,pd28.createtime
|
|
|
+ ,pd28.goodsid
|
|
|
+ ,pd28.goodsname
|
|
|
+ ,pd28.valueflag
|
|
|
+ ,pd28.goodsleveltypeid
|
|
|
+ ,pd28.goodscode
|
|
|
+ ,pd28.logoid
|
|
|
+ ,pd28.groutinguserid
|
|
|
+ ,pd28.groutingusercode
|
|
|
+ ,pd28.kilncarbatchno
|
|
|
+ ,pd28.productiondataid
|
|
|
+ ,pd28.groutingdailydetailid
|
|
|
+ ,pd24.procedureid
|
|
|
+ ,row_number() over(PARTITION BY pd28.productiondataid ORDER BY pd24.productiondataid DESC) AS rownums
|
|
|
+ FROM tp_pm_productiondata pd28 -- 重烧质量登记
|
|
|
+ INNER JOIN tp_pm_productiondata pd24 -- 重烧修补24 / 冷补42
|
|
|
+ ON pd24.groutingdailydetailid = pd28.groutingdailydetailid
|
|
|
+ WHERE pd28.procedureid = 16 -- 28
|
|
|
+ AND pd28.valueflag = 1
|
|
|
+ AND pd24.valueflag = 1
|
|
|
+ AND pd24.procedureid IN (42, 40, 6, 31) -- 重烧质量登记里包含 重烧修补24 / 冷补42
|
|
|
+ -- 20251027 web报表中以末次质量登记时间节点统计质量数据调整为首次质量登记时间做统计质量数据变更 createtime - > checktime
|
|
|
+ AND pd28.checktime >= trunc(SYSDATE)
|
|
|
+ AND pd24.productiondataid < pd28.productiondataid) t
|
|
|
+ WHERE rownums = 1
|
|
|
+ AND t.procedureid IN (40, 6, 31)) pd
|
|
|
+ LEFT JOIN tp_mst_goods gd
|
|
|
+ ON gd.goodsid = pd.goodsid
|
|
|
+ LEFT JOIN tp_pm_productiondata pd61 -- 重烧质量检测
|
|
|
+ ON pd61.procedureid = 60
|
|
|
+ AND pd61.valueflag = 1
|
|
|
+ AND pd61.groutingdailydetailid = pd.groutingdailydetailid
|
|
|
+ AND pd61.kilncarbatchno = pd.kilncarbatchno
|
|
|
+ AND pd61.productiondataid > pd.productiondataid
|
|
|
+ -- 取最近的数据
|
|
|
+ AND NOT EXISTS (SELECT 1
|
|
|
+ FROM tp_pm_productiondata pd28c -- 重烧质量登记 重复的
|
|
|
+ WHERE pd28c.procedureid = 16 -- 28
|
|
|
+ AND pd28c.valueflag = 1
|
|
|
+ AND pd28c.groutingdailydetailid = pd.groutingdailydetailid
|
|
|
+ AND pd28c.kilncarbatchno = pd.kilncarbatchno
|
|
|
+ AND pd28c.productiondataid > pd.productiondataid
|
|
|
+ AND pd28c.productiondataid < pd61.productiondataid)) pd
|
|
|
+
|
|
|
+ LEFT JOIN tp_pm_defect df
|
|
|
+ ON df.productiondataid IN (pd.productiondataid, pd.fproductiondataid)
|
|
|
+ AND df.valueflag = 1
|
|
|
+ AND df.procedureid NOT IN (61, 28)
|
|
|
+ LEFT JOIN tp_mst_defect mdf
|
|
|
+ ON df.defectid = mdf.defectid
|
|
|
+ AND mdf.defectcode IN ('01'
|
|
|
+ ,'02'
|
|
|
+ ,'03'
|
|
|
+ ,'04'
|
|
|
+ ,'05'
|
|
|
+ ,'06'
|
|
|
+ ,'07'
|
|
|
+ ,'08'
|
|
|
+ ,'09'
|
|
|
+ ,'10'
|
|
|
+ ,'19'
|
|
|
+ ,'20'
|
|
|
+ ,'25'
|
|
|
+ ,'26'
|
|
|
+ ,'27'
|
|
|
+ ,'28'
|
|
|
+ ,'29'
|
|
|
+ ,'30'
|
|
|
+ ,'12'
|
|
|
+ ,'13'
|
|
|
+ ,'14'
|
|
|
+ ,'15'
|
|
|
+ ,'16'
|
|
|
+ ,'17'
|
|
|
+ ,'18'
|
|
|
+ ,'23'
|
|
|
+ ,'31'
|
|
|
+ ,'32'
|
|
|
+ ,'33'
|
|
|
+ ,'34'
|
|
|
+ ,'35')
|
|
|
+ GROUP BY mdf.defectname
|
|
|
+ ORDER BY 缺陷数量 DESC) ),
|
|
|
检验数
|
|
|
AS
|
|
|
(SELECT COUNT(DISTINCT pd.barcode) AS 一烧出窑数
|