| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- <%@ 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())
- {
- //包装单表格
- if (context.Request["m"].ToString() == "table")
- {
- string sqlStr = @"SELECT
- mg.goodsname 产品名称,
- dpd.sku_code 物料编码,
- CASE
-
- WHEN dpd.out_qty = 0 THEN
- NULL ELSE dpd.plan_qty
- END 计划包装数,
- dpd.MAKE_QTY 实际生产数量,
- dpd.workshop || '车间' AS 车间,
- CASE WHEN dpd.plan_qty = 0 THEN
- '100.00%' ELSE to_char( round( dpd.make_qty / dpd.plan_qty, 4 ) * 100, 'fm9999999990.00' ) || '%'
- END AS 完成率
- FROM
- tp_pack_dailyplandetail dpd
- LEFT JOIN tp_mst_goods mg ON dpd.goodsid = mg.goodsid
- WHERE
- dpd.bz_plan_qty > 0
- AND dpd.MAKE_QTY > 0
- AND (dpd.plan_qty * 1.2) >= dpd.make_qty
- AND dpd.planid IN (
- SELECT
- dp.planid AS sid
- FROM
- tp_pack_dailyplan dp
- WHERE
- dp.valueflag = 1
- AND dp.accountid = 1
- AND dp.plandate >= TRUNC( SYSDATE )
- )
- ORDER BY
- round( dpd.make_qty / dpd.plan_qty, 4 ) DESC";
- //直接获取不分页数据
- DataTable dt = conn.ExecuteDatatable(sqlStr);
- string jsonStr = new JsonResult(dt).ToJson();
- context.Response.Write(jsonStr);
- }
- if (context.Request["m"].ToString() == "count")
- {
- string sqlStr = @"SELECT
- CASE WHEN T.TYPECODE=001001 THEN
- '大件'
- ELSE
- '小件'
- END 产品类别,
- T.COUNT 成型产量,
- BJ.COUNT 半检产量,
- SY.COUNT 施釉产量,
- SC.COUNT 烧成产量,
- CJ.COUNT 成检产量
- FROM(
- SELECT
- SUBSTR(TMGS.GOODSTYPECODE, 1, 6 ) typecode,
- COUNT( * ) count
- FROM
- TP_PM_GROUTINGDAILYDETAIL TPGL
- LEFT JOIN TP_MST_GOODS TMG ON TPGL.GOODSID = TMG.GOODSID
- LEFT JOIN TP_MST_GOODSTYPE TMGS ON TMG.GOODSTYPEID = TMGS.GOODSTYPEID
- WHERE
- TPGL.CREATETIME >= TRUNC( SYSDATE )
- AND TPGL.VALUEFLAG = 1
- GROUP BY SUBSTR(TMGS.GOODSTYPECODE, 1, 6 ))T
- 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
- 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
- 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
- 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";
- //直接获取不分页数据
- DataTable dt = conn.ExecuteDatatable(sqlStr);
- string jsonStr = new JsonResult(dt).ToJson();
- context.Response.Write(jsonStr);
- }
- }
- }
- public bool IsReusable
- {
- get
- {
- return false;
- }
- }
- }
|