/// <summary> /// 获取所有的测点相应的数据 /// </summary> public static void GetAllMonitorNodeData() { DateTime start = DateTime.Now; Log.Info(LogTags.KKS, string.Format("获取KKS数据...")); LocationService service = new LocationService(); var bll = Bll.Instance(); var monitorList = bll.DevMonitorNodes.ToList(); //List<string> string tags = ""; WebApiHelper.IsSaveJsonToFile = true; //List<DbModel.Location.AreaAndDev.DevMonitorNode> monitorList2 = // new List<DbModel.Location.AreaAndDev.DevMonitorNode>(); //for (int i = 0; i < monitorList.Count; i++) //{ // DbModel.Location.AreaAndDev.DevMonitorNode node = monitorList[i]; // string tag = node.TagName; // if (!tag.Contains("/"))// "/"会导致失败 // { // monitorList2.Add(node); // } //} for (int i = 0; i < monitorList.Count; i++) { DbModel.Location.AreaAndDev.DevMonitorNode node = monitorList[i]; string tag = node.TagName; if (tags == "") { tags = tag; } else { tags += "," + tag; } if ((i + 1) % 40 == 0) //每100个获取一次数据,200个不行,url长度有限制的 { var dataList = service.GetSomesisList(tags); //获取监控信息并保存到数据库中 Log.Info(LogTags.KKS, string.Format("获取KKS数据[{3:p3}]:{0}...,({1}/{2})", node.Describe, i, monitorList.Count, ((i + 0.0f) / monitorList.Count))); tags = ""; } } if (tags != "") { var dataList = service.GetSomesisList(tags); //获取监控信息并保存到数据库中 } WebApiHelper.IsSaveJsonToFile = false; TimeSpan time = DateTime.Now - start; Log.Info(LogTags.KKS, string.Format("【5】【GetAllMonitorNodeData】完成 用时:{0}", time)); }
private void MenuGetMonitorData_Click(object sender, RoutedEventArgs e) { DevMonitorNode monitorNode = dg_monitor.SelectedItem as DevMonitorNode; if (monitorNode == null) { return; } LocationService service = new LocationService(); var dataList = service.GetSomesisList(monitorNode.TagName); //获取监控信息并保存到数据库中 Log.Info(LogTags.KKS, WebApiHelper.LastUrl); Log.Info(LogTags.KKS, WebApiHelper.LastJson); }
private void MenuLoadMonitorNodeFile_OnClick(object sender, RoutedEventArgs e) { try { //Dev_Monitor monitor = new Dev_Monitor(); string dirPath = AppDomain.CurrentDomain.BaseDirectory + "Data\\DeviceData\\" + DbModel.AppSetting.ParkName + "\\"; DirectoryInfo di = new DirectoryInfo(dirPath); if (di.Exists == false) { MessageBox.Show("不存在目录:" + di.FullName); return; } string xlsFile = di.FullName + "设备测点列表.xls"; DataTable dt = ExcelHelper.LoadTable(new FileInfo(xlsFile), null, true); Dictionary <string, DevMonitorNodeList> dict = new Dictionary <string, DevMonitorNodeList>(); foreach (DataRow row in dt.Rows) { DevMonitorNode node = new DevMonitorNode(); node.SetNull(); var pKKs = row[1].ToString(); node.ParentKKS = row[1].ToString(); node.Describe = row[2].ToString(); node.TagName = row[3].ToString(); if (!dict.ContainsKey(pKKs)) { dict.Add(pKKs, new DevMonitorNodeList()); } var list = dict[pKKs]; list.Add(node); } foreach (string key in dict.Keys) { string xmlFile = di.FullName + key + ".xml"; XmlSerializeHelper.Save(dict[key], xmlFile); } } catch (Exception ex) { MessageBox.Show(ex.ToString()); } }
/// <summary> /// 重新分析测点数据,原来未找到kks的进行二次深入分析 /// </summary> public static void ReParseMonitPoint(bool fromFile) { DateTime start = DateTime.Now; Log.Info(LogTags.KKS, "重新分析设备监控节点"); Bll bll = new Bll(); List <DbModel.Location.AreaAndDev.DevMonitorNode> monitors = null; if (fromFile) //从文件读取 { string basePath = AppDomain.CurrentDomain.BaseDirectory; Log.Info(LogTags.KKS, "BaseDirectory:" + basePath); string filePath = basePath + "Data\\KKS\\EDOS_New.xls"; monitors = DevInfoHelper.CreateDevMonitorNodeListFromFile <DbModel.Location.AreaAndDev.DevMonitorNode>( new FileInfo(filePath)); } else //从数据库读取 { monitors = bll.DevMonitorNodes.ToList(); } var kksCodes = bll.KKSCodes.ToListEx(); var kksDict = KKSCode.ToDict(kksCodes); for (int i = 0; i < monitors.Count; i++) { DbModel.Location.AreaAndDev.DevMonitorNode monitor = monitors[i]; if (i > 0) { monitor.PreNode = monitors[i - 1]; } if (i < monitors.Count - 1) { monitor.NextMode = monitors[i + 1]; } if (kksDict.ContainsKey(monitor.ParentKKS)) { monitor.KKSCode = kksDict[monitor.ParentKKS]; } } var monitors1 = monitors.Where(i => i.ParseResult == "0").ToList(); var monitors2 = monitors.Where(i => i.ParseResult == "1").ToList(); var monitors31 = monitors.Where(i => i.ParseResult == "-1").ToList(); var monitors311 = monitors31.Where(i => i.Unit != "").ToList(); var monitors32 = monitors.Where(i => i.ParseResult == "-2").ToList(); var monitors321 = monitors32.Where(i => i.Unit != "").ToList(); var monitors4 = monitors.Where(i => i.ParseResult.ToInt() > 1).ToList(); List <DbModel.Location.AreaAndDev.DevMonitorNode> editMonitorNodes = new List <DbModel.Location.AreaAndDev.DevMonitorNode>(); for (int i = 0; i < monitors4.Count; i++) { DbModel.Location.AreaAndDev.DevMonitorNode monitorNode = monitors4[i]; try { var parentCode = monitorNode.ParentKKS; TagToKKSInfo info = KKSCodeHelper.ReParese(kksCodes, monitorNode.ParentKKS, monitorNode.KKS); var code = info.GetParentCode(); if (info.Type == 1 || info.Type == 0) { monitorNode.ParentKKS = code; monitorNode.ParseResult = "1"; //这里统一为1 editMonitorNodes.Add(monitorNode); Log.Info(LogTags.KKS, string.Format("解析测点:{0}=>{1}[{2}],({3}/{4})", parentCode, code, info.KKS, i, monitors4.Count)); } else { if (monitorNode.PreNode != null) { if (monitorNode.PreNode.KKSCode != null) { var kksCode = monitorNode.PreNode.KKSCode.GetAncestor("系统"); if (kksCode != null) { monitorNode.ParentKKS = kksCode.Code; monitorNode.ParseResult = "1"; //感觉这里要区分开来了 editMonitorNodes.Add(monitorNode); } else { Log.Info(LogTags.KKS, string.Format("monitorNode.PreNode.KKSCode 未找到系统节点:{0}", monitorNode.PreNode.KKSCode)); } } else { Log.Info(LogTags.KKS, string.Format("monitorNode.PreNode.KKSCode == null:{0}", monitorNode.PreNode)); } } else { } } } catch (Exception e) { Log.Error(LogTags.KKS, monitorNode + "\n" + e + ""); } } bll.DevMonitorNodes.EditRange(editMonitorNodes); TimeSpan time = DateTime.Now - start; Log.Info(LogTags.KKS, string.Format("【4】【ReParseMonitPoint】完成 用时:{0}", time)); }