|
|
@@ -29,9 +29,9 @@ public class rpt : IHttpHandler, IReadOnlySessionState
|
|
|
DataTable dt = conn.ExecuteDatatable(@" SELECT
|
|
|
DISTINCT MDF.DEFECTCODE AS DC, MDF.DEFECTID,
|
|
|
'CASE WHEN GROUPING_ID(基础数据.工号,基础数据.姓名,部门.部门,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标)=111
|
|
|
- THEN TO_CHAR( ( count(distinct CASE WHEN 基础数据.缺陷ID IN( '''||MDF.DEFECTID||''') THEN to_char(基础数据.缺陷条码||基础数据.缺陷ID) ELSE null END ) / COUNT(DISTINCT 出窑条码) * 100 ), ''fm99990.00'' ) || ''%''
|
|
|
+ THEN TO_CHAR( ( count(distinct CASE WHEN 基础数据.缺陷ID IN( '''||MDF.DEFECTID||''') THEN to_char(productiondataid||基础数据.缺陷条码||基础数据.缺陷ID) ELSE null END ) / COUNT(DISTINCT productiondataid) * 100 ), ''fm99990.00'' ) || ''%''
|
|
|
ELSE
|
|
|
- TO_CHAR(count(distinct CASE WHEN 基础数据.缺陷ID IN( '''||MDF.DEFECTID||''') THEN to_char(基础数据.缺陷条码||基础数据.缺陷ID) ELSE null END )) END' AS DEFECTCODE,
|
|
|
+ TO_CHAR(count(distinct CASE WHEN 基础数据.缺陷ID IN( '''||MDF.DEFECTID||''') THEN to_char(productiondataid||基础数据.缺陷条码||基础数据.缺陷ID) ELSE null END )) END' AS DEFECTCODE,
|
|
|
DECODE(DEFECTCODE,'099' ,'回烧蹦脏','99','本烧蹦脏',MDF.DEFECTNAME) DEFECTNAME
|
|
|
FROM
|
|
|
TP_MST_DEFECT MDF
|
|
|
@@ -48,9 +48,9 @@ public class rpt : IHttpHandler, IReadOnlySessionState
|
|
|
DataTable dts = conn.ExecuteDatatable(@" SELECT
|
|
|
DISTINCT MDF.DEFECTCODE AS DC, MDF.DEFECTID,
|
|
|
'CASE WHEN GROUPING_ID(基础数据.工号,基础数据.姓名,部门.部门,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标)=127
|
|
|
- THEN TO_CHAR( ( count( DISTINCT CASE WHEN 基础数据.缺陷ID IN( '''||MDF.DEFECTID||''') THEN to_char(基础数据.缺陷条码||基础数据.缺陷ID) ELSE null END ) / COUNT(DISTINCT 出窑条码) * 100 ), ''fm99990.00'' ) || ''%''
|
|
|
+ THEN TO_CHAR( ( count( DISTINCT CASE WHEN 基础数据.缺陷ID IN( '''||MDF.DEFECTID||''') THEN to_char(productiondataid||基础数据.缺陷条码||基础数据.缺陷ID) ELSE null END ) / COUNT(DISTINCT productiondataid) * 100 ), ''fm99990.00'' ) || ''%''
|
|
|
ELSE
|
|
|
- TO_CHAR(count( DISTINCT CASE WHEN 基础数据.缺陷ID IN( '''||MDF.DEFECTID||''') THEN to_char(基础数据.缺陷条码||基础数据.缺陷ID) ELSE null END )) END' AS DEFECTCODE,
|
|
|
+ TO_CHAR(count( DISTINCT CASE WHEN 基础数据.缺陷ID IN( '''||MDF.DEFECTID||''') THEN to_char(productiondataid||基础数据.缺陷条码||基础数据.缺陷ID) ELSE null END )) END' AS DEFECTCODE,
|
|
|
DECODE(DEFECTCODE,'099' ,'回烧蹦脏','99','本烧蹦脏',MDF.DEFECTNAME) DEFECTNAME
|
|
|
FROM
|
|
|
TP_MST_DEFECT MDF
|
|
|
@@ -69,15 +69,11 @@ public class rpt : IHttpHandler, IReadOnlySessionState
|
|
|
FROM TP_PC_GROUTINGLINE
|
|
|
),基础数据 AS
|
|
|
(
|
|
|
- SELECT
|
|
|
-pd.GROUTINGLINEID,pd.工号,pd.产品名称,pd.姓名,pd.产品编码,pd.产品规格,pd.釉色,pd.商标,pd.出窑条码,pd.缺陷条码,pd.缺陷ID,pd.缺陷类别,
|
|
|
-GOODSLEVELTYPEID
|
|
|
-FROM(
|
|
|
-SELECT
|
|
|
- GROUTINGLINEID,工号,产品名称,姓名,产品编码,产品规格,釉色,商标,出窑条码,缺陷条码,缺陷ID,缺陷类别,GOODSLEVELTYPEID,
|
|
|
-row_number() over (partition by 出窑条码 order by GOODSLEVELTYPEID DESC ) as rownums
|
|
|
- FROM(
|
|
|
- SELECT
|
|
|
+
|
|
|
+ SELECT
|
|
|
+ GROUTINGLINEID,工号,产品名称,姓名,产品编码,产品规格,釉色,商标,出窑条码,缺陷条码,缺陷ID,缺陷类别,GOODSLEVELTYPEID,productiondataid
|
|
|
+ FROM(
|
|
|
+ SELECT DISTINCT
|
|
|
GDL.GROUTINGLINEID,
|
|
|
gdl.USERCODE AS 工号,
|
|
|
staff.STAFFNAME AS 姓名,
|
|
|
@@ -89,26 +85,37 @@ row_number() over (partition by 出窑条码 order by GOODSLEVELTYPEID DESC ) as
|
|
|
PD.BARCODE 出窑条码,
|
|
|
DF.BARCODE 缺陷条码,
|
|
|
DF.DEFECTID 缺陷ID,
|
|
|
- MDF.DEFECTCODE 缺陷类别,
|
|
|
- CASE WHEN PDS.GOODSLEVELTYPEID < PD.GOODSLEVELTYPEID THEN PD.GOODSLEVELTYPEID
|
|
|
- WHEN PD.GOODSLEVELTYPEID < PDS.GOODSLEVELTYPEID THEN PDS.GOODSLEVELTYPEID
|
|
|
- WHEN PDS.GOODSLEVELTYPEID IS NULL THEN PD.GOODSLEVELTYPEID
|
|
|
- WHEN PD.GOODSLEVELTYPEID = PDS.GOODSLEVELTYPEID THEN PD.GOODSLEVELTYPEID
|
|
|
- ELSE NULL END GOODSLEVELTYPEID
|
|
|
+ MDF.DEFECTCODE 缺陷类别
|
|
|
+ ,nvl(pds.goodsleveltypeid, pd.goodsleveltypeid) goodsleveltypeid
|
|
|
+ ,nvl(pds.productiondataid, pd.productiondataid) productiondataid
|
|
|
FROM
|
|
|
TP_PM_PRODUCTIONDATA PD
|
|
|
+ LEFT JOIN tp_pm_productiondata pds
|
|
|
+ ON pds.groutingdailydetailid = pd.groutingdailydetailid
|
|
|
+ AND pds.procedureid = 60
|
|
|
+ AND pds.valueflag = 1
|
|
|
+ AND pds.kilncarbatchno = pd.kilncarbatchno
|
|
|
+ AND pds.productiondataid > pd.productiondataid
|
|
|
+ -- TODO
|
|
|
+ AND NOT EXISTS
|
|
|
+ (SELECT 1
|
|
|
+ FROM tp_pm_productiondata pd28c -- 质量登记 重复的
|
|
|
+ WHERE pd28c.procedureid = 16
|
|
|
+ AND pd28c.valueflag = 1
|
|
|
+ AND pd28c.groutingdailydetailid = pd.groutingdailydetailid
|
|
|
+ AND pd28c.kilncarbatchno = pd.kilncarbatchno
|
|
|
+ AND pd28c.productiondataid > pd.productiondataid
|
|
|
+ AND pd28c.productiondataid < pds.productiondataid)
|
|
|
LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GDL ON GDL.BARCODE = PD.BARCODE
|
|
|
LEFT JOIN TP_PC_GROUTINGLINE gl ON gl.GROUTINGLINEID=gdl.GROUTINGLINEID
|
|
|
LEFT JOIN TP_MST_GOODS GD ON PD.GOODSID = GD.GOODSID
|
|
|
- LEFT JOIN TP_MST_DataDictionary MD ON GD.GLAZETYPEID = MD.DICTIONARYID
|
|
|
- AND MD.DICTIONARYTYPE = 'TPC002'
|
|
|
+ LEFT JOIN TP_MST_DataDictionary MD ON GD.GLAZETYPEID = MD.DICTIONARYID AND MD.DICTIONARYTYPE = 'TPC002'
|
|
|
LEFT JOIN TP_MST_LOGO LG ON PD.LOGOID = LG.LOGOID
|
|
|
- LEFT JOIN TP_PM_DEFECT DF ON DF.BARCODE = PD.BARCODE AND DF.VALUEFLAG=1 AND DF.PROCEDUREID NOT IN(61,28)
|
|
|
+ LEFT JOIN TP_PM_DEFECT DF ON df.productiondataid = nvl(pds.productiondataid, pd.productiondataid) AND DF.VALUEFLAG=1 AND DF.PROCEDUREID NOT IN(61,28)
|
|
|
LEFT JOIN TP_MST_DEFECT MDF ON MDF.DEFECTID=DF.DEFECTID AND MDF.VALUEFLAG=1 AND ( MDF.DEFECTCODE in('01','02','03','04','05','06','07','08','09','10','12','13','14','15','16','17','18','19','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','001','002','099','99','1' ,'2' ,'3' ) )
|
|
|
LEFT JOIN TP_MST_USER us ON us.USERID=gdl.USERID
|
|
|
LEFT JOIN TP_MST_USERSTAFF us ON us.USERID=gdl.USERID
|
|
|
- LEFT JOIN TP_HR_STAFF staff ON staff.STAFFID=us.STAFFID
|
|
|
- LEFT JOIN TP_PM_PRODUCTIONDATA pds ON PDS.BARCODE=PD.BARCODE AND PDS.PROCEDUREID=60 AND PDS.VALUEFLAG=1
|
|
|
+ LEFT JOIN TP_HR_STAFF staff ON staff.STAFFID=us.STAFFID
|
|
|
WHERE
|
|
|
PD.PROCEDUREID IN ( 16) AND PD.VALUEFLAG=1
|
|
|
AND PD.CREATETIME >= @DATEBEGIN@
|
|
|
@@ -143,7 +150,7 @@ row_number() over (partition by 出窑条码 order by GOODSLEVELTYPEID DESC ) as
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- sqlStr += @" ) ) pd )
|
|
|
+ sqlStr += @" ) pd )
|
|
|
SELECT * FROM(
|
|
|
SELECT
|
|
|
GROUPING_ID(基础数据.工号,基础数据.姓名,部门.部门,基础数据.产品名称,基础数据.产品规格,基础数据.釉色,基础数据.商标) AS GID,
|
|
|
@@ -158,13 +165,13 @@ row_number() over (partition by 出窑条码 order by GOODSLEVELTYPEID DESC ) as
|
|
|
基础数据.产品规格,
|
|
|
基础数据.釉色,
|
|
|
基础数据.商标,
|
|
|
- TO_CHAR(COUNT(DISTINCT 基础数据.出窑条码)) 出窑量,
|
|
|
- TO_CHAR(COUNT(DISTINCT 基础数据.出窑条码) - COUNT(DISTINCT CASE WHEN GOODSLEVELTYPEID NOT IN (4) AND (基础数据.缺陷类别 in('01','02','03','04','05','06','07','08','09','10','12','13','14','15','16','17','18','19','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','001','002','099','99','1' ,'2' ,'3' )) THEN 基础数据.出窑条码 ELSE NULL END )) 优级品量,
|
|
|
- DECODE(NVL((COUNT( DISTINCT 基础数据.出窑条码 ) - COUNT(DISTINCT CASE WHEN GOODSLEVELTYPEID NOT IN (4) AND (基础数据.缺陷类别 in('01','02','03','04','05','06','07','08','09','10','12','13','14','15','16','17','18','19','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','001','002','099','99','1' ,'2' ,'3' )) THEN 基础数据.出窑条码 ELSE NULL END)),0),0,'0%',
|
|
|
- TO_CHAR((NVL((COUNT(DISTINCT 基础数据.出窑条码) - COUNT(DISTINCT CASE WHEN GOODSLEVELTYPEID NOT IN (4) AND (基础数据.缺陷类别 in('01','02','03','04','05','06','07','08','09','10','12','13','14','15','16','17','18','19','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','001','002','099','99','1' ,'2' ,'3' )) THEN 基础数据.出窑条码 ELSE NULL END ) ) ,0 ) /
|
|
|
- DECODE(NVL( COUNT( DISTINCT 基础数据.出窑条码 ), 1 ),0,1,NVL( COUNT( DISTINCT 基础数据.出窑条码 ), 1 ) ) ) * 100,'fm99990.00' ) || '%' ) AS 优级品率,
|
|
|
- TO_CHAR(COUNT(distinct CASE WHEN (基础数据.缺陷类别 in('01','02','03','04','05','06','07','08','09','10','12','13','14','15','16','17','18','19','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','001','002','099','99','1' ,'2' ,'3' )) THEN TO_CHAR(基础数据.缺陷条码|| 基础数据.缺陷ID) ELSE NULL END )) 缺陷量,
|
|
|
- TO_CHAR( (COUNT(DISTINCT CASE WHEN (基础数据.缺陷类别 in('01','02','03','04','05','06','07','08','09','10','12','13','14','15','16','17','18','19','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','001','002','099','99','1' ,'2' ,'3' )) THEN TO_CHAR(基础数据.缺陷条码|| 基础数据.缺陷ID) ELSE NULL END ) /COUNT(DISTINCT 基础数据.出窑条码) * 100), 'fm99990.00') || '%' 缺陷率,
|
|
|
+ TO_CHAR(COUNT(DISTINCT 基础数据.productiondataid)) 出窑量,
|
|
|
+ TO_CHAR(COUNT(DISTINCT 基础数据.productiondataid) - COUNT(DISTINCT CASE WHEN GOODSLEVELTYPEID NOT IN (4) AND (基础数据.缺陷类别 in('01','02','03','04','05','06','07','08','09','10','12','13','14','15','16','17','18','19','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','001','002','099','99','1' ,'2' ,'3' )) THEN 基础数据.productiondataid ELSE NULL END )) 优级品量,
|
|
|
+ DECODE(NVL((COUNT( DISTINCT 基础数据.productiondataid ) - COUNT(DISTINCT CASE WHEN GOODSLEVELTYPEID NOT IN (4) AND (基础数据.缺陷类别 in('01','02','03','04','05','06','07','08','09','10','12','13','14','15','16','17','18','19','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','001','002','099','99','1' ,'2' ,'3' )) THEN 基础数据.productiondataid ELSE NULL END)),0),0,'0%',
|
|
|
+ TO_CHAR((NVL((COUNT(DISTINCT 基础数据.productiondataid) - COUNT(DISTINCT CASE WHEN GOODSLEVELTYPEID NOT IN (4) AND (基础数据.缺陷类别 in('01','02','03','04','05','06','07','08','09','10','12','13','14','15','16','17','18','19','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','001','002','099','99','1' ,'2' ,'3' )) THEN 基础数据.productiondataid ELSE NULL END ) ) ,0 ) /
|
|
|
+ DECODE(NVL( COUNT( DISTINCT 基础数据.productiondataid ), 1 ),0,1,NVL( COUNT( DISTINCT 基础数据.productiondataid ), 1 ) ) ) * 100,'fm99990.00' ) || '%' ) AS 优级品率,
|
|
|
+ TO_CHAR(COUNT(distinct CASE WHEN (基础数据.缺陷类别 in('01','02','03','04','05','06','07','08','09','10','12','13','14','15','16','17','18','19','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','001','002','099','99','1' ,'2' ,'3' )) THEN TO_CHAR(productiondataid||基础数据.缺陷条码|| 基础数据.缺陷ID) ELSE NULL END )) 缺陷量,
|
|
|
+ TO_CHAR( (COUNT(DISTINCT CASE WHEN (基础数据.缺陷类别 in('01','02','03','04','05','06','07','08','09','10','12','13','14','15','16','17','18','19','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','001','002','099','99','1' ,'2' ,'3' )) THEN TO_CHAR(productiondataid||基础数据.缺陷条码|| 基础数据.缺陷ID) ELSE NULL END ) /COUNT(DISTINCT 基础数据.productiondataid) * 100), 'fm99990.00') || '%' 缺陷率,
|
|
|
{DEFECT}
|
|
|
FROM 基础数据
|
|
|
LEFT JOIN 部门 ON 部门.GROUTINGLINEID=基础数据.GROUTINGLINEID
|