소스 검색

临时表的成检产量统计表

姜永辉 5 달 전
부모
커밋
5b3a830f75
1개의 변경된 파일143개의 추가작업 그리고 102개의 파일을 삭제
  1. 143 102
      wwwroot/mes/rpt/rpt017/rpt.ashx

+ 143 - 102
wwwroot/mes/rpt/rpt017/rpt.ashx

@@ -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