rpt2.ashx 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349
  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. if (context.Request["m"].ToString() == "1")
  21. {
  22. //读取报表数据
  23. string sqlStr = @"
  24. WITH hour AS (
  25. SELECT
  26. 00 AS h
  27. FROM
  28. dual UNION
  29. SELECT
  30. 01 AS h
  31. FROM
  32. dual UNION
  33. SELECT
  34. 02 AS h
  35. FROM
  36. dual UNION
  37. SELECT
  38. 03 AS h
  39. FROM
  40. dual UNION
  41. SELECT
  42. 04 AS h
  43. FROM
  44. dual UNION
  45. SELECT
  46. 05 AS h
  47. FROM
  48. dual UNION
  49. SELECT
  50. 06 AS h
  51. FROM
  52. dual UNION
  53. SELECT
  54. 07 AS h
  55. FROM
  56. dual UNION
  57. SELECT
  58. 08 AS h
  59. FROM
  60. dual UNION
  61. SELECT
  62. 09 AS h
  63. FROM
  64. dual UNION
  65. SELECT
  66. 10 AS h
  67. FROM
  68. dual UNION
  69. SELECT
  70. 11 AS h
  71. FROM
  72. dual UNION
  73. SELECT
  74. 12 AS h
  75. FROM
  76. dual UNION
  77. SELECT
  78. 13 AS h
  79. FROM
  80. dual UNION
  81. SELECT
  82. 14 AS h
  83. FROM
  84. dual UNION
  85. SELECT
  86. 15 AS h
  87. FROM
  88. dual UNION
  89. SELECT
  90. 16 AS h
  91. FROM
  92. dual UNION
  93. SELECT
  94. 17 AS h
  95. FROM
  96. dual UNION
  97. SELECT
  98. 18 AS h
  99. FROM
  100. dual UNION
  101. SELECT
  102. 19 AS h
  103. FROM
  104. dual UNION
  105. SELECT
  106. 20 AS h
  107. FROM
  108. dual UNION
  109. SELECT
  110. 21 AS h
  111. FROM
  112. dual UNION
  113. SELECT
  114. 22 AS h
  115. FROM
  116. dual UNION
  117. SELECT
  118. 23 AS h
  119. FROM
  120. dual
  121. )
  122. SELECT
  123. '1#' AS 施釉房号,
  124. h.h AS 时间,
  125. 流量
  126. FROM
  127. (
  128. SELECT
  129. TO_CHAR( P.CREATETIME, 'HH24' ) AS 时间,
  130. ROUND( avg( nvl(G.G_FLOW,0) ), 2 ) AS 流量
  131. FROM
  132. TP_PM_PRODUCTIONDATA P
  133. LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GD ON GD.GROUTINGDAILYDETAILID = P.GROUTINGDAILYDETAILID
  134. LEFT JOIN TP_PM_GOODSGLAZING G ON P.GROUTINGDAILYDETAILID = G.GROUTINGDAILYDETAILID
  135. WHERE
  136. P.PROCEDUREID = 98
  137. AND P.CREATETIME >= TRUNC(SYSDATE)
  138. AND P.CREATETIME < TRUNC(SYSDATE) + 1
  139. AND GD.GLAZINGROOM = '1#'
  140. GROUP BY
  141. TO_CHAR( P.CREATETIME, 'HH24' )
  142. )t
  143. RIGHT JOIN ( SELECT * FROM hour ) h ON t.时间 = h.h
  144. ORDER BY
  145. h.h
  146. ";
  147. //直接获取不分页数据
  148. DataTable dt = conn.ExecuteDatatable(sqlStr);
  149. string jsonStr = new JsonResult(dt).ToJson();
  150. context.Response.Write(jsonStr);
  151. }else if (context.Request["m"].ToString() == "2")
  152. {
  153. //读取报表数据
  154. string sqlStr = @"
  155. WITH hour AS (
  156. SELECT
  157. 00 AS h
  158. FROM
  159. dual UNION
  160. SELECT
  161. 01 AS h
  162. FROM
  163. dual UNION
  164. SELECT
  165. 02 AS h
  166. FROM
  167. dual UNION
  168. SELECT
  169. 03 AS h
  170. FROM
  171. dual UNION
  172. SELECT
  173. 04 AS h
  174. FROM
  175. dual UNION
  176. SELECT
  177. 05 AS h
  178. FROM
  179. dual UNION
  180. SELECT
  181. 06 AS h
  182. FROM
  183. dual UNION
  184. SELECT
  185. 07 AS h
  186. FROM
  187. dual UNION
  188. SELECT
  189. 08 AS h
  190. FROM
  191. dual UNION
  192. SELECT
  193. 09 AS h
  194. FROM
  195. dual UNION
  196. SELECT
  197. 10 AS h
  198. FROM
  199. dual UNION
  200. SELECT
  201. 11 AS h
  202. FROM
  203. dual UNION
  204. SELECT
  205. 12 AS h
  206. FROM
  207. dual UNION
  208. SELECT
  209. 13 AS h
  210. FROM
  211. dual UNION
  212. SELECT
  213. 14 AS h
  214. FROM
  215. dual UNION
  216. SELECT
  217. 15 AS h
  218. FROM
  219. dual UNION
  220. SELECT
  221. 16 AS h
  222. FROM
  223. dual UNION
  224. SELECT
  225. 17 AS h
  226. FROM
  227. dual UNION
  228. SELECT
  229. 18 AS h
  230. FROM
  231. dual UNION
  232. SELECT
  233. 19 AS h
  234. FROM
  235. dual UNION
  236. SELECT
  237. 20 AS h
  238. FROM
  239. dual UNION
  240. SELECT
  241. 21 AS h
  242. FROM
  243. dual UNION
  244. SELECT
  245. 22 AS h
  246. FROM
  247. dual UNION
  248. SELECT
  249. 23 AS h
  250. FROM
  251. dual
  252. )
  253. SELECT
  254. '2#' AS 施釉房号,
  255. h.h AS 时间,
  256. 流量
  257. FROM
  258. (
  259. SELECT
  260. TO_CHAR( P.CREATETIME, 'HH24' ) AS 时间,
  261. ROUND( avg( nvl(G.G_FLOW,0) ), 2 ) AS 流量
  262. FROM
  263. TP_PM_PRODUCTIONDATA P
  264. LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GD ON GD.GROUTINGDAILYDETAILID = P.GROUTINGDAILYDETAILID
  265. LEFT JOIN TP_PM_GOODSGLAZING G ON P.GROUTINGDAILYDETAILID = G.GROUTINGDAILYDETAILID
  266. WHERE
  267. P.PROCEDUREID = 98
  268. AND P.CREATETIME >= TRUNC(SYSDATE)
  269. AND P.CREATETIME < TRUNC(SYSDATE) + 1
  270. AND GD.GLAZINGROOM = '2#'
  271. GROUP BY
  272. TO_CHAR( P.CREATETIME, 'HH24' )
  273. )t
  274. RIGHT JOIN ( SELECT * FROM hour ) h ON t.时间 = h.h
  275. ORDER BY
  276. h.h
  277. ";
  278. //直接获取不分页数据
  279. DataTable dt = conn.ExecuteDatatable(sqlStr);
  280. string jsonStr = new JsonResult(dt).ToJson();
  281. context.Response.Write(jsonStr);
  282. }else if (context.Request["m"].ToString() == "table1")
  283. {
  284. //读取报表数据
  285. string sqlStr = @"
  286. SELECT
  287. ROUND( AVG( NVL(G.G_FLOW, 0) ), 2 ) AS 平均流量,
  288. ROUND( SUM( NVL(G.G_FLOW, 0) ), 2 ) AS 累计流量
  289. FROM
  290. TP_PM_PRODUCTIONDATA P
  291. LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GD ON GD.GROUTINGDAILYDETAILID = P.GROUTINGDAILYDETAILID
  292. LEFT JOIN TP_PM_GOODSGLAZING G ON P.GROUTINGDAILYDETAILID = G.GROUTINGDAILYDETAILID
  293. WHERE
  294. P.PROCEDUREID = 98
  295. AND P.CREATETIME >= TRUNC( SYSDATE )
  296. AND P.CREATETIME < TRUNC( SYSDATE ) + 1
  297. AND GD.GLAZINGROOM = '1#'
  298. ";
  299. //直接获取不分页数据
  300. DataTable dt = conn.ExecuteDatatable(sqlStr);
  301. string jsonStr = new JsonResult(dt).ToJson();
  302. context.Response.Write(jsonStr);
  303. }else if (context.Request["m"].ToString() == "table2")
  304. {
  305. //读取报表数据
  306. string sqlStr = @"
  307. SELECT
  308. ROUND( AVG( NVL(G.G_FLOW, 0) ), 2 ) AS 平均流量,
  309. ROUND( SUM( NVL(G.G_FLOW, 0) ), 2 ) AS 累计流量
  310. FROM
  311. TP_PM_PRODUCTIONDATA P
  312. LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GD ON GD.GROUTINGDAILYDETAILID = P.GROUTINGDAILYDETAILID
  313. LEFT JOIN TP_PM_GOODSGLAZING G ON P.GROUTINGDAILYDETAILID = G.GROUTINGDAILYDETAILID
  314. WHERE
  315. P.PROCEDUREID = 98
  316. AND P.CREATETIME >= TRUNC( SYSDATE )
  317. AND P.CREATETIME < TRUNC( SYSDATE ) + 1
  318. AND GD.GLAZINGROOM = '2#'
  319. ";
  320. //直接获取不分页数据
  321. DataTable dt = conn.ExecuteDatatable(sqlStr);
  322. string jsonStr = new JsonResult(dt).ToJson();
  323. context.Response.Write(jsonStr);
  324. }
  325. }
  326. }
  327. public decimal toNumber(object o)
  328. {
  329. if (o != DBNull.Value)
  330. return Convert.ToDecimal(o);
  331. else
  332. return 0;
  333. }
  334. public bool IsReusable
  335. {
  336. get
  337. {
  338. return false;
  339. }
  340. }
  341. }