| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- <%@ WebHandler Language="C#" Class="export05" %>
- using System;
- using System.Web;
- using System.Data;
- using Curtain.DataAccess;
- using DK.XuWei.WebMes;
- using Newtonsoft.Json;
- using Newtonsoft.Json.Linq;
- public class export05 : IHttpHandler
- {
- public void ProcessRequest(HttpContext context)
- {
- context.Response.ContentType = "text/plain";
- using (IDataAccess conn = DataAccess.Create())
- {
- DataTable dtDevice = conn.ExecuteDatatable(@"
- SELECT
- 'SYJG' || W.WORKSTATIONID AS deviceCode,
- '试用结果' || W.WORKSTATIONNAME AS name
- FROM
- TP_PM_GOODSLEAK L
- INNER JOIN TP_MST_WORKSTATION W ON W.WORKSTATIONID = L.WS_ID
- WHERE
- L.LEAKTYPE = 2
- AND L.CREATETIME >= to_date( to_char( SYSDATE, 'yyyy-mm-dd hh' ), 'yyyy-mm-dd hh:mi:ss' )
- AND L.CREATETIME < to_date( to_char( SYSDATE + 1 / 24, 'yyyy-mm-dd hh' ), 'yyyy-mm-dd hh:mi:ss' )
- GROUP BY
- W.WORKSTATIONID,
- W.WORKSTATIONNAME
- ORDER BY
- W.WORKSTATIONNAME"
- );
- DataTable dtDeviceData = conn.ExecuteDatatable(@"
- SELECT
- t.deviceCode,
- t.name,
- t.TESTRESULT_测试结果
- FROM
- (
- SELECT
- 'SYJG' || W.WORKSTATIONID AS deviceCode,
- '试用结果' || W.WORKSTATIONNAME AS name,
- DECODE( L.IS_GOOD, 0, '不合格', 1, '合格', '' ) AS TESTRESULT_测试结果,
- rank ( ) over ( PARTITION BY W.WORKSTATIONNAME ORDER BY L.CREATETIME DESC ) AS rk
- FROM
- TP_PM_GOODSLEAK L
- INNER JOIN TP_MST_WORKSTATION W ON W.WORKSTATIONID = L.WS_ID
- WHERE
- L.LEAKTYPE = 2
- AND L.CREATETIME >= to_date( to_char( SYSDATE, 'yyyy-mm-dd hh' ), 'yyyy-mm-dd hh:mi:ss' )
- AND L.CREATETIME < to_date( to_char( SYSDATE + 1 / 24, 'yyyy-mm-dd hh' ), 'yyyy-mm-dd hh:mi:ss' )
- ) t
- WHERE
- t.rk <= 1
- ORDER BY
- t.name"
- );
- if (dtDevice.Rows.Count == 0 || dtDeviceData.Rows.Count == 0)
- {
- context.Response.Write("当前时段无数据");
- return;
- }
- // 拼接主体
- JObject data = new JObject();
- data.Add(new JProperty("industryName", "广东区域"));
- data.Add(new JProperty("companyName", "佛山恒洁卫浴有限公司"));
- data.Add(new JProperty("productName", "试用结果"));
- data.Add(new JProperty("productCode", "FSHJCPCL"));
- data.Add(new JProperty("protocol", "HTTP"));
- data.Add(new JProperty("classfy", "陶瓷生产设备"));
- data.Add(new JProperty("lever", "低端"));
- data.Add(new JProperty("dimension", "工业品"));
- // 拼接device
- JArray arrDevice = new JArray();
- JObject device = null;
- foreach (DataRow row in dtDevice.Rows)
- {
- device = new JObject();
- device.Add(new JProperty("name", row["name"]));
- device.Add(new JProperty("deviceCode", "FSHJ" + row["deviceCode"]));
- device.Add(new JProperty("province", "广东省"));
- device.Add(new JProperty("city", "佛山市"));
- device.Add(new JProperty("address", "三水区乐平镇中油大道 3 号"));
- device.Add(new JProperty("worth", "0"));
- device.Add(new JProperty("latitude", "0"));
- device.Add(new JProperty("longitude", "0"));
- device.Add(new JProperty("manufacture", "2021-10-13"));
- arrDevice.Add(device);
- }
- data.Add("device", arrDevice);
- // 拼接deviceData
- JArray arrDeviceData = new JArray();
- JObject deviceData = null;
- string[] colNames;
- // 时间戳
- TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
- string timestamp = Convert.ToInt64(ts.TotalMilliseconds).ToString();
- foreach (DataRow row in dtDeviceData.Rows)
- {
- foreach (DataColumn col in dtDeviceData.Columns)
- {
- if (col.ColumnName.Equals("DEVICECODE") || col.ColumnName.Equals("NAME"))
- {
- continue;
- }
- colNames = col.ColumnName.Split('_');
- deviceData = new JObject();
- deviceData.Add(new JProperty("deviceCode", "FSHJ" + row["deviceCode"]));
- deviceData.Add(new JProperty("name", colNames[1]));
- deviceData.Add(new JProperty("mark", colNames[0]));
- deviceData.Add(new JProperty("value", row[col].ToString()));
- deviceData.Add(new JProperty("timestamp", timestamp));
- arrDeviceData.Add(deviceData);
- }
- }
- data.Add("deviceData", arrDeviceData);
- //上报数据
- //string url = "http://edge.cosmoplat.com:30152/company/device/access";// 测试
- //string url = "http://edge.cosmoplat.com:30032/company/device/access";// 生产
- //string message = JsonClient.Post(url, data.ToString());
- //context.Response.Write(message);
- context.Response.Write(data.ToString());
- }
- }
- public bool IsReusable
- {
- get
- {
- return false;
- }
- }
- }
|