| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217 |
- <%@ WebHandler Language="C#" Class="rpt" %>
- using System;
- using System.Web;
- using System.Web.SessionState;
- using System.Data;
- using Curtain.DataAccess;
- using DK.XuWei.WebMes;
- public class rpt : IHttpHandler, IReadOnlySessionState
- {
- public void ProcessRequest(HttpContext context)
- {
- context.Response.ContentType = "text/plain";
- using (IDataAccess conn = DataAccess.Create())
- {
- if (context.Request["m"].ToString() == "rate")
- {
- string sqlStr = @"
- SELECT T2.SJ,
- NVL(T1.NUM1, 0) AS NUM1,
- NVL(T2.NUM2, 0) AS NUM2
- FROM (SELECT TO_CHAR(DP.ACCOUNTDATE, 'MM/DD') AS ACCOUNTDATE,
- SUM(DPD.PLANQUANTITY) AS NUM1
- FROM TP_PC_DAILYPLAN DP
- LEFT JOIN TP_PC_DAILYPLANDETAIL DPD
- ON DP.DAILYPLANID = DPD.DAILYPLANID
- WHERE DP.VALUEFLAG = 1
- AND DPD.VALUEFLAG = 1
- AND DP.ACCOUNTDATE >= TRUNC(ADD_MONTHS(LAST_DAY(SYSDATE), -1) + 1)
- AND DP.ACCOUNTDATE < TRUNC(LAST_DAY(SYSDATE) + 1)
- GROUP BY TO_CHAR(DP.ACCOUNTDATE, 'MM/DD')) T1
- RIGHT JOIN (SELECT TO_CHAR(TRUNC(T.CREATETIME), 'MM/DD') AS SJ,
- NVL(SUM(T.GOODSLEVELTYPEID), 0) NUM2
- FROM (SELECT 1 AS GOODSLEVELTYPEID,
- PD.GOODSID,
- PD.CREATETIME
- FROM TP_PM_FINISHEDPRODUCT PD
- WHERE PD.VALUEFLAG = '1'
- AND PD.ACCOUNTID = 1
- AND PD.CREATETIME >= TRUNC(ADD_MONTHS(LAST_DAY(SYSDATE), -1) + 1)
- AND PD.CREATETIME < TRUNC(LAST_DAY(SYSDATE) + 1)) T
- INNER JOIN TP_MST_GOODS MSTGOODS
- ON MSTGOODS.GOODSID = T.GOODSID
- INNER JOIN TP_MST_GOODSTYPE MSTGOODSTYPE
- ON MSTGOODSTYPE.GOODSTYPEID = MSTGOODS.GOODSTYPEID
- WHERE MSTGOODSTYPE.GOODSTYPECODE LIKE '001001%'
- GROUP BY TO_CHAR(TRUNC(T.CREATETIME), 'MM/DD')) T2
- ON T2.SJ = T1.ACCOUNTDATE
- ORDER BY T2.SJ ";
- //直接获取不分页数据
- DataTable dt = conn.ExecuteDatatable(sqlStr);
- string jsonStr = new JsonResult(dt).ToJson();
- context.Response.Write(jsonStr);
- }
- else if (context.Request["m"].ToString() == "table1")
- {
- string sqlStr = @"
- SELECT * FROM (
- SELECT T1.MATNR,
- DECODE(INSTR(G.GOODSCODE, '-')
- ,0
- ,G.GOODSCODE
- ,SUBSTR(G.GOODSCODE, 0, LENGTH(G.GOODSCODE) - 2)) AS GOODSCODE,
- NVL(T1.NUM1, 0) AS NUM1,
- NVL(T2.NUM2, 0) AS NUM2,
- --NVL(T1.NUM1, 0) - NVL(T2.NUM2, 0) AS NUM3,
- CASE WHEN NVL(T1.NUM1, 0) < NVL(T2.NUM2, 0) THEN 0 ELSE NVL(T1.NUM1, 0) - NVL(T2.NUM2, 0) END AS NUM3,
- DECODE(NVL(T1.NUM1, 0)
- ,0
- ,'-'
- ,ROUND((NVL(T2.NUM2, 0) / DECODE(NVL(T1.NUM1, 1), 0, 1, NVL(T1.NUM1, 1))) * 100, 1) || '%') AS RATE
- FROM (SELECT DPD.MATNR,
- SUM(DPD.OUTQUANTITY) AS NUM1
- FROM TP_PC_DAILYPLAN DP
- LEFT JOIN TP_PC_DAILYPLANDETAIL DPD
- ON DP.DAILYPLANID = DPD.DAILYPLANID
- WHERE DP.VALUEFLAG = 1
- AND DPD.VALUEFLAG = 1
- AND DP.ACCOUNTDATE = TRUNC(SYSDATE)
- GROUP BY DPD.MATNR) T1
- LEFT JOIN (SELECT T.MATERIALCODE,
- NVL(SUM(T.GOODSLEVELTYPEID), 0) NUM2
- FROM (SELECT 1 AS GOODSLEVELTYPEID,
- GD.MATERIALCODE
- FROM TP_PM_FINISHEDPRODUCT PD
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GD
- ON GD.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID
- WHERE PD.VALUEFLAG = '1'
- AND PD.ACCOUNTID = 1
- AND PD.CREATETIME >= TRUNC(SYSDATE)
- AND PD.CREATETIME < TRUNC(SYSDATE) + 1) T
- GROUP BY T.MATERIALCODE) T2
- ON T1.MATNR = T2.MATERIALCODE
- LEFT JOIN (SELECT T.MATERIALCODE,
- MIN(T.GOODSID) AS GOODSID
- FROM (SELECT G.GOODSID,
- G.MATERIALCODE
- FROM TP_MST_GOODS G
- WHERE G.VALUEFLAG = '1'
- AND G.PLANFLAG = '1'
- UNION ALL
- SELECT S.GOODSID,
- S.MATERIALCODE
- FROM TP_MST_GOODSLOGOSAP S
- INNER JOIN TP_MST_GOODS G
- ON G.GOODSID = S.GOODSID
- WHERE G.VALUEFLAG = '1'
- AND G.PLANFLAG = '1') T
- GROUP BY T.MATERIALCODE) T3
- ON T3.MATERIALCODE = T1.MATNR
- LEFT JOIN TP_MST_GOODS G
- ON G.GOODSID = T3.GOODSID
- --ORDER BY ROUND((NVL(T2.NUM2, 0) / DECODE(NVL(T1.NUM1, 1), 0, 1, NVL(T1.NUM1, 1))) * 100, 1) DESC,
- -- T1.NUM1 DESC,
- -- T2.NUM2 DESC,
- -- G.GOODSCODE
- ) WHERE NUM1 > 0 AND NUM2 > 0 ORDER BY TO_NUMBER(SUBSTR(RATE, 0, LENGTH(RATE)-1)) DESC";
- //直接获取不分页数据
- DataTable dt = conn.ExecuteDatatable(sqlStr);
- string jsonStr = new JsonResult(dt).ToJson();
- context.Response.Write(jsonStr);
- }
- else if (context.Request["m"].ToString() == "table2")
- {
- string sqlStr = @"
- SELECT * FROM (
- SELECT T1.MATNR,
- DECODE(INSTR(G.GOODSCODE, '-')
- ,0
- ,G.GOODSCODE
- ,SUBSTR(G.GOODSCODE, 0, LENGTH(G.GOODSCODE) - 2)) AS GOODSCODE,
- NVL(T1.NUM1, 0) AS NUM1,
- NVL(T2.NUM2, 0) AS NUM2,
- NVL(T1.NUM1, 0) - NVL(T2.NUM2, 0) AS NUM3,
- DECODE(NVL(T1.NUM1, 0)
- ,0
- ,'-'
- ,DECODE(NVL(T2.NUM2, 0)
- ,0
- ,'0%'
- ,TO_CHAR((NVL(T2.NUM2, 0) / DECODE(NVL(T1.NUM1, 1), 0, 1, NVL(T1.NUM1, 1))) * 100
- ,'FM99990.0') || '%')) AS RATE
- FROM (SELECT DPD.MATNR,
- SUM(DPD.MENGE) AS NUM1
- FROM TP_PC_MONTHPLAN DP
- LEFT JOIN TP_PC_MONTHPLANDETAIL DPD
- ON DP.MONTHPLANID = DPD.MONTHPLANID
- WHERE DP.VALUEFLAG = 1
- AND DPD.VALUEFLAG = 1
- AND DP.PROCEDUREID = 104
- AND DP.ACCOUNTMONTH >= TO_CHAR(SYSDATE, 'YYYY-MM')
- GROUP BY DPD.MATNR) T1
- LEFT JOIN (SELECT T.MATERIALCODE,
- NVL(SUM(T.GOODSLEVELTYPEID), 0) NUM2
- FROM (SELECT 1 AS GOODSLEVELTYPEID,
- GD.MATERIALCODE
- FROM TP_PM_FINISHEDPRODUCT PD
- INNER JOIN TP_PM_GROUTINGDAILYDETAIL GD
- ON GD.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID
- WHERE PD.VALUEFLAG = '1'
- AND PD.ACCOUNTID = 1
- AND PD.CREATETIME >= TRUNC(ADD_MONTHS(LAST_DAY(SYSDATE), -1) + 1)
- AND PD.CREATETIME < TRUNC(LAST_DAY(SYSDATE) + 1)) T
- GROUP BY T.MATERIALCODE) T2
- ON T1.MATNR = T2.MATERIALCODE
- LEFT JOIN (SELECT T.MATERIALCODE,
- MIN(T.GOODSID) AS GOODSID
- FROM (SELECT G.GOODSID,
- G.MATERIALCODE
- FROM TP_MST_GOODS G
- WHERE G.VALUEFLAG = '1'
- AND G.PLANFLAG = '1'
- UNION ALL
- SELECT S.GOODSID,
- S.MATERIALCODE
- FROM TP_MST_GOODSLOGOSAP S
- INNER JOIN TP_MST_GOODS G
- ON G.GOODSID = S.GOODSID
- WHERE G.VALUEFLAG = '1'
- AND G.PLANFLAG = '1') T
- GROUP BY T.MATERIALCODE) T3
- ON T3.MATERIALCODE = T1.MATNR
- LEFT JOIN TP_MST_GOODS G
- ON G.GOODSID = T3.GOODSID
- --ORDER BY ROUND((NVL(T2.NUM2, 0) / DECODE(NVL(T1.NUM1, 1), 0, 1, NVL(T1.NUM1, 1))) * 100, 1) DESC,
- -- T1.NUM1 DESC,
- -- T2.NUM2 DESC,
- -- G.GOODSCODE
- ) WHERE NUM1 > 0 AND NUM2 > 0 ORDER BY TO_NUMBER(SUBSTR(RATE, 0, LENGTH(RATE)-1)) DESC";
- //直接获取不分页数据
- 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;
- }
- }
- }
|