rpt2.ashx 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213
  1. <%@ WebHandler Language="C#" Class="rpt" %>
  2. using System;
  3. using System.Web;
  4. using System.Web.SessionState;
  5. using System.Data;
  6. using System.Text;
  7. using System.Collections;
  8. using System.Collections.Generic;
  9. using Newtonsoft.Json;
  10. using Newtonsoft.Json.Linq;
  11. using Curtain.DataAccess;
  12. using DK.XuWei.WebMes;
  13. public class rpt : IHttpHandler, IReadOnlySessionState
  14. {
  15. public void ProcessRequest(HttpContext context)
  16. {
  17. context.Response.ContentType = "text/plain";
  18. using(IDataAccess conn = DataAccess.Create())
  19. {
  20. string groutinglinecode = "";
  21. if (context.Request["linecode"].ToString() == "01")
  22. {
  23. if (context.Request["type"].ToString() == "外壳") groutinglinecode = "C05A01";
  24. if (context.Request["type"].ToString() == "内胆") groutinglinecode = "C05B01";
  25. if (context.Request["type"].ToString() == "座圈") groutinglinecode = "C05C01";
  26. //读取报表数据
  27. string sqlStr = @"
  28. WITH hour AS (
  29. SELECT
  30. 00 AS h
  31. FROM
  32. dual UNION
  33. SELECT
  34. 01 AS h
  35. FROM
  36. dual UNION
  37. SELECT
  38. 02 AS h
  39. FROM
  40. dual UNION
  41. SELECT
  42. 03 AS h
  43. FROM
  44. dual UNION
  45. SELECT
  46. 04 AS h
  47. FROM
  48. dual UNION
  49. SELECT
  50. 05 AS h
  51. FROM
  52. dual UNION
  53. SELECT
  54. 06 AS h
  55. FROM
  56. dual UNION
  57. SELECT
  58. 07 AS h
  59. FROM
  60. dual UNION
  61. SELECT
  62. 08 AS h
  63. FROM
  64. dual UNION
  65. SELECT
  66. 09 AS h
  67. FROM
  68. dual UNION
  69. SELECT
  70. 10 AS h
  71. FROM
  72. dual UNION
  73. SELECT
  74. 11 AS h
  75. FROM
  76. dual UNION
  77. SELECT
  78. 12 AS h
  79. FROM
  80. dual UNION
  81. SELECT
  82. 13 AS h
  83. FROM
  84. dual UNION
  85. SELECT
  86. 14 AS h
  87. FROM
  88. dual UNION
  89. SELECT
  90. 15 AS h
  91. FROM
  92. dual UNION
  93. SELECT
  94. 16 AS h
  95. FROM
  96. dual UNION
  97. SELECT
  98. 17 AS h
  99. FROM
  100. dual UNION
  101. SELECT
  102. 18 AS h
  103. FROM
  104. dual UNION
  105. SELECT
  106. 19 AS h
  107. FROM
  108. dual UNION
  109. SELECT
  110. 20 AS h
  111. FROM
  112. dual UNION
  113. SELECT
  114. 21 AS h
  115. FROM
  116. dual UNION
  117. SELECT
  118. 22 AS h
  119. FROM
  120. dual UNION
  121. SELECT
  122. 23 AS h
  123. FROM
  124. dual
  125. )
  126. SELECT
  127. 时间,
  128. 低注时间,
  129. 高注时间,
  130. 排泥时间,
  131. 巩固时间,
  132. 压力,
  133. 温度
  134. FROM
  135. (
  136. SELECT
  137. ROWNUM,
  138. H.H AS 时间,
  139. NVL( T.低注时间, 0 ) AS 低注时间,
  140. NVL( T.高注时间, 0 ) AS 高注时间,
  141. NVL( T.排泥时间, 0 ) AS 排泥时间,
  142. NVL( T.巩固时间, 0 ) AS 巩固时间,
  143. NVL( T.压力, 0 ) AS 压力,
  144. NVL( T.温度, 0 ) AS 温度
  145. FROM
  146. (
  147. SELECT
  148. TO_NUMBER(TO_CHAR( GPT.CREATETIME, 'HH24')) AS 采集时间,
  149. ROUND( AVG( GP.LZ_TIME ), 2 ) AS 低注时间,
  150. ROUND( AVG( GP.GZ_TIME ), 2 ) AS 高注时间,
  151. ROUND( AVG( GP.PN_TIME ), 2 ) AS 排泥时间,
  152. ROUND( AVG( GP.GG_TIME ), 2 ) AS 巩固时间,
  153. ROUND( AVG( GPT.G_PRESSURE ), 2 ) AS 压力,
  154. ROUND( AVG( GPT.G_TEMPERATURE ), 2 ) AS 温度
  155. FROM
  156. TP_PM_H_GROUTINGPARAS GP
  157. LEFT JOIN TP_PM_H_GROUTINGPARAS_PT GPT ON GPT.GROUTINGDAILYID = GP.GROUTINGDAILYID
  158. -- LEFT JOIN TP_PM_GROUTINGDAILY GD ON GD.GROUTINGDAILYID = GP.GROUTINGDAILYID
  159. -- LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYID = GD.GROUTINGDAILYID
  160. WHERE
  161. GPT.CREATETIME >= DATE'2020-09-11'
  162. AND GPT.CREATETIME < DATE'2020-09-12'
  163. -- AND GDD.GROUTINGFLAG = '1' --注浆标识
  164. -- AND GDD.SCRAPFLAG = '0' --损坯标识
  165. AND GP.GROUTINGLINECODE = @GROUTINGLINECODE@
  166. GROUP BY
  167. TO_CHAR( GPT.CREATETIME, 'HH24' )
  168. ORDER BY
  169. TO_CHAR( GPT.CREATETIME, 'HH24' )
  170. ) t
  171. RIGHT JOIN ( SELECT * FROM hour ) h ON t.采集时间 = h.h
  172. ORDER BY
  173. h.h
  174. )
  175. WHERE
  176. ROWNUM <= TO_NUMBER(TO_CHAR(sysdate, 'HH24')) + 1
  177. ";
  178. List<CDAParameter> sqlPara = new List<CDAParameter>();
  179. sqlPara.Add(new CDAParameter("GROUTINGLINECODE", groutinglinecode));
  180. //直接获取不分页数据
  181. DataTable dt = conn.ExecuteDatatable(sqlStr, sqlPara.ToArray());
  182. string jsonStr = new JsonResult(dt).ToJson();
  183. context.Response.Write(jsonStr);
  184. }
  185. }
  186. }
  187. public decimal toNumber(object o)
  188. {
  189. if (o != DBNull.Value)
  190. return Convert.ToDecimal(o);
  191. else
  192. return 0;
  193. }
  194. public bool IsReusable
  195. {
  196. get
  197. {
  198. return false;
  199. }
  200. }
  201. }