LonglslandExhibitionCenter/Security/ServiceSecurity.cs

1635 lines
92 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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<DataService.api.get_data>(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<DataService.api.get_data>(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<DataService.api.get_data>(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<DataService.api.get_data>(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<DataService.api.get_data>(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<DataService.api.get_data_state>(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: 在此处添加代码以执行停止服务所需的关闭操作。
}
/// <summary>
/// 时间戳转换为DATETIME格式
/// </summary>
/// <param name="timeStamp">时间戳字符串</param>
/// <returns></returns>
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);
}
/// <summary>
/// 获取配电室低压设备名称
/// </summary>
/// <param name="code"></param>
/// <returns></returns>
public static string GetDeviceName1(int code)
{
var list = new Dictionary<int, string>();
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];
}
/// <summary>
/// 获取配电室高压设备名称
/// </summary>
/// <param name="code"></param>
/// <returns></returns>
public static string GetDeviceName2(int code)
{
var list = new Dictionary<int, string>();
list.Add(211, "场馆负一配电室高压进线柜");
list.Add(212, "场馆负一配电室高压进线柜");
if (!list.ContainsKey(code))
{
return "未知";
}
return list[code];
}
/// <summary>
/// 获取电能-室外箱变设备名称
/// </summary>
/// <param name="code"></param>
/// <returns></returns>
public static string GetDeviceName3(int code)
{
var list = new Dictionary<int, string>();
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];
}
/// <summary>
/// 获取配电室分类
/// </summary>
/// <param name="code"></param>
/// <returns></returns>
public static string GetDeviceName4(int code)
{
var list = new Dictionary<int, string>();
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; }
}
}