using Newtonsoft.Json; using System; using System.Linq; using System.ServiceProcess; using System.Text; using HslCommunication.MQTT; using HslCommunication; using DataService; using System.Collections.Generic; using System.Runtime.Remoting.Channels; using HslCommunication.Profinet.Geniitek; using HslCommunication.Profinet.AllenBradley; using System.Security.Policy; using System.Text.RegularExpressions; using LitJson; using Newtonsoft.Json.Linq; using System.Xml.Linq; using System.Runtime.InteropServices; using HslCommunication.DTU; using System.Collections; using System.Data; namespace Security { partial class ServiceSecurity : ServiceBase { static log4net.ILog log; //static DataService.BLL.vis_fire_ip bll_ip=new DataService.BLL.vis_fire_ip(); static MqttClient mqtt_client; static DataService.BLL.device_info bll_info = new DataService.BLL.device_info(); static DataService.BLL.electricity_data bll = new DataService.BLL.electricity_data(); static DataService.BLL.pollution_discharge bll_pollution=new DataService.BLL.pollution_discharge(); static DataService.BLL.meteorological_station bll_meteorological=new DataService.BLL.meteorological_station(); public ServiceSecurity() { InitializeComponent(); } public void DebugOnStart(string[] args) { OnStart(args); } protected override void OnStart(string[] args) { // TODO: 在此处添加代码以启动服务。 log4net.Config.XmlConfigurator.Configure(); log = log4net.LogManager.GetLogger("loginfo"); log.Info("服务开始"); // 授权示例 调用一次即可 call only once if (!HslCommunication.Authorization.SetAuthorizationCode("4772a1a2-72cf-4fcb-9a8e-9cbdd5984253")) { return; } MqttConnectionOptions options = new MqttConnectionOptions() { IpAddress = "127.0.0.1", //IpAddress = "192.168.1.202", Port = 1883, ClientId = "Service-" + Guid.NewGuid().ToString("N"), }; options.Credentials = new MqttCredential("dev", "12345"); mqtt_client = new MqttClient(options); log.Info("开始"); // 接收到数据的时候进行触发 mqtt_client.OnMqttMessageReceived += Client_OnMqttMessageReceived; // 订阅服务器的主题,在连接成功后就去订阅 mqtt_client.OnClientConnected += m => { Console.WriteLine("连接成功"); //m.SubscribeMessage("/sys/iot/#"); m.SubscribeMessage("/ge/data/#"); }; mqtt_client.OnNetworkError += MqttClient_OnNetworkError; // 自己来控制异常及重连的操作 OperateResult result3 = mqtt_client.ConnectServer(); if (result3.IsSuccess) { log.Info("连接成功"); } { log.Info("连接失败"); } } private static void MqttClient_OnNetworkError(object sender, EventArgs e) { try { // 当网络异常的时候触发,可以在此处重连服务器 if (sender is MqttClient client) { // 开始重连服务器,直到连接成功为止 log.Info("网络异常,准备10秒后重新连接。"); while (true) { // 每隔10秒重连 System.Threading.Thread.Sleep(10_000); log.Info("准备重新连接服务器..."); // 重连之前需要判断是否关闭了Client,自己重写的异常需要自己手动处理 OperateResult connect = client.ConnectServer(); if (connect.IsSuccess) { // 连接成功后,可以在下方break之前进行订阅,或是数据初始化操作 log.Info("连接服务器成功!"); client.SubscribeMessage("data"); break; } log.Info("连接失败,准备10秒后重新连接。"); } } } catch (Exception ex) { log.Info("重连MQTT失败,失败原因:" + ex.Message); } } private static void MqttClient2_OnNetworkError(object sender, EventArgs e) { try { // 当网络异常的时候触发,可以在此处重连服务器 if (sender is MqttClient client) { // 开始重连服务器,直到连接成功为止 log.Info("网络异常,准备10秒后重新连接。"); while (true) { // 每隔10秒重连 System.Threading.Thread.Sleep(10_000); log.Info("准备重新连接服务器..."); // 重连之前需要判断是否关闭了Client,自己重写的异常需要自己手动处理 OperateResult connect = client.ConnectServer(); if (connect.IsSuccess) { // 连接成功后,可以在下方break之前进行订阅,或是数据初始化操作 log.Info("连接服务器成功!"); break; } log.Info("连接失败,准备10秒后重新连接。"); } } } catch (Exception ex) { log.Info("重连MQTT失败,失败原因:" + ex.Message); } } private static void Client_OnMqttMessageReceived(MqttClient client, string topic, byte[] payload) { log.Info("进入方法"); var count = 0; log.Info("count"+count++); var msg = Encoding.UTF8.GetString(payload); try { var date = DateTime.Now.ToString("yyyyMM"); var a = bll.IsExistsTable("changdao_zhanlanguang", "electricity_data_" + date); if (a == false) { bll.CreateTable(date); } //配电室低压 if (topic.Contains("/6afc0999-ac07-4f45-b0d3-d3763456edb4")) { log.Info("配电室低压msg" + msg); //配电室低压 var j = msg.Substring(1); var data = JsonConvert.DeserializeObject(j); log.Info("配电室低压:" + data); if (data.b != null) { foreach (var item in data.b.dvl) { var name = ""; char delimiter = '.'; // 分隔符 int lastDotIndex = item.da.LastIndexOf(delimiter); // 查找最后一个分隔符的位置 if (lastDotIndex != -1) // 如果找到分隔符 { name = item.da.Substring(lastDotIndex + 1); // 截取分隔符后面的子字符串 } var now = DateTime.Now.AddHours(-1).ToString("yyyy-MM-dd HH:00:00"); var ddate=Convert.ToDateTime(now); var dtime =DateTime.Now.AddMonths(-1).ToString("yyyyMM"); var sddate=Convert.ToDateTime(ddate.AddHours(-1)); var list = bll.GetModelListDate("", date).Where(x => x.EntireTime == ddate).ToList(); if (list.Count < 84) { var list1= list.Select(x => x.DeviceName).ToList(); var list2 = bll_info.GetModelLists(list1); var vlist = bll.GetModelListDate(" ", date); if (vlist.Count == 0) { vlist = bll.GetModelListDate("", dtime); } foreach (var aitem in list2) { var svlist = vlist.Where(x=>x.DeviceName==aitem.DeviceName).OrderByDescending(x=>x.EntireTime).FirstOrDefault(); var model = new DataService.Model.electricity_data(); model.ElectricityId = Guid.NewGuid().ToString("N"); model.DeviceName = aitem.DeviceName; model.EH = svlist.EH; model.P = svlist.P; model.Ia = svlist.Ia; model.Ib = svlist.Ib; model.Ic = svlist.Ic; model.Ua = svlist.Ua; model.Ub = svlist.Ub; model.Uc = svlist.Uc; model.Kvar = svlist.Kvar; model.CreateTime = DateTime.Now; model.EntireTime = Convert.ToDateTime(DateTime.Now.AddHours(-1).ToString("yyyy-MM-dd HH:00:00")); model.Reserve1= svlist.Reserve1; model.Reserve2= svlist.Reserve2; bll.AddDate(model, date); } } else { var edate = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:00:00")); var elist = bll.GetModelListDate("", date).Where(x => x.EntireTime == edate).ToList(); if (elist.Count == 0) { var model = new DataService.Model.electricity_data(); model.ElectricityId = Guid.NewGuid().ToString("N"); model.DeviceName = GetDeviceName1(Convert.ToInt32(name)); #region 数据添加 if (item.dl.ContainsKey("01040005")) { model.EH = item.dl["01040005"]; } if (item.dl.ContainsKey("01010001")) { model.Ua = item.dl["01010001"]; } if (item.dl.ContainsKey("01010002")) { model.Ub = item.dl["01010002"]; } if (item.dl.ContainsKey("01010003")) { model.Uc = item.dl["01010003"]; } if (item.dl.ContainsKey("01020001")) { model.Ia = item.dl["01020001"]; } if (item.dl.ContainsKey("01020002")) { model.Ib = item.dl["01020001"]; } if (item.dl.ContainsKey("01020003")) { model.Ic = item.dl["01020003"]; } if (item.dl.ContainsKey("01030004")) { model.P = item.dl["01030004"]; } if (item.dl.ContainsKey("01030012")) { model.Kvar = item.dl["01030012"]; } #endregion model.CreateTime = DateTime.Now; model.EntireTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:00:00")); model.Reserve1 = "配电室低压"; model.Reserve2 = GetDeviceName4(Convert.ToInt32(name)); bll.AddDate(model, date); } else { var clist = bll.GetModelListDate("", date).Where(x => x.DeviceName == name && x.EntireTime == Convert.ToDateTime(edate)).ToList(); if (clist.Count == 0) { var model = new DataService.Model.electricity_data(); model.ElectricityId = Guid.NewGuid().ToString("N"); model.DeviceName = GetDeviceName1(Convert.ToInt32(name)); #region 数据添加 if (item.dl.ContainsKey("01040005")) { model.EH = item.dl["01040005"]; } if (item.dl.ContainsKey("01010001")) { model.Ua = item.dl["01010001"]; } if (item.dl.ContainsKey("01010002")) { model.Ub = item.dl["01010002"]; } if (item.dl.ContainsKey("01010003")) { model.Uc = item.dl["01010003"]; } if (item.dl.ContainsKey("01020001")) { model.Ia = item.dl["01020001"]; } if (item.dl.ContainsKey("01020002")) { model.Ib = item.dl["01020001"]; } if (item.dl.ContainsKey("01020003")) { model.Ic = item.dl["01020003"]; } if (item.dl.ContainsKey("01030004")) { model.P = item.dl["01030004"]; } if (item.dl.ContainsKey("01030012")) { model.Kvar = item.dl["01030012"]; } #endregion model.CreateTime = DateTime.Now; model.EntireTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:00:00")); model.Reserve1 = "配电室低压"; model.Reserve2 = GetDeviceName4(Convert.ToInt32(name)); bll.AddDate(model, date); } } } } } } //配电室高压 if (topic.Contains("/9b841d78-68ca-45e5-ba5a-35dc43560c39")) { log.Info("配电室高压msg" + msg); //配电室高压 var j = msg.Substring(1); var data = JsonConvert.DeserializeObject(j); log.Info("配电室高压:" + data); if (data.b != null) { foreach (var item in data.b.dvl) { var name = ""; char delimiter = '.'; // 分隔符 int lastDotIndex = item.da.LastIndexOf(delimiter); // 查找最后一个分隔符的位置 if (lastDotIndex != -1) // 如果找到分隔符 { name = item.da.Substring(lastDotIndex + 1); // 截取分隔符后面的子字符串 } var now = DateTime.Now.AddHours(-1).ToString("yyyy-MM-dd HH:00:00"); var ddate = Convert.ToDateTime(now); var list = bll.GetModelListDate("", date).Where(x => x.EntireTime == ddate).ToList(); if (list.Count < 84) { var list1 = list.Select(x => x.DeviceName).ToList(); var list2 = bll_info.GetModelLists(list1); var vlist = bll.GetModelListDate(" ", date); foreach (var aitem in list2) { var svlist = vlist.FirstOrDefault(x => x.DeviceName == aitem.DeviceName); var model = new DataService.Model.electricity_data(); model.ElectricityId = Guid.NewGuid().ToString("N"); model.DeviceName = aitem.DeviceName; model.EH = svlist.EH; model.P = svlist.P; model.Ia = svlist.Ia; model.Ib = svlist.Ib; model.Ic = svlist.Ic; model.Ua = svlist.Ua; model.Ub = svlist.Ub; model.Uc = svlist.Uc; model.Kvar = svlist.Kvar; model.CreateTime = DateTime.Now; model.EntireTime = Convert.ToDateTime(DateTime.Now.AddHours(-1).ToString("yyyy-MM-dd HH:00:00")); model.Reserve1 = svlist.Reserve1; model.Reserve2 = svlist.Reserve2; bll.AddDate(model, date); } } else { var edate = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:00:00")); var elist = bll.GetModelListDate("", date).Where(x => x.EntireTime == edate).ToList(); if (elist.Count == 0) { var model = new DataService.Model.electricity_data(); model.ElectricityId = Guid.NewGuid().ToString("N"); model.DeviceName = GetDeviceName2(Convert.ToInt32(name)); #region 数据添加 if (item.dl.ContainsKey("01040005")) { model.EH = item.dl["01040005"]; } if (item.dl.ContainsKey("01010001")) { model.Ua = item.dl["01010001"]; } if (item.dl.ContainsKey("01010002")) { model.Ub = item.dl["01010002"]; } if (item.dl.ContainsKey("01010003")) { model.Uc = item.dl["01010003"]; } if (item.dl.ContainsKey("01020001")) { model.Ia = item.dl["01020001"]; } if (item.dl.ContainsKey("01020002")) { model.Ib = item.dl["01020001"]; } if (item.dl.ContainsKey("01020003")) { model.Ic = item.dl["01020003"]; } if (item.dl.ContainsKey("01030004")) { model.P = item.dl["01030004"]; } if (item.dl.ContainsKey("01030012")) { model.Kvar = item.dl["01030012"]; } #endregion model.CreateTime = DateTime.Now; model.EntireTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:00:00")); model.Reserve1 = "配电室高压"; model.Reserve2 = GetDeviceName4(Convert.ToInt32(name)); bll.AddDate(model, date); } else { var clist = bll.GetModelListDate("", date).Where(x => x.DeviceName == name && x.EntireTime == Convert.ToDateTime(edate)).ToList(); if (clist.Count == 0) { var model = new DataService.Model.electricity_data(); model.ElectricityId = Guid.NewGuid().ToString("N"); model.DeviceName = GetDeviceName2(Convert.ToInt32(name)); #region 数据添加 if (item.dl.ContainsKey("01040005")) { model.EH = item.dl["01040005"]; } if (item.dl.ContainsKey("01010001")) { model.Ua = item.dl["01010001"]; } if (item.dl.ContainsKey("01010002")) { model.Ub = item.dl["01010002"]; } if (item.dl.ContainsKey("01010003")) { model.Uc = item.dl["01010003"]; } if (item.dl.ContainsKey("01020001")) { model.Ia = item.dl["01020001"]; } if (item.dl.ContainsKey("01020002")) { model.Ib = item.dl["01020001"]; } if (item.dl.ContainsKey("01020003")) { model.Ic = item.dl["01020003"]; } if (item.dl.ContainsKey("01030004")) { model.P = item.dl["01030004"]; } if (item.dl.ContainsKey("01030012")) { model.Kvar = item.dl["01030012"]; } #endregion model.CreateTime = DateTime.Now; model.EntireTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:00:00")); model.Reserve1 = "配电室高压"; model.Reserve2 = GetDeviceName4(Convert.ToInt32(name)); bll.AddDate(model, date); } } } } } } //电能-室外箱变 if (topic.Contains("/bbb05637-34f2-4c1d-864e-6bbfca39d38b")) { log.Info("电能-室外箱变msg" + msg); //电能-室外箱变 var j = msg.Substring(1); var data = JsonConvert.DeserializeObject(j); log.Info("电能-室外箱变:" + data); if (data.b != null) { foreach (var item in data.b.dvl) { var name = ""; char delimiter = '.'; // 分隔符 int lastDotIndex = item.da.LastIndexOf(delimiter); // 查找最后一个分隔符的位置 if (lastDotIndex != -1) // 如果找到分隔符 { name = item.da.Substring(lastDotIndex + 1); // 截取分隔符后面的子字符串 } var now = DateTime.Now.AddHours(-1).ToString("yyyy-MM-dd HH:00:00"); var ddate = Convert.ToDateTime(now); var list = bll.GetModelListDate("", date).Where(x => x.EntireTime == ddate).ToList(); if (list.Count < 84) { var list1 = list.Select(x => x.DeviceName).ToList(); var list2 = bll_info.GetModelLists(list1); var vlist = bll.GetModelListDate(" ", date); foreach (var aitem in list2) { var svlist = vlist.FirstOrDefault(x => x.DeviceName == aitem.DeviceName); var model = new DataService.Model.electricity_data(); model.ElectricityId = Guid.NewGuid().ToString("N"); model.DeviceName = aitem.DeviceName; model.EH = svlist.EH; model.P = svlist.P; model.Ia = svlist.Ia; model.Ib = svlist.Ib; model.Ic = svlist.Ic; model.Ua = svlist.Ua; model.Ub = svlist.Ub; model.Uc = svlist.Uc; model.Kvar = svlist.Kvar; model.CreateTime = DateTime.Now; model.EntireTime = Convert.ToDateTime(DateTime.Now.AddHours(-1).ToString("yyyy-MM-dd HH:00:00")); model.Reserve1 = svlist.Reserve1; model.Reserve2 = svlist.Reserve2; bll.AddDate(model, date); } } else { var edate = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:00:00")); var elist = bll.GetModelListDate("", date).Where(x => x.EntireTime == edate).ToList(); if (elist.Count == 0) { var model = new DataService.Model.electricity_data(); model.ElectricityId = Guid.NewGuid().ToString("N"); model.DeviceName = GetDeviceName3(Convert.ToInt32(name)); #region 数据添加 if (item.dl.ContainsKey("01040005")) { model.EH = item.dl["01040005"]; } if (item.dl.ContainsKey("01010001")) { model.Ua = item.dl["01010001"]; } if (item.dl.ContainsKey("01010002")) { model.Ub = item.dl["01010002"]; } if (item.dl.ContainsKey("01010003")) { model.Uc = item.dl["01010003"]; } if (item.dl.ContainsKey("01020001")) { model.Ia = item.dl["01020001"]; } if (item.dl.ContainsKey("01020002")) { model.Ib = item.dl["01020001"]; } if (item.dl.ContainsKey("01020003")) { model.Ic = item.dl["01020003"]; } if (item.dl.ContainsKey("01030004")) { model.P = item.dl["01030004"]; } if (item.dl.ContainsKey("01030012")) { model.Kvar = item.dl["01030012"]; } #endregion model.CreateTime = DateTime.Now; model.EntireTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:00:00")); model.Reserve1 = "电能-室外箱变"; model.Reserve2 = GetDeviceName4(Convert.ToInt32(name)); bll.AddDate(model, date); } else { var clist = bll.GetModelListDate("", date).Where(x => x.DeviceName == name && x.EntireTime == Convert.ToDateTime(edate)).ToList(); if (clist.Count == 0) { var model = new DataService.Model.electricity_data(); model.ElectricityId = Guid.NewGuid().ToString("N"); model.DeviceName = GetDeviceName3(Convert.ToInt32(name)); #region 数据添加 if (item.dl.ContainsKey("01040005")) { model.EH = item.dl["01040005"]; } if (item.dl.ContainsKey("01010001")) { model.Ua = item.dl["01010001"]; } if (item.dl.ContainsKey("01010002")) { model.Ub = item.dl["01010002"]; } if (item.dl.ContainsKey("01010003")) { model.Uc = item.dl["01010003"]; } if (item.dl.ContainsKey("01020001")) { model.Ia = item.dl["01020001"]; } if (item.dl.ContainsKey("01020002")) { model.Ib = item.dl["01020001"]; } if (item.dl.ContainsKey("01020003")) { model.Ic = item.dl["01020003"]; } if (item.dl.ContainsKey("01030004")) { model.P = item.dl["01030004"]; } if (item.dl.ContainsKey("01030012")) { model.Kvar = item.dl["01030012"]; } #endregion model.CreateTime = DateTime.Now; model.EntireTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:00:00")); model.Reserve1 = "电能-室外箱变"; model.Reserve2 = GetDeviceName4(Convert.ToInt32(name)); bll.AddDate(model, date); } } } } } } //排污1 if (topic.Contains("/4d9fab63-eecd-4c33-86f1-79abb16ae62a")) { log.Info("排污1msg" + msg); //排污1 var j = msg.Substring(1); var data = JsonConvert.DeserializeObject(j); var list = bll_pollution.GetModelList(""); log.Info("排污1:" + data); if (data.b != null) { foreach (var item in data.b.dvl) { var name = ""; char delimiter = '.'; // 分隔符 int lastDotIndex = item.da.LastIndexOf(delimiter); // 查找最后一个分隔符的位置 if (lastDotIndex != -1) // 如果找到分隔符 { name = item.da.Substring(lastDotIndex + 1); // 截取分隔符后面的子字符串 } var time =Convert.ToDateTime( DateTime.Now.ToString("yyyy-MM-dd HH:00:00")); var alist=list.Where(x=>x.EntireTime== time&&x.Reserve1==name).ToList(); if (alist.Count == 0) { if (name == "460") { #region GP01#水泵 var model1 = new DataService.Model.pollution_discharge(); model1.PollutionDischargeId = Guid.NewGuid().ToString("N"); model1.PollutionDischargeName = "GP01-1#水泵"; if (item.dl.ContainsKey("1DI1")) { model1.PollutionDischargeState = Convert.ToInt32(item.dl["1DI1"]); } if (item.dl.ContainsKey("1DI2")) { model1.PollutionDischargeAlarm = Convert.ToInt32(item.dl["1DI2"]); } model1.CreateTime = DateTime.Now; model1.EntireTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:00:00")); model1.Reserve1 = "460"; bll_pollution.Add(model1); var model2 = new DataService.Model.pollution_discharge(); model2.PollutionDischargeId = Guid.NewGuid().ToString("N"); model2.PollutionDischargeName = "GP01-2#水泵"; if (item.dl.ContainsKey("1DI3")) { model2.PollutionDischargeState = Convert.ToInt32(item.dl["1DI3"]); } if (item.dl.ContainsKey("1DI4")) { model2.PollutionDischargeAlarm = Convert.ToInt32(item.dl["1DI4"]); } model2.CreateTime = DateTime.Now; model2.EntireTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:00:00")); model2.Reserve1 = "460"; bll_pollution.Add(model2); #endregion #region GP02#水泵 var model3 = new DataService.Model.pollution_discharge(); model3.PollutionDischargeId = Guid.NewGuid().ToString("N"); model3.PollutionDischargeName = "GP02-1#水泵"; if (item.dl.ContainsKey("1DI5")) { model3.PollutionDischargeState = Convert.ToInt32(item.dl["1DI5"]); } if (item.dl.ContainsKey("1DI6")) { model3.PollutionDischargeAlarm = Convert.ToInt32(item.dl["1DI6"]); } model3.CreateTime = DateTime.Now; model3.EntireTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:00:00")); model3.Reserve1 = "460"; bll_pollution.Add(model3); var model4 = new DataService.Model.pollution_discharge(); model4.PollutionDischargeId = Guid.NewGuid().ToString("N"); model4.PollutionDischargeName = "GP02-2#水泵"; if (item.dl.ContainsKey("1DI7")) { model4.PollutionDischargeState = Convert.ToInt32(item.dl["1DI7"]); } if (item.dl.ContainsKey("1DI8")) { model4.PollutionDischargeAlarm = Convert.ToInt32(item.dl["1DI8"]); } model4.CreateTime = DateTime.Now; model4.EntireTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:00:00")); model4.Reserve1 = "460"; bll_pollution.Add(model4); #endregion #region GP03#水泵 var model5 = new DataService.Model.pollution_discharge(); model5.PollutionDischargeId = Guid.NewGuid().ToString("N"); model5.PollutionDischargeName = "GP03-1#水泵"; if (item.dl.ContainsKey("1DI9")) { model5.PollutionDischargeState = Convert.ToInt32(item.dl["1DI1"]); } if (item.dl.ContainsKey("1DI10")) { model5.PollutionDischargeAlarm = Convert.ToInt32(item.dl["1DI2"]); } model5.CreateTime = DateTime.Now; model5.EntireTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:00:00")); model5.Reserve1 = "460"; bll_pollution.Add(model5); var model6 = new DataService.Model.pollution_discharge(); model6.PollutionDischargeId = Guid.NewGuid().ToString("N"); model6.PollutionDischargeName = "GP03-2#水泵"; if (item.dl.ContainsKey("1DI11")) { model6.PollutionDischargeState = Convert.ToInt32(item.dl["1DI12"]); } if (item.dl.ContainsKey("1DI12")) { model6.PollutionDischargeAlarm = Convert.ToInt32(item.dl["1DI13"]); } model6.CreateTime = DateTime.Now; model6.EntireTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:00:00")); model6.Reserve1 = "460"; bll_pollution.Add(model6); #endregion #region GP04#水泵 var model7 = new DataService.Model.pollution_discharge(); model7.PollutionDischargeId = Guid.NewGuid().ToString("N"); model7.PollutionDischargeName = "GP04-1#水泵"; if (item.dl.ContainsKey("1DI13")) { model7.PollutionDischargeState = Convert.ToInt32(item.dl["1DI13"]); } if (item.dl.ContainsKey("1DI14")) { model7.PollutionDischargeAlarm = Convert.ToInt32(item.dl["1DI14"]); } model7.CreateTime = DateTime.Now; model7.EntireTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:00:00")); model7.Reserve1 = "460"; bll_pollution.Add(model7); var model8 = new DataService.Model.pollution_discharge(); model8.PollutionDischargeId = Guid.NewGuid().ToString("N"); model8.PollutionDischargeName = "GP04-2#水泵"; if (item.dl.ContainsKey("1DI15")) { model8.PollutionDischargeState = Convert.ToInt32(item.dl["1DI16"]); } if (item.dl.ContainsKey("1DI16")) { model8.PollutionDischargeAlarm = Convert.ToInt32(item.dl["1DI17"]); } model8.CreateTime = DateTime.Now; model8.EntireTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:00:00")); model8.Reserve1 = "460"; bll_pollution.Add(model8); #endregion #region GP05#水泵 var model9 = new DataService.Model.pollution_discharge(); model9.PollutionDischargeId = Guid.NewGuid().ToString("N"); model9.PollutionDischargeName = "GP05-1#水泵"; if (item.dl.ContainsKey("1DI17")) { model9.PollutionDischargeState = Convert.ToInt32(item.dl["1DI517"]); } if (item.dl.ContainsKey("1DI18")) { model9.PollutionDischargeAlarm = Convert.ToInt32(item.dl["1DI18"]); } model9.CreateTime = DateTime.Now; model9.EntireTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:00:00")); model9.Reserve1 = "460"; bll_pollution.Add(model9); var model10 = new DataService.Model.pollution_discharge(); model10.PollutionDischargeId = Guid.NewGuid().ToString("N"); model10.PollutionDischargeName = "GP05-2#水泵"; if (item.dl.ContainsKey("1DI19")) { model10.PollutionDischargeState = Convert.ToInt32(item.dl["1DI19"]); } if (item.dl.ContainsKey("1DI20")) { model10.PollutionDischargeAlarm = Convert.ToInt32(item.dl["1DI20"]); } model10.CreateTime = DateTime.Now; model10.EntireTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:00:00")); model10.Reserve1 = "460"; bll_pollution.Add(model10); #endregion #region GP06#水泵 var model11 = new DataService.Model.pollution_discharge(); model11.PollutionDischargeId = Guid.NewGuid().ToString("N"); model11.PollutionDischargeName = "GP06-1#水泵"; if (item.dl.ContainsKey("1DI21")) { model11.PollutionDischargeState = Convert.ToInt32(item.dl["1DI21"]); } if (item.dl.ContainsKey("1DI22")) { model11.PollutionDischargeAlarm = Convert.ToInt32(item.dl["1DI22"]); } model11.CreateTime = DateTime.Now; model11.EntireTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:00:00")); model11.Reserve1 = "460"; bll_pollution.Add(model11); var model12 = new DataService.Model.pollution_discharge(); model12.PollutionDischargeId = Guid.NewGuid().ToString("N"); model12.PollutionDischargeName = "GP06-2#水泵"; if (item.dl.ContainsKey("1DI23")) { model12.PollutionDischargeState = Convert.ToInt32(item.dl["1DI23"]); } if (item.dl.ContainsKey("1DI24")) { model12.PollutionDischargeAlarm = Convert.ToInt32(item.dl["1DI24"]); } model12.CreateTime = DateTime.Now; model12.EntireTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:00:00")); model12.Reserve1 = "460"; bll_pollution.Add(model12); #endregion #region GP07#水泵 var model13 = new DataService.Model.pollution_discharge(); model13.PollutionDischargeId = Guid.NewGuid().ToString("N"); model13.PollutionDischargeName = "GP07-1#水泵"; if (item.dl.ContainsKey("1DI25")) { model3.PollutionDischargeState = Convert.ToInt32(item.dl["1DI25"]); } if (item.dl.ContainsKey("1DI26")) { model3.PollutionDischargeAlarm = Convert.ToInt32(item.dl["1DI26"]); } model13.CreateTime = DateTime.Now; model13.EntireTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:00:00")); model13.Reserve1 = "460"; bll_pollution.Add(model13); var model14 = new DataService.Model.pollution_discharge(); model14.PollutionDischargeId = Guid.NewGuid().ToString("N"); model14.PollutionDischargeName = "GP07-2#水泵"; if (item.dl.ContainsKey("1DI27")) { model14.PollutionDischargeState = Convert.ToInt32(item.dl["1DI127"]); } if (item.dl.ContainsKey("1DI28")) { model14.PollutionDischargeAlarm = Convert.ToInt32(item.dl["1DI128"]); } model14.CreateTime = DateTime.Now; model14.EntireTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:00:00")); model14.Reserve1 = "460"; bll_pollution.Add(model14); #endregion } } } } } //排污2 if (topic.Contains("/f059bade-5b95-4831-9431-9600cf8bd4f7")) { log.Info("排污2msg" + msg); //排污1 var j = msg.Substring(1); var data = JsonConvert.DeserializeObject(j); var list = bll_pollution.GetModelList(""); log.Info("排污2:" + data); if (data.b != null) { foreach (var item in data.b.dvl) { var name = ""; char delimiter = '.'; // 分隔符 int lastDotIndex = item.da.LastIndexOf(delimiter); // 查找最后一个分隔符的位置 if (lastDotIndex != -1) // 如果找到分隔符 { name = item.da.Substring(lastDotIndex + 1); // 截取分隔符后面的子字符串 } var time = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:00:00")); var alist = list.Where(x => x.EntireTime == time && x.Reserve1 == name).ToList(); if (alist.Count == 0) { if (name == "465") { #region GP08#水泵 var model1 = new DataService.Model.pollution_discharge(); model1.PollutionDischargeId = Guid.NewGuid().ToString("N"); model1.PollutionDischargeName = "GP08-1#水泵"; if (item.dl.ContainsKey("1DI1")) { model1.PollutionDischargeState = Convert.ToInt32(item.dl["1DI1"]); } if (item.dl.ContainsKey("1DI2")) { model1.PollutionDischargeAlarm = Convert.ToInt32(item.dl["1DI2"]); } model1.CreateTime = DateTime.Now; model1.EntireTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:00:00")); model1.Reserve1 = "465"; bll_pollution.Add(model1); var model2 = new DataService.Model.pollution_discharge(); model2.PollutionDischargeId = Guid.NewGuid().ToString("N"); model2.PollutionDischargeName = "GP08-2#水泵"; if (item.dl.ContainsKey("1DI3")) { model2.PollutionDischargeState = Convert.ToInt32(item.dl["1DI3"]); } if (item.dl.ContainsKey("1DI4")) { model2.PollutionDischargeAlarm = Convert.ToInt32(item.dl["1DI4"]); } model2.CreateTime = DateTime.Now; model2.EntireTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:00:00")); model2.Reserve1 = "465"; bll_pollution.Add(model2); #endregion #region GP09#水泵 var model3 = new DataService.Model.pollution_discharge(); model3.PollutionDischargeId = Guid.NewGuid().ToString("N"); model3.PollutionDischargeName = "GP09-1#水泵"; if (item.dl.ContainsKey("1DI5")) { model3.PollutionDischargeState = Convert.ToInt32(item.dl["1DI5"]); } if (item.dl.ContainsKey("1DI6")) { model3.PollutionDischargeAlarm = Convert.ToInt32(item.dl["1DI6"]); } model3.CreateTime = DateTime.Now; model3.EntireTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:00:00")); model3.Reserve1 = "465"; bll_pollution.Add(model3); var model4 = new DataService.Model.pollution_discharge(); model4.PollutionDischargeId = Guid.NewGuid().ToString("N"); model4.PollutionDischargeName = "GP09-2#水泵"; if (item.dl.ContainsKey("1DI7")) { model4.PollutionDischargeState = Convert.ToInt32(item.dl["1DI7"]); } if (item.dl.ContainsKey("1DI8")) { model4.PollutionDischargeAlarm = Convert.ToInt32(item.dl["1DI8"]); } model4.CreateTime = DateTime.Now; model4.EntireTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:00:00")); model4.Reserve1 = "465"; bll_pollution.Add(model4); #endregion #region GP10#水泵 var model5 = new DataService.Model.pollution_discharge(); model5.PollutionDischargeId = Guid.NewGuid().ToString("N"); model5.PollutionDischargeName = "GP10-1#水泵"; if (item.dl.ContainsKey("1DI9")) { model5.PollutionDischargeState = Convert.ToInt32(item.dl["1DI1"]); } if (item.dl.ContainsKey("1DI10")) { model5.PollutionDischargeAlarm = Convert.ToInt32(item.dl["1DI2"]); } model5.CreateTime = DateTime.Now; model5.EntireTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:00:00")); model5.Reserve1 = "465"; bll_pollution.Add(model5); var model6 = new DataService.Model.pollution_discharge(); model6.PollutionDischargeId = Guid.NewGuid().ToString("N"); model6.PollutionDischargeName = "GP10-2#水泵"; if (item.dl.ContainsKey("1DI11")) { model6.PollutionDischargeState = Convert.ToInt32(item.dl["1DI12"]); } if (item.dl.ContainsKey("1DI12")) { model6.PollutionDischargeAlarm = Convert.ToInt32(item.dl["1DI13"]); } model6.CreateTime = DateTime.Now; model6.EntireTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:00:00")); model6.Reserve1 = "465"; bll_pollution.Add(model6); #endregion #region GP11#水泵 var model7 = new DataService.Model.pollution_discharge(); model7.PollutionDischargeId = Guid.NewGuid().ToString("N"); model7.PollutionDischargeName = "GP11-1#水泵"; if (item.dl.ContainsKey("1DI13")) { model7.PollutionDischargeState = Convert.ToInt32(item.dl["1DI13"]); } if (item.dl.ContainsKey("1DI14")) { model7.PollutionDischargeAlarm = Convert.ToInt32(item.dl["1DI14"]); } model7.CreateTime = DateTime.Now; model7.EntireTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:00:00")); model7.Reserve1 = "465"; bll_pollution.Add(model7); var model8 = new DataService.Model.pollution_discharge(); model8.PollutionDischargeId = Guid.NewGuid().ToString("N"); model8.PollutionDischargeName = "GP12-2#水泵"; if (item.dl.ContainsKey("1DI15")) { model8.PollutionDischargeState = Convert.ToInt32(item.dl["1DI16"]); } if (item.dl.ContainsKey("1DI16")) { model8.PollutionDischargeAlarm = Convert.ToInt32(item.dl["1DI17"]); } model8.CreateTime = DateTime.Now; model8.EntireTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:00:00")); model8.Reserve1 = "465"; bll_pollution.Add(model8); #endregion #region GP12#水泵 var model9 = new DataService.Model.pollution_discharge(); model9.PollutionDischargeId = Guid.NewGuid().ToString("N"); model9.PollutionDischargeName = "GP12-1#水泵"; if (item.dl.ContainsKey("1DI17")) { model9.PollutionDischargeState = Convert.ToInt32(item.dl["1DI517"]); } if (item.dl.ContainsKey("1DI18")) { model9.PollutionDischargeAlarm = Convert.ToInt32(item.dl["1DI18"]); } model9.CreateTime = DateTime.Now; model9.EntireTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:00:00")); model9.Reserve1 = "465"; bll_pollution.Add(model9); var model10 = new DataService.Model.pollution_discharge(); model10.PollutionDischargeId = Guid.NewGuid().ToString("N"); model10.PollutionDischargeName = "GP12-2#水泵"; if (item.dl.ContainsKey("1DI19")) { model10.PollutionDischargeState = Convert.ToInt32(item.dl["1DI19"]); } if (item.dl.ContainsKey("1DI20")) { model10.PollutionDischargeAlarm = Convert.ToInt32(item.dl["1DI20"]); } model10.CreateTime = DateTime.Now; model10.EntireTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:00:00")); model10.Reserve1 = "465"; bll_pollution.Add(model10); #endregion #region GP13#水泵 var model11 = new DataService.Model.pollution_discharge(); model11.PollutionDischargeId = Guid.NewGuid().ToString("N"); model11.PollutionDischargeName = "GP13-1#水泵"; if (item.dl.ContainsKey("1DI21")) { model11.PollutionDischargeState = Convert.ToInt32(item.dl["1DI21"]); } if (item.dl.ContainsKey("1DI22")) { model11.PollutionDischargeAlarm = Convert.ToInt32(item.dl["1DI22"]); } model11.CreateTime = DateTime.Now; model11.EntireTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:00:00")); model11.Reserve1 = "465"; bll_pollution.Add(model11); var model12 = new DataService.Model.pollution_discharge(); model12.PollutionDischargeId = Guid.NewGuid().ToString("N"); model12.PollutionDischargeName = "GP13-2#水泵"; if (item.dl.ContainsKey("1DI23")) { model12.PollutionDischargeState = Convert.ToInt32(item.dl["1DI23"]); } if (item.dl.ContainsKey("1DI24")) { model12.PollutionDischargeAlarm = Convert.ToInt32(item.dl["1DI24"]); } model12.CreateTime = DateTime.Now; model12.EntireTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:00:00")); model12.Reserve1 = "465"; bll_pollution.Add(model12); #endregion #region GP14#水泵 var model13 = new DataService.Model.pollution_discharge(); model13.PollutionDischargeId = Guid.NewGuid().ToString("N"); model13.PollutionDischargeName = "GP14-1#水泵"; if (item.dl.ContainsKey("1DI25")) { model3.PollutionDischargeState = Convert.ToInt32(item.dl["1DI25"]); } if (item.dl.ContainsKey("1DI26")) { model3.PollutionDischargeAlarm = Convert.ToInt32(item.dl["1DI26"]); } model13.CreateTime = DateTime.Now; model13.EntireTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:00:00")); model13.Reserve1 = "465"; bll_pollution.Add(model13); var model14 = new DataService.Model.pollution_discharge(); model14.PollutionDischargeId = Guid.NewGuid().ToString("N"); model14.PollutionDischargeName = "GP14-2#水泵"; if (item.dl.ContainsKey("1DI27")) { model14.PollutionDischargeState = Convert.ToInt32(item.dl["1DI127"]); } if (item.dl.ContainsKey("1DI28")) { model14.PollutionDischargeAlarm = Convert.ToInt32(item.dl["1DI128"]); } model14.CreateTime = DateTime.Now; model14.EntireTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:00:00")); model14.Reserve1 = "465"; bll_pollution.Add(model14); #endregion } } } } } //气象站 if (topic.Contains("/e7af4604-30f8-41d6-a4d0-90c969e77a62")) { //气象站 log.Info("气象站msg" + msg); var j = msg.Substring(1); var data = JsonConvert.DeserializeObject(j); log.Info("气象站:" + data); var now = DateTime.Now; var edate = Convert.ToDateTime(now.ToString("yyyy-MM-dd HH:00:00")); var list = bll_meteorological.GetModelList("").Where(x => x.EntireTime == edate).ToList(); if (list.Count == 0) { if (data.b != null) { foreach (var item in data.b.dvl) { var name = ""; char delimiter = '.'; // 分隔符 int lastDotIndex = item.da.LastIndexOf(delimiter); // 查找最后一个分隔符的位置 if (lastDotIndex != -1) // 如果找到分隔符 { name = item.da.Substring(lastDotIndex + 1); // 截取分隔符后面的子字符串 } if (name == "33") { if (item.dl.ContainsKey("当前雨量")) { var mmodel = new DataService.Model.meteorological_station(); //气象站 mmodel.MeteorologicalId = Guid.NewGuid().ToString("N"); mmodel.MeteorologicalNumber = name; mmodel.MeteorologicalName = "雨量"; decimal? number; var stringnumber = item.dl["当前雨量"]; char delimiters = ':'; // 分隔符 int lastDotIndexs = stringnumber.LastIndexOf(delimiters); // 查找最后一个分隔符的位置 if (lastDotIndexs != -1) // 如果找到分隔符 { var num = stringnumber.Substring(lastDotIndexs + 1); number = Convert.ToDecimal(num); // 截取分隔符后面的子字符串 mmodel.MeteorologicalValue = number; } else { var num = Convert.ToDecimal(stringnumber); mmodel.MeteorologicalValue = num; } mmodel.CreateTime = DateTime.Now; mmodel.EntireTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:00:00")); bll_meteorological.Add(mmodel); } if (item.dl.ContainsKey("雨雪状态1")) { var mmodel = new DataService.Model.meteorological_station(); //气象站 mmodel.MeteorologicalId = Guid.NewGuid().ToString("N"); mmodel.MeteorologicalNumber = name; mmodel.MeteorologicalName = "雨雪状态"; decimal? number; var stringnumber = item.dl["雨雪状态1"]; char delimiters = ':'; // 分隔符lastDotIndexs + 1 int lastDotIndexs = stringnumber.LastIndexOf(delimiters); // 查找最后一个分隔符的位置 if (lastDotIndexs != -1) // 如果找到分隔符 { var num = stringnumber.Substring(lastDotIndexs + 1); number = Convert.ToDecimal(num); // 截取分隔符后面的子字符串 mmodel.MeteorologicalValue = number; } else { var num = Convert.ToDecimal(stringnumber); mmodel.MeteorologicalValue = num; } mmodel.CreateTime = DateTime.Now; mmodel.EntireTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:00:00")); bll_meteorological.Add(mmodel); } if (item.dl.ContainsKey("风向")) { var mmodel = new DataService.Model.meteorological_station(); //气象站 mmodel.MeteorologicalId = Guid.NewGuid().ToString("N"); mmodel.MeteorologicalNumber = name; mmodel.MeteorologicalName = "风向"; decimal? number; var stringnumber = item.dl["风向"]; char delimiters = ':'; // 分隔符 int lastDotIndexs = stringnumber.LastIndexOf(delimiters); // 查找最后一个分隔符的位置 if (lastDotIndexs != -1) // 如果找到分隔符 { var num = stringnumber.Substring(lastDotIndexs + 1); number = Convert.ToDecimal(num); // 截取分隔符后面的子字符串 mmodel.MeteorologicalValue = number; } else { var num = Convert.ToDecimal(stringnumber); mmodel.MeteorologicalValue = num; } mmodel.CreateTime = DateTime.Now; mmodel.EntireTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:00:00")); bll_meteorological.Add(mmodel); } if (item.dl.ContainsKey("光照度高16位")) { var mmodel = new DataService.Model.meteorological_station(); //气象站 mmodel.MeteorologicalId = Guid.NewGuid().ToString("N"); mmodel.MeteorologicalNumber = name; mmodel.MeteorologicalName = "光照度"; decimal? number; var stringnumber = item.dl["光照度高16位"]; char delimiters = ':'; // 分隔符 int lastDotIndexs = stringnumber.LastIndexOf(delimiters); // 查找最后一个分隔符的位置 if (lastDotIndexs != -1) // 如果找到分隔符 { var num = stringnumber.Substring(lastDotIndexs + 1); number = Convert.ToDecimal(num); // 截取分隔符后面的子字符串 mmodel.MeteorologicalValue = number; } else { var num = Convert.ToDecimal(stringnumber); mmodel.MeteorologicalValue = num; } mmodel.CreateTime = DateTime.Now; mmodel.EntireTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:00:00")); bll_meteorological.Add(mmodel); } if (item.dl.ContainsKey("风速")) { var mmodel = new DataService.Model.meteorological_station(); //气象站 mmodel.MeteorologicalId = Guid.NewGuid().ToString("N"); mmodel.MeteorologicalNumber = name; mmodel.MeteorologicalName = "风速"; decimal? number; var stringnumber = item.dl["风速"]; char delimiters = ':'; // 分隔符 int lastDotIndexs = stringnumber.LastIndexOf(delimiters); // 查找最后一个分隔符的位置 if (lastDotIndexs != -1) // 如果找到分隔符 { var num = stringnumber.Substring(lastDotIndexs + 1); number = Convert.ToDecimal(num); // 截取分隔符后面的子字符串 mmodel.MeteorologicalValue = number; } else { var num = Convert.ToDecimal(stringnumber); mmodel.MeteorologicalValue = num; } mmodel.CreateTime = DateTime.Now; mmodel.EntireTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:00:00")); bll_meteorological.Add(mmodel); } if (item.dl.ContainsKey("PM2_5")) { var mmodel = new DataService.Model.meteorological_station(); //气象站 mmodel.MeteorologicalId = Guid.NewGuid().ToString("N"); mmodel.MeteorologicalNumber = name; mmodel.MeteorologicalName = "空气质量"; decimal? number; var stringnumber = item.dl["PM2_5"]; char delimiters = ':'; // 分隔符 int lastDotIndexs = stringnumber.LastIndexOf(delimiters); // 查找最后一个分隔符的位置 if (lastDotIndexs != -1) // 如果找到分隔符 { var num = stringnumber.Substring(lastDotIndexs + 1); number = Convert.ToDecimal(num); // 截取分隔符后面的子字符串 mmodel.MeteorologicalValue = number; } else { var num = Convert.ToDecimal(stringnumber); mmodel.MeteorologicalValue = num; } mmodel.CreateTime = DateTime.Now; mmodel.EntireTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:00:00")); bll_meteorological.Add(mmodel); } } } } } } } catch (Exception ex) { log.Info("处理失败,数据:" + msg + ",原因:" + ex.Message); } } protected override void OnStop() { // TODO: 在此处添加代码以执行停止服务所需的关闭操作。 } /// /// 时间戳转换为DATETIME格式 /// /// 时间戳字符串 /// public static DateTime GetDateTime(string timeStamp) { DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1)); string ts = timeStamp + "0000000"; if (timeStamp.Length == 13) { ts = timeStamp + "0000"; } long lTime = long.Parse(ts); TimeSpan toNow = new TimeSpan(lTime); return dtStart.Add(toNow); } /// /// 获取配电室低压设备名称 /// /// /// public static string GetDeviceName1(int code) { var list = new Dictionary(); list.Add(1, "b1AL2"); list.Add(2, "3ATL-ZT1"); list.Add(3, "2ATL-ZT1"); list.Add(4, "1ATL-ZT1"); list.Add(5, "1ATL-ZT2"); list.Add(6, "夜景照明"); list.Add(7, "3ATL-JZ"); list.Add(8, "b1AT-YD12"); list.Add(9, "1AT-YD21 2AT-YD2"); list.Add(10, "3AP-KT21"); list.Add(11, "3AP-KT24"); list.Add(12, "b1AP-KT25"); list.Add(13, "b1AP-CF"); list.Add(14, "停车场"); list.Add(15, "3AT-DT1"); list.Add(16, "3AT-DT2"); list.Add(17, "3AT-HT"); list.Add(18, "b1AT-QW"); list.Add(19, "b1AT-RD"); list.Add(20, "b1AT-JK"); list.Add(21, "b1ATE-XF"); list.Add(22, "b1AT-BD"); list.Add(23, "b1AP-KT26"); list.Add(24, "2AP12"); list.Add(25, "2AP13"); list.Add(26, "2AP21"); list.Add(27, "2AP14"); list.Add(28, "2AP31"); list.Add(29, "b1ATE-XB"); list.Add(30, "b2ATE10"); list.Add(31, "b2ATE8-1"); list.Add(32, "b2ATE9-1"); list.Add(33, "b2ATE9-3"); list.Add(34, "3ATE-FJ1"); list.Add(35, "123ATE1"); list.Add(36, "2ATE-FJ1"); list.Add(37, "2ATE-FJ3"); list.Add(38, "1ATE2"); list.Add(39, "b1AL1-3AL1"); list.Add(40, "3ATL-ZT1"); list.Add(41, "2ATL-ZT1"); list.Add(42, "b1ATL"); list.Add(43, "1ATL-ZT2"); list.Add(44, "MWL7"); list.Add(45, "3ATL-JZ"); list.Add(46, "b1AT-YD1 3AT-YD1"); list.Add(47, "1AT-YD21 2AT-YD2"); list.Add(48, "b1AT-KT21"); list.Add(49, "b1AP-KT22"); list.Add(50, "b1AT-KT23"); list.Add(51, "3AT-DT1"); list.Add(52, "3AT-DT2"); list.Add(53, "3AT-HT"); list.Add(54, "b1AT-QW"); list.Add(55, "b1AT-RD"); list.Add(56, "b2AT-JK"); list.Add(57, "b1ATE-XF"); list.Add(58, "b2AT-BD"); list.Add(59, "AC1"); list.Add(60, "3AP-DBR"); list.Add(61, "1AP-LHD"); list.Add(62, "2AP11"); list.Add(63, "1AO-LED"); list.Add(64, "喷泉"); list.Add(65, "b1ATE-XB"); list.Add(66, "b1ATE10"); list.Add(67, "b1ATE8-1"); list.Add(68, "b1ATE9-1"); list.Add(69, "b1ATE9-3"); list.Add(70, "3ATE-PJ1"); list.Add(71, "1-3ATE1"); list.Add(72, "2ATE-FJ1"); list.Add(73, "2ATE-FJ3"); list.Add(74, "1ATE2"); if (!list.ContainsKey(code)) { return "未知"; } return list[code]; } /// /// 获取配电室高压设备名称 /// /// /// public static string GetDeviceName2(int code) { var list = new Dictionary(); list.Add(211, "场馆负一配电室高压进线柜"); list.Add(212, "场馆负一配电室高压进线柜"); if (!list.ContainsKey(code)) { return "未知"; } return list[code]; } /// /// 获取电能-室外箱变设备名称 /// /// /// public static string GetDeviceName3(int code) { var list = new Dictionary(); list.Add(1, "1-3号热泵机组"); list.Add(2, "4-6号热泵机组"); list.Add(3, "7-9号热泵机组"); list.Add(4, "10-12号热泵机组"); list.Add(5, "13-15号热泵机组"); list.Add(6, "16-18号热泵机组"); list.Add(7, "19-21号热泵机组"); list.Add(8, "22-24号热泵机组"); if (!list.ContainsKey(code)) { return "未知"; } return list[code]; } /// /// 获取配电室分类 /// /// /// public static string GetDeviceName4(int code) { var list = new Dictionary(); list.Add(1, "普通照明"); list.Add(2, "展览用电"); list.Add(3, "展览用电"); list.Add(4, "展览用电"); list.Add(5, "展览用电"); list.Add(6, "夜景照明"); list.Add(7, "基站用电"); list.Add(8, "室分机房"); list.Add(9, "室分机房"); list.Add(10, "空调动力"); list.Add(11, "空调动力"); list.Add(12, "空调动力"); list.Add(13, "扶梯"); list.Add(14, "停车场"); list.Add(15, "普通电梯"); list.Add(16, "普通电梯"); list.Add(17, "货梯"); list.Add(18, "潜污泵"); list.Add(19, "弱电"); list.Add(20, "监控室"); list.Add(21, "消防控制室"); list.Add(22, "变配电室"); list.Add(23, "空调室外机"); list.Add(24, "展陈用电"); list.Add(25, "展陈用电"); list.Add(26, "展陈用电"); list.Add(27, "展陈用电"); list.Add(28, "展陈用电"); list.Add(29, "消防水泵房"); list.Add(30, "消防风机"); list.Add(31, "消防风机"); list.Add(32, ""); list.Add(33, "消防风机"); list.Add(34, "消防风机"); list.Add(35, "消防风机"); list.Add(36, "消防风机"); list.Add(37, "消防风机"); list.Add(38, "消防电梯"); list.Add(39, "负一层普通照明"); list.Add(40, "台球厅展览用电"); list.Add(41, "展览用电"); list.Add(42, "展览用电"); list.Add(43, "展览用电"); list.Add(44, "夜景照明"); list.Add(45, "基站用电"); list.Add(46, "室分机房"); list.Add(47, "室分机房"); list.Add(48, "空调动力"); list.Add(49, "空调动力"); list.Add(50, "空调动力"); list.Add(51, "普通电梯"); list.Add(52, "普通电梯"); list.Add(53, "货梯"); list.Add(54, "潜污泵"); list.Add(55, "弱电"); list.Add(56, "监控室"); list.Add(57, "消防控制室"); list.Add(58, "变配电室"); list.Add(59, "空调动力站"); list.Add(60, "电伴热"); list.Add(61, "景观用电"); list.Add(62, "展陈用电"); list.Add(63, "老海岛展陈用电"); list.Add(64, "喷泉"); list.Add(65, "消防水泵房"); list.Add(66, "消防风机"); list.Add(67, "消防风机"); list.Add(68, ""); list.Add(69, "消防风机"); list.Add(70, "消防风机"); list.Add(71, "消防风机"); list.Add(72, "消防风机"); list.Add(73, "消防风机"); list.Add(74, "消防电梯"); if (!list.ContainsKey(code)) { return "未知"; } return list[code]; } } public class IdName { public string Id { get; set; } public string Name { get; set; } } }