|
|
@@ -0,0 +1,729 @@
|
|
|
+<%@ WebHandler Language="C#" Class="FormingKanban" %>
|
|
|
+
|
|
|
+using System;
|
|
|
+using System.Web;
|
|
|
+using System.Web.SessionState;
|
|
|
+using System.Configuration;
|
|
|
+using System.Data;
|
|
|
+using Curtain.DataAccess;
|
|
|
+using Curtain.Log;
|
|
|
+using DK.XuWei.WebMes;
|
|
|
+using Newtonsoft.Json.Linq;
|
|
|
+using System.Collections.Generic;
|
|
|
+public class FormingKanban : IHttpHandler, IReadOnlySessionState
|
|
|
+{
|
|
|
+ public void ProcessRequest(HttpContext context)
|
|
|
+ {
|
|
|
+ context.Response.ContentType = "text/plain";
|
|
|
+ using (IDataAccess conn = DataAccess.Create())
|
|
|
+ {
|
|
|
+ if (context.Request["m"].ToString() == "fwq")
|
|
|
+ {
|
|
|
+ string time = DateTime.Now.ToString("yyyy年MM月dd日 HH:mm ");
|
|
|
+ Dictionary<string, string> d = new Dictionary<string, string>();
|
|
|
+ JObject json = new JObject(
|
|
|
+ new JProperty("success", true),
|
|
|
+ new JProperty("sj", time)
|
|
|
+ );
|
|
|
+ context.Response.Write(json.ToString());
|
|
|
+ }
|
|
|
+
|
|
|
+ if (context.Request["m"].ToString() == "StaffTable")
|
|
|
+ {
|
|
|
+ string sqlStr = @"SELECT
|
|
|
+ UU.STAFFCODE,
|
|
|
+ UU.COUNTS,
|
|
|
+ UU.STAFFCODE1,
|
|
|
+ UU.COUNTS1,
|
|
|
+ UU.STAFFCODE2,
|
|
|
+ UU.COUNTS2
|
|
|
+ FROM
|
|
|
+ (
|
|
|
+ SELECT
|
|
|
+ U1.ID AS ID,
|
|
|
+ U1.STAFFCODE AS STAFFCODE,
|
|
|
+ U1.COUNTS AS COUNTS,
|
|
|
+ U2.ID AS ID1,
|
|
|
+ U2.STAFFCODE AS STAFFCODE1,
|
|
|
+ U2.COUNTS AS COUNTS1,
|
|
|
+ U3.ID AS ID2,
|
|
|
+ U3.STAFFCODE AS STAFFCODE2,
|
|
|
+ U3.COUNTS AS COUNTS2
|
|
|
+ FROM
|
|
|
+ (
|
|
|
+ SELECT ROWNUM AS
|
|
|
+ ID,
|
|
|
+ T.STAFFCODE,
|
|
|
+ T.COUNTS
|
|
|
+ FROM
|
|
|
+ (
|
|
|
+ SELECT
|
|
|
+ THS.STAFFCODE STAFFCODE,
|
|
|
+ COUNT( tppd.BARCODE ) AS COUNTS
|
|
|
+ FROM
|
|
|
+ TP_PM_PRODUCTIONDATA TPPD
|
|
|
+ LEFT JOIN TP_MST_USERSTAFF TMUS ON TPPD.USERID = TMUS.USERID
|
|
|
+ LEFT JOIN TP_HR_STAFF THS ON THS.STAFFID = TMUS.STAFFID
|
|
|
+ WHERE
|
|
|
+ TPPD.PROCEDUREID IN ( 4, 5, 36 )
|
|
|
+ GROUP BY
|
|
|
+ THS.STAFFCODE
|
|
|
+ ) T
|
|
|
+ ) U1
|
|
|
+ LEFT JOIN (
|
|
|
+ SELECT ROWNUM AS
|
|
|
+ ID,
|
|
|
+ T1.STAFFCODE,
|
|
|
+ T1.COUNTS
|
|
|
+ FROM
|
|
|
+ (
|
|
|
+ SELECT
|
|
|
+ THS.STAFFCODE STAFFCODE,
|
|
|
+ COUNT( tppd.BARCODE ) AS COUNTS
|
|
|
+ FROM
|
|
|
+ TP_PM_PRODUCTIONDATA TPPD
|
|
|
+ LEFT JOIN TP_MST_USERSTAFF TMUS ON TPPD.USERID = TMUS.USERID
|
|
|
+ LEFT JOIN TP_HR_STAFF THS ON THS.STAFFID = TMUS.STAFFID
|
|
|
+ WHERE
|
|
|
+ TPPD.PROCEDUREID IN ( 4, 5, 36 )
|
|
|
+ GROUP BY
|
|
|
+ THS.STAFFCODE
|
|
|
+ ) T1
|
|
|
+ ) U2 ON U1.ID = ( U2.ID - 1 )
|
|
|
+ LEFT JOIN (
|
|
|
+ SELECT ROWNUM AS
|
|
|
+ ID,
|
|
|
+ T.STAFFCODE,
|
|
|
+ T.COUNTS
|
|
|
+ FROM
|
|
|
+ (
|
|
|
+ SELECT
|
|
|
+ THS.STAFFCODE STAFFCODE,
|
|
|
+ COUNT( tppd.BARCODE ) AS COUNTS
|
|
|
+ FROM
|
|
|
+ TP_PM_PRODUCTIONDATA TPPD
|
|
|
+ LEFT JOIN TP_MST_USERSTAFF TMUS ON TPPD.USERID = TMUS.USERID
|
|
|
+ LEFT JOIN TP_HR_STAFF THS ON THS.STAFFID = TMUS.STAFFID
|
|
|
+ WHERE
|
|
|
+ TPPD.PROCEDUREID IN ( 4, 5, 36 )
|
|
|
+ GROUP BY
|
|
|
+ THS.STAFFCODE
|
|
|
+ ) T
|
|
|
+ ) U3 ON U2.ID = ( U3.ID - 1 )
|
|
|
+ WHERE
|
|
|
+ mod( U1.id, 3 ) = 1
|
|
|
+ ) UU";
|
|
|
+ //直接获取不分页数据
|
|
|
+ DataTable dt = conn.ExecuteDatatable(sqlStr);
|
|
|
+ string jsonStr = new JsonResult(dt).ToJson();
|
|
|
+ context.Response.Write(jsonStr);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (context.Request["m"].ToString() == "WorkshopSection")
|
|
|
+ {
|
|
|
+ string sqlStr = @"
|
|
|
+ SELECT
|
|
|
+ SUM(CASE WHEN TRUNC( GDD.GROUTINGDATE) = trunc(sysdate) AND gd.HIGHPRESSUREFLAG=0 AND SUBSTR(GDD.GROUTINGLINECODE, 2,1)='A' THEN 1 ELSE 0 END ) 成型A注浆数量,
|
|
|
+ SUM(CASE WHEN TRUNC( GDD.delivertime) = trunc(sysdate) AND gd.HIGHPRESSUREFLAG=0 AND gdd.DELIVERFLAG = '1' AND SUBSTR(GDD.GROUTINGLINECODE, 2,1)='A'THEN 1 ELSE 0 END ) 成型A交坯数量,
|
|
|
+ SUM(CASE WHEN TRUNC( GDD.GROUTINGDATE) = trunc(sysdate) AND gd.HIGHPRESSUREFLAG=0 AND SUBSTR(GDD.GROUTINGLINECODE, 2,1)='B' THEN 1 ELSE 0 END ) 成型B注浆数量,
|
|
|
+ SUM(CASE WHEN TRUNC( GDD.delivertime) = trunc(sysdate) AND gd.HIGHPRESSUREFLAG=0 AND gdd.DELIVERFLAG = '1' AND SUBSTR(GDD.GROUTINGLINECODE, 2,1)='B'THEN 1 ELSE 0 END ) 成型B交坯数量,
|
|
|
+ SUM(CASE WHEN TRUNC( GDD.GROUTINGDATE) = trunc(sysdate) AND gd.HIGHPRESSUREFLAG=0 AND SUBSTR(GDD.GROUTINGLINECODE, 2,1)='C' THEN 1 ELSE 0 END ) 成型C注浆数量,
|
|
|
+ SUM(CASE WHEN TRUNC( GDD.delivertime) = trunc(sysdate) AND gd.HIGHPRESSUREFLAG=0 AND gdd.DELIVERFLAG = '1' AND SUBSTR(GDD.GROUTINGLINECODE, 2,1)='C'THEN 1 ELSE 0 END ) 成型C交坯数量,
|
|
|
+ SUM(CASE WHEN TRUNC( GDD.GROUTINGDATE) = trunc(sysdate) AND gd.HIGHPRESSUREFLAG=1 THEN 1 ELSE 0 END ) 高压注浆数量,
|
|
|
+ SUM(CASE WHEN TRUNC( GDD.delivertime) = trunc(sysdate) AND gd.HIGHPRESSUREFLAG=1 AND gdd.DELIVERFLAG = '1' THEN 1 ELSE 0 END ) 高压交坯数量
|
|
|
+ FROM TP_PM_GROUTINGDAILYDETAIL GDD
|
|
|
+ LEFT JOIN TP_PC_GROUTINGLINE GD ON GD.GROUTINGLINEID=GDD.GROUTINGLINEID
|
|
|
+ WHERE gdd.VALUEFLAG=1 and gd.VALUEFLAG=1
|
|
|
+ AND gdd.GROUTINGFLAG=1 ";
|
|
|
+ //直接获取不分页数据
|
|
|
+ DataTable dt = conn.ExecuteDatatable(sqlStr);
|
|
|
+ string jsonStr = new JsonResult(dt).ToJson();
|
|
|
+ context.Response.Write(jsonStr);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (context.Request["m"].ToString() == "MonthSum")
|
|
|
+ {
|
|
|
+ string sqlStr = @"
|
|
|
+ SELECT
|
|
|
+ *
|
|
|
+ FROM(
|
|
|
+ select
|
|
|
+ CASE WHEN gid=3 THEN pdg.A313 +pdg.A21 end 打磨
|
|
|
+ from ( select grouping_id(pdata.productionlineid,pdata.goodstypename2,pdata.goodscode) gid, pdata.productionlineid,
|
|
|
+ pdata.goodstypename2,
|
|
|
+ pdata.goodstypename,
|
|
|
+ pdata.goodscode,
|
|
|
+ pdata.goodsspecification,
|
|
|
+ pdata.GOODSMODEL,
|
|
|
+ pdata.GLAZETYPE
|
|
|
+ , sum(pdata.A313) as A313
|
|
|
+ , sum(pdata.A21) as A21
|
|
|
+ from ( select
|
|
|
+ pd.productionlineid,
|
|
|
+ gt2.goodstypename goodstypename2,
|
|
|
+ gt.goodstypename,
|
|
|
+ g.goodscode,
|
|
|
+ g.goodsspecification,
|
|
|
+ g.GOODSMODEL,
|
|
|
+ dd.dictionaryvalue GLAZETYPE
|
|
|
+ , sum(decode(pd.procedureid, 53, 1, 0)) as A313
|
|
|
+ , sum(decode(pd.procedureid, 4, 1, 0)) as A21
|
|
|
+ from tp_pm_productiondata pd
|
|
|
+ inner join tp_mst_goods g
|
|
|
+ on g.goodsid = pd.goodsid
|
|
|
+ inner join tp_mst_goodstype gt
|
|
|
+ on gt.goodstypeid = g.goodstypeid
|
|
|
+ inner join tp_mst_goodstype gt2
|
|
|
+ on gt2.goodstypecode = substr(gt.goodstypecode, 0, 6)
|
|
|
+ and gt2.accountid = gt.accountid
|
|
|
+ inner join tp_mst_datadictionary dd
|
|
|
+ on dd.dictionaryid = g.GLAZETYPEID
|
|
|
+ where pd.valueflag = '1'
|
|
|
+ and pd.accountid = '1'
|
|
|
+ AND pd.CREATETIME >= ADD_MONTHS(TRUNC(SYSDATE, 'MM'), -1) + 25 AND pd.CREATETIME < ADD_MONTHS(TRUNC(SYSDATE, 'MM'), 0) + 25
|
|
|
+ AND exists (Select 1 from TP_MST_UserPurview up where up.PurviewType= 7 and (up.PurviewID = -1 or up.PurviewID= pd.ProductionLineId)) group by
|
|
|
+ pd.productionlineid,
|
|
|
+ gt2.goodstypename,
|
|
|
+ gt.goodstypename,
|
|
|
+ g.goodscode,
|
|
|
+ g.goodsspecification,
|
|
|
+ g.GOODSMODEL,
|
|
|
+ dd.dictionaryvalue
|
|
|
+ order by gt2.goodstypename, g.goodscode ) pdata
|
|
|
+ group by grouping sets((pdata.productionlineid,
|
|
|
+ pdata.goodstypename2,
|
|
|
+ pdata.goodstypename,
|
|
|
+ pdata.goodsspecification,
|
|
|
+ pdata.GOODSMODEL,
|
|
|
+ pdata.GLAZETYPE,
|
|
|
+ pdata.goodscode),
|
|
|
+ (pdata.productionlineid,pdata.goodstypename2),
|
|
|
+ pdata.productionlineid)
|
|
|
+ ) pdg
|
|
|
+ )
|
|
|
+ WHERE 打磨 is not null
|
|
|
+
|
|
|
+
|
|
|
+ union to
|
|
|
+
|
|
|
+ SELECT
|
|
|
+ *
|
|
|
+ FROM(
|
|
|
+ select
|
|
|
+ CASE WHEN gid=3 THEN pdg.A313 +pdg.A21 end 打磨
|
|
|
+ from ( select grouping_id(pdata.productionlineid,pdata.goodstypename2,pdata.goodscode) gid, pdata.productionlineid,
|
|
|
+ pdata.goodstypename2,
|
|
|
+ pdata.goodstypename,
|
|
|
+ pdata.goodscode,
|
|
|
+ pdata.goodsspecification,
|
|
|
+ pdata.GOODSMODEL,
|
|
|
+ pdata.GLAZETYPE
|
|
|
+ , sum(pdata.A313) as A313
|
|
|
+ , sum(pdata.A21) as A21
|
|
|
+ from ( select
|
|
|
+ pd.productionlineid,
|
|
|
+ gt2.goodstypename goodstypename2,
|
|
|
+ gt.goodstypename,
|
|
|
+ g.goodscode,
|
|
|
+ g.goodsspecification,
|
|
|
+ g.GOODSMODEL,
|
|
|
+ dd.dictionaryvalue GLAZETYPE
|
|
|
+ , sum(decode(pd.procedureid, 54, 1, 0)) as A313
|
|
|
+ , sum(decode(pd.procedureid, 5,1 , 0)) as A21
|
|
|
+ from tp_pm_productiondata pd
|
|
|
+ inner join tp_mst_goods g
|
|
|
+ on g.goodsid = pd.goodsid
|
|
|
+ inner join tp_mst_goodstype gt
|
|
|
+ on gt.goodstypeid = g.goodstypeid
|
|
|
+ inner join tp_mst_goodstype gt2
|
|
|
+ on gt2.goodstypecode = substr(gt.goodstypecode, 0, 6)
|
|
|
+ and gt2.accountid = gt.accountid
|
|
|
+ inner join tp_mst_datadictionary dd
|
|
|
+ on dd.dictionaryid = g.GLAZETYPEID
|
|
|
+ where pd.valueflag = '1'
|
|
|
+ and pd.accountid = '1'
|
|
|
+ AND pd.CREATETIME >= ADD_MONTHS(TRUNC(SYSDATE, 'MM'), -1) + 25 AND pd.CREATETIME < ADD_MONTHS(TRUNC(SYSDATE, 'MM'), 0) + 25
|
|
|
+ AND exists (Select 1 from TP_MST_UserPurview up where up.PurviewType= 7 and (up.PurviewID = -1 or up.PurviewID= pd.ProductionLineId)) group by
|
|
|
+ pd.productionlineid,
|
|
|
+ gt2.goodstypename,
|
|
|
+ gt.goodstypename,
|
|
|
+ g.goodscode,
|
|
|
+ g.goodsspecification,
|
|
|
+ g.GOODSMODEL,
|
|
|
+ dd.dictionaryvalue
|
|
|
+ order by gt2.goodstypename, g.goodscode ) pdata
|
|
|
+ group by grouping sets((pdata.productionlineid,
|
|
|
+ pdata.goodstypename2,
|
|
|
+ pdata.goodstypename,
|
|
|
+ pdata.goodsspecification,
|
|
|
+ pdata.GOODSMODEL,
|
|
|
+ pdata.GLAZETYPE,
|
|
|
+ pdata.goodscode),
|
|
|
+ (pdata.productionlineid,pdata.goodstypename2),
|
|
|
+ pdata.productionlineid)
|
|
|
+ ) pdg
|
|
|
+ )
|
|
|
+ WHERE 打磨 is not null
|
|
|
+
|
|
|
+ UNION ALL
|
|
|
+ SELECT
|
|
|
+ *
|
|
|
+ FROM(
|
|
|
+ select
|
|
|
+ CASE WHEN gid=3 THEN pdg.A313 +pdg.A21 end 打磨
|
|
|
+ from ( select grouping_id(pdata.productionlineid,pdata.goodstypename2,pdata.goodscode) gid, pdata.productionlineid,
|
|
|
+ pdata.goodstypename2,
|
|
|
+ pdata.goodstypename,
|
|
|
+ pdata.goodscode,
|
|
|
+ pdata.goodsspecification,
|
|
|
+ pdata.GOODSMODEL,
|
|
|
+ pdata.GLAZETYPE
|
|
|
+ , sum(pdata.A313) as A313
|
|
|
+ , sum(pdata.A21) as A21
|
|
|
+ from ( select
|
|
|
+ pd.productionlineid,
|
|
|
+ gt2.goodstypename goodstypename2,
|
|
|
+ gt.goodstypename,
|
|
|
+ g.goodscode,
|
|
|
+ g.goodsspecification,
|
|
|
+ g.GOODSMODEL,
|
|
|
+ dd.dictionaryvalue GLAZETYPE
|
|
|
+ , sum(decode(pd.procedureid, 36, 1, 0)) as A313
|
|
|
+ , sum(decode(pd.procedureid, 5, 0, 0)) as A21
|
|
|
+ from tp_pm_productiondata pd
|
|
|
+ inner join tp_mst_goods g
|
|
|
+ on g.goodsid = pd.goodsid
|
|
|
+ inner join tp_mst_goodstype gt
|
|
|
+ on gt.goodstypeid = g.goodstypeid
|
|
|
+ inner join tp_mst_goodstype gt2
|
|
|
+ on gt2.goodstypecode = substr(gt.goodstypecode, 0, 6)
|
|
|
+ and gt2.accountid = gt.accountid
|
|
|
+ inner join tp_mst_datadictionary dd
|
|
|
+ on dd.dictionaryid = g.GLAZETYPEID
|
|
|
+ where pd.valueflag = '1'
|
|
|
+ and pd.accountid = '1'
|
|
|
+ AND pd.CREATETIME >= ADD_MONTHS(TRUNC(SYSDATE, 'MM'), -1) + 25 AND pd.CREATETIME < ADD_MONTHS(TRUNC(SYSDATE, 'MM'), 0) + 25
|
|
|
+ AND exists (Select 1 from TP_MST_UserPurview up where up.PurviewType= 7 and (up.PurviewID = -1 or up.PurviewID= pd.ProductionLineId)) group by
|
|
|
+ pd.productionlineid,
|
|
|
+ gt2.goodstypename,
|
|
|
+ gt.goodstypename,
|
|
|
+ g.goodscode,
|
|
|
+ g.goodsspecification,
|
|
|
+ g.GOODSMODEL,
|
|
|
+ dd.dictionaryvalue
|
|
|
+ order by gt2.goodstypename, g.goodscode ) pdata
|
|
|
+ group by grouping sets((pdata.productionlineid,
|
|
|
+ pdata.goodstypename2,
|
|
|
+ pdata.goodstypename,
|
|
|
+ pdata.goodsspecification,
|
|
|
+ pdata.GOODSMODEL,
|
|
|
+ pdata.GLAZETYPE,
|
|
|
+ pdata.goodscode),
|
|
|
+ (pdata.productionlineid,pdata.goodstypename2),
|
|
|
+ pdata.productionlineid)
|
|
|
+ ) pdg
|
|
|
+ )
|
|
|
+ WHERE 打磨 is not null ";
|
|
|
+ //直接获取不分页数据
|
|
|
+ DataTable dt = conn.ExecuteDatatable(sqlStr);
|
|
|
+ string jsonStr = new JsonResult(dt).ToJson();
|
|
|
+ context.Response.Write(jsonStr);
|
|
|
+ }
|
|
|
+
|
|
|
+ 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.DEFECTNAME in ('坯脏','棕眼','裂底','裂圈','裂鼻子','裂水道','裂管','沾接裂','裂眼',
|
|
|
+ '糙活','变形','渣','管道渣','孔眼不良','睹眼','眼歪','丢气孔','丢眼','坏磕','卡球')
|
|
|
+ AND dfc.VALUEFLAG = 1
|
|
|
+ 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.PROCEDUREID=6
|
|
|
+ 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.DEFECTNAME in ('坯脏','棕眼','裂底','裂圈','裂鼻子','裂水道','裂管','沾接裂','裂眼',
|
|
|
+ '糙活','变形','渣','管道渣','孔眼不良','睹眼','眼歪','丢气孔','丢眼','坏磕','卡球')
|
|
|
+ AND dfc.VALUEFLAG = 1
|
|
|
+ GROUP BY
|
|
|
+ dfc.DEFECTNAME
|
|
|
+ ORDER BY
|
|
|
+ COUNT( dfc.DEFECTNAME ) DESC
|
|
|
+ )
|
|
|
+ WHERE
|
|
|
+ ROWNUM <= 4 )
|
|
|
+
|
|
|
+ ),
|
|
|
+ 检验数
|
|
|
+ AS
|
|
|
+ (
|
|
|
+ SELECT COUNT( * ) 一烧出窑数 FROM TP_PM_PRODUCTIONDATA WHERE PROCEDUREID = 14
|
|
|
+ )
|
|
|
+
|
|
|
+ SELECT
|
|
|
+ 缺陷.缺陷名称,
|
|
|
+ 缺陷.缺陷数量,
|
|
|
+ 其他缺陷.其他缺陷数量,
|
|
|
+ DECODE( NVL( 缺陷.缺陷数量, 0 ),0,'0%',TO_CHAR((NVL( 缺陷.缺陷数量, 0 ) / DECODE( NVL( 检验数.一烧出窑数, 1 ), 0, 1, NVL( 检验数.一烧出窑数, 1 ) ) ) * 100,'fm99990.0' ) || '%' ) 缺陷率,
|
|
|
+ DECODE( NVL( 其他缺陷.其他缺陷数量, 0 ),0,'0%',TO_CHAR((NVL( 其他缺陷.其他缺陷数量, 0 ) / DECODE( NVL( 检验数.一烧出窑数, 1 ), 0, 1, NVL( 检验数.一烧出窑数, 1 ) ) ) * 100,'fm99990.0' ) || '%' ) 其他缺陷率
|
|
|
+ FROM
|
|
|
+ 缺陷
|
|
|
+ LEFT JOIN 检验数 ON 1 = 1
|
|
|
+ LEFT JOIN 其他缺陷 ON 1=1";
|
|
|
+ //直接获取不分页数据
|
|
|
+ DataTable dt = conn.ExecuteDatatable(sqlStr);
|
|
|
+ string jsonStr = new JsonResult(dt).ToJson();
|
|
|
+ context.Response.Write(jsonStr);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (context.Request["m"].ToString() == "Alltotal")
|
|
|
+ {
|
|
|
+ string sqlStr = @"with 打磨 AS (
|
|
|
+ SELECT
|
|
|
+ COUNT(dfc.BARCODE) 缺陷数量
|
|
|
+ FROM TP_PM_DEFECT dfc
|
|
|
+ LEFT JOIN TP_MST_DEFECT df ON df.DEFECTID = dfc.DEFECTID
|
|
|
+ WHERE dfc.VALUEFLAG=1
|
|
|
+ AND dfc.DEFECTPROCEDUREID IN(4,53)
|
|
|
+ ),
|
|
|
+ 擦洗 AS (
|
|
|
+ SELECT
|
|
|
+ COUNT(dfc.BARCODE) 缺陷数量
|
|
|
+ FROM TP_PM_DEFECT dfc
|
|
|
+ LEFT JOIN TP_MST_DEFECT df ON df.DEFECTID = dfc.DEFECTID
|
|
|
+ WHERE dfc.VALUEFLAG=1
|
|
|
+ AND dfc.DEFECTPROCEDUREID IN(5,54)
|
|
|
+ ),
|
|
|
+ 检验数 AS
|
|
|
+ (
|
|
|
+ SELECT COUNT( * ) 出窑数 FROM TP_PM_PRODUCTIONDATA WHERE PROCEDUREID = 14
|
|
|
+ )
|
|
|
+ SELECT
|
|
|
+ 检验数.出窑数 ,
|
|
|
+ DECODE( NVL( 打磨.缺陷数量, 0 ),0,'0%',TO_CHAR((NVL( 打磨.缺陷数量, 0 ) / DECODE( NVL( 检验数.出窑数, 1 ), 0, 1, NVL( 检验数.出窑数, 1 ) ) ) * 100,'fm99990.0' ) || '%' ) as 打磨缺陷率,
|
|
|
+ DECODE( NVL( 擦洗.缺陷数量, 0 ),0,'0%',TO_CHAR((NVL( 擦洗.缺陷数量, 0 ) / DECODE( NVL( 检验数.出窑数, 1 ), 0, 1, NVL( 检验数.出窑数, 1 ) ) ) * 100,'fm99990.0' ) || '%' ) as 擦洗缺陷率
|
|
|
+ FROM
|
|
|
+ 打磨
|
|
|
+ LEFT JOIN 检验数 on 1=1
|
|
|
+ LEFT JOIN 擦洗 on 1=1";
|
|
|
+ //直接获取不分页数据
|
|
|
+ DataTable dt = conn.ExecuteDatatable(sqlStr);
|
|
|
+ string jsonStr = new JsonResult(dt).ToJson();
|
|
|
+ context.Response.Write(jsonStr);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (context.Request["m"].ToString() == "MonthTable")
|
|
|
+ {
|
|
|
+ string sqlStr = @"SELECT
|
|
|
+ 责任工号,
|
|
|
+ 生产线号,
|
|
|
+ 缺陷名称,
|
|
|
+ 产品分级
|
|
|
+ FROM(
|
|
|
+ SELECT DISTINCT
|
|
|
+ stf.STAFFCODE 责任工号,
|
|
|
+ TMDP.BARCODE 条码,
|
|
|
+ TMDP.PRODUCTIONLINECODE 生产线号,
|
|
|
+ TMDP.DEFECTNAME 缺陷名称,
|
|
|
+ TMG.GOODSLEVELNAME 产品分级
|
|
|
+ FROM TP_PM_DEFECT TMDP
|
|
|
+ LEFT JOIN TP_MST_DEFECT DF ON DF.DEFECTID=TMDP.DEFECTID
|
|
|
+ LEFT JOIN TP_MST_USERSTAFF class on class.USERID=tmdp.DEFECTUSERID
|
|
|
+ LEFT JOIN TP_HR_STAFF stf on stf.STAFFID=class.STAFFID
|
|
|
+ LEFT JOIN TP_PM_PRODUCTIONDATA PD ON TMDP.PRODUCTIONDATAID = PD.PRODUCTIONDATAID
|
|
|
+ LEFT JOIN TP_MST_GOODSLEVEL TMG ON TMG.GOODSLEVELID = PD.GOODSLEVELID
|
|
|
+ --LEFT JOIN TP_PC_PROCEDURE TPP ON PD.PROCEDUREID = TPP.PROCEDUREID
|
|
|
+ LEFT JOIN TP_MST_GOODS GD ON PD.GOODSID = GD.GOODSID
|
|
|
+ LEFT JOIN TP_MST_GOODSTYPE GDT ON GD.GOODSTYPEID = GDT.GOODSTYPEID
|
|
|
+ --INNER JOIN TP_PM_PRODUCTIONDATA PDD ON PD.BARCODE = PDD.BARCODE
|
|
|
+ WHERE
|
|
|
+ PD.VALUEFLAG = '1' --有效
|
|
|
+ AND TMDP.VALUEFLAG = '1' --有效
|
|
|
+ AND TMDP.DEFECTPROCEDUREID IN (4,5,53,54)
|
|
|
+
|
|
|
+ )";
|
|
|
+ //直接获取不分页数据
|
|
|
+ DataTable dt = conn.ExecuteDatatable(sqlStr);
|
|
|
+ string jsonStr = new JsonResult(dt).ToJson();
|
|
|
+ context.Response.Write(jsonStr);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (context.Request["m"].ToString() == "rate")//折线图
|
|
|
+ {
|
|
|
+ string sqlStr = @"WITH 打磨 AS(
|
|
|
+ SELECT
|
|
|
+ *
|
|
|
+ FROM(
|
|
|
+ select
|
|
|
+ pdg.SJ,
|
|
|
+ SUM(pdg.A313 +pdg.A21) 打磨
|
|
|
+ from ( select
|
|
|
+ pdata.SJ,
|
|
|
+ pdata.productionlineid,
|
|
|
+ pdata.goodstypename2,
|
|
|
+ pdata.goodstypename,
|
|
|
+ pdata.goodscode,
|
|
|
+ pdata.goodsspecification,
|
|
|
+ pdata.GOODSMODEL,
|
|
|
+ pdata.GLAZETYPE
|
|
|
+ , sum(pdata.A313) as A313
|
|
|
+ , sum(pdata.A21) as A21
|
|
|
+ from ( select
|
|
|
+ TO_CHAR(pd.CREATETIME,'MM-DD')AS SJ,
|
|
|
+ pd.productionlineid,
|
|
|
+ gt2.goodstypename goodstypename2,
|
|
|
+ gt.goodstypename,
|
|
|
+ g.goodscode,
|
|
|
+ g.goodsspecification,
|
|
|
+ g.GOODSMODEL,
|
|
|
+ dd.dictionaryvalue GLAZETYPE
|
|
|
+ , sum(decode(pd.procedureid, 53, 1, 0)) as A313
|
|
|
+ , sum(decode(pd.procedureid, 4, 1, 0)) as A21
|
|
|
+ from tp_pm_productiondata pd
|
|
|
+ inner join tp_mst_goods g
|
|
|
+ on g.goodsid = pd.goodsid
|
|
|
+ inner join tp_mst_goodstype gt
|
|
|
+ on gt.goodstypeid = g.goodstypeid
|
|
|
+ inner join tp_mst_goodstype gt2
|
|
|
+ on gt2.goodstypecode = substr(gt.goodstypecode, 0, 6)
|
|
|
+ and gt2.accountid = gt.accountid
|
|
|
+ inner join tp_mst_datadictionary dd
|
|
|
+ on dd.dictionaryid = g.GLAZETYPEID
|
|
|
+ where pd.valueflag = '1'
|
|
|
+ and pd.accountid = '1'
|
|
|
+ AND pd.CREATETIME >= ADD_MONTHS(TRUNC(SYSDATE, 'MM'), -1) + 25 AND pd.CREATETIME < ADD_MONTHS(TRUNC(SYSDATE, 'MM'), 0) + 25
|
|
|
+ AND exists (Select 1 from TP_MST_UserPurview up where up.PurviewType= 7 and (up.PurviewID = -1 or up.PurviewID= pd.ProductionLineId)) group by
|
|
|
+ TO_CHAR(pd.CREATETIME,'MM-DD'),
|
|
|
+ pd.productionlineid,
|
|
|
+ gt2.goodstypename,
|
|
|
+ gt.goodstypename,
|
|
|
+ g.goodscode,
|
|
|
+ g.goodsspecification,
|
|
|
+ g.GOODSMODEL,
|
|
|
+ dd.dictionaryvalue
|
|
|
+ order by gt2.goodstypename, g.goodscode ) pdata
|
|
|
+ group by
|
|
|
+ pdata. SJ,
|
|
|
+ pdata.productionlineid,
|
|
|
+ pdata.goodstypename2,
|
|
|
+ pdata.goodstypename,
|
|
|
+ pdata.goodscode,
|
|
|
+ pdata.goodsspecification,
|
|
|
+ pdata.GOODSMODEL,
|
|
|
+ pdata.GLAZETYPE
|
|
|
+ ) pdg
|
|
|
+ GROUP BY pdg.SJ
|
|
|
+ ORDER BY pdg.SJ
|
|
|
+ )
|
|
|
+
|
|
|
+
|
|
|
+),
|
|
|
+擦洗 AS (SELECT
|
|
|
+ *
|
|
|
+ FROM(
|
|
|
+ select
|
|
|
+ pdg.SJ,
|
|
|
+ SUM(pdg.A313 +pdg.A21) 擦洗
|
|
|
+ from ( select
|
|
|
+ pdata.SJ,
|
|
|
+ pdata.productionlineid,
|
|
|
+ pdata.goodstypename2,
|
|
|
+ pdata.goodstypename,
|
|
|
+ pdata.goodscode,
|
|
|
+ pdata.goodsspecification,
|
|
|
+ pdata.GOODSMODEL,
|
|
|
+ pdata.GLAZETYPE
|
|
|
+ , sum(pdata.A313) as A313
|
|
|
+ , sum(pdata.A21) as A21
|
|
|
+ from ( select
|
|
|
+ TO_CHAR(pd.CREATETIME,'MM-DD')AS SJ,
|
|
|
+ pd.productionlineid,
|
|
|
+ gt2.goodstypename goodstypename2,
|
|
|
+ gt.goodstypename,
|
|
|
+ g.goodscode,
|
|
|
+ g.goodsspecification,
|
|
|
+ g.GOODSMODEL,
|
|
|
+ dd.dictionaryvalue GLAZETYPE
|
|
|
+ , sum(decode(pd.procedureid, 54, 1, 0)) as A313
|
|
|
+ , sum(decode(pd.procedureid, 5,1 , 0)) as A21
|
|
|
+ from tp_pm_productiondata pd
|
|
|
+ inner join tp_mst_goods g
|
|
|
+ on g.goodsid = pd.goodsid
|
|
|
+ inner join tp_mst_goodstype gt
|
|
|
+ on gt.goodstypeid = g.goodstypeid
|
|
|
+ inner join tp_mst_goodstype gt2
|
|
|
+ on gt2.goodstypecode = substr(gt.goodstypecode, 0, 6)
|
|
|
+ and gt2.accountid = gt.accountid
|
|
|
+ inner join tp_mst_datadictionary dd
|
|
|
+ on dd.dictionaryid = g.GLAZETYPEID
|
|
|
+ where pd.valueflag = '1'
|
|
|
+ and pd.accountid = '1'
|
|
|
+ AND pd.CREATETIME >= ADD_MONTHS(TRUNC(SYSDATE, 'MM'), -1) + 25 AND pd.CREATETIME < ADD_MONTHS(TRUNC(SYSDATE, 'MM'), 0) + 25
|
|
|
+ AND exists (Select 1 from TP_MST_UserPurview up where up.PurviewType= 7 and (up.PurviewID = -1 or up.PurviewID= pd.ProductionLineId)) group by
|
|
|
+ TO_CHAR(pd.CREATETIME,'MM-DD'),
|
|
|
+ pd.productionlineid,
|
|
|
+ gt2.goodstypename,
|
|
|
+ gt.goodstypename,
|
|
|
+ g.goodscode,
|
|
|
+ g.goodsspecification,
|
|
|
+ g.GOODSMODEL,
|
|
|
+ dd.dictionaryvalue
|
|
|
+ order by gt2.goodstypename, g.goodscode ) pdata
|
|
|
+ group by
|
|
|
+ pdata. SJ,
|
|
|
+ pdata.productionlineid,
|
|
|
+ pdata.goodstypename2,
|
|
|
+ pdata.goodstypename,
|
|
|
+ pdata.goodscode,
|
|
|
+ pdata.goodsspecification,
|
|
|
+ pdata.GOODSMODEL,
|
|
|
+ pdata.GLAZETYPE
|
|
|
+ ) pdg
|
|
|
+ GROUP BY pdg.SJ
|
|
|
+ ORDER BY pdg.SJ
|
|
|
+ )
|
|
|
+
|
|
|
+ ),
|
|
|
+ 改洗 AS (
|
|
|
+ SELECT
|
|
|
+ *
|
|
|
+ FROM(
|
|
|
+ select
|
|
|
+ pdg.SJ,
|
|
|
+ SUM(pdg.A313 +pdg.A21) 改洗
|
|
|
+ from ( select
|
|
|
+ pdata.SJ,
|
|
|
+ pdata.productionlineid,
|
|
|
+ pdata.goodstypename2,
|
|
|
+ pdata.goodstypename,
|
|
|
+ pdata.goodscode,
|
|
|
+ pdata.goodsspecification,
|
|
|
+ pdata.GOODSMODEL,
|
|
|
+ pdata.GLAZETYPE
|
|
|
+ , sum(pdata.A313) as A313
|
|
|
+ , sum(pdata.A21) as A21
|
|
|
+ from ( select
|
|
|
+ TO_CHAR(pd.CREATETIME,'MM-DD')AS SJ,
|
|
|
+ pd.productionlineid,
|
|
|
+ gt2.goodstypename goodstypename2,
|
|
|
+ gt.goodstypename,
|
|
|
+ g.goodscode,
|
|
|
+ g.goodsspecification,
|
|
|
+ g.GOODSMODEL,
|
|
|
+ dd.dictionaryvalue GLAZETYPE
|
|
|
+ , sum(decode(pd.procedureid, 36, 1, 0)) as A313
|
|
|
+ , sum(decode(pd.procedureid, 5, 0, 0)) as A21
|
|
|
+ from tp_pm_productiondata pd
|
|
|
+ inner join tp_mst_goods g
|
|
|
+ on g.goodsid = pd.goodsid
|
|
|
+ inner join tp_mst_goodstype gt
|
|
|
+ on gt.goodstypeid = g.goodstypeid
|
|
|
+ inner join tp_mst_goodstype gt2
|
|
|
+ on gt2.goodstypecode = substr(gt.goodstypecode, 0, 6)
|
|
|
+ and gt2.accountid = gt.accountid
|
|
|
+ inner join tp_mst_datadictionary dd
|
|
|
+ on dd.dictionaryid = g.GLAZETYPEID
|
|
|
+ where pd.valueflag = '1'
|
|
|
+ and pd.accountid = '1'
|
|
|
+ AND pd.CREATETIME >= ADD_MONTHS(TRUNC(SYSDATE, 'MM'), -1) + 25 AND pd.CREATETIME < ADD_MONTHS(TRUNC(SYSDATE, 'MM'), 0) + 25
|
|
|
+ AND exists (Select 1 from TP_MST_UserPurview up where up.PurviewType= 7 and (up.PurviewID = -1 or up.PurviewID= pd.ProductionLineId)) group by
|
|
|
+ TO_CHAR(pd.CREATETIME,'MM-DD'),
|
|
|
+ pd.productionlineid,
|
|
|
+ gt2.goodstypename,
|
|
|
+ gt.goodstypename,
|
|
|
+ g.goodscode,
|
|
|
+ g.goodsspecification,
|
|
|
+ g.GOODSMODEL,
|
|
|
+ dd.dictionaryvalue
|
|
|
+ order by gt2.goodstypename, g.goodscode ) pdata
|
|
|
+ group by
|
|
|
+ pdata. SJ,
|
|
|
+ pdata.productionlineid,
|
|
|
+ pdata.goodstypename2,
|
|
|
+ pdata.goodstypename,
|
|
|
+ pdata.goodscode,
|
|
|
+ pdata.goodsspecification,
|
|
|
+ pdata.GOODSMODEL,
|
|
|
+ pdata.GLAZETYPE
|
|
|
+ ) pdg
|
|
|
+ GROUP BY pdg.SJ
|
|
|
+ ORDER BY pdg.SJ
|
|
|
+ )
|
|
|
+ )
|
|
|
+
|
|
|
+ SELECT
|
|
|
+ 打磨.SJ,
|
|
|
+ 打磨.打磨,
|
|
|
+ 擦洗.擦洗,
|
|
|
+ 改洗.改洗
|
|
|
+ FROM 擦洗
|
|
|
+ LEFT JOIN 打磨 ON 打磨.SJ=擦洗.SJ
|
|
|
+ LEFT JOIN 改洗 ON 改洗.SJ=打磨.SJ";
|
|
|
+ //直接获取不分页数据
|
|
|
+ DataTable dt = conn.ExecuteDatatable(sqlStr);
|
|
|
+ string jsonStr = new JsonResult(dt).ToJson();
|
|
|
+ context.Response.Write(jsonStr);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public decimal toNumber(object o)
|
|
|
+ {
|
|
|
+ if (o != DBNull.Value)
|
|
|
+ return Convert.ToDecimal(o);
|
|
|
+ else
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ public bool IsReusable
|
|
|
+ {
|
|
|
+ get
|
|
|
+ {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+}
|