|
|
@@ -0,0 +1,758 @@
|
|
|
+<%@ 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 defectStr = "";
|
|
|
+ DataTable col = new DataTable();
|
|
|
+ string proc = "";
|
|
|
+ //楼号
|
|
|
+ string buding = null;
|
|
|
+ public void ProcessRequest(HttpContext context)
|
|
|
+ {
|
|
|
+ context.Response.ContentType = "text/plain";
|
|
|
+ proc = context.Request["procedureidMaster"].ToString();
|
|
|
+
|
|
|
+ string fields = context.Request["fields"].ToString();
|
|
|
+ int index = Convert.ToInt32(context.Request["index"] + "");
|
|
|
+ string gs = context.Request["gs"].ToString();
|
|
|
+ string lb = "(20, 22, 23, 37, 41)";
|
|
|
+ if (proc == "999")
|
|
|
+ {
|
|
|
+ lb = " ( 20, 22, 23, 37, 41,35 ) ";
|
|
|
+ }
|
|
|
+
|
|
|
+ #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 = @" SELECT DISTINCT T.GOODSCODE 产品编码, T.Barcode 产品条码
|
|
|
+ FROM
|
|
|
+ (SELECT
|
|
|
+ PDD.Barcode,
|
|
|
+ MAX( PMAX.PRODUCTIONDATAID ) MPDID,
|
|
|
+ PDD.GOODSLEVELTYPEID,
|
|
|
+ PDD.GOODSID,G.GOODSCODE,
|
|
|
+ PDD.REWORKPROCEDUREID,
|
|
|
+ CASE WHEN sum( PMAX.PRODUCTIONDATAID ) > 0 THEN 1 ELSE 0 END H_FLAG
|
|
|
+ FROM
|
|
|
+ ( SELECT MAX(PD.PRODUCTIONDATAID) PRODUCTIONDATAID
|
|
|
+ ,PD.GOODSID,PD.BARCODE
|
|
|
+ ,PD.GROUTINGDAILYDETAILID
|
|
|
+ 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@
|
|
|
+ --区分AA级 必须再出窑数的范围内
|
|
|
+ AND PD.CHECKTIME >= @DATEBEGIN@
|
|
|
+ AND PD.CHECKTIME < @DATEEND@
|
|
|
+ AND (PD.KILNID = @KILNID@ OR @KILNID@ IS NULL)
|
|
|
+ -- AND PD.GOODSCODE IN( '" + gs + @"' )
|
|
|
+ AND GL.BUILDINGNO {BUILDINGNO}
|
|
|
+ GROUP BY PD.GOODSID ,PD.BARCODE,PD.GROUTINGDAILYDETAILID
|
|
|
+ ) PD INNER JOIN TP_PM_PRODUCTIONDATA PDD ON PDD.PRODUCTIONDATAID = PD.PRODUCTIONDATAID
|
|
|
+ LEFT JOIN TP_PM_PRODUCTIONDATA PMAX ON PMAX.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID
|
|
|
+ and pmax.KILNCARBATCHNO= PDD.KILNCARBATCHNO
|
|
|
+ AND PMAX.PRODUCTIONDATAID < PD.PRODUCTIONDATAID AND PMAX.VALUEFLAG = '1'
|
|
|
+ /*20 研磨 22 直接冷补 23 研磨后冷补(非回收) 37 堵漏气 41 刷洗不良*/
|
|
|
+ AND PMAX.PROCEDUREID IN (20, 22, 23, 37, 41)
|
|
|
+ INNER JOIN TP_MST_GOODS G ON G.GOODSID = PDD.GOODSID
|
|
|
+ GROUP BY
|
|
|
+ PDD.Barcode,
|
|
|
+ PDD.GOODSLEVELTYPEID,
|
|
|
+ PDD.GOODSID,G.GOODSCODE,
|
|
|
+ PDD.REWORKPROCEDUREID ) T ";
|
|
|
+ switch (fields)
|
|
|
+ {
|
|
|
+ case "出窑数":
|
|
|
+ {
|
|
|
+ sqlDetail = @" SELECT DISTINCT G.GOODSCODE 产品编码, TO_CHAR(pd.Barcode) 产品条码
|
|
|
+ FROM
|
|
|
+ TP_PM_PRODUCTIONDATA PD
|
|
|
+ INNER JOIN TP_PC_GROUTINGLINE GL ON GL.GROUTINGLINEID = PD.GROUTINGLINEID
|
|
|
+ INNER JOIN TP_MST_GOODS G ON G.GOODSID = PD.GOODSID
|
|
|
+ WHERE
|
|
|
+ PD.PROCEDUREID in ( {PROCEDUREID} )
|
|
|
+ AND PD.CHECKFLAG = 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} ";
|
|
|
+ sqlDetail += " order by G.GOODSCODE, pd.Barcode ";
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case "U级":
|
|
|
+ {
|
|
|
+ sqlDetail += @" where T.GOODSLEVELTYPEID = 4 and T.H_FLAG = 0";
|
|
|
+ sqlDetail += " order by T.GOODSCODE,T.Barcode ";
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case "A级":
|
|
|
+ {
|
|
|
+ sqlDetail += @" where T.GOODSLEVELTYPEID = 5 and T.H_FLAG = 0";
|
|
|
+ sqlDetail += " order by T.GOODSCODE,T.Barcode ";
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case "AA级":
|
|
|
+ {
|
|
|
+ sqlDetail = @" SELECT DISTINCT T.GOODSCODE 产品编码, T.Barcode 产品条码
|
|
|
+ FROM
|
|
|
+ (SELECT
|
|
|
+ PDD.Barcode,
|
|
|
+ MAX( PMAX.PRODUCTIONDATAID ) MPDID,
|
|
|
+ PDD.GOODSLEVELTYPEID,
|
|
|
+ PDD.GOODSID,G.GOODSCODE,
|
|
|
+ PDD.REWORKPROCEDUREID,
|
|
|
+ CASE WHEN sum( PMAX.PRODUCTIONDATAID ) > 0 THEN 1 ELSE 0 END H_FLAG
|
|
|
+ FROM
|
|
|
+ ( SELECT MAX(PD.PRODUCTIONDATAID) PRODUCTIONDATAID
|
|
|
+ ,PD.GOODSID,PD.BARCODE
|
|
|
+ ,PD.GROUTINGDAILYDETAILID
|
|
|
+ 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}
|
|
|
+ GROUP BY PD.GOODSID ,PD.BARCODE,PD.GROUTINGDAILYDETAILID
|
|
|
+ ) PD INNER JOIN TP_PM_PRODUCTIONDATA PDD ON PDD.PRODUCTIONDATAID = PD.PRODUCTIONDATAID
|
|
|
+ -- 去除复检的质量登记
|
|
|
+ LEFT JOIN tp_pm_productiondata_semicheck semicheck ON semicheck.productiondataid = pd.productiondataid
|
|
|
+ LEFT JOIN TP_PM_PRODUCTIONDATA PMAX ON PMAX.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID
|
|
|
+ AND PMAX.PRODUCTIONDATAID < PD.PRODUCTIONDATAID AND PMAX.VALUEFLAG = '1' AND semicheck.productiondataid is null
|
|
|
+ " + (proc == "999" ? "AND (pmax.kilncarbatchno = PDD.kilncarbatchno OR pmax.procedureid = PDD.procedureid)"
|
|
|
+ : "AND (pmax.kilncarbatchno = PDD.kilncarbatchno )")
|
|
|
+ /*20 研磨 22 直接冷补 23 研磨后冷补(非回收) 37 堵漏气 41 刷洗不良*/
|
|
|
+ + @" AND PMAX.PROCEDUREID IN " + lb + @"
|
|
|
+ INNER JOIN TP_MST_GOODS G ON G.GOODSID = PDD.GOODSID
|
|
|
+ GROUP BY
|
|
|
+ PDD.Barcode,
|
|
|
+ PDD.GOODSLEVELTYPEID,
|
|
|
+ PDD.GOODSID,G.GOODSCODE,
|
|
|
+ PDD.REWORKPROCEDUREID ) T LEFT JOIN TP_PM_PRODUCTIONDATA RPD ON RPD.PRODUCTIONDATAID = T.MPDID where T.GOODSLEVELTYPEID IN ( 4, 5 ) ";
|
|
|
+ if (proc == "999")
|
|
|
+ {
|
|
|
+ sqlDetail += " AND (rpd.procedureid IN " + lb + " OR (rpd.procedureid IS NULL AND rpd.goodsleveltypeid != 6)) ";
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ sqlDetail += " AND RPD.PROCEDUREID IN " + lb;
|
|
|
+ }
|
|
|
+ sqlDetail += " order by T.GOODSCODE,T.Barcode ";
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case "去AA":
|
|
|
+ {
|
|
|
+ sqlDetail += @" where T.GOODSLEVELTYPEID = 7 or T.H_FLAG = 1 ";
|
|
|
+ sqlDetail += " order by T.GOODSCODE,T.Barcode ";
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case "检验数":
|
|
|
+ {
|
|
|
+ sqlDetail = @" SELECT DISTINCT T.GOODSCODE 产品编码, T.Barcode 产品条码
|
|
|
+ FROM
|
|
|
+ (SELECT
|
|
|
+ PDD.Barcode,
|
|
|
+ MAX( PMAX.PRODUCTIONDATAID ) MPDID,
|
|
|
+ PDD.GOODSLEVELTYPEID,
|
|
|
+ PDD.GOODSID,G.GOODSCODE,
|
|
|
+ PDD.REWORKPROCEDUREID,
|
|
|
+ CASE WHEN sum( PMAX.PRODUCTIONDATAID ) > 0 THEN 1 ELSE 0 END H_FLAG
|
|
|
+ FROM
|
|
|
+ ( SELECT MAX(PD.PRODUCTIONDATAID) PRODUCTIONDATAID
|
|
|
+ ,PD.GOODSID,PD.BARCODE
|
|
|
+ ,PD.GROUTINGDAILYDETAILID
|
|
|
+ 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}
|
|
|
+ GROUP BY PD.GOODSID ,PD.BARCODE,PD.GROUTINGDAILYDETAILID
|
|
|
+ ) PD INNER JOIN TP_PM_PRODUCTIONDATA PDD ON PDD.PRODUCTIONDATAID = PD.PRODUCTIONDATAID
|
|
|
+ -- 去除复检的质量登记
|
|
|
+ LEFT JOIN tp_pm_productiondata_semicheck semicheck ON semicheck.productiondataid = pd.productiondataid
|
|
|
+ LEFT JOIN TP_PM_PRODUCTIONDATA PMAX ON PMAX.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID
|
|
|
+ AND PMAX.PRODUCTIONDATAID < PD.PRODUCTIONDATAID AND PMAX.VALUEFLAG = '1' AND semicheck.productiondataid is null
|
|
|
+ " + (proc == "999" ? "AND (pmax.kilncarbatchno = PDD.kilncarbatchno OR pmax.procedureid = PDD.procedureid)"
|
|
|
+ : "AND (pmax.kilncarbatchno = PDD.kilncarbatchno )")
|
|
|
+ /*20 研磨 22 直接冷补 23 研磨后冷补(非回收) 37 堵漏气 41 刷洗不良*/
|
|
|
+ + @" AND PMAX.PROCEDUREID IN " + lb + @"
|
|
|
+ INNER JOIN TP_MST_GOODS G ON G.GOODSID = PDD.GOODSID
|
|
|
+ GROUP BY
|
|
|
+ PDD.Barcode,
|
|
|
+ PDD.GOODSLEVELTYPEID,
|
|
|
+ PDD.GOODSID,G.GOODSCODE,
|
|
|
+ PDD.REWORKPROCEDUREID ) T LEFT JOIN TP_PM_PRODUCTIONDATA RPD ON RPD.PRODUCTIONDATAID = T.MPDID where 1=1 ";
|
|
|
+ if (proc == "999")
|
|
|
+ {
|
|
|
+ sqlDetail += " AND (rpd.procedureid IN " + lb + " OR (rpd.procedureid IS NULL AND rpd.goodsleveltypeid != 6)) ";
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ sqlDetail += " AND RPD.PROCEDUREID IN " + lb;
|
|
|
+ }
|
|
|
+ sqlDetail += " order by T.GOODSCODE,T.Barcode ";
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case "再去AA":
|
|
|
+ {
|
|
|
+ sqlDetail = @" SELECT DISTINCT T.GOODSCODE 产品编码, T.Barcode 产品条码
|
|
|
+ FROM
|
|
|
+ (SELECT to_char(pd.Barcode) Barcode
|
|
|
+ ,MAX(pmax.productiondataid) mpdid
|
|
|
+ ,PDD.goodsleveltypeid
|
|
|
+ ,PDD.goodsid ,G.GOODSCODE
|
|
|
+ ,PDD.checkbatchno
|
|
|
+ FROM ( SELECT MAX(PD.PRODUCTIONDATAID) PRODUCTIONDATAID
|
|
|
+ ,PD.GOODSID,PD.BARCODE
|
|
|
+ ,PD.GROUTINGDAILYDETAILID
|
|
|
+ FROM TP_PM_PRODUCTIONDATA PD
|
|
|
+ INNER JOIN TP_PC_GROUTINGLINE GL ON GL.GROUTINGLINEID = PD.GROUTINGLINEID
|
|
|
+ WHERE
|
|
|
+ PD.PROCEDUREID = {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}
|
|
|
+ GROUP BY PD.GOODSID,PD.BARCODE ,PD.GROUTINGDAILYDETAILID
|
|
|
+ ) PD INNER JOIN TP_PM_PRODUCTIONDATA PDD ON PDD.PRODUCTIONDATAID = PD.PRODUCTIONDATAID
|
|
|
+ INNER JOIN tp_pm_productiondata pmax
|
|
|
+ ON pmax.groutingdailydetailid = pd.groutingdailydetailid
|
|
|
+ AND pmax.productiondataid < pd.productiondataid
|
|
|
+ and pmax.KILNCARBATCHNO= PDD.KILNCARBATCHNO
|
|
|
+ AND pmax.valueflag = '1'
|
|
|
+ /*20 研磨 22 直接冷补 23 研磨后冷补(非回收) 37 堵漏气 41 刷洗不良*/
|
|
|
+ AND pmax.procedureid IN (20, 22, 23, 37, 41)
|
|
|
+ INNER JOIN TP_MST_GOODS G ON G.GOODSID = PDD.GOODSID
|
|
|
+ GROUP BY pd.Barcode
|
|
|
+ ,PDD.goodsleveltypeid
|
|
|
+ ,PDD.goodsid ,G.GOODSCODE,PDD.checkbatchno ) T
|
|
|
+ where mpdid > 0 and (checkbatchno > 1 or (checkbatchno = 1 and goodsleveltypeid = 7) ) ";
|
|
|
+ sqlDetail += " order by T.GOODSCODE,T.Barcode ";
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case "再去R":
|
|
|
+ {
|
|
|
+ sqlDetail = @" SELECT DISTINCT T.GOODSCODE 产品编码, T.Barcode 产品条码
|
|
|
+ FROM
|
|
|
+ (SELECT to_char(pd.Barcode) Barcode
|
|
|
+ ,MAX(pmax.productiondataid) mpdid
|
|
|
+ ,PDD.goodsleveltypeid
|
|
|
+ ,PDD.goodsid ,G.GOODSCODE
|
|
|
+ ,PDD.checkbatchno
|
|
|
+ FROM ( SELECT MAX(PD.PRODUCTIONDATAID) PRODUCTIONDATAID
|
|
|
+ ,PD.GOODSID,PD.BARCODE
|
|
|
+ ,PD.GROUTINGDAILYDETAILID
|
|
|
+ FROM TP_PM_PRODUCTIONDATA PD
|
|
|
+ INNER JOIN TP_PC_GROUTINGLINE GL ON GL.GROUTINGLINEID = PD.GROUTINGLINEID
|
|
|
+ WHERE
|
|
|
+ PD.PROCEDUREID = {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}
|
|
|
+ GROUP BY PD.GOODSID,PD.BARCODE ,PD.GROUTINGDAILYDETAILID
|
|
|
+ ) PD INNER JOIN TP_PM_PRODUCTIONDATA PDD ON PDD.PRODUCTIONDATAID = PD.PRODUCTIONDATAID
|
|
|
+ INNER JOIN tp_pm_productiondata pmax
|
|
|
+ ON pmax.groutingdailydetailid = pd.groutingdailydetailid
|
|
|
+ AND pmax.productiondataid < pd.productiondataid
|
|
|
+ AND pmax.valueflag = '1'
|
|
|
+ /*20 研磨 22 直接冷补 23 研磨后冷补(非回收) 37 堵漏气 41 刷洗不良*/
|
|
|
+ AND pmax.procedureid IN ( {PROCEDUREID} )
|
|
|
+ INNER JOIN TP_MST_GOODS G ON G.GOODSID = PDD.GOODSID
|
|
|
+ GROUP BY pd.Barcode
|
|
|
+ ,PDD.goodsleveltypeid
|
|
|
+ ,PDD.goodsid ,G.GOODSCODE ,PDD.checkbatchno ) T
|
|
|
+ where mpdid > 0 and (checkbatchno > 1 or (checkbatchno = 1 and goodsleveltypeid = 6) ) ";
|
|
|
+ sqlDetail += " order by T.GOODSCODE,T.Barcode ";
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case "去R":
|
|
|
+ {
|
|
|
+ sqlDetail = @" SELECT DISTINCT T.GOODSCODE 产品编码, T.Barcode 产品条码
|
|
|
+ FROM
|
|
|
+ (SELECT to_char(pd.Barcode) Barcode
|
|
|
+ ,MAX(pmax.productiondataid) mpdid
|
|
|
+ ,PDD.goodsleveltypeid
|
|
|
+ ,PDD.goodsid ,G.GOODSCODE
|
|
|
+ ,PDD.checkbatchno
|
|
|
+ FROM ( SELECT MAX(PD.PRODUCTIONDATAID) PRODUCTIONDATAID
|
|
|
+ ,PD.GOODSID,PD.BARCODE
|
|
|
+ ,PD.GROUTINGDAILYDETAILID
|
|
|
+ FROM TP_PM_PRODUCTIONDATA PD
|
|
|
+ INNER JOIN TP_PC_GROUTINGLINE GL ON GL.GROUTINGLINEID = PD.GROUTINGLINEID
|
|
|
+ WHERE
|
|
|
+ PD.PROCEDUREID = {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}
|
|
|
+ GROUP BY PD.GOODSID,PD.BARCODE ,PD.GROUTINGDAILYDETAILID
|
|
|
+ ) PD INNER JOIN TP_PM_PRODUCTIONDATA PDD ON PDD.PRODUCTIONDATAID = PD.PRODUCTIONDATAID
|
|
|
+ INNER JOIN tp_pm_productiondata pmax
|
|
|
+ ON pmax.groutingdailydetailid = pd.groutingdailydetailid
|
|
|
+ AND pmax.productiondataid < pd.productiondataid
|
|
|
+ AND pmax.valueflag = '1'
|
|
|
+ and pmax.KILNCARBATCHNO= PDD.KILNCARBATCHNO
|
|
|
+ AND pmax.valueflag = '1'
|
|
|
+ /*20 研磨 22 直接冷补 23 研磨后冷补(非回收) 37 堵漏气 41 刷洗不良*/
|
|
|
+ AND pmax.procedureid IN (20, 22, 23, 37, 41)
|
|
|
+ INNER JOIN TP_MST_GOODS G ON G.GOODSID = PDD.GOODSID
|
|
|
+ GROUP BY pd.Barcode
|
|
|
+ ,PDD.goodsleveltypeid
|
|
|
+ ,PDD.goodsid,G.GOODSCODE ,PDD.checkbatchno ) T
|
|
|
+ where T.GOODSLEVELTYPEID = 6 ";
|
|
|
+ sqlDetail += " order by T.GOODSCODE,T.Barcode ";
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case "F级":
|
|
|
+ {
|
|
|
+ if (proc == "13" || proc == "35")
|
|
|
+ {
|
|
|
+ sqlDetail += @" where T.GOODSLEVELTYPEID = 20 and T.H_FLAG = "
|
|
|
+ + ((proc == "13" || proc == "35") ? 0 : 1);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ sqlDetail = @" SELECT DISTINCT T.GOODSCODE 产品编码, T.Barcode 产品条码
|
|
|
+ FROM
|
|
|
+ (SELECT
|
|
|
+ PDD.Barcode,
|
|
|
+ MAX( PMAX.PRODUCTIONDATAID ) MPDID,
|
|
|
+ PDD.GOODSLEVELTYPEID,
|
|
|
+ PDD.GOODSID,G.GOODSCODE,
|
|
|
+ PDD.REWORKPROCEDUREID,
|
|
|
+ CASE WHEN sum( PMAX.PRODUCTIONDATAID ) > 0 THEN 1 ELSE 0 END H_FLAG
|
|
|
+ FROM
|
|
|
+ ( SELECT MAX(PD.PRODUCTIONDATAID) PRODUCTIONDATAID
|
|
|
+ ,PD.GOODSID,PD.BARCODE
|
|
|
+ ,PD.GROUTINGDAILYDETAILID
|
|
|
+ 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}
|
|
|
+ GROUP BY PD.GOODSID ,PD.BARCODE,PD.GROUTINGDAILYDETAILID
|
|
|
+ ) PD INNER JOIN TP_PM_PRODUCTIONDATA PDD ON PDD.PRODUCTIONDATAID = PD.PRODUCTIONDATAID
|
|
|
+ LEFT JOIN TP_PM_PRODUCTIONDATA PMAX ON PMAX.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID
|
|
|
+ AND PMAX.PRODUCTIONDATAID < PD.PRODUCTIONDATAID AND PMAX.VALUEFLAG = '1'
|
|
|
+ " + (proc == "999" ? "AND (pmax.kilncarbatchno = PDD.kilncarbatchno OR pmax.procedureid = PDD.procedureid)"
|
|
|
+ : "AND (pmax.kilncarbatchno = PDD.kilncarbatchno )")
|
|
|
+ /*20 研磨 22 直接冷补 23 研磨后冷补(非回收) 37 堵漏气 41 刷洗不良*/
|
|
|
+ + @" AND PMAX.PROCEDUREID IN " + lb + @"
|
|
|
+ INNER JOIN TP_MST_GOODS G ON G.GOODSID = PDD.GOODSID
|
|
|
+ GROUP BY
|
|
|
+ PDD.Barcode,
|
|
|
+ PDD.GOODSLEVELTYPEID,
|
|
|
+ PDD.GOODSID,G.GOODSCODE,
|
|
|
+ PDD.REWORKPROCEDUREID ) T where T.H_FLAG = 1 AND t.goodsleveltypeid = 20 ";
|
|
|
+ }
|
|
|
+ sqlDetail += " order by T.GOODSCODE,T.Barcode ";
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case "R级":
|
|
|
+ {
|
|
|
+ sqlDetail += @" where T.GOODSLEVELTYPEID = 6 AND T.REWORKPROCEDUREID = 19 and T.H_FLAG = 0";
|
|
|
+ sqlDetail += " order by T.GOODSCODE,T.Barcode ";
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case "研磨_检验数":
|
|
|
+ case "研磨_合格数":
|
|
|
+ case "直接冷补_检验数":
|
|
|
+ case "直接冷补_合格数":
|
|
|
+ case "研磨后冷补_检验数":
|
|
|
+ case "研磨后冷补_合格数":
|
|
|
+ case "堵漏气_检验数":
|
|
|
+ case "堵漏气_合格数":
|
|
|
+ // case "刷洗不良_检验数":
|
|
|
+ // case "刷洗不良_合格数":
|
|
|
+ {
|
|
|
+ string procedureid = "";
|
|
|
+ if (fields == "研磨_检验数")
|
|
|
+ {
|
|
|
+ procedureid = "20";
|
|
|
+ }
|
|
|
+ else if (fields == "研磨_合格数")
|
|
|
+ {
|
|
|
+ procedureid = " 20 AND t.goodsleveltypeid IN (4, 5) ";
|
|
|
+ }
|
|
|
+ else if (fields == "直接冷补_检验数")
|
|
|
+ {
|
|
|
+ procedureid = "22";
|
|
|
+ }
|
|
|
+ else if (fields == "直接冷补_合格数")
|
|
|
+ {
|
|
|
+ procedureid = " 22 AND t.goodsleveltypeid IN (4, 5) ";
|
|
|
+ }
|
|
|
+ else if (fields == "研磨后冷补_检验数")
|
|
|
+ {
|
|
|
+ procedureid = "23";
|
|
|
+ }
|
|
|
+ else if (fields == "研磨后冷补_合格数")
|
|
|
+ {
|
|
|
+ procedureid = " 23 AND t.goodsleveltypeid IN (4, 5) ";
|
|
|
+ }
|
|
|
+ else if (fields == "堵漏气_检验数")
|
|
|
+ {
|
|
|
+ procedureid = "37";
|
|
|
+ }
|
|
|
+ else if (fields == "堵漏气_合格数")
|
|
|
+ {
|
|
|
+ procedureid = " 37 AND t.goodsleveltypeid IN (4, 5) ";
|
|
|
+ }
|
|
|
+ else if (fields == "刷洗不良_检验数")
|
|
|
+ {
|
|
|
+ procedureid = "41";
|
|
|
+ }
|
|
|
+ else if (fields == "刷洗不良_合格数")
|
|
|
+ {
|
|
|
+ procedureid = " 41 AND t.goodsleveltypeid IN (4, 5) ";
|
|
|
+ }
|
|
|
+
|
|
|
+ sqlDetail = @" SELECT DISTINCT T.GOODSCODE 产品编码, T.Barcode 产品条码
|
|
|
+ FROM
|
|
|
+ (SELECT
|
|
|
+ TO_CHAR(PD.BARCODE) BARCODE,
|
|
|
+ MAX( PMAX.PRODUCTIONDATAID ) MPDID,
|
|
|
+ PDD.GOODSLEVELTYPEID,
|
|
|
+ PDD.GOODSID,G.GOODSCODE,
|
|
|
+ pdd.reworkprocedureid ,
|
|
|
+ CASE WHEN sum( PMAX.PRODUCTIONDATAID ) > 0 THEN 1 ELSE 0 END H_FLAG , 0 flagaa
|
|
|
+ FROM
|
|
|
+ ( SELECT MAX(PD.PRODUCTIONDATAID) PRODUCTIONDATAID
|
|
|
+ ,PD.GOODSID,PD.BARCODE
|
|
|
+ ,PD.GROUTINGDAILYDETAILID
|
|
|
+ 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}
|
|
|
+ GROUP BY PD.GOODSID,PD.BARCODE ,PD.GROUTINGDAILYDETAILID
|
|
|
+ ) PD INNER JOIN TP_PM_PRODUCTIONDATA PDD ON PDD.PRODUCTIONDATAID = PD.PRODUCTIONDATAID
|
|
|
+ -- 去除复检的质量登记
|
|
|
+ LEFT JOIN tp_pm_productiondata_semicheck semicheck ON semicheck.productiondataid = pd.productiondataid
|
|
|
+ LEFT JOIN TP_PM_PRODUCTIONDATA PMAX ON PMAX.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID
|
|
|
+ AND PMAX.PRODUCTIONDATAID < PD.PRODUCTIONDATAID AND PMAX.VALUEFLAG = '1'
|
|
|
+ and pmax.KILNCARBATCHNO= PDD.KILNCARBATCHNO AND semicheck.productiondataid is null
|
|
|
+ /*20 研磨 22 直接冷补 23 研磨后冷补(非回收) 37 堵漏气 41 刷洗不良*/
|
|
|
+ AND PMAX.PROCEDUREID IN " + lb + @"
|
|
|
+ INNER JOIN TP_MST_GOODS G ON G.GOODSID = PDD.GOODSID
|
|
|
+ GROUP BY
|
|
|
+ PD.BARCODE,
|
|
|
+ PDD.GOODSLEVELTYPEID,
|
|
|
+ PDD.GOODSID,G.GOODSCODE,
|
|
|
+ PDD.REWORKPROCEDUREID ) T LEFT JOIN TP_PM_PRODUCTIONDATA RPD ON RPD.PRODUCTIONDATAID = T.MPDID where rpd.procedureid = " + procedureid;
|
|
|
+ sqlDetail += " order by T.GOODSCODE,T.Barcode ";
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case "重烧_合格数":
|
|
|
+ case "重烧_检验数":
|
|
|
+ {
|
|
|
+ string wh = "";
|
|
|
+ if (fields == "重烧_合格数")
|
|
|
+ {
|
|
|
+ wh = " t.goodsleveltypeid IN (4, 5) AND (rpd.procedureid IN (35) OR (rpd.procedureid IS NULL AND rpd.goodsleveltypeid != 6)) ";
|
|
|
+ }
|
|
|
+ else if (fields == "重烧_检验数")
|
|
|
+ {
|
|
|
+ wh = " (rpd.procedureid IN (35) OR (rpd.procedureid IS NULL AND rpd.goodsleveltypeid != 6)) ";
|
|
|
+ }
|
|
|
+
|
|
|
+ sqlDetail = @" SELECT DISTINCT T.GOODSCODE 产品编码, T.Barcode 产品条码
|
|
|
+ FROM
|
|
|
+ (SELECT
|
|
|
+ TO_CHAR(PD.BARCODE) BARCODE,
|
|
|
+ MAX( PMAX.PRODUCTIONDATAID ) MPDID,
|
|
|
+ PDD.GOODSLEVELTYPEID,
|
|
|
+ PDD.GOODSID,G.GOODSCODE,
|
|
|
+ pdd.reworkprocedureid ,
|
|
|
+ CASE WHEN sum( PMAX.PRODUCTIONDATAID ) > 0 THEN 1 ELSE 0 END H_FLAG , 0 flagaa
|
|
|
+ FROM
|
|
|
+ ( SELECT MAX(PD.PRODUCTIONDATAID) PRODUCTIONDATAID
|
|
|
+ ,PD.GOODSID,PD.BARCODE
|
|
|
+ ,PD.GROUTINGDAILYDETAILID ,pd.KILNCARBATCHNO
|
|
|
+ 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}
|
|
|
+ GROUP BY PD.GOODSID,PD.BARCODE ,PD.GROUTINGDAILYDETAILID ,pd.KILNCARBATCHNO
|
|
|
+ ) PD INNER JOIN TP_PM_PRODUCTIONDATA PDD ON PDD.PRODUCTIONDATAID = PD.PRODUCTIONDATAID
|
|
|
+ -- 去除复检的质量登记
|
|
|
+ LEFT JOIN tp_pm_productiondata_semicheck semicheck ON semicheck.productiondataid = pd.productiondataid
|
|
|
+ LEFT JOIN TP_PM_PRODUCTIONDATA PMAX ON PMAX.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID
|
|
|
+ AND (pmax.kilncarbatchno = pdd.kilncarbatchno OR pmax.procedureid = pdd.procedureid)
|
|
|
+ AND PMAX.PRODUCTIONDATAID < PD.PRODUCTIONDATAID AND PMAX.VALUEFLAG = '1' AND semicheck.productiondataid is null
|
|
|
+ AND PMAX.PROCEDUREID IN (20, 22, 23, 37, 41, 35)
|
|
|
+ INNER JOIN TP_MST_GOODS G ON G.GOODSID = PDD.GOODSID
|
|
|
+ GROUP BY
|
|
|
+ PD.BARCODE,
|
|
|
+ PDD.GOODSLEVELTYPEID,
|
|
|
+ PDD.GOODSID,G.GOODSCODE,
|
|
|
+ PDD.REWORKPROCEDUREID ) T LEFT JOIN TP_PM_PRODUCTIONDATA RPD ON RPD.PRODUCTIONDATAID = T.MPDID where " + wh;
|
|
|
+ sqlDetail += " order by T.GOODSCODE,T.Barcode ";
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ default:
|
|
|
+ {
|
|
|
+ // 缺陷的详细条码
|
|
|
+ if (fields.Contains("_") && !fields.Contains("合计"))
|
|
|
+ {
|
|
|
+ if (proc == "13" || proc == "35")
|
|
|
+ {
|
|
|
+ sqlDetail = @"SELECT DISTINCT G.GOODSCODE 产品编码, pp.Barcode 产品条码
|
|
|
+ FROM
|
|
|
+ ( SELECT MAX(PD.PRODUCTIONDATAID) PRODUCTIONDATAID
|
|
|
+ ,PD.GROUTINGDAILYDETAILID
|
|
|
+ FROM TP_PM_PRODUCTIONDATA PD
|
|
|
+ INNER JOIN TP_PC_GROUTINGLINE GL ON GL.GROUTINGLINEID = PD.GROUTINGLINEID
|
|
|
+ WHERE
|
|
|
+ PD.PROCEDUREID = {PROCEDUREID}
|
|
|
+ AND PD.CHECKTIME >= @DATEBEGIN@
|
|
|
+ AND PD.CHECKTIME < @DATEEND@
|
|
|
+ AND (PD.KILNID = @KILNID@ OR @KILNID@ IS NULL)
|
|
|
+ -- AND PD.GOODSCODE IN ( '" + gs + @"')
|
|
|
+ AND GL.BUILDINGNO {BUILDINGNO}
|
|
|
+ AND pd.goodsleveltypeid <> 4
|
|
|
+ GROUP BY PD.GROUTINGDAILYDETAILID
|
|
|
+ ) P
|
|
|
+ -- 缺陷工序分组的 工序id1 工序id2 对应
|
|
|
+ inner join tp_pm_productiondata pp on p.productiondataid = pp.productiondataid
|
|
|
+ INNER JOIN tp_pm_productiondata ppdg ON p.groutingdailydetailid = ppdg.groutingdailydetailid AND ppdg.valueflag = '1'
|
|
|
+ INNER JOIN TP_MST_GOODS G ON G.GOODSID = pp.GOODSID
|
|
|
+ INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID
|
|
|
+ INNER JOIN TP_PM_DEFECT D ON P.PRODUCTIONDATAID = D.PRODUCTIONDATAID
|
|
|
+ INNER JOIN TP_MST_DEFECT M ON ( M.DEFECTID = D.DEFECTID AND M.DEFECTID > 0 )
|
|
|
+ INNER JOIN TP_MST_DEFECTGROUP PDP ON PDP.DEFECTID = D.DEFECTID AND PDP.DEFECTGROUPTYPE LIKE '每窑%'
|
|
|
+ AND (
|
|
|
+ pdp.procedureid1 = ppdg.procedureid OR pdp.procedureid2 = ppdg.procedureid
|
|
|
+ )
|
|
|
+ WHERE instr( to_char(pdp.defectgroupname || '_' || m.defectname) , '" + fields + @"' ) > 0
|
|
|
+
|
|
|
+ and not (d.defectid = 11 AND pp.goodsleveltypeid = 4) ";
|
|
|
+ sqlDetail += " order by G.GOODSCODE,PP.Barcode ";
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ sqlDetail = @"SELECT DISTINCT G.GOODSCODE 产品编码, pp.Barcode 产品条码
|
|
|
+ FROM
|
|
|
+ (SELECT PD.PRODUCTIONDATAID
|
|
|
+ ,MAX(PMAX.PRODUCTIONDATAID) MPDID
|
|
|
+ ,PD.GOODSLEVELTYPEID
|
|
|
+ ,PD.GOODSID
|
|
|
+ ,PD.GROUTINGDAILYDETAILID
|
|
|
+ FROM TP_PM_PRODUCTIONDATA PD
|
|
|
+ INNER JOIN TP_PM_PRODUCTIONDATA PMAX
|
|
|
+ ON PMAX.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID
|
|
|
+ AND PMAX.PRODUCTIONDATAID < PD.PRODUCTIONDATAID
|
|
|
+ AND PMAX.VALUEFLAG = '1'
|
|
|
+ and pmax.KILNCARBATCHNO= pd.KILNCARBATCHNO
|
|
|
+ /*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.PROCEDUREID IN (13, 35)
|
|
|
+ --AND PD.VALUEFLAG = '1'
|
|
|
+ --AND PD.CHECKBATCHNO = 1
|
|
|
+ AND PD.createtime >= @DATEBEGIN@
|
|
|
+ AND PD.createtime < @DATEEND@
|
|
|
+ AND PD.GOODSLEVELTYPEID = 20
|
|
|
+ AND (PD.KILNID = @KILNID@ OR @KILNID@ IS NULL)
|
|
|
+ -- AND PD.GOODSCODE IN( '" + gs + @"')
|
|
|
+ AND GL.BUILDINGNO {BUILDINGNO}
|
|
|
+ GROUP BY PD.PRODUCTIONDATAID
|
|
|
+ ,PD.GOODSLEVELTYPEID
|
|
|
+ ,PD.GOODSID
|
|
|
+ ,PD.GROUTINGDAILYDETAILID
|
|
|
+ UNION ALL
|
|
|
+ SELECT PD.PRODUCTIONDATAID
|
|
|
+ ,MAX(PMAX.PRODUCTIONDATAID) MPDID
|
|
|
+ ,PD.GOODSLEVELTYPEID
|
|
|
+ ,PD.GOODSID
|
|
|
+ ,PD.GROUTINGDAILYDETAILID
|
|
|
+ FROM TP_PM_PRODUCTIONDATA PD
|
|
|
+ INNER JOIN TP_PM_PRODUCTIONDATA PMAX
|
|
|
+ ON PMAX.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID
|
|
|
+ AND PMAX.PRODUCTIONDATAID < PD.PRODUCTIONDATAID
|
|
|
+ AND PMAX.VALUEFLAG = '1'
|
|
|
+ and pmax.KILNCARBATCHNO= pd.KILNCARBATCHNO
|
|
|
+ /*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.PROCEDUREID IN (13, 35)
|
|
|
+ -- AND PD.VALUEFLAG = '1'
|
|
|
+ -- AND PD.CHECKBATCHNO = 1
|
|
|
+ AND PD.CREATETIME >= @DATEBEGIN@
|
|
|
+ AND PD.CREATETIME < @DATEEND@
|
|
|
+ --AND PD.CHECKBATCHNO > 1
|
|
|
+ AND PD.GOODSLEVELTYPEID <> 4
|
|
|
+ AND (PD.KILNID = @KILNID@ OR @KILNID@ IS NULL)
|
|
|
+ -- AND PD.GOODSCODE IN( '" + gs + @"')
|
|
|
+ AND GL.BUILDINGNO {BUILDINGNO}
|
|
|
+ GROUP BY PD.PRODUCTIONDATAID
|
|
|
+ ,PD.GOODSLEVELTYPEID
|
|
|
+ ,PD.GOODSID
|
|
|
+ ,PD.GROUTINGDAILYDETAILID
|
|
|
+ ) P
|
|
|
+ -- 缺陷工序分组的 工序id1 工序id2 对应
|
|
|
+ inner join tp_pm_productiondata pp on p.groutingdailydetailid = pp.groutingdailydetailid and pp.valueflag = '1'
|
|
|
+ INNER JOIN TP_MST_GOODS G ON G.GOODSID = P.GOODSID
|
|
|
+ INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID
|
|
|
+ INNER JOIN TP_PM_DEFECT D ON P.PRODUCTIONDATAID = D.PRODUCTIONDATAID
|
|
|
+ INNER JOIN TP_MST_DEFECT M ON ( M.DEFECTID = D.DEFECTID AND M.DEFECTID > 0 )
|
|
|
+ LEFT JOIN TP_PC_PROCEDURE PR ON PR.PROCEDUREID = D.DEFECTPROCEDUREID
|
|
|
+ INNER JOIN TP_MST_DEFECTGROUP PDP ON PDP.DEFECTID = D.DEFECTID AND PDP.DEFECTGROUPTYPE LIKE '每窑%'
|
|
|
+ AND (
|
|
|
+ pdp.procedureid1 = pp.procedureid OR pdp.procedureid2 = pp.procedureid
|
|
|
+ ) and instr ( to_char(pdp.defectgroupname || '_' || m.defectname) , '" + fields + @"' ) > 0 ";
|
|
|
+ sqlDetail += " order by G.GOODSCODE,pp.Barcode ";
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ if (proc == "888")
|
|
|
+ {
|
|
|
+ proc = "13";
|
|
|
+ }
|
|
|
+ else if (proc == "999")
|
|
|
+ {
|
|
|
+ proc = "35";
|
|
|
+ }
|
|
|
+ sqlDetail = sqlDetail.Replace("{DEFECT}", defectStr).Replace("{BUILDINGNO}", buding).Replace("{PROCEDUREID}", proc);
|
|
|
+ //获取查询条件
|
|
|
+ List<CDAParameter> sqlPara = new List<CDAParameter>();
|
|
|
+ sqlPara.Add(new CDAParameter("DATEBEGIN", Convert.ToDateTime(context.Request["datebeginMaster"]), 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,35"));
|
|
|
+ DataTable dt = conn.ExecuteDatatable(sqlDetail, sqlPara.ToArray());
|
|
|
+ string jsonStr = new JsonResult(dt) { total = dt.Rows.Count }.ToJson();
|
|
|
+ //string jsonStr = new JsonResult(dt) { total = dt.Rows.Count }.ToJson();
|
|
|
+ context.Response.Write(jsonStr);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ public bool IsReusable
|
|
|
+ {
|
|
|
+ get
|
|
|
+ {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|