|
|
@@ -0,0 +1,413 @@
|
|
|
+<%@ WebHandler Language="C#" Class="rptnew_detail" %>
|
|
|
+
|
|
|
+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 rptnew_detail : IHttpHandler, IReadOnlySessionState
|
|
|
+{
|
|
|
+ List<CDAParameter> goodsnull = new List<CDAParameter>();
|
|
|
+ string[] goodsCodes = new string[] { };
|
|
|
+ string goodsStr = "";
|
|
|
+ DataTable goodsTable = new DataTable();
|
|
|
+ string defectStr = "";
|
|
|
+ DataTable col = new DataTable();
|
|
|
+ string proc = "";
|
|
|
+ string sqlStr = "";
|
|
|
+ //楼号
|
|
|
+ string buding = null;
|
|
|
+ public void ProcessRequest(HttpContext context)
|
|
|
+ {
|
|
|
+ context.Response.ContentType = "text/plain";
|
|
|
+ proc = context.Request["procedureidMaster"].ToString();
|
|
|
+ string fields = context.Request["fields"].ToString();
|
|
|
+ string index = context.Request["index"].ToString();
|
|
|
+ string gs = context.Request["gs"].ToString();
|
|
|
+ //GOODSCODE: ""
|
|
|
+ //buildingnoMaster: "12"
|
|
|
+ //datebeginMaster: "2025-01-06 00:00:00"
|
|
|
+ //dateendMaster: "2025-06-06 23:59:59"
|
|
|
+ //goodsnameMaster: ""
|
|
|
+ //kilnidMaster: ""
|
|
|
+ //procedureidMaster: "13"
|
|
|
+
|
|
|
+ #region 取缺陷拼接串
|
|
|
+ string procedureId = "21,2,6,16,31,25,30,33,7,8,9";
|
|
|
+ if (context.Request["buildingnoMaster"].ToString().IndexOf("2#") >= 0)
|
|
|
+ {
|
|
|
+ //二期 原料21 成型2 施釉6 循环线16 出装/登窑7 烧窑/入窑8 卸窑9
|
|
|
+ procedureId = "21,2,6,16,7,8,9";
|
|
|
+ }
|
|
|
+
|
|
|
+ if (context.Request["buildingnoMaster"].ToString().IndexOf("1#") >= 0)
|
|
|
+ {
|
|
|
+ //一期 原料31 成型25 施釉30 循环线33 出装/登窑7 烧窑/入窑8 卸窑9
|
|
|
+ procedureId = "31,25,30,33,7,8,9";
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if (context.Request["buildingnoMaster"].ToString() != "12")
|
|
|
+ {
|
|
|
+ buding = "IN('" + context.Request["buildingnoMaster"] + "')";
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ buding = "IN(" + "'1#','2#'" + ")";
|
|
|
+ }
|
|
|
+ // 缺陷数据
|
|
|
+ using (IDataAccess conn = DataAccess.Create())
|
|
|
+ {
|
|
|
+ col = conn.ExecuteDatatable(@"
|
|
|
+ SELECT
|
|
|
+ DG.DEFECTGROUPTYPE AS TNO,
|
|
|
+ DG.DEFECTGROUPID AS DNO,
|
|
|
+ DG.DEFECTGROUPNAME || '_' || D.DEFECTNAME AS DEFECT
|
|
|
+ FROM
|
|
|
+ TP_MST_DEFECTGROUP DG
|
|
|
+ LEFT JOIN TP_MST_DEFECT D ON DG.DEFECTID = D.DEFECTID
|
|
|
+ WHERE
|
|
|
+ DG.DEFECTGROUPTYPE LIKE '每窑%'
|
|
|
+ UNION
|
|
|
+
|
|
|
+ SELECT
|
|
|
+ DG.DEFECTGROUPTYPE AS TNO,
|
|
|
+ 9999 AS DNO,
|
|
|
+ DG.DEFECTGROUPNAME || '_合计' AS DEFECT
|
|
|
+ FROM
|
|
|
+ (select * from TP_MST_DEFECTGROUP WHERE DEFECTGROUPTYPE LIKE '每窑%') DG
|
|
|
+ GROUP BY
|
|
|
+ DG.DEFECTGROUPTYPE,
|
|
|
+ DG.DEFECTGROUPNAME
|
|
|
+
|
|
|
+ ORDER BY
|
|
|
+ TNO,DNO
|
|
|
+ ");
|
|
|
+
|
|
|
+ for (int i = 0; i < col.Rows.Count; i++)
|
|
|
+ {
|
|
|
+ if (defectStr.IndexOf("'" + col.Rows[i]["DEFECT"].ToString() + "'") < 0)
|
|
|
+ {
|
|
|
+ if (i > 0) defectStr += ",";
|
|
|
+ defectStr += "'" + col.Rows[i]["DEFECT"].ToString() + "' AS " + col.Rows[i]["DEFECT"].ToString();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ #endregion
|
|
|
+ // 各个列的明细数据
|
|
|
+ string sqlDetail = "";
|
|
|
+ switch (fields)
|
|
|
+ {
|
|
|
+ case "出窑数":
|
|
|
+ {
|
|
|
+ sqlDetail = @" SELECT DISTINCT '" + gs + @"' 产品编码, TO_CHAR(pd.Barcode) 产品条码
|
|
|
+ FROM
|
|
|
+ TP_PM_PRODUCTIONDATA PD
|
|
|
+ INNER JOIN TP_PC_GROUTINGLINE GL ON GL.GROUTINGLINEID = PD.GROUTINGLINEID
|
|
|
+
|
|
|
+ WHERE
|
|
|
+ PD.PROCEDUREID in ( @PROCEDUREID@ )
|
|
|
+ AND PD.VALUEFLAG = '1' AND PD.CHECKBATCHNO = 1
|
|
|
+ AND PD.CREATETIME >= @DATEBEGIN@
|
|
|
+ AND PD.CREATETIME < @DATEEND@
|
|
|
+ AND (PD.KILNID = @KILNID@ OR @KILNID@ IS NULL)
|
|
|
+ AND PD.GOODSCODE IN( '" + gs + @"' )
|
|
|
+ AND GL.BUILDINGNO {BUILDINGNO} ";
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case "U级":
|
|
|
+ {
|
|
|
+ sqlDetail = @" SELECT DISTINCT '" + gs + @"' 产品编码, Barcode 产品条码
|
|
|
+ FROM
|
|
|
+ (SELECT to_char(pd.Barcode) Barcode
|
|
|
+ ,MAX(pmax.productiondataid) mpdid
|
|
|
+ ,pd.goodsleveltypeid
|
|
|
+ ,pd.goodsid
|
|
|
+ ,CASE
|
|
|
+ WHEN SUM(pmax.productiondataid) > 0 THEN
|
|
|
+ 1
|
|
|
+ ELSE
|
|
|
+ 0
|
|
|
+ END h_flag
|
|
|
+ FROM tp_pm_productiondata pd
|
|
|
+ LEFT JOIN tp_pm_productiondata pmax
|
|
|
+ ON pmax.groutingdailydetailid = pd.groutingdailydetailid
|
|
|
+ AND pmax.productiondataid < pd.productiondataid
|
|
|
+ AND pmax.valueflag = '1'
|
|
|
+ AND pmax.proceduremodel = '1'
|
|
|
+ /*20 研磨 22 直接冷补 23 研磨后冷补(非回收) 37 堵漏气 41 刷洗不良*/
|
|
|
+ AND pmax.procedureid IN (20, 22, 23, 37, 41)
|
|
|
+ INNER JOIN tp_pc_groutingline gl
|
|
|
+ ON gl.groutinglineid = pd.groutinglineid
|
|
|
+ WHERE pd.valueflag = '1'
|
|
|
+ AND pd.procedureid in ( @PROCEDUREID@ )
|
|
|
+ AND pd.checkbatchno = 1
|
|
|
+ AND pd.createtime >= @DATEBEGIN@
|
|
|
+ AND pd.createtime < @DATEEND@
|
|
|
+ AND (pd.kilnid = @KILNID@ OR @KILNID@ IS NULL)
|
|
|
+ AND pd.goodscode IN( '" + gs + @"' )
|
|
|
+ AND gl.buildingno {BUILDINGNO}
|
|
|
+ GROUP BY pd.Barcode
|
|
|
+ ,pd.goodsleveltypeid
|
|
|
+ ,pd.goodsid ) T where T.GOODSLEVELTYPEID = 4 and T.H_FLAG = 0";
|
|
|
+
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case "A级":
|
|
|
+ {
|
|
|
+ sqlDetail = @" SELECT DISTINCT '" + gs + @"' 产品编码, Barcode 产品条码
|
|
|
+ FROM
|
|
|
+ (SELECT to_char(pd.Barcode) Barcode
|
|
|
+ ,MAX(pmax.productiondataid) mpdid
|
|
|
+ ,pd.goodsleveltypeid
|
|
|
+ ,pd.goodsid
|
|
|
+ ,CASE
|
|
|
+ WHEN SUM(pmax.productiondataid) > 0 THEN
|
|
|
+ 1
|
|
|
+ ELSE
|
|
|
+ 0
|
|
|
+ END h_flag
|
|
|
+ FROM tp_pm_productiondata pd
|
|
|
+ LEFT JOIN tp_pm_productiondata pmax
|
|
|
+ ON pmax.groutingdailydetailid = pd.groutingdailydetailid
|
|
|
+ AND pmax.productiondataid < pd.productiondataid
|
|
|
+ AND pmax.valueflag = '1'
|
|
|
+ AND pmax.proceduremodel = '1'
|
|
|
+ /*20 研磨 22 直接冷补 23 研磨后冷补(非回收) 37 堵漏气 41 刷洗不良*/
|
|
|
+ AND pmax.procedureid IN (20, 22, 23, 37, 41)
|
|
|
+ INNER JOIN tp_pc_groutingline gl
|
|
|
+ ON gl.groutinglineid = pd.groutinglineid
|
|
|
+ WHERE pd.valueflag = '1'
|
|
|
+ AND pd.procedureid in ( @PROCEDUREID@ )
|
|
|
+ AND pd.checkbatchno = 1
|
|
|
+ AND pd.createtime >= @DATEBEGIN@
|
|
|
+ AND pd.createtime < @DATEEND@
|
|
|
+ AND (pd.kilnid = @KILNID@ OR @KILNID@ IS NULL)
|
|
|
+ AND pd.goodscode IN( '" + gs + @"' )
|
|
|
+ AND gl.buildingno {BUILDINGNO}
|
|
|
+ GROUP BY pd.Barcode
|
|
|
+ ,pd.goodsleveltypeid
|
|
|
+ ,pd.goodsid ) T ";
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case "AA级":
|
|
|
+ {
|
|
|
+ sqlDetail = @" SELECT DISTINCT '" + gs + @"' 产品编码, T.Barcode 产品条码
|
|
|
+ FROM
|
|
|
+ (SELECT to_char(pd.Barcode) Barcode
|
|
|
+ ,MAX(pmax.productiondataid) mpdid
|
|
|
+ ,pd.goodsleveltypeid
|
|
|
+ ,pd.goodsid
|
|
|
+ ,CASE
|
|
|
+ WHEN SUM(pmax.productiondataid) > 0 THEN
|
|
|
+ 1
|
|
|
+ ELSE
|
|
|
+ 0
|
|
|
+ END h_flag
|
|
|
+ FROM tp_pm_productiondata pd
|
|
|
+ LEFT JOIN tp_pm_productiondata pmax
|
|
|
+ ON pmax.groutingdailydetailid = pd.groutingdailydetailid
|
|
|
+ AND pmax.productiondataid < pd.productiondataid
|
|
|
+ AND pmax.valueflag = '1'
|
|
|
+ AND pmax.proceduremodel = '1'
|
|
|
+ /*20 研磨 22 直接冷补 23 研磨后冷补(非回收) 37 堵漏气 41 刷洗不良*/
|
|
|
+ AND pmax.procedureid IN (20, 22, 23, 37, 41)
|
|
|
+ INNER JOIN tp_pc_groutingline gl
|
|
|
+ ON gl.groutinglineid = pd.groutinglineid
|
|
|
+ WHERE pd.valueflag = '1'
|
|
|
+ AND pd.procedureid in ( @PROCEDUREID@ )
|
|
|
+ AND pd.checkbatchno = 1
|
|
|
+ AND pd.createtime >= @DATEBEGIN@
|
|
|
+ AND pd.createtime < @DATEEND@
|
|
|
+ AND (pd.kilnid = @KILNID@ OR @KILNID@ IS NULL)
|
|
|
+ AND pd.goodscode IN( '" + gs + @"' )
|
|
|
+ AND gl.buildingno {BUILDINGNO}
|
|
|
+ GROUP BY pd.Barcode
|
|
|
+ ,pd.goodsleveltypeid
|
|
|
+ ,pd.goodsid ) T LEFT JOIN TP_PM_PRODUCTIONDATA RPD ON RPD.PRODUCTIONDATAID = T.MPDID ";
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case "去AA":
|
|
|
+ {
|
|
|
+ sqlDetail = @" SELECT DISTINCT '" + gs + @"' 产品编码, T.Barcode 产品条码
|
|
|
+ FROM
|
|
|
+ (SELECT to_char(pd.Barcode) Barcode
|
|
|
+ ,MAX(pmax.productiondataid) mpdid
|
|
|
+ ,pd.goodsleveltypeid
|
|
|
+ ,pd.goodsid
|
|
|
+ ,CASE
|
|
|
+ WHEN SUM(pmax.productiondataid) > 0 THEN
|
|
|
+ 1
|
|
|
+ ELSE
|
|
|
+ 0
|
|
|
+ END h_flag
|
|
|
+ FROM tp_pm_productiondata pd
|
|
|
+ LEFT JOIN tp_pm_productiondata pmax
|
|
|
+ ON pmax.groutingdailydetailid = pd.groutingdailydetailid
|
|
|
+ AND pmax.productiondataid < pd.productiondataid
|
|
|
+ AND pmax.valueflag = '1'
|
|
|
+ AND pmax.proceduremodel = '1'
|
|
|
+ /*20 研磨 22 直接冷补 23 研磨后冷补(非回收) 37 堵漏气 41 刷洗不良*/
|
|
|
+ AND pmax.procedureid IN (20, 22, 23, 37, 41)
|
|
|
+ INNER JOIN tp_pc_groutingline gl
|
|
|
+ ON gl.groutinglineid = pd.groutinglineid
|
|
|
+ WHERE pd.valueflag = '1'
|
|
|
+ AND pd.procedureid in ( @PROCEDUREID@ )
|
|
|
+ AND pd.checkbatchno = 1
|
|
|
+ AND pd.createtime >= @DATEBEGIN@
|
|
|
+ AND pd.createtime < @DATEEND@
|
|
|
+ AND (pd.kilnid = @KILNID@ OR @KILNID@ IS NULL)
|
|
|
+ AND pd.goodscode IN( '" + gs + @"' )
|
|
|
+ AND gl.buildingno {BUILDINGNO}
|
|
|
+ GROUP BY pd.Barcode
|
|
|
+ ,pd.goodsleveltypeid
|
|
|
+ ,pd.goodsid ) T
|
|
|
+ ";
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case "F级":
|
|
|
+ {
|
|
|
+ sqlDetail = @" SELECT DISTINCT '" + gs + @"' 产品编码, Barcode 产品条码
|
|
|
+ FROM
|
|
|
+ (SELECT to_char(pd.Barcode) Barcode
|
|
|
+ ,MAX(pmax.productiondataid) mpdid
|
|
|
+ ,pd.goodsleveltypeid
|
|
|
+ ,pd.goodsid
|
|
|
+ ,CASE
|
|
|
+ WHEN SUM(pmax.productiondataid) > 0 THEN
|
|
|
+ 1
|
|
|
+ ELSE
|
|
|
+ 0
|
|
|
+ END h_flag
|
|
|
+ FROM tp_pm_productiondata pd
|
|
|
+ LEFT JOIN tp_pm_productiondata pmax
|
|
|
+ ON pmax.groutingdailydetailid = pd.groutingdailydetailid
|
|
|
+ AND pmax.productiondataid < pd.productiondataid
|
|
|
+ AND pmax.valueflag = '1'
|
|
|
+ AND pmax.proceduremodel = '1'
|
|
|
+ /*20 研磨 22 直接冷补 23 研磨后冷补(非回收) 37 堵漏气 41 刷洗不良*/
|
|
|
+ AND pmax.procedureid IN (20, 22, 23, 37, 41)
|
|
|
+ INNER JOIN tp_pc_groutingline gl
|
|
|
+ ON gl.groutinglineid = pd.groutinglineid
|
|
|
+ WHERE pd.valueflag = '1'
|
|
|
+ AND pd.procedureid in ( @PROCEDUREID@ )
|
|
|
+ AND pd.checkbatchno = 1
|
|
|
+ AND pd.createtime >= @DATEBEGIN@
|
|
|
+ AND pd.createtime < @DATEEND@
|
|
|
+ AND (pd.kilnid = @KILNID@ OR @KILNID@ IS NULL)
|
|
|
+ AND pd.goodscode IN( '" + gs + @"' )
|
|
|
+ AND gl.buildingno {BUILDINGNO}
|
|
|
+ GROUP BY pd.Barcode
|
|
|
+ ,pd.goodsleveltypeid
|
|
|
+ ,pd.goodsid ) T ";
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case "R级":
|
|
|
+ {
|
|
|
+ sqlDetail = @" SELECT DISTINCT '" + gs + @"' 产品编码, Barcode 产品条码
|
|
|
+ FROM
|
|
|
+ (SELECT to_char(pd.Barcode) Barcode
|
|
|
+ ,MAX(pmax.productiondataid) mpdid
|
|
|
+ ,pd.goodsleveltypeid
|
|
|
+ ,pd.goodsid
|
|
|
+ ,PD.REWORKPROCEDUREID
|
|
|
+ ,CASE
|
|
|
+ WHEN SUM(pmax.productiondataid) > 0 THEN
|
|
|
+ 1
|
|
|
+ ELSE
|
|
|
+ 0
|
|
|
+ END h_flag
|
|
|
+ FROM tp_pm_productiondata pd
|
|
|
+ LEFT JOIN tp_pm_productiondata pmax
|
|
|
+ ON pmax.groutingdailydetailid = pd.groutingdailydetailid
|
|
|
+ AND pmax.productiondataid < pd.productiondataid
|
|
|
+ AND pmax.valueflag = '1'
|
|
|
+ AND pmax.proceduremodel = '1'
|
|
|
+ /*20 研磨 22 直接冷补 23 研磨后冷补(非回收) 37 堵漏气 41 刷洗不良*/
|
|
|
+ AND pmax.procedureid IN (20, 22, 23, 37, 41)
|
|
|
+ INNER JOIN tp_pc_groutingline gl
|
|
|
+ ON gl.groutinglineid = pd.groutinglineid
|
|
|
+ WHERE pd.valueflag = '1'
|
|
|
+ AND pd.procedureid in ( @PROCEDUREID@ )
|
|
|
+ AND pd.checkbatchno = 1
|
|
|
+ AND pd.createtime >= @DATEBEGIN@
|
|
|
+ AND pd.createtime < @DATEEND@
|
|
|
+ AND (pd.kilnid = @KILNID@ OR @KILNID@ IS NULL)
|
|
|
+ AND pd.goodscode IN( '" + gs + @"' )
|
|
|
+ AND gl.buildingno {BUILDINGNO}
|
|
|
+ GROUP BY pd.Barcode
|
|
|
+ ,pd.goodsleveltypeid
|
|
|
+ ,pd.goodsid
|
|
|
+ ,pd.reworkprocedureid ) T ";
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ default:
|
|
|
+ {
|
|
|
+ sqlDetail = @" SELECT DISTINCT '" + gs + @"' 产品编码, T.Barcode 产品条码
|
|
|
+ FROM
|
|
|
+ (
|
|
|
+ SELECT to_char(pd.Barcode) Barcode
|
|
|
+ ,MAX(pmax.productiondataid) mpdid
|
|
|
+ ,pd.goodsleveltypeid
|
|
|
+ ,pd.goodsid
|
|
|
+ ,CASE
|
|
|
+ WHEN SUM(pmax.productiondataid) > 0 THEN
|
|
|
+ 1
|
|
|
+ ELSE
|
|
|
+ 0
|
|
|
+ END h_flag
|
|
|
+ FROM tp_pm_productiondata pd
|
|
|
+ LEFT JOIN tp_pm_productiondata pmax
|
|
|
+ ON pmax.groutingdailydetailid = pd.groutingdailydetailid
|
|
|
+ AND pmax.productiondataid < pd.productiondataid
|
|
|
+ AND pmax.valueflag = '1'
|
|
|
+ AND pmax.proceduremodel = '1'
|
|
|
+ /*20 研磨 22 直接冷补 23 研磨后冷补(非回收) 37 堵漏气 41 刷洗不良*/
|
|
|
+ AND pmax.procedureid IN (20, 22, 23, 37, 41)
|
|
|
+ INNER JOIN tp_pc_groutingline gl
|
|
|
+ ON gl.groutinglineid = pd.groutinglineid
|
|
|
+ WHERE pd.valueflag = '1'
|
|
|
+ AND pd.procedureid in ( @PROCEDUREID@ )
|
|
|
+ AND pd.checkbatchno = 1
|
|
|
+ AND pd.createtime >= @DATEBEGIN@
|
|
|
+ AND pd.createtime < @DATEEND@
|
|
|
+ AND (pd.kilnid = @KILNID@ OR @KILNID@ IS NULL)
|
|
|
+ AND pd.goodscode IN( '" + gs + @"' )
|
|
|
+ AND gl.buildingno {BUILDINGNO}
|
|
|
+ GROUP BY pd.Barcode
|
|
|
+ ,pd.goodsleveltypeid
|
|
|
+ ,pd.goodsid ) T ";
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ sqlDetail = sqlDetail.Replace("{DEFECT}", defectStr).Replace("{BUILDINGNO}", buding);
|
|
|
+ //获取查询条件
|
|
|
+ List<CDAParameter> sqlPara = new List<CDAParameter>();
|
|
|
+ sqlPara.Add(new CDAParameter("DATEBEGIN", Convert.ToDateTime(context.Request["dateendMaster"]).AddSeconds(1).AddDays(-1), DataType.DateTime));
|
|
|
+ sqlPara.Add(new CDAParameter("DATEEND", Convert.ToDateTime(context.Request["dateendMaster"]).AddSeconds(1), DataType.DateTime));
|
|
|
+ sqlPara.Add(new CDAParameter("KILNID", context.Request["kilnidMaster"]));
|
|
|
+ sqlPara.Add(new CDAParameter("PROCEDUREID", (context.Request["procedureidMaster"].ToString() == "13" || context.Request["procedureidMaster"].ToString()=="35") ? context.Request["procedureidMaster"] + "":"13"));
|
|
|
+
|
|
|
+ DataTable dt = conn.ExecuteDatatable(sqlDetail, sqlPara.ToArray());
|
|
|
+ string jsonStr = new JsonResult(dt) { total = dt.Rows.Count }.ToJson();
|
|
|
+ context.Response.Write(jsonStr);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ public bool IsReusable
|
|
|
+ {
|
|
|
+ get
|
|
|
+ {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|