|
|
@@ -0,0 +1,173 @@
|
|
|
+<%@ WebHandler Language="C#" Class="SmallKanban" %>
|
|
|
+
|
|
|
+using System;
|
|
|
+using System.Web;
|
|
|
+using System.Web.SessionState;
|
|
|
+using System.Configuration;
|
|
|
+using System.Data;
|
|
|
+using Curtain.DataAccess;
|
|
|
+using Curtain.Log;
|
|
|
+using DK.XuWei.WebMes;
|
|
|
+using Newtonsoft.Json.Linq;
|
|
|
+using System.Collections.Generic;
|
|
|
+
|
|
|
+public class SmallKanban : IHttpHandler {
|
|
|
+
|
|
|
+ public void ProcessRequest (HttpContext context) {
|
|
|
+ using (IDataAccess conn = DataAccess.Create())
|
|
|
+ {
|
|
|
+ string morningMintimes= DateTime.Now.ToString("yyyy-MM-dd")+" 07:30:00";
|
|
|
+ string morningMaxtimes= DateTime.Now.ToString("yyyy-MM-dd")+" 12:30:00";
|
|
|
+
|
|
|
+ string afterMintimes= DateTime.Now.ToString("yyyy-MM-dd")+" 13:30:00";
|
|
|
+ string afterMaxtimes= DateTime.Now.ToString("yyyy-MM-dd")+" 16:30:00";
|
|
|
+ //服务器时间
|
|
|
+ if (context.Request["m"].ToString() == "fwq")
|
|
|
+ {
|
|
|
+ string time = DateTime.Now.ToString("yyyy年MM月dd日 HH:mm ");
|
|
|
+ Dictionary<string, string> d = new Dictionary<string, string>();
|
|
|
+ JObject json = new JObject(
|
|
|
+ new JProperty("success", true),
|
|
|
+ new JProperty("sj", time)
|
|
|
+ );
|
|
|
+ context.Response.Write(json.ToString());
|
|
|
+ }
|
|
|
+ //总产量
|
|
|
+ if (context.Request["m"].ToString() == "Output"){
|
|
|
+ string sqlStr = @"SELECT COUNT(DISTINCT BARCODE ) AS 产量
|
|
|
+ FROM TP_PM_PRODUCTIONDATA WHERE PROCEDUREID=40 AND TRUNC(CREATETIME)=TRUNC(SYSDATE) AND VALUEFLAG=1 AND USERCODE='JS5'";
|
|
|
+ DataTable dt = conn.ExecuteDatatable(sqlStr);
|
|
|
+ context.Response.Write(new JsonResult(dt).ToJson());
|
|
|
+ }
|
|
|
+ //平均节拍
|
|
|
+ if (context.Request["m"].ToString() == "AvgBeat"){
|
|
|
+ string sqlStr = @"WITH time1 AS(
|
|
|
+ SELECT
|
|
|
+ *
|
|
|
+ FROM(
|
|
|
+ SELECT to_char(CREATETIME,'hh24')||':'||lpad(floor(to_char(CREATETIME,'mi')/5)*5,2,0) Times , COUNT(DISTINCT BARCODE ) AS 产量
|
|
|
+ FROM TP_PM_PRODUCTIONDATA WHERE PROCEDUREID=40 AND TRUNC(CREATETIME)=TRUNC(SYSDATE) AND VALUEFLAG=1
|
|
|
+ AND USERCODE='JS5'
|
|
|
+ group by to_char(CREATETIME,'hh24')||':'||lpad(floor(to_char(CREATETIME,'mi')/5)*5,2,0)
|
|
|
+ ORDER BY to_char(CREATETIME,'hh24')||':'||lpad(floor(to_char(CREATETIME,'mi')/5)*5,2,0) DESC
|
|
|
+ )
|
|
|
+ WHERE ROWNUM=1
|
|
|
+ ),
|
|
|
+ time2 AS(
|
|
|
+ SELECT
|
|
|
+ *
|
|
|
+ FROM(
|
|
|
+ SELECT to_char(CREATETIME,'hh24')||':'||lpad(floor(to_char(CREATETIME,'mi')/10)*10,2,0) Times , COUNT(DISTINCT BARCODE ) AS 产量
|
|
|
+ FROM TP_PM_PRODUCTIONDATA WHERE PROCEDUREID=40 AND TRUNC(CREATETIME)=TRUNC(SYSDATE) AND VALUEFLAG=1 AND USERCODE='JS5'
|
|
|
+ group by to_char(CREATETIME,'hh24')||':'||lpad(floor(to_char(CREATETIME,'mi')/10)*10,2,0)
|
|
|
+ ORDER BY to_char(CREATETIME,'hh24')||':'||lpad(floor(to_char(CREATETIME,'mi')/10)*10,2,0) DESC
|
|
|
+ )
|
|
|
+ WHERE ROWNUM=1
|
|
|
+ )
|
|
|
+ ,
|
|
|
+ time3 AS(
|
|
|
+ SELECT
|
|
|
+ *
|
|
|
+ FROM(
|
|
|
+ SELECT to_char(CREATETIME,'hh24')||':'||lpad(floor(to_char(CREATETIME,'mi')/30)*30,2,0) Times , COUNT(DISTINCT BARCODE ) AS 产量
|
|
|
+ FROM TP_PM_PRODUCTIONDATA WHERE PROCEDUREID=40 AND TRUNC(CREATETIME)=TRUNC(SYSDATE) AND VALUEFLAG=1 AND USERCODE='JS5'
|
|
|
+ group by to_char(CREATETIME,'hh24')||':'||lpad(floor(to_char(CREATETIME,'mi')/30)*30,2,0)
|
|
|
+ ORDER BY to_char(CREATETIME,'hh24')||':'||lpad(floor(to_char(CREATETIME,'mi')/30)*30,2,0) DESC
|
|
|
+ )
|
|
|
+ WHERE ROWNUM=1
|
|
|
+ ),
|
|
|
+ time4 AS(
|
|
|
+ SELECT
|
|
|
+ *
|
|
|
+ FROM(
|
|
|
+ SELECT to_char(CREATETIME,'hh24')||':'||lpad(floor(to_char(CREATETIME,'mi')/60)*60,2,0) Times , COUNT(DISTINCT BARCODE ) AS 产量
|
|
|
+ FROM TP_PM_PRODUCTIONDATA WHERE PROCEDUREID=40 AND TRUNC(CREATETIME)=TRUNC(SYSDATE) AND VALUEFLAG=1 AND USERCODE='JS5'
|
|
|
+ group by to_char(CREATETIME,'hh24')||':'||lpad(floor(to_char(CREATETIME,'mi')/60)*60,2,0)
|
|
|
+ ORDER BY to_char(CREATETIME,'hh24')||':'||lpad(floor(to_char(CREATETIME,'mi')/60)*60,2,0) DESC
|
|
|
+ )
|
|
|
+ WHERE ROWNUM=1
|
|
|
+ )
|
|
|
+ SELECT
|
|
|
+ DECODE( NVL( 300, 0 ), 0, 0, TO_CHAR( (300 / DECODE( NVL( time1.产量, 1 ), 0, 1, NVL( time1.产量, 1 ) ) ) , 'fm99990' ) ) one,
|
|
|
+ DECODE( NVL( 600, 0 ), 0, 0, TO_CHAR( ( 600 / DECODE( NVL( time2.产量, 1 ), 0, 1, NVL( time2.产量, 1 ) ) ) , 'fm99990' ) ) two,
|
|
|
+ DECODE( NVL( 1800, 0 ), 0, 0, TO_CHAR( ( 1800 / DECODE( NVL( time3.产量, 1 ), 0, 1, NVL( time3.产量, 1 ) ) ) , 'fm99990' ) ) three,
|
|
|
+ DECODE( NVL( 3600, 0 ), 0, 0, TO_CHAR( ( 3600 / DECODE( NVL( time4.产量, 1 ), 0, 1, NVL( time4.产量, 1 ) ) ) , 'fm99990' ) ) four
|
|
|
+ FROM time1
|
|
|
+ LEFT JOIN time2 ON 1=1
|
|
|
+ LEFT JOIN time3 ON 1=1
|
|
|
+ LEFT JOIN time4 ON 1=1 ";
|
|
|
+ DataTable dt = conn.ExecuteDatatable(sqlStr);
|
|
|
+ context.Response.Write(new JsonResult(dt).ToJson());
|
|
|
+ }
|
|
|
+ //上午节拍
|
|
|
+ if (context.Request["m"].ToString() == "morning"){
|
|
|
+ List<CDAParameter> sqlPara = new List<CDAParameter>();
|
|
|
+ sqlPara.Add(new CDAParameter("DATEBEGIN", morningMintimes, DataType.DateTime));
|
|
|
+ sqlPara.Add(new CDAParameter("DATEEND", morningMaxtimes, DataType.DateTime));
|
|
|
+ string sqlStr = @"WITH 总产量 AS(
|
|
|
+ SELECT COUNT(DISTINCT BARCODE ) AS 产量
|
|
|
+ FROM TP_PM_PRODUCTIONDATA WHERE PROCEDUREID=40 AND VALUEFLAG=1 AND USERCODE='JS5' AND CREATETIME>=@DATEBEGIN@ AND CREATETIME<=@DATEEND@
|
|
|
+ ),
|
|
|
+ 秒数 AS
|
|
|
+ (
|
|
|
+ SELECT
|
|
|
+ ceil((MAX(CREATETIME) - MIN(CREATETIME)) * 24 * 60 * 60) times
|
|
|
+ FROM TP_PM_PRODUCTIONDATA WHERE PROCEDUREID=40 AND VALUEFLAG=1 AND USERCODE='JS5' AND CREATETIME>=@DATEBEGIN@ AND CREATETIME<=@DATEEND@
|
|
|
+ )
|
|
|
+ SELECT
|
|
|
+ DECODE( NVL( 秒数.times, 0 ), 0, 0, TO_CHAR( (秒数.times / DECODE( NVL( 总产量.产量, 1 ), 0, 1, NVL( 总产量.产量, 1 ) ) ) , 'fm99990' ) ) one
|
|
|
+ FROM 总产量
|
|
|
+ LEFT JOIN 秒数 ON 1=1";
|
|
|
+ DataTable dt = conn.ExecuteDatatable(sqlStr,sqlPara.ToArray());
|
|
|
+ context.Response.Write(new JsonResult(dt).ToJson());
|
|
|
+ }
|
|
|
+
|
|
|
+ //下午节拍
|
|
|
+ if (context.Request["m"].ToString() == "after"){
|
|
|
+ List<CDAParameter> sqlPara = new List<CDAParameter>();
|
|
|
+ sqlPara.Add(new CDAParameter("DATEBEGIN", afterMintimes, DataType.DateTime));
|
|
|
+ sqlPara.Add(new CDAParameter("DATEEND", afterMaxtimes, DataType.DateTime));
|
|
|
+ string sqlStr = @"WITH 总产量 AS(
|
|
|
+ SELECT COUNT(DISTINCT BARCODE ) AS 产量
|
|
|
+ FROM TP_PM_PRODUCTIONDATA WHERE PROCEDUREID=40 AND VALUEFLAG=1 AND USERCODE='JS5' AND CREATETIME>=@DATEBEGIN@ AND CREATETIME<=@DATEEND@
|
|
|
+ ),
|
|
|
+ 秒数 AS
|
|
|
+ (
|
|
|
+ SELECT
|
|
|
+ ceil((MAX(CREATETIME) - MIN(CREATETIME)) * 24 * 60 * 60) times
|
|
|
+ FROM TP_PM_PRODUCTIONDATA WHERE PROCEDUREID=40 AND VALUEFLAG=1 AND USERCODE='JS5' AND CREATETIME>=@DATEBEGIN@ AND CREATETIME<=@DATEEND@
|
|
|
+ )
|
|
|
+ SELECT
|
|
|
+ DECODE( NVL( 秒数.times, 0 ), 0, 0, TO_CHAR( (秒数.times / DECODE( NVL( 总产量.产量, 1 ), 0, 1, NVL( 总产量.产量, 1 ) ) ) , 'fm99990' ) ) one
|
|
|
+ FROM 总产量
|
|
|
+ LEFT JOIN 秒数 ON 1=1";
|
|
|
+ DataTable dt = conn.ExecuteDatatable(sqlStr,sqlPara.ToArray());
|
|
|
+ context.Response.Write(new JsonResult(dt).ToJson());
|
|
|
+ }
|
|
|
+
|
|
|
+ //当天节拍
|
|
|
+ if (context.Request["m"].ToString() == "ALL"){
|
|
|
+ List<CDAParameter> sqlPara = new List<CDAParameter>();
|
|
|
+ sqlPara.Add(new CDAParameter("DATEBEGIN", morningMintimes, DataType.DateTime));
|
|
|
+ sqlPara.Add(new CDAParameter("DATEEND", afterMaxtimes, DataType.DateTime));
|
|
|
+ string sqlStr = @"SELECT
|
|
|
+ DECODE( NVL( 27000, 0 ), 0, 0, TO_CHAR( (27000 / DECODE( NVL( 产量, 1 ), 0, 1, NVL( 产量, 1 ) ) ) , 'fm99990' ) ) one
|
|
|
+ FROM (
|
|
|
+ SELECT COUNT(DISTINCT BARCODE ) AS 产量
|
|
|
+ FROM TP_PM_PRODUCTIONDATA WHERE PROCEDUREID=40 AND VALUEFLAG=1 AND USERCODE='JS5'
|
|
|
+ AND CREATETIME>=@DATEBEGIN@ AND CREATETIME<=@DATEEND@ )";
|
|
|
+ DataTable dt = conn.ExecuteDatatable(sqlStr,sqlPara.ToArray());
|
|
|
+ context.Response.Write(new JsonResult(dt).ToJson());
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public bool IsReusable {
|
|
|
+ get {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+}
|