|
|
@@ -316,28 +316,27 @@ public class rpt : IHttpHandler, IReadOnlySessionState
|
|
|
FROM
|
|
|
( SELECT MAX(PD.PRODUCTIONDATAID) PRODUCTIONDATAID
|
|
|
,PD.GOODSID,PD.BARCODE
|
|
|
- ,PD.GROUTINGDAILYDETAILID ,PD.KILNCARBATCHNO
|
|
|
+ ,PD.GROUTINGDAILYDETAILID
|
|
|
FROM TP_PM_PRODUCTIONDATA PD
|
|
|
INNER JOIN TP_PC_GROUTINGLINE GL ON GL.GROUTINGLINEID = PD.GROUTINGLINEID
|
|
|
WHERE
|
|
|
PD.PROCEDUREID = @PROCEDUREID@
|
|
|
-- AND PD.VALUEFLAG = '1'
|
|
|
--AND PD.CHECKBATCHNO = 1
|
|
|
- AND PD.CREATETIME >= @DATEBEGIN@
|
|
|
- AND PD.CREATETIME < @DATEEND@
|
|
|
+ -- AND PD.CREATETIME >= @DATEBEGIN@
|
|
|
+ -- AND PD.CREATETIME < @DATEEND@
|
|
|
AND PD.CHECKTIME >= @DATEBEGIN@
|
|
|
AND PD.CHECKTIME < @DATEEND@
|
|
|
AND (PD.KILNID = @KILNID@ OR @KILNID@ IS NULL)
|
|
|
AND PD.GOODSCODE IN({goodsCodes})
|
|
|
AND GL.BUILDINGNO {BUILDINGNO}
|
|
|
- GROUP BY PD.GOODSID,PD.BARCODE ,PD.GROUTINGDAILYDETAILID ,PD.KILNCARBATCHNO
|
|
|
- ) PD
|
|
|
+ GROUP BY PD.GOODSID,PD.BARCODE ,PD.GROUTINGDAILYDETAILID
|
|
|
+ ) PD INNER JOIN TP_PM_PRODUCTIONDATA PDD ON PDD.PRODUCTIONDATAID = PD.PRODUCTIONDATAID
|
|
|
LEFT JOIN TP_PM_PRODUCTIONDATA PMAX ON PMAX.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID
|
|
|
- and pmax.KILNCARBATCHNO= pd.KILNCARBATCHNO
|
|
|
+ and pmax.KILNCARBATCHNO= PDD.KILNCARBATCHNO
|
|
|
AND PMAX.PRODUCTIONDATAID < PD.PRODUCTIONDATAID AND PMAX.VALUEFLAG = '1' AND PMAX.PROCEDUREMODEL = '1'
|
|
|
/*20 研磨 22 直接冷补 23 研磨后冷补(非回收) 37 堵漏气 41 刷洗不良*/
|
|
|
- AND PMAX.PROCEDUREID IN (20, 22, 23, 37, 41)
|
|
|
- INNER JOIN TP_PM_PRODUCTIONDATA PDD ON PDD.PRODUCTIONDATAID = PD.PRODUCTIONDATAID
|
|
|
+ AND PMAX.PROCEDUREID IN (20, 22, 23, 37, 41)
|
|
|
|
|
|
GROUP BY
|
|
|
PD.BARCODE,
|
|
|
@@ -359,7 +358,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
|
|
|
FROM
|
|
|
( SELECT MAX(PD.PRODUCTIONDATAID) PRODUCTIONDATAID
|
|
|
,PD.GOODSID,PD.BARCODE
|
|
|
- ,PD.GROUTINGDAILYDETAILID ,pd.KILNCARBATCHNO
|
|
|
+ ,PD.GROUTINGDAILYDETAILID
|
|
|
FROM TP_PM_PRODUCTIONDATA PD
|
|
|
INNER JOIN TP_PC_GROUTINGLINE GL ON GL.GROUTINGLINEID = PD.GROUTINGLINEID
|
|
|
WHERE
|
|
|
@@ -372,12 +371,11 @@ public class rpt : IHttpHandler, IReadOnlySessionState
|
|
|
AND PD.GOODSCODE IN({goodsCodes})
|
|
|
AND GL.BUILDINGNO {BUILDINGNO}
|
|
|
GROUP BY PD.GOODSID,PD.BARCODE ,PD.GROUTINGDAILYDETAILID ,pd.KILNCARBATCHNO
|
|
|
- ) PD
|
|
|
- LEFT JOIN TP_PM_PRODUCTIONDATA PMAX ON PMAX.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID and pmax.KILNCARBATCHNO= pd.KILNCARBATCHNO
|
|
|
+ ) PD INNER JOIN TP_PM_PRODUCTIONDATA PDD ON PDD.PRODUCTIONDATAID = PD.PRODUCTIONDATAID
|
|
|
+ LEFT JOIN TP_PM_PRODUCTIONDATA PMAX ON PMAX.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID and pmax.KILNCARBATCHNO= PDD.KILNCARBATCHNO
|
|
|
AND PMAX.PRODUCTIONDATAID < PD.PRODUCTIONDATAID AND PMAX.VALUEFLAG = '1' AND PMAX.PROCEDUREMODEL = '1'
|
|
|
/*20 研磨 22 直接冷补 23 研磨后冷补(非回收) 37 堵漏气 41 刷洗不良*/
|
|
|
- AND PMAX.PROCEDUREID IN (20, 22, 23, 37, 41)
|
|
|
- INNER JOIN TP_PM_PRODUCTIONDATA PDD ON PDD.PRODUCTIONDATAID = PD.PRODUCTIONDATAID
|
|
|
+ AND PMAX.PROCEDUREID IN (20, 22, 23, 37, 41)
|
|
|
|
|
|
GROUP BY
|
|
|
PD.BARCODE,
|
|
|
@@ -1135,7 +1133,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
|
|
|
sqlStr = sqlStr.Replace("@PROCEDUREID@", pid != "" ? pid : " NULL ");
|
|
|
sqlStr = sqlStr.Replace("@GOODSCODE@", " '' ");
|
|
|
sqlStr = sqlStr.Replace("@GOODSNAME@", " '' ");
|
|
|
- // 250717 存储过程的临时表 不好用
|
|
|
+ // 250717 存储过程的临时表 不好用
|
|
|
DataTable dt = conn.ExecuteDatatable(sqlStr, sqlPara.ToArray());
|
|
|
|
|
|
// string nameGuid = string.Empty;
|
|
|
@@ -1190,73 +1188,108 @@ public class rpt : IHttpHandler, IReadOnlySessionState
|
|
|
context.Response.Write(jsonStr);
|
|
|
}
|
|
|
}
|
|
|
- // 结转
|
|
|
- if (context.Request["m"].ToString() == "jiezhauang")
|
|
|
+ // 结转250731
|
|
|
+ if (context.Request["m"].ToString() == "jiezhauang")
|
|
|
{
|
|
|
- using (IDataAccess conn = DataAccess.Create())
|
|
|
+ #region 产品编码
|
|
|
+ if (context.Request["GOODSCODE"] != "" || context.Request["GOODSCODE"] != null)
|
|
|
{
|
|
|
- string buding = null;
|
|
|
- if (context.Request["buildingnoMaster"].ToString() != "12")
|
|
|
- {
|
|
|
- buding = "IN('" + context.Request["buildingnoMaster"] + "')";
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- buding = "IN(" + "'1#','2#'" + ")";
|
|
|
- }
|
|
|
- #region 可选缺陷 删除 插入
|
|
|
- //d可选缺陷 删除 插入
|
|
|
- string[] denames = new string[] { };
|
|
|
- if (context.Request["defectMaster[]"] is object)
|
|
|
+ goodsCodes = context.Request["GOODSCODE"].ToString().Split(',');
|
|
|
+ }
|
|
|
+ string goodssql = @"SELECT
|
|
|
+ GOODSCODE
|
|
|
+ FROM TP_MST_GOODS where 1=1";
|
|
|
+ if (goodsCodes.Length > 1 || goodsCodes[0] != "")
|
|
|
+ {
|
|
|
+ if (context.Request["isNotcheck"].ToString() == "1")
|
|
|
{
|
|
|
- if (context.Request["defectMaster[]"].ToString() != "")
|
|
|
+ goodssql += @" AND GOODSCODE NOT LIKE ('%" + goodsCodes[0].ToUpper() + "%') ";
|
|
|
+ for (int i = 1; i < goodsCodes.Length; i++)
|
|
|
{
|
|
|
- denames = context.Request["defectMaster[]"].ToString().Split(',');
|
|
|
+ goodssql += @" AND GOODSCODE NOT LIKE ('%" + goodsCodes[i].ToUpper() + "%') ";
|
|
|
}
|
|
|
}
|
|
|
- if (context.Request["defectMaster"] is object)
|
|
|
+ else
|
|
|
{
|
|
|
- if (context.Request["defectMaster"].ToString() != "")
|
|
|
+ goodssql += @" AND GOODSCODE LIKE ('%" + goodsCodes[0].ToUpper() + "%') ";
|
|
|
+ for (int i = 1; i < goodsCodes.Length; i++)
|
|
|
{
|
|
|
- denames = context.Request["defectMaster"].ToString().Split(',');
|
|
|
+ goodssql += @" OR GOODSCODE LIKE ('%" + goodsCodes[i].ToUpper() + "%') ";
|
|
|
}
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!string.IsNullOrEmpty(context.Request["goodsnameMaster"].ToString()))
|
|
|
+ {
|
|
|
+ goodssql += @" AND GOODSNAME LIKE ('%" + context.Request["goodsnameMaster"].ToString() + "%') ";
|
|
|
+ }
|
|
|
+
|
|
|
+ #endregion
|
|
|
+ #region 取缺陷拼接串
|
|
|
+ if (context.Request["buildingnoMaster"].ToString() != "12")
|
|
|
+ {
|
|
|
+ buding = "IN('" + context.Request["buildingnoMaster"] + "')";
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ buding = "IN(" + "'1#','2#'" + ")";
|
|
|
+ }
|
|
|
|
|
|
+ #endregion
|
|
|
+ #region 可选缺陷 删除 插入
|
|
|
+ //d可选缺陷 删除 插入
|
|
|
+ string[] denames = new string[] { };
|
|
|
+ if (context.Request["defectMaster[]"] is object)
|
|
|
+ {
|
|
|
+ if (context.Request["defectMaster[]"].ToString() != "")
|
|
|
+ {
|
|
|
+ denames = context.Request["defectMaster[]"].ToString().Split(',');
|
|
|
}
|
|
|
- // 判断可选缺陷 是否发生变化,如果没有变化则不用调用数据库
|
|
|
- bool flg = true;
|
|
|
- for (int i = 0; i < denames.Length; i++)
|
|
|
+ }
|
|
|
+ if (context.Request["defectMaster"] is object)
|
|
|
+ {
|
|
|
+ if (context.Request["defectMaster"].ToString() != "")
|
|
|
{
|
|
|
- if (string.IsNullOrEmpty(denames[i]))
|
|
|
- {
|
|
|
- continue;
|
|
|
- }
|
|
|
- defectallnames.Remove(denames[i]);
|
|
|
- // 前台传过来的 可选缺陷的字符串
|
|
|
- if (!context.Request["name"].ToString().Contains(denames[i]))
|
|
|
- {
|
|
|
- flg = false;
|
|
|
- break;
|
|
|
- }
|
|
|
+ denames = context.Request["defectMaster"].ToString().Split(',');
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ // 判断可选缺陷 是否发生变化,如果没有变化则不用调用数据库
|
|
|
+ bool flg = true;
|
|
|
+ for (int i = 0; i < denames.Length; i++)
|
|
|
+ {
|
|
|
+ if (string.IsNullOrEmpty(denames[i]))
|
|
|
+ {
|
|
|
+ continue;
|
|
|
}
|
|
|
- if (context.Request["name"].ToString().Split(',').Length != denames.Length)
|
|
|
+ int index = defectallnames.FindIndex(item => item.Equals(denames[i]));
|
|
|
+ defectallnames.Remove(denames[i]);
|
|
|
+
|
|
|
+ // 前台传过来的 可选缺陷的字符串
|
|
|
+ if (!context.Request["name"].ToString().Contains(denames[i]))
|
|
|
{
|
|
|
flg = false;
|
|
|
}
|
|
|
- //d可选缺陷 删除 插入
|
|
|
- if (!flg)
|
|
|
+ }
|
|
|
+ if (context.Request["name"].ToString().Split(',').Length != denames.Length)
|
|
|
+ {
|
|
|
+ flg = false;
|
|
|
+ }
|
|
|
+ //d可选缺陷 删除 插入
|
|
|
+ if (!flg)
|
|
|
+ {
|
|
|
+ using (IDataAccess conn = DataAccess.Create())
|
|
|
{
|
|
|
- using (IDataAccess connn = DataAccess.Create())
|
|
|
- {
|
|
|
- connn.ExecuteNonQuery(@"delete from tp_mst_defectgroup_user where USERID = @USERID@",
|
|
|
- new CDAParameter("USERID", context.Request["userId"] + ""));
|
|
|
+ conn.ExecuteNonQuery(@"delete from tp_mst_defectgroup_user where USERID = @USERID@",
|
|
|
+ new CDAParameter("USERID", context.Request["userId"] + ""));
|
|
|
|
|
|
- for (int i = 0; i < denames.Length; i++)
|
|
|
+ for (int i = 0; i < denames.Length; i++)
|
|
|
+ {
|
|
|
+ if (string.IsNullOrEmpty(denames[i]))
|
|
|
{
|
|
|
- if (string.IsNullOrEmpty(denames[i]))
|
|
|
- {
|
|
|
- continue;
|
|
|
- }
|
|
|
- int result = connn.ExecuteNonQuery(@"
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ int result = conn.ExecuteNonQuery(@"
|
|
|
INSERT INTO tp_mst_defectgroup_user (
|
|
|
DEFECTGROUPNAME,
|
|
|
ACCOUNTID,CREATEUSERID,USERID
|
|
|
@@ -1265,235 +1298,1274 @@ public class rpt : IHttpHandler, IReadOnlySessionState
|
|
|
@ACCOUNTID@,@CREATEUSERID@,@USERID@
|
|
|
)
|
|
|
",
|
|
|
- new CDAParameter("DEFECTGROUPNAME", denames[i]),
|
|
|
- new CDAParameter("ACCOUNTID", context.Request["accountId"] + ""),
|
|
|
- new CDAParameter("CREATEUSERID", context.Request["userId"] + ""),
|
|
|
- new CDAParameter("USERID", context.Request["userId"] + "")
|
|
|
- );
|
|
|
- }
|
|
|
+ new CDAParameter("DEFECTGROUPNAME", denames[i]),
|
|
|
+ new CDAParameter("ACCOUNTID", context.Request["accountId"] + ""),
|
|
|
+ new CDAParameter("CREATEUSERID", context.Request["userId"] + ""),
|
|
|
+ new CDAParameter("USERID", context.Request["userId"] + "")
|
|
|
+ );
|
|
|
}
|
|
|
}
|
|
|
- #endregion
|
|
|
-
|
|
|
- string sqlStr = @"
|
|
|
- SELECT
|
|
|
-
|
|
|
- 产品名称 ,
|
|
|
- DECODE(产品类别, null, '合计',产品类别) 产品类别,
|
|
|
- SUM(出窑数) AS 出窑数,
|
|
|
- SUM(U级) AS U级,
|
|
|
- SUM(A级) AS A级,
|
|
|
- SUM(AA级) AS AA级,
|
|
|
- SUM(B级) AS B级,
|
|
|
- SUM(R级) AS R级,
|
|
|
- SUM(冷补数) AS 冷补数,
|
|
|
- SUM(L级 ) AS L级,
|
|
|
- SUM(F级) AS F级,
|
|
|
- SUM(Z级) AS Z级,
|
|
|
- DEcode(ROUND(((nvl(sum(U级),0)+nvl(sum(A级),0)+ nvl(sum(AA级),0))/ sum(出窑数)), 4 ) *100,0,NULL,ROUND( ((nvl(sum(U级),0)+nvl(sum(A级),0)+ nvl(sum(AA级),0))/ sum(出窑数)), 4 ) *100) AS UA率,
|
|
|
- SUM(原料缺陷_铁脏 ) AS 原料缺陷_铁脏,
|
|
|
- SUM(原料缺陷_铜脏) AS 原料缺陷_铜脏,
|
|
|
- SUM(原料缺陷_合计) AS 原料缺陷_合计,
|
|
|
- SUM(成型缺陷_糙活) AS 成型缺陷_糙活,
|
|
|
- SUM(成型缺陷_成裂) AS 成型缺陷_成裂,
|
|
|
- SUM(成型缺陷_成脏) AS 成型缺陷_成脏,
|
|
|
- SUM(成型缺陷_成走) AS 成型缺陷_成走,
|
|
|
- SUM(成型缺陷_孔不良) AS 成型缺陷_孔不良,
|
|
|
- SUM(成型缺陷_漏气) AS 成型缺陷_漏气,
|
|
|
- SUM(成型缺陷_泥绺) AS 成型缺陷_泥绺,
|
|
|
- SUM(成型缺陷_排水不良) AS 成型缺陷_排水不良,
|
|
|
- SUM(成型缺陷_坯脏) AS 成型缺陷_坯脏,
|
|
|
- SUM(成型缺陷_注泡) AS 成型缺陷_注泡,
|
|
|
- SUM(成型缺陷_棕眼) AS 成型缺陷_棕眼,
|
|
|
- SUM(成型缺陷_炸圈) AS 成型缺陷_炸圈,
|
|
|
- SUM(成型缺陷_卡球) AS 成型缺陷_卡球,
|
|
|
- SUM(成型缺陷_合计) AS 成型缺陷_合计,
|
|
|
- SUM(施釉缺陷_爆釉) AS 施釉缺陷_爆釉,
|
|
|
- SUM(施釉缺陷_标不良) AS 施釉缺陷_标不良 ,
|
|
|
- SUM(施釉缺陷_脱釉) AS 施釉缺陷_脱釉 ,
|
|
|
- SUM(施釉缺陷_釉薄) AS 施釉缺陷_釉薄,
|
|
|
- SUM(施釉缺陷_釉磕) AS 施釉缺陷_釉磕 ,
|
|
|
- SUM(施釉缺陷_釉绺) AS 施釉缺陷_釉绺 ,
|
|
|
- SUM(施釉缺陷_釉脏) AS 施釉缺陷_釉脏 ,
|
|
|
- SUM(施釉缺陷_釉粘) AS 施釉缺陷_釉粘,
|
|
|
- SUM(施釉缺陷_釉泡) AS 施釉缺陷_釉泡,
|
|
|
- SUM(施釉缺陷_波纹) AS 施釉缺陷_波纹,
|
|
|
- SUM(施釉缺陷_合计) AS 施釉缺陷_合计,
|
|
|
- SUM(循环线施釉缺陷_爆釉) AS 循环线施釉缺陷_爆釉 ,
|
|
|
- SUM(循环线施釉缺陷_标不良) AS 循环线施釉缺陷_标不良 ,
|
|
|
- SUM(循环线施釉缺陷_脱釉) AS 循环线施釉缺陷_脱釉,
|
|
|
- SUM(循环线施釉缺陷_釉薄) AS 循环线施釉缺陷_釉薄,
|
|
|
- SUM(循环线施釉缺陷_釉磕) AS 循环线施釉缺陷_釉磕,
|
|
|
- SUM(循环线施釉缺陷_釉绺) AS 循环线施釉缺陷_釉绺,
|
|
|
- SUM(循环线施釉缺陷_釉脏) AS 循环线施釉缺陷_釉脏,
|
|
|
- SUM(循环线施釉缺陷_釉粘) AS 循环线施釉缺陷_釉粘,
|
|
|
- SUM(循环线施釉缺陷_釉泡) AS 循环线施釉缺陷_釉泡,
|
|
|
- SUM(循环线施釉缺陷_波纹) AS 循环线施釉缺陷_波纹,
|
|
|
- SUM(循环线施釉缺陷_合计) AS 循环线施釉缺陷_合计,
|
|
|
- SUM(施釉_合计) AS 施釉_合计,
|
|
|
- SUM(出装窑缺陷_蹭釉) AS 出装窑缺陷_蹭釉,
|
|
|
- SUM(出装窑缺陷_出磕) AS 出装窑缺陷_出磕,
|
|
|
- SUM(出装窑缺陷_划釉) AS 出装窑缺陷_划釉,
|
|
|
- SUM(出装窑缺陷_落脏) AS 出装窑缺陷_落脏,
|
|
|
- SUM(出装窑缺陷_装磕) AS 出装窑缺陷_装磕,
|
|
|
- SUM(出装窑缺陷_装粘) AS出装窑缺陷_装粘,
|
|
|
- SUM(出装窑缺陷_装脏) AS 出装窑缺陷_装脏,
|
|
|
- SUM(出装窑缺陷_装走) AS 出装窑缺陷_装走,
|
|
|
- SUM(出装窑缺陷_合计) AS 出装窑缺陷_合计,
|
|
|
- SUM(烧窑缺陷_过火泡) AS 烧窑缺陷_过火泡,
|
|
|
- SUM(烧窑缺陷_桔釉) AS 烧窑缺陷_桔釉,
|
|
|
- SUM(烧窑缺陷_麻坑) AS 烧窑缺陷_麻坑,
|
|
|
- SUM(烧窑缺陷_烧裂) AS 烧窑缺陷_烧裂,
|
|
|
- SUM(烧窑缺陷_烧生) AS 烧窑缺陷_烧生,
|
|
|
- SUM(烧窑缺陷_窑脏) AS 烧窑缺陷_窑脏,
|
|
|
- SUM(烧窑缺陷_烧炸) AS 烧窑缺陷_烧炸,
|
|
|
- SUM(烧窑缺陷_烟熏) AS 烧窑缺陷_烟熏,
|
|
|
- SUM(烧窑缺陷_水滴) AS 烧窑缺陷_水滴,
|
|
|
- SUM(烧窑缺陷_风惊) AS 烧窑缺陷_风惊,
|
|
|
- SUM(烧窑缺陷_针孔) AS 烧窑缺陷_针孔,
|
|
|
- SUM(烧窑缺陷_合计) AS 烧窑缺陷_合计,
|
|
|
- SUM(其他缺陷_崩脏) AS 其他缺陷_崩脏,
|
|
|
- SUM(其他缺陷_坯磕) AS 其他缺陷_坯磕,
|
|
|
- SUM(其他缺陷_研磨) AS 其他缺陷_研磨,
|
|
|
- SUM(其他缺陷_复烧修补不良) AS 其他缺陷_复烧修补不良,
|
|
|
- SUM(其他缺陷_合计) AS 其他缺陷_合计,
|
|
|
- SUM(研磨缺陷_眼) AS 研磨缺陷_眼,
|
|
|
- SUM(研磨缺陷_底) AS 研磨缺陷_底,
|
|
|
- SUM(研磨缺陷_底和面) AS 研磨缺陷_底和面 ,
|
|
|
- SUM(研磨缺陷_面) AS 研磨缺陷_面,
|
|
|
- SUM(研磨缺陷_边) AS 研磨缺陷_边,
|
|
|
- SUM(研磨缺陷_研磨配盖) AS 研磨缺陷_研磨配盖,
|
|
|
- SUM(研磨缺陷_合计) AS 研磨缺陷_合计,
|
|
|
- SUM(合计) AS 合计
|
|
|
- FROM(
|
|
|
- SELECT
|
|
|
- GOODSTYPENAME AS 产品类别,
|
|
|
- GOODSNAME AS 产品名称 ,
|
|
|
- sum(OUT_K) AS 出窑数 ,
|
|
|
- sum(COUNT_U4) AS U级,
|
|
|
- sum(COUNT_AB) AS A级,
|
|
|
- sum(COUNT_AA) AS AA级,
|
|
|
- sum(COUNT_B) AS B级,
|
|
|
- sum(COUNT_R) AS R级,
|
|
|
- sum(LB_NUM) AS 冷补数,
|
|
|
- sum(COUNT_L) AS L级 ,
|
|
|
- sum(COUNT_U7) AS F级,
|
|
|
- sum(COUNT_Z) AS Z级,
|
|
|
- DEcode(ROUND( ((nvl(sum(COUNT_U4),0)+nvl(sum(COUNT_AB),0)+ nvl(sum(COUNT_AA),0))/ sum(OUT_K)), 4 ) *100,0,NULL,ROUND( ((nvl(sum(COUNT_U4),0)+nvl(sum(COUNT_AB),0)+ nvl(sum(COUNT_AA),0))/ sum(OUT_K)), 4 ) *100) AS UA率,
|
|
|
- sum( CNUM1 ) AS 原料缺陷_铁脏 ,
|
|
|
- sum( CNUM2 ) AS 原料缺陷_铜脏,
|
|
|
- sum( CNUM3 ) AS 原料缺陷_合计,
|
|
|
- sum( CNUM4 ) AS 成型缺陷_糙活,
|
|
|
- sum( CNUM5 ) AS 成型缺陷_成裂,
|
|
|
- sum( CNUM6 ) AS 成型缺陷_成脏,
|
|
|
- sum( CNUM7 ) AS 成型缺陷_成走,
|
|
|
- sum( CNUM8 ) AS 成型缺陷_孔不良,
|
|
|
- sum( CNUM9 ) AS 成型缺陷_漏气,
|
|
|
- sum( CNUM10 ) AS 成型缺陷_泥绺,
|
|
|
- sum( CNUM11 ) AS 成型缺陷_排水不良,
|
|
|
- sum( CNUM12 ) AS 成型缺陷_坯脏,
|
|
|
- sum( CNUM13 ) AS 成型缺陷_注泡,
|
|
|
- sum( CNUM14 ) AS 成型缺陷_棕眼,
|
|
|
- sum( CNUM15 ) AS 成型缺陷_炸圈,
|
|
|
- sum( CNUM16 ) AS 成型缺陷_卡球,
|
|
|
- sum( CNUM17 ) AS 成型缺陷_合计,
|
|
|
- sum( CNUM18 ) AS 施釉缺陷_爆釉,
|
|
|
- sum( CNUM19 ) AS 施釉缺陷_标不良,
|
|
|
- sum( CNUM20 ) AS 施釉缺陷_脱釉,
|
|
|
- sum( CNUM21 ) AS 施釉缺陷_釉薄,
|
|
|
- sum( CNUM22 ) AS 施釉缺陷_釉磕,
|
|
|
- sum( CNUM23 ) AS 施釉缺陷_釉绺,
|
|
|
- sum( CNUM24 ) AS 施釉缺陷_釉脏,
|
|
|
- sum( CNUM25 ) AS 施釉缺陷_釉粘,
|
|
|
- sum( CNUM26 ) AS 施釉缺陷_釉泡,
|
|
|
- sum( CNUM27 ) AS 施釉缺陷_波纹,
|
|
|
- sum( CNUM28 ) AS 施釉缺陷_合计,
|
|
|
- sum( CNUM29 ) AS 循环线施釉缺陷_爆釉,
|
|
|
- sum( CNUM30 ) AS 循环线施釉缺陷_标不良,
|
|
|
- sum( CNUM31 ) AS 循环线施釉缺陷_脱釉,
|
|
|
- sum( CNUM32 ) AS 循环线施釉缺陷_釉薄,
|
|
|
- sum( CNUM33 ) AS 循环线施釉缺陷_釉磕,
|
|
|
- sum( CNUM34 ) AS 循环线施釉缺陷_釉绺,
|
|
|
- sum( CNUM35 ) AS 循环线施釉缺陷_釉脏,
|
|
|
- sum( CNUM36 ) AS 循环线施釉缺陷_釉粘,
|
|
|
- sum( CNUM37 ) AS 循环线施釉缺陷_釉泡,
|
|
|
- sum( CNUM38 ) AS 循环线施釉缺陷_波纹,
|
|
|
- sum( CNUM39 ) AS 循环线施釉缺陷_合计,
|
|
|
- sum(CNUM39) + sum (CNUM28) AS 施釉_合计,
|
|
|
- sum( CNUM40 ) AS 出装窑缺陷_蹭釉,
|
|
|
- sum( CNUM41 ) AS 出装窑缺陷_出磕,
|
|
|
- sum( CNUM42 ) AS 出装窑缺陷_划釉,
|
|
|
- sum( CNUM43 ) AS 出装窑缺陷_落脏,
|
|
|
- sum( CNUM44 ) AS 出装窑缺陷_装磕,
|
|
|
- sum( CNUM45 ) AS 出装窑缺陷_装粘,
|
|
|
- sum( CNUM46 ) AS 出装窑缺陷_装脏,
|
|
|
- sum( CNUM47 ) AS 出装窑缺陷_装走,
|
|
|
- sum( CNUM48 ) AS 出装窑缺陷_合计,
|
|
|
- sum( CNUM49 ) AS 烧窑缺陷_过火泡,
|
|
|
- sum( CNUM50 ) AS 烧窑缺陷_桔釉,
|
|
|
- sum( CNUM51 ) AS 烧窑缺陷_麻坑,
|
|
|
- sum( CNUM52 ) AS 烧窑缺陷_烧裂,
|
|
|
- sum( CNUM53 ) AS 烧窑缺陷_烧生,
|
|
|
- sum( CNUM54 ) AS 烧窑缺陷_窑脏,
|
|
|
- sum( CNUM55 ) AS 烧窑缺陷_烧炸,
|
|
|
- sum( CNUM56 ) AS 烧窑缺陷_烟熏,
|
|
|
- sum( CNUM57 ) AS 烧窑缺陷_水滴,
|
|
|
- sum( CNUM58 ) AS 烧窑缺陷_风惊,
|
|
|
- sum( CNUM59 ) AS 烧窑缺陷_针孔,
|
|
|
- sum( CNUM60 ) AS 烧窑缺陷_合计,
|
|
|
- sum( CNUM61 ) AS 其他缺陷_崩脏,
|
|
|
- sum( CNUM62 ) AS 其他缺陷_坯磕,
|
|
|
- sum( CNUM63 ) AS 其他缺陷_研磨,
|
|
|
- sum( CNUM64 ) AS 其他缺陷_复烧修补不良,
|
|
|
- sum( CNUM65 ) AS 其他缺陷_合计,
|
|
|
- sum( CNUM66 ) AS 研磨缺陷_眼,
|
|
|
- sum( CNUM67 ) AS 研磨缺陷_底,
|
|
|
- sum( CNUM68 ) AS 研磨缺陷_底和面,
|
|
|
- sum( CNUM69 ) AS 研磨缺陷_面,
|
|
|
- sum( CNUM70 ) AS 研磨缺陷_边,
|
|
|
- sum( CNUM71 ) AS 研磨缺陷_研磨配盖,
|
|
|
- sum( CNUM72 ) AS 研磨缺陷_合计,
|
|
|
- sum( CNUM73 ) AS 合计,
|
|
|
- GOOD AS 序号
|
|
|
- from
|
|
|
- JZ_RPT014
|
|
|
- WHERE PROCEDUREID = @PROCEDUREID@
|
|
|
- AND FORWARDTIME >= @BEGINMONTH@
|
|
|
- AND FORWARDTIME < =@ENDMONTH@
|
|
|
- AND BUILDINGNO {BUILDINGNO}
|
|
|
- AND (KILNID = @KILNID@ OR @KILNID@ IS NULL)
|
|
|
- GROUP BY
|
|
|
- GROUPING SETS ((GOODSTYPENAME,GOODSNAME,GOOD))
|
|
|
- ) GROUP BY
|
|
|
- GROUPING SETS ((产品类别,产品名称),()) ".Replace("{BUILDINGNO}", buding);
|
|
|
+ }
|
|
|
+ #endregion
|
|
|
+ using (IDataAccess conn = DataAccess.Create())
|
|
|
+ {
|
|
|
+ if (proc == "13" || proc == "35")
|
|
|
+ {
|
|
|
+ conn.BeginTransaction();
|
|
|
+ string sqltmp = @" insert into TMP_PORD_KILIN_QUALITY_DEFECT(GOODSTYPECODE,
|
|
|
+ GOODSTYPENAME,
|
|
|
+ GOODSCODE,
|
|
|
+ DEFECTGROUPNAME,
|
|
|
+ DEFECT,
|
|
|
+ DEFECTID,
|
|
|
+ DEFECTNAME,
|
|
|
+ GOODSLEVELTYPEID,
|
|
|
+ PRODUCTIONDATAID) (SELECT DISTINCT gt.goodstypecode
|
|
|
+ ,gt.goodstypename
|
|
|
+ ,g.goodscode
|
|
|
+ ,pdp.defectgroupname
|
|
|
+ ,to_char(pdp.defectgroupname || '_' ||
|
|
|
+ m.defectname) AS defect
|
|
|
+ ,d.defectid
|
|
|
+ ,m.defectname
|
|
|
+ ,pp.goodsleveltypeid
|
|
|
+ ,pp.productiondataid
|
|
|
+ FROM
|
|
|
+ ( SELECT MAX(PD.PRODUCTIONDATAID) PRODUCTIONDATAID
|
|
|
+ ,PD.GROUTINGDAILYDETAILID
|
|
|
+ FROM TP_PM_PRODUCTIONDATA PD
|
|
|
+ INNER JOIN TP_PC_GROUTINGLINE GL ON GL.GROUTINGLINEID = PD.GROUTINGLINEID
|
|
|
+ WHERE
|
|
|
+ PD.PROCEDUREID = " + proc + @"
|
|
|
+ AND PD.CHECKTIME >= date'" + Convert.ToDateTime(context.Request["datebeginMaster"] + "-01").ToString("yyyy-MM-dd") + @"'
|
|
|
+ AND PD.CHECKTIME <= date'" + Convert.ToDateTime(context.Request["dateendMaster"]+ "-01").AddMonths(1).AddDays(-1).ToString("yyyy-MM-dd") + @"'
|
|
|
+ AND GL.BUILDINGNO " + buding + @"
|
|
|
+ AND pd.goodsleveltypeid <> 4
|
|
|
+ GROUP BY PD.GROUTINGDAILYDETAILID
|
|
|
+ ) P
|
|
|
+ -- 缺陷工序分组的 工序id1 工序id2 对应
|
|
|
+ inner join tp_pm_productiondata pp on p.productiondataid = pp.productiondataid
|
|
|
+ INNER JOIN tp_pm_productiondata ppdg ON p.groutingdailydetailid = ppdg.groutingdailydetailid AND ppdg.valueflag = '1'
|
|
|
+ INNER JOIN TP_MST_GOODS G ON G.GOODSID = PP.GOODSID
|
|
|
+ INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID
|
|
|
+ INNER JOIN TP_PM_DEFECT D ON P.PRODUCTIONDATAID = D.PRODUCTIONDATAID
|
|
|
+ INNER JOIN TP_MST_DEFECT M ON ( M.DEFECTID = D.DEFECTID AND M.DEFECTID > 0 )
|
|
|
+ INNER JOIN TP_MST_DEFECTGROUP PDP ON PDP.DEFECTID = D.DEFECTID AND PDP.DEFECTGROUPTYPE LIKE '每窑%'
|
|
|
+ AND (
|
|
|
+ -- ( PDP.PROCEDUREID1 = PR.PROCEDUREID OR PDP.PROCEDUREID2 = PR.PROCEDUREID )
|
|
|
+ --xuwei 2020-09-01 add 重烧的没有责任工序也算
|
|
|
+ -- 20250417 改为用 是否走过 tp_mst_defectgroup 缺陷工序分组的 工序id1 工序id2 为基准
|
|
|
+ pdp.procedureid1 = ppdg.procedureid OR pdp.procedureid2 = ppdg.procedureid
|
|
|
+ )
|
|
|
+ ) ";
|
|
|
+ int count = conn.ExecuteNonQuery(sqltmp);
|
|
|
|
|
|
- //获取查询条件
|
|
|
- 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"]).AddSeconds(1), DataType.DateTime));
|
|
|
- sqlPara.Add(new CDAParameter("BUILDINGNO", context.Request["buildingnoMaster"]));
|
|
|
- sqlPara.Add(new CDAParameter("KILNID", context.Request["kilnidMaster"]));
|
|
|
- sqlPara.Add(new CDAParameter("PROCEDUREID", context.Request["procedureidMaster"]));
|
|
|
- sqlPara.Add(new CDAParameter("BEGINMONTH", 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", context.Request["dateendMaster"].Substring(0, context.Request["dateendMaster"].IndexOf("-")) + context.Request["dateendMaster"].Substring(context.Request["dateendMaster"].IndexOf("-") + 1).PadLeft(2, '0')));
|
|
|
|
|
|
- //获取分页数据
|
|
|
- int total = 0;
|
|
|
- DataTable dt = conn.ExecuteDatatable(sqlStr, sqlPara.ToArray());
|
|
|
- for (int m = dt.Columns.Count - 1; m > 0; m--)
|
|
|
- {
|
|
|
- for (int mn = 0; mn < defectallnames.Count; mn++)
|
|
|
- {
|
|
|
- if (dt.Columns[m].ColumnName.Contains(defectallnames[mn]))
|
|
|
- {
|
|
|
- dt.Columns.Remove(dt.Columns[m].ColumnName);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- string jsonStr = new JsonResult(dt) { total = total }.ToJson();
|
|
|
- context.Response.Write(jsonStr);
|
|
|
- }
|
|
|
- }
|
|
|
+ //读取报表数据
|
|
|
+ sqlStr = @"
|
|
|
+ SELECT
|
|
|
+ TA.GOODSNAME AS 产品名称,
|
|
|
+ TA.GOODSCODE AS 产品编码,
|
|
|
+ DECODE( TA.GID, 3, '合计', TA.GOODSTYPENAME ) AS 产品类别,
|
|
|
+ DECODE( TA.OUT_K, 0, NULL, TA.OUT_K ) AS 出窑数,
|
|
|
+ DECODE( TA.COUNT_U4, 0, NULL, TA.COUNT_U4 ) AS U级,
|
|
|
+ DECODE( TA.COUNT_U5 , 0, NULL, TA.COUNT_U5 ) A级,
|
|
|
+ DECODE( TA.COUNT_AA, 0, NULL, TA.COUNT_AA ) AS AA级,
|
|
|
+ DECODE(TA.COUNT_U7, 0, NULL, TA.COUNT_U7) AS 去AA,
|
|
|
+ DECODE( TA.COUNT_R, 0, NULL, TA.COUNT_R ) AS R级,
|
|
|
+ DECODE( TA.Waste, 0, NULL, TA.Waste ) AS F级,
|
|
|
+ CASE WHEN TA.OUT_K IS NULL OR TA.OUT_K = 0 THEN NULL ELSE ROUND( ( TA.COUNT_U4 + TA.COUNT_U5 + TA.COUNT_AA ) / TA.OUT_K, 4 ) * 100 END AS UA率,
|
|
|
+ TD.*
|
|
|
+ FROM
|
|
|
+ (
|
|
|
+ SELECT
|
|
|
+ GROUPING_ID ( GT.GOODSTYPECODE, G.GOODSCODE ) GID,
|
|
|
+ GT.GOODSTYPECODE,
|
|
|
+ GT.GOODSTYPENAME,
|
|
|
+ G.GOODSCODE,
|
|
|
+ G.GOODSNAME,
|
|
|
+ SUM( T.OUT_K ) OUT_K,
|
|
|
+ SUM( CASE WHEN T.H_FLAG = 0 AND T.AA_FLAG = 0 AND T.GOODSLEVELTYPEID = 4 THEN 1 ELSE 0 END ) COUNT_U4, -- 直接正品
|
|
|
+ SUM( CASE WHEN T.H_FLAG = 0 AND T.AA_FLAG = 0 AND T.GOODSLEVELTYPEID = 5 THEN 1 ELSE 0 END ) COUNT_U5, -- 直接副品
|
|
|
+ COUNT( DISTINCT CASE WHEN T.AA_FLAG = 0 AND (T.GOODSLEVELTYPEID = 7 or T.H_FLAG = 1) THEN t.BARCODE ELSE NULL END ) COUNT_U7, -- 当前的等级是次品或经过了研磨、堵漏气、刷洗不良、直接冷补、研磨冷补工序
|
|
|
+ SUM( CASE WHEN T.AA_FLAG = 0 and t.h_flag=0 AND T.GOODSLEVELTYPEID = 6 AND T.REWORKPROCEDUREID = 19 THEN 1 ELSE 0 END ) AS COUNT_R,
|
|
|
+ COUNT(DISTINCT CASE WHEN T.AA_FLAG = 1 AND T.GOODSLEVELTYPEID IN ( 4, 5 ) AND RPD.PROCEDUREID IN ( 22, 23, 37, 20, 41 ) THEN t.BARCODE ELSE NULL END ) COUNT_AA, -- 研磨、堵漏气、刷洗不良、直接冷补、研磨冷补合格数
|
|
|
+ SUM( CASE WHEN T.H_FLAG = 0 AND T.AA_FLAG = 0 AND T.GOODSLEVELTYPEID = 20 THEN 1 ELSE 0 END ) Waste -- 直接次品
|
|
|
+ FROM
|
|
|
+ (
|
|
|
+ --出窑数
|
|
|
+ SELECT
|
|
|
+ DISTINCT
|
|
|
+ pd.Barcode,
|
|
|
+ NULL MPDID,
|
|
|
+ 0 GOODSLEVELTYPEID,
|
|
|
+ PD.GOODSID,
|
|
|
+ 0 REWORKPROCEDUREID,
|
|
|
+ 1 OUT_K,
|
|
|
+ -1 H_FLAG,
|
|
|
+ -1 AA_FLAG,--区分AA级 可以不再出窑数的范围内
|
|
|
+ 0 Waste
|
|
|
+ FROM
|
|
|
+ TP_PM_PRODUCTIONDATA PD
|
|
|
+ INNER JOIN TP_PC_GROUTINGLINE GL ON GL.GROUTINGLINEID = PD.GROUTINGLINEID
|
|
|
+
|
|
|
+ WHERE
|
|
|
+ PD.PROCEDUREID = @PROCEDUREID@
|
|
|
+ AND PD.CHECKFLAG = 1
|
|
|
+ AND PD.CREATETIME >= @DATEBEGIN@
|
|
|
+ AND PD.CREATETIME < @DATEEND@
|
|
|
+ AND GL.BUILDINGNO {BUILDINGNO}
|
|
|
+ UNION ALL
|
|
|
+ --U级 A级 F级 去AA级 R级
|
|
|
+ SELECT
|
|
|
+ PD.BARCODE,
|
|
|
+ MAX( PMAX.PRODUCTIONDATAID ) MPDID,
|
|
|
+ PDD.GOODSLEVELTYPEID,
|
|
|
+ PDD.GOODSID,
|
|
|
+ PDD.REWORKPROCEDUREID,
|
|
|
+ 0 OUT_K,
|
|
|
+ CASE WHEN sum( PMAX.PRODUCTIONDATAID ) > 0 THEN 1 ELSE 0 END H_FLAG,
|
|
|
+ 0 AA_FLAG,--区分AA级 可以不再出窑数的范围内
|
|
|
+ 0 Waste
|
|
|
+ FROM
|
|
|
+ ( SELECT MAX(PD.PRODUCTIONDATAID) PRODUCTIONDATAID
|
|
|
+ ,PD.GOODSID,PD.BARCODE
|
|
|
+ ,PD.GROUTINGDAILYDETAILID ,PD.KILNCARBATCHNO
|
|
|
+ FROM TP_PM_PRODUCTIONDATA PD
|
|
|
+ INNER JOIN TP_PC_GROUTINGLINE GL ON GL.GROUTINGLINEID = PD.GROUTINGLINEID
|
|
|
+ WHERE
|
|
|
+ PD.PROCEDUREID = @PROCEDUREID@
|
|
|
+ -- AND PD.VALUEFLAG = '1'
|
|
|
+ --AND PD.CHECKBATCHNO = 1
|
|
|
+ AND PD.CREATETIME >= @DATEBEGIN@
|
|
|
+ AND PD.CREATETIME < @DATEEND@
|
|
|
+ AND PD.CHECKTIME >= @DATEBEGIN@
|
|
|
+ AND PD.CHECKTIME < @DATEEND@
|
|
|
+ AND GL.BUILDINGNO {BUILDINGNO}
|
|
|
+ GROUP BY PD.GOODSID,PD.BARCODE ,PD.GROUTINGDAILYDETAILID ,PD.KILNCARBATCHNO
|
|
|
+ ) PD
|
|
|
+ LEFT JOIN TP_PM_PRODUCTIONDATA PMAX ON PMAX.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID
|
|
|
+ and pmax.KILNCARBATCHNO= pd.KILNCARBATCHNO
|
|
|
+ AND PMAX.PRODUCTIONDATAID < PD.PRODUCTIONDATAID AND PMAX.VALUEFLAG = '1' AND PMAX.PROCEDUREMODEL = '1'
|
|
|
+ /*20 研磨 22 直接冷补 23 研磨后冷补(非回收) 37 堵漏气 41 刷洗不良*/
|
|
|
+ AND PMAX.PROCEDUREID IN (20, 22, 23, 37, 41)
|
|
|
+ INNER JOIN TP_PM_PRODUCTIONDATA PDD ON PDD.PRODUCTIONDATAID = PD.PRODUCTIONDATAID
|
|
|
+
|
|
|
+ GROUP BY
|
|
|
+ PD.BARCODE,
|
|
|
+ PDD.GOODSLEVELTYPEID,
|
|
|
+ PDD.GOODSID,
|
|
|
+ PDD.REWORKPROCEDUREID
|
|
|
+ UNION ALL
|
|
|
+ --AA级 包含出窑数和不在出窑数范围内的
|
|
|
+ SELECT
|
|
|
+ PD.BARCODE,
|
|
|
+ MAX( PMAX.PRODUCTIONDATAID ) MPDID,
|
|
|
+ PDD.GOODSLEVELTYPEID,
|
|
|
+ PDD.GOODSID,
|
|
|
+ PDD.REWORKPROCEDUREID,
|
|
|
+ 0 OUT_K,
|
|
|
+ CASE WHEN sum( PMAX.PRODUCTIONDATAID ) > 0 THEN 1 ELSE 0 END H_FLAG,
|
|
|
+ 1 AA_FLAG,--区分AA级 可以不再出窑数的范围内
|
|
|
+ 0 Waste
|
|
|
+ FROM
|
|
|
+ ( SELECT MAX(PD.PRODUCTIONDATAID) PRODUCTIONDATAID
|
|
|
+ ,PD.GOODSID,PD.BARCODE
|
|
|
+ ,PD.GROUTINGDAILYDETAILID ,pd.KILNCARBATCHNO
|
|
|
+ FROM TP_PM_PRODUCTIONDATA PD
|
|
|
+ INNER JOIN TP_PC_GROUTINGLINE GL ON GL.GROUTINGLINEID = PD.GROUTINGLINEID
|
|
|
+ WHERE
|
|
|
+ PD.PROCEDUREID = @PROCEDUREID@
|
|
|
+ -- AND PD.VALUEFLAG = '1'
|
|
|
+ -- AND PD.CHECKBATCHNO = 1
|
|
|
+ AND PD.CREATETIME >= @DATEBEGIN@
|
|
|
+ AND PD.CREATETIME < @DATEEND@
|
|
|
+ AND GL.BUILDINGNO {BUILDINGNO}
|
|
|
+ GROUP BY PD.GOODSID,PD.BARCODE ,PD.GROUTINGDAILYDETAILID ,pd.KILNCARBATCHNO
|
|
|
+ ) PD
|
|
|
+ LEFT JOIN TP_PM_PRODUCTIONDATA PMAX ON PMAX.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID and pmax.KILNCARBATCHNO= pd.KILNCARBATCHNO
|
|
|
+ AND PMAX.PRODUCTIONDATAID < PD.PRODUCTIONDATAID AND PMAX.VALUEFLAG = '1' AND PMAX.PROCEDUREMODEL = '1'
|
|
|
+ /*20 研磨 22 直接冷补 23 研磨后冷补(非回收) 37 堵漏气 41 刷洗不良*/
|
|
|
+ AND PMAX.PROCEDUREID IN (20, 22, 23, 37, 41)
|
|
|
+ INNER JOIN TP_PM_PRODUCTIONDATA PDD ON PDD.PRODUCTIONDATAID = PD.PRODUCTIONDATAID
|
|
|
+
|
|
|
+ GROUP BY
|
|
|
+ PD.BARCODE,
|
|
|
+ PDD.GOODSLEVELTYPEID,
|
|
|
+ PDD.GOODSID,
|
|
|
+ PDD.REWORKPROCEDUREID
|
|
|
+
|
|
|
+ ) T
|
|
|
+ LEFT JOIN TP_PM_PRODUCTIONDATA RPD ON RPD.PRODUCTIONDATAID = T.MPDID
|
|
|
+ INNER JOIN TP_MST_GOODS G ON G.GOODSID = T.GOODSID
|
|
|
+ INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID
|
|
|
+ GROUP BY
|
|
|
+ GROUPING SETS ( ( GT.GOODSTYPECODE, GT.GOODSTYPENAME, G.GOODSCODE, G.GOODSNAME ), ( GT.GOODSTYPECODE, GT.GOODSTYPENAME ), ( ) )
|
|
|
+ ) TA
|
|
|
+ LEFT JOIN (
|
|
|
+ SELECT
|
|
|
+ *
|
|
|
+ FROM
|
|
|
+ (
|
|
|
+ SELECT
|
|
|
+ CASE WHEN TT.GID IN ( 12, 13, 15 ) THEN 3 WHEN TT.GID IN ( 4, 5, 7 ) THEN 1 ELSE 0 END AS D_GID,
|
|
|
+ TT.GOODSTYPECODE D_GOODSTYPECODE, --,TT.GOODSTYPENAME D_
|
|
|
+ TT.GOODSCODE D_GOODSCODE,
|
|
|
+ CASE WHEN TT.GID IN ( 1, 5, 13 ) THEN TT.DEFECT || '合计' WHEN TT.GID IN ( 3, 7, 15 ) THEN '合计' ELSE TT.DEFECT END AS DEFECT,
|
|
|
+ TT.CNUM
|
|
|
+ FROM (SELECT grouping_id(ppp.goodstypecode
|
|
|
+ ,ppp.goodscode
|
|
|
+ ,(case when INSTR(to_char(ppp.defectgroupname), '施釉缺陷') > 0 then '施釉缺陷' else to_char(ppp.defectgroupname) end )
|
|
|
+ ,ppp.defectname) AS gid
|
|
|
+ ,ppp.goodstypecode
|
|
|
+ ,ppp.goodstypename
|
|
|
+ ,ppp.goodscode
|
|
|
+ ,(case when INSTR(to_char(ppp.defectgroupname), '施釉缺陷') > 0 then '施釉缺陷' else to_char(ppp.defectgroupname) end )
|
|
|
+ ,to_char((case when INSTR(to_char(ppp.defectgroupname), '施釉缺陷') > 0 then '施釉缺陷' else to_char(ppp.defectgroupname) end ) || '_' || ppp.defectname) AS defect
|
|
|
+ ,SUM(CASE
|
|
|
+ WHEN ppp.defectid = 11
|
|
|
+ AND (ppp.goodsleveltypeid = 4 ) THEN
|
|
|
+ 0
|
|
|
+ ELSE
|
|
|
+ 1
|
|
|
+ END) AS cnum
|
|
|
+
|
|
|
+ FROM TMP_PORD_KILIN_QUALITY_DEFECT ppp
|
|
|
+ GROUP BY GROUPING SETS((ppp.goodstypecode, ppp.goodstypename, ppp.goodscode, (case when INSTR(to_char(ppp.defectgroupname), '施釉缺陷') > 0 then '施釉缺陷' else to_char(ppp.defectgroupname) end ), ppp.defectname),
|
|
|
+ (ppp.goodstypecode, ppp.goodstypename, ppp.goodscode, (case when INSTR(to_char(ppp.defectgroupname), '施釉缺陷') > 0 then '施釉缺陷' else to_char(ppp.defectgroupname) end )),
|
|
|
+ (ppp.goodstypecode, ppp.goodstypename, ppp.goodscode),
|
|
|
+ (ppp.goodstypecode, ppp.goodstypename, (case when INSTR(to_char(ppp.defectgroupname), '施釉缺陷') > 0 then '施釉缺陷' else to_char(ppp.defectgroupname) end ), ppp.defectname),
|
|
|
+ (ppp.goodstypecode, ppp.goodstypename, (case when INSTR(to_char(ppp.defectgroupname), '施釉缺陷') > 0 then '施釉缺陷' else to_char(ppp.defectgroupname) end )),
|
|
|
+ (ppp.goodstypecode, ppp.goodstypename),
|
|
|
+ ((case when INSTR(to_char(ppp.defectgroupname), '施釉缺陷') > 0 then '施釉缺陷' else to_char(ppp.defectgroupname) end ), ppp.defectname),
|
|
|
+ ((case when INSTR(to_char(ppp.defectgroupname), '施釉缺陷') > 0 then '施釉缺陷' else to_char(ppp.defectgroupname) end )),())
|
|
|
+ ORDER BY ppp.goodstypecode
|
|
|
+ ,ppp.goodscode
|
|
|
+ ,(case when INSTR(to_char(ppp.defectgroupname), '施釉缺陷') > 0 then '施釉缺陷' else to_char(ppp.defectgroupname) end )
|
|
|
+ ,ppp.defectname) tt)
|
|
|
+ PIVOT (
|
|
|
+ SUM( CNUM ) FOR DEFECT IN ({DEFECT},'合计' AS 合计
|
|
|
+ )
|
|
|
+ )
|
|
|
+ ) TD ON TA.GID = TD.D_GID
|
|
|
+ AND
|
|
|
+ (
|
|
|
+ ( TA.GID = 0 AND TA.GOODSTYPECODE = TD.D_GOODSTYPECODE AND TA.GOODSCODE = TD.D_GOODSCODE )
|
|
|
+ OR ( TA.GID = 1 AND TA.GOODSTYPECODE = TD.D_GOODSTYPECODE )
|
|
|
+ OR ( TA.GID = 3 )
|
|
|
+ )
|
|
|
+ where ta.OUT_K <> 0
|
|
|
+ OR ta.COUNT_U4 <> 0 OR ta.COUNT_AA <> 0
|
|
|
+ OR ta.COUNT_U5 <> 0
|
|
|
+ OR ta.COUNT_U7 <> 0
|
|
|
+ OR ta.COUNT_R <> 0
|
|
|
+ OR ta.waste <> 0
|
|
|
+ ORDER BY TA.GOODSTYPENAME,TA.GOODSCODE
|
|
|
+ ".Replace("{DEFECT}", defectStr).Replace("{BUILDINGNO}", buding).Replace("{goodsCodes}", goodssql);
|
|
|
+ }
|
|
|
+
|
|
|
+ else if (proc == "888")
|
|
|
+ {
|
|
|
+ //读取报表数据
|
|
|
+ sqlStr = @" SELECT
|
|
|
+ TA.GOODSNAME AS 产品名称,
|
|
|
+ TA.GOODSCODE AS 产品编码
|
|
|
+ ,DECODE( TA.GID, 3, '合计', TA.GOODSTYPENAME ) AS 产品类别
|
|
|
+ ,DECODE(TA.count_l, 0, NULL, TA.count_l) AS 检验数
|
|
|
+ ,DECODE( TA.COUNT_AA, 0, NULL, TA.COUNT_AA ) AS AA级
|
|
|
+ ,DECODE(ta.count_ym, 0, NULL, ta.count_ym) AS 研磨_检验数
|
|
|
+ ,DECODE(ta.count_ym_ok, 0, NULL, ta.count_ym_ok) AS 研磨_合格数
|
|
|
+
|
|
|
+ ,DECODE(ta.count_lb, 0, NULL, ta.count_lb) AS 直接冷补_检验数
|
|
|
+ ,DECODE(ta.count_lb_ok, 0, NULL, ta.count_lb_ok) AS 直接冷补_合格数
|
|
|
+ ,DECODE(ta.count_ymlb, 0, NULL, ta.count_ymlb) AS 研磨后冷补_检验数
|
|
|
+ ,DECODE(ta.count_ymlb_ok, 0, NULL, ta.count_ymlb_ok) AS 研磨后冷补_合格数
|
|
|
+ ,DECODE(ta.count_dlq, 0, NULL, ta.count_dlq) AS 堵漏气_检验数
|
|
|
+ ,DECODE(ta.count_dlq_ok, 0, NULL, ta.count_dlq_ok) AS 堵漏气_合格数
|
|
|
+ --,DECODE(ta.count_sxbl, 0, NULL, ta.count_sxbl) AS 刷洗不良_检验数
|
|
|
+ --,DECODE(ta.count_sxbl_ok, 0, NULL, ta.count_sxbl_ok) AS 刷洗不良_合格数
|
|
|
+ ,decode(ta.count_r, 0, NULL, ta.count_r) AS 去R
|
|
|
+ ,DECODE(TA.COUNT_AAS, 0, NULL, TA.COUNT_AAS) AS 再去AA
|
|
|
+ ,DECODE( TA.Waste, 0, NULL, TA.Waste ) AS F级
|
|
|
+ ,TD.*
|
|
|
+ FROM
|
|
|
+ (
|
|
|
+ SELECT
|
|
|
+ GROUPING_ID ( GT.GOODSTYPECODE, G.GOODSCODE ) GID,
|
|
|
+ GT.GOODSTYPECODE,
|
|
|
+ GT.GOODSTYPENAME,
|
|
|
+ G.GOODSCODE,
|
|
|
+ G.GOODSNAME,
|
|
|
+ SUM( CASE WHEN T.flagaa = 1 and t.h_flag = 2 THEN 1 ELSE 0 END ) AS COUNT_AAF,
|
|
|
+ SUM( CASE WHEN T.flagaa = 1 and t.h_flag = 3 THEN 1 ELSE 0 END ) AS COUNT_AAS,-- 再去AA
|
|
|
+ COUNT(DISTINCT CASE WHEN T.flagaa = 0 and rpd.procedureid = 20 THEN rpd.barcode ELSE null END ) AS count_ym , --研磨
|
|
|
+ COUNT(DISTINCT CASE WHEN T.flagaa = 0 and rpd.procedureid = 22 THEN rpd.barcode ELSE null END ) AS count_lb ,--直接冷补,
|
|
|
+ COUNT(DISTINCT CASE WHEN T.flagaa = 0 and rpd.procedureid = 23 THEN rpd.barcode ELSE null END ) AS count_ymlb, --研磨后冷补,
|
|
|
+ COUNT(DISTINCT CASE WHEN T.flagaa = 0 and rpd.procedureid = 37 THEN rpd.barcode ELSE null END ) AS count_dlq ,--堵漏气,
|
|
|
+ COUNT(DISTINCT CASE WHEN T.flagaa = 0 and rpd.procedureid = 41 THEN rpd.barcode ELSE null END ) AS count_sxbl, --刷洗不良,
|
|
|
+ COUNT(DISTINCT CASE WHEN T.flagaa = 0 AND t.goodsleveltypeid IN (4, 5) and rpd.procedureid = 20 THEN rpd.barcode ELSE null END ) AS count_ym_ok , --研磨
|
|
|
+ COUNT(DISTINCT CASE WHEN T.flagaa = 0 AND t.goodsleveltypeid IN (4, 5) and rpd.procedureid = 22 THEN rpd.barcode ELSE null END ) AS count_lb_ok ,--直接冷补,
|
|
|
+ COUNT(DISTINCT CASE WHEN T.flagaa = 0 AND t.goodsleveltypeid IN (4, 5) and rpd.procedureid = 23 THEN rpd.barcode ELSE null END ) AS count_ymlb_ok, --研磨后冷补,
|
|
|
+ COUNT(DISTINCT CASE WHEN T.flagaa = 0 AND t.goodsleveltypeid IN (4, 5) and rpd.procedureid = 37 THEN rpd.barcode ELSE null END ) AS count_dlq_ok ,--堵漏气,
|
|
|
+ COUNT(DISTINCT CASE WHEN T.flagaa = 0 AND t.goodsleveltypeid IN (4, 5) and rpd.procedureid = 41 THEN rpd.barcode ELSE null END ) AS count_sxbl_ok, --刷洗不良,
|
|
|
+ COUNT(DISTINCT CASE WHEN T.flagaa = 0 and rpd.procedureid IN (22, 23, 37, 20, 41) THEN rpd.barcode ELSE null END) count_l ,
|
|
|
+ COUNT(DISTINCT CASE WHEN T.flagaa = 0 and T.GOODSLEVELTYPEID IN ( 4, 5 ) AND RPD.PROCEDUREID IN ( 22, 23, 37, 20, 41 ) THEN rpd.barcode ELSE null END ) COUNT_AA, -- 研磨、堵漏气、刷洗不良、直接冷补、研磨冷补合格数
|
|
|
+ SUM( CASE WHEN T.flagaa = 0 and t.h_flag = 1 and T.GOODSLEVELTYPEID = 20 THEN 1 ELSE 0 END ) Waste -- 二次以后得报废
|
|
|
+ ,COUNT(DISTINCT CASE WHEN t.flagaa = 1 AND t.goodsleveltypeid = 6 AND t.reworkprocedureid = 19 THEN rpd.barcode ELSE null END) AS count_r
|
|
|
+ FROM
|
|
|
+ (
|
|
|
+ SELECT
|
|
|
+ TO_CHAR(PD.BARCODE),
|
|
|
+ MAX( PMAX.PRODUCTIONDATAID ) MPDID,
|
|
|
+ PDD.GOODSLEVELTYPEID,
|
|
|
+ PDD.GOODSID,
|
|
|
+ pdd.reworkprocedureid ,
|
|
|
+ CASE WHEN sum( PMAX.PRODUCTIONDATAID ) > 0 THEN 1 ELSE 0 END H_FLAG , 0 flagaa
|
|
|
+ FROM
|
|
|
+ ( SELECT MAX(PD.PRODUCTIONDATAID) PRODUCTIONDATAID
|
|
|
+ ,PD.GOODSID,PD.BARCODE
|
|
|
+ ,PD.GROUTINGDAILYDETAILID
|
|
|
+ FROM TP_PM_PRODUCTIONDATA PD
|
|
|
+ INNER JOIN TP_PC_GROUTINGLINE GL ON GL.GROUTINGLINEID = PD.GROUTINGLINEID
|
|
|
+ WHERE
|
|
|
+ PD.PROCEDUREID = @PROCEDUREID@
|
|
|
+ -- AND PD.VALUEFLAG = '1'
|
|
|
+ -- AND PD.CHECKBATCHNO = 1
|
|
|
+ AND PD.CREATETIME >= @DATEBEGIN@
|
|
|
+ AND PD.CREATETIME < @DATEEND@
|
|
|
+ AND GL.BUILDINGNO {BUILDINGNO}
|
|
|
+ GROUP BY PD.GOODSID,PD.BARCODE ,PD.GROUTINGDAILYDETAILID
|
|
|
+ ) PD
|
|
|
+ INNER JOIN TP_PM_PRODUCTIONDATA PDD ON PDD.PRODUCTIONDATAID = PD.PRODUCTIONDATAID
|
|
|
+ LEFT JOIN TP_PM_PRODUCTIONDATA PMAX ON PMAX.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID
|
|
|
+ AND PMAX.PRODUCTIONDATAID < PD.PRODUCTIONDATAID AND PMAX.VALUEFLAG = '1' AND PMAX.PROCEDUREMODEL = '1' and pmax.KILNCARBATCHNO= PDD.KILNCARBATCHNO
|
|
|
+ /*20 研磨 22 直接冷补 23 研磨后冷补(非回收) 37 堵漏气 41 刷洗不良*/
|
|
|
+ AND PMAX.PROCEDUREID IN (20, 22, 23, 37, 41)
|
|
|
+
|
|
|
+ GROUP BY
|
|
|
+ PD.BARCODE,
|
|
|
+ PDD.GOODSLEVELTYPEID,
|
|
|
+ PDD.GOODSID,
|
|
|
+ PDD.REWORKPROCEDUREID
|
|
|
+ -- 再去AA
|
|
|
+ UNION ALL
|
|
|
+ SELECT
|
|
|
+ TO_CHAR(PD.BARCODE),
|
|
|
+ MAX( PMAX.PRODUCTIONDATAID ) MPDID,
|
|
|
+ PDD.GOODSLEVELTYPEID,
|
|
|
+ PDD.GOODSID,
|
|
|
+ pdd.reworkprocedureid ,
|
|
|
+ CASE WHEN sum( PMAX.PRODUCTIONDATAID ) > 0 THEN (CASE WHEN PDD.checkbatchno = 1 and PDD.goodsleveltypeid !=7 or pdd.goodsleveltypeid = 5 or pdd.goodsleveltypeid = 4 THEN 2 else 3 end) ELSE 0 END H_FLAG , 1 flagaa
|
|
|
+ FROM
|
|
|
+ ( SELECT MAX(PD.PRODUCTIONDATAID) PRODUCTIONDATAID
|
|
|
+ ,PD.GOODSID,PD.BARCODE
|
|
|
+ ,PD.GROUTINGDAILYDETAILID
|
|
|
+ FROM TP_PM_PRODUCTIONDATA PD
|
|
|
+ INNER JOIN TP_PC_GROUTINGLINE GL ON GL.GROUTINGLINEID = PD.GROUTINGLINEID
|
|
|
+ WHERE
|
|
|
+ PD.PROCEDUREID = @PROCEDUREID@
|
|
|
+ -- AND PD.VALUEFLAG = '1'
|
|
|
+ -- AND PD.CHECKBATCHNO = 1
|
|
|
+ AND PD.CREATETIME >= @DATEBEGIN@
|
|
|
+ AND PD.CREATETIME < @DATEEND@
|
|
|
+ AND GL.BUILDINGNO {BUILDINGNO}
|
|
|
+ GROUP BY PD.GOODSID,PD.BARCODE ,PD.GROUTINGDAILYDETAILID
|
|
|
+ ) PD INNER JOIN TP_PM_PRODUCTIONDATA PDD ON PDD.PRODUCTIONDATAID = PD.PRODUCTIONDATAID
|
|
|
+ LEFT JOIN TP_PM_PRODUCTIONDATA PMAX ON PMAX.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID
|
|
|
+ AND PMAX.PRODUCTIONDATAID < PD.PRODUCTIONDATAID AND PMAX.VALUEFLAG = '1' AND PMAX.PROCEDUREMODEL = '1' and pmax.KILNCARBATCHNO= PDD.KILNCARBATCHNO
|
|
|
+ /*20 研磨 22 直接冷补 23 研磨后冷补(非回收) 37 堵漏气 41 刷洗不良*/
|
|
|
+ AND PMAX.PROCEDUREID IN (20, 22, 23, 37, 41)
|
|
|
+
|
|
|
+ GROUP BY
|
|
|
+ PD.BARCODE,
|
|
|
+ PDD.GOODSLEVELTYPEID,
|
|
|
+ PDD.GOODSID,
|
|
|
+ PDD.checkbatchno,pdd.reworkprocedureid
|
|
|
+
|
|
|
+ ) T
|
|
|
+ LEFT JOIN TP_PM_PRODUCTIONDATA RPD ON RPD.PRODUCTIONDATAID = T.MPDID
|
|
|
+ INNER JOIN TP_MST_GOODS G ON G.GOODSID = T.GOODSID
|
|
|
+ INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID
|
|
|
+ GROUP BY
|
|
|
+ GROUPING SETS ( ( GT.GOODSTYPECODE, GT.GOODSTYPENAME, G.GOODSCODE, G.GOODSNAME ), ( GT.GOODSTYPECODE, GT.GOODSTYPENAME ), ( ) )
|
|
|
+ ) TA
|
|
|
+ LEFT JOIN (
|
|
|
+ SELECT
|
|
|
+ *
|
|
|
+ FROM
|
|
|
+ (
|
|
|
+ SELECT
|
|
|
+ CASE WHEN TT.GID IN ( 12, 13, 15 ) THEN 3 WHEN TT.GID IN ( 4, 5, 7 ) THEN 1 ELSE 0 END AS D_GID,
|
|
|
+ TT.GOODSTYPECODE D_GOODSTYPECODE, --,TT.GOODSTYPENAME D_
|
|
|
+ TT.GOODSCODE D_GOODSCODE,
|
|
|
+ CASE WHEN TT.GID IN ( 1, 5, 13 ) THEN TT.DEFECT || '合计' WHEN TT.GID IN ( 3, 7, 15 ) THEN '合计' ELSE TT.DEFECT END AS DEFECT,
|
|
|
+ TT.CNUM
|
|
|
+ FROM (SELECT grouping_id(ppp.goodstypecode
|
|
|
+ ,ppp.goodscode
|
|
|
+ ,(case when INSTR(to_char(ppp.defectgroupname), '施釉缺陷') > 0 then '施釉缺陷' else to_char(ppp.defectgroupname) end )
|
|
|
+ ,ppp.defectname) AS gid
|
|
|
+ ,ppp.goodstypecode
|
|
|
+ ,ppp.goodstypename
|
|
|
+ ,ppp.goodscode
|
|
|
+ ,(case when INSTR(to_char(ppp.defectgroupname), '施釉缺陷') > 0 then '施釉缺陷' else to_char(ppp.defectgroupname) end )
|
|
|
+ ,to_char((case when INSTR(to_char(ppp.defectgroupname), '施釉缺陷') > 0 then '施釉缺陷' else to_char(ppp.defectgroupname) end ) || '_' || ppp.defectname) AS defect
|
|
|
+ ,SUM(CASE
|
|
|
+ WHEN ppp.defectid = 11
|
|
|
+ AND (ppp.goodsleveltypeid = 4 OR ppp.goodsleveltypeid = 5) THEN
|
|
|
+ 0
|
|
|
+ ELSE
|
|
|
+ 1
|
|
|
+ END) AS cnum
|
|
|
+
|
|
|
+ FROM (SELECT DISTINCT gt.goodstypecode
|
|
|
+ ,gt.goodstypename
|
|
|
+ ,g.goodscode
|
|
|
+ ,pdp.defectgroupname
|
|
|
+ ,to_char(pdp.defectgroupname || '_' ||
|
|
|
+ m.defectname) AS defect
|
|
|
+ ,d.defectid
|
|
|
+ ,m.defectname
|
|
|
+ ,p.goodsleveltypeid
|
|
|
+ ,pp.productiondataid
|
|
|
+ FROM
|
|
|
+
|
|
|
+ (SELECT PD.PRODUCTIONDATAID
|
|
|
+ ,MAX(PMAX.PRODUCTIONDATAID) MPDID
|
|
|
+ ,PD.GOODSLEVELTYPEID
|
|
|
+ ,PD.GOODSID
|
|
|
+ ,PD.GROUTINGDAILYDETAILID
|
|
|
+ FROM TP_PM_PRODUCTIONDATA PD
|
|
|
+ INNER JOIN TP_PM_PRODUCTIONDATA PMAX
|
|
|
+ ON PMAX.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID
|
|
|
+ AND PMAX.PRODUCTIONDATAID < PD.PRODUCTIONDATAID
|
|
|
+ AND PMAX.VALUEFLAG = '1'
|
|
|
+ AND PMAX.PROCEDUREMODEL = '1'
|
|
|
+ /*20 研磨 22 直接冷补 23 研磨后冷补(非回收) 37 堵漏气 41 刷洗不良*/
|
|
|
+ AND PMAX.PROCEDUREID IN (20, 22, 23, 37, 41)
|
|
|
+ INNER JOIN TP_PC_GROUTINGLINE GL
|
|
|
+ ON GL.GROUTINGLINEID = PD.GROUTINGLINEID
|
|
|
+ WHERE PD.PROCEDUREID = @PROCEDUREID@ -- IN (13, 35)
|
|
|
+ -- AND PD.VALUEFLAG = '1'
|
|
|
+ --AND PD.CHECKBATCHNO = 1
|
|
|
+ AND PD.createtime >= @DATEBEGIN@
|
|
|
+ AND PD.createtime < @DATEEND@
|
|
|
+ AND PD.GOODSLEVELTYPEID = 20
|
|
|
+ AND GL.BUILDINGNO {BUILDINGNO}
|
|
|
+ GROUP BY PD.PRODUCTIONDATAID
|
|
|
+ ,PD.GOODSLEVELTYPEID
|
|
|
+ ,PD.GOODSID
|
|
|
+ ,PD.GROUTINGDAILYDETAILID
|
|
|
+ UNION ALL
|
|
|
+ SELECT PD.PRODUCTIONDATAID
|
|
|
+ ,MAX(PMAX.PRODUCTIONDATAID) MPDID
|
|
|
+ ,PD.GOODSLEVELTYPEID
|
|
|
+ ,PD.GOODSID
|
|
|
+ ,PD.GROUTINGDAILYDETAILID
|
|
|
+ FROM TP_PM_PRODUCTIONDATA PD
|
|
|
+ INNER JOIN TP_PM_PRODUCTIONDATA PMAX
|
|
|
+ ON PMAX.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID
|
|
|
+ AND PMAX.PRODUCTIONDATAID < PD.PRODUCTIONDATAID
|
|
|
+ and pmax.KILNCARBATCHNO= pd.KILNCARBATCHNO
|
|
|
+ AND PMAX.VALUEFLAG = '1'
|
|
|
+ AND PMAX.PROCEDUREMODEL = '1'
|
|
|
+ /*20 研磨 22 直接冷补 23 研磨后冷补(非回收) 37 堵漏气 41 刷洗不良*/
|
|
|
+ AND PMAX.PROCEDUREID IN (20, 22, 23, 37, 41)
|
|
|
+ INNER JOIN TP_PC_GROUTINGLINE GL
|
|
|
+ ON GL.GROUTINGLINEID = PD.GROUTINGLINEID
|
|
|
+ WHERE PD.PROCEDUREID = @PROCEDUREID@ -- IN (13, 35)
|
|
|
+ -- AND PD.VALUEFLAG = '1'
|
|
|
+ -- AND PD.CHECKBATCHNO = 1
|
|
|
+ AND PD.CREATETIME >= @DATEBEGIN@
|
|
|
+ AND PD.CREATETIME < @DATEEND@
|
|
|
+ --AND PD.CHECKBATCHNO > 1
|
|
|
+ AND PD.GOODSLEVELTYPEID <> 4
|
|
|
+ AND GL.BUILDINGNO {BUILDINGNO}
|
|
|
+ GROUP BY PD.PRODUCTIONDATAID
|
|
|
+ ,PD.GOODSLEVELTYPEID
|
|
|
+ ,PD.GOODSID
|
|
|
+ ,PD.GROUTINGDAILYDETAILID
|
|
|
+ ) P
|
|
|
+ -- 缺陷工序分组的 工序id1 工序id2 对应
|
|
|
+ inner join tp_pm_productiondata pp on p.groutingdailydetailid = pp.groutingdailydetailid and pp.valueflag = '1'
|
|
|
+
|
|
|
+ INNER JOIN TP_MST_GOODS G ON G.GOODSID = P.GOODSID
|
|
|
+ INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID
|
|
|
+ INNER JOIN TP_PM_DEFECT D ON P.PRODUCTIONDATAID = D.PRODUCTIONDATAID --AND (P.GOODSLEVELTYPEID NOT IN (4, 5) OR D.DEFECTID <> 11)
|
|
|
+ INNER JOIN TP_MST_DEFECT M ON ( M.DEFECTID = D.DEFECTID AND M.DEFECTID > 0 )
|
|
|
+ LEFT JOIN TP_PC_PROCEDURE PR ON PR.PROCEDUREID = D.DEFECTPROCEDUREID
|
|
|
+ INNER JOIN TP_MST_DEFECTGROUP PDP ON PDP.DEFECTID = D.DEFECTID AND PDP.DEFECTGROUPTYPE LIKE '每窑%'
|
|
|
+ AND (
|
|
|
+ -- ( PDP.PROCEDUREID1 = PR.PROCEDUREID OR PDP.PROCEDUREID2 = PR.PROCEDUREID )
|
|
|
+ --xuwei 2020-09-01 add 重烧的没有责任工序也算
|
|
|
+ -- OR @PROCEDUREID@ = 35
|
|
|
+ -- 20250417 改为用 是否走过 tp_mst_defectgroup 缺陷工序分组的 工序id1 工序id2 为基准
|
|
|
+ pdp.procedureid1 = pp.procedureid OR pdp.procedureid2 = pp.procedureid
|
|
|
+ )
|
|
|
+ ) ppp
|
|
|
+ GROUP BY GROUPING SETS((ppp.goodstypecode, ppp.goodstypename, ppp.goodscode, (case when INSTR(to_char(ppp.defectgroupname), '施釉缺陷') > 0 then '施釉缺陷' else to_char(ppp.defectgroupname) end ), ppp.defectname),
|
|
|
+ (ppp.goodstypecode, ppp.goodstypename, ppp.goodscode, (case when INSTR(to_char(ppp.defectgroupname), '施釉缺陷') > 0 then '施釉缺陷' else to_char(ppp.defectgroupname) end )),
|
|
|
+ (ppp.goodstypecode, ppp.goodstypename, ppp.goodscode),
|
|
|
+ (ppp.goodstypecode, ppp.goodstypename, (case when INSTR(to_char(ppp.defectgroupname), '施釉缺陷') > 0 then '施釉缺陷' else to_char(ppp.defectgroupname) end ), ppp.defectname),
|
|
|
+ (ppp.goodstypecode, ppp.goodstypename, (case when INSTR(to_char(ppp.defectgroupname), '施釉缺陷') > 0 then '施釉缺陷' else to_char(ppp.defectgroupname) end )),
|
|
|
+ (ppp.goodstypecode, ppp.goodstypename),
|
|
|
+ ((case when INSTR(to_char(ppp.defectgroupname), '施釉缺陷') > 0 then '施釉缺陷' else to_char(ppp.defectgroupname) end ), ppp.defectname),
|
|
|
+ ((case when INSTR(to_char(ppp.defectgroupname), '施釉缺陷') > 0 then '施釉缺陷' else to_char(ppp.defectgroupname) end )),())
|
|
|
+ ORDER BY ppp.goodstypecode
|
|
|
+ ,ppp.goodscode
|
|
|
+ ,(case when INSTR(to_char(ppp.defectgroupname), '施釉缺陷') > 0 then '施釉缺陷' else to_char(ppp.defectgroupname) end )
|
|
|
+ ,ppp.defectname) tt)
|
|
|
+ PIVOT (
|
|
|
+ SUM( CNUM ) FOR DEFECT IN ({DEFECT},'合计' AS 合计
|
|
|
+ )
|
|
|
+ )
|
|
|
+ ) TD ON TA.GID = TD.D_GID
|
|
|
+ AND
|
|
|
+ (
|
|
|
+ ( TA.GID = 0 AND TA.GOODSTYPECODE = TD.D_GOODSTYPECODE AND TA.GOODSCODE = TD.D_GOODSCODE )
|
|
|
+ OR ( TA.GID = 1 AND TA.GOODSTYPECODE = TD.D_GOODSTYPECODE )
|
|
|
+ OR ( TA.GID = 3 )
|
|
|
+ )
|
|
|
+ where ta.count_aa <> 0
|
|
|
+ OR ta.COUNT_AAS <> 0
|
|
|
+ OR ta.count_ym <> 0
|
|
|
+ OR ta.count_lb <> 0
|
|
|
+ OR ta.count_ymlb <> 0
|
|
|
+ OR ta.count_dlq <> 0
|
|
|
+ OR ta.count_sxbl <> 0
|
|
|
+ OR ta.waste <> 0
|
|
|
+ OR ta.count_r <> 0
|
|
|
+ OR ta.count_ym_ok <> 0
|
|
|
+ OR ta.count_lb_ok <> 0
|
|
|
+ OR ta.count_ymlb_ok <> 0
|
|
|
+ OR ta.count_dlq_ok <> 0
|
|
|
+ OR ta.count_sxbl_ok <> 0
|
|
|
+ ORDER BY TA.GOODSTYPENAME,TA.GOODSCODE
|
|
|
+ ".Replace("{DEFECT}", defectStr).Replace("{BUILDINGNO}", buding).Replace("{goodsCodes}", goodssql);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ //读取报表数据
|
|
|
+ sqlStr = @" SELECT
|
|
|
+ TA.GOODSNAME AS 产品名称,
|
|
|
+ TA.GOODSCODE AS 产品编码
|
|
|
+ ,DECODE( TA.GID, 3, '合计', TA.GOODSTYPENAME ) AS 产品类别
|
|
|
+ ,DECODE(TA.count_l, 0, NULL, TA.count_l) AS 检验数
|
|
|
+ ,DECODE( TA.COUNT_AA, 0, NULL, TA.COUNT_AA ) AS AA级
|
|
|
+ ,DECODE(ta.count_csr, 0, NULL, ta.count_csr) AS 重烧_检验数
|
|
|
+ ,DECODE(ta.count_csr_ok, 0, NULL, ta.count_csr_ok) AS 重烧_合格数
|
|
|
+ ,DECODE(ta.count_ym, 0, NULL, ta.count_ym) AS 研磨_检验数
|
|
|
+ ,DECODE(ta.count_ym_ok, 0, NULL, ta.count_ym_ok) AS 研磨_合格数
|
|
|
+
|
|
|
+ ,DECODE(ta.count_lb, 0, NULL, ta.count_lb) AS 直接冷补_检验数
|
|
|
+ ,DECODE(ta.count_lb_ok, 0, NULL, ta.count_lb_ok) AS 直接冷补_合格数
|
|
|
+ ,DECODE(ta.count_ymlb, 0, NULL, ta.count_ymlb) AS 研磨后冷补_检验数
|
|
|
+ ,DECODE(ta.count_ymlb_ok, 0, NULL, ta.count_ymlb_ok) AS 研磨后冷补_合格数
|
|
|
+ ,DECODE(ta.count_dlq, 0, NULL, ta.count_dlq) AS 堵漏气_检验数
|
|
|
+ ,DECODE(ta.count_dlq_ok, 0, NULL, ta.count_dlq_ok) AS 堵漏气_合格数
|
|
|
+ --,DECODE(ta.count_sxbl, 0, NULL, ta.count_sxbl) AS 刷洗不良_检验数
|
|
|
+ --,DECODE(ta.count_sxbl_ok, 0, NULL, ta.count_sxbl_ok) AS 刷洗不良_合格数
|
|
|
+ ,decode(ta.count_r, 0, NULL, ta.count_r) AS 再去R
|
|
|
+ ,DECODE(TA.COUNT_AAS, 0, NULL, TA.COUNT_AAS) AS 再去AA
|
|
|
+ ,DECODE( TA.Waste, 0, NULL, TA.Waste ) AS F级
|
|
|
+ ,TD.*
|
|
|
+ FROM
|
|
|
+ (
|
|
|
+ SELECT
|
|
|
+ GROUPING_ID ( GT.GOODSTYPECODE, G.GOODSCODE ) GID,
|
|
|
+ GT.GOODSTYPECODE,
|
|
|
+ GT.GOODSTYPENAME,
|
|
|
+ G.GOODSCODE,
|
|
|
+ G.GOODSNAME,
|
|
|
+ SUM( CASE WHEN T.flagaa = 1 and t.h_flag = 2 THEN 1 ELSE 0 END ) AS COUNT_AAF,
|
|
|
+ SUM( CASE WHEN T.flagaa = 1 and t.h_flag = 3 THEN 1 ELSE 0 END ) AS COUNT_AAS,-- 再去AA
|
|
|
+ COUNT(DISTINCT CASE WHEN T.flagaa = 0 and rpd.procedureid = 20 THEN rpd.barcode ELSE null END ) AS count_ym , --研磨
|
|
|
+ COUNT(DISTINCT CASE WHEN T.flagaa = 0 and rpd.procedureid = 22 THEN rpd.barcode ELSE null END ) AS count_lb ,--直接冷补,
|
|
|
+ COUNT(DISTINCT CASE WHEN T.flagaa = 0 and rpd.procedureid = 23 THEN rpd.barcode ELSE null END ) AS count_ymlb, --研磨后冷补,
|
|
|
+ COUNT(DISTINCT CASE WHEN T.flagaa = 0 and rpd.procedureid = 37 THEN rpd.barcode ELSE null END ) AS count_dlq ,--堵漏气,
|
|
|
+ COUNT(DISTINCT CASE WHEN T.flagaa = 0 and rpd.procedureid = 41 THEN rpd.barcode ELSE null END ) AS count_sxbl, --刷洗不良,
|
|
|
+ COUNT(DISTINCT CASE WHEN T.flagaa = 0 AND t.goodsleveltypeid IN (4, 5) and rpd.procedureid = 20 THEN rpd.barcode ELSE null END ) AS count_ym_ok , --研磨
|
|
|
+ COUNT(DISTINCT CASE WHEN T.flagaa = 0 AND t.goodsleveltypeid IN (4, 5) and rpd.procedureid = 22 THEN rpd.barcode ELSE null END ) AS count_lb_ok ,--直接冷补,
|
|
|
+ COUNT(DISTINCT CASE WHEN T.flagaa = 0 AND t.goodsleveltypeid IN (4, 5) and rpd.procedureid = 23 THEN rpd.barcode ELSE null END ) AS count_ymlb_ok, --研磨后冷补,
|
|
|
+ COUNT(DISTINCT CASE WHEN T.flagaa = 0 AND t.goodsleveltypeid IN (4, 5) and rpd.procedureid = 37 THEN rpd.barcode ELSE null END ) AS count_dlq_ok ,--堵漏气,
|
|
|
+ COUNT(DISTINCT CASE WHEN T.flagaa = 0 AND t.goodsleveltypeid IN (4, 5) and rpd.procedureid = 41 THEN rpd.barcode ELSE null END ) AS count_sxbl_ok, --刷洗不良,
|
|
|
+ COUNT(DISTINCT CASE WHEN T.flagaa = 0 AND ((rpd.procedureid IN (22, 23, 37, 20, 41) AND t.goodsleveltypeid != 6 AND t.goodsleveltypeid != 7) OR
|
|
|
+ (rpd.procedureid IN (35) AND t.goodsleveltypeid !=7 ) ) THEN T.barcode ELSE null END) count_l ,
|
|
|
+ COUNT(DISTINCT CASE WHEN T.flagaa = 0 and T.GOODSLEVELTYPEID IN ( 4, 5 ) AND (rpd.procedureid IN (22, 23, 37, 20, 41,35) or (rpd.procedureid IS NULL AND rpd.goodsleveltypeid != 6)) THEN T.barcode ELSE null END ) COUNT_AA, -- 研磨、堵漏气、刷洗不良、直接冷补、研磨冷补合格数
|
|
|
+ COUNT(DISTINCT CASE WHEN T.flagaa = 0 and T.GOODSLEVELTYPEID IN ( 4, 5 ) AND (rpd.procedureid IN (35) OR
|
|
|
+ (rpd.procedureid IS NULL AND rpd.goodsleveltypeid != 6)) THEN T.barcode ELSE null END ) count_csr_ok,
|
|
|
+ COUNT(DISTINCT CASE WHEN T.flagaa = 0 and (rpd.procedureid IN (35) OR
|
|
|
+ (rpd.procedureid IS NULL AND rpd.goodsleveltypeid != 6)) THEN T.barcode ELSE null END ) count_csr,
|
|
|
+ SUM( CASE WHEN T.flagaa = 0 and t.h_flag = 1 and T.GOODSLEVELTYPEID = 20 THEN 1 ELSE 0 END ) Waste -- 二次以后得报废
|
|
|
+ ,SUM( CASE WHEN T.flagaa = 2 and t.h_flag = 3 THEN 1 ELSE 0 END ) AS count_r
|
|
|
+ FROM
|
|
|
+ (
|
|
|
+ SELECT
|
|
|
+ TO_CHAR(PD.BARCODE) BARCODE,
|
|
|
+ MAX( PMAX.PRODUCTIONDATAID ) MPDID,
|
|
|
+ PDD.GOODSLEVELTYPEID,
|
|
|
+ PDD.GOODSID,
|
|
|
+ pdd.reworkprocedureid ,
|
|
|
+ CASE WHEN sum( PMAX.PRODUCTIONDATAID ) > 0 THEN 1 ELSE 0 END H_FLAG , 0 flagaa
|
|
|
+ FROM
|
|
|
+ ( SELECT MAX(PD.PRODUCTIONDATAID) PRODUCTIONDATAID
|
|
|
+ ,PD.GOODSID,PD.BARCODE
|
|
|
+ ,PD.GROUTINGDAILYDETAILID
|
|
|
+ FROM TP_PM_PRODUCTIONDATA PD
|
|
|
+ INNER JOIN TP_PC_GROUTINGLINE GL ON GL.GROUTINGLINEID = PD.GROUTINGLINEID
|
|
|
+ WHERE
|
|
|
+ PD.PROCEDUREID = @PROCEDUREID@
|
|
|
+ -- AND PD.VALUEFLAG = '1'
|
|
|
+ -- AND PD.CHECKBATCHNO = 1
|
|
|
+ AND PD.CREATETIME >= @DATEBEGIN@
|
|
|
+ AND PD.CREATETIME < @DATEEND@
|
|
|
+ AND GL.BUILDINGNO {BUILDINGNO}
|
|
|
+ GROUP BY PD.GOODSID,PD.BARCODE ,PD.GROUTINGDAILYDETAILID
|
|
|
+ ) PD
|
|
|
+ INNER JOIN TP_PM_PRODUCTIONDATA PDD ON PDD.PRODUCTIONDATAID = PD.PRODUCTIONDATAID
|
|
|
+ LEFT JOIN TP_PM_PRODUCTIONDATA PMAX ON PMAX.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID
|
|
|
+ AND PMAX.PRODUCTIONDATAID < PD.PRODUCTIONDATAID AND PMAX.VALUEFLAG = '1' AND (pmax.kilncarbatchno = PDD.kilncarbatchno OR pmax.procedureid = PDD.procedureid)
|
|
|
+ /* 20 研磨 22 直接冷补 23 研磨后冷补(非回收) 37 堵漏气 41 刷洗不良 */
|
|
|
+ AND PMAX.PROCEDUREID IN (20, 22, 23, 37, 41, 35)
|
|
|
+
|
|
|
+ GROUP BY
|
|
|
+ PD.BARCODE,
|
|
|
+ PDD.GOODSLEVELTYPEID,
|
|
|
+ PDD.GOODSID,
|
|
|
+ PDD.REWORKPROCEDUREID
|
|
|
+ -- 再去aa
|
|
|
+ UNION ALL
|
|
|
+ SELECT
|
|
|
+ TO_CHAR(PD.BARCODE),
|
|
|
+ MAX( PMAX.PRODUCTIONDATAID ) MPDID,
|
|
|
+ PDD.GOODSLEVELTYPEID,
|
|
|
+ PDD.GOODSID,
|
|
|
+ pdd.reworkprocedureid ,
|
|
|
+ CASE WHEN sum( PMAX.PRODUCTIONDATAID ) > 0 THEN (CASE WHEN PDD.checkbatchno = 1 and PDD.goodsleveltypeid !=7 THEN 2 else 3 end) ELSE 0 END H_FLAG , 1 flagaa
|
|
|
+ FROM
|
|
|
+ ( SELECT MAX(PD.PRODUCTIONDATAID) PRODUCTIONDATAID
|
|
|
+ ,PD.GOODSID,PD.BARCODE
|
|
|
+ ,PD.GROUTINGDAILYDETAILID
|
|
|
+ FROM TP_PM_PRODUCTIONDATA PD
|
|
|
+ INNER JOIN TP_PC_GROUTINGLINE GL ON GL.GROUTINGLINEID = PD.GROUTINGLINEID
|
|
|
+ WHERE
|
|
|
+ PD.PROCEDUREID = @PROCEDUREID@
|
|
|
+ -- AND PD.VALUEFLAG = '1'
|
|
|
+ -- AND PD.CHECKBATCHNO = 1
|
|
|
+ AND PD.CREATETIME >= @DATEBEGIN@
|
|
|
+ AND PD.CREATETIME < @DATEEND@
|
|
|
+ AND GL.BUILDINGNO {BUILDINGNO}
|
|
|
+ GROUP BY PD.GOODSID,PD.BARCODE ,PD.GROUTINGDAILYDETAILID
|
|
|
+ ) PD
|
|
|
+ INNER JOIN TP_PM_PRODUCTIONDATA PDD ON PDD.PRODUCTIONDATAID = PD.PRODUCTIONDATAID
|
|
|
+ LEFT JOIN TP_PM_PRODUCTIONDATA PMAX ON PMAX.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID
|
|
|
+ AND PMAX.PRODUCTIONDATAID < PD.PRODUCTIONDATAID AND PMAX.VALUEFLAG = '1' AND PMAX.PROCEDUREMODEL = '1' and pmax.KILNCARBATCHNO= PDD.KILNCARBATCHNO
|
|
|
+ /*20 研磨 22 直接冷补 23 研磨后冷补(非回收) 37 堵漏气 41 刷洗不良*/
|
|
|
+ AND PMAX.PROCEDUREID IN (20, 22, 23, 37, 41)
|
|
|
+ GROUP BY
|
|
|
+ PD.BARCODE,
|
|
|
+ PDD.GOODSLEVELTYPEID,
|
|
|
+ PDD.GOODSID,
|
|
|
+ PDD.checkbatchno,pdd.reworkprocedureid
|
|
|
+ -- 再去R
|
|
|
+ UNION ALL
|
|
|
+ SELECT
|
|
|
+ TO_CHAR(PD.BARCODE),
|
|
|
+ MAX( PMAX.PRODUCTIONDATAID ) MPDID,
|
|
|
+ PDD.GOODSLEVELTYPEID,
|
|
|
+ PDD.GOODSID,
|
|
|
+ pdd.reworkprocedureid ,
|
|
|
+ CASE WHEN sum( PMAX.PRODUCTIONDATAID ) > 0 THEN (CASE WHEN (PDD.checkbatchno > 1 or (PDD.checkbatchno = 1 and PDD.goodsleveltypeid=6 )) THEN 3 else 2 end) ELSE 4 END H_FLAG , 2 flagaa
|
|
|
+ FROM
|
|
|
+ ( SELECT MAX(PD.PRODUCTIONDATAID) PRODUCTIONDATAID
|
|
|
+ ,PD.GOODSID,PD.BARCODE
|
|
|
+ ,PD.GROUTINGDAILYDETAILID
|
|
|
+ FROM TP_PM_PRODUCTIONDATA PD
|
|
|
+ INNER JOIN TP_PC_GROUTINGLINE GL ON GL.GROUTINGLINEID = PD.GROUTINGLINEID
|
|
|
+ WHERE
|
|
|
+ PD.PROCEDUREID = @PROCEDUREID@
|
|
|
+ -- AND PD.VALUEFLAG = '1'
|
|
|
+ -- AND PD.CHECKBATCHNO = 1
|
|
|
+ AND PD.CREATETIME >= @DATEBEGIN@
|
|
|
+ AND PD.CREATETIME < @DATEEND@
|
|
|
+ AND GL.BUILDINGNO {BUILDINGNO}
|
|
|
+ GROUP BY PD.GOODSID,PD.BARCODE ,PD.GROUTINGDAILYDETAILID
|
|
|
+ ) PD
|
|
|
+ INNER JOIN TP_PM_PRODUCTIONDATA PDD ON PDD.PRODUCTIONDATAID = PD.PRODUCTIONDATAID
|
|
|
+ LEFT JOIN TP_PM_PRODUCTIONDATA PMAX ON PMAX.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID
|
|
|
+ AND PMAX.PRODUCTIONDATAID < PD.PRODUCTIONDATAID AND PMAX.VALUEFLAG = '1'
|
|
|
+ /*重烧 两次以上*/
|
|
|
+ AND PMAX.PROCEDUREID = 35
|
|
|
+ GROUP BY
|
|
|
+ PD.BARCODE,
|
|
|
+ PDD.GOODSLEVELTYPEID,
|
|
|
+ PDD.GOODSID,
|
|
|
+ PDD.checkbatchno,pdd.reworkprocedureid
|
|
|
+
|
|
|
+ ) T
|
|
|
+ LEFT JOIN TP_PM_PRODUCTIONDATA RPD ON RPD.PRODUCTIONDATAID = T.MPDID
|
|
|
+ INNER JOIN TP_MST_GOODS G ON G.GOODSID = T.GOODSID
|
|
|
+ INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID
|
|
|
+ GROUP BY
|
|
|
+ GROUPING SETS ( ( GT.GOODSTYPECODE, GT.GOODSTYPENAME, G.GOODSCODE, G.GOODSNAME ), ( GT.GOODSTYPECODE, GT.GOODSTYPENAME ), ( ) )
|
|
|
+ ) TA
|
|
|
+ LEFT JOIN (
|
|
|
+ SELECT
|
|
|
+ *
|
|
|
+ FROM
|
|
|
+ (
|
|
|
+ SELECT
|
|
|
+ CASE WHEN TT.GID IN ( 12, 13, 15 ) THEN 3 WHEN TT.GID IN ( 4, 5, 7 ) THEN 1 ELSE 0 END AS D_GID,
|
|
|
+ TT.GOODSTYPECODE D_GOODSTYPECODE, --,TT.GOODSTYPENAME D_
|
|
|
+ TT.GOODSCODE D_GOODSCODE,
|
|
|
+ CASE WHEN TT.GID IN ( 1, 5, 13 ) THEN TT.DEFECT || '合计' WHEN TT.GID IN ( 3, 7, 15 ) THEN '合计' ELSE TT.DEFECT END AS DEFECT,
|
|
|
+ TT.CNUM
|
|
|
+ FROM (SELECT grouping_id(ppp.goodstypecode
|
|
|
+ ,ppp.goodscode
|
|
|
+ ,(case when INSTR(to_char(ppp.defectgroupname), '施釉缺陷') > 0 then '施釉缺陷' else to_char(ppp.defectgroupname) end )
|
|
|
+ ,ppp.defectname) AS gid
|
|
|
+ ,ppp.goodstypecode
|
|
|
+ ,ppp.goodstypename
|
|
|
+ ,ppp.goodscode
|
|
|
+ ,(case when INSTR(to_char(ppp.defectgroupname), '施釉缺陷') > 0 then '施釉缺陷' else to_char(ppp.defectgroupname) end )
|
|
|
+ ,to_char((case when INSTR(to_char(ppp.defectgroupname), '施釉缺陷') > 0 then '施釉缺陷' else to_char(ppp.defectgroupname) end ) || '_' || ppp.defectname) AS defect
|
|
|
+ ,SUM(CASE
|
|
|
+ WHEN ppp.defectid = 11
|
|
|
+ AND (ppp.goodsleveltypeid = 4 OR ppp.goodsleveltypeid = 5) THEN
|
|
|
+ 0
|
|
|
+ ELSE
|
|
|
+ 1
|
|
|
+ END) AS cnum
|
|
|
+
|
|
|
+ FROM (SELECT DISTINCT gt.goodstypecode
|
|
|
+ ,gt.goodstypename
|
|
|
+ ,g.goodscode
|
|
|
+ ,pdp.defectgroupname
|
|
|
+ ,to_char(pdp.defectgroupname || '_' ||
|
|
|
+ m.defectname) AS defect
|
|
|
+ ,d.defectid
|
|
|
+ ,m.defectname
|
|
|
+ ,p.goodsleveltypeid
|
|
|
+ ,pp.productiondataid
|
|
|
+ FROM
|
|
|
+
|
|
|
+ (SELECT PD.PRODUCTIONDATAID
|
|
|
+ ,MAX(PMAX.PRODUCTIONDATAID) MPDID
|
|
|
+ ,PD.GOODSLEVELTYPEID
|
|
|
+ ,PD.GOODSID
|
|
|
+ ,PD.GROUTINGDAILYDETAILID
|
|
|
+ FROM TP_PM_PRODUCTIONDATA PD
|
|
|
+ INNER JOIN TP_PM_PRODUCTIONDATA PMAX
|
|
|
+ ON PMAX.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID
|
|
|
+ AND PMAX.PRODUCTIONDATAID < PD.PRODUCTIONDATAID
|
|
|
+ and pmax.KILNCARBATCHNO= pd.KILNCARBATCHNO
|
|
|
+ AND PMAX.VALUEFLAG = '1'
|
|
|
+ AND PMAX.PROCEDUREMODEL = '1'
|
|
|
+ /*20 研磨 22 直接冷补 23 研磨后冷补(非回收) 37 堵漏气 41 刷洗不良*/
|
|
|
+ AND PMAX.PROCEDUREID IN (20, 22, 23, 37, 41)
|
|
|
+ INNER JOIN TP_PC_GROUTINGLINE GL
|
|
|
+ ON GL.GROUTINGLINEID = PD.GROUTINGLINEID
|
|
|
+ WHERE PD.PROCEDUREID = @PROCEDUREID@ -- IN (13, 35)
|
|
|
+ -- AND PD.VALUEFLAG = '1'
|
|
|
+ --AND PD.CHECKBATCHNO = 1
|
|
|
+ AND PD.createtime >= @DATEBEGIN@
|
|
|
+ AND PD.createtime < @DATEEND@
|
|
|
+ AND PD.GOODSLEVELTYPEID = 20
|
|
|
+ AND GL.BUILDINGNO {BUILDINGNO}
|
|
|
+ GROUP BY PD.PRODUCTIONDATAID
|
|
|
+ ,PD.GOODSLEVELTYPEID
|
|
|
+ ,PD.GOODSID
|
|
|
+ ,PD.GROUTINGDAILYDETAILID
|
|
|
+ UNION ALL
|
|
|
+ SELECT PD.PRODUCTIONDATAID
|
|
|
+ ,MAX(PMAX.PRODUCTIONDATAID) MPDID
|
|
|
+ ,PD.GOODSLEVELTYPEID
|
|
|
+ ,PD.GOODSID
|
|
|
+ ,PD.GROUTINGDAILYDETAILID
|
|
|
+ FROM TP_PM_PRODUCTIONDATA PD
|
|
|
+ INNER JOIN TP_PM_PRODUCTIONDATA PMAX
|
|
|
+ ON PMAX.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID
|
|
|
+ AND PMAX.PRODUCTIONDATAID < PD.PRODUCTIONDATAID
|
|
|
+ and pmax.KILNCARBATCHNO= pd.KILNCARBATCHNO
|
|
|
+ AND PMAX.VALUEFLAG = '1'
|
|
|
+ AND PMAX.PROCEDUREMODEL = '1'
|
|
|
+ /*20 研磨 22 直接冷补 23 研磨后冷补(非回收) 37 堵漏气 41 刷洗不良*/
|
|
|
+ AND PMAX.PROCEDUREID IN (20, 22, 23, 37, 41)
|
|
|
+ INNER JOIN TP_PC_GROUTINGLINE GL
|
|
|
+ ON GL.GROUTINGLINEID = PD.GROUTINGLINEID
|
|
|
+ WHERE PD.PROCEDUREID = @PROCEDUREID@ -- IN (13, 35)
|
|
|
+ -- AND PD.VALUEFLAG = '1'
|
|
|
+ -- AND PD.CHECKBATCHNO = 1
|
|
|
+ AND PD.CREATETIME >= @DATEBEGIN@
|
|
|
+ AND PD.CREATETIME < @DATEEND@
|
|
|
+ --AND PD.CHECKBATCHNO > 1
|
|
|
+ AND PD.GOODSLEVELTYPEID <> 4
|
|
|
+ AND GL.BUILDINGNO {BUILDINGNO}
|
|
|
+ GROUP BY PD.PRODUCTIONDATAID
|
|
|
+ ,PD.GOODSLEVELTYPEID
|
|
|
+ ,PD.GOODSID
|
|
|
+ ,PD.GROUTINGDAILYDETAILID
|
|
|
+ ) P
|
|
|
+ -- 缺陷工序分组的 工序id1 工序id2 对应
|
|
|
+ inner join tp_pm_productiondata pp on p.groutingdailydetailid = pp.groutingdailydetailid and pp.valueflag = '1'
|
|
|
+
|
|
|
+ INNER JOIN TP_MST_GOODS G ON G.GOODSID = P.GOODSID
|
|
|
+ INNER JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = G.GOODSTYPEID
|
|
|
+ INNER JOIN TP_PM_DEFECT D ON P.PRODUCTIONDATAID = D.PRODUCTIONDATAID --AND (P.GOODSLEVELTYPEID NOT IN (4, 5) OR D.DEFECTID <> 11)
|
|
|
+ INNER JOIN TP_MST_DEFECT M ON ( M.DEFECTID = D.DEFECTID AND M.DEFECTID > 0 )
|
|
|
+ LEFT JOIN TP_PC_PROCEDURE PR ON PR.PROCEDUREID = D.DEFECTPROCEDUREID
|
|
|
+ INNER JOIN TP_MST_DEFECTGROUP PDP ON PDP.DEFECTID = D.DEFECTID AND PDP.DEFECTGROUPTYPE LIKE '每窑%'
|
|
|
+ AND (
|
|
|
+ -- ( PDP.PROCEDUREID1 = PR.PROCEDUREID OR PDP.PROCEDUREID2 = PR.PROCEDUREID )
|
|
|
+ --xuwei 2020-09-01 add 重烧的没有责任工序也算
|
|
|
+ -- OR @PROCEDUREID@ = 35
|
|
|
+ -- 20250417 改为用 是否走过 tp_mst_defectgroup 缺陷工序分组的 工序id1 工序id2 为基准
|
|
|
+ pdp.procedureid1 = pp.procedureid OR pdp.procedureid2 = pp.procedureid
|
|
|
+ )
|
|
|
+ ) ppp
|
|
|
+ GROUP BY GROUPING SETS((ppp.goodstypecode, ppp.goodstypename, ppp.goodscode, (case when INSTR(to_char(ppp.defectgroupname), '施釉缺陷') > 0 then '施釉缺陷' else to_char(ppp.defectgroupname) end ), ppp.defectname),
|
|
|
+ (ppp.goodstypecode, ppp.goodstypename, ppp.goodscode, (case when INSTR(to_char(ppp.defectgroupname), '施釉缺陷') > 0 then '施釉缺陷' else to_char(ppp.defectgroupname) end )),
|
|
|
+ (ppp.goodstypecode, ppp.goodstypename, ppp.goodscode),
|
|
|
+ (ppp.goodstypecode, ppp.goodstypename, (case when INSTR(to_char(ppp.defectgroupname), '施釉缺陷') > 0 then '施釉缺陷' else to_char(ppp.defectgroupname) end ), ppp.defectname),
|
|
|
+ (ppp.goodstypecode, ppp.goodstypename, (case when INSTR(to_char(ppp.defectgroupname), '施釉缺陷') > 0 then '施釉缺陷' else to_char(ppp.defectgroupname) end )),
|
|
|
+ (ppp.goodstypecode, ppp.goodstypename),
|
|
|
+ ((case when INSTR(to_char(ppp.defectgroupname), '施釉缺陷') > 0 then '施釉缺陷' else to_char(ppp.defectgroupname) end ), ppp.defectname),
|
|
|
+ ((case when INSTR(to_char(ppp.defectgroupname), '施釉缺陷') > 0 then '施釉缺陷' else to_char(ppp.defectgroupname) end )),())
|
|
|
+ ORDER BY ppp.goodstypecode
|
|
|
+ ,ppp.goodscode
|
|
|
+ ,(case when INSTR(to_char(ppp.defectgroupname), '施釉缺陷') > 0 then '施釉缺陷' else to_char(ppp.defectgroupname) end )
|
|
|
+ ,ppp.defectname) tt)
|
|
|
+ PIVOT (
|
|
|
+ SUM( CNUM ) FOR DEFECT IN ({DEFECT},'合计' AS 合计
|
|
|
+ )
|
|
|
+ )
|
|
|
+ ) TD ON TA.GID = TD.D_GID
|
|
|
+ AND
|
|
|
+ (
|
|
|
+ ( TA.GID = 0 AND TA.GOODSTYPECODE = TD.D_GOODSTYPECODE AND TA.GOODSCODE = TD.D_GOODSCODE )
|
|
|
+ OR ( TA.GID = 1 AND TA.GOODSTYPECODE = TD.D_GOODSTYPECODE )
|
|
|
+ OR ( TA.GID = 3 )
|
|
|
+ )
|
|
|
+ where ta.count_aa <> 0
|
|
|
+ OR ta.COUNT_AAS <> 0
|
|
|
+ OR ta.count_ym <> 0
|
|
|
+ OR ta.count_lb <> 0
|
|
|
+ OR ta.count_ymlb <> 0
|
|
|
+ OR ta.count_dlq <> 0
|
|
|
+ OR ta.count_sxbl <> 0
|
|
|
+ OR ta.waste <> 0
|
|
|
+ OR ta.count_r <> 0
|
|
|
+ OR ta.count_ym_ok <> 0
|
|
|
+ OR ta.count_lb_ok <> 0
|
|
|
+ OR ta.count_ymlb_ok <> 0
|
|
|
+ OR ta.count_dlq_ok <> 0
|
|
|
+ OR ta.count_sxbl_ok <> 0
|
|
|
+ OR ta.count_csr <> 0
|
|
|
+ OR ta.count_csr_ok <> 0
|
|
|
+ ORDER BY TA.GOODSTYPENAME,TA.GOODSCODE
|
|
|
+ ".Replace("{DEFECT}", defectStr).Replace("{BUILDINGNO}", buding).Replace("{goodsCodes}", goodssql);
|
|
|
+ }
|
|
|
+
|
|
|
+ //获取查询条件
|
|
|
+ List<CDAParameter> sqlPara = new List<CDAParameter>();
|
|
|
+ sqlPara.Add(new CDAParameter("DATEBEGIN", Convert.ToDateTime(context.Request["datebeginMaster"] + "-01"), DataType.DateTime));
|
|
|
+ sqlPara.Add(new CDAParameter("DATEEND", Convert.ToDateTime(context.Request["dateendMaster"] + "-01").AddMonths(1).AddDays(-1), DataType.DateTime));
|
|
|
+ sqlPara.Add(new CDAParameter("KILNID", context.Request["kilnidMaster"]));
|
|
|
+ sqlPara.Add(new CDAParameter("PROCEDUREID", context.Request["procedureidMaster"]));
|
|
|
+
|
|
|
+ if (context.Request["goodscodeMaster[]"] is object)
|
|
|
+ {
|
|
|
+ if (context.Request["goodscodeMaster[]"].ToString() != "")
|
|
|
+ {
|
|
|
+ sqlPara.Add(new CDAParameter("GOODSCODE", context.Request["goodscodeMaster[]"]));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (context.Request["goodscodeMaster"] is object)
|
|
|
+ {
|
|
|
+ if (context.Request["goodscodeMaster"].ToString() != "")
|
|
|
+ {
|
|
|
+ sqlPara.Add(new CDAParameter("GOODSCODE", context.Request["goodscodeMaster"]));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ sqlPara.Add(new CDAParameter("GOODSCODE", null));
|
|
|
+ }
|
|
|
+
|
|
|
+ if (context.Request["goodsnameMaster"] is object)
|
|
|
+ {
|
|
|
+ if (context.Request["goodsnameMaster"].ToString() != "")
|
|
|
+ {
|
|
|
+ sqlPara.Add(new CDAParameter("GOODSNAME", context.Request["goodsnameMaster"]));
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ sqlPara.Add(new CDAParameter("GOODSNAME", null));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ sqlPara.Add(new CDAParameter("GOODSNAME", null));
|
|
|
+ }
|
|
|
+
|
|
|
+ //xuwei add 2023-12-29 ====================================
|
|
|
+ //=========================================================
|
|
|
+ //sqlStr = sqlStr.Replace("@DATEBEGIN@", "DATE'" + Convert.ToDateTime(context.Request["datebeginMaster"]) + "'");
|
|
|
+ //sqlStr = sqlStr.Replace("@DATEEND@", "DATE'" + Convert.ToDateTime(context.Request["dateendMaster"]).AddSeconds(1) + "'");
|
|
|
+ sqlStr = sqlStr.Replace("@DATEBEGIN@", "to_date('" + Convert.ToDateTime(context.Request["datebeginMaster"]+ "-01") + "','yyyy-mm-dd hh24:mi:ss')");
|
|
|
+ sqlStr = sqlStr.Replace("@DATEEND@", "to_date('" + Convert.ToDateTime(context.Request["dateendMaster"]+ "-01").AddMonths(1).AddDays(-1) + "','yyyy-mm-dd hh24:mi:ss')");
|
|
|
+ sqlStr = sqlStr.Replace("@KILNID@", context.Request["kilnidMaster"].ToString() != "" ? context.Request["kilnidMaster"].ToString() : " NULL ");
|
|
|
+ string pid = context.Request["procedureidMaster"].ToString();
|
|
|
+ if (pid == "888")
|
|
|
+ {
|
|
|
+ pid = "13";
|
|
|
+ }
|
|
|
+ else if (pid == "999")
|
|
|
+ {
|
|
|
+ pid = "35";
|
|
|
+ }
|
|
|
+ sqlStr = sqlStr.Replace("@PROCEDUREID@", pid != "" ? pid : " NULL ");
|
|
|
+ sqlStr = sqlStr.Replace("@GOODSCODE@", " '' ");
|
|
|
+ sqlStr = sqlStr.Replace("@GOODSNAME@", " '' ");
|
|
|
+ // 250717 存储过程的临时表 不好用
|
|
|
+ DataTable dt = conn.ExecuteDatatable(sqlStr, sqlPara.ToArray());
|
|
|
+
|
|
|
+
|
|
|
+ dt.Columns.Remove("D_GID");
|
|
|
+ dt.Columns.Remove("D_goodstypecode");
|
|
|
+ dt.Columns.Remove("D_goodscode");
|
|
|
+ //处理列特殊字符
|
|
|
+ for (int c = 0; c < dt.Columns.Count; c++)
|
|
|
+ {
|
|
|
+ dt.Columns[c].ColumnName = dt.Columns[c].ColumnName.Replace("'", "").Replace("+", "").Replace('/', ' ');
|
|
|
+ }
|
|
|
+
|
|
|
+ // 删除可选缺陷的列
|
|
|
+ for (int m = dt.Columns.Count - 1; m > 0; m--)
|
|
|
+ {
|
|
|
+ for (int mn = 0; mn < defectallnames.Count; mn++)
|
|
|
+ {
|
|
|
+ if (dt.Columns[m].ColumnName.Contains(defectallnames[mn]))
|
|
|
+ {
|
|
|
+ dt.Columns.Remove(dt.Columns[m].ColumnName);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //获取分页数据
|
|
|
+ int total = 0;
|
|
|
+ //dt = conn.SelectPages(page, rows, out total, sqlStr, sqlPara.ToArray());
|
|
|
+ string jsonStr = new JsonResult(dt) { total = total }.ToJson();
|
|
|
+ if (proc == "13" || proc == "35")
|
|
|
+ {
|
|
|
+ conn.Commit();
|
|
|
+ }
|
|
|
+ context.Response.Write(jsonStr);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 结转
|
|
|
+ // if (context.Request["m"].ToString() == "jiezhauang")
|
|
|
+ // {
|
|
|
+ // using (IDataAccess conn = DataAccess.Create())
|
|
|
+ // {
|
|
|
+ // string buding = null;
|
|
|
+ // if (context.Request["buildingnoMaster"].ToString() != "12")
|
|
|
+ // {
|
|
|
+ // buding = "IN('" + context.Request["buildingnoMaster"] + "')";
|
|
|
+ // }
|
|
|
+ // else
|
|
|
+ // {
|
|
|
+ // buding = "IN(" + "'1#','2#'" + ")";
|
|
|
+ // }
|
|
|
+ // #region 可选缺陷 删除 插入
|
|
|
+ // //d可选缺陷 删除 插入
|
|
|
+ // string[] denames = new string[] { };
|
|
|
+ // if (context.Request["defectMaster[]"] is object)
|
|
|
+ // {
|
|
|
+ // if (context.Request["defectMaster[]"].ToString() != "")
|
|
|
+ // {
|
|
|
+ // denames = context.Request["defectMaster[]"].ToString().Split(',');
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // if (context.Request["defectMaster"] is object)
|
|
|
+ // {
|
|
|
+ // if (context.Request["defectMaster"].ToString() != "")
|
|
|
+ // {
|
|
|
+ // denames = context.Request["defectMaster"].ToString().Split(',');
|
|
|
+ // }
|
|
|
+
|
|
|
+ // }
|
|
|
+ // // 判断可选缺陷 是否发生变化,如果没有变化则不用调用数据库
|
|
|
+ // bool flg = true;
|
|
|
+ // for (int i = 0; i < denames.Length; i++)
|
|
|
+ // {
|
|
|
+ // if (string.IsNullOrEmpty(denames[i]))
|
|
|
+ // {
|
|
|
+ // continue;
|
|
|
+ // }
|
|
|
+ // defectallnames.Remove(denames[i]);
|
|
|
+ // // 前台传过来的 可选缺陷的字符串
|
|
|
+ // if (!context.Request["name"].ToString().Contains(denames[i]))
|
|
|
+ // {
|
|
|
+ // flg = false;
|
|
|
+ // break;
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // if (context.Request["name"].ToString().Split(',').Length != denames.Length)
|
|
|
+ // {
|
|
|
+ // flg = false;
|
|
|
+ // }
|
|
|
+ // //d可选缺陷 删除 插入
|
|
|
+ // if (!flg)
|
|
|
+ // {
|
|
|
+ // using (IDataAccess connn = DataAccess.Create())
|
|
|
+ // {
|
|
|
+ // connn.ExecuteNonQuery(@"delete from tp_mst_defectgroup_user where USERID = @USERID@",
|
|
|
+ // new CDAParameter("USERID", context.Request["userId"] + ""));
|
|
|
+
|
|
|
+ // for (int i = 0; i < denames.Length; i++)
|
|
|
+ // {
|
|
|
+ // if (string.IsNullOrEmpty(denames[i]))
|
|
|
+ // {
|
|
|
+ // continue;
|
|
|
+ // }
|
|
|
+ // int result = connn.ExecuteNonQuery(@"
|
|
|
+ //INSERT INTO tp_mst_defectgroup_user (
|
|
|
+ // DEFECTGROUPNAME,
|
|
|
+ // ACCOUNTID,CREATEUSERID,USERID
|
|
|
+ //) VALUES (
|
|
|
+ // @DEFECTGROUPNAME@,
|
|
|
+ // @ACCOUNTID@,@CREATEUSERID@,@USERID@
|
|
|
+ //)
|
|
|
+ //",
|
|
|
+ // new CDAParameter("DEFECTGROUPNAME", denames[i]),
|
|
|
+ // new CDAParameter("ACCOUNTID", context.Request["accountId"] + ""),
|
|
|
+ // new CDAParameter("CREATEUSERID", context.Request["userId"] + ""),
|
|
|
+ // new CDAParameter("USERID", context.Request["userId"] + "")
|
|
|
+ // );
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // #endregion
|
|
|
+
|
|
|
+ // string sqlStr = @"
|
|
|
+ //SELECT
|
|
|
+
|
|
|
+ // 产品名称 ,
|
|
|
+ // DECODE(产品类别, null, '合计',产品类别) 产品类别,
|
|
|
+ // SUM(出窑数) AS 出窑数,
|
|
|
+ // SUM(U级) AS U级,
|
|
|
+ // SUM(A级) AS A级,
|
|
|
+ // SUM(AA级) AS AA级,
|
|
|
+ // SUM(B级) AS B级,
|
|
|
+ // SUM(R级) AS R级,
|
|
|
+ // SUM(冷补数) AS 冷补数,
|
|
|
+ // SUM(L级 ) AS L级,
|
|
|
+ // SUM(F级) AS F级,
|
|
|
+ // SUM(Z级) AS Z级,
|
|
|
+ // DEcode(ROUND(((nvl(sum(U级),0)+nvl(sum(A级),0)+ nvl(sum(AA级),0))/ sum(出窑数)), 4 ) *100,0,NULL,ROUND( ((nvl(sum(U级),0)+nvl(sum(A级),0)+ nvl(sum(AA级),0))/ sum(出窑数)), 4 ) *100) AS UA率,
|
|
|
+ // SUM(原料缺陷_铁脏 ) AS 原料缺陷_铁脏,
|
|
|
+ // SUM(原料缺陷_铜脏) AS 原料缺陷_铜脏,
|
|
|
+ // SUM(原料缺陷_合计) AS 原料缺陷_合计,
|
|
|
+ // SUM(成型缺陷_糙活) AS 成型缺陷_糙活,
|
|
|
+ // SUM(成型缺陷_成裂) AS 成型缺陷_成裂,
|
|
|
+ // SUM(成型缺陷_成脏) AS 成型缺陷_成脏,
|
|
|
+ // SUM(成型缺陷_成走) AS 成型缺陷_成走,
|
|
|
+ // SUM(成型缺陷_孔不良) AS 成型缺陷_孔不良,
|
|
|
+ // SUM(成型缺陷_漏气) AS 成型缺陷_漏气,
|
|
|
+ // SUM(成型缺陷_泥绺) AS 成型缺陷_泥绺,
|
|
|
+ // SUM(成型缺陷_排水不良) AS 成型缺陷_排水不良,
|
|
|
+ // SUM(成型缺陷_坯脏) AS 成型缺陷_坯脏,
|
|
|
+ // SUM(成型缺陷_注泡) AS 成型缺陷_注泡,
|
|
|
+ // SUM(成型缺陷_棕眼) AS 成型缺陷_棕眼,
|
|
|
+ // SUM(成型缺陷_炸圈) AS 成型缺陷_炸圈,
|
|
|
+ // SUM(成型缺陷_卡球) AS 成型缺陷_卡球,
|
|
|
+ // SUM(成型缺陷_合计) AS 成型缺陷_合计,
|
|
|
+ // SUM(施釉缺陷_爆釉) AS 施釉缺陷_爆釉,
|
|
|
+ // SUM(施釉缺陷_标不良) AS 施釉缺陷_标不良 ,
|
|
|
+ // SUM(施釉缺陷_脱釉) AS 施釉缺陷_脱釉 ,
|
|
|
+ // SUM(施釉缺陷_釉薄) AS 施釉缺陷_釉薄,
|
|
|
+ // SUM(施釉缺陷_釉磕) AS 施釉缺陷_釉磕 ,
|
|
|
+ // SUM(施釉缺陷_釉绺) AS 施釉缺陷_釉绺 ,
|
|
|
+ // SUM(施釉缺陷_釉脏) AS 施釉缺陷_釉脏 ,
|
|
|
+ // SUM(施釉缺陷_釉粘) AS 施釉缺陷_釉粘,
|
|
|
+ // SUM(施釉缺陷_釉泡) AS 施釉缺陷_釉泡,
|
|
|
+ // SUM(施釉缺陷_波纹) AS 施釉缺陷_波纹,
|
|
|
+ // SUM(施釉缺陷_合计) AS 施釉缺陷_合计,
|
|
|
+ // SUM(循环线施釉缺陷_爆釉) AS 循环线施釉缺陷_爆釉 ,
|
|
|
+ // SUM(循环线施釉缺陷_标不良) AS 循环线施釉缺陷_标不良 ,
|
|
|
+ // SUM(循环线施釉缺陷_脱釉) AS 循环线施釉缺陷_脱釉,
|
|
|
+ // SUM(循环线施釉缺陷_釉薄) AS 循环线施釉缺陷_釉薄,
|
|
|
+ // SUM(循环线施釉缺陷_釉磕) AS 循环线施釉缺陷_釉磕,
|
|
|
+ // SUM(循环线施釉缺陷_釉绺) AS 循环线施釉缺陷_釉绺,
|
|
|
+ // SUM(循环线施釉缺陷_釉脏) AS 循环线施釉缺陷_釉脏,
|
|
|
+ // SUM(循环线施釉缺陷_釉粘) AS 循环线施釉缺陷_釉粘,
|
|
|
+ // SUM(循环线施釉缺陷_釉泡) AS 循环线施釉缺陷_釉泡,
|
|
|
+ // SUM(循环线施釉缺陷_波纹) AS 循环线施釉缺陷_波纹,
|
|
|
+ // SUM(循环线施釉缺陷_合计) AS 循环线施釉缺陷_合计,
|
|
|
+ // SUM(施釉_合计) AS 施釉_合计,
|
|
|
+ // SUM(出装窑缺陷_蹭釉) AS 出装窑缺陷_蹭釉,
|
|
|
+ // SUM(出装窑缺陷_出磕) AS 出装窑缺陷_出磕,
|
|
|
+ // SUM(出装窑缺陷_划釉) AS 出装窑缺陷_划釉,
|
|
|
+ // SUM(出装窑缺陷_落脏) AS 出装窑缺陷_落脏,
|
|
|
+ // SUM(出装窑缺陷_装磕) AS 出装窑缺陷_装磕,
|
|
|
+ // SUM(出装窑缺陷_装粘) AS出装窑缺陷_装粘,
|
|
|
+ // SUM(出装窑缺陷_装脏) AS 出装窑缺陷_装脏,
|
|
|
+ // SUM(出装窑缺陷_装走) AS 出装窑缺陷_装走,
|
|
|
+ // SUM(出装窑缺陷_合计) AS 出装窑缺陷_合计,
|
|
|
+ // SUM(烧窑缺陷_过火泡) AS 烧窑缺陷_过火泡,
|
|
|
+ // SUM(烧窑缺陷_桔釉) AS 烧窑缺陷_桔釉,
|
|
|
+ // SUM(烧窑缺陷_麻坑) AS 烧窑缺陷_麻坑,
|
|
|
+ // SUM(烧窑缺陷_烧裂) AS 烧窑缺陷_烧裂,
|
|
|
+ // SUM(烧窑缺陷_烧生) AS 烧窑缺陷_烧生,
|
|
|
+ // SUM(烧窑缺陷_窑脏) AS 烧窑缺陷_窑脏,
|
|
|
+ // SUM(烧窑缺陷_烧炸) AS 烧窑缺陷_烧炸,
|
|
|
+ // SUM(烧窑缺陷_烟熏) AS 烧窑缺陷_烟熏,
|
|
|
+ // SUM(烧窑缺陷_水滴) AS 烧窑缺陷_水滴,
|
|
|
+ // SUM(烧窑缺陷_风惊) AS 烧窑缺陷_风惊,
|
|
|
+ // SUM(烧窑缺陷_针孔) AS 烧窑缺陷_针孔,
|
|
|
+ // SUM(烧窑缺陷_合计) AS 烧窑缺陷_合计,
|
|
|
+ // SUM(其他缺陷_崩脏) AS 其他缺陷_崩脏,
|
|
|
+ // SUM(其他缺陷_坯磕) AS 其他缺陷_坯磕,
|
|
|
+ // SUM(其他缺陷_研磨) AS 其他缺陷_研磨,
|
|
|
+ // SUM(其他缺陷_复烧修补不良) AS 其他缺陷_复烧修补不良,
|
|
|
+ // SUM(其他缺陷_合计) AS 其他缺陷_合计,
|
|
|
+ // SUM(研磨缺陷_眼) AS 研磨缺陷_眼,
|
|
|
+ // SUM(研磨缺陷_底) AS 研磨缺陷_底,
|
|
|
+ // SUM(研磨缺陷_底和面) AS 研磨缺陷_底和面 ,
|
|
|
+ // SUM(研磨缺陷_面) AS 研磨缺陷_面,
|
|
|
+ // SUM(研磨缺陷_边) AS 研磨缺陷_边,
|
|
|
+ // SUM(研磨缺陷_研磨配盖) AS 研磨缺陷_研磨配盖,
|
|
|
+ // SUM(研磨缺陷_合计) AS 研磨缺陷_合计,
|
|
|
+ // SUM(合计) AS 合计
|
|
|
+ //FROM(
|
|
|
+ // SELECT
|
|
|
+ // GOODSTYPENAME AS 产品类别,
|
|
|
+ // GOODSNAME AS 产品名称 ,
|
|
|
+ // sum(OUT_K) AS 出窑数 ,
|
|
|
+ // sum(COUNT_U4) AS U级,
|
|
|
+ // sum(COUNT_AB) AS A级,
|
|
|
+ // sum(COUNT_AA) AS AA级,
|
|
|
+ // sum(COUNT_B) AS B级,
|
|
|
+ // sum(COUNT_R) AS R级,
|
|
|
+ // sum(LB_NUM) AS 冷补数,
|
|
|
+ // sum(COUNT_L) AS L级 ,
|
|
|
+ // sum(COUNT_U7) AS F级,
|
|
|
+ // sum(COUNT_Z) AS Z级,
|
|
|
+ // DEcode(ROUND( ((nvl(sum(COUNT_U4),0)+nvl(sum(COUNT_AB),0)+ nvl(sum(COUNT_AA),0))/ sum(OUT_K)), 4 ) *100,0,NULL,ROUND( ((nvl(sum(COUNT_U4),0)+nvl(sum(COUNT_AB),0)+ nvl(sum(COUNT_AA),0))/ sum(OUT_K)), 4 ) *100) AS UA率,
|
|
|
+ // sum( CNUM1 ) AS 原料缺陷_铁脏 ,
|
|
|
+ // sum( CNUM2 ) AS 原料缺陷_铜脏,
|
|
|
+ // sum( CNUM3 ) AS 原料缺陷_合计,
|
|
|
+ // sum( CNUM4 ) AS 成型缺陷_糙活,
|
|
|
+ // sum( CNUM5 ) AS 成型缺陷_成裂,
|
|
|
+ // sum( CNUM6 ) AS 成型缺陷_成脏,
|
|
|
+ // sum( CNUM7 ) AS 成型缺陷_成走,
|
|
|
+ // sum( CNUM8 ) AS 成型缺陷_孔不良,
|
|
|
+ // sum( CNUM9 ) AS 成型缺陷_漏气,
|
|
|
+ // sum( CNUM10 ) AS 成型缺陷_泥绺,
|
|
|
+ // sum( CNUM11 ) AS 成型缺陷_排水不良,
|
|
|
+ // sum( CNUM12 ) AS 成型缺陷_坯脏,
|
|
|
+ // sum( CNUM13 ) AS 成型缺陷_注泡,
|
|
|
+ // sum( CNUM14 ) AS 成型缺陷_棕眼,
|
|
|
+ // sum( CNUM15 ) AS 成型缺陷_炸圈,
|
|
|
+ // sum( CNUM16 ) AS 成型缺陷_卡球,
|
|
|
+ // sum( CNUM17 ) AS 成型缺陷_合计,
|
|
|
+ // sum( CNUM18 ) AS 施釉缺陷_爆釉,
|
|
|
+ // sum( CNUM19 ) AS 施釉缺陷_标不良,
|
|
|
+ // sum( CNUM20 ) AS 施釉缺陷_脱釉,
|
|
|
+ // sum( CNUM21 ) AS 施釉缺陷_釉薄,
|
|
|
+ // sum( CNUM22 ) AS 施釉缺陷_釉磕,
|
|
|
+ // sum( CNUM23 ) AS 施釉缺陷_釉绺,
|
|
|
+ // sum( CNUM24 ) AS 施釉缺陷_釉脏,
|
|
|
+ // sum( CNUM25 ) AS 施釉缺陷_釉粘,
|
|
|
+ // sum( CNUM26 ) AS 施釉缺陷_釉泡,
|
|
|
+ // sum( CNUM27 ) AS 施釉缺陷_波纹,
|
|
|
+ // sum( CNUM28 ) AS 施釉缺陷_合计,
|
|
|
+ // sum( CNUM29 ) AS 循环线施釉缺陷_爆釉,
|
|
|
+ // sum( CNUM30 ) AS 循环线施釉缺陷_标不良,
|
|
|
+ // sum( CNUM31 ) AS 循环线施釉缺陷_脱釉,
|
|
|
+ // sum( CNUM32 ) AS 循环线施釉缺陷_釉薄,
|
|
|
+ // sum( CNUM33 ) AS 循环线施釉缺陷_釉磕,
|
|
|
+ // sum( CNUM34 ) AS 循环线施釉缺陷_釉绺,
|
|
|
+ // sum( CNUM35 ) AS 循环线施釉缺陷_釉脏,
|
|
|
+ // sum( CNUM36 ) AS 循环线施釉缺陷_釉粘,
|
|
|
+ // sum( CNUM37 ) AS 循环线施釉缺陷_釉泡,
|
|
|
+ // sum( CNUM38 ) AS 循环线施釉缺陷_波纹,
|
|
|
+ // sum( CNUM39 ) AS 循环线施釉缺陷_合计,
|
|
|
+ // sum(CNUM39) + sum (CNUM28) AS 施釉_合计,
|
|
|
+ // sum( CNUM40 ) AS 出装窑缺陷_蹭釉,
|
|
|
+ // sum( CNUM41 ) AS 出装窑缺陷_出磕,
|
|
|
+ // sum( CNUM42 ) AS 出装窑缺陷_划釉,
|
|
|
+ // sum( CNUM43 ) AS 出装窑缺陷_落脏,
|
|
|
+ // sum( CNUM44 ) AS 出装窑缺陷_装磕,
|
|
|
+ // sum( CNUM45 ) AS 出装窑缺陷_装粘,
|
|
|
+ // sum( CNUM46 ) AS 出装窑缺陷_装脏,
|
|
|
+ // sum( CNUM47 ) AS 出装窑缺陷_装走,
|
|
|
+ // sum( CNUM48 ) AS 出装窑缺陷_合计,
|
|
|
+ // sum( CNUM49 ) AS 烧窑缺陷_过火泡,
|
|
|
+ // sum( CNUM50 ) AS 烧窑缺陷_桔釉,
|
|
|
+ // sum( CNUM51 ) AS 烧窑缺陷_麻坑,
|
|
|
+ // sum( CNUM52 ) AS 烧窑缺陷_烧裂,
|
|
|
+ // sum( CNUM53 ) AS 烧窑缺陷_烧生,
|
|
|
+ // sum( CNUM54 ) AS 烧窑缺陷_窑脏,
|
|
|
+ // sum( CNUM55 ) AS 烧窑缺陷_烧炸,
|
|
|
+ // sum( CNUM56 ) AS 烧窑缺陷_烟熏,
|
|
|
+ // sum( CNUM57 ) AS 烧窑缺陷_水滴,
|
|
|
+ // sum( CNUM58 ) AS 烧窑缺陷_风惊,
|
|
|
+ // sum( CNUM59 ) AS 烧窑缺陷_针孔,
|
|
|
+ // sum( CNUM60 ) AS 烧窑缺陷_合计,
|
|
|
+ // sum( CNUM61 ) AS 其他缺陷_崩脏,
|
|
|
+ // sum( CNUM62 ) AS 其他缺陷_坯磕,
|
|
|
+ // sum( CNUM63 ) AS 其他缺陷_研磨,
|
|
|
+ // sum( CNUM64 ) AS 其他缺陷_复烧修补不良,
|
|
|
+ // sum( CNUM65 ) AS 其他缺陷_合计,
|
|
|
+ // sum( CNUM66 ) AS 研磨缺陷_眼,
|
|
|
+ // sum( CNUM67 ) AS 研磨缺陷_底,
|
|
|
+ // sum( CNUM68 ) AS 研磨缺陷_底和面,
|
|
|
+ // sum( CNUM69 ) AS 研磨缺陷_面,
|
|
|
+ // sum( CNUM70 ) AS 研磨缺陷_边,
|
|
|
+ // sum( CNUM71 ) AS 研磨缺陷_研磨配盖,
|
|
|
+ // sum( CNUM72 ) AS 研磨缺陷_合计,
|
|
|
+ // sum( CNUM73 ) AS 合计,
|
|
|
+ // GOOD AS 序号
|
|
|
+ // from
|
|
|
+ // JZ_RPT014
|
|
|
+ // WHERE PROCEDUREID = @PROCEDUREID@
|
|
|
+ // AND FORWARDTIME >= @BEGINMONTH@
|
|
|
+ // AND FORWARDTIME < =@ENDMONTH@
|
|
|
+ // AND BUILDINGNO {BUILDINGNO}
|
|
|
+ // AND (KILNID = @KILNID@ OR @KILNID@ IS NULL)
|
|
|
+ // GROUP BY
|
|
|
+ // GROUPING SETS ((GOODSTYPENAME,GOODSNAME,GOOD))
|
|
|
+ // ) GROUP BY
|
|
|
+ // GROUPING SETS ((产品类别,产品名称),()) ".Replace("{BUILDINGNO}", buding);
|
|
|
+
|
|
|
+ // //获取查询条件
|
|
|
+ // 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"]).AddSeconds(1), DataType.DateTime));
|
|
|
+ // sqlPara.Add(new CDAParameter("BUILDINGNO", context.Request["buildingnoMaster"]));
|
|
|
+ // sqlPara.Add(new CDAParameter("KILNID", context.Request["kilnidMaster"]));
|
|
|
+ // sqlPara.Add(new CDAParameter("PROCEDUREID", context.Request["procedureidMaster"]));
|
|
|
+ // sqlPara.Add(new CDAParameter("BEGINMONTH", 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", context.Request["dateendMaster"].Substring(0, context.Request["dateendMaster"].IndexOf("-")) + context.Request["dateendMaster"].Substring(context.Request["dateendMaster"].IndexOf("-") + 1).PadLeft(2, '0')));
|
|
|
+
|
|
|
+ // //获取分页数据
|
|
|
+ // int total = 0;
|
|
|
+ // DataTable dt = conn.ExecuteDatatable(sqlStr, sqlPara.ToArray());
|
|
|
+ // for (int m = dt.Columns.Count - 1; m > 0; m--)
|
|
|
+ // {
|
|
|
+ // for (int mn = 0; mn < defectallnames.Count; mn++)
|
|
|
+ // {
|
|
|
+ // if (dt.Columns[m].ColumnName.Contains(defectallnames[mn]))
|
|
|
+ // {
|
|
|
+ // dt.Columns.Remove(dt.Columns[m].ColumnName);
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // string jsonStr = new JsonResult(dt) { total = total }.ToJson();
|
|
|
+ // context.Response.Write(jsonStr);
|
|
|
+ // }
|
|
|
+ // }
|
|
|
}
|
|
|
|
|
|
public bool IsReusable
|