|
|
@@ -30,6 +30,148 @@ public class rpt : IHttpHandler, IReadOnlySessionState
|
|
|
strFactoryInspection = " and not exists (select 1 from TP_HOLIDAY_CONFIG thc where p.CREATETIME >= thc.DAY_YMD_START and p.CREATETIME < thc.DAY_YMD_END ) ";
|
|
|
strFactoryInspectionCheckTime = " and not exists (select 1 from TP_HOLIDAY_CONFIG thc where TP.CREATETIME >= thc.DAY_YMD_START and TP.CREATETIME < thc.DAY_YMD_END ) ";
|
|
|
}
|
|
|
+ conn.BeginTransaction();
|
|
|
+
|
|
|
+ string sqltmp = @" insert into TMP_CHECK_PROD_STATISTIC(PRODUCTIONDATAID,
|
|
|
+ BARCODE,
|
|
|
+ USERID,
|
|
|
+ GOODSID,
|
|
|
+ GOODSMODEL,
|
|
|
+ GOODSCODE,
|
|
|
+ GOODSNAME,
|
|
|
+ 釉料ID,
|
|
|
+ 釉料,
|
|
|
+ 商标ID,
|
|
|
+ 商标,
|
|
|
+ GROUTINGLINEID,
|
|
|
+ GOODSLEVELTYPEID,
|
|
|
+ PROCEDUREID,
|
|
|
+ MAXPRODUCTIONDATAID,
|
|
|
+ CLASSESSETTINGID) ( SELECT
|
|
|
+ TP.PRODUCTIONDATAID,
|
|
|
+ TP.BARCODE,
|
|
|
+ decode(pdsemi.productiondataid, NULL, decode(pdsemicheck.productiondataid,NULL,tp.userid,pdfirst.userid) , decode(pdrefirst.userid, NULL, pdfirst.userid, pdrefirst.userid)) userid,
|
|
|
+ TP.GOODSID,
|
|
|
+ G.GOODSMODEL,
|
|
|
+ G.GOODSCODE,
|
|
|
+ G.GOODSNAME,
|
|
|
+ Gg.GLAZETYPEID AS 釉料ID,
|
|
|
+ D.DICTIONARYVALUE AS 釉料,
|
|
|
+ Gg.LOGOID AS 商标ID,
|
|
|
+ O.LOGONAME AS 商标,
|
|
|
+ TP.GROUTINGLINEID,
|
|
|
+ TP.GOODSLEVELTYPEID,
|
|
|
+ TP.PROCEDUREID,
|
|
|
+ MAX( PMAX.PRODUCTIONDATAID ) AS MAXPRODUCTIONDATAID,
|
|
|
+ decode(pdsemi.productiondataid
|
|
|
+ ,NULL
|
|
|
+ ,tp.classessettingid
|
|
|
+ ,decode(pdrefirst.classessettingid, NULL, pdfirst.classessettingid, pdrefirst.classessettingid)) CLASSESSETTINGID
|
|
|
+ FROM
|
|
|
+
|
|
|
+ (SELECT MAX(tp.productiondataid) productiondataid
|
|
|
+ ,tp.groutingdailydetailid
|
|
|
+ FROM tp_pm_productiondata tp
|
|
|
+ WHERE tp.procedureid IN (13, 35)
|
|
|
+ AND tp.createtime >= @DATEBEGIN@
|
|
|
+ AND tp.createtime <= @DATEEND@
|
|
|
+ GROUP BY tp.groutingdailydetailid) maxp
|
|
|
+ INNER JOIN tp_pm_productiondata tp ON maxp.productiondataid = tp.productiondataid
|
|
|
+ -- 研发
|
|
|
+ LEFT JOIN tp_pm_productiondata tprd
|
|
|
+ ON tprd.groutingdailydetailid = tp.groutingdailydetailid
|
|
|
+ AND tprd.valueflag = '1' AND tprd.procedureid = 34
|
|
|
+ -- 复检的数据
|
|
|
+ LEFT JOIN tp_pm_productiondata_semicheck pdsemi ON pdsemi.productiondataid = tp.productiondataid
|
|
|
+ -- 是否经过复检的数据
|
|
|
+ LEFT JOIN tp_pm_productiondata pdissemi
|
|
|
+ ON pdissemi.groutingdailydetailid = tp.groutingdailydetailid
|
|
|
+ AND ((tprd.groutingdailydetailid IS NOT NULL AND
|
|
|
+ pdissemi.kilncarbatchno IS NULL AND tp.kilncarbatchno IS NULL) OR
|
|
|
+ (tprd.groutingdailydetailid IS NULL AND
|
|
|
+ pdissemi.kilncarbatchno = tp.kilncarbatchno))
|
|
|
+ AND pdissemi.productiondataid < tp.productiondataid
|
|
|
+ and pdissemi.procedureid IN (13, 35)
|
|
|
+ LEFT JOIN tp_pm_productiondata_semicheck pdsemicheck
|
|
|
+ ON pdsemicheck.productiondataid = pdissemi.productiondataid
|
|
|
+
|
|
|
+ -- 找到复检的那个人
|
|
|
+ LEFT JOIN tp_pm_productiondata pdfirst
|
|
|
+ ON pdfirst.groutingdailydetailid = tp.groutingdailydetailid
|
|
|
+ AND pdfirst.checkflag = 1
|
|
|
+ AND ((tprd.groutingdailydetailid IS NOT NULL AND
|
|
|
+ pdfirst.kilncarbatchno IS NULL AND tp.kilncarbatchno IS NULL) OR
|
|
|
+ (tprd.groutingdailydetailid IS NULL AND
|
|
|
+ pdfirst.kilncarbatchno = tp.kilncarbatchno))
|
|
|
+ AND pdfirst.productiondataid <= tp.productiondataid
|
|
|
+ -- 找到研磨 堵漏气 刷洗不良 的那个人
|
|
|
+ LEFT JOIN tp_pm_productiondata pdrefirst
|
|
|
+ ON pdrefirst.groutingdailydetailid = tp.groutingdailydetailid
|
|
|
+ AND pdrefirst.checkflag = 3
|
|
|
+ AND ((tprd.groutingdailydetailid IS NOT NULL AND
|
|
|
+ pdrefirst.kilncarbatchno IS NULL AND tp.kilncarbatchno IS NULL) OR
|
|
|
+ (tprd.groutingdailydetailid IS NULL AND
|
|
|
+ pdrefirst.kilncarbatchno = tp.kilncarbatchno))
|
|
|
+ AND pdrefirst.productiondataid <= tp.productiondataid
|
|
|
+ INNER JOIN TP_PC_GROUTINGLINE L ON TP.GROUTINGLINEID = L.GROUTINGLINEID
|
|
|
+ LEFT JOIN TP_PM_PRODUCTIONDATA PMAX ON PMAX.GROUTINGDAILYDETAILID = TP.GROUTINGDAILYDETAILID
|
|
|
+ AND PMAX.PRODUCTIONDATAID < TP.PRODUCTIONDATAID AND PMAX.VALUEFLAG = '1' AND pmax.procedureid IN (22, 23)
|
|
|
+ LEFT JOIN TP_MST_GOODS G ON G.GOODSID = TP.GOODSID
|
|
|
+ LEFT JOIN TP_PM_GROUTINGDAILYDETAIL Gg ON TP.GROUTINGDAILYDETAILID = Gg.GROUTINGDAILYDETAILID
|
|
|
+ LEFT JOIN TP_MST_DATADICTIONARY D ON Gg.GLAZETYPEID = D.DICTIONARYID
|
|
|
+ LEFT JOIN TP_MST_LOGO O ON Gg.LOGOID = O.LOGOID
|
|
|
+ LEFT JOIN tp_mst_user mu ON mu.userid = decode(pdsemi.productiondataid, NULL, decode(pdsemicheck.productiondataid,NULL,tp.userid,pdfirst.userid), decode(pdrefirst.userid, NULL, pdfirst.userid, pdrefirst.userid))
|
|
|
+ WHERE
|
|
|
+ TP.PROCEDUREID IN ( 13, 35 )
|
|
|
+ AND ( G.GOODSMODEL = @GOODSMODEL@ OR @GOODSMODEL@ IS NULL )
|
|
|
+ AND ( G.GOODSNAME = @GOODSNAME@ OR @GOODSNAME@ IS NULL )
|
|
|
+ AND ( mu.USERCODE = @USERCODE@ OR @USERCODE@ IS NULL )
|
|
|
+
|
|
|
+ AND TP.CREATETIME >= @DATEBEGIN@
|
|
|
+ AND TP.CREATETIME <= @DATEEND@
|
|
|
+ {strFactoryInspectionCheckTime}
|
|
|
+ AND ( L.BUILDINGNO = @BUILDINGNO@ OR @BUILDINGNO@ IS NULL )
|
|
|
+ AND (Gg.LOGOID = @LOGOID@ OR @LOGOID@ IS NULL)
|
|
|
+ AND (Gg.GLAZETYPEID = @GLAZETYPEID@ OR @GLAZETYPEID@ IS NULL)
|
|
|
+ GROUP BY
|
|
|
+ TP.PRODUCTIONDATAID,
|
|
|
+ TP.BARCODE,
|
|
|
+ pdfirst.USERID, pdrefirst.userid,
|
|
|
+ G.GOODSCODE,
|
|
|
+ G.GOODSNAME,
|
|
|
+ TP.GOODSID,
|
|
|
+ G.GOODSMODEL,
|
|
|
+ Gg.GLAZETYPEID,
|
|
|
+ D.DICTIONARYVALUE,
|
|
|
+ Gg.LOGOID,
|
|
|
+ O.LOGONAME,
|
|
|
+ TP.GROUTINGLINEID,
|
|
|
+ TP.GOODSLEVELTYPEID,
|
|
|
+ TP.PROCEDUREID,
|
|
|
+ pdfirst.CLASSESSETTINGID ,pdrefirst.classessettingid,pdsemi.productiondataid ,pdsemicheck.productiondataid,tp.userid ,tp.classessettingid ) ";
|
|
|
+ List<CDAParameter> sqlParaInert = new List<CDAParameter>();
|
|
|
+ sqlParaInert.Add(new CDAParameter("DATEBEGIN", Convert.ToDateTime(context.Request["datebeginMaster"]), DataType.DateTime));
|
|
|
+ sqlParaInert.Add(new CDAParameter("DATEEND", Convert.ToDateTime(context.Request["dateendMaster"]), DataType.DateTime));
|
|
|
+
|
|
|
+ sqlParaInert.Add(new CDAParameter("BUILDINGNO", context.Request["buildingnoMaster"]));
|
|
|
+ sqlParaInert.Add(new CDAParameter("PROCEDUREID", context.Request["procedureidMaster"]));
|
|
|
+ sqlParaInert.Add(new CDAParameter("GOODSMODEL", context.Request["goodsmodelMaster"]));
|
|
|
+ sqlParaInert.Add(new CDAParameter("GOODSNAME", context.Request["goodsnameMaster"]));
|
|
|
+ sqlParaInert.Add(new CDAParameter("USERCODE", context.Request["usercodeMaster"]));
|
|
|
+ sqlParaInert.Add(new CDAParameter("USERNAME", context.Request["usernameMaster"]));
|
|
|
+ sqlParaInert.Add(new CDAParameter("GLAZETYPEID", context.Request["glazetypeidMaster"]));
|
|
|
+ sqlParaInert.Add(new CDAParameter("LOGOID", context.Request["logoidMaster"]));
|
|
|
+ sqlParaInert.Add(new CDAParameter("JOBSID", context.Request["jobsidMaster"]));
|
|
|
+ if (sqltmp.Contains("{strFactoryInspection}"))
|
|
|
+ {
|
|
|
+ sqltmp = sqltmp.Replace("{strFactoryInspection}", strFactoryInspection);
|
|
|
+ }
|
|
|
+ if (sqltmp.Contains("{strFactoryInspectionCheckTime}"))
|
|
|
+ {
|
|
|
+ sqltmp = sqltmp.Replace("{strFactoryInspectionCheckTime}", strFactoryInspectionCheckTime);
|
|
|
+ }
|
|
|
+ conn.ExecuteNonQuery(sqltmp, sqlParaInert.ToArray());
|
|
|
+
|
|
|
List<CDAParameter> sqlPara = new List<CDAParameter>();
|
|
|
|
|
|
//读取报表数据
|
|
|
@@ -182,108 +324,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
|
|
|
SUM( CASE WHEN P.GOODSLEVELTYPEID NOT IN (4,5) AND D.DEFECTID IN(11) AND P.PROCEDUREID = 35 THEN 1 ELSE 0 END) AS DNUM4
|
|
|
FROM
|
|
|
(
|
|
|
- SELECT
|
|
|
- TP.PRODUCTIONDATAID,
|
|
|
- TP.BARCODE,
|
|
|
- decode(pdsemi.productiondataid, NULL, decode(pdsemicheck.productiondataid,NULL,tp.userid,pdfirst.userid) , decode(pdrefirst.userid, NULL, pdfirst.userid, pdrefirst.userid)) userid,
|
|
|
- TP.GOODSID,
|
|
|
- G.GOODSMODEL,
|
|
|
- G.GOODSCODE,
|
|
|
- G.GOODSNAME,
|
|
|
- Gg.GLAZETYPEID AS 釉料ID,
|
|
|
- D.DICTIONARYVALUE AS 釉料,
|
|
|
- Gg.LOGOID AS 商标ID,
|
|
|
- O.LOGONAME AS 商标,
|
|
|
- TP.GROUTINGLINEID,
|
|
|
- TP.GOODSLEVELTYPEID,
|
|
|
- TP.PROCEDUREID,
|
|
|
- MAX( PMAX.PRODUCTIONDATAID ) AS MAXPRODUCTIONDATAID,
|
|
|
- decode(pdsemi.productiondataid
|
|
|
- ,NULL
|
|
|
- ,tp.classessettingid
|
|
|
- ,decode(pdrefirst.classessettingid, NULL, pdfirst.classessettingid, pdrefirst.classessettingid)) CLASSESSETTINGID
|
|
|
- FROM
|
|
|
-
|
|
|
- (SELECT MAX(tp.productiondataid) productiondataid
|
|
|
- ,tp.groutingdailydetailid
|
|
|
- FROM tp_pm_productiondata tp
|
|
|
- WHERE tp.procedureid IN (13, 35)
|
|
|
- AND tp.createtime >= @DATEBEGIN@
|
|
|
- AND tp.createtime <= @DATEEND@
|
|
|
- GROUP BY tp.groutingdailydetailid) maxp
|
|
|
- INNER JOIN tp_pm_productiondata tp ON maxp.productiondataid = tp.productiondataid
|
|
|
- -- 研发
|
|
|
- LEFT JOIN tp_pm_productiondata tprd
|
|
|
- ON tprd.groutingdailydetailid = tp.groutingdailydetailid
|
|
|
- AND tprd.valueflag = '1' AND tprd.procedureid = 34
|
|
|
- -- 复检的数据
|
|
|
- LEFT JOIN tp_pm_productiondata_semicheck pdsemi ON pdsemi.productiondataid = tp.productiondataid
|
|
|
- -- 是否经过复检的数据
|
|
|
- LEFT JOIN tp_pm_productiondata pdissemi
|
|
|
- ON pdissemi.groutingdailydetailid = tp.groutingdailydetailid
|
|
|
- AND ((tprd.groutingdailydetailid IS NOT NULL AND
|
|
|
- pdissemi.kilncarbatchno IS NULL AND tp.kilncarbatchno IS NULL) OR
|
|
|
- (tprd.groutingdailydetailid IS NULL AND
|
|
|
- pdissemi.kilncarbatchno = tp.kilncarbatchno))
|
|
|
- AND pdissemi.productiondataid < tp.productiondataid
|
|
|
- and pdissemi.procedureid IN (13, 35)
|
|
|
- LEFT JOIN tp_pm_productiondata_semicheck pdsemicheck
|
|
|
- ON pdsemicheck.productiondataid = pdissemi.productiondataid
|
|
|
-
|
|
|
- -- 找到复检的那个人
|
|
|
- LEFT JOIN tp_pm_productiondata pdfirst
|
|
|
- ON pdfirst.groutingdailydetailid = tp.groutingdailydetailid
|
|
|
- AND pdfirst.checkflag = 1
|
|
|
- AND ((tprd.groutingdailydetailid IS NOT NULL AND
|
|
|
- pdfirst.kilncarbatchno IS NULL AND tp.kilncarbatchno IS NULL) OR
|
|
|
- (tprd.groutingdailydetailid IS NULL AND
|
|
|
- pdfirst.kilncarbatchno = tp.kilncarbatchno))
|
|
|
- AND pdfirst.productiondataid <= tp.productiondataid
|
|
|
- -- 找到研磨 堵漏气 刷洗不良 的那个人
|
|
|
- LEFT JOIN tp_pm_productiondata pdrefirst
|
|
|
- ON pdrefirst.groutingdailydetailid = tp.groutingdailydetailid
|
|
|
- AND pdrefirst.checkflag = 3
|
|
|
- AND ((tprd.groutingdailydetailid IS NOT NULL AND
|
|
|
- pdrefirst.kilncarbatchno IS NULL AND tp.kilncarbatchno IS NULL) OR
|
|
|
- (tprd.groutingdailydetailid IS NULL AND
|
|
|
- pdrefirst.kilncarbatchno = tp.kilncarbatchno))
|
|
|
- AND pdrefirst.productiondataid <= tp.productiondataid
|
|
|
- INNER JOIN TP_PC_GROUTINGLINE L ON TP.GROUTINGLINEID = L.GROUTINGLINEID
|
|
|
- LEFT JOIN TP_PM_PRODUCTIONDATA PMAX ON PMAX.GROUTINGDAILYDETAILID = TP.GROUTINGDAILYDETAILID
|
|
|
- AND PMAX.PRODUCTIONDATAID < TP.PRODUCTIONDATAID AND PMAX.VALUEFLAG = '1' AND pmax.procedureid IN (22, 23)
|
|
|
- LEFT JOIN TP_MST_GOODS G ON G.GOODSID = TP.GOODSID
|
|
|
- LEFT JOIN TP_PM_GROUTINGDAILYDETAIL Gg ON TP.GROUTINGDAILYDETAILID = Gg.GROUTINGDAILYDETAILID
|
|
|
- LEFT JOIN TP_MST_DATADICTIONARY D ON Gg.GLAZETYPEID = D.DICTIONARYID
|
|
|
- LEFT JOIN TP_MST_LOGO O ON Gg.LOGOID = O.LOGOID
|
|
|
- LEFT JOIN tp_mst_user mu ON mu.userid = decode(pdsemi.productiondataid, NULL, decode(pdsemicheck.productiondataid,NULL,tp.userid,pdfirst.userid), decode(pdrefirst.userid, NULL, pdfirst.userid, pdrefirst.userid))
|
|
|
- WHERE
|
|
|
- TP.PROCEDUREID IN ( 13, 35 )
|
|
|
- AND ( G.GOODSMODEL = @GOODSMODEL@ OR @GOODSMODEL@ IS NULL )
|
|
|
- AND ( G.GOODSNAME = @GOODSNAME@ OR @GOODSNAME@ IS NULL )
|
|
|
- AND ( mu.USERCODE = @USERCODE@ OR @USERCODE@ IS NULL )
|
|
|
-
|
|
|
- AND TP.CREATETIME >= @DATEBEGIN@
|
|
|
- AND TP.CREATETIME <= @DATEEND@
|
|
|
- {strFactoryInspectionCheckTime}
|
|
|
- AND ( L.BUILDINGNO = @BUILDINGNO@ OR @BUILDINGNO@ IS NULL )
|
|
|
- AND (Gg.LOGOID = @LOGOID@ OR @LOGOID@ IS NULL)
|
|
|
- AND (Gg.GLAZETYPEID = @GLAZETYPEID@ OR @GLAZETYPEID@ IS NULL)
|
|
|
- GROUP BY
|
|
|
- TP.PRODUCTIONDATAID,
|
|
|
- TP.BARCODE,
|
|
|
- pdfirst.USERID, pdrefirst.userid,
|
|
|
- G.GOODSCODE,
|
|
|
- G.GOODSNAME,
|
|
|
- TP.GOODSID,
|
|
|
- G.GOODSMODEL,
|
|
|
- Gg.GLAZETYPEID,
|
|
|
- D.DICTIONARYVALUE,
|
|
|
- Gg.LOGOID,
|
|
|
- O.LOGONAME,
|
|
|
- TP.GROUTINGLINEID,
|
|
|
- TP.GOODSLEVELTYPEID,
|
|
|
- TP.PROCEDUREID,
|
|
|
- pdfirst.CLASSESSETTINGID ,pdrefirst.classessettingid,pdsemi.productiondataid ,pdsemicheck.productiondataid,tp.userid ,tp.classessettingid
|
|
|
+ TMP_CHECK_PROD_STATISTIC
|
|
|
) P
|
|
|
LEFT JOIN TP_PM_PRODUCTIONDATA PDP ON P.BARCODE = PDP.BARCODE AND PDP.PROCEDUREID =15 AND PDP.VALUEFLAG = '1'
|
|
|
INNER JOIN tp_pm_productiondata tpp ON tpp.productiondataid = p.productiondataid
|