|
|
@@ -0,0 +1,317 @@
|
|
|
+<%@ 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())
|
|
|
+ {
|
|
|
+ DateTime dateBegin = Convert.ToDateTime(context.Request["datebeginMaster"]);
|
|
|
+ DateTime dateEnd = Convert.ToDateTime(context.Request["dateendMaster"]);
|
|
|
+ int kilproc = 16; //出窑工序
|
|
|
+ string notInproc = "61,28";//排除工序
|
|
|
+ // 241223 增加成型工号
|
|
|
+ string userCode = context.Request["userCode"];
|
|
|
+ string sqltmp = "";
|
|
|
+ conn.BeginTransaction();
|
|
|
+ //插入如数据 250725
|
|
|
+ if (context.Request["procedureMaster"] == "3")
|
|
|
+ {
|
|
|
+ sqltmp = @" INSERT INTO TMP_PM_PRODUCTIONDATA_CHECKDT(GOODSNAME,
|
|
|
+ GROUTINGDAILYDETAILID,
|
|
|
+ GOODSID,
|
|
|
+ GOODSCODE,
|
|
|
+ GROUTINGUSERID,
|
|
|
+ GROUTINGUSERCODE,
|
|
|
+ CREATETIME,
|
|
|
+ PROCEDUREID,
|
|
|
+ KILNCARBATCHNO,
|
|
|
+ BARCODE,
|
|
|
+ VALUEFLAG,
|
|
|
+ PRODUCTIONDATAID,
|
|
|
+ FPRODUCTIONDATAID) SELECT PD1.GOODSNAME
|
|
|
+ ,PD1.GROUTINGDAILYDETAILID
|
|
|
+ ,PD1.GOODSID
|
|
|
+ ,PD1.GOODSCODE
|
|
|
+ ,PD1.GROUTINGUSERID
|
|
|
+ ,PD1.GROUTINGUSERCODE
|
|
|
+ ,PD1.CREATETIME
|
|
|
+ ,PD1.PROCEDUREID
|
|
|
+ ,PD1.KILNCARBATCHNO
|
|
|
+ ,PD1.BARCODE
|
|
|
+ ,PD1.VALUEFLAG
|
|
|
+ ,NVL(PD61.PRODUCTIONDATAID, PD1.PRODUCTIONDATAID) PRODUCTIONDATAID
|
|
|
+ ,PD1.PRODUCTIONDATAID FPRODUCTIONDATAID
|
|
|
+ FROM (SELECT *
|
|
|
+ FROM (SELECT PD28.GOODSNAME
|
|
|
+ ,PD28.GROUTINGDAILYDETAILID
|
|
|
+ ,PD28.GOODSID
|
|
|
+ ,PD28.GOODSCODE
|
|
|
+ ,PD28.GOODSLEVELTYPEID
|
|
|
+ ,PD28.GROUTINGUSERID
|
|
|
+ ,PD28.GROUTINGUSERCODE
|
|
|
+ ,PD28.CREATETIME
|
|
|
+ ,PD24.PROCEDUREID
|
|
|
+ ,PD28.KILNCARBATCHNO
|
|
|
+ ,PD28.BARCODE
|
|
|
+ ,PD28.PRODUCTIONDATAID
|
|
|
+ ,PD28.VALUEFLAG
|
|
|
+ ,ROW_NUMBER() OVER(PARTITION BY PD28.PRODUCTIONDATAID ORDER BY PD24.PRODUCTIONDATAID DESC) AS ROWNUMS
|
|
|
+ FROM TP_PM_PRODUCTIONDATA PD28
|
|
|
+ INNER JOIN TP_PM_PRODUCTIONDATA PD24 -- 重烧修补24 / 冷补42
|
|
|
+ ON PD24.GROUTINGDAILYDETAILID = PD28.GROUTINGDAILYDETAILID
|
|
|
+ WHERE PD28.PROCEDUREID = 16
|
|
|
+ AND PD28.VALUEFLAG = 1
|
|
|
+ AND PD24.VALUEFLAG = 1
|
|
|
+ AND PD24.PROCEDUREID IN (55, 13, 42)
|
|
|
+ -- 20251027 web报表中以末次质量登记时间节点统计质量数据调整为首次质量登记时间做统计质量数据变更 createtime - > checktime
|
|
|
+ AND PD28.checktime >= to_date('" + dateBegin.ToString("yyyy-MM-dd HH:mm:ss") + @"','yyyy-mm-dd hh24:mi:ss')
|
|
|
+ AND PD28.checktime <= to_date('" + dateEnd.ToString("yyyy-MM-dd HH:mm:ss") + @"','yyyy-mm-dd hh24:mi:ss')
|
|
|
+ AND ('" + userCode + @"' IS NULL OR '" + userCode + @"' = '' OR
|
|
|
+ INSTR(PD28.GROUTINGUSERCODE, '" + userCode + @"') > 0)
|
|
|
+ AND PD24.PRODUCTIONDATAID < PD28.PRODUCTIONDATAID) T
|
|
|
+ WHERE ROWNUMS = 1
|
|
|
+ AND T.PROCEDUREID IN (55, 13)) PD1
|
|
|
+ LEFT JOIN TP_PM_PRODUCTIONDATA PD61
|
|
|
+ ON PD61.PROCEDUREID = 60
|
|
|
+ AND PD61.VALUEFLAG = 1
|
|
|
+ AND PD61.GROUTINGDAILYDETAILID = PD1.GROUTINGDAILYDETAILID
|
|
|
+ AND PD61.KILNCARBATCHNO = PD1.KILNCARBATCHNO
|
|
|
+ AND PD61.PRODUCTIONDATAID > PD1.PRODUCTIONDATAID
|
|
|
+ -- 取最近的数据
|
|
|
+ AND NOT EXISTS (SELECT 1
|
|
|
+ FROM TP_PM_PRODUCTIONDATA PD28C
|
|
|
+ WHERE PD28C.PROCEDUREID = 16
|
|
|
+ AND PD28C.VALUEFLAG = 1
|
|
|
+ AND PD28C.GROUTINGDAILYDETAILID = PD1.GROUTINGDAILYDETAILID
|
|
|
+ AND PD28C.KILNCARBATCHNO = PD1.KILNCARBATCHNO
|
|
|
+ AND PD28C.PRODUCTIONDATAID > PD1.PRODUCTIONDATAID
|
|
|
+ AND PD28C.PRODUCTIONDATAID < PD61.PRODUCTIONDATAID)
|
|
|
+ ";
|
|
|
+ }
|
|
|
+ else if (context.Request["procedureMaster"] == "1")
|
|
|
+ {
|
|
|
+ sqltmp = @" INSERT INTO TMP_PM_PRODUCTIONDATA_CHECKDT(GOODSNAME,
|
|
|
+ GROUTINGDAILYDETAILID,
|
|
|
+ GOODSID,
|
|
|
+ GOODSCODE,
|
|
|
+ GROUTINGUSERID,
|
|
|
+ GROUTINGUSERCODE,
|
|
|
+ CREATETIME,
|
|
|
+ PROCEDUREID,
|
|
|
+ KILNCARBATCHNO,
|
|
|
+ BARCODE,
|
|
|
+ VALUEFLAG,
|
|
|
+ PRODUCTIONDATAID,
|
|
|
+ FPRODUCTIONDATAID) SELECT PD1.GOODSNAME
|
|
|
+ ,PD1.GROUTINGDAILYDETAILID
|
|
|
+ ,PD1.GOODSID
|
|
|
+ ,PD1.GOODSCODE
|
|
|
+ ,PD1.GROUTINGUSERID
|
|
|
+ ,PD1.GROUTINGUSERCODE
|
|
|
+ ,PD1.CREATETIME
|
|
|
+ ,PD1.PROCEDUREID
|
|
|
+ ,PD1.KILNCARBATCHNO
|
|
|
+ ,PD1.BARCODE
|
|
|
+ ,PD1.VALUEFLAG
|
|
|
+ ,NVL(PD61.PRODUCTIONDATAID, PD1.PRODUCTIONDATAID) PRODUCTIONDATAID
|
|
|
+ ,PD1.PRODUCTIONDATAID FPRODUCTIONDATAID
|
|
|
+ FROM (SELECT *
|
|
|
+ FROM (SELECT PD28.GOODSNAME
|
|
|
+ ,PD28.GROUTINGDAILYDETAILID
|
|
|
+ ,PD28.GOODSID
|
|
|
+ ,PD28.GOODSCODE
|
|
|
+ ,PD28.GOODSLEVELTYPEID
|
|
|
+ ,PD28.GROUTINGUSERID
|
|
|
+ ,PD28.GROUTINGUSERCODE
|
|
|
+ ,PD28.CREATETIME
|
|
|
+ ,PD24.PROCEDUREID
|
|
|
+ ,PD28.KILNCARBATCHNO
|
|
|
+ ,PD28.BARCODE
|
|
|
+ ,PD28.PRODUCTIONDATAID
|
|
|
+ ,PD28.VALUEFLAG
|
|
|
+ ,ROW_NUMBER() OVER(PARTITION BY PD28.PRODUCTIONDATAID ORDER BY PD24.PRODUCTIONDATAID DESC) AS ROWNUMS
|
|
|
+ FROM TP_PM_PRODUCTIONDATA PD28
|
|
|
+ INNER JOIN TP_PM_PRODUCTIONDATA PD24 -- 重烧修补24 / 冷补42
|
|
|
+ ON PD24.GROUTINGDAILYDETAILID = PD28.GROUTINGDAILYDETAILID
|
|
|
+ WHERE PD28.PROCEDUREID = 28
|
|
|
+ AND PD28.VALUEFLAG = 1
|
|
|
+ AND PD24.VALUEFLAG = 1
|
|
|
+ AND PD24.PROCEDUREID IN (24, 42)
|
|
|
+ -- 20251027 web报表中以末次质量登记时间节点统计质量数据调整为首次质量登记时间做统计质量数据变更 createtime - > checktime
|
|
|
+ AND PD28.checktime >= to_date('" + dateBegin.ToString("yyyy-MM-dd HH:mm:ss") + @"','yyyy-mm-dd hh24:mi:ss')
|
|
|
+ AND PD28.checktime <= to_date('" + dateEnd.ToString("yyyy-MM-dd HH:mm:ss") + @"','yyyy-mm-dd hh24:mi:ss')
|
|
|
+ AND ('" + userCode + @"' IS NULL OR '" + userCode + @"' = '' OR
|
|
|
+ INSTR(PD28.GROUTINGUSERCODE, '" + userCode + @"') > 0)
|
|
|
+ AND PD24.PRODUCTIONDATAID < PD28.PRODUCTIONDATAID) T
|
|
|
+ WHERE ROWNUMS = 1
|
|
|
+ AND T.PROCEDUREID = 42) PD1
|
|
|
+ LEFT JOIN TP_PM_PRODUCTIONDATA PD61
|
|
|
+ ON PD61.PROCEDUREID = 61
|
|
|
+ AND PD61.VALUEFLAG = 1
|
|
|
+ AND PD61.GROUTINGDAILYDETAILID = PD1.GROUTINGDAILYDETAILID
|
|
|
+ AND PD61.KILNCARBATCHNO = PD1.KILNCARBATCHNO
|
|
|
+ AND PD61.PRODUCTIONDATAID > PD1.PRODUCTIONDATAID
|
|
|
+ -- 取最近的数据
|
|
|
+ AND NOT EXISTS (SELECT 1
|
|
|
+ FROM TP_PM_PRODUCTIONDATA PD28C
|
|
|
+ WHERE PD28C.PROCEDUREID = 28
|
|
|
+ AND PD28C.VALUEFLAG = 1
|
|
|
+ AND PD28C.GROUTINGDAILYDETAILID = PD1.GROUTINGDAILYDETAILID
|
|
|
+ AND PD28C.KILNCARBATCHNO = PD1.KILNCARBATCHNO
|
|
|
+ AND PD28C.PRODUCTIONDATAID > PD1.PRODUCTIONDATAID
|
|
|
+ AND PD28C.PRODUCTIONDATAID < PD61.PRODUCTIONDATAID) ";
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ sqltmp = @" INSERT INTO TMP_PM_PRODUCTIONDATA_CHECKDT(GOODSNAME,
|
|
|
+ GROUTINGDAILYDETAILID,
|
|
|
+ GOODSID,
|
|
|
+ GOODSCODE,
|
|
|
+ GROUTINGUSERID,
|
|
|
+ GROUTINGUSERCODE,
|
|
|
+ CREATETIME,
|
|
|
+ PROCEDUREID,
|
|
|
+ KILNCARBATCHNO,
|
|
|
+ BARCODE,
|
|
|
+ VALUEFLAG,
|
|
|
+ PRODUCTIONDATAID,
|
|
|
+ FPRODUCTIONDATAID) SELECT PD1.GOODSNAME
|
|
|
+ ,PD1.GROUTINGDAILYDETAILID
|
|
|
+ ,PD1.GOODSID
|
|
|
+ ,PD1.GOODSCODE
|
|
|
+ ,PD1.GROUTINGUSERID
|
|
|
+ ,PD1.GROUTINGUSERCODE
|
|
|
+ ,PD1.CREATETIME
|
|
|
+ ,PD1.PROCEDUREID
|
|
|
+ ,PD1.KILNCARBATCHNO
|
|
|
+ ,PD1.BARCODE
|
|
|
+ ,PD1.VALUEFLAG
|
|
|
+ ,NVL(PD61.PRODUCTIONDATAID, PD1.PRODUCTIONDATAID) PRODUCTIONDATAID
|
|
|
+ ,PD1.PRODUCTIONDATAID FPRODUCTIONDATAID
|
|
|
+ FROM (SELECT *
|
|
|
+ FROM (SELECT PD28.GOODSNAME
|
|
|
+ ,PD28.GROUTINGDAILYDETAILID
|
|
|
+ ,PD28.GOODSID
|
|
|
+ ,PD28.GOODSCODE
|
|
|
+ ,PD28.GOODSLEVELTYPEID
|
|
|
+ ,PD28.GROUTINGUSERID
|
|
|
+ ,PD28.GROUTINGUSERCODE
|
|
|
+ ,PD28.CREATETIME
|
|
|
+ ,PD24.PROCEDUREID
|
|
|
+ ,PD28.KILNCARBATCHNO
|
|
|
+ ,PD28.BARCODE
|
|
|
+ ,PD28.PRODUCTIONDATAID
|
|
|
+ ,PD28.VALUEFLAG
|
|
|
+ ,ROW_NUMBER() OVER(PARTITION BY PD28.PRODUCTIONDATAID ORDER BY PD24.PRODUCTIONDATAID DESC) AS ROWNUMS
|
|
|
+ FROM TP_PM_PRODUCTIONDATA PD28
|
|
|
+ INNER JOIN TP_PM_PRODUCTIONDATA PD24 -- 重烧修补24 / 冷补42
|
|
|
+ ON PD24.GROUTINGDAILYDETAILID = PD28.GROUTINGDAILYDETAILID
|
|
|
+ WHERE PD28.PROCEDUREID = 28
|
|
|
+ AND PD28.VALUEFLAG = 1
|
|
|
+ AND PD24.VALUEFLAG = 1
|
|
|
+ AND PD24.PROCEDUREID IN (24, 42)
|
|
|
+ -- 20251027 web报表中以末次质量登记时间节点统计质量数据调整为首次质量登记时间做统计质量数据变更 createtime - > checktime
|
|
|
+ AND PD28.checktime >= to_date('" + dateBegin.ToString("yyyy-MM-dd HH:mm:ss") + @"','yyyy-mm-dd hh24:mi:ss')
|
|
|
+ AND PD28.checktime <= to_date('" + dateEnd.ToString("yyyy-MM-dd HH:mm:ss") + @"','yyyy-mm-dd hh24:mi:ss')
|
|
|
+ AND ('" + userCode + @"' IS NULL OR '" + userCode + @"' = '' OR
|
|
|
+ INSTR(PD28.GROUTINGUSERCODE, '" + userCode + @"') > 0)
|
|
|
+ AND PD24.PRODUCTIONDATAID < PD28.PRODUCTIONDATAID) T
|
|
|
+ WHERE ROWNUMS = 1
|
|
|
+ AND T.PROCEDUREID = 24) PD1
|
|
|
+ LEFT JOIN TP_PM_PRODUCTIONDATA PD61
|
|
|
+ ON PD61.PROCEDUREID = 61
|
|
|
+ AND PD61.VALUEFLAG = 1
|
|
|
+ AND PD61.GROUTINGDAILYDETAILID = PD1.GROUTINGDAILYDETAILID
|
|
|
+ AND PD61.KILNCARBATCHNO = PD1.KILNCARBATCHNO
|
|
|
+ AND PD61.PRODUCTIONDATAID > PD1.PRODUCTIONDATAID
|
|
|
+ -- 取最近的数据
|
|
|
+ AND NOT EXISTS (SELECT 1
|
|
|
+ FROM TP_PM_PRODUCTIONDATA PD28C
|
|
|
+ WHERE PD28C.PROCEDUREID = 28
|
|
|
+ AND PD28C.VALUEFLAG = 1
|
|
|
+ AND PD28C.GROUTINGDAILYDETAILID = PD1.GROUTINGDAILYDETAILID
|
|
|
+ AND PD28C.KILNCARBATCHNO = PD1.KILNCARBATCHNO
|
|
|
+ AND PD28C.PRODUCTIONDATAID > PD1.PRODUCTIONDATAID
|
|
|
+ AND PD28C.PRODUCTIONDATAID < PD61.PRODUCTIONDATAID) ";
|
|
|
+ }
|
|
|
+
|
|
|
+ int count = conn.ExecuteNonQuery(sqltmp);
|
|
|
+
|
|
|
+ //主表
|
|
|
+ //string sqlStr = "";
|
|
|
+ if (context.Request["m"].ToString() == "master")
|
|
|
+ {
|
|
|
+ //读取报表数据 回烧
|
|
|
+ if (context.Request["procedureMaster"] == "2")
|
|
|
+ {
|
|
|
+ kilproc = 28;//出窑工序
|
|
|
+ notInproc = "16,60";//排除工序
|
|
|
+ }
|
|
|
+ // 本烧
|
|
|
+ else if (context.Request["procedureMaster"] == "3")
|
|
|
+ {
|
|
|
+ }
|
|
|
+ // 冷修
|
|
|
+ else if (context.Request["procedureMaster"] == "1")
|
|
|
+ {
|
|
|
+ kilproc = 28;//出窑工序
|
|
|
+ notInproc = "16,60";//排除工序
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //获取查询条件
|
|
|
+ List<CDAParameter> sqlPara = new List<CDAParameter>();
|
|
|
+ //sqlPara.Add(new CDAParameter("DATEBEGIN", dateBegin, DataType.DateTime));
|
|
|
+ //sqlPara.Add(new CDAParameter("DATEEND", dateEnd, DataType.DateTime));
|
|
|
+ //sqlPara.Add(new CDAParameter("kilproc", Convert.ToInt32(kilproc), DataType.Int32));
|
|
|
+ //sqlPara.Add(new CDAParameter("notInproc", notInproc, DataType.Char));
|
|
|
+ //sqlPara.Add(new CDAParameter("FunctionalTesting", Convert.ToInt32(FunctionalTesting), DataType.Int32));
|
|
|
+ //sqlPara.Add(new CDAParameter("USERCODE", userCode));
|
|
|
+ ////获取分页参数
|
|
|
+ //int page = HttpContext.Current.Request["page"] is object ? Convert.ToInt32(HttpContext.Current.Request["page"]) : 1;
|
|
|
+ //int rows = HttpContext.Current.Request["rows"] is int ? Convert.ToInt32(HttpContext.Current.Request["rows"]) : 10000;
|
|
|
+ //string sort = HttpContext.Current.Request["sort"] is object ? HttpContext.Current.Request["sort"] : "m.REPORTCODE";
|
|
|
+ //string order = HttpContext.Current.Request["order"] is object ? HttpContext.Current.Request["order"] : "";
|
|
|
+ // sqlStr = sqlStr.Replace("\t", " ");
|
|
|
+ //获取分页数据
|
|
|
+ int total = 0;
|
|
|
+ // DataTable dt = conn.SelectPages(page, rows, out total, sqlStr, sqlPara.ToArray());
|
|
|
+ sqlPara.Add(new CDAParameter("in_proceduremaster", context.Request["procedureMaster"] + "",DataType.NVarChar));
|
|
|
+ sqlPara.Add(new CDAParameter("in_kilproc",kilproc ,DataType.Int32));
|
|
|
+ sqlPara.Add(new CDAParameter("in_notinproc", notInproc,DataType.NVarChar));
|
|
|
+ sqlPara.Add(new CDAParameter("in_stardate",Convert.ToDateTime( dateBegin.ToString("yyyy-MM-dd HH:mm:ss")), DataType.DateTime));
|
|
|
+ sqlPara.Add(new CDAParameter("in_enddate", Convert.ToDateTime( dateEnd.ToString("yyyy-MM-dd HH:mm:ss")), DataType.DateTime));
|
|
|
+ sqlPara.Add(new CDAParameter("in_usercode", userCode,DataType.NVarChar));
|
|
|
+ sqlPara.Add(new CDAParameter("out_result", DataType.Cursor, ParameterDirection.Output));
|
|
|
+ DataTable dt = conn.ExecuteSPDatatable("pro_pm_owinglist", sqlPara.ToArray());
|
|
|
+ string jsonStr = new JsonResult(dt) { total = total }.ToJson();
|
|
|
+ conn.Commit();
|
|
|
+
|
|
|
+ context.Response.Write(jsonStr);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ public bool IsReusable
|
|
|
+ {
|
|
|
+ get
|
|
|
+ {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+}
|