DongYing/Security/ServiceSecurity.cs

699 lines
34 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 DataServer.api;
using System.Collections.Generic;
using System.Runtime.Remoting.Channels;
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 MqttClient mqtt_client2;
//static DataServer.BLL.device_data bll = new DataServer.BLL.device_data();
static DataServer.BLL.electricity_data bll = new DataServer.BLL.electricity_data();
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 = "192.168.9.20",
IpAddress = "111.229.30.246",
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("data");
};
mqtt_client.OnNetworkError += MqttClient_OnNetworkError; // 自己来控制异常及重连的操作
OperateResult result3 = mqtt_client.ConnectServer();
if (result3.IsSuccess)
{
log.Info("连接成功");
}
else
{
log.Info("连接失败");
}
// 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 options2 = new MqttConnectionOptions()
{
IpAddress = "127.0.0.1",
Port = 1883,
ClientId = "Service-" + Guid.NewGuid().ToString("N"),
};
options.Credentials = new MqttCredential("admin", "123456");
mqtt_client2 = new MqttClient(options2);
// 接收到数据的时候进行触发
mqtt_client2.OnMqttMessageReceived += Client_OnMqttMessageReceived;
// 订阅服务器的主题,在连接成功后就去订阅
mqtt_client2.OnClientConnected += m =>
{
Console.WriteLine("连接成功");
m.SubscribeMessage("data");
};
mqtt_client2.OnNetworkError += MqttClient2_OnNetworkError; // 自己来控制异常及重连的操作
OperateResult result = mqtt_client2.ConnectServer();
if (result.IsSuccess)
{
log.Info("发布连接成功");
}
else
{
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("/sys/iot/#");
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 msg = Encoding.UTF8.GetString(payload);
try
{
if (topic.Contains("data"))
{
var date = DateTime.Now.ToString("yyyyMM");
var a = bll.IsExistsTable("dongying", "electricity_data_"+date);
if (a == false)
{
bll.CreateTable(date);
}
var data = JsonConvert.DeserializeObject<DataServer.api.get_abutment>(msg);
log.Info("数据1data" + msg);
if (data.devs != null)
{
var model = new DataServer.Model.electricity_data();
foreach (var item in data.devs)
{
model.ElectricityId=Guid.NewGuid().ToString("N");
model.DeviceId =item.dev;
//var name=GetDeviceName(item.dev);
//var name1=GetFloorName(item.dev);
//model.DeviceName = name;
//model.FloorName = name1;
foreach (var aitem in item.d)
{
#region
if (aitem.m == "01040005")
{
model.EH = aitem.v;
}
if (aitem.m == "01010001")
{
model.Ua = aitem.v;
}
if (aitem.m == "01010002")
{
model.Ub = aitem.v;
}
if (aitem.m == "01010003")
{
model.Uc = aitem.v;
}
if (aitem.m == "01020001")
{
model.Ia = aitem.v;
}
if (aitem.m == "01020002")
{
model.Ib = aitem.v;
}
if (aitem.m == "01020003")
{
model.Ic = aitem.v;
}
if (aitem.m == "01030004")
{
model.P = aitem.v;
}
if (aitem.m == "01030012")
{
model.Kvar = aitem.v;
}
#endregion
}
model.CreateTime= DateTime.Now;
model.EntireTime =Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:00:00"));
bll.AddDate(model,date);
}
}
}
else if (topic.Contains("/a16cf30SpyL/device_VyCe/user/update/cmd/set"))
{
var data = JsonConvert.DeserializeObject<DataServer.api.get_information>(msg);
log.Info("数据2data" + msg);
}
}
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 GetDeviceName(string code)
{
var list = new Dictionary<string, string>();
list.Add("370510043001", "3#总进线");
list.Add("370510043002", "B1照明");
list.Add("370510043003", "A-(1-4)AL1 科技馆一楼北配电照明");
list.Add("370510043004", "A-(1-4)AL2 科技馆一楼南配电照明");
list.Add("370510043005", "A-1/4AL1-LM 科技馆一楼1#北楼顶莲花");
list.Add("370510043006", "A-1/4AL2-LM 科技馆一楼楼顶莲花");
list.Add("370510043007", "A-2AL1-Z2");
list.Add("370510043008", "A-2AL1-Z1");
list.Add("370510043009", "A-4AL1-Z1");
list.Add("370510043010", "A-3AL1-Z2");
list.Add("370510043011", "A-3AL1-Z1");
list.Add("370510043012", "2#临展厅预留电源1F");
list.Add("370510043013", "B区1F照明");
list.Add("370510043014", "A-1AP1-1 特效");
list.Add("370510043015", "A-B1AC2 负一楼风机");
list.Add("370510043016", "4F-1#展厅 禁毒展厅");
list.Add("370510043017", "A-4AP1-1");
list.Add("370510043018", "A-1APE1-1 变电所");
list.Add("370510043019", "A-B1ALE2");
list.Add("370510043020", "A-B1ALE1-1");
list.Add("370510043021", "A-(1-4)ALE1 应急照明");
list.Add("370510043022", "A-3AL1-Z2");
list.Add("370510043023", "A-1APE5");
list.Add("370510043024", "A-1APE3");
list.Add("370510043025", "A-1APE1 风机");
list.Add("370510043026", "A-1APE4");
list.Add("370510043027", "A-1APE2");
list.Add("370510043028", "A-1APE2、A-2APE2、A-3APE2");
list.Add("370510043029", "A单体LM");
list.Add("370510043030", "A-5DT1");
list.Add("370510043031", "A-5DT2");
list.Add("370510043032", "中水电源");
list.Add("370510043033", "S-B1APE1、S-B1APE2 A区");
list.Add("370510043034", "S-XFB1APE1");
list.Add("370510043035", "A区1F2#电房");
list.Add("370510043036", "A-(1F-4F) 科技馆热水器1-4");
list.Add("370510043037", "A-N(XF)-5APE3 备用");
list.Add("370510043038", "A-S(XF)-BAPE1");
list.Add("370510043039", "应急照明");
list.Add("370510043040", "A-1ALE3-2 巨幕");
list.Add("370510043041", "A-N(XF)-2APE3、A-N(XF)-1APE3 巨幕");
list.Add("370510043042", "A-N(XF)B1APE 1、2、3");
list.Add("370510043043", "B-(XF)-AP 儿童剧场消防备电");
list.Add("370510043044", "A-S(XF)-5APE1 常用");
list.Add("370510043045", "B-N(XF)-6APE2");
list.Add("370510043046", "A-N(XF)-5APE1 常用");
list.Add("370510043047", "B-N(XF)6APE1 ");
list.Add("370510043048", "B-S(XF)1APE1 5*10");
list.Add("370510043049", "货梯6F");
list.Add("370510043050", "A-(1-4)ALE2 2号大厅");
list.Add("370510043051", "A-(1-4)ALE1");
list.Add("370510043052", "A-B1ALE2");
list.Add("370510043053", "A-B1ALE2");
list.Add("370510043054", "A-1APE-1变电柜");
list.Add("370510043055", "A-1APE2");
list.Add("370510043056", "手机覆盖机有线电视机房预留电源B1");
list.Add("370510043057", "A-1APE1");
list.Add("370510043058", "A-1APE3");
list.Add("370510043059", "电话机房预留电源B1");
list.Add("370510043060", "1#5F货梯");
list.Add("370510043061", "A-5DT2");
list.Add("370510043062", "A-ZS中水电源");
list.Add("370510043063", "S-B1APE1 S-B1APE2 A区污电源");
list.Add("370510043064", "2#排水泵房(消防)");
list.Add("370510043065", "A-N(XF)-5APE3常用楼顶东南角");
list.Add("370510043066", "A-S(XF)-BAPE1");
list.Add("370510043067", "1##排烟及加压风机5F");
list.Add("370510043068", "A-N(XF)-B1APE (1.2.3)");
list.Add("370510043069", "A-N(XF)-5APE2 常用");
list.Add("370510043070", "A-N(XF)-5APE4 常用");
list.Add("370510043071", "B-1AL2-1");
list.Add("370510043072", "B-1AL2-2 儿童剧场");
list.Add("370510043073", "B-1AL2-3");
list.Add("370510043074", "B-1AL2-5");
list.Add("370510043075", "B-2AL2-1 B-2AL2-2 儿童剧场舞台设备灯");
list.Add("370510043076", "A-1AL-ZS");
list.Add("370510043077", "B-1AL2");
list.Add("370510043078", "B-1AC2");
list.Add("370510043079", "B-1ALE2 常用");
list.Add("370510043080", "B-N(XF)-6APE2");
list.Add("370510043081", "B-N(XF)-AL 儿童剧场落地箱");
list.Add("370510043082", "立面照明");
list.Add("370510043083", "B-5DT1");
list.Add("370510043084", "B-6AT1");
list.Add("370510043085", "B-S(XF)1APE1");
list.Add("370510043086", "B-N(XF)6APE1");
list.Add("370510043087", "B-1AT1-1");
list.Add("370510043088", "B-(1-6)AC1-1 少年宫2F风机");
list.Add("370510043089", "B-1/5AL1-LM 少年宫");
list.Add("370510043090", "B-(1-5)AL1 B2层");
list.Add("370510043091", "B-(1-5)ALE1");
list.Add("370510043092", "A-1AC3 巨幕影院");
list.Add("370510043093", "A-1AL3 A-2AL3 巨幕");
list.Add("370510043094", "A-1ALE3-LM巨幕");
list.Add("370510043095", "A-1ALE3-2 巨幕");
list.Add("370510043096", "区域报警控制器 预留电源");
list.Add("370510043097", "A-N(XF)1APE3 巨幕");
list.Add("370510043098", "A-1AL3-1 巨幕");
list.Add("370510043099", "A-(1-5)AC1 1号井科一北 空调及通风机(北)");
list.Add("370510043100", "空调及通风机(南)");
list.Add("370510043101", "AH1-14 及应急屏显");
list.Add("370510043102", "4#总进线");
list.Add("370510043103", "1#变配电所电源2至1#变电室进线柜AH4");
list.Add("370510043104", "2#总变配电所电源2科技馆一层4#变压器");
list.Add("370510043105", "3#变配电所电源2至3#变电室进线柜AH4");
list.Add("370510043106", "3#变配电所电源1至3#变电室进线柜AH1");
list.Add("370510043107", "2#总变配电所电源1科技馆一层3#变压器");
list.Add("370510043108", "1#变配电所电源1至1#变电室进线柜AH1");
list.Add("370510043109", "一号主机控制柜");
list.Add("370510043110", "二号主机控制柜");
list.Add("370510043111", "b1-地源侧循环泵1");
list.Add("370510043112", "b1-地源侧循环泵2");
list.Add("370510043113", "b1-地源侧循环泵3");
list.Add("370510043114", "b1-地源侧循环泵4");
list.Add("370510043115", "B1一次循环3号泵");
list.Add("370510043116", "B1一次循环1号泵");
list.Add("370510043117", "B1一次循环4号泵");
list.Add("370510043118", "B1一次循环2号泵");
list.Add("370510043119", "B5二次循环9号泵");
list.Add("370510043120", "B5二次循环10号泵");
list.Add("370510043121", "B5二次循环5号泵");
list.Add("370510043122", "B5二次循环8号泵");
list.Add("370510043123", "B5二次循环7号泵");
list.Add("370510043124", "B5二次循环6号泵");
list.Add("370510043125", "四号主机控制柜");
list.Add("370510043126", "三号主机控制柜");
list.Add("370510043127", "5#总进线");
list.Add("370510043128", "正常照明及其他2F-5F");
list.Add("370510043129", "1#1AL.1-2AL.正常照明及其他1F-2F");
list.Add("370510043130", "正常照明及其他3F-5F");
list.Add("370510043131", "2#正常照明及其他1F-2F");
list.Add("370510043132", "1#立面照明1F-5F");
list.Add("370510043133", "变配电所照明");
list.Add("370510043134", "应急照明1F-5楼下");
list.Add("370510043135", "2#应急照明1F5F");
list.Add("370510043136", "排烟机及加压风机6F");
list.Add("370510043137", "1#排烟机6F");
list.Add("370510043138", "1#排烟机及加压风机6F");
list.Add("370510043139", "排烟机及加压风机6F");
list.Add("370510043140", "2#补风机");
list.Add("370510043141", "2#事故排风机1F");
list.Add("370510043142", "C-N(XF)-2APE1单体二层备用");
list.Add("370510043143", "应急照明1F");
list.Add("370510043144", "2#应急照明1F");
list.Add("370510043145", "1#电梯消防6F");
list.Add("370510043146", "网络机房预留电源");
list.Add("370510043147", "消防控制中心1F");
list.Add("370510043148", "手机覆盖机有线电视预留电源1F");
list.Add("370510043149", "安装预留电源");
list.Add("370510043150", "1号货梯6F");
list.Add("370510043151", "电话机房预留电源1F");
list.Add("370510043152", "1#排水泵消防1F");
list.Add("370510043153", "6#总进线");
list.Add("370510043154", "1#空调及通风机");
list.Add("370510043155", "2#空调及通风机B1 5F");
list.Add("370510043156", "变配电所通风机");
list.Add("370510043157", "电话机房预留电源1F");
list.Add("370510043158", "网络机房预留电源1F");
list.Add("370510043159", "消防控制中心1F");
list.Add("370510043160", "手机覆盖机有线电视预留电源1F");
list.Add("370510043161", "安防预留电源1F");
list.Add("370510043162", "1#货梯 6F");
list.Add("370510043163", "1#电梯(兼消防) 6F");
list.Add("370510043164", "1#排水泵(消防) 1F");
list.Add("370510043165", "2#排烟风机及加压风机6F");
list.Add("370510043166", "2#排烟风机及加压风机6F");
list.Add("370510043167", "2#补风机1F");
list.Add("370510043168", "2#事故排风机1F");
list.Add("370510043169", "学术报告厅电源");
list.Add("370510043170", "应急照明");
list.Add("370510043171", "外围高杆灯亭");
list.Add("370510043172", "2#正常照明及其他");
list.Add("370510043173", "2#正常照明及其他");
list.Add("370510043174", "D-1AC1 1#空调及通风机1F");
list.Add("370510043175", "2#井空调及通风机1F");
list.Add("370510043176", "学术报告厅2楼空调风机房");
list.Add("370510043177", "青少年宫118消防");
list.Add("370510043178", "D-1ALE2 2#应急照明1F");
list.Add("370510043179", "变电所应急照明1F");
list.Add("370510043180", "1#应急照明1F-5F");
list.Add("370510043181", "2#应急照明1F-5F");
list.Add("370510043182", "1#排烟机及加压风机6F");
list.Add("370510043183", "C-N(XF)-6APE2 1#排烟机6F");
if (!list.ContainsKey(code))
{
return "未知";
}
return list[code];
}
/// <summary>
/// 获取设备名称
/// </summary>
/// <param name="code"></param>
/// <returns></returns>
public static string GetFloorName(string code)
{
Dictionary<string, string> list = new Dictionary<string, string>();
list.Add("370510043001", "科技馆一楼");
list.Add("370510043002", "科技馆一楼");
list.Add("370510043003", "科技馆一楼");
list.Add("370510043004", "科技馆一楼");
list.Add("370510043005", "科技馆一楼");
list.Add("370510043006", "科技馆一楼");
list.Add("370510043007", "科技馆一楼");
list.Add("370510043008", "科技馆一楼");
list.Add("370510043009", "科技馆一楼");
list.Add("370510043010", "科技馆一楼");
list.Add("370510043011", "科技馆一楼");
list.Add("370510043012", "科技馆一楼");
list.Add("370510043013", "科技馆一楼");
list.Add("370510043014", "科技馆一楼");
list.Add("370510043015", "科技馆一楼");
list.Add("370510043016", "科技馆一楼");
list.Add("370510043017", "科技馆一楼");
list.Add("370510043018", "科技馆一楼");
list.Add("370510043019", "科技馆一楼");
list.Add("370510043020", "科技馆一楼");
list.Add("370510043021", "科技馆一楼");
list.Add("370510043022", "科技馆一楼");
list.Add("370510043023", "科技馆一楼");
list.Add("370510043024", "科技馆一楼");
list.Add("370510043025", "科技馆一楼");
list.Add("370510043026", "科技馆一楼");
list.Add("370510043027", "科技馆一楼");
list.Add("370510043028", "科技馆一楼");
list.Add("370510043029", "科技馆一楼");
list.Add("370510043030", "科技馆一楼");
list.Add("370510043031", "科技馆一楼");
list.Add("370510043032", "科技馆一楼");
list.Add("370510043033", "科技馆一楼");
list.Add("370510043034", "科技馆一楼");
list.Add("370510043035", "科技馆一楼");
list.Add("370510043036", "科技馆一楼");
list.Add("370510043037", "科技馆一楼");
list.Add("370510043038", "科技馆一楼");
list.Add("370510043039", "科技馆一楼");
list.Add("370510043040", "科技馆一楼");
list.Add("370510043041", "科技馆一楼");
list.Add("370510043042", "科技馆一楼");
list.Add("370510043043", "科技馆一楼");
list.Add("370510043044", "科技馆一楼");
list.Add("370510043045", "科技馆一楼");
list.Add("370510043046", "科技馆一楼");
list.Add("370510043047", "科技馆一楼");
list.Add("370510043048", "科技馆一楼");
list.Add("370510043049", "科技馆一楼");
list.Add("370510043050", "科技馆一楼");
list.Add("370510043051", "科技馆一楼");
list.Add("370510043052", "科技馆一楼");
list.Add("370510043053", "科技馆一楼");
list.Add("370510043054", "科技馆一楼");
list.Add("370510043055", "科技馆一楼");
list.Add("370510043056", "科技馆一楼");
list.Add("370510043057", "科技馆一楼");
list.Add("370510043058", "科技馆一楼");
list.Add("370510043059", "科技馆一楼");
list.Add("370510043060", "科技馆一楼");
list.Add("370510043061", "科技馆一楼");
list.Add("370510043062", "科技馆一楼");
list.Add("370510043063", "科技馆一楼");
list.Add("370510043064", "科技馆一楼");
list.Add("370510043065", "科技馆一楼");
list.Add("370510043066", "科技馆一楼");
list.Add("370510043067", "科技馆一楼");
list.Add("370510043068", "科技馆一楼");
list.Add("370510043069", "科技馆一楼");
list.Add("370510043070", "科技馆一楼");
list.Add("370510043071", "科技馆一楼");
list.Add("370510043072", "科技馆一楼");
list.Add("370510043073", "科技馆一楼");
list.Add("370510043074", "科技馆一楼");
list.Add("370510043075", "科技馆一楼");
list.Add("370510043076", "科技馆一楼");
list.Add("370510043077", "科技馆一楼");
list.Add("370510043078", "科技馆一楼");
list.Add("370510043079", "科技馆一楼");
list.Add("370510043080", "科技馆一楼");
list.Add("370510043081", "科技馆一楼");
list.Add("370510043082", "科技馆一楼");
list.Add("370510043083", "科技馆一楼");
list.Add("370510043084", "科技馆一楼");
list.Add("370510043085", "科技馆一楼");
list.Add("370510043086", "科技馆一楼");
list.Add("370510043087", "科技馆一楼");
list.Add("370510043088", "科技馆一楼");
list.Add("370510043089", "科技馆一楼");
list.Add("370510043090", "科技馆一楼");
list.Add("370510043091", "科技馆一楼");
list.Add("370510043092", "科技馆一楼");
list.Add("370510043093", "科技馆一楼");
list.Add("370510043094", "科技馆一楼");
list.Add("370510043095", "科技馆一楼");
list.Add("370510043096", "科技馆一楼");
list.Add("370510043097", "科技馆一楼");
list.Add("370510043098", "科技馆一楼");
list.Add("370510043099", "科技馆一楼");
list.Add("370510043100", "科技馆一楼");
list.Add("370510043101", "科技馆一楼");
list.Add("370510043102", "科技馆一楼");
list.Add("370510043103", "科技馆一楼");
list.Add("370510043104", "科技馆一楼");
list.Add("370510043105", "科技馆一楼");
list.Add("370510043106", "科技馆一楼");
list.Add("370510043107", "科技馆一楼");
list.Add("370510043108", "科技馆一楼");
list.Add("370510043109", "科技馆负一楼地源热泵");
list.Add("370510043110", "科技馆负一楼地源热泵");
list.Add("370510043111", "科技馆负一楼地源热泵");
list.Add("370510043112", "科技馆负一楼地源热泵");
list.Add("370510043113", "科技馆负一楼地源热泵");
list.Add("370510043114", "科技馆负一楼地源热泵");
list.Add("370510043115", "科技馆负一楼地源热泵");
list.Add("370510043116", "科技馆负一楼地源热泵");
list.Add("370510043117", "科技馆负一楼地源热泵");
list.Add("370510043118", "科技馆负一楼地源热泵");
list.Add("370510043119", "科技馆负一楼地源热泵");
list.Add("370510043120", "科技馆负一楼地源热泵");
list.Add("370510043121", "科技馆负一楼地源热泵");
list.Add("370510043122", "科技馆负一楼地源热泵");
list.Add("370510043123", "科技馆负一楼地源热泵");
list.Add("370510043124", "科技馆负一楼地源热泵");
list.Add("370510043125", "科技馆负一楼地源热泵");
list.Add("370510043126", "科技馆负一楼地源热泵");
list.Add("370510043127", "图书馆一楼");
list.Add("370510043128", "图书馆一楼");
list.Add("370510043129", "图书馆一楼");
list.Add("370510043130", "图书馆一楼");
list.Add("370510043131", "图书馆一楼");
list.Add("370510043132", "图书馆一楼");
list.Add("370510043133", "图书馆一楼");
list.Add("370510043134", "图书馆一楼");
list.Add("370510043135", "图书馆一楼");
list.Add("370510043136", "图书馆一楼");
list.Add("370510043137", "图书馆一楼");
list.Add("370510043138", "图书馆一楼");
list.Add("370510043139", "图书馆一楼");
list.Add("370510043140", "图书馆一楼");
list.Add("370510043141", "图书馆一楼");
list.Add("370510043142", "图书馆一楼");
list.Add("370510043143", "图书馆一楼");
list.Add("370510043144", "图书馆一楼");
list.Add("370510043145", "图书馆一楼");
list.Add("370510043146", "图书馆一楼");
list.Add("370510043147", "图书馆一楼");
list.Add("370510043148", "图书馆一楼");
list.Add("370510043149", "图书馆一楼");
list.Add("370510043150", "图书馆一楼");
list.Add("370510043151", "图书馆一楼");
list.Add("370510043152", "图书馆一楼");
list.Add("370510043153", "图书馆一楼");
list.Add("370510043154", "图书馆一楼");
list.Add("370510043155", "图书馆一楼");
list.Add("370510043156", "图书馆一楼");
list.Add("370510043157", "图书馆一楼");
list.Add("370510043158", "图书馆一楼");
list.Add("370510043159", "图书馆一楼");
list.Add("370510043160", "图书馆一楼");
list.Add("370510043161", "图书馆一楼");
list.Add("370510043162", "图书馆一楼");
list.Add("370510043163", "图书馆一楼");
list.Add("370510043164", "图书馆一楼");
list.Add("370510043165", "图书馆一楼");
list.Add("370510043166", "图书馆一楼");
list.Add("370510043167", "图书馆一楼");
list.Add("370510043168", "图书馆一楼");
list.Add("370510043169", "图书馆一楼");
list.Add("370510043170", "图书馆一楼");
list.Add("370510043171", "图书馆一楼");
list.Add("370510043172", "图书馆一楼");
list.Add("370510043173", "图书馆一楼");
list.Add("370510043174", "图书馆一楼");
list.Add("370510043175", "图书馆一楼");
list.Add("370510043176", "图书馆一楼");
list.Add("370510043177", "图书馆一楼");
list.Add("370510043178", "图书馆一楼");
list.Add("370510043179", "图书馆一楼");
list.Add("370510043180", "图书馆一楼");
list.Add("370510043181", "图书馆一楼");
list.Add("370510043182", "图书馆一楼");
list.Add("370510043183", "图书馆一楼");
if (!list.ContainsKey(code))
{
return "未知";
}
return list[code];
}
}
public class IdName
{
public string Id { get; set; }
public string Name { get; set; }
}
}