| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 |
- <%@ WebHandler Language="C#" Class="export01" %>
- using System;
- using System.Web;
- using System.Data;
- using Curtain.DataAccess;
- using DK.XuWei.WebMes;
- using Newtonsoft.Json;
- using Newtonsoft.Json.Linq;
- public class export01 : IHttpHandler
- {
- public void ProcessRequest(HttpContext context)
- {
- context.Response.ContentType = "text/plain";
- using (IDataAccess conn = DataAccess.Create())
- {
- DataTable dtDevice = conn.ExecuteDatatable(@"
- SELECT
- 'GYZJ' || GROUTINGLINECODE AS deviceCode,
- '高压注浆设备' || GROUTINGLINECODE AS name
- FROM
- TP_PM_H_GROUTINGPARAS
- GROUP BY
- GROUTINGLINECODE
- ORDER BY
- GROUTINGLINECODE"
- );
- DataTable dtDeviceData = conn.ExecuteDatatable(@"
- SELECT
- t.deviceCode,
- t.name,
- t.LZTIME_低注时间,
- t.GZTIME_高注时间,
- t.PNTIME_排泥时间,
- t.GGTIME_巩固时间,
- t.PRESSURE_压力,
- t.TEMPERATURE_温度
- FROM
- (
- SELECT
- 'GYZJ' || GP.GROUTINGLINECODE AS deviceCode,
- '高压注浆设备' || GP.GROUTINGLINECODE AS name,
- GP.LZ_TIME AS LZTIME_低注时间,
- GP.GZ_TIME AS GZTIME_高注时间,
- GP.PN_TIME AS PNTIME_排泥时间,
- GP.GG_TIME AS GGTIME_巩固时间,
- GPT.G_PRESSURE AS PRESSURE_压力,
- GPT.G_TEMPERATURE AS TEMPERATURE_温度,
- rank ( ) over ( PARTITION BY GP.GROUTINGDAILYID ORDER BY GPT.HGPT_ID DESC ) AS rk
- FROM
- TP_PM_H_GROUTINGPARAS GP
- INNER JOIN ( SELECT MAX( GROUTINGDAILYID ) AS GROUTINGDAILYID FROM TP_PM_H_GROUTINGPARAS GROUP BY GROUTINGLINECODE, H_LINEINDEX ) T ON T.GROUTINGDAILYID = GP.GROUTINGDAILYID
- LEFT JOIN TP_PM_H_GROUTINGPARAS_PT GPT ON GPT.GROUTINGDAILYID = GP.GROUTINGDAILYID
- ) t
- WHERE
- t.rk <= 1
- ORDER BY
- t.name"
- );
- // 拼接主体
- JObject data = new JObject();
- data.Add(new JProperty("industryName", "广东区域"));
- data.Add(new JProperty("companyName", "佛山恒洁卫浴有限公司"));
- data.Add(new JProperty("productName", "高压注浆设备"));
- data.Add(new JProperty("productCode", "FSHJGYZJ"));
- 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());
- //data.Add("deviceData", JArray.Parse(JsonConvert.SerializeObject(dt)));
- }
- }
- public bool IsReusable
- {
- get
- {
- return false;
- }
- }
- }
|