|
|
@@ -419,71 +419,117 @@ public class FormingKanban : IHttpHandler, IReadOnlySessionState
|
|
|
|
|
|
if (context.Request["m"].ToString() == "Alltotal")
|
|
|
{
|
|
|
- string sqlStr = @"with 缺陷 AS (
|
|
|
- SELECT
|
|
|
- COUNT( DISTINCT CASE WHEN PDS.PROCEDUREID IN (4,36,53) AND PDS.VALUEFLAG=1 AND df.DEFECTCODE IN ( '10', '12', '13', '14', '15', '16', '17', '18', '19', '23', '25' , '35' ) THEN to_char(DF.BARCODE||df.DEFECTCODE ) ELSE NULL END ) 打磨缺陷数量,
|
|
|
-COUNT( DISTINCT CASE WHEN PDS.PROCEDUREID IN (5,36,52) AND PDS.VALUEFLAG=1 AND df.DEFECTCODE IN ( '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '28', '34', '35' ) THEN to_char(DF.BARCODE||df.DEFECTCODE ) ELSE NULL END ) 擦洗缺陷数量
|
|
|
- FROM( SELECT * FROM(
|
|
|
- SELECT
|
|
|
- BARCODE,REWORKPROCEDUREID,GROUTINGLINECODE,GOODSCODE,GOODSNAME,LOGONAME,GOODSLEVELTYPEID,GOODSSPECIFICATION,DICTIONARYVALUE,
|
|
|
- HIGHPRESSUREFLAG,PROCEDUREID,GOODSTYPENAME,GOODSTYPECODE,LUSTERWAREWEIGHT,
|
|
|
- row_number() over (partition by BARCODE order by GOODSLEVELTYPEID DESC ) as rownums
|
|
|
- FROM(
|
|
|
- SELECT
|
|
|
- DISTINCT pd.BARCODE,
|
|
|
- PD.REWORKPROCEDUREID,
|
|
|
- pd.GROUTINGLINECODE,
|
|
|
- pd.GOODSCODE,
|
|
|
- pd.GOODSNAME,
|
|
|
- LOGO.LOGONAME,
|
|
|
- good.GOODSSPECIFICATION,good.LUSTERWAREWEIGHT,
|
|
|
- TP_MST_DataDictionary.DICTIONARYVALUE,
|
|
|
- GL.HIGHPRESSUREFLAG,
|
|
|
- pd.PROCEDUREID AS PROCEDUREID,
|
|
|
- gtp.GOODSTYPENAME,gtp.GOODSTYPECODE,
|
|
|
- CASE WHEN PDL.GOODSLEVELTYPEID < PD.GOODSLEVELTYPEID THEN PD.GOODSLEVELTYPEID
|
|
|
- WHEN PD.GOODSLEVELTYPEID < PDL.GOODSLEVELTYPEID THEN PDL.GOODSLEVELTYPEID
|
|
|
- WHEN PDL.GOODSLEVELTYPEID IS NULL THEN PD.GOODSLEVELTYPEID
|
|
|
- WHEN PD.GOODSLEVELTYPEID = PDL.GOODSLEVELTYPEID THEN PD.GOODSLEVELTYPEID
|
|
|
- ELSE NULL END GOODSLEVELTYPEID
|
|
|
- FROM TP_PM_PRODUCTIONDATA pd
|
|
|
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL gd ON gd.barcode=pd.barcode
|
|
|
- LEFT JOIN TP_PM_PRODUCTIONDATA PDL ON PDL.BARCODE=PD.BARCODE AND PDL.PROCEDUREID=60 AND PDL.VALUEFLAG=1
|
|
|
- LEFT JOIN TP_MST_GOODS good on good.GOODSID=PD.GOODSID
|
|
|
- LEFT JOIN TP_MST_GOODSTYPE gtp ON good.GOODSTYPEID=gtp.GOODSTYPEID
|
|
|
- LEFT JOIN TP_MST_LOGO logo ON logo.LOGOID=gd.LOGOID
|
|
|
- LEFT JOIN TP_PC_GROUTINGLINE GL ON GL.GROUTINGLINEID=gd.GROUTINGLINEID
|
|
|
- LEFT JOIN TP_MST_DataDictionary ON TP_MST_DataDictionary.DICTIONARYID=good.GLAZETYPEID AND TP_MST_DataDictionary.DictionaryType = 'TPC002'
|
|
|
- WHERE PD.PROCEDUREID IN(16) AND PD.VALUEFLAG=1 AND PD.CREATETIME >= TRUNC(SYSDATE)
|
|
|
- ) )WHERE rownums=1
|
|
|
- ) PD
|
|
|
- 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_MST_DEFECT DEFECT ON DEFECT.DEFECTID=DF.DEFECTID AND DEFECT.VALUEFLAG=1
|
|
|
- INNER JOIN TP_PM_PRODUCTIONDATA PDS ON PDS.BARCODE = PD.BARCODE AND PDS.VALUEFLAG=1
|
|
|
- ),
|
|
|
-
|
|
|
- 一烧产量 AS
|
|
|
- (
|
|
|
- SELECT COUNT( * ) 出窑数 FROM TP_PM_PRODUCTIONDATA WHERE PROCEDUREID IN (15,16) AND GOODSLEVELID IN (1,4,5) AND ( CREATETIME ) >= trunc(sysdate) and VALUEFLAG=1
|
|
|
- ),
|
|
|
- 检验数 AS
|
|
|
- (
|
|
|
- select TO_CHAR(COUNT( DISTINCT CASE WHEN PDS.PROCEDUREID IN (4,36,53) AND PDS.VALUEFLAG=1 THEN PD.BARCODE ELSE NULL END )) 打磨出窑量,
|
|
|
- TO_CHAR(COUNT( DISTINCT CASE WHEN PDS.PROCEDUREID IN (5,36,52) AND PDS.VALUEFLAG=1 THEN PD.BARCODE ELSE NULL END )) 擦洗出窑量 FROM TP_PM_PRODUCTIONDATA PD
|
|
|
- INNER JOIN TP_PM_PRODUCTIONDATA pds on pds.BARCODE=pd.BARCODE
|
|
|
- LEFT JOIN TP_PM_GROUTINGDAILYDETAIL gd ON gd.barcode=pd.barcode
|
|
|
- LEFT JOIN TP_PC_GROUTINGLINE GL ON GL.GROUTINGLINEID=gd.GROUTINGLINEID
|
|
|
- WHERE PD.VALUEFLAG=1 AND PD.PROCEDUREID=16
|
|
|
- AND pd.CREATETIME>=TRUNC(SYSDATE)
|
|
|
- )
|
|
|
- SELECT
|
|
|
- 一烧产量.出窑数 ,
|
|
|
- DECODE( NVL( 打磨缺陷数量, 0 ),0,'0%',TO_CHAR((NVL( 打磨缺陷数量, 0 ) / DECODE( NVL( 检验数.打磨出窑量, 1 ), 0, 1, NVL( 检验数.打磨出窑量, 1 ) ) ) * 100,'fm99990.00' ) || '%' ) as 打磨缺陷率,
|
|
|
- DECODE( NVL( 擦洗缺陷数量, 0 ),0,'0%',TO_CHAR((NVL( 擦洗缺陷数量, 0 ) / DECODE( NVL( 检验数.擦洗出窑量, 1 ), 0, 1, NVL( 检验数.擦洗出窑量, 1 ) ) ) * 100,'fm99990.00' ) || '%' ) as 擦洗缺陷率
|
|
|
- FROM
|
|
|
- 缺陷
|
|
|
- LEFT JOIN 检验数 on 1=1
|
|
|
- LEFT JOIN 一烧产量 ON 1=1";
|
|
|
+ string sqlStr = @"
|
|
|
+SELECT COUNT(DISTINCT pd.productiondataid) 出窑量
|
|
|
+ ,COUNT(DISTINCT CASE
|
|
|
+ WHEN pd.goodsleveltypeid IN (4, 5) THEN
|
|
|
+ pd.productiondataid
|
|
|
+ ELSE
|
|
|
+ NULL
|
|
|
+ END) 一烧产量
|
|
|
+ ,COUNT(DISTINCT CASE
|
|
|
+ WHEN df.defectcode IN
|
|
|
+ ('01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '28', '34', '35') THEN
|
|
|
+ to_char(pd.productiondataid || df.barcode || df.defectcode)
|
|
|
+ ELSE
|
|
|
+ NULL
|
|
|
+ END) 擦洗缺陷量
|
|
|
+ ,to_char((COUNT(DISTINCT CASE
|
|
|
+ WHEN df.defectcode IN
|
|
|
+ ('01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '28', '34', '35') THEN
|
|
|
+ to_char(pd.productiondataid || df.barcode || df.defectcode)
|
|
|
+ ELSE
|
|
|
+ NULL
|
|
|
+ END) / COUNT(DISTINCT pd.productiondataid) * 100)
|
|
|
+ ,'fm99990.00') || '%' 擦洗缺陷率
|
|
|
+ ,COUNT(DISTINCT CASE
|
|
|
+ WHEN df.defectcode IN
|
|
|
+ ('10', '12', '13', '14', '15', '16', '17', '18', '19', '23', '25', '35') THEN
|
|
|
+ to_char(pd.productiondataid || df.barcode || df.defectcode)
|
|
|
+ ELSE
|
|
|
+ NULL
|
|
|
+ END) 打磨缺陷量
|
|
|
+ ,to_char((COUNT(DISTINCT CASE
|
|
|
+ WHEN df.defectcode IN
|
|
|
+ ('10', '12', '13', '14', '15', '16', '17', '18', '19', '23', '25', '35') THEN
|
|
|
+ to_char(pd.productiondataid || df.barcode || df.defectcode)
|
|
|
+ ELSE
|
|
|
+ NULL
|
|
|
+ END) / COUNT(DISTINCT pd.productiondataid) * 100)
|
|
|
+ ,'fm99990.00') || '%' 打磨缺陷率
|
|
|
+
|
|
|
+ FROM (SELECT DISTINCT pd.groutingdailydetailid
|
|
|
+ ,pd.procedureid
|
|
|
+ ,nvl(pd61.goodsleveltypeid, pd.goodsleveltypeid) goodsleveltypeid
|
|
|
+ ,nvl(pd61.productiondataid, pd.productiondataid) productiondataid
|
|
|
+ ,pd.productiondataid fproductiondataid
|
|
|
+ FROM (SELECT *
|
|
|
+ FROM (SELECT pd28.goodsleveltypeid
|
|
|
+ ,pd28.groutingdailydetailid
|
|
|
+ ,pd28.kilncarbatchno
|
|
|
+ ,pd28.productiondataid
|
|
|
+ ,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, 5, 36, 52, 4, 53) -- 重烧质量登记里包含 重烧修补24 / 冷补42
|
|
|
+ -- 20251027 web报表中以末次质量登记时间 CREATETIME 节点统计质量数据调整为首次质量登记时间做统计质量数据变更 checktime
|
|
|
+ AND pd28.checktime >= trunc(SYSDATE)
|
|
|
+ AND pd24.productiondataid < pd28.productiondataid) t
|
|
|
+ WHERE rownums = 1
|
|
|
+ AND t.procedureid IN (5, 36, 52, 4, 53)) pd
|
|
|
+ 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'
|
|
|
+ ,'28'
|
|
|
+ ,'34'
|
|
|
+ ,'35'
|
|
|
+ ,'10'
|
|
|
+ ,'12'
|
|
|
+ ,'13'
|
|
|
+ ,'14'
|
|
|
+ ,'15'
|
|
|
+ ,'16'
|
|
|
+ ,'17'
|
|
|
+ ,'18'
|
|
|
+ ,'19'
|
|
|
+ ,'23'
|
|
|
+ ,'25'
|
|
|
+ ,'35')
|
|
|
+ ";
|
|
|
//直接获取不分页数据
|
|
|
DataTable dt = conn.ExecuteDatatable(sqlStr);
|
|
|
string jsonStr = new JsonResult(dt).ToJson();
|