|
|
@@ -87,259 +87,35 @@ public class rptnew_detail : IHttpHandler, IReadOnlySessionState
|
|
|
#endregion
|
|
|
|
|
|
// 各个列的明细数据
|
|
|
- string sqlDetail = @" SELECT DISTINCT '" + gs + @"' 产品编码, T.Barcode 产品条码
|
|
|
- FROM
|
|
|
- (SELECT to_char(pd.Barcode) Barcode
|
|
|
- ,MAX(pmax.productiondataid) mpdid
|
|
|
- ,pd.goodsleveltypeid
|
|
|
- ,pd.goodsid
|
|
|
- ,pd.checkbatchno
|
|
|
- ,PD.REWORKPROCEDUREID
|
|
|
- ,CASE
|
|
|
- WHEN SUM(pmax.productiondataid) > 0 THEN
|
|
|
- 1
|
|
|
- ELSE
|
|
|
- 0
|
|
|
- END h_flag
|
|
|
+ string sqlDetail = @" SELECT DISTINCT '" + gs + @"' 产品编码, T.Barcode 产品条码 ,TSGL.GOODSLEVELTYPENAME AS 改判后质量
|
|
|
+ FROM (
|
|
|
+ select p.Barcode ,p.goodsleveltypeid FROM
|
|
|
+ ( SELECT pd.productiondataid
|
|
|
+ ,pd.procedureid
|
|
|
+ ,pd.Barcode
|
|
|
+ ,pd.goodsleveltypeid
|
|
|
+ ,MAX(pmax.productiondataid) AS maxproductiondataid
|
|
|
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)
|
|
|
+ AND pmax.productiondataid < pd.productiondataid
|
|
|
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 to_char(PD.createtime, 'YYYY-MM-DD') <> to_char(PD.checktime, 'YYYY-MM-DD')
|
|
|
+ WHERE pd.procedureid in ( {PROCEDUREID} )
|
|
|
+ AND pd.createtime > @DATEEND@
|
|
|
+ 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.Barcode
|
|
|
- ,pd.goodsleveltypeid
|
|
|
- ,pd.goodsid ,pd.checkbatchno ,PD.REWORKPROCEDUREID ) T ";
|
|
|
- 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.CHECKFLAG = 1
|
|
|
- AND PD.CREATETIME >= @DATEBEGIN@
|
|
|
- AND PD.CREATETIME < @DATEEND@
|
|
|
- AND to_char(PD.createtime, 'YYYY-MM-DD') <> to_char(PD.checktime, 'YYYY-MM-DD')
|
|
|
- AND (PD.KILNID = @KILNID@ OR @KILNID@ IS NULL)
|
|
|
- AND PD.GOODSCODE IN( '" + gs + @"' )
|
|
|
- AND GL.BUILDINGNO {BUILDINGNO} ";
|
|
|
- sqlDetail += " order by pd.Barcode ";
|
|
|
- break;
|
|
|
- }
|
|
|
- case "U级":
|
|
|
- {
|
|
|
- sqlDetail += @" where T.GOODSLEVELTYPEID = 4 and T.H_FLAG = 0 ";
|
|
|
- sqlDetail += " order by T.Barcode ";
|
|
|
- break;
|
|
|
- }
|
|
|
- case "A级":
|
|
|
- {
|
|
|
- sqlDetail += @" where T.GOODSLEVELTYPEID = 5 and T.H_FLAG = 0";
|
|
|
- sqlDetail += " order by T.Barcode ";
|
|
|
- break;
|
|
|
- }
|
|
|
- case "AA级":
|
|
|
- {
|
|
|
- sqlDetail += @" LEFT JOIN TP_PM_PRODUCTIONDATA RPD ON RPD.PRODUCTIONDATAID = T.MPDID where T.GOODSLEVELTYPEID IN ( 4, 5 ) AND RPD.PROCEDUREID IN ( 22, 23, 37, 20, 41 ) ";
|
|
|
- sqlDetail += " order by T.Barcode ";
|
|
|
- break;
|
|
|
- }
|
|
|
- case "去AA":
|
|
|
- {
|
|
|
- sqlDetail += @" where T.GOODSLEVELTYPEID = 7 ";
|
|
|
- sqlDetail += " order by T.Barcode ";
|
|
|
- break;
|
|
|
- }
|
|
|
- case "检验数":
|
|
|
- {
|
|
|
- sqlDetail += @" LEFT JOIN TP_PM_PRODUCTIONDATA RPD ON RPD.PRODUCTIONDATAID = T.MPDID where rpd.procedureid IN (22, 23, 37, 20, 41) ";
|
|
|
- sqlDetail += " order by T.Barcode ";
|
|
|
- break;
|
|
|
- }
|
|
|
- case "再去AA":
|
|
|
- {
|
|
|
- sqlDetail += @" where mpdid > 0 and checkbatchno > 1 ";
|
|
|
- sqlDetail += " order by T.Barcode ";
|
|
|
- break;
|
|
|
- }
|
|
|
- case "F级":
|
|
|
- {
|
|
|
- sqlDetail += @" where T.GOODSLEVELTYPEID = 20 and T.H_FLAG = "
|
|
|
- + ((proc == "13" || proc == "35") ? 0 : 1);
|
|
|
- sqlDetail += " order by T.Barcode ";
|
|
|
- break;
|
|
|
- }
|
|
|
- case "R级":
|
|
|
- {
|
|
|
- sqlDetail += @" where T.GOODSLEVELTYPEID = 6 AND T.REWORKPROCEDUREID = 19 and T.H_FLAG = 0 ";
|
|
|
- sqlDetail += " order by T.Barcode ";
|
|
|
- break;
|
|
|
- }
|
|
|
- case "研磨":
|
|
|
- {
|
|
|
- sqlDetail += @" LEFT JOIN TP_PM_PRODUCTIONDATA RPD ON RPD.PRODUCTIONDATAID = T.MPDID where rpd.procedureid = 20 ";
|
|
|
- sqlDetail += " order by T.Barcode ";
|
|
|
- break;
|
|
|
- }
|
|
|
- case "直接冷补":
|
|
|
- {
|
|
|
- sqlDetail += @" LEFT JOIN TP_PM_PRODUCTIONDATA RPD ON RPD.PRODUCTIONDATAID = T.MPDID where rpd.procedureid = 22 ";
|
|
|
- sqlDetail += " order by T.Barcode ";
|
|
|
- break;
|
|
|
- }
|
|
|
- case "研磨后冷补":
|
|
|
- {
|
|
|
- sqlDetail += @" LEFT JOIN TP_PM_PRODUCTIONDATA RPD ON RPD.PRODUCTIONDATAID = T.MPDID where rpd.procedureid = 23 ";
|
|
|
- sqlDetail += " order by T.Barcode ";
|
|
|
- break;
|
|
|
- }
|
|
|
- case "堵漏气":
|
|
|
- {
|
|
|
- sqlDetail += @" LEFT JOIN TP_PM_PRODUCTIONDATA RPD ON RPD.PRODUCTIONDATAID = T.MPDID where rpd.procedureid = 37 ";
|
|
|
- sqlDetail += " order by T.Barcode ";
|
|
|
- break;
|
|
|
- }
|
|
|
- case "刷洗不良":
|
|
|
- {
|
|
|
- sqlDetail += @" LEFT JOIN TP_PM_PRODUCTIONDATA RPD ON RPD.PRODUCTIONDATAID = T.MPDID where rpd.procedureid = 41 ";
|
|
|
- sqlDetail += " order by T.Barcode ";
|
|
|
- break;
|
|
|
- }
|
|
|
- default:
|
|
|
- {
|
|
|
- // 缺陷的详细条码
|
|
|
- if (fields.Contains("_") && !fields.Contains("合计"))
|
|
|
- {
|
|
|
- if (proc == "13" || proc == "35")
|
|
|
- {
|
|
|
- sqlDetail = @"SELECT DISTINCT '" + gs + @"' 产品编码, p.Barcode 产品条码
|
|
|
- FROM
|
|
|
- TP_PM_PRODUCTIONDATA 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_PC_GROUTINGLINE L ON P.GROUTINGLINEID = L.GROUTINGLINEID
|
|
|
- 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
|
|
|
- )
|
|
|
- WHERE
|
|
|
- P.VALUEFLAG = '1'
|
|
|
- AND P.PROCEDUREID in ( {PROCEDUREID} )
|
|
|
- AND P.CHECKBATCHNO = 1
|
|
|
- AND P.CHECKTIME >= @DATEBEGIN@
|
|
|
- AND P.CHECKTIME < @DATEEND@
|
|
|
- AND to_char(P.createtime, 'YYYY-MM-DD') <> to_char(P.checktime, 'YYYY-MM-DD')
|
|
|
- AND P.GOODSLEVELTYPEID <> 4
|
|
|
- AND (P.KILNID = @KILNID@ OR @KILNID@ IS NULL)
|
|
|
- AND P.GOODSCODE IN( '" + gs + @"')
|
|
|
- and to_char(pdp.defectgroupname || '_' || m.defectname) = '" + fields + @"'
|
|
|
- AND L.BUILDINGNO {BUILDINGNO}
|
|
|
- and not (d.defectid = 11 AND (p.goodsleveltypeid = 4 OR p.goodsleveltypeid = 5)) ";
|
|
|
- sqlDetail += " order by P.Barcode ";
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- sqlDetail = @"SELECT DISTINCT '" + gs + @"' 产品编码, p.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.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.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.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.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 to_char(pdp.defectgroupname || '_' || m.defectname) = '" + fields + @"' ";
|
|
|
- sqlDetail += " order by P.Barcode ";
|
|
|
- }
|
|
|
- }
|
|
|
- break;
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
+ GROUP BY pd.productiondataid
|
|
|
+ ,pd.procedureid
|
|
|
+ ,pd.Barcode,pd.goodsleveltypeid ) p
|
|
|
+ INNER JOIN tp_pm_productiondata rpd
|
|
|
+ ON rpd.productiondataid = p.maxproductiondataid
|
|
|
+ AND (rpd.procedureid=13 or rpd.procedureid=35) where p.goodsleveltypeid<>rpd.goodsleveltypeid
|
|
|
+ ) T LEFT JOIN TP_SYS_GOODSLEVELTYPE TSGL ON T.GOODSLEVELTYPEID = TSGL.GOODSLEVELTYPEID order by T.Barcode ";
|
|
|
+
|
|
|
sqlDetail = sqlDetail.Replace("{DEFECT}", defectStr).Replace("{BUILDINGNO}", buding).Replace("{PROCEDUREID}", proc);
|
|
|
//获取查询条件
|
|
|
List<CDAParameter> sqlPara = new List<CDAParameter>();
|