<%@ WebHandler Language="C#" Class="rpt" %> using System; using System.Web; using System.Web.SessionState; using System.Data; using System.Text; using System.Collections; using System.Collections.Generic; using Newtonsoft.Json; using Newtonsoft.Json.Linq; 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()) { string groutinglinecode = ""; if (context.Request["linecode"].ToString() == "01") { if (context.Request["type"].ToString() == "外壳") groutinglinecode = "C05A01"; if (context.Request["type"].ToString() == "内胆") groutinglinecode = "C05B01"; if (context.Request["type"].ToString() == "座圈") groutinglinecode = "C05C01"; //读取报表数据 string sqlStr = @" WITH hour AS ( SELECT 00 AS h FROM dual UNION SELECT 01 AS h FROM dual UNION SELECT 02 AS h FROM dual UNION SELECT 03 AS h FROM dual UNION SELECT 04 AS h FROM dual UNION SELECT 05 AS h FROM dual UNION SELECT 06 AS h FROM dual UNION SELECT 07 AS h FROM dual UNION SELECT 08 AS h FROM dual UNION SELECT 09 AS h FROM dual UNION SELECT 10 AS h FROM dual UNION SELECT 11 AS h FROM dual UNION SELECT 12 AS h FROM dual UNION SELECT 13 AS h FROM dual UNION SELECT 14 AS h FROM dual UNION SELECT 15 AS h FROM dual UNION SELECT 16 AS h FROM dual UNION SELECT 17 AS h FROM dual UNION SELECT 18 AS h FROM dual UNION SELECT 19 AS h FROM dual UNION SELECT 20 AS h FROM dual UNION SELECT 21 AS h FROM dual UNION SELECT 22 AS h FROM dual UNION SELECT 23 AS h FROM dual ) SELECT 时间, 低注时间, 高注时间, 排泥时间, 巩固时间, 压力, 温度 FROM ( SELECT ROWNUM, H.H AS 时间, NVL( T.低注时间, 0 ) AS 低注时间, NVL( T.高注时间, 0 ) AS 高注时间, NVL( T.排泥时间, 0 ) AS 排泥时间, NVL( T.巩固时间, 0 ) AS 巩固时间, NVL( T.压力, 0 ) AS 压力, NVL( T.温度, 0 ) AS 温度 FROM ( SELECT TO_NUMBER(TO_CHAR( GPT.CREATETIME, 'HH24')) AS 采集时间, ROUND( AVG( GP.LZ_TIME ), 2 ) AS 低注时间, ROUND( AVG( GP.GZ_TIME ), 2 ) AS 高注时间, ROUND( AVG( GP.PN_TIME ), 2 ) AS 排泥时间, ROUND( AVG( GP.GG_TIME ), 2 ) AS 巩固时间, ROUND( AVG( GPT.G_PRESSURE ), 2 ) AS 压力, ROUND( AVG( GPT.G_TEMPERATURE ), 2 ) AS 温度 FROM TP_PM_H_GROUTINGPARAS GP LEFT JOIN TP_PM_H_GROUTINGPARAS_PT GPT ON GPT.GROUTINGDAILYID = GP.GROUTINGDAILYID -- LEFT JOIN TP_PM_GROUTINGDAILY GD ON GD.GROUTINGDAILYID = GP.GROUTINGDAILYID -- LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYID = GD.GROUTINGDAILYID WHERE GPT.CREATETIME >= DATE'2020-09-11' AND GPT.CREATETIME < DATE'2020-09-12' -- AND GDD.GROUTINGFLAG = '1' --注浆标识 -- AND GDD.SCRAPFLAG = '0' --损坯标识 AND GP.GROUTINGLINECODE = @GROUTINGLINECODE@ GROUP BY TO_CHAR( GPT.CREATETIME, 'HH24' ) ORDER BY TO_CHAR( GPT.CREATETIME, 'HH24' ) ) t RIGHT JOIN ( SELECT * FROM hour ) h ON t.采集时间 = h.h ORDER BY h.h ) WHERE ROWNUM <= TO_NUMBER(TO_CHAR(sysdate, 'HH24')) + 1 "; List sqlPara = new List(); sqlPara.Add(new CDAParameter("GROUTINGLINECODE", groutinglinecode)); //直接获取不分页数据 DataTable dt = conn.ExecuteDatatable(sqlStr, sqlPara.ToArray()); 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; } } }