|
@@ -14,12 +14,12 @@ using DK.XuWei.WebMes;
|
|
|
|
|
|
|
|
public class rpt : IHttpHandler, IReadOnlySessionState
|
|
public class rpt : IHttpHandler, IReadOnlySessionState
|
|
|
{
|
|
{
|
|
|
- public void ProcessRequest(HttpContext context)
|
|
|
|
|
- {
|
|
|
|
|
- context.Response.ContentType = "text/plain";
|
|
|
|
|
- using (IDataAccess conn = DataAccess.Create())
|
|
|
|
|
- {
|
|
|
|
|
- #region 产品编码
|
|
|
|
|
|
|
+ public void ProcessRequest(HttpContext context)
|
|
|
|
|
+ {
|
|
|
|
|
+ context.Response.ContentType = "text/plain";
|
|
|
|
|
+ using (IDataAccess conn = DataAccess.Create())
|
|
|
|
|
+ {
|
|
|
|
|
+ #region 产品编码
|
|
|
List<CDAParameter> goodsnull = new List<CDAParameter>();
|
|
List<CDAParameter> goodsnull = new List<CDAParameter>();
|
|
|
string[] goodsCodes = new string[] { };
|
|
string[] goodsCodes = new string[] { };
|
|
|
string goodsStr = "";
|
|
string goodsStr = "";
|
|
@@ -28,34 +28,70 @@ public class rpt : IHttpHandler, IReadOnlySessionState
|
|
|
goodsCodes = context.Request["GOODSCODE"].ToString().Split(',');
|
|
goodsCodes = context.Request["GOODSCODE"].ToString().Split(',');
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- string goodssql = @"SELECT
|
|
|
|
|
- GOODSCODE
|
|
|
|
|
- FROM TP_MST_GOODS
|
|
|
|
|
- WHERE 1=1";
|
|
|
|
|
-
|
|
|
|
|
|
|
+ //string goodssql = @"SELECT GOODSCODE FROM TP_MST_GOODS WHERE 1=1";
|
|
|
|
|
+ /*
|
|
|
|
|
+ string goodssql = "";
|
|
|
|
|
+ if (goodsCodes.Length > 1 || goodsCodes[0]!="")
|
|
|
|
|
+ {
|
|
|
|
|
|
|
|
- if (goodsCodes.Length > 1 || goodsCodes[0]!="")
|
|
|
|
|
|
|
+ if (context.Request["isNotcheck"].ToString() == "1")
|
|
|
{
|
|
{
|
|
|
-
|
|
|
|
|
- if (context.Request["isNotcheck"].ToString() == "1")
|
|
|
|
|
|
|
+ goodssql += @" AND ( GS.GOODSCODE NOT LIKE ('%" + goodsCodes[0] + "%') ";
|
|
|
|
|
+ for (int i = 1; i < goodsCodes.Length; i++)
|
|
|
{
|
|
{
|
|
|
- goodssql += @" AND GOODSCODE NOT LIKE ('%" + goodsCodes[0] + "%') ";
|
|
|
|
|
- for (int i = 1; i < goodsCodes.Length; i++)
|
|
|
|
|
|
|
+ if (goodsCodes[i] != "")
|
|
|
{
|
|
{
|
|
|
- goodssql += @" AND GOODSCODE NOT LIKE ('%" + goodsCodes[i] + "%') ";
|
|
|
|
|
|
|
+ goodssql += @" AND GS.GOODSCODE NOT LIKE ('%" + goodsCodes[i] + "%') ";
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- else
|
|
|
|
|
|
|
+ goodssql += @" ) ";
|
|
|
|
|
+ }
|
|
|
|
|
+ else
|
|
|
|
|
+ {
|
|
|
|
|
+ goodssql += @" AND ( GS.GOODSCODE LIKE ('%" + goodsCodes[0] + "%') ";
|
|
|
|
|
+ for (int i = 1; i < goodsCodes.Length; i++)
|
|
|
{
|
|
{
|
|
|
- goodssql += @" AND GOODSCODE LIKE ('%" + goodsCodes[0] + "%') ";
|
|
|
|
|
- for (int i = 1; i < goodsCodes.Length; i++)
|
|
|
|
|
|
|
+ if (goodsCodes[i] != "")
|
|
|
{
|
|
{
|
|
|
- goodssql += @" OR GOODSCODE LIKE ('%" + goodsCodes[i] + "%') ";
|
|
|
|
|
|
|
+ goodssql += @" OR GS.GOODSCODE LIKE ('%" + goodsCodes[i] + "%') ";
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+ goodssql += @" ) ";
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ }*/
|
|
|
|
|
|
|
|
|
|
+ string goodssql = "";
|
|
|
|
|
+ if (goodsCodes.Length > 1 || goodsCodes[0]!="")
|
|
|
|
|
+ {
|
|
|
|
|
+
|
|
|
|
|
+ if (context.Request["isNotcheck"].ToString() == "1")
|
|
|
|
|
+ {
|
|
|
|
|
+ goodssql += @" AND ( instr( GS.GOODSCODE, '" + goodsCodes[0] + "') = 0 ";
|
|
|
|
|
+ for (int i = 1; i < goodsCodes.Length; i++)
|
|
|
|
|
+ {
|
|
|
|
|
+ if (goodsCodes[i] != "")
|
|
|
|
|
+ {
|
|
|
|
|
+ goodssql += @" AND instr( GS.GOODSCODE, '" + goodsCodes[i] + "') =0";
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ goodssql += @" ) ";
|
|
|
|
|
+ }
|
|
|
|
|
+ else
|
|
|
|
|
+ {
|
|
|
|
|
+ goodssql += @" AND ( instr( GS.GOODSCODE, '" + goodsCodes[0] + "') > 0";
|
|
|
|
|
+ for (int i = 1; i < goodsCodes.Length; i++)
|
|
|
|
|
+ {
|
|
|
|
|
+ if (goodsCodes[i] != "")
|
|
|
|
|
+ {
|
|
|
|
|
+ goodssql += @" OR instr( GS.GOODSCODE, '" + goodsCodes[i] + "') > 0 ";
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ goodssql += @" ) ";
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ /*
|
|
|
DataTable goodsTable = conn.ExecuteDatatable(goodssql,goodsnull.ToArray());
|
|
DataTable goodsTable = conn.ExecuteDatatable(goodssql,goodsnull.ToArray());
|
|
|
|
|
|
|
|
|
|
|
|
@@ -67,35 +103,35 @@ public class rpt : IHttpHandler, IReadOnlySessionState
|
|
|
if (i > 0) goodsStr += ",";
|
|
if (i > 0) goodsStr += ",";
|
|
|
goodsStr += "'" + goodsTable.Rows[i]["GOODSCODE"].ToString() + "'";
|
|
goodsStr += "'" + goodsTable.Rows[i]["GOODSCODE"].ToString() + "'";
|
|
|
}
|
|
}
|
|
|
- }
|
|
|
|
|
|
|
+ }*/
|
|
|
#endregion
|
|
#endregion
|
|
|
- //主表
|
|
|
|
|
- if (context.Request["m"].ToString() == "master")
|
|
|
|
|
- {
|
|
|
|
|
- //默认是本烧检验进行统计 19 R级重烧修补 36 Z级再修 要按重烧检验统计 xuwei add 2020-06-13
|
|
|
|
|
- string checkProcedureId = "13";
|
|
|
|
|
- string isRefire = "0";
|
|
|
|
|
- if (context.Request["procedureidMaster"].ToString() == "19" ||
|
|
|
|
|
- context.Request["procedureidMaster"].ToString() == "36")
|
|
|
|
|
- {
|
|
|
|
|
- checkProcedureId = "35";
|
|
|
|
|
- isRefire = "6";
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- //确定modeltype 成型工序 需要附加条件 modeltype=5
|
|
|
|
|
- string modelType = "";
|
|
|
|
|
-
|
|
|
|
|
- if (context.Request["procedureidMaster"].ToString() == "2" ||
|
|
|
|
|
- context.Request["procedureidMaster"].ToString() == "25")
|
|
|
|
|
- {
|
|
|
|
|
- modelType = "AND PB.MODELTYPE = 5";
|
|
|
|
|
- }
|
|
|
|
|
- DataTable pTable = null;
|
|
|
|
|
- // 擦水
|
|
|
|
|
- if (context.Request["procedureidMaster"].ToString() == "5" ||
|
|
|
|
|
- context.Request["procedureidMaster"].ToString() == "29")
|
|
|
|
|
- {
|
|
|
|
|
- string sqlStr1 = @"
|
|
|
|
|
|
|
+ //主表
|
|
|
|
|
+ if (context.Request["m"].ToString() == "master")
|
|
|
|
|
+ {
|
|
|
|
|
+ //默认是本烧检验进行统计 19 R级重烧修补 36 Z级再修 要按重烧检验统计 xuwei add 2020-06-13
|
|
|
|
|
+ string checkProcedureId = "13";
|
|
|
|
|
+ string isRefire = "0";
|
|
|
|
|
+ if (context.Request["procedureidMaster"].ToString() == "19" ||
|
|
|
|
|
+ context.Request["procedureidMaster"].ToString() == "36")
|
|
|
|
|
+ {
|
|
|
|
|
+ checkProcedureId = "35";
|
|
|
|
|
+ isRefire = "6";
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ //确定modeltype 成型工序 需要附加条件 modeltype=5
|
|
|
|
|
+ string modelType = "";
|
|
|
|
|
+
|
|
|
|
|
+ if (context.Request["procedureidMaster"].ToString() == "2" ||
|
|
|
|
|
+ context.Request["procedureidMaster"].ToString() == "25")
|
|
|
|
|
+ {
|
|
|
|
|
+ modelType = "AND PB.MODELTYPE = 5";
|
|
|
|
|
+ }
|
|
|
|
|
+ DataTable pTable = null;
|
|
|
|
|
+ // 擦水
|
|
|
|
|
+ if (context.Request["procedureidMaster"].ToString() == "5" ||
|
|
|
|
|
+ context.Request["procedureidMaster"].ToString() == "29")
|
|
|
|
|
+ {
|
|
|
|
|
+ string sqlStr1 = @"
|
|
|
SELECT
|
|
SELECT
|
|
|
DEFECTNAME
|
|
DEFECTNAME
|
|
|
FROM
|
|
FROM
|
|
@@ -105,15 +141,15 @@ public class rpt : IHttpHandler, IReadOnlySessionState
|
|
|
ORDER BY
|
|
ORDER BY
|
|
|
displayno_imex_1
|
|
displayno_imex_1
|
|
|
";
|
|
";
|
|
|
- pTable = conn.ExecuteDatatable(
|
|
|
|
|
- sqlStr1,
|
|
|
|
|
- new CDAParameter("PROCEDUREID", context.Request["procedureidMaster"])
|
|
|
|
|
- );
|
|
|
|
|
- }
|
|
|
|
|
- else
|
|
|
|
|
- {
|
|
|
|
|
- //读取工序配置缺陷
|
|
|
|
|
- string sqlStr1 = @"
|
|
|
|
|
|
|
+ pTable = conn.ExecuteDatatable(
|
|
|
|
|
+ sqlStr1,
|
|
|
|
|
+ new CDAParameter("PROCEDUREID", context.Request["procedureidMaster"])
|
|
|
|
|
+ );
|
|
|
|
|
+ }
|
|
|
|
|
+ else
|
|
|
|
|
+ {
|
|
|
|
|
+ //读取工序配置缺陷
|
|
|
|
|
+ string sqlStr1 = @"
|
|
|
SELECT
|
|
SELECT
|
|
|
DEFECTNAME
|
|
DEFECTNAME
|
|
|
FROM
|
|
FROM
|
|
@@ -123,26 +159,26 @@ public class rpt : IHttpHandler, IReadOnlySessionState
|
|
|
ORDER BY
|
|
ORDER BY
|
|
|
DISPLAYNO
|
|
DISPLAYNO
|
|
|
";
|
|
";
|
|
|
- pTable = conn.ExecuteDatatable(
|
|
|
|
|
- sqlStr1,
|
|
|
|
|
- new CDAParameter("PROCEDUREID", context.Request["procedureidMaster"])
|
|
|
|
|
- );
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- string colStr = "";
|
|
|
|
|
- for (int i = 0; i < pTable.Rows.Count; i++)
|
|
|
|
|
- {
|
|
|
|
|
- //if (i > 0) colStr += ",";
|
|
|
|
|
- colStr += "'" + pTable.Rows[i]["DEFECTNAME"].ToString() + "' AS " + pTable.Rows[i]["DEFECTNAME"].ToString();
|
|
|
|
|
- colStr += ",";
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- //读取报表数据
|
|
|
|
|
- string sqlStr = @"
|
|
|
|
|
|
|
+ pTable = conn.ExecuteDatatable(
|
|
|
|
|
+ sqlStr1,
|
|
|
|
|
+ new CDAParameter("PROCEDUREID", context.Request["procedureidMaster"])
|
|
|
|
|
+ );
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ string colStr = "";
|
|
|
|
|
+ for (int i = 0; i < pTable.Rows.Count; i++)
|
|
|
|
|
+ {
|
|
|
|
|
+ //if (i > 0) colStr += ",";
|
|
|
|
|
+ colStr += "'" + pTable.Rows[i]["DEFECTNAME"].ToString() + "' AS " + pTable.Rows[i]["DEFECTNAME"].ToString();
|
|
|
|
|
+ colStr += ",";
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ //读取报表数据
|
|
|
|
|
+ string sqlStr = @"
|
|
|
SELECT
|
|
SELECT
|
|
|
PC.工号,
|
|
PC.工号,
|
|
|
PC.姓名,
|
|
PC.姓名,
|
|
|
- NVL(PC.产品型号,PD.产品型号) AS 产品型号,
|
|
|
|
|
|
|
+ NVL(PC.产品型号,PD.产品型号1) AS 产品型号,
|
|
|
PC.出窑数,
|
|
PC.出窑数,
|
|
|
PC.出窑数 - NVL( PD.合计, 0 ) AS 合格数,
|
|
PC.出窑数 - NVL( PD.合计, 0 ) AS 合格数,
|
|
|
--ROUND( (PC.出窑数 - NVL( PD.合计, 0 )) / DECODE( PC.出窑数, 0, 1, PC.出窑数 ), 4 ) * 100 AS 合格率,
|
|
--ROUND( (PC.出窑数 - NVL( PD.合计, 0 )) / DECODE( PC.出窑数, 0, 1, PC.出窑数 ), 4 ) * 100 AS 合格率,
|
|
@@ -156,9 +192,9 @@ public class rpt : IHttpHandler, IReadOnlySessionState
|
|
|
(
|
|
(
|
|
|
SELECT
|
|
SELECT
|
|
|
--GID,
|
|
--GID,
|
|
|
- DECODE( GID, 6, USERCODE || '合计', 7, USERCODE || '合计', USERCODE ) AS 工号,
|
|
|
|
|
- USERNAME AS 姓名,
|
|
|
|
|
- GOODSMODEL AS 产品型号,
|
|
|
|
|
|
|
+ DECODE( GID, 6, USERCODE || '合计', 7, USERCODE || '合计', USERCODE ) AS 工号1,
|
|
|
|
|
+ USERNAME AS 姓名1,
|
|
|
|
|
+ GOODSMODEL AS 产品型号1,
|
|
|
DECODE( GID, 1, '合计', 3, '合计', 7, '合计', DEFECT ) AS DEFECT,
|
|
DECODE( GID, 1, '合计', 3, '合计', 7, '合计', DEFECT ) AS DEFECT,
|
|
|
CNUM
|
|
CNUM
|
|
|
FROM
|
|
FROM
|
|
@@ -170,15 +206,15 @@ public class rpt : IHttpHandler, IReadOnlySessionState
|
|
|
GS.GOODSMODEL,
|
|
GS.GOODSMODEL,
|
|
|
D.DEFECTID,
|
|
D.DEFECTID,
|
|
|
M.DEFECTNAME AS DEFECT,";
|
|
M.DEFECTNAME AS DEFECT,";
|
|
|
- if (context.Request["procedureidMaster"].ToString() == "19")
|
|
|
|
|
- {
|
|
|
|
|
- sqlStr += @"COUNT( DISTINCT P.PRODUCTIONDATAID ) AS CNUM ";
|
|
|
|
|
- }
|
|
|
|
|
- else
|
|
|
|
|
- {
|
|
|
|
|
- sqlStr += @"COUNT( * ) AS CNUM ";
|
|
|
|
|
- }
|
|
|
|
|
- sqlStr += @"FROM
|
|
|
|
|
|
|
+ if (context.Request["procedureidMaster"].ToString() == "19")
|
|
|
|
|
+ {
|
|
|
|
|
+ sqlStr += @"COUNT( DISTINCT P.PRODUCTIONDATAID ) AS CNUM ";
|
|
|
|
|
+ }
|
|
|
|
|
+ else
|
|
|
|
|
+ {
|
|
|
|
|
+ sqlStr += @"COUNT( * ) AS CNUM ";
|
|
|
|
|
+ }
|
|
|
|
|
+ sqlStr += @"FROM
|
|
|
TP_PM_PRODUCTIONDATA P
|
|
TP_PM_PRODUCTIONDATA P
|
|
|
INNER JOIN TP_PC_GROUTINGLINE L ON P.GROUTINGLINEID = L.GROUTINGLINEID
|
|
INNER JOIN TP_PC_GROUTINGLINE L ON P.GROUTINGLINEID = L.GROUTINGLINEID
|
|
|
INNER JOIN TP_PM_GROUTINGDAILY G ON G.GROUTINGDAILYID = P.GROUTINGDAILYID
|
|
INNER JOIN TP_PM_GROUTINGDAILY G ON G.GROUTINGDAILYID = P.GROUTINGDAILYID
|
|
@@ -198,8 +234,8 @@ public class rpt : IHttpHandler, IReadOnlySessionState
|
|
|
AND P.CHECKTIME <= @DATEEND@
|
|
AND P.CHECKTIME <= @DATEEND@
|
|
|
AND P.ISREFIRE = @ISREFIRE@
|
|
AND P.ISREFIRE = @ISREFIRE@
|
|
|
AND (L.BUILDINGNO = @BUILDINGNO@ OR @BUILDINGNO@ IS NULL)
|
|
AND (L.BUILDINGNO = @BUILDINGNO@ OR @BUILDINGNO@ IS NULL)
|
|
|
- AND (D.DEFECTPROCEDUREID = @PROCEDUREID@ OR @PROCEDUREID@ IS NULL)
|
|
|
|
|
- AND GS.GOODSCODE IN({goodsCodes})
|
|
|
|
|
|
|
+ AND (D.DEFECTPROCEDUREID = @PROCEDUREID@ OR @PROCEDUREID@ IS NULL) " +
|
|
|
|
|
+ goodssql + @"
|
|
|
AND (U.USERCODE = @USERCODE@ OR @USERCODE@ IS NULL)
|
|
AND (U.USERCODE = @USERCODE@ OR @USERCODE@ IS NULL)
|
|
|
GROUP BY
|
|
GROUP BY
|
|
|
GROUPING SETS (
|
|
GROUPING SETS (
|
|
@@ -218,7 +254,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
|
|
|
SUM( CNUM ) FOR DEFECT IN ( {COLSTR} '合计' AS 合计 )
|
|
SUM( CNUM ) FOR DEFECT IN ( {COLSTR} '合计' AS 合计 )
|
|
|
)
|
|
)
|
|
|
ORDER BY
|
|
ORDER BY
|
|
|
- 工号, 产品型号
|
|
|
|
|
|
|
+ 工号1, 产品型号1
|
|
|
) PD
|
|
) PD
|
|
|
RIGHT JOIN (
|
|
RIGHT JOIN (
|
|
|
SELECT
|
|
SELECT
|
|
@@ -234,15 +270,15 @@ public class rpt : IHttpHandler, IReadOnlySessionState
|
|
|
U.USERCODE AS 工号,
|
|
U.USERCODE AS 工号,
|
|
|
U.USERNAME AS 姓名,
|
|
U.USERNAME AS 姓名,
|
|
|
GS.GOODSMODEL AS 产品型号,";
|
|
GS.GOODSMODEL AS 产品型号,";
|
|
|
- if (context.Request["procedureidMaster"].ToString() == "19")
|
|
|
|
|
- {
|
|
|
|
|
- sqlStr += @"COUNT( DISTINCT P.PRODUCTIONDATAID ) AS 出窑数 ";
|
|
|
|
|
- }
|
|
|
|
|
- else
|
|
|
|
|
- {
|
|
|
|
|
- sqlStr += @"COUNT( * ) AS 出窑数 ";
|
|
|
|
|
- }
|
|
|
|
|
- sqlStr += @"FROM
|
|
|
|
|
|
|
+ if (context.Request["procedureidMaster"].ToString() == "19")
|
|
|
|
|
+ {
|
|
|
|
|
+ sqlStr += @"COUNT( DISTINCT P.PRODUCTIONDATAID ) AS 出窑数 ";
|
|
|
|
|
+ }
|
|
|
|
|
+ else
|
|
|
|
|
+ {
|
|
|
|
|
+ sqlStr += @"COUNT( * ) AS 出窑数 ";
|
|
|
|
|
+ }
|
|
|
|
|
+ sqlStr += @"FROM
|
|
|
TP_PM_PRODUCTIONDATA P
|
|
TP_PM_PRODUCTIONDATA P
|
|
|
INNER JOIN TP_PC_GROUTINGLINE L ON P.GROUTINGLINEID = L.GROUTINGLINEID
|
|
INNER JOIN TP_PC_GROUTINGLINE L ON P.GROUTINGLINEID = L.GROUTINGLINEID
|
|
|
INNER JOIN TP_PM_GROUTINGDAILY G ON G.GROUTINGDAILYID = P.GROUTINGDAILYID
|
|
INNER JOIN TP_PM_GROUTINGDAILY G ON G.GROUTINGDAILYID = P.GROUTINGDAILYID
|
|
@@ -261,179 +297,179 @@ public class rpt : IHttpHandler, IReadOnlySessionState
|
|
|
AND (L.BUILDINGNO = @BUILDINGNO@ OR @BUILDINGNO@ IS NULL)
|
|
AND (L.BUILDINGNO = @BUILDINGNO@ OR @BUILDINGNO@ IS NULL)
|
|
|
AND ( @PROCEDUREID@ IS NULL OR PB.PROCEDUREID = @PROCEDUREID@ )
|
|
AND ( @PROCEDUREID@ IS NULL OR PB.PROCEDUREID = @PROCEDUREID@ )
|
|
|
--AND P.ISREFIRE = '0'
|
|
--AND P.ISREFIRE = '0'
|
|
|
- AND PB.VALUEFLAG='1'
|
|
|
|
|
- AND GS.GOODSCODE IN({goodsCodes})
|
|
|
|
|
|
|
+ AND PB.VALUEFLAG='1' " +
|
|
|
|
|
+ goodssql + @"
|
|
|
AND (U.USERCODE = @USERCODE@ OR @USERCODE@ IS NULL)
|
|
AND (U.USERCODE = @USERCODE@ OR @USERCODE@ IS NULL)
|
|
|
GROUP BY
|
|
GROUP BY
|
|
|
GROUPING SETS ( ( U.USERCODE, U.USERNAME, GS.GOODSMODEL ), ( U.USERCODE, U.USERNAME ),() )
|
|
GROUPING SETS ( ( U.USERCODE, U.USERNAME, GS.GOODSMODEL ), ( U.USERCODE, U.USERNAME ),() )
|
|
|
) T
|
|
) T
|
|
|
ORDER BY
|
|
ORDER BY
|
|
|
工号, 产品型号
|
|
工号, 产品型号
|
|
|
- ) PC ON ((PC.GID = 3 OR PC.GID = 1) AND PD.工号 = PC.工号 AND PD.产品型号 IS NULL ) OR ( PD.工号 = PC.工号 AND PD.产品型号 = PC.产品型号 )"
|
|
|
|
|
- ;
|
|
|
|
|
- sqlStr = sqlStr.Replace("{COLSTR}", colStr).Replace("{MODELTYPE}", modelType).Replace("{goodsCodes}", goodsStr);
|
|
|
|
|
-
|
|
|
|
|
- //获取查询条件
|
|
|
|
|
- List<CDAParameter> sqlPara = new List<CDAParameter>();
|
|
|
|
|
- //sqlPara.Add(new CDAParameter("ACCOUNTID", context.Session["accountId"].ToString()));
|
|
|
|
|
-
|
|
|
|
|
- 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("PROCEDUREID", context.Request["procedureidMaster"]));
|
|
|
|
|
- sqlPara.Add(new CDAParameter("BUILDINGNO", context.Request["buildingnoMaster"]));
|
|
|
|
|
- sqlPara.Add(new CDAParameter("USERCODE", context.Request["usercodeMaster"]));
|
|
|
|
|
- sqlPara.Add(new CDAParameter("CHECKPROCEDUREID", checkProcedureId));
|
|
|
|
|
- sqlPara.Add(new CDAParameter("ISREFIRE", isRefire));
|
|
|
|
|
-
|
|
|
|
|
- //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"] : "";
|
|
|
|
|
- //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());
|
|
|
|
|
- //string jsonStr = new JsonResult(dt) { total = total }.ToJson();
|
|
|
|
|
-
|
|
|
|
|
- //直接获取不分页数据
|
|
|
|
|
- DataTable dt = conn.ExecuteDatatable(sqlStr, sqlPara.ToArray());
|
|
|
|
|
-
|
|
|
|
|
- dt.Columns.Remove("工号1");
|
|
|
|
|
- dt.Columns.Remove("姓名1");
|
|
|
|
|
- dt.Columns.Remove("产品型号1");
|
|
|
|
|
-
|
|
|
|
|
- //一期循环线33 二期循环线16 特殊处理
|
|
|
|
|
- if (context.Request["procedureidMaster"].ToString() == "33" || context.Request["procedureidMaster"].ToString() == "16")
|
|
|
|
|
- {
|
|
|
|
|
- //拆分合格数
|
|
|
|
|
- dt.Columns["合格数"].ColumnName = "合格数_合计";
|
|
|
|
|
- dt.Columns.Add(new DataColumn("合格数_擦水", typeof(Int32)));
|
|
|
|
|
- dt.Columns["合格数_擦水"].SetOrdinal(4);
|
|
|
|
|
- dt.Columns.Add(new DataColumn("合格数_喷釉", typeof(Int32)));
|
|
|
|
|
- dt.Columns["合格数_喷釉"].SetOrdinal(5);
|
|
|
|
|
-
|
|
|
|
|
- //拆分缺陷率
|
|
|
|
|
- dt.Columns["缺陷率"].ColumnName = "缺陷率_合计";
|
|
|
|
|
- dt.Columns.Add(new DataColumn("缺陷率_擦水", typeof(string)));
|
|
|
|
|
- dt.Columns["缺陷率_擦水"].SetOrdinal(7);
|
|
|
|
|
- dt.Columns.Add(new DataColumn("缺陷率_喷釉", typeof(string)));
|
|
|
|
|
- dt.Columns["缺陷率_喷釉"].SetOrdinal(8);
|
|
|
|
|
-
|
|
|
|
|
- //合并 擦水
|
|
|
|
|
- dt.Columns["棕眼"].ColumnName = "擦水_棕眼";
|
|
|
|
|
- dt.Columns["糙活"].ColumnName = "擦水_糙活";
|
|
|
|
|
- dt.Columns["成脏"].ColumnName = "擦水_成脏";
|
|
|
|
|
-
|
|
|
|
|
- //插入 擦水与喷釉重复列
|
|
|
|
|
- dt.Columns.Add(new DataColumn("擦水_爆釉", typeof(Int32)));
|
|
|
|
|
- dt.Columns["擦水_爆釉"].SetOrdinal(13);
|
|
|
|
|
- dt.Columns.Add(new DataColumn("擦水_脱釉", typeof(Int32)));
|
|
|
|
|
- dt.Columns["擦水_脱釉"].SetOrdinal(14);
|
|
|
|
|
- dt.Columns.Add(new DataColumn("擦水_釉磕", typeof(Int32)));
|
|
|
|
|
- dt.Columns["擦水_釉磕"].SetOrdinal(15);
|
|
|
|
|
- dt.Columns.Add(new DataColumn("擦水_釉脏", typeof(Int32)));
|
|
|
|
|
- dt.Columns["擦水_釉脏"].SetOrdinal(16);
|
|
|
|
|
-
|
|
|
|
|
- dt.Columns.Add(new DataColumn("擦水_合计", typeof(Int32)));
|
|
|
|
|
- dt.Columns["擦水_合计"].SetOrdinal(17);
|
|
|
|
|
-
|
|
|
|
|
- //合并 喷釉
|
|
|
|
|
- dt.Columns["爆釉"].ColumnName = "喷釉_爆釉";
|
|
|
|
|
- dt.Columns["脱釉"].ColumnName = "喷釉_脱釉";
|
|
|
|
|
- dt.Columns["釉磕"].ColumnName = "喷釉_釉磕";
|
|
|
|
|
- dt.Columns["釉粘"].ColumnName = "喷釉_釉粘";
|
|
|
|
|
- dt.Columns["釉薄"].ColumnName = "喷釉_釉薄";
|
|
|
|
|
- dt.Columns["波纹"].ColumnName = "喷釉_波纹";
|
|
|
|
|
- dt.Columns["釉脏"].ColumnName = "喷釉_釉脏";
|
|
|
|
|
- dt.Columns["标不良"].ColumnName = "喷釉_标不良";
|
|
|
|
|
- dt.Columns["釉绺"].ColumnName = "喷釉_釉绺";
|
|
|
|
|
- dt.Columns["釉泡"].ColumnName = "喷釉_釉泡";
|
|
|
|
|
- dt.Columns["氯化镁"].ColumnName = "喷釉_氯化镁";
|
|
|
|
|
- dt.Columns["灌釉不良"].ColumnName = "喷釉_灌釉不良";
|
|
|
|
|
- dt.Columns.Add(new DataColumn("喷釉_合计", typeof(Int32)));
|
|
|
|
|
- dt.Columns["喷釉_合计"].SetOrdinal(30);
|
|
|
|
|
-
|
|
|
|
|
- //重新计算合计
|
|
|
|
|
- for (int i = 0; i < dt.Rows.Count; i++)
|
|
|
|
|
- {
|
|
|
|
|
- //擦水重复列赋值
|
|
|
|
|
- dt.Rows[i]["擦水_爆釉"] = dt.Rows[i]["喷釉_爆釉"];
|
|
|
|
|
- dt.Rows[i]["擦水_脱釉"] = dt.Rows[i]["喷釉_脱釉"];
|
|
|
|
|
- dt.Rows[i]["擦水_釉磕"] = dt.Rows[i]["喷釉_釉磕"];
|
|
|
|
|
- dt.Rows[i]["擦水_釉脏"] = dt.Rows[i]["喷釉_釉脏"];
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- dt.Rows[i]["擦水_合计"] =
|
|
|
|
|
- toNumber(dt.Rows[i]["擦水_棕眼"])
|
|
|
|
|
- + toNumber(dt.Rows[i]["擦水_糙活"])
|
|
|
|
|
- + toNumber(dt.Rows[i]["擦水_成脏"])
|
|
|
|
|
- + toNumber(dt.Rows[i]["擦水_爆釉"])
|
|
|
|
|
- + toNumber(dt.Rows[i]["擦水_脱釉"])
|
|
|
|
|
- + toNumber(dt.Rows[i]["擦水_釉磕"])
|
|
|
|
|
- + toNumber(dt.Rows[i]["擦水_釉脏"]);
|
|
|
|
|
-
|
|
|
|
|
- dt.Rows[i]["喷釉_合计"] =
|
|
|
|
|
- toNumber(dt.Rows[i]["喷釉_爆釉"])
|
|
|
|
|
- + toNumber(dt.Rows[i]["喷釉_脱釉"])
|
|
|
|
|
- + toNumber(dt.Rows[i]["喷釉_釉磕"])
|
|
|
|
|
- + toNumber(dt.Rows[i]["喷釉_釉粘"])
|
|
|
|
|
- + toNumber(dt.Rows[i]["喷釉_釉薄"])
|
|
|
|
|
- + toNumber(dt.Rows[i]["喷釉_波纹"])
|
|
|
|
|
- + toNumber(dt.Rows[i]["喷釉_釉脏"])
|
|
|
|
|
- + toNumber(dt.Rows[i]["喷釉_标不良"])
|
|
|
|
|
- + toNumber(dt.Rows[i]["喷釉_釉绺"])
|
|
|
|
|
- + toNumber(dt.Rows[i]["喷釉_釉泡"])
|
|
|
|
|
- + toNumber(dt.Rows[i]["喷釉_氯化镁"])
|
|
|
|
|
- + toNumber(dt.Rows[i]["喷釉_灌釉不良"]);
|
|
|
|
|
- dt.Rows[i]["合格数_擦水"] = toNumber(dt.Rows[i]["出窑数"]) - toNumber(dt.Rows[i]["擦水_合计"]);
|
|
|
|
|
- dt.Rows[i]["合格数_喷釉"] = toNumber(dt.Rows[i]["出窑数"]) - toNumber(dt.Rows[i]["喷釉_合计"]);
|
|
|
|
|
- dt.Rows[i]["缺陷率_擦水"] = Convert.ToString(Math.Round(100 - (toNumber(dt.Rows[i]["合格数_擦水"]) / toNumber(dt.Rows[i]["出窑数"])) * 100, 2)) + "%";
|
|
|
|
|
- dt.Rows[i]["缺陷率_喷釉"] = Convert.ToString(Math.Round(100 - (toNumber(dt.Rows[i]["合格数_喷釉"]) / toNumber(dt.Rows[i]["出窑数"])) * 100, 2)) + "%";
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- string jsonStr = new JsonResult(dt) { total = dt.Rows.Count }.ToJson();
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- context.Response.Write(jsonStr);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- //子表
|
|
|
|
|
- if (context.Request["m"].ToString() == "detail")
|
|
|
|
|
- {
|
|
|
|
|
- //读取报表数据
|
|
|
|
|
- string sqlStr = @"
|
|
|
|
|
|
|
+ ) PC ON ((PC.GID = 3 OR PC.GID = 1) AND PD.工号1 = PC.工号 AND PD.产品型号1 IS NULL ) OR ( PD.工号1 = PC.工号 AND PD.产品型号1 = PC.产品型号 )"
|
|
|
|
|
+ ;
|
|
|
|
|
+ sqlStr = sqlStr.Replace("{COLSTR}", colStr).Replace("{MODELTYPE}", modelType);//.Replace("{goodsCodes}", goodssql);
|
|
|
|
|
+
|
|
|
|
|
+ //获取查询条件
|
|
|
|
|
+ List<CDAParameter> sqlPara = new List<CDAParameter>();
|
|
|
|
|
+ //sqlPara.Add(new CDAParameter("ACCOUNTID", context.Session["accountId"].ToString()));
|
|
|
|
|
+
|
|
|
|
|
+ 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("PROCEDUREID", context.Request["procedureidMaster"]));
|
|
|
|
|
+ sqlPara.Add(new CDAParameter("BUILDINGNO", context.Request["buildingnoMaster"]));
|
|
|
|
|
+ sqlPara.Add(new CDAParameter("USERCODE", context.Request["usercodeMaster"]));
|
|
|
|
|
+ sqlPara.Add(new CDAParameter("CHECKPROCEDUREID", checkProcedureId));
|
|
|
|
|
+ sqlPara.Add(new CDAParameter("ISREFIRE", isRefire));
|
|
|
|
|
+
|
|
|
|
|
+ //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"] : "";
|
|
|
|
|
+ //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());
|
|
|
|
|
+ //string jsonStr = new JsonResult(dt) { total = total }.ToJson();
|
|
|
|
|
+
|
|
|
|
|
+ //直接获取不分页数据
|
|
|
|
|
+ DataTable dt = conn.ExecuteDatatable(sqlStr, sqlPara.ToArray());
|
|
|
|
|
+
|
|
|
|
|
+ dt.Columns.Remove("工号1");
|
|
|
|
|
+ dt.Columns.Remove("姓名1");
|
|
|
|
|
+ dt.Columns.Remove("产品型号1");
|
|
|
|
|
+
|
|
|
|
|
+ //一期循环线33 二期循环线16 特殊处理
|
|
|
|
|
+ if (context.Request["procedureidMaster"].ToString() == "33" || context.Request["procedureidMaster"].ToString() == "16")
|
|
|
|
|
+ {
|
|
|
|
|
+ //拆分合格数
|
|
|
|
|
+ dt.Columns["合格数"].ColumnName = "合格数_合计";
|
|
|
|
|
+ dt.Columns.Add(new DataColumn("合格数_擦水", typeof(Int32)));
|
|
|
|
|
+ dt.Columns["合格数_擦水"].SetOrdinal(4);
|
|
|
|
|
+ dt.Columns.Add(new DataColumn("合格数_喷釉", typeof(Int32)));
|
|
|
|
|
+ dt.Columns["合格数_喷釉"].SetOrdinal(5);
|
|
|
|
|
+
|
|
|
|
|
+ //拆分缺陷率
|
|
|
|
|
+ dt.Columns["缺陷率"].ColumnName = "缺陷率_合计";
|
|
|
|
|
+ dt.Columns.Add(new DataColumn("缺陷率_擦水", typeof(string)));
|
|
|
|
|
+ dt.Columns["缺陷率_擦水"].SetOrdinal(7);
|
|
|
|
|
+ dt.Columns.Add(new DataColumn("缺陷率_喷釉", typeof(string)));
|
|
|
|
|
+ dt.Columns["缺陷率_喷釉"].SetOrdinal(8);
|
|
|
|
|
+
|
|
|
|
|
+ //合并 擦水
|
|
|
|
|
+ dt.Columns["棕眼"].ColumnName = "擦水_棕眼";
|
|
|
|
|
+ dt.Columns["糙活"].ColumnName = "擦水_糙活";
|
|
|
|
|
+ dt.Columns["成脏"].ColumnName = "擦水_成脏";
|
|
|
|
|
+
|
|
|
|
|
+ //插入 擦水与喷釉重复列
|
|
|
|
|
+ dt.Columns.Add(new DataColumn("擦水_爆釉", typeof(Int32)));
|
|
|
|
|
+ dt.Columns["擦水_爆釉"].SetOrdinal(13);
|
|
|
|
|
+ dt.Columns.Add(new DataColumn("擦水_脱釉", typeof(Int32)));
|
|
|
|
|
+ dt.Columns["擦水_脱釉"].SetOrdinal(14);
|
|
|
|
|
+ dt.Columns.Add(new DataColumn("擦水_釉磕", typeof(Int32)));
|
|
|
|
|
+ dt.Columns["擦水_釉磕"].SetOrdinal(15);
|
|
|
|
|
+ dt.Columns.Add(new DataColumn("擦水_釉脏", typeof(Int32)));
|
|
|
|
|
+ dt.Columns["擦水_釉脏"].SetOrdinal(16);
|
|
|
|
|
+
|
|
|
|
|
+ dt.Columns.Add(new DataColumn("擦水_合计", typeof(Int32)));
|
|
|
|
|
+ dt.Columns["擦水_合计"].SetOrdinal(17);
|
|
|
|
|
+
|
|
|
|
|
+ //合并 喷釉
|
|
|
|
|
+ dt.Columns["爆釉"].ColumnName = "喷釉_爆釉";
|
|
|
|
|
+ dt.Columns["脱釉"].ColumnName = "喷釉_脱釉";
|
|
|
|
|
+ dt.Columns["釉磕"].ColumnName = "喷釉_釉磕";
|
|
|
|
|
+ dt.Columns["釉粘"].ColumnName = "喷釉_釉粘";
|
|
|
|
|
+ dt.Columns["釉薄"].ColumnName = "喷釉_釉薄";
|
|
|
|
|
+ dt.Columns["波纹"].ColumnName = "喷釉_波纹";
|
|
|
|
|
+ dt.Columns["釉脏"].ColumnName = "喷釉_釉脏";
|
|
|
|
|
+ dt.Columns["标不良"].ColumnName = "喷釉_标不良";
|
|
|
|
|
+ dt.Columns["釉绺"].ColumnName = "喷釉_釉绺";
|
|
|
|
|
+ dt.Columns["釉泡"].ColumnName = "喷釉_釉泡";
|
|
|
|
|
+ dt.Columns["氯化镁"].ColumnName = "喷釉_氯化镁";
|
|
|
|
|
+ dt.Columns["灌釉不良"].ColumnName = "喷釉_灌釉不良";
|
|
|
|
|
+ dt.Columns.Add(new DataColumn("喷釉_合计", typeof(Int32)));
|
|
|
|
|
+ dt.Columns["喷釉_合计"].SetOrdinal(30);
|
|
|
|
|
+
|
|
|
|
|
+ //重新计算合计
|
|
|
|
|
+ for (int i = 0; i < dt.Rows.Count; i++)
|
|
|
|
|
+ {
|
|
|
|
|
+ //擦水重复列赋值
|
|
|
|
|
+ dt.Rows[i]["擦水_爆釉"] = dt.Rows[i]["喷釉_爆釉"];
|
|
|
|
|
+ dt.Rows[i]["擦水_脱釉"] = dt.Rows[i]["喷釉_脱釉"];
|
|
|
|
|
+ dt.Rows[i]["擦水_釉磕"] = dt.Rows[i]["喷釉_釉磕"];
|
|
|
|
|
+ dt.Rows[i]["擦水_釉脏"] = dt.Rows[i]["喷釉_釉脏"];
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ dt.Rows[i]["擦水_合计"] =
|
|
|
|
|
+ toNumber(dt.Rows[i]["擦水_棕眼"])
|
|
|
|
|
+ + toNumber(dt.Rows[i]["擦水_糙活"])
|
|
|
|
|
+ + toNumber(dt.Rows[i]["擦水_成脏"])
|
|
|
|
|
+ + toNumber(dt.Rows[i]["擦水_爆釉"])
|
|
|
|
|
+ + toNumber(dt.Rows[i]["擦水_脱釉"])
|
|
|
|
|
+ + toNumber(dt.Rows[i]["擦水_釉磕"])
|
|
|
|
|
+ + toNumber(dt.Rows[i]["擦水_釉脏"]);
|
|
|
|
|
+
|
|
|
|
|
+ dt.Rows[i]["喷釉_合计"] =
|
|
|
|
|
+ toNumber(dt.Rows[i]["喷釉_爆釉"])
|
|
|
|
|
+ + toNumber(dt.Rows[i]["喷釉_脱釉"])
|
|
|
|
|
+ + toNumber(dt.Rows[i]["喷釉_釉磕"])
|
|
|
|
|
+ + toNumber(dt.Rows[i]["喷釉_釉粘"])
|
|
|
|
|
+ + toNumber(dt.Rows[i]["喷釉_釉薄"])
|
|
|
|
|
+ + toNumber(dt.Rows[i]["喷釉_波纹"])
|
|
|
|
|
+ + toNumber(dt.Rows[i]["喷釉_釉脏"])
|
|
|
|
|
+ + toNumber(dt.Rows[i]["喷釉_标不良"])
|
|
|
|
|
+ + toNumber(dt.Rows[i]["喷釉_釉绺"])
|
|
|
|
|
+ + toNumber(dt.Rows[i]["喷釉_釉泡"])
|
|
|
|
|
+ + toNumber(dt.Rows[i]["喷釉_氯化镁"])
|
|
|
|
|
+ + toNumber(dt.Rows[i]["喷釉_灌釉不良"]);
|
|
|
|
|
+ dt.Rows[i]["合格数_擦水"] = toNumber(dt.Rows[i]["出窑数"]) - toNumber(dt.Rows[i]["擦水_合计"]);
|
|
|
|
|
+ dt.Rows[i]["合格数_喷釉"] = toNumber(dt.Rows[i]["出窑数"]) - toNumber(dt.Rows[i]["喷釉_合计"]);
|
|
|
|
|
+ dt.Rows[i]["缺陷率_擦水"] = Convert.ToString(Math.Round(100 - (toNumber(dt.Rows[i]["合格数_擦水"]) / toNumber(dt.Rows[i]["出窑数"])) * 100, 2)) + "%";
|
|
|
|
|
+ dt.Rows[i]["缺陷率_喷釉"] = Convert.ToString(Math.Round(100 - (toNumber(dt.Rows[i]["合格数_喷釉"]) / toNumber(dt.Rows[i]["出窑数"])) * 100, 2)) + "%";
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ string jsonStr = new JsonResult(dt) { total = dt.Rows.Count }.ToJson();
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ context.Response.Write(jsonStr);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ //子表
|
|
|
|
|
+ if (context.Request["m"].ToString() == "detail")
|
|
|
|
|
+ {
|
|
|
|
|
+ //读取报表数据
|
|
|
|
|
+ string sqlStr = @"
|
|
|
|
|
|
|
|
";
|
|
";
|
|
|
|
|
|
|
|
- //获取查询条件
|
|
|
|
|
- List<CDAParameter> sqlPara = new List<CDAParameter>();
|
|
|
|
|
|
|
+ //获取查询条件
|
|
|
|
|
+ List<CDAParameter> sqlPara = new List<CDAParameter>();
|
|
|
|
|
|
|
|
- //获取分页参数
|
|
|
|
|
- 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 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());
|
|
|
|
|
- string jsonStr = new JsonResult(dt) { total = total }.ToJson();
|
|
|
|
|
|
|
+ //获取分页数据
|
|
|
|
|
+ int total = 0;
|
|
|
|
|
+ DataTable dt = conn.SelectPages(page, rows, out total, sqlStr, sqlPara.ToArray());
|
|
|
|
|
+ string jsonStr = new JsonResult(dt) { total = total }.ToJson();
|
|
|
|
|
|
|
|
- context.Response.Write(jsonStr);
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ context.Response.Write(jsonStr);
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- if (context.Request["m"].ToString() == "jiezhauang")
|
|
|
|
|
- {
|
|
|
|
|
- //读取报表数据
|
|
|
|
|
- string sqlStr = @"
|
|
|
|
|
|
|
+ if (context.Request["m"].ToString() == "jiezhauang")
|
|
|
|
|
+ {
|
|
|
|
|
+ //读取报表数据
|
|
|
|
|
+ string sqlStr = @"
|
|
|
SELECT
|
|
SELECT
|
|
|
DECODE(USERNAME_FRONT, NULL, '合计',USERCODE_FRONT) AS 工号,
|
|
DECODE(USERNAME_FRONT, NULL, '合计',USERCODE_FRONT) AS 工号,
|
|
|
USERNAME_FRONT AS 姓名,
|
|
USERNAME_FRONT AS 姓名,
|
|
@@ -527,26 +563,26 @@ public class rpt : IHttpHandler, IReadOnlySessionState
|
|
|
grouping sets ( ( USERCODE_FRONT, USERNAME_FRONT, GOODSCODE_FRONT, GOODSCODE_BEHIND ), ( USERCODE_FRONT, USERNAME_FRONT ),() )
|
|
grouping sets ( ( USERCODE_FRONT, USERNAME_FRONT, GOODSCODE_FRONT, GOODSCODE_BEHIND ), ( USERCODE_FRONT, USERNAME_FRONT ),() )
|
|
|
";
|
|
";
|
|
|
|
|
|
|
|
- //获取查询条件
|
|
|
|
|
- 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("PROCEDUREID", Convert.ToInt32(context.Request["procedureidMaster"])));
|
|
|
|
|
- sqlPara.Add(new CDAParameter("BUILDINGNO", context.Request["buildingnoMaster"]));
|
|
|
|
|
- sqlPara.Add(new CDAParameter("GOODSMODEL", context.Request["goodsmodelMaster"]));
|
|
|
|
|
- sqlPara.Add(new CDAParameter("USERCODE", context.Request["usercodeMaster"]));
|
|
|
|
|
- //获取分页参数
|
|
|
|
|
- //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.ExecuteDatatable(sqlStr, sqlPara.ToArray());
|
|
|
|
|
-
|
|
|
|
|
- #region 根据工序查询列结构
|
|
|
|
|
- sqlStr = @"SELECT DISTINCT
|
|
|
|
|
|
|
+ //获取查询条件
|
|
|
|
|
+ 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("PROCEDUREID", Convert.ToInt32(context.Request["procedureidMaster"])));
|
|
|
|
|
+ sqlPara.Add(new CDAParameter("BUILDINGNO", context.Request["buildingnoMaster"]));
|
|
|
|
|
+ sqlPara.Add(new CDAParameter("GOODSMODEL", context.Request["goodsmodelMaster"]));
|
|
|
|
|
+ sqlPara.Add(new CDAParameter("USERCODE", context.Request["usercodeMaster"]));
|
|
|
|
|
+ //获取分页参数
|
|
|
|
|
+ //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.ExecuteDatatable(sqlStr, sqlPara.ToArray());
|
|
|
|
|
+
|
|
|
|
|
+ #region 根据工序查询列结构
|
|
|
|
|
+ sqlStr = @"SELECT DISTINCT
|
|
|
b.DEFECTNAME
|
|
b.DEFECTNAME
|
|
|
FROM
|
|
FROM
|
|
|
TP_PC_DEFECTPROCEDUREJOBS a
|
|
TP_PC_DEFECTPROCEDUREJOBS a
|
|
@@ -554,143 +590,143 @@ public class rpt : IHttpHandler, IReadOnlySessionState
|
|
|
WHERE
|
|
WHERE
|
|
|
a.PROCEDUREID = @PROCEDUREID@
|
|
a.PROCEDUREID = @PROCEDUREID@
|
|
|
AND b.VALUEFLAG = 1";
|
|
AND b.VALUEFLAG = 1";
|
|
|
- DataTable dt1 = conn.ExecuteDatatable(sqlStr, sqlPara.ToArray());
|
|
|
|
|
- #endregion
|
|
|
|
|
-
|
|
|
|
|
- DataTable dt3 = new DataTable();
|
|
|
|
|
- dt3.Columns.Add("工号");
|
|
|
|
|
- dt3.Columns.Add("姓名");
|
|
|
|
|
- dt3.Columns.Add("产品型号");
|
|
|
|
|
- dt3.Columns.Add("出窑数");
|
|
|
|
|
- dt3.Columns.Add("合格数");
|
|
|
|
|
- dt3.Columns.Add("缺陷率");
|
|
|
|
|
- dt3.Columns.Add("合计");
|
|
|
|
|
- for (int i = 0; i < dt1.Rows.Count; i++)
|
|
|
|
|
- {
|
|
|
|
|
- dt3.Columns.Add(dt1.Rows[i]["DEFECTNAME"].ToString());
|
|
|
|
|
- }
|
|
|
|
|
- DataTable dtcopy = dt.Clone();
|
|
|
|
|
- for (int i = 0; i < dtcopy.Columns.Count; i++)
|
|
|
|
|
- {
|
|
|
|
|
- if (!dt3.Columns.Contains(dtcopy.Columns[i].ColumnName))
|
|
|
|
|
- {
|
|
|
|
|
- dt.Columns.Remove(dtcopy.Columns[i].ToString());
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- if (context.Request["procedureidMaster"].ToString() == "33" || context.Request["procedureidMaster"].ToString() == "16")
|
|
|
|
|
- {
|
|
|
|
|
- //拆分合格数
|
|
|
|
|
- dt.Columns["合格数"].ColumnName = "合格数_合计";
|
|
|
|
|
- dt.Columns.Add(new DataColumn("合格数_擦水", typeof(Int32)));
|
|
|
|
|
- dt.Columns["合格数_擦水"].SetOrdinal(4);
|
|
|
|
|
- dt.Columns.Add(new DataColumn("合格数_喷釉", typeof(Int32)));
|
|
|
|
|
- dt.Columns["合格数_喷釉"].SetOrdinal(5);
|
|
|
|
|
-
|
|
|
|
|
- //拆分缺陷率
|
|
|
|
|
- dt.Columns["缺陷率"].ColumnName = "缺陷率_合计";
|
|
|
|
|
- dt.Columns.Add(new DataColumn("缺陷率_擦水", typeof(string)));
|
|
|
|
|
- dt.Columns["缺陷率_擦水"].SetOrdinal(7);
|
|
|
|
|
- dt.Columns.Add(new DataColumn("缺陷率_喷釉", typeof(string)));
|
|
|
|
|
- dt.Columns["缺陷率_喷釉"].SetOrdinal(8);
|
|
|
|
|
-
|
|
|
|
|
- //合并 擦水
|
|
|
|
|
- dt.Columns["棕眼"].ColumnName = "擦水_棕眼";
|
|
|
|
|
- dt.Columns["糙活"].ColumnName = "擦水_糙活";
|
|
|
|
|
- dt.Columns["成脏"].ColumnName = "擦水_成脏";
|
|
|
|
|
-
|
|
|
|
|
- //插入 擦水与喷釉重复列
|
|
|
|
|
- dt.Columns.Add(new DataColumn("擦水_爆釉", typeof(Int32)));
|
|
|
|
|
- dt.Columns["擦水_爆釉"].SetOrdinal(13);
|
|
|
|
|
- dt.Columns.Add(new DataColumn("擦水_脱釉", typeof(Int32)));
|
|
|
|
|
- dt.Columns["擦水_脱釉"].SetOrdinal(14);
|
|
|
|
|
- dt.Columns.Add(new DataColumn("擦水_釉磕", typeof(Int32)));
|
|
|
|
|
- dt.Columns["擦水_釉磕"].SetOrdinal(15);
|
|
|
|
|
- dt.Columns.Add(new DataColumn("擦水_釉脏", typeof(Int32)));
|
|
|
|
|
- dt.Columns["擦水_釉脏"].SetOrdinal(16);
|
|
|
|
|
-
|
|
|
|
|
- dt.Columns.Add(new DataColumn("擦水_合计", typeof(Int32)));
|
|
|
|
|
- dt.Columns["擦水_合计"].SetOrdinal(17);
|
|
|
|
|
-
|
|
|
|
|
- //合并 喷釉
|
|
|
|
|
- dt.Columns["爆釉"].ColumnName = "喷釉_爆釉";
|
|
|
|
|
- dt.Columns["脱釉"].ColumnName = "喷釉_脱釉";
|
|
|
|
|
- dt.Columns["釉磕"].ColumnName = "喷釉_釉磕";
|
|
|
|
|
- dt.Columns["釉粘"].ColumnName = "喷釉_釉粘";
|
|
|
|
|
- dt.Columns["釉薄"].ColumnName = "喷釉_釉薄";
|
|
|
|
|
- dt.Columns["波纹"].ColumnName = "喷釉_波纹";
|
|
|
|
|
- dt.Columns["釉脏"].ColumnName = "喷釉_釉脏";
|
|
|
|
|
- dt.Columns["标不良"].ColumnName = "喷釉_标不良";
|
|
|
|
|
- dt.Columns["釉绺"].ColumnName = "喷釉_釉绺";
|
|
|
|
|
- dt.Columns["釉泡"].ColumnName = "喷釉_釉泡";
|
|
|
|
|
- dt.Columns["氯化镁"].ColumnName = "喷釉_氯化镁";
|
|
|
|
|
- dt.Columns["灌釉不良"].ColumnName = "喷釉_灌釉不良";
|
|
|
|
|
- dt.Columns.Add(new DataColumn("喷釉_合计", typeof(Int32)));
|
|
|
|
|
- dt.Columns["喷釉_合计"].SetOrdinal(30);
|
|
|
|
|
-
|
|
|
|
|
- //重新计算合计
|
|
|
|
|
- for (int i = 0; i < dt.Rows.Count; i++)
|
|
|
|
|
- {
|
|
|
|
|
- //擦水重复列赋值
|
|
|
|
|
- dt.Rows[i]["擦水_爆釉"] = dt.Rows[i]["喷釉_爆釉"];
|
|
|
|
|
- dt.Rows[i]["擦水_脱釉"] = dt.Rows[i]["喷釉_脱釉"];
|
|
|
|
|
- dt.Rows[i]["擦水_釉磕"] = dt.Rows[i]["喷釉_釉磕"];
|
|
|
|
|
- dt.Rows[i]["擦水_釉脏"] = dt.Rows[i]["喷釉_釉脏"];
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- dt.Rows[i]["擦水_合计"] =
|
|
|
|
|
- toNumber(dt.Rows[i]["擦水_棕眼"])
|
|
|
|
|
- + toNumber(dt.Rows[i]["擦水_糙活"])
|
|
|
|
|
- + toNumber(dt.Rows[i]["擦水_成脏"])
|
|
|
|
|
- + toNumber(dt.Rows[i]["擦水_爆釉"])
|
|
|
|
|
- + toNumber(dt.Rows[i]["擦水_脱釉"])
|
|
|
|
|
- + toNumber(dt.Rows[i]["擦水_釉磕"])
|
|
|
|
|
- + toNumber(dt.Rows[i]["擦水_釉脏"]);
|
|
|
|
|
-
|
|
|
|
|
- dt.Rows[i]["喷釉_合计"] =
|
|
|
|
|
- toNumber(dt.Rows[i]["喷釉_爆釉"])
|
|
|
|
|
- + toNumber(dt.Rows[i]["喷釉_脱釉"])
|
|
|
|
|
- + toNumber(dt.Rows[i]["喷釉_釉磕"])
|
|
|
|
|
- + toNumber(dt.Rows[i]["喷釉_釉粘"])
|
|
|
|
|
- + toNumber(dt.Rows[i]["喷釉_釉薄"])
|
|
|
|
|
- + toNumber(dt.Rows[i]["喷釉_波纹"])
|
|
|
|
|
- + toNumber(dt.Rows[i]["喷釉_釉脏"])
|
|
|
|
|
- + toNumber(dt.Rows[i]["喷釉_标不良"])
|
|
|
|
|
- + toNumber(dt.Rows[i]["喷釉_釉绺"])
|
|
|
|
|
- + toNumber(dt.Rows[i]["喷釉_釉泡"])
|
|
|
|
|
- + toNumber(dt.Rows[i]["喷釉_氯化镁"])
|
|
|
|
|
- + toNumber(dt.Rows[i]["喷釉_灌釉不良"]);
|
|
|
|
|
- dt.Rows[i]["合格数_擦水"] = toNumber(dt.Rows[i]["出窑数"]) - toNumber(dt.Rows[i]["擦水_合计"]);
|
|
|
|
|
- dt.Rows[i]["合格数_喷釉"] = toNumber(dt.Rows[i]["出窑数"]) - toNumber(dt.Rows[i]["喷釉_合计"]);
|
|
|
|
|
- dt.Rows[i]["缺陷率_擦水"] = Convert.ToString(Math.Round(100 - (toNumber(dt.Rows[i]["合格数_擦水"]) / toNumber(dt.Rows[i]["出窑数"])) * 100, 2)) + "%";
|
|
|
|
|
- dt.Rows[i]["缺陷率_喷釉"] = Convert.ToString(Math.Round(100 - (toNumber(dt.Rows[i]["合格数_喷釉"]) / toNumber(dt.Rows[i]["出窑数"])) * 100, 2)) + "%";
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- string jsonStr = new JsonResult(dt) { total = dt.Rows.Count }.ToJson();
|
|
|
|
|
-
|
|
|
|
|
- context.Response.Write(jsonStr);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- public decimal toNumber(object o)
|
|
|
|
|
- {
|
|
|
|
|
- if (o != DBNull.Value)
|
|
|
|
|
- return Convert.ToDecimal(o);
|
|
|
|
|
- else
|
|
|
|
|
- return 0;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- public bool IsReusable
|
|
|
|
|
- {
|
|
|
|
|
- get
|
|
|
|
|
- {
|
|
|
|
|
- return false;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ DataTable dt1 = conn.ExecuteDatatable(sqlStr, sqlPara.ToArray());
|
|
|
|
|
+ #endregion
|
|
|
|
|
+
|
|
|
|
|
+ DataTable dt3 = new DataTable();
|
|
|
|
|
+ dt3.Columns.Add("工号");
|
|
|
|
|
+ dt3.Columns.Add("姓名");
|
|
|
|
|
+ dt3.Columns.Add("产品型号");
|
|
|
|
|
+ dt3.Columns.Add("出窑数");
|
|
|
|
|
+ dt3.Columns.Add("合格数");
|
|
|
|
|
+ dt3.Columns.Add("缺陷率");
|
|
|
|
|
+ dt3.Columns.Add("合计");
|
|
|
|
|
+ for (int i = 0; i < dt1.Rows.Count; i++)
|
|
|
|
|
+ {
|
|
|
|
|
+ dt3.Columns.Add(dt1.Rows[i]["DEFECTNAME"].ToString());
|
|
|
|
|
+ }
|
|
|
|
|
+ DataTable dtcopy = dt.Clone();
|
|
|
|
|
+ for (int i = 0; i < dtcopy.Columns.Count; i++)
|
|
|
|
|
+ {
|
|
|
|
|
+ if (!dt3.Columns.Contains(dtcopy.Columns[i].ColumnName))
|
|
|
|
|
+ {
|
|
|
|
|
+ dt.Columns.Remove(dtcopy.Columns[i].ToString());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ if (context.Request["procedureidMaster"].ToString() == "33" || context.Request["procedureidMaster"].ToString() == "16")
|
|
|
|
|
+ {
|
|
|
|
|
+ //拆分合格数
|
|
|
|
|
+ dt.Columns["合格数"].ColumnName = "合格数_合计";
|
|
|
|
|
+ dt.Columns.Add(new DataColumn("合格数_擦水", typeof(Int32)));
|
|
|
|
|
+ dt.Columns["合格数_擦水"].SetOrdinal(4);
|
|
|
|
|
+ dt.Columns.Add(new DataColumn("合格数_喷釉", typeof(Int32)));
|
|
|
|
|
+ dt.Columns["合格数_喷釉"].SetOrdinal(5);
|
|
|
|
|
+
|
|
|
|
|
+ //拆分缺陷率
|
|
|
|
|
+ dt.Columns["缺陷率"].ColumnName = "缺陷率_合计";
|
|
|
|
|
+ dt.Columns.Add(new DataColumn("缺陷率_擦水", typeof(string)));
|
|
|
|
|
+ dt.Columns["缺陷率_擦水"].SetOrdinal(7);
|
|
|
|
|
+ dt.Columns.Add(new DataColumn("缺陷率_喷釉", typeof(string)));
|
|
|
|
|
+ dt.Columns["缺陷率_喷釉"].SetOrdinal(8);
|
|
|
|
|
+
|
|
|
|
|
+ //合并 擦水
|
|
|
|
|
+ dt.Columns["棕眼"].ColumnName = "擦水_棕眼";
|
|
|
|
|
+ dt.Columns["糙活"].ColumnName = "擦水_糙活";
|
|
|
|
|
+ dt.Columns["成脏"].ColumnName = "擦水_成脏";
|
|
|
|
|
+
|
|
|
|
|
+ //插入 擦水与喷釉重复列
|
|
|
|
|
+ dt.Columns.Add(new DataColumn("擦水_爆釉", typeof(Int32)));
|
|
|
|
|
+ dt.Columns["擦水_爆釉"].SetOrdinal(13);
|
|
|
|
|
+ dt.Columns.Add(new DataColumn("擦水_脱釉", typeof(Int32)));
|
|
|
|
|
+ dt.Columns["擦水_脱釉"].SetOrdinal(14);
|
|
|
|
|
+ dt.Columns.Add(new DataColumn("擦水_釉磕", typeof(Int32)));
|
|
|
|
|
+ dt.Columns["擦水_釉磕"].SetOrdinal(15);
|
|
|
|
|
+ dt.Columns.Add(new DataColumn("擦水_釉脏", typeof(Int32)));
|
|
|
|
|
+ dt.Columns["擦水_釉脏"].SetOrdinal(16);
|
|
|
|
|
+
|
|
|
|
|
+ dt.Columns.Add(new DataColumn("擦水_合计", typeof(Int32)));
|
|
|
|
|
+ dt.Columns["擦水_合计"].SetOrdinal(17);
|
|
|
|
|
+
|
|
|
|
|
+ //合并 喷釉
|
|
|
|
|
+ dt.Columns["爆釉"].ColumnName = "喷釉_爆釉";
|
|
|
|
|
+ dt.Columns["脱釉"].ColumnName = "喷釉_脱釉";
|
|
|
|
|
+ dt.Columns["釉磕"].ColumnName = "喷釉_釉磕";
|
|
|
|
|
+ dt.Columns["釉粘"].ColumnName = "喷釉_釉粘";
|
|
|
|
|
+ dt.Columns["釉薄"].ColumnName = "喷釉_釉薄";
|
|
|
|
|
+ dt.Columns["波纹"].ColumnName = "喷釉_波纹";
|
|
|
|
|
+ dt.Columns["釉脏"].ColumnName = "喷釉_釉脏";
|
|
|
|
|
+ dt.Columns["标不良"].ColumnName = "喷釉_标不良";
|
|
|
|
|
+ dt.Columns["釉绺"].ColumnName = "喷釉_釉绺";
|
|
|
|
|
+ dt.Columns["釉泡"].ColumnName = "喷釉_釉泡";
|
|
|
|
|
+ dt.Columns["氯化镁"].ColumnName = "喷釉_氯化镁";
|
|
|
|
|
+ dt.Columns["灌釉不良"].ColumnName = "喷釉_灌釉不良";
|
|
|
|
|
+ dt.Columns.Add(new DataColumn("喷釉_合计", typeof(Int32)));
|
|
|
|
|
+ dt.Columns["喷釉_合计"].SetOrdinal(30);
|
|
|
|
|
+
|
|
|
|
|
+ //重新计算合计
|
|
|
|
|
+ for (int i = 0; i < dt.Rows.Count; i++)
|
|
|
|
|
+ {
|
|
|
|
|
+ //擦水重复列赋值
|
|
|
|
|
+ dt.Rows[i]["擦水_爆釉"] = dt.Rows[i]["喷釉_爆釉"];
|
|
|
|
|
+ dt.Rows[i]["擦水_脱釉"] = dt.Rows[i]["喷釉_脱釉"];
|
|
|
|
|
+ dt.Rows[i]["擦水_釉磕"] = dt.Rows[i]["喷釉_釉磕"];
|
|
|
|
|
+ dt.Rows[i]["擦水_釉脏"] = dt.Rows[i]["喷釉_釉脏"];
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ dt.Rows[i]["擦水_合计"] =
|
|
|
|
|
+ toNumber(dt.Rows[i]["擦水_棕眼"])
|
|
|
|
|
+ + toNumber(dt.Rows[i]["擦水_糙活"])
|
|
|
|
|
+ + toNumber(dt.Rows[i]["擦水_成脏"])
|
|
|
|
|
+ + toNumber(dt.Rows[i]["擦水_爆釉"])
|
|
|
|
|
+ + toNumber(dt.Rows[i]["擦水_脱釉"])
|
|
|
|
|
+ + toNumber(dt.Rows[i]["擦水_釉磕"])
|
|
|
|
|
+ + toNumber(dt.Rows[i]["擦水_釉脏"]);
|
|
|
|
|
+
|
|
|
|
|
+ dt.Rows[i]["喷釉_合计"] =
|
|
|
|
|
+ toNumber(dt.Rows[i]["喷釉_爆釉"])
|
|
|
|
|
+ + toNumber(dt.Rows[i]["喷釉_脱釉"])
|
|
|
|
|
+ + toNumber(dt.Rows[i]["喷釉_釉磕"])
|
|
|
|
|
+ + toNumber(dt.Rows[i]["喷釉_釉粘"])
|
|
|
|
|
+ + toNumber(dt.Rows[i]["喷釉_釉薄"])
|
|
|
|
|
+ + toNumber(dt.Rows[i]["喷釉_波纹"])
|
|
|
|
|
+ + toNumber(dt.Rows[i]["喷釉_釉脏"])
|
|
|
|
|
+ + toNumber(dt.Rows[i]["喷釉_标不良"])
|
|
|
|
|
+ + toNumber(dt.Rows[i]["喷釉_釉绺"])
|
|
|
|
|
+ + toNumber(dt.Rows[i]["喷釉_釉泡"])
|
|
|
|
|
+ + toNumber(dt.Rows[i]["喷釉_氯化镁"])
|
|
|
|
|
+ + toNumber(dt.Rows[i]["喷釉_灌釉不良"]);
|
|
|
|
|
+ dt.Rows[i]["合格数_擦水"] = toNumber(dt.Rows[i]["出窑数"]) - toNumber(dt.Rows[i]["擦水_合计"]);
|
|
|
|
|
+ dt.Rows[i]["合格数_喷釉"] = toNumber(dt.Rows[i]["出窑数"]) - toNumber(dt.Rows[i]["喷釉_合计"]);
|
|
|
|
|
+ dt.Rows[i]["缺陷率_擦水"] = Convert.ToString(Math.Round(100 - (toNumber(dt.Rows[i]["合格数_擦水"]) / toNumber(dt.Rows[i]["出窑数"])) * 100, 2)) + "%";
|
|
|
|
|
+ dt.Rows[i]["缺陷率_喷釉"] = Convert.ToString(Math.Round(100 - (toNumber(dt.Rows[i]["合格数_喷釉"]) / toNumber(dt.Rows[i]["出窑数"])) * 100, 2)) + "%";
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ string jsonStr = new JsonResult(dt) { total = dt.Rows.Count }.ToJson();
|
|
|
|
|
+
|
|
|
|
|
+ context.Response.Write(jsonStr);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public decimal toNumber(object o)
|
|
|
|
|
+ {
|
|
|
|
|
+ if (o != DBNull.Value)
|
|
|
|
|
+ return Convert.ToDecimal(o);
|
|
|
|
|
+ else
|
|
|
|
|
+ return 0;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public bool IsReusable
|
|
|
|
|
+ {
|
|
|
|
|
+ get
|
|
|
|
|
+ {
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
}
|
|
}
|