demo.ashx 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  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() == "BIG")
  21. {
  22. //读取报表数据
  23. string sqlStr = @"
  24. SELECT
  25. ROWNUM,
  26. GOODSCODE,
  27. NUM
  28. FROM
  29. (
  30. SELECT
  31. F.GOODSCODE,
  32. COUNT( DISTINCT F.BARCODE ) AS NUM
  33. FROM
  34. TP_PM_FINISHEDPRODUCT F
  35. INNER JOIN TP_MST_GOODS G ON F.GOODSID = G.GOODSID
  36. INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
  37. WHERE
  38. F.CREATETIME >= TRUNC(SYSDATE, 'MM')
  39. AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1
  40. AND F.VALUEFLAG = 1
  41. GROUP BY
  42. F.GOODSCODE
  43. ORDER BY
  44. COUNT( DISTINCT F.BARCODE ) DESC
  45. )
  46. WHERE
  47. ROWNUM <= 10
  48. ";
  49. //直接获取不分页数据
  50. DataTable dt = conn.ExecuteDatatable(sqlStr);
  51. string jsonStr = new JsonResult(dt).ToJson();
  52. context.Response.Write(jsonStr);
  53. }else if (context.Request["m"].ToString() == "SMALL")
  54. {
  55. //读取报表数据
  56. string sqlStr = @"
  57. SELECT
  58. ROWNUM,
  59. GOODSCODE,
  60. NUM
  61. FROM
  62. (
  63. SELECT
  64. F.GOODSCODE,
  65. COUNT( DISTINCT F.BARCODE ) AS NUM
  66. FROM
  67. TP_PM_FINISHEDPRODUCT F
  68. INNER JOIN TP_MST_GOODS G ON F.GOODSID = G.GOODSID
  69. INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
  70. WHERE
  71. F.CREATETIME >= TRUNC(SYSDATE, 'MM')
  72. AND INSTR( GT.GOODSTYPECODE, '001002' ) = 1
  73. AND F.VALUEFLAG = 1
  74. GROUP BY
  75. F.GOODSCODE
  76. ORDER BY
  77. COUNT( DISTINCT F.BARCODE ) DESC
  78. )
  79. WHERE
  80. ROWNUM <= 10
  81. ";
  82. //直接获取不分页数据
  83. DataTable dt = conn.ExecuteDatatable(sqlStr);
  84. string jsonStr = new JsonResult(dt).ToJson();
  85. context.Response.Write(jsonStr);
  86. }else if (context.Request["m"].ToString() == "TOTAL")
  87. {
  88. //读取报表数据
  89. string sqlStr = @"
  90. SELECT
  91. TO_NUMBER(TO_CHAR( F.CREATETIME, 'DD' )) AS TIME,
  92. COUNT( DISTINCT F.BARCODE ) AS NUM,
  93. (
  94. SELECT
  95. ROUND( DP.PLANNUM / 30, 0 )
  96. FROM
  97. TP_MST_DASHBOARD_PLAN DP
  98. INNER JOIN TP_MST_DASHBOARD D ON DP.DASHBOARDID = D.DASHBOARDID
  99. WHERE
  100. DP.PLANTYPE = 3
  101. AND DP.PLANYEAR = TO_NUMBER( TO_CHAR( SYSDATE, 'YYYY' ) )
  102. AND DP.PLANMONTH = TO_NUMBER( TO_CHAR( SYSDATE, 'MM' ) )
  103. AND D.DASHBOARDNAME = '包装'
  104. ) AS PLAN
  105. FROM
  106. TP_PM_FINISHEDPRODUCT F
  107. INNER JOIN
  108. TP_MST_GOODS G
  109. ON F.GOODSID = G.GOODSID
  110. INNER JOIN
  111. TP_MST_GOODSTYPE GT
  112. ON GT.GOODSTYPEID = G.GOODSTYPEID
  113. WHERE
  114. F.CREATETIME >= TRUNC( SYSDATE, 'MM' )
  115. AND F.VALUEFLAG = 1
  116. AND INSTR(GT.GOODSTYPECODE,'001001') = 1
  117. GROUP BY
  118. TO_CHAR( F.CREATETIME, 'DD' )
  119. ORDER BY
  120. TO_CHAR( F.CREATETIME, 'DD' )
  121. ";
  122. //直接获取不分页数据
  123. DataTable dt = conn.ExecuteDatatable(sqlStr);
  124. int year = Convert.ToInt32(DateTime.Now.Year);
  125. int month = Convert.ToInt32(DateTime.Now.Month);
  126. for (int i = dt.Rows.Count + 1; i <= DateTime.DaysInMonth(year, month); i++) {
  127. DataRow dr = dt.NewRow();
  128. dr["TIME"] = i;
  129. dr["NUM"] = 0;
  130. dr["PLAN"] = 0;
  131. dt.Rows.Add(dr);
  132. }
  133. string jsonStr = new JsonResult(dt).ToJson();
  134. context.Response.Write(jsonStr);
  135. }
  136. }
  137. }
  138. public decimal toNumber(object o)
  139. {
  140. if (o != DBNull.Value)
  141. return Convert.ToDecimal(o);
  142. else
  143. return 0;
  144. }
  145. public bool IsReusable
  146. {
  147. get
  148. {
  149. return false;
  150. }
  151. }
  152. }