<%@ WebHandler Language="C#" Class="getDefect" %> using System; using System.Collections.Generic; using System.Web; using System.Web.SessionState; using System.Configuration; using System.Data; using Newtonsoft.Json; using Curtain.DataAccess; using Curtain.Log; using DK.XuWei.WebMes; public class getDefect : IHttpHandler { public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; using (IDataAccess conn = DataAccess.Create()) { string sqlStr = @" SELECT --P.GROUTINGDAILYDETAILID AS 注浆明细, P.BARCODE AS 条码, P.GOODSCODE AS 产品, G.USERCODE AS 成型工号, A.LINENO AS 线号, A.SEQNO AS 位置, COUNT(*) AS 缺陷数量, LISTAGG ( TO_CHAR( '【缺陷:' || D.DEFECTNAME || ' 工序:' || D.DEFECTPROCEDURENAME || ' 工号:' || D.DEFECTUSERCODE || '】' ), ',' ) WITHIN GROUP ( ORDER BY P.GROUTINGDAILYDETAILID ) AS 缺陷 FROM TP_PM_PRODUCTIONDATA P LEFT JOIN TP_PM_GROUTINGDAILYDETAIL G ON G.GROUTINGDAILYDETAILID = P.GROUTINGDAILYDETAILID LEFT JOIN TP_PM_DEFECTIVEAREA A ON A.GROUTINGDAILYDETAILID = P.GROUTINGDAILYDETAILID LEFT JOIN TP_PM_DEFECT D ON D.PRODUCTIONDATAID = P.PRODUCTIONDATAID WHERE P.VALUEFLAG = '1' AND P.PROCEDUREID IN ( 12, 59, 105 ) -- 12 8-1质量登记 59 8-2重烧质量登记 105 3#质量登记 AND P.CREATETIME >= TRUNC(SYSDATE) AND P.CREATETIME < TRUNC(SYSDATE+1) AND P.GOODSLEVELTYPEID IN ( 7 ) -- 次品 AND (G.USERCODE = @USERCODE@ OR @USERCODE@ IS NULL) GROUP BY P.GROUTINGDAILYDETAILID, P.GOODSCODE, G.USERCODE, P.BARCODE, A.LINENO, A.SEQNO "; string userCode = context.Request["userCode"] is object ? context.Request["userCode"].ToString() : ""; int pageNumber = context.Request["pageNumber"] is object ? Convert.ToInt32(context.Request["pageNumber"]) : 0; int pageSize = context.Request["pageSize"] is object ? Convert.ToInt32(context.Request["pageSize"]) : 10; List para = new List(); para.Add(new CDAParameter("USERCODE", userCode)); int rowsCount = 0; DataTable dt = conn.SelectPages(pageNumber, pageSize,out rowsCount, sqlStr, para.ToArray()); context.Response.Write(new JsonResult(dt) { total = rowsCount }.ToJson()); } } public bool IsReusable { get { return false; } } }