姜永辉 11 miesięcy temu
rodzic
commit
0518c6e799
1 zmienionych plików z 103 dodań i 136 usunięć
  1. 103 136
      wwwroot/mes/rpt/rpt008/rpt.ashx

+ 103 - 136
wwwroot/mes/rpt/rpt008/rpt.ashx

@@ -73,56 +73,17 @@ public class rpt : IHttpHandler, IReadOnlySessionState
             if(context.Request["m"].ToString()=="master")
             {
                 string sqlStr = null;
-                if (buding != "IN('1#','2#')")
+                int errorLineNo = 0;
+                conn.BeginTransaction();
+                try
                 {
-                    sqlStr = @"
-                SELECT DECODE(GID, 7, T.楼号 || '合计' , 15, T.楼号 || '总计', T.楼号) AS 楼号
-                      ,DECODE(GID, 15, '--', T.产品编码) AS 产品编码
-                      ,DECODE(GID, 15, '--', T.产品名称) AS 产品名称
-                      ,DECODE(GID, 15, '--', T.产品型号) AS 产品型号
-                      ,DECODE(GID, 3, '--' , 15, '--', T.釉料) AS 釉料
-                      ,DECODE(GID, 3, '--' , 15, '--', T.商标) AS 商标
-                      ,T.出窑数_本烧
-                      ,T.出窑数_重烧
-                      ,T.合格数_本烧
-                      ,T.合格数_重烧
-                      ,T.合格数_回收                     
-                      ,T.合格数_合计
-                      ,T.合格数_改判
-                      --,NVL(ROUND(T.合格数_合计 / DECODE(T.出窑数, 0, 1, T.出窑数), 4) * 100, 0) || '%' AS 合格率
-                      ,NVL(ROUND((T.合格数_本烧 + 合格数_回收) / DECODE(T.出窑数_本烧, 0, 1, T.出窑数_本烧), 4) * 100, 0) || '%' AS 合格率
-                      ,NVL(ROUND(合格数_合计 / DECODE(T.出窑数_本烧, 0, 1, T.出窑数_本烧), 4) * 100, 0) || '%' AS 综合合格率
-                      ,T.包装数_本烧
-                      ,T.包装数_重烧
-                      ,T.包装数_回收                     
-                      ,T.包装数_合计
-                      ,t.合格数_改判 - t.包装数_改判 包装数_改判
-                  FROM (SELECT GROUPING_ID(L.BUILDINGNO, M.GOODSID, D.DICTIONARYVALUE, O.LOGONAME) AS GID
-                              ,L.BUILDINGNO AS 楼号
-                              ,M.GOODSID AS 产品ID
-                              ,M.GOODSCODE AS 产品编码
-                              ,M.GOODSNAME AS 产品名称
-                              ,M.GOODSMODEL AS 产品型号
-                              ,G.GLAZETYPEID AS 釉料ID
-                              ,D.DICTIONARYVALUE AS 釉料
-                              ,G.LOGOID AS 商标ID
-                              ,O.LOGONAME AS 商标
-                              ,SUM(TF.OUT_K_B) AS 出窑数_本烧
-                              ,SUM(TF.OUT_K_R) AS 出窑数_重烧
-                              ,SUM(TF.OUT_K_ALL) AS 出窑数
-                              ,SUM(TF.OK_B) AS 合格数_本烧
-                              ,SUM(TF.OK_R) AS 合格数_重烧
-                              ,SUM(TF.OK_H) AS 合格数_回收
-                              ,SUM(TF.hgp) AS 合格数_改判
-                              ,SUM(TF.OK_ALL) AS 合格数_合计
-                              ,SUM(TF.END_B) 包装数_本烧
-                              ,SUM(TF.END_R) 包装数_重烧
-                              ,SUM(TF.END_H) 包装数_回收
-                             ,SUM(TF.bzgp) 包装数_改判
-                              ,SUM(TF.END_ALL) 包装数_合计
-                                 FROM (SELECT 1 FLAG
+                    if (buding != "IN('1#','2#')")
+                    {
+                        errorLineNo = 1;
+                        string sqltmp = @" insert into TMP_PROD_HG_BZ(FLAG,GROUTINGDAILYDETAILID,OUT_K_B,OUT_K_R,OUT_K_ALL,
+                                                            OK_B,OK_R,OK_H,OK_ALL,END_B,END_R,END_H,END_ALL,HGP,BZGP)(SELECT 1 FLAG
                                       ,TP.GROUTINGDAILYDETAILID
-                                      ,0 OUT_K_B
+                                      ,decode(TP.PROCEDUREID, 13, 1, 0) OUT_K_B
                                       ,decode(TP.PROCEDUREID, 35, 1, 0) OUT_K_R
                                       ,1 OUT_K_ALL
                                       ,0 OK_B
@@ -138,35 +99,11 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                   FROM TP_PM_PRODUCTIONDATA TP
                                  WHERE TP.PROCEDUREID IN (13, 35)
                                    AND TP.Checkflag = 1
-                                   AND TP.Createtime >= @DATEBEGIN@
-                                   AND TP.Createtime <= @DATEEND@
+                                   AND TP.Createtime >= date'" + Convert.ToDateTime(context.Request["datebeginMaster"]).ToString("yyyy-MM-dd")+@"'
+                                   AND TP.Createtime <= date'" + Convert.ToDateTime(context.Request["dateendMaster"]).AddSeconds(1).ToString("yyyy-MM-dd")+@"' 
 
-                                    UNION ALL
-
-                                      SELECT 1 FLAG
-                                      ,TP.GROUTINGDAILYDETAILID
-                                      ,decode(TP.PROCEDUREID, 13, 1, 0) OUT_K_B
-                                      ,0 OUT_K_R
-                                      ,1 OUT_K_ALL
-                                      ,0 OK_B
-                                      ,0 OK_R
-                                      ,0 OK_H
-                                      ,0 OK_ALL
-                                      ,0 END_B
-                                      ,0 END_R
-                                      ,0 END_H
-                                      ,0 END_ALL
-                                      ,0 hgp
-                                      ,0 bzgp
-                                       FROM (
-																	SELECT  BARCODE,GROUTINGDAILYDETAILID,PROCEDUREID  
-																	FROM  TP_PM_PRODUCTIONDATA TP
-                                 WHERE TP.PROCEDUREID IN (13)
-                                   AND TP.Checkflag = 1
-                                   AND TP.Createtime >= @DATEBEGIN@
-                                   AND TP.Createtime <= @DATEEND@
-																	 )TP 
-                                                                     UNION ALL
+                                   
+                                 UNION ALL
                                 SELECT 2 FLAG
                                       ,P.GROUTINGDAILYDETAILID
                                       ,0 OUT_K_B
@@ -210,8 +147,8 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                          WHERE TP.CHECKBATCHNO = 1
                                            AND TP.GOODSLEVELTYPEID IN (4, 5)
                                            AND TP.PROCEDUREID IN (13, 35)
-                                           AND TP.CREATETIME >= @DATEBEGIN@
-                                           AND TP.CREATETIME <= @DATEEND@
+                                           AND TP.CREATETIME >= date'" + Convert.ToDateTime(context.Request["datebeginMaster"]).ToString("yyyy-MM-dd")+@"'
+                                           AND TP.CREATETIME <= date'" + Convert.ToDateTime(context.Request["dateendMaster"]).AddSeconds(1).ToString("yyyy-MM-dd")+@"'
                                          GROUP BY TP.PRODUCTIONDATAID
                                                  ,TP.GROUTINGDAILYDETAILID
                                                  ,TP.PROCEDUREID) P
@@ -267,14 +204,15 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                    from TP_PM_ProductionData INNER JOIN  TP_PM_ProductionData TP on TP.barcode=TP_PM_ProductionData.BARCODE and TP.CHECKBATCHNO = 1  and TP.VALUEFLAG=1
                                            AND TP.GOODSLEVELTYPEID IN (4, 5)
                                            AND TP.PROCEDUREID IN (13, 35)
-                                           AND TP.CREATETIME >= @DATEBEGIN@
-                                           AND TP.CREATETIME <=  @DATEEND@ LEFT JOIN TP_PM_PRODUCTIONDATA RPD
+                                           AND TP.CREATETIME >= date'" + Convert.ToDateTime(context.Request["datebeginMaster"]).ToString("yyyy-MM-dd")+@"'
+                                           AND TP.CREATETIME <=  date'" + Convert.ToDateTime(context.Request["dateendMaster"]).AddSeconds(1).ToString("yyyy-MM-dd")+@"'  
+                                        LEFT JOIN TP_PM_PRODUCTIONDATA RPD
                                     ON RPD.BARCODE = TP_PM_ProductionData.BARCODE
                                    AND RPD.Procedureid IN (20, 22, 23, 37) 
 			                where TP_PM_ProductionData.ValueFlag = '1'
                             and TP_PM_ProductionData.ProcedureID = 15 
-                            and TP_PM_ProductionData.CREATETIME>@DATEBEGIN@  
-                            and TP_PM_ProductionData.CREATETIME<= @DATEEND@ 
+                            and TP_PM_ProductionData.CREATETIME>= date'" + Convert.ToDateTime(context.Request["datebeginMaster"]).ToString("yyyy-MM-dd")+@"'  
+                            and TP_PM_ProductionData.CREATETIME<= date'" + Convert.ToDateTime(context.Request["dateendMaster"]).AddSeconds(1).ToString("yyyy-MM-dd")+@"' 
                             GROUP BY TP_PM_ProductionData.groutingdailydetailid
 
                          UNION ALL
@@ -310,8 +248,8 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                     AND tp.valueflag = 1
                                      AND TP.GOODSLEVELTYPEID IN (4, 5)
                                      AND TP.PROCEDUREID = 13
-                                     AND TP.CREATETIME >= @DATEBEGIN@
-                                     AND TP.CREATETIME <= @DATEEND@
+                                     AND TP.CREATETIME >= date'" + Convert.ToDateTime(context.Request["datebeginMaster"]).ToString("yyyy-MM-dd")+@"'
+                                     AND TP.CREATETIME <= date'" + Convert.ToDateTime(context.Request["dateendMaster"]).AddSeconds(1).ToString("yyyy-MM-dd")+@"'
                                      AND to_char(tp.createtime, 'YYYY-MM-DD') <> to_char(tp.checktime, 'YYYY-MM-DD')
                                    GROUP BY TP.PRODUCTIONDATAID
                                            ,TP.GROUTINGDAILYDETAILID
@@ -354,8 +292,8 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                                 AND tp.valueflag = 1
                                                  AND TP.GOODSLEVELTYPEID IN (4, 5)
                                                  AND TP.PROCEDUREID = 13
-                                                 AND TP.CREATETIME >= @DATEBEGIN@
-                                                 AND TP.CREATETIME <= @DATEEND@
+                                                 AND TP.CREATETIME >= date'" + Convert.ToDateTime(context.Request["datebeginMaster"]).ToString("yyyy-MM-dd")+@"'
+                                                 AND TP.CREATETIME <= date'" + Convert.ToDateTime(context.Request["dateendMaster"]).AddSeconds(1).ToString("yyyy-MM-dd")+@"' 
                                                  AND to_char(tp.createtime, 'YYYY-MM-DD') <> to_char(tp.checktime, 'YYYY-MM-DD')
                                                GROUP BY TP.PRODUCTIONDATAID
                                                        ,TP.GROUTINGDAILYDETAILID
@@ -373,12 +311,56 @@ public class rpt : IHttpHandler, IReadOnlySessionState
 
                                 where TP_PM_ProductionData.ValueFlag = '0'
                                   and TP_PM_ProductionData.ProcedureID = 15 
-                                  and TP_PM_ProductionData.CREATETIME>@DATEBEGIN@  
-                                  and TP_PM_ProductionData.CREATETIME<= @DATEEND@ 
-                                  -- GROUP BY TP_PM_ProductionData.groutingdailydetailid    
-        
-
-                        ) TF
+                                  and TP_PM_ProductionData.CREATETIME>= date'" + Convert.ToDateTime(context.Request["datebeginMaster"]).ToString("yyyy-MM-dd")+@"' 
+                                  and TP_PM_ProductionData.CREATETIME<= date'" + Convert.ToDateTime(context.Request["dateendMaster"]).AddSeconds(1).ToString("yyyy-MM-dd")+@"'   ) ";
+                        conn.ExecuteNonQuery(sqltmp );
+                             
+                        sqlStr = @"
+                SELECT DECODE(GID, 7, T.楼号 || '合计' , 15, T.楼号 || '总计', T.楼号) AS 楼号
+                      ,DECODE(GID, 15, '--', T.产品编码) AS 产品编码
+                      ,DECODE(GID, 15, '--', T.产品名称) AS 产品名称
+                      ,DECODE(GID, 15, '--', T.产品型号) AS 产品型号
+                      ,DECODE(GID, 3, '--' , 15, '--', T.釉料) AS 釉料
+                      ,DECODE(GID, 3, '--' , 15, '--', T.商标) AS 商标
+                      ,T.出窑数_本烧
+                      ,T.出窑数_重烧
+                      ,T.合格数_本烧
+                      ,T.合格数_重烧
+                      ,T.合格数_回收                     
+                      ,T.合格数_合计
+                      ,T.合格数_改判
+                      --,NVL(ROUND(T.合格数_合计 / DECODE(T.出窑数, 0, 1, T.出窑数), 4) * 100, 0) || '%' AS 合格率
+                      ,NVL(ROUND((T.合格数_本烧 + 合格数_回收) / DECODE(T.出窑数_本烧, 0, 1, T.出窑数_本烧), 4) * 100, 0) || '%' AS 合格率
+                      ,NVL(ROUND(合格数_合计 / DECODE(T.出窑数_本烧, 0, 1, T.出窑数_本烧), 4) * 100, 0) || '%' AS 综合合格率
+                      ,T.包装数_本烧
+                      ,T.包装数_重烧
+                      ,T.包装数_回收                     
+                      ,T.包装数_合计
+                      ,t.合格数_改判 - t.包装数_改判 包装数_改判
+                  FROM (SELECT GROUPING_ID(L.BUILDINGNO, M.GOODSID, D.DICTIONARYVALUE, O.LOGONAME) AS GID
+                              ,L.BUILDINGNO AS 楼号
+                              ,M.GOODSID AS 产品ID
+                              ,M.GOODSCODE AS 产品编码
+                              ,M.GOODSNAME AS 产品名称
+                              ,M.GOODSMODEL AS 产品型号
+                              ,G.GLAZETYPEID AS 釉料ID
+                              ,D.DICTIONARYVALUE AS 釉料
+                              ,G.LOGOID AS 商标ID
+                              ,O.LOGONAME AS 商标
+                              ,SUM(TF.OUT_K_B) AS 出窑数_本烧
+                              ,SUM(TF.OUT_K_R) AS 出窑数_重烧
+                              ,SUM(TF.OUT_K_ALL) AS 出窑数
+                              ,SUM(TF.OK_B) AS 合格数_本烧
+                              ,SUM(TF.OK_R) AS 合格数_重烧
+                              ,SUM(TF.OK_H) AS 合格数_回收
+                              ,SUM(TF.hgp) AS 合格数_改判
+                              ,SUM(TF.OK_ALL) AS 合格数_合计
+                              ,SUM(TF.END_B) 包装数_本烧
+                              ,SUM(TF.END_R) 包装数_重烧
+                              ,SUM(TF.END_H) 包装数_回收
+                             ,SUM(TF.bzgp) 包装数_改判
+                              ,SUM(TF.END_ALL) 包装数_合计
+                                 FROM TMP_PROD_HG_BZ  TF
                           LEFT JOIN TP_PM_GROUTINGDAILYDETAIL G
                             ON TF.GROUTINGDAILYDETAILID = G.GROUTINGDAILYDETAILID
                           LEFT JOIN TP_PC_GROUTINGLINE L
@@ -401,9 +383,10 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                          ORDER BY L.BUILDINGNO
                                  ,M.GOODSCODE
                                  ,GID) T ".Replace("{BUILDINGNO}", buding).Replace("{goodsCodes}", goodssql);
-                }
-                else {
-                    sqlStr = @"
+                    }
+                    else {
+                        errorLineNo = 2;
+                        sqlStr = @"
                 SELECT 					 	DECODE(GID, 7, '总计', '1#+2#') AS 楼号
                       ,DECODE(GID, 7, '--', T.产品编码) AS 产品编码
                       ,DECODE(GID, 15, '--', T.产品名称) AS 产品名称
@@ -444,7 +427,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                               ,SUM(TF.END_ALL) 包装数_合计
                           FROM (SELECT 1 FLAG
                                       ,TP.GROUTINGDAILYDETAILID
-                                      ,0 OUT_K_B
+                                      ,decode(TP.PROCEDUREID, 13, 1, 0) OUT_K_B
                                       ,decode(TP.PROCEDUREID, 35, 1, 0) OUT_K_R
                                       ,1 OUT_K_ALL
                                       ,0 OK_B
@@ -461,7 +444,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                    AND TP.Createtime >= @DATEBEGIN@
                                    AND TP.Createtime <= @DATEEND@
 
-                                    UNION ALL
+                                  /*  UNION ALL
 
                                   SELECT 1 FLAG
                                       ,TP.GROUTINGDAILYDETAILID
@@ -483,7 +466,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                                    AND TP.Checkflag = 1
                                    AND TP.Createtime >= @DATEBEGIN@
                                    AND TP.Createtime <= @DATEEND@
-									 )TP 
+									 )TP */
 																	
 
                                 UNION ALL
@@ -610,49 +593,33 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                          ORDER BY M.GOODSCODE
                                  ,GID) T ".Replace("{BUILDINGNO}", buding).Replace("{goodsCodes}", goodssql);
 
-                }
-
-
-                //获取查询条件
-                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"]), DataType.DateTime));
-                sqlPara.Add(new CDAParameter("GLAZETYPEID", context.Request["glazetypeidMaster"]));
-                sqlPara.Add(new CDAParameter("LOGOID", context.Request["logoidMaster"]));
-                sqlPara.Add(new CDAParameter("GOODSCODE", context.Request["goodscodeMaster"]));
-                sqlPara.Add(new CDAParameter("GOODSMODEL", context.Request["goodsmodelMaster"]));
-                sqlPara.Add(new CDAParameter("GOODSNAME", context.Request["goodsnameMaster"]));
-
-
-
-                //if(context.Request["USERID"] is object)
-                //{
-                //    sqlStr += " AND m.USERID = @USERID@ ";
-                //    sqlPara.Add(new CDAParameter("USERID", context.Request["USERID"].ToString()));
-                //}
+                    }
 
