|
|
@@ -8,10 +8,12 @@ using System.Collections.Generic;
|
|
|
using System.Data;
|
|
|
using System.Web;
|
|
|
using System.Web.SessionState;
|
|
|
+using System.Linq;
|
|
|
+public class demo : IHttpHandler
|
|
|
+{
|
|
|
|
|
|
-public class demo : IHttpHandler {
|
|
|
-
|
|
|
- public void ProcessRequest (HttpContext context) {
|
|
|
+ public void ProcessRequest(HttpContext context)
|
|
|
+ {
|
|
|
context.Response.ContentType = "text/plain";
|
|
|
context.Response.ContentType = "text/plain";
|
|
|
using (IDataAccess conn = DataAccess.Create())
|
|
|
@@ -42,8 +44,8 @@ public class demo : IHttpHandler {
|
|
|
}
|
|
|
}
|
|
|
using (IDataAccess conn = DataAccess.Create())
|
|
|
- {
|
|
|
- //吹尘工号产量柱状图
|
|
|
+ {
|
|
|
+ //吹尘工号产量柱状图
|
|
|
if (context.Request["m"].ToString() == "cc")
|
|
|
{
|
|
|
string sqlStr = @" SELECT
|
|
|
@@ -74,7 +76,7 @@ public class demo : IHttpHandler {
|
|
|
string jsonStr = new JsonResult(dt).ToJson();
|
|
|
context.Response.Write(jsonStr);
|
|
|
}
|
|
|
- }
|
|
|
+ }
|
|
|
using (IDataAccess conn = DataAccess.Create())
|
|
|
{
|
|
|
//施釉工号产量柱状图
|
|
|
@@ -103,17 +105,19 @@ public class demo : IHttpHandler {
|
|
|
|
|
|
using (IDataAccess conn = DataAccess.Create())
|
|
|
{
|
|
|
- //归属施釉缺陷扇形图
|
|
|
+ //归属施釉缺陷(今日TOP3)
|
|
|
if (context.Request["m"].ToString() == "defect")
|
|
|
{
|
|
|
string sqlStr = @"SELECT
|
|
|
T.S_NAME AS 缺陷名称,
|
|
|
- T.数量
|
|
|
+ T.数量 ,
|
|
|
+ T.缺陷工序编码
|
|
|
FROM
|
|
|
(
|
|
|
SELECT
|
|
|
TMD.S_NAME,
|
|
|
- count( DISTINCT TPD.BARCODE ) AS 数量
|
|
|
+ count( DISTINCT TPD.BARCODE ) AS 数量 ,
|
|
|
+ TPD.DEFECTUSERCODE AS 缺陷工序编码
|
|
|
FROM
|
|
|
TP_PM_DEFECT TPD
|
|
|
LEFT JOIN TP_MST_DEFECT TMD ON TPD.DEFECTID = TMD.DEFECTID
|
|
|
@@ -126,17 +130,160 @@ public class demo : IHttpHandler {
|
|
|
AND TPGL.TESTFLAG = 0
|
|
|
AND TPD.DEFECTDEDUCTIONNUM >=1
|
|
|
AND ( SUBSTR( TPGL.GROUTINGLINENAME, 1, 3 ) = 'C05' OR SUBSTR( TPGL.GROUTINGLINECODE, 1, 3 ) = 'C06' )
|
|
|
- AND TPPD.CHECKBATCHNO = 1
|
|
|
+ AND TPPD.CHECKBATCHNO = 1
|
|
|
+ AND TPD.VALUEFLAG = 1
|
|
|
+ AND TPD.DEFECTUSERCODE NOT IN('YL1')
|
|
|
GROUP BY
|
|
|
- TMD.S_NAME
|
|
|
+ TMD.S_NAME ,TPD.DEFECTUSERCODE
|
|
|
ORDER BY
|
|
|
- count( * ) DESC
|
|
|
- ) T
|
|
|
- WHERE
|
|
|
- ROWNUM < 4";
|
|
|
+ COUNT( * ) DESC
|
|
|
+ ) T ";
|
|
|
//直接获取不分页数据
|
|
|
DataTable dt = conn.ExecuteDatatable(sqlStr);
|
|
|
- string jsonStr = new JsonResult(dt).ToJson();
|
|
|
+ //创建返回值
|
|
|
+ DataTable dt归属施釉缺陷 = new DataTable();
|
|
|
+ DataTable dt月成品缺陷0105 = new DataTable();
|
|
|
+ DataTable dt月成品缺陷0204 = new DataTable();
|
|
|
+ //所需缺陷代码
|
|
|
+ List<String> S0105 = new List<string>() { "SSY001", "SSY005" };
|
|
|
+ List<String> S0204 = new List<string>() { "SSY002", "SSY004" };
|
|
|
+ //添加表头
|
|
|
+ for (int i = 0; i < 2; i++)
|
|
|
+ {
|
|
|
+ dt归属施釉缺陷.Columns.Add(dt.Columns[i].ColumnName);
|
|
|
+ dt月成品缺陷0105.Columns.Add(dt.Columns[i].ColumnName);
|
|
|
+ dt月成品缺陷0204.Columns.Add(dt.Columns[i].ColumnName);
|
|
|
+ }
|
|
|
+ //创建归属施釉缺陷所需数据
|
|
|
+ var aaa = dt.AsEnumerable().GroupBy(row => row.Field<string>("缺陷名称")).Select(group =>
|
|
|
+ new { 缺陷名称 = group.Key, 数量 = group.Sum(row => row.Field<decimal>("数量")) }).
|
|
|
+ OrderByDescending(ex => ex.数量).Take(3);
|
|
|
+ //添加表体
|
|
|
+ foreach (var item in aaa)
|
|
|
+ {
|
|
|
+ var dr归属施釉缺陷 = dt归属施釉缺陷.NewRow();
|
|
|
+ dr归属施釉缺陷["缺陷名称"] = item.缺陷名称;
|
|
|
+ dr归属施釉缺陷["数量"] = item.数量;
|
|
|
+ dt归属施釉缺陷.Rows.Add(dr归属施釉缺陷);
|
|
|
+ }
|
|
|
+ //创建月成品缺陷0105所需数据
|
|
|
+ var bbb = dt.AsEnumerable().Where(ex => S0105.Contains(ex.Field<string>("缺陷工序编码")))
|
|
|
+ .GroupBy(row => row.Field<string>("缺陷名称")).Select(group =>
|
|
|
+ new { 缺陷名称 = group.Key, 数量 = group.Sum(row => row.Field<decimal>("数量")) }).
|
|
|
+ OrderByDescending(ex => ex.数量).Take(5);
|
|
|
+
|
|
|
+ //添加表体
|
|
|
+ foreach (var item in bbb)
|
|
|
+ {
|
|
|
+ var dr月成品缺陷0105 = dt月成品缺陷0105.NewRow();
|
|
|
+ dr月成品缺陷0105["缺陷名称"] = item.缺陷名称;
|
|
|
+ dr月成品缺陷0105["数量"] = item.数量;
|
|
|
+ dt月成品缺陷0105.Rows.Add(dr月成品缺陷0105);
|
|
|
+ }
|
|
|
+ //创建月成品缺陷0204所需数据
|
|
|
+ var ccc = dt.AsEnumerable().Where(ex => S0204.Contains(ex.Field<string>("缺陷工序编码")))
|
|
|
+ .GroupBy(row => row.Field<string>("缺陷名称")).Select(group =>
|
|
|
+ new { 缺陷名称 = group.Key, 数量 = group.Sum(row => row.Field<decimal>("数量")) }).
|
|
|
+ OrderByDescending(ex => ex.数量).Take(5);
|
|
|
+ //添加表体
|
|
|
+ foreach (var item in ccc)
|
|
|
+ {
|
|
|
+ var dr月成品缺陷0204 = dt月成品缺陷0204.NewRow();
|
|
|
+ dr月成品缺陷0204["缺陷名称"] = item.缺陷名称;
|
|
|
+ dr月成品缺陷0204["数量"] = item.数量;
|
|
|
+ dt月成品缺陷0204.Rows.Add(dr月成品缺陷0204);
|
|
|
+ }
|
|
|
+ //返回值对象
|
|
|
+ DataSet result = new DataSet();
|
|
|
+ result.Tables.Add(dt归属施釉缺陷);
|
|
|
+ result.Tables.Add(dt月成品缺陷0105);
|
|
|
+ result.Tables.Add(dt月成品缺陷0204);
|
|
|
+ string jsonStr = new JsonResult(result).ToJson();
|
|
|
+ context.Response.Write(jsonStr);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ using (IDataAccess conn = DataAccess.Create())
|
|
|
+ {
|
|
|
+ //月成品缺陷(每月TOP5)
|
|
|
+ //SSY001 SSY002 SSY004 SSY005
|
|
|
+ if (context.Request["m"].ToString() == "defectMonth")
|
|
|
+ {
|
|
|
+ string sqlStr = @"SELECT
|
|
|
+ T.S_NAME AS 缺陷名称,
|
|
|
+ T.数量 ,
|
|
|
+ T.缺陷工序编码
|
|
|
+ FROM
|
|
|
+ (
|
|
|
+ SELECT
|
|
|
+ TMD.S_NAME,
|
|
|
+ count( DISTINCT TPD.BARCODE ) AS 数量 ,
|
|
|
+ TPD.DEFECTUSERCODE AS 缺陷工序编码
|
|
|
+ FROM
|
|
|
+ TP_PM_DEFECT TPD
|
|
|
+ LEFT JOIN TP_MST_DEFECT TMD ON TPD.DEFECTID = TMD.DEFECTID
|
|
|
+ LEFT JOIN TP_PM_PRODUCTIONDATA TPPD ON TPD.BARCODE = TPPD.BARCODE
|
|
|
+ LEFT JOIN TP_PM_GROUTINGDAILYDETAIL PGD ON PGD.BARCODE = TPD.BARCODE
|
|
|
+ LEFT JOIN TP_PC_GROUTINGLINE TPGL ON TPGL.GROUTINGLINEID = PGD.GROUTINGLINEID
|
|
|
+ WHERE
|
|
|
+ TPD.CREATETIME >= TRUNC(SYSDATE, 'MM')
|
|
|
+ AND TMD.DEFECTTYPEID IN ( 17, 5 )
|
|
|
+ AND TPGL.TESTFLAG = 0
|
|
|
+ AND TPD.DEFECTDEDUCTIONNUM >=1
|
|
|
+ AND ( SUBSTR( TPGL.GROUTINGLINENAME, 1, 3 ) = 'C05' OR SUBSTR( TPGL.GROUTINGLINECODE, 1, 3 ) = 'C06' )
|
|
|
+ AND TPPD.CHECKBATCHNO = 1
|
|
|
+ AND TPD.VALUEFLAG = 1
|
|
|
+ AND TPD.DEFECTUSERCODE NOT IN('YL1')
|
|
|
+ GROUP BY
|
|
|
+ TMD.S_NAME ,TPD.DEFECTUSERCODE
|
|
|
+ ORDER BY
|
|
|
+ COUNT( * ) DESC
|
|
|
+ ) T ";
|
|
|
+ //直接获取不分页数据
|
|
|
+ DataTable dt = conn.ExecuteDatatable(sqlStr);
|
|
|
+ //创建返回值
|
|
|
+ DataTable dt月成品缺陷0105 = new DataTable();
|
|
|
+ DataTable dt月成品缺陷0204 = new DataTable();
|
|
|
+ //所需缺陷代码
|
|
|
+ List<String> S0105 = new List<string>() { "SSY001", "SSY005" };
|
|
|
+ List<String> S0204 = new List<string>() { "SSY002", "SSY004" };
|
|
|
+ //添加表头
|
|
|
+ for (int i = 0; i < 2; i++)
|
|
|
+ {
|
|
|
+ dt月成品缺陷0105.Columns.Add(dt.Columns[i].ColumnName);
|
|
|
+ dt月成品缺陷0204.Columns.Add(dt.Columns[i].ColumnName);
|
|
|
+ }
|
|
|
+ //创建月成品缺陷0105所需数据
|
|
|
+ var bbb = dt.AsEnumerable().Where(ex => S0105.Contains(ex.Field<string>("缺陷工序编码")))
|
|
|
+ .GroupBy(row => row.Field<string>("缺陷名称")).Select(group =>
|
|
|
+ new { 缺陷名称 = group.Key, 数量 = group.Sum(row => row.Field<decimal>("数量")) }).
|
|
|
+ OrderByDescending(ex => ex.数量).Take(5);
|
|
|
+
|
|
|
+ //添加表体
|
|
|
+ foreach (var item in bbb)
|
|
|
+ {
|
|
|
+ var dr月成品缺陷0105 = dt月成品缺陷0105.NewRow();
|
|
|
+ dr月成品缺陷0105["缺陷名称"] = item.缺陷名称;
|
|
|
+ dr月成品缺陷0105["数量"] = item.数量;
|
|
|
+ dt月成品缺陷0105.Rows.Add(dr月成品缺陷0105);
|
|
|
+ }
|
|
|
+ //创建月成品缺陷0204所需数据
|
|
|
+ var ccc = dt.AsEnumerable().Where(ex => S0204.Contains(ex.Field<string>("缺陷工序编码")))
|
|
|
+ .GroupBy(row => row.Field<string>("缺陷名称")).Select(group =>
|
|
|
+ new { 缺陷名称 = group.Key, 数量 = group.Sum(row => row.Field<decimal>("数量")) }).
|
|
|
+ OrderByDescending(ex => ex.数量).Take(5);
|
|
|
+ //添加表体
|
|
|
+ foreach (var item in ccc)
|
|
|
+ {
|
|
|
+ var dr月成品缺陷0204 = dt月成品缺陷0204.NewRow();
|
|
|
+ dr月成品缺陷0204["缺陷名称"] = item.缺陷名称;
|
|
|
+ dr月成品缺陷0204["数量"] = item.数量;
|
|
|
+ dt月成品缺陷0204.Rows.Add(dr月成品缺陷0204);
|
|
|
+ }
|
|
|
+ //返回值对象
|
|
|
+ DataSet result = new DataSet();
|
|
|
+ result.Tables.Add(dt月成品缺陷0105);
|
|
|
+ result.Tables.Add(dt月成品缺陷0204);
|
|
|
+ string jsonStr = new JsonResult(result).ToJson();
|
|
|
context.Response.Write(jsonStr);
|
|
|
}
|
|
|
}
|
|
|
@@ -520,6 +667,197 @@ public class demo : IHttpHandler {
|
|
|
|
|
|
using (IDataAccess conn = DataAccess.Create())
|
|
|
{
|
|
|
+ //施釉每日成品合格率(前7日)&&施釉每月成品合格率(前7月)&&施釉每日成品冷补缺陷率(前7日)
|
|
|
+ if (context.Request["m"].ToString() == "Dailypassrate")
|
|
|
+ {
|
|
|
+ string type = context.Request["type"].ToString() == "day" ? "yyyymmdd" : "yyyymm";
|
|
|
+ //判断是否开启施釉每日成品冷补缺陷率(前7日)
|
|
|
+ string repair = context.Request["repair"].ToString();
|
|
|
+ //出窑数
|
|
|
+ string sqlStr1 = "SELECT " +
|
|
|
+ "DISTINCT CASE WHEN COUNT( TPPD.BARCODE ) IS NULL THEN 0 ELSE COUNT( TPPD.BARCODE ) END 出窑数," +
|
|
|
+ "to_char( temp.CREATETIME, '"+type+"' ) AS CREATETIME " +
|
|
|
+ "FROM " +
|
|
|
+ "TP_PM_ProductionData TPPD " +
|
|
|
+ "INNER JOIN tp_mst_goods ON tp_mst_goods.goodsid = TPPD.Goodsid " +
|
|
|
+ "INNER JOIN tp_mst_goodstype ON tp_mst_goodstype.goodstypeid = tp_mst_goods.goodstypeid " +
|
|
|
+ "INNER JOIN TP_MST_RptTProcedure ON TP_MST_RptTProcedure.Procedureid = TPPD.Procedureid " +
|
|
|
+ "INNER JOIN tp_pc_procedure pcp ON pcp.procedureid = TPPD.Procedureid " +
|
|
|
+ "INNER JOIN ( " +
|
|
|
+ "SELECT pd.Barcode, pd.Createtime " +
|
|
|
+ "FROM TP_PM_ProductionData pd " +
|
|
|
+ "INNER JOIN tp_pm_groutingdailydetail gdd ON gdd.groutingdailydetailid = pd.groutingdailydetailid " +
|
|
|
+ "WHERE pd.Accountid = 1 " +
|
|
|
+ "AND pd.isrefire = '0' " +
|
|
|
+ "AND pd.islengbu = '0' " +
|
|
|
+ "AND ( " +
|
|
|
+ "( pd.procedureid = 11 AND pd.valueflag = '1' AND ( pd.checkflag = '1' OR pd.checkflag IS NULL ) ) " +
|
|
|
+ "OR ( pd.procedureid = 104 AND pd.checkflag = '1' ) " +
|
|
|
+ ") " +
|
|
|
+ "AND PD.KILNID IN ( 1, 2, 5 ) " +
|
|
|
+ "AND PD.CREATETIME >= CASE WHEN '"+type+"' = 'yyyymm' THEN TRUNC(ADD_MONTHS(SYSDATE, -6), 'MM')" +
|
|
|
+ "ELSE TRUNC(SYSDATE - 6) END "+
|
|
|
+ ") temp ON TPPD.Barcode = temp.barcode " +
|
|
|
+ "AND TPPD.createtime <= temp.createtime " +
|
|
|
+ "WHERE TPPD.Valueflag = '1' " +
|
|
|
+ "AND TP_MST_RptTProcedure.Rptprocedureid = 1 " +
|
|
|
+ "AND instr( ',' || '98' || ',', ',' || TP_MST_RptTProcedure.ProcedureId || ',' ) > 0 " +
|
|
|
+ "AND TPPD.usercode IN ( 'SSY001', 'SSY002', 'SSY004', 'SSY005' ) "+
|
|
|
+ "GROUP BY to_char( temp.CREATETIME, '"+type+"') " +
|
|
|
+ "ORDER BY to_char( temp.CREATETIME, '"+type+"' ) DESC ";
|
|
|
+
|
|
|
+ //直接获取不分页数据
|
|
|
+ DataTable dt1 = conn.ExecuteDatatable(sqlStr1);
|
|
|
+ //成检不合格数
|
|
|
+ string sqlStr2 = "SELECT DISTINCT " +
|
|
|
+ "NVL( COUNT( DISTINCT pmd.BARCODE ), 0 ) 成检不合格数, " +
|
|
|
+ "to_char( pmd.CREATETIME, '"+type+"' ) AS CREATETIME " +
|
|
|
+ "FROM " +
|
|
|
+ "tp_pm_defect pmd " +
|
|
|
+ "INNER JOIN TP_PM_PRODUCTIONDATA PD ON PMD.PRODUCTIONDATAID = PD.PRODUCTIONDATAID " +
|
|
|
+ "AND PD.MODELTYPE IN ( - 1, - 4, - 5 ) " +
|
|
|
+ "AND PD.VALUEFLAG = '1' " +
|
|
|
+ "AND PD.CHECKBATCHNO = 1 " +
|
|
|
+ "AND PD.ISREFIRE = '0' " +
|
|
|
+ "LEFT JOIN TP_MST_Defect mstd ON pmd.DefectID = mstd.DefectID " +
|
|
|
+ "LEFT JOIN TP_MST_DefectType dt ON mstd.DefectTypeID = dt.DefectTypeID " +
|
|
|
+ "LEFT JOIN TP_PM_GroutingDailyDetail gdd ON gdd.Groutingdailydetailid = pd.Groutingdailydetailid " +
|
|
|
+ "INNER JOIN tp_pm_productiondata hopd ON hopd.kilncarbatchno = pd.kilncarbatchno " +
|
|
|
+ "AND hopd.barcode = pd.barcode " +
|
|
|
+ "AND ( ( hopd.procedureid = 11 AND hopd.valueflag = '1' ) " +
|
|
|
+ "OR ( hopd.procedureid = 104 AND hopd.isrefire = '0' AND hopd.checkflag = '1' )) " +
|
|
|
+ "WHERE pmd.valueflag = '1' " +
|
|
|
+ "AND instr( pd.KilnCode, '3' ) > 0 " +
|
|
|
+ "AND dt.DefectTypeID IN(5) " +
|
|
|
+ "AND gdd.RECYCLINGFLAG = '0' " +
|
|
|
+ "AND pmd.CREATETIME >= CASE WHEN '"+type+"' = 'yyyymm' THEN TRUNC( ADD_MONTHS( SYSDATE, - 6 ), 'MM' ) " +
|
|
|
+ "ELSE TRUNC( SYSDATE - 6 ) END " +
|
|
|
+ "AND ( ( '"+repair+"' = 'true' AND pd.GOODSLEVELID = 16 ) " +
|
|
|
+ "OR ( '"+repair+"' <> 'true' AND pd.GOODSLEVELID IN ( 6, 7 ) AND pmd.DefectDeductionNum = 1" +
|
|
|
+ "AND pmd.DEFECTUSERCODE IN ( 'SSY001', 'SSY002', 'SSY004', 'SSY005' ) ) ) " +
|
|
|
+ "GROUP BY to_char( pmd.CREATETIME, '"+type+"' ) " +
|
|
|
+ "ORDER BY to_char( pmd.CREATETIME, '"+type+"' ) DESC";
|
|
|
+ //直接获取不分页数据
|
|
|
+ DataTable dt2 = conn.ExecuteDatatable(sqlStr2);
|
|
|
+ DataTable restultDay = new DataTable();
|
|
|
+ restultDay.Columns.Add("出窑数");
|
|
|
+ restultDay.Columns.Add("施釉合格率");
|
|
|
+ restultDay.Columns.Add("日期");
|
|
|
+ DateTime dateTime = DateTime.Now;
|
|
|
+ //创建施釉缺陷所需数据
|
|
|
+ for (int i = 6; i >= 0; i--)
|
|
|
+ {
|
|
|
+ string day=dateTime.AddDays(-i).ToString("yyyyMMdd");
|
|
|
+ string month = dateTime.AddMonths(-i).ToString("yyyyMM");
|
|
|
+
|
|
|
+ //出窑数
|
|
|
+ var kilnexits = dt1.AsEnumerable().
|
|
|
+ Where(ex => ex.Field<string>("CREATETIME") == (type == "yyyymmdd" ? day : month)).
|
|
|
+ Select(ex => ex.Field<decimal>("出窑数")).FirstOrDefault();
|
|
|
+ //成检不合格数
|
|
|
+ var unqualified = dt2.AsEnumerable().
|
|
|
+ Where(ex => ex.Field<string>("CREATETIME") == (type == "yyyymmdd" ? day : month)).
|
|
|
+ Select(ex => ex.Field<decimal>("成检不合格数")).FirstOrDefault();
|
|
|
+ DataRow dr = restultDay.NewRow();
|
|
|
+ dr["出窑数"] = kilnexits;
|
|
|
+ dr["施釉合格率"] = ((kilnexits - unqualified) / kilnexits).ToString("p2");
|
|
|
+ dr["日期"] = type == "yyyymmdd" ? dateTime.ToString("MM") + "." + dateTime.AddDays(-i).ToString("dd") :
|
|
|
+ dateTime.ToString("yy") + "." + dateTime.AddMonths(-i).ToString("MM");
|
|
|
+ restultDay.Rows.Add(dr);
|
|
|
+ }
|
|
|
+ string jsonStr = new JsonResult(restultDay).ToJson();
|
|
|
+ context.Response.Write(jsonStr);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ using (IDataAccess conn = DataAccess.Create())
|
|
|
+ {
|
|
|
+ /**摘取自zx方法**/
|
|
|
+ //施釉每日半成品损坯率
|
|
|
+ if (context.Request["m"].ToString() == "DailypassrateSemifinished")
|
|
|
+ {
|
|
|
+ //出窑数
|
|
|
+ string sqlStr1 = @" SELECT DISTINCT
|
|
|
+ CASE
|
|
|
+ WHEN
|
|
|
+ COUNT( TPPD.BARCODE ) IS NULL THEN
|
|
|
+ 0 ELSE COUNT( TPPD.BARCODE )
|
|
|
+ END 出窑数,
|
|
|
+ to_char( TPPD.CREATETIME, 'yyyymmdd' ) AS CREATETIME
|
|
|
+ FROM
|
|
|
+ TP_PM_PRODUCTIONDATA TPPD
|
|
|
+ LEFT JOIN TP_PM_GROUTINGDAILYDETAIL PGD ON PGD.BARCODE = TPPD.BARCODE
|
|
|
+ LEFT JOIN TP_PC_GROUTINGLINE TPGL ON TPGL.GROUTINGLINEID = PGD.GROUTINGLINEID
|
|
|
+ WHERE
|
|
|
+ TPPD.PROCEDUREID IN (98)
|
|
|
+ AND TPPD.CREATETIME >= trunc( SYSDATE - 6 )
|
|
|
+ AND TPPD.VALUEFLAG = 1
|
|
|
+ AND ( SUBSTR( TPGL.GROUTINGLINENAME, 1, 3 ) = 'C05' OR SUBSTR( TPGL.GROUTINGLINECODE, 1, 3 ) = 'C06' )
|
|
|
+ AND TPGL.TESTFLAG = 0
|
|
|
+ AND TPPD.ISREFIRE = 0
|
|
|
+ GROUP BY
|
|
|
+ to_char( TPPD.CREATETIME, 'yyyymmdd' )
|
|
|
+ ORDER BY
|
|
|
+ to_char( TPPD.CREATETIME, 'yyyymmdd' ) DESC ";
|
|
|
+
|
|
|
+ //直接获取不分页数据
|
|
|
+ DataTable dt1 = conn.ExecuteDatatable(sqlStr1);
|
|
|
+ //损坏数当日损毁且走过3#施釉并且损毁工序为30014,30020,30021(119, 115, 98)
|
|
|
+ string sqlStr2 = @"SELECT DISTINCT
|
|
|
+ COUNT(a.BARCODE)AS 损坯数 ,
|
|
|
+ a.CREATETIME
|
|
|
+ FROM
|
|
|
+ (
|
|
|
+ SELECT DISTINCT sp.BARCODE , to_char( sp.CREATETIME , 'yyyymmdd' ) AS CREATETIME
|
|
|
+ FROM
|
|
|
+ tp_pm_scrapproduct sp
|
|
|
+ LEFT JOIN TP_PM_ResponProcedure rp ON rp.scrapproductid = sp.scrapproductid
|
|
|
+ LEFT JOIN tp_pc_procedure p ON p.procedureid = sp.procedureid
|
|
|
+ WHERE
|
|
|
+ sp.valueflag = '1'
|
|
|
+ AND sp.AuditStatus = '1'
|
|
|
+ AND sp.accountid = 1
|
|
|
+ AND sp.GoodsLevelTypeID IN ( 8, 9 ) -- 8损坯、9干补
|
|
|
+ AND sp.CREATETIME>= trunc( SYSDATE - 6 )
|
|
|
+ AND sp.IsReFire <> '6'
|
|
|
+ AND sp.ScrapType = '0'
|
|
|
+ AND rp.ProcedureID IN ( 119, 115, 98 )
|
|
|
+ ) a
|
|
|
+ INNER JOIN TP_PM_PRODUCTIONDATA TPPD ON TPPD.BARCODE = a.BARCODE
|
|
|
+ WHERE TPPD.PROCEDUREID = 98
|
|
|
+ GROUP BY a.CREATETIME
|
|
|
+ ORDER BY a.CREATETIME DESC";
|
|
|
+ DataTable dt2 = conn.ExecuteDatatable(sqlStr2);
|
|
|
+ DataTable restultDay = new DataTable();
|
|
|
+ restultDay.Columns.Add("出窑数");
|
|
|
+ restultDay.Columns.Add("损坯率");
|
|
|
+ restultDay.Columns.Add("日期");
|
|
|
+ DateTime dateTime = DateTime.Now;
|
|
|
+ //创建施釉半成品损坯所需数据
|
|
|
+ for (int i = 6; i >= 0; i--)
|
|
|
+ {
|
|
|
+ string day = dateTime.AddDays(-i).ToString("yyyyMMdd");
|
|
|
+
|
|
|
+ //出窑数
|
|
|
+ var kilnexits = dt1.AsEnumerable().
|
|
|
+ Where(ex => ex.Field<string>("CREATETIME") == day).
|
|
|
+ Select(ex => ex.Field<decimal>("出窑数")).FirstOrDefault();
|
|
|
+ //损坯数
|
|
|
+ var unqualified = dt2.AsEnumerable().
|
|
|
+ Where(ex => ex.Field<string>("CREATETIME") == day).
|
|
|
+ Select(ex => ex.Field<decimal>("损坯数")).FirstOrDefault();
|
|
|
+ DataRow dr = restultDay.NewRow();
|
|
|
+ dr["出窑数"] = kilnexits;
|
|
|
+ dr["损坯率"] = ((kilnexits - unqualified) / kilnexits).ToString("p2");
|
|
|
+ dr["日期"] = dateTime.ToString("MM") + "." + dateTime.AddDays(-i).ToString("dd");
|
|
|
+
|
|
|
+ restultDay.Rows.Add(dr);
|
|
|
+ }
|
|
|
+ string jsonStr = new JsonResult(restultDay).ToJson();
|
|
|
+ context.Response.Write(jsonStr);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ using (IDataAccess conn = DataAccess.Create())
|
|
|
+ {
|
|
|
//产线信息
|
|
|
|
|
|
if (context.Request["m"].ToString() == "MonthTable")
|
|
|
@@ -772,8 +1110,10 @@ public class demo : IHttpHandler {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public bool IsReusable {
|
|
|
- get {
|
|
|
+ public bool IsReusable
|
|
|
+ {
|
|
|
+ get
|
|
|
+ {
|
|
|
return false;
|
|
|
}
|
|
|
}
|