|
@@ -24,10 +24,13 @@ public class rpt : IHttpHandler, IReadOnlySessionState
|
|
|
string sqlStr = "";
|
|
string sqlStr = "";
|
|
|
//楼号
|
|
//楼号
|
|
|
string buding = null;
|
|
string buding = null;
|
|
|
|
|
+ List<string> defectallnames = new List<string> { "原料缺陷", "成型缺陷", "施釉缺陷", "出装窑缺陷", "烧窑缺陷", "其他缺陷", "研磨缺陷" };
|
|
|
|
|
+
|
|
|
public void ProcessRequest(HttpContext context)
|
|
public void ProcessRequest(HttpContext context)
|
|
|
{
|
|
{
|
|
|
context.Response.ContentType = "text/plain";
|
|
context.Response.ContentType = "text/plain";
|
|
|
proc = context.Request["procedureidMaster"].ToString();
|
|
proc = context.Request["procedureidMaster"].ToString();
|
|
|
|
|
+
|
|
|
//主表
|
|
//主表
|
|
|
if (context.Request["m"].ToString() == "master")
|
|
if (context.Request["m"].ToString() == "master")
|
|
|
{
|
|
{
|
|
@@ -83,13 +86,75 @@ public class rpt : IHttpHandler, IReadOnlySessionState
|
|
|
{
|
|
{
|
|
|
buding = "IN(" + "'1#','2#'" + ")";
|
|
buding = "IN(" + "'1#','2#'" + ")";
|
|
|
}
|
|
}
|
|
|
|
|
+ //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 (!context.Request["name"].ToString().Contains(denames[i]))
|
|
|
|
|
+ {
|
|
|
|
|
+ flg = false;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ //d可选缺陷 删除 插入
|
|
|
|
|
+ if (!flg)
|
|
|
|
|
+ {
|
|
|
|
|
+ using (IDataAccess conn = DataAccess.Create())
|
|
|
|
|
+ {
|
|
|
|
|
+ conn.ExecuteNonQuery(@"delete from tp_mst_defectgroup_user where USERID = @USERID@",
|
|
|
|
|
+ new CDAParameter("USERID", HttpContext.Current.Session["userId"].ToString()));
|
|
|
|
|
+
|
|
|
|
|
+ for (int i = 0; i < denames.Length; i++)
|
|
|
|
|
+ {
|
|
|
|
|
+ if (string.IsNullOrEmpty(denames[i]))
|
|
|
|
|
+ {
|
|
|
|
|
+ continue;
|
|
|
|
|
+ }
|
|
|
|
|
+ defectallnames.Remove(denames[i]);
|
|
|
|
|
+ int result = conn.ExecuteNonQuery(@"
|
|
|
|
|
+ INSERT INTO tp_mst_defectgroup_user (
|
|
|
|
|
+ DEFECTGROUPTYPE,
|
|
|
|
|
+ DEFECTGROUPNAME,
|
|
|
|
|
+ ACCOUNTID,CREATEUSERID,USERID
|
|
|
|
|
+ ) VALUES (
|
|
|
|
|
+ @DEFECTGROUPTYPE@,
|
|
|
|
|
+ @DEFECTGROUPNAME@,
|
|
|
|
|
+ @ACCOUNTID@,@CREATEUSERID@,@USERID@
|
|
|
|
|
+ )
|
|
|
|
|
+ ",
|
|
|
|
|
+ new CDAParameter("DEFECTGROUPTYPE", denames[i]),
|
|
|
|
|
+ new CDAParameter("DEFECTGROUPNAME", denames[i]),
|
|
|
|
|
+ new CDAParameter("ACCOUNTID", HttpContext.Current.Session["accountId"].ToString()),
|
|
|
|
|
+ new CDAParameter("CREATEUSERID", HttpContext.Current.Session["userId"].ToString()),
|
|
|
|
|
+ new CDAParameter("USERID", HttpContext.Current.Session["userId"].ToString())
|
|
|
|
|
+ );
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
using (IDataAccess conn = DataAccess.Create())
|
|
using (IDataAccess conn = DataAccess.Create())
|
|
|
{
|
|
{
|
|
|
col = conn.ExecuteDatatable(@"
|
|
col = conn.ExecuteDatatable(@"
|
|
|
SELECT
|
|
SELECT
|
|
|
DG.DEFECTGROUPTYPE AS TNO,
|
|
DG.DEFECTGROUPTYPE AS TNO,
|
|
|
DG.DEFECTGROUPID AS DNO,
|
|
DG.DEFECTGROUPID AS DNO,
|
|
|
- DG.DEFECTGROUPNAME || '_' || D.DEFECTNAME AS DEFECT
|
|
|
|
|
|
|
+ (case when INSTR(to_char(dg.defectgroupname), '施釉缺陷') > 0 then '施釉缺陷' else to_char(dg.defectgroupname) end ) || '_' || to_char(D.DEFECTNAME) AS DEFECT
|
|
|
FROM
|
|
FROM
|
|
|
TP_MST_DEFECTGROUP DG
|
|
TP_MST_DEFECTGROUP DG
|
|
|
LEFT JOIN TP_MST_DEFECT D ON DG.DEFECTID = D.DEFECTID
|
|
LEFT JOIN TP_MST_DEFECT D ON DG.DEFECTID = D.DEFECTID
|
|
@@ -100,12 +165,12 @@ public class rpt : IHttpHandler, IReadOnlySessionState
|
|
|
SELECT
|
|
SELECT
|
|
|
DG.DEFECTGROUPTYPE AS TNO,
|
|
DG.DEFECTGROUPTYPE AS TNO,
|
|
|
9999 AS DNO,
|
|
9999 AS DNO,
|
|
|
- DG.DEFECTGROUPNAME || '_合计' AS DEFECT
|
|
|
|
|
|
|
+ (case when INSTR(to_char(dg.defectgroupname), '施釉缺陷') > 0 then '施釉缺陷' else to_char(dg.defectgroupname) end ) || '_合计' AS DEFECT
|
|
|
FROM
|
|
FROM
|
|
|
(select * from TP_MST_DEFECTGROUP WHERE DEFECTGROUPTYPE LIKE '每窑%') DG
|
|
(select * from TP_MST_DEFECTGROUP WHERE DEFECTGROUPTYPE LIKE '每窑%') DG
|
|
|
GROUP BY
|
|
GROUP BY
|
|
|
DG.DEFECTGROUPTYPE,
|
|
DG.DEFECTGROUPTYPE,
|
|
|
- DG.DEFECTGROUPNAME
|
|
|
|
|
|
|
+ (case when INSTR(to_char(dg.defectgroupname), '施釉缺陷') > 0 then '施釉缺陷' else to_char(dg.defectgroupname) end )
|
|
|
|
|
|
|
|
ORDER BY
|
|
ORDER BY
|
|
|
TNO,DNO
|
|
TNO,DNO
|
|
@@ -236,13 +301,13 @@ public class rpt : IHttpHandler, IReadOnlySessionState
|
|
|
TT.CNUM
|
|
TT.CNUM
|
|
|
FROM (SELECT grouping_id(ppp.goodstypecode
|
|
FROM (SELECT grouping_id(ppp.goodstypecode
|
|
|
,ppp.goodscode
|
|
,ppp.goodscode
|
|
|
- ,ppp.defectgroupname
|
|
|
|
|
|
|
+ ,(case when INSTR(to_char(ppp.defectgroupname), '施釉缺陷') > 0 then '施釉缺陷' else to_char(ppp.defectgroupname) end )
|
|
|
,ppp.defectname) AS gid
|
|
,ppp.defectname) AS gid
|
|
|
,ppp.goodstypecode
|
|
,ppp.goodstypecode
|
|
|
,ppp.goodstypename
|
|
,ppp.goodstypename
|
|
|
,ppp.goodscode
|
|
,ppp.goodscode
|
|
|
- ,ppp.defectgroupname
|
|
|
|
|
- ,to_char(ppp.defectgroupname || '_' || ppp.defectname) AS defect
|
|
|
|
|
|
|
+ ,(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
|
|
,SUM(CASE
|
|
|
WHEN ppp.defectid = 11
|
|
WHEN ppp.defectid = 11
|
|
|
AND (ppp.goodsleveltypeid = 4 OR ppp.goodsleveltypeid = 5) THEN
|
|
AND (ppp.goodsleveltypeid = 4 OR ppp.goodsleveltypeid = 5) THEN
|
|
@@ -300,17 +365,17 @@ public class rpt : IHttpHandler, IReadOnlySessionState
|
|
|
AND L.BUILDINGNO {BUILDINGNO} ) ppp
|
|
AND L.BUILDINGNO {BUILDINGNO} ) ppp
|
|
|
--XUWEI 2020-07-10 ADD
|
|
--XUWEI 2020-07-10 ADD
|
|
|
--AND (NOT D.DEFECTPROCEDUREID IS NULL)
|
|
--AND (NOT D.DEFECTPROCEDUREID IS NULL)
|
|
|
- GROUP BY GROUPING SETS((ppp.goodstypecode, ppp.goodstypename, ppp.goodscode, ppp.defectgroupname, ppp.defectname),
|
|
|
|
|
- (ppp.goodstypecode, ppp.goodstypename, ppp.goodscode, ppp.defectgroupname),
|
|
|
|
|
|
|
+ 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, ppp.goodscode),
|
|
|
- (ppp.goodstypecode, ppp.goodstypename, ppp.defectgroupname, ppp.defectname),
|
|
|
|
|
- (ppp.goodstypecode, ppp.goodstypename, ppp.defectgroupname),
|
|
|
|
|
|
|
+ (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),
|
|
(ppp.goodstypecode, ppp.goodstypename),
|
|
|
- (ppp.defectgroupname, ppp.defectname),
|
|
|
|
|
- (ppp.defectgroupname),())
|
|
|
|
|
|
|
+ ((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
|
|
ORDER BY ppp.goodstypecode
|
|
|
,ppp.goodscode
|
|
,ppp.goodscode
|
|
|
- ,ppp.defectgroupname
|
|
|
|
|
|
|
+ ,(case when INSTR(to_char(ppp.defectgroupname), '施釉缺陷') > 0 then '施釉缺陷' else to_char(ppp.defectgroupname) end )
|
|
|
,ppp.defectname) tt)
|
|
,ppp.defectname) tt)
|
|
|
PIVOT (
|
|
PIVOT (
|
|
|
SUM( CNUM ) FOR DEFECT IN ({DEFECT},'合计' AS 合计
|
|
SUM( CNUM ) FOR DEFECT IN ({DEFECT},'合计' AS 合计
|
|
@@ -326,7 +391,7 @@ public class rpt : IHttpHandler, IReadOnlySessionState
|
|
|
ORDER BY TA.GOODSTYPENAME,TA.GOODSCODE
|
|
ORDER BY TA.GOODSTYPENAME,TA.GOODSCODE
|
|
|
".Replace("{DEFECT}", defectStr).Replace("{BUILDINGNO}", buding).Replace("{goodsCodes}", goodssql);
|
|
".Replace("{DEFECT}", defectStr).Replace("{BUILDINGNO}", buding).Replace("{goodsCodes}", goodssql);
|
|
|
}
|
|
}
|
|
|
- else
|
|
|
|
|
|
|
+ else if (proc == "35")
|
|
|
{
|
|
{
|
|
|
//读取报表数据
|
|
//读取报表数据
|
|
|
sqlStr = @"
|
|
sqlStr = @"
|
|
@@ -439,13 +504,13 @@ DECODE( TA.GID, 3, '合计', TA.GOODSTYPENAME ) AS 产品类别,
|
|
|
TT.CNUM
|
|
TT.CNUM
|
|
|
FROM (SELECT grouping_id(ppp.goodstypecode
|
|
FROM (SELECT grouping_id(ppp.goodstypecode
|
|
|
,ppp.goodscode
|
|
,ppp.goodscode
|
|
|
- ,ppp.defectgroupname
|
|
|
|
|
|
|
+ ,(case when INSTR(to_char(ppp.defectgroupname), '施釉缺陷') > 0 then '施釉缺陷' else to_char(ppp.defectgroupname) end )
|
|
|
,ppp.defectname) AS gid
|
|
,ppp.defectname) AS gid
|
|
|
,ppp.goodstypecode
|
|
,ppp.goodstypecode
|
|
|
,ppp.goodstypename
|
|
,ppp.goodstypename
|
|
|
,ppp.goodscode
|
|
,ppp.goodscode
|
|
|
- ,ppp.defectgroupname
|
|
|
|
|
- ,to_char(ppp.defectgroupname || '_' || ppp.defectname) AS defect
|
|
|
|
|
|
|
+ ,(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
|
|
,SUM(CASE
|
|
|
WHEN ppp.defectid = 11
|
|
WHEN ppp.defectid = 11
|
|
|
AND (ppp.goodsleveltypeid = 4 OR ppp.goodsleveltypeid = 5) THEN
|
|
AND (ppp.goodsleveltypeid = 4 OR ppp.goodsleveltypeid = 5) THEN
|
|
@@ -500,17 +565,17 @@ DECODE( TA.GID, 3, '合计', TA.GOODSTYPENAME ) AS 产品类别,
|
|
|
AND L.BUILDINGNO {BUILDINGNO}) ppp
|
|
AND L.BUILDINGNO {BUILDINGNO}) ppp
|
|
|
--XUWEI 2020-07-10 ADD
|
|
--XUWEI 2020-07-10 ADD
|
|
|
--AND (NOT D.DEFECTPROCEDUREID IS NULL)
|
|
--AND (NOT D.DEFECTPROCEDUREID IS NULL)
|
|
|
- GROUP BY GROUPING SETS((ppp.goodstypecode, ppp.goodstypename, ppp.goodscode, ppp.defectgroupname, ppp.defectname),
|
|
|
|
|
- (ppp.goodstypecode, ppp.goodstypename, ppp.goodscode, ppp.defectgroupname),
|
|
|
|
|
|
|
+ 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, ppp.goodscode),
|
|
|
- (ppp.goodstypecode, ppp.goodstypename, ppp.defectgroupname, ppp.defectname),
|
|
|
|
|
- (ppp.goodstypecode, ppp.goodstypename, ppp.defectgroupname),
|
|
|
|
|
|
|
+ (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),
|
|
(ppp.goodstypecode, ppp.goodstypename),
|
|
|
- (ppp.defectgroupname, ppp.defectname),
|
|
|
|
|
- (ppp.defectgroupname),())
|
|
|
|
|
|
|
+ ((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
|
|
ORDER BY ppp.goodstypecode
|
|
|
,ppp.goodscode
|
|
,ppp.goodscode
|
|
|
- ,ppp.defectgroupname
|
|
|
|
|
|
|
+ ,(case when INSTR(to_char(ppp.defectgroupname), '施釉缺陷') > 0 then '施釉缺陷' else to_char(ppp.defectgroupname) end )
|
|
|
,ppp.defectname) tt) PIVOT (
|
|
,ppp.defectname) tt) PIVOT (
|
|
|
SUM( CNUM ) FOR DEFECT IN ({DEFECT},'合计' AS 合计
|
|
SUM( CNUM ) FOR DEFECT IN ({DEFECT},'合计' AS 合计
|
|
|
)
|
|
)
|
|
@@ -525,6 +590,185 @@ DECODE( TA.GID, 3, '合计', TA.GOODSTYPENAME ) AS 产品类别,
|
|
|
ORDER BY TA.GOODSTYPENAME,TA.GOODSCODE
|
|
ORDER BY TA.GOODSTYPENAME,TA.GOODSCODE
|
|
|
".Replace("{DEFECT}", defectStr).Replace("{BUILDINGNO}", buding).Replace("{goodsCodes}", goodssql);
|
|
".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_AA, 0, NULL, TA.COUNT_AA ) AS AA级,
|
|
|
|
|
+ DECODE(TA.COUNT_L, 0, NULL, TA.COUNT_L) AS 去AA
|
|
|
|
|
+ ,DECODE(ta.count_ym, 0, NULL, ta.count_ym) AS 研磨
|
|
|
|
|
+ ,DECODE(ta.count_lb, 0, NULL, ta.count_lb) AS 直接冷补
|
|
|
|
|
+ ,DECODE(ta.count_ymlb, 0, NULL, ta.count_ymlb) AS 研磨后冷补
|
|
|
|
|
+ ,DECODE(ta.count_dlq, 0, NULL, ta.count_dlq) AS 堵漏气
|
|
|
|
|
+ ,DECODE(ta.count_sxbl, 0, NULL, ta.count_sxbl) AS 刷洗不良
|
|
|
|
|
+ ,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.H_FLAG = 0 AND T.GOODSLEVELTYPEID = 7 THEN 1 ELSE 0 END ) COUNT_U7, -- 直接次品
|
|
|
|
|
+ SUM( CASE WHEN rpd.procedureid = 20 THEN 1 ELSE 0 END ) AS count_ym , --研磨
|
|
|
|
|
+ SUM( CASE WHEN rpd.procedureid = 22 THEN 1 ELSE 0 END ) AS count_lb ,--直接冷补,
|
|
|
|
|
+ SUM( CASE WHEN rpd.procedureid = 23 THEN 1 ELSE 0 END ) AS count_ymlb, --研磨后冷补,
|
|
|
|
|
+ SUM( CASE WHEN rpd.procedureid = 37 THEN 1 ELSE 0 END ) AS count_dlq ,--堵漏气,
|
|
|
|
|
+ SUM( CASE WHEN rpd.procedureid = 41 THEN 1 ELSE 0 END ) AS count_sxbl, --刷洗不良,
|
|
|
|
|
+ SUM( CASE WHEN RPD.PROCEDUREID IN ( 22, 23, 37, 20, 41 ) THEN 1 ELSE 0 END ) COUNT_L, -- 研磨、堵漏气、刷洗不良、直接冷补、研磨冷补
|
|
|
|
|
+ SUM( CASE WHEN T.GOODSLEVELTYPEID IN ( 4, 5 ) AND RPD.PROCEDUREID IN ( 22, 23, 37, 20, 41 ) THEN 1 ELSE 0 END ) COUNT_AA, -- 研磨、堵漏气、刷洗不良、直接冷补、研磨冷补合格数
|
|
|
|
|
+ SUM( CASE WHEN T.H_FLAG = 0 AND T.GOODSLEVELTYPEID = 20 THEN 1 ELSE 0 END ) Waste -- 直接次品
|
|
|
|
|
+ FROM
|
|
|
|
|
+ (
|
|
|
|
|
+
|
|
|
|
|
+ SELECT
|
|
|
|
|
+ TO_CHAR(PD.PRODUCTIONDATAID),
|
|
|
|
|
+ MAX( PMAX.PRODUCTIONDATAID ) MPDID,
|
|
|
|
|
+ PD.GOODSLEVELTYPEID,
|
|
|
|
|
+ PD.GOODSID,
|
|
|
|
|
+ PD.REWORKPROCEDUREID,
|
|
|
|
|
+ 0 LB_NUM,
|
|
|
|
|
+ 0 B_NUM,
|
|
|
|
|
+ 0 OUT_K,
|
|
|
|
|
+ CASE WHEN sum( PMAX.PRODUCTIONDATAID ) > 0 THEN 1 ELSE 0 END H_FLAG,
|
|
|
|
|
+ 0 Waste
|
|
|
|
|
+ FROM
|
|
|
|
|
+ TP_PM_PRODUCTIONDATA PD
|
|
|
|
|
+ LEFT 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.VALUEFLAG = '1'
|
|
|
|
|
+ AND PD.PROCEDUREID in ( 13 ,35)
|
|
|
|
|
+ AND PD.CHECKBATCHNO = 1
|
|
|
|
|
+ AND PD.CREATETIME >= @DATEBEGIN@
|
|
|
|
|
+ AND PD.CREATETIME < @DATEEND@
|
|
|
|
|
+ AND (PD.KILNID = @KILNID@ OR @KILNID@ IS NULL)
|
|
|
|
|
+ AND PD.GOODSCODE IN({goodsCodes})
|
|
|
|
|
+ AND GL.BUILDINGNO {BUILDINGNO}
|
|
|
|
|
+ GROUP BY
|
|
|
|
|
+ PD.PRODUCTIONDATAID,
|
|
|
|
|
+ PD.GOODSLEVELTYPEID,
|
|
|
|
|
+ PD.GOODSID,
|
|
|
|
|
+ PD.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
|
|
|
|
|
+ TP_PM_PRODUCTIONDATA 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_PC_GROUTINGLINE L ON P.GROUTINGLINEID = L.GROUTINGLINEID
|
|
|
|
|
+ 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
|
|
|
|
|
+ )
|
|
|
|
|
+ WHERE
|
|
|
|
|
+ P.VALUEFLAG = '1'
|
|
|
|
|
+ AND P.PROCEDUREID = @PROCEDUREID@
|
|
|
|
|
+ AND P.CHECKBATCHNO = 1
|
|
|
|
|
+ --xuwei fix 2020-10-09 begin
|
|
|
|
|
+ AND P.CHECKTIME >= @DATEBEGIN@
|
|
|
|
|
+ AND P.CHECKTIME < @DATEEND@
|
|
|
|
|
+ --AND P.CREATETIME >= @DATEBEGIN@
|
|
|
|
|
+ --AND P.CREATETIME < @DATEEND@
|
|
|
|
|
+ --xuwei fix 2020-10-09 end
|
|
|
|
|
+
|
|
|
|
|
+ AND P.GOODSLEVELTYPEID <> 4
|
|
|
|
|
+ AND (P.KILNID = @KILNID@ OR @KILNID@ IS NULL)
|
|
|
|
|
+ -- AND (P.GOODSCODE = @GOODSCODE@ OR @GOODSCODE@ IS NULL)
|
|
|
|
|
+ --AND (INSTR((@GOODSCODE@),P.GOODSCODE)>0 OR @GOODSCODE@ IS NULL)
|
|
|
|
|
+ AND P.GOODSCODE IN({goodsCodes})
|
|
|
|
|
+ AND L.BUILDINGNO {BUILDINGNO} ) ppp
|
|
|
|
|
+ --XUWEI 2020-07-10 ADD
|
|
|
|
|
+ --AND (NOT D.DEFECTPROCEDUREID IS NULL)
|
|
|
|
|
+ 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 )
|
|
|
|
|
+ )
|
|
|
|
|
+ ORDER BY TA.GOODSTYPENAME,TA.GOODSCODE
|
|
|
|
|
+ ".Replace("{DEFECT}", defectStr).Replace("{BUILDINGNO}", buding).Replace("{goodsCodes}", goodssql);
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
//获取查询条件
|
|
//获取查询条件
|
|
|
List<CDAParameter> sqlPara = new List<CDAParameter>();
|
|
List<CDAParameter> sqlPara = new List<CDAParameter>();
|
|
@@ -636,11 +880,16 @@ DECODE( TA.GID, 3, '合计', TA.GOODSTYPENAME ) AS 产品类别,
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- //获取分页参数
|
|
|
|
|
- //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"] : "";
|
|
|
|
|
|
|
+ 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;
|
|
int total = 0;
|
|
|
//dt = conn.SelectPages(page, rows, out total, sqlStr, sqlPara.ToArray());
|
|
//dt = conn.SelectPages(page, rows, out total, sqlStr, sqlPara.ToArray());
|
|
@@ -649,9 +898,7 @@ DECODE( TA.GID, 3, '合计', TA.GOODSTYPENAME ) AS 产品类别,
|
|
|
context.Response.Write(jsonStr);
|
|
context.Response.Write(jsonStr);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
|
|
+ // 结转
|
|
|
if (context.Request["m"].ToString() == "jiezhauang")
|
|
if (context.Request["m"].ToString() == "jiezhauang")
|
|
|
{
|
|
{
|
|
|
using (IDataAccess conn = DataAccess.Create())
|
|
using (IDataAccess conn = DataAccess.Create())
|