-                //获取分页参数
-                //int page = HttpContext.Current.Request["page"] is object ? Convert.ToInt32(HttpContext.Current.Request["page"]) : 1;
-                //int rows = HttpContext.Current.Request["rows"] is object ? Convert.ToInt32(HttpContext.Current.Request["rows"]) : 10;
-                //string sort = HttpContext.Current.Request["sort"] is object ? HttpContext.Current.Request["sort"] : "m.REPORTCODE";
-                //string order = HttpContext.Current.Request["order"] is object ? HttpContext.Current.Request["order"] : "";
 
-                //获取分页数据
-                //int total = 0;
-                //DataTable dt = conn.SelectPages(page, rows, out total, sqlStr, sqlPara.ToArray());
+                    //获取查询条件
+                    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"]), DataType.DateTime));
+                    sqlPara.Add(new CDAParameter("GLAZETYPEID", context.Request["glazetypeidMaster"]));
+                    sqlPara.Add(new CDAParameter("LOGOID", context.Request["logoidMaster"]));
+                    sqlPara.Add(new CDAParameter("GOODSCODE", context.Request["goodscodeMaster"]));
+                    sqlPara.Add(new CDAParameter("GOODSMODEL", context.Request["goodsmodelMaster"]));
+                    sqlPara.Add(new CDAParameter("GOODSNAME", context.Request["goodsnameMaster"]));
 
