rpt.ashx 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  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. //包装单表格
  21. if (context.Request["m"].ToString() == "table")
  22. {
  23. string sqlStr = @"SELECT
  24. mg.goodsname 产品名称,
  25. dpd.sku_code 物料编码,
  26. CASE
  27. WHEN dpd.out_qty = 0 THEN
  28. NULL ELSE dpd.plan_qty
  29. END 计划包装数,
  30. dpd.MAKE_QTY 实际生产数量,
  31. dpd.workshop || '车间' AS 车间,
  32. CASE WHEN dpd.plan_qty = 0 THEN
  33. '100.00%' ELSE to_char( round( dpd.make_qty / dpd.plan_qty, 4 ) * 100, 'fm9999999990.00' ) || '%'
  34. END AS 完成率
  35. FROM
  36. tp_pack_dailyplandetail dpd
  37. LEFT JOIN tp_mst_goods mg ON dpd.goodsid = mg.goodsid
  38. WHERE
  39. dpd.bz_plan_qty > 0
  40. AND dpd.MAKE_QTY > 0
  41. AND (dpd.plan_qty * 1.2) >= dpd.make_qty
  42. AND dpd.planid IN (
  43. SELECT
  44. dp.planid AS sid
  45. FROM
  46. tp_pack_dailyplan dp
  47. WHERE
  48. dp.valueflag = 1
  49. AND dp.accountid = 1
  50. AND dp.plandate >= TRUNC( SYSDATE )
  51. )
  52. ORDER BY
  53. round( dpd.make_qty / dpd.plan_qty, 4 ) DESC";
  54. //直接获取不分页数据
  55. DataTable dt = conn.ExecuteDatatable(sqlStr);
  56. string jsonStr = new JsonResult(dt).ToJson();
  57. context.Response.Write(jsonStr);
  58. }
  59. if (context.Request["m"].ToString() == "count")
  60. {
  61. string sqlStr = @"SELECT
  62. CASE WHEN T.TYPECODE=001001 THEN
  63. '大件'
  64. ELSE
  65. '小件'
  66. END 产品类别,
  67. T.COUNT 成型产量,
  68. BJ.COUNT 半检产量,
  69. SY.COUNT 施釉产量,
  70. SC.COUNT 烧成产量,
  71. CJ.COUNT 成检产量
  72. FROM(
  73. SELECT
  74. SUBSTR(TMGS.GOODSTYPECODE, 1, 6 ) typecode,
  75. COUNT( * ) count
  76. FROM
  77. TP_PM_GROUTINGDAILYDETAIL TPGL
  78. LEFT JOIN TP_MST_GOODS TMG ON TPGL.GOODSID = TMG.GOODSID
  79. LEFT JOIN TP_MST_GOODSTYPE TMGS ON TMG.GOODSTYPEID = TMGS.GOODSTYPEID
  80. WHERE
  81. TPGL.CREATETIME >= TRUNC( SYSDATE )
  82. AND TPGL.VALUEFLAG = 1
  83. GROUP BY SUBSTR(TMGS.GOODSTYPECODE, 1, 6 ))T
  84. FULL JOIN (SELECT COUNT(*) count,SUBSTR(TMGS.GOODSTYPECODE, 1, 6 ) typecode FROM TP_PM_PRODUCTIONDATA TPPD LEFT JOIN TP_MST_GOODS TMG ON TPPD.GOODSID = TMG.GOODSID LEFT JOIN TP_MST_GOODSTYPE TMGS ON TMG.GOODSTYPEID = TMGS.GOODSTYPEID WHERE TPPD.PROCEDUREID IN (118,92,88,1,17) AND TPPD.CREATETIME >= TRUNC(SYSDATE) AND TPPD.VALUEFLAG = 1 GROUP BY SUBSTR(TMGS.GOODSTYPECODE, 1, 6 )) BJ ON BJ.typecode=T.typecode
  85. FULL JOIN (SELECT COUNT(*) count,SUBSTR(TMGS.GOODSTYPECODE, 1, 6 ) typecode FROM TP_PM_PRODUCTIONDATA TPPD LEFT JOIN TP_MST_GOODS TMG ON TPPD.GOODSID = TMG.GOODSID LEFT JOIN TP_MST_GOODSTYPE TMGS ON TMG.GOODSTYPEID = TMGS.GOODSTYPEID WHERE TPPD.PROCEDUREID IN (65,99) AND TPPD.CREATETIME >= TRUNC(SYSDATE) AND TPPD.VALUEFLAG = 1 GROUP BY SUBSTR(TMGS.GOODSTYPECODE, 1, 6 )) SY ON SY.typecode=T.typecode
  86. FULL JOIN (SELECT COUNT(*) count,SUBSTR(TMGS.GOODSTYPECODE, 1, 6 ) typecode FROM TP_PM_PRODUCTIONDATA TPPD LEFT JOIN TP_MST_GOODS TMG ON TPPD.GOODSID = TMG.GOODSID LEFT JOIN TP_MST_GOODSTYPE TMGS ON TMG.GOODSTYPEID = TMGS.GOODSTYPEID WHERE TPPD.PROCEDUREID IN (10,103) AND TPPD.CREATETIME >= TRUNC(SYSDATE) AND TPPD.VALUEFLAG = 1 GROUP BY SUBSTR(TMGS.GOODSTYPECODE, 1, 6 )) SC ON SC.typecode=T.typecode
  87. FULL JOIN (SELECT COUNT(*) count,SUBSTR(TMGS.GOODSTYPECODE, 1, 6 ) typecode FROM TP_PM_PRODUCTIONDATA TPPD LEFT JOIN TP_MST_GOODS TMG ON TPPD.GOODSID = TMG.GOODSID LEFT JOIN TP_MST_GOODSTYPE TMGS ON TMG.GOODSTYPEID = TMGS.GOODSTYPEID WHERE TPPD.PROCEDUREID IN (11,104) AND TPPD.CREATETIME >= TRUNC(SYSDATE) AND TPPD.VALUEFLAG = 1 GROUP BY SUBSTR(TMGS.GOODSTYPECODE, 1, 6 )) CJ ON CJ.typecode=T.typecode";
  88. //直接获取不分页数据
  89. DataTable dt = conn.ExecuteDatatable(sqlStr);
  90. string jsonStr = new JsonResult(dt).ToJson();
  91. context.Response.Write(jsonStr);
  92. }
  93. }
  94. }
  95. public bool IsReusable
  96. {
  97. get
  98. {
  99. return false;
  100. }
  101. }
  102. }