-                //if (dt != null && dt.Rows.Count > 0)
-                //{
-                //    dt.Columns.Remove("ROWNO");
-                //}
+                    //直接获取不分页数据
+                    DataTable dt = conn.ExecuteDatatable(sqlStr, sqlPara.ToArray());
+                    string jsonStr = new JsonResult(dt) { total = dt.Rows.Count }.ToJson();
 
-                //string jsonStr = new JsonResult(dt) { total = total }.ToJson();
+                    conn.Commit();
+                    context.Response.Write(jsonStr);
+                }
+                catch (Exception ex)
+                {
+                    conn.Rollback();
+                    context.Response.Write(new JsonResult(JsonStatus.otherError) { message = "行号:" + errorLineNo + " 数据错误,请检查!" }.ToJson());
 
-                //直接获取不分页数据
-                DataTable dt = conn.ExecuteDatatable(sqlStr, sqlPara.ToArray());
-                string jsonStr = new JsonResult(dt) { total = dt.Rows.Count }.ToJson();
+                }
 
-                context.Response.Write(jsonStr);
             }
 
             //子表
@@ -797,7 +764,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
                 string test = context.Request["datebeginMaster"].ToString().Remove(4, 1);
                 string test2 = context.Request["dateendMaster"].ToString().Remove(4, 1);
 
-                List<CDAParameter> sqlPara = new List<CDAParameter>(); 
+                List<CDAParameter> sqlPara = new List<CDAParameter>();
                 sqlPara.Add(new CDAParameter("BEGINMONTH", Convert.ToInt32(context.Request["datebeginMaster"].Substring(0, context.Request["datebeginMaster"].IndexOf("-")) + context.Request["datebeginMaster"].Substring(context.Request["datebeginMaster"].IndexOf("-") + 1).PadLeft(2, '0'))));
                 sqlPara.Add(new CDAParameter("ENDMONTH", Convert.ToInt32(context.Request["dateendMaster"].Substring(0, context.Request["dateendMaster"].IndexOf("-")) + context.Request["dateendMaster"].Substring(context.Request["dateendMaster"].IndexOf("-") + 1).PadLeft(2, '0'))));
                 sqlPara.Add(new CDAParameter("GLAZETYPEID", context.Request["glazetypeidMaster"]));