| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Reflection.Metadata; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | |
| | | public string AnalyInfo { get; set; } |
| | | |
| | | #region AnalyInfo |
| | | |
| | | #region InfoTag |
| | | |
| | | /// <summary> |
| | | /// 运行状态发生异常的标识 |
| | | /// </summary> |
| | | public const string InfoTag_RU = "RU"; |
| | | /// <summary> |
| | | /// 频率发生异常的标识 |
| | | /// </summary> |
| | | public const string InfoTag_HZ = "HZ"; |
| | | /// <summary> |
| | | /// 流量发生异常的标识 |
| | | /// </summary> |
| | | public const string InfoTag_Qa = "Qa"; |
| | | /// <summary> |
| | | /// 扬程发生异常的标识 |
| | | /// </summary> |
| | | public const string InfoTag_Ha = "Ha"; |
| | | /// <summary> |
| | | /// 进口压力发生异常的标识 |
| | | /// </summary> |
| | | public const string InfoTag_P1 = "P1"; |
| | | /// <summary> |
| | | /// 出口压力发生异常的标识 |
| | | /// </summary> |
| | | public const string InfoTag_P2 = "P2"; |
| | | /// <summary> |
| | | /// 功率发生异常的标识 |
| | | /// </summary> |
| | | public const string InfoTag_Pa = "Pa"; |
| | | /// <summary> |
| | | /// 效率发生异常的标识 |
| | | /// </summary> |
| | | public const string InfoTag_Ea = "Ea"; |
| | | /// <summary> |
| | | /// 电流发生异常的标识 |
| | | /// </summary> |
| | | public const string InfoTag_Ia = "Ia"; |
| | | /// <summary> |
| | | /// 曲线发生异常的标识 |
| | | /// </summary> |
| | | public const string InfoTag_Curve = "Cu"; |
| | | |
| | | /// <summary> |
| | | /// 泵站发生异常的标识 |
| | | /// </summary> |
| | | public const string InfoTag_Station = "St"; |
| | | #endregion |
| | | |
| | | #region Basic |
| | | /// <summary> |
| | | /// 添加状态 |
| | | /// </summary> |
| | |
| | | AnalyInfo = string.Format("{0}|{1}:", AnalyInfo, tag); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 添加AnalyInfo标识 |
| | | /// </summary> |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 添加AnalyInfo标识 |
| | | /// </summary> |
| | |
| | | return; |
| | | } |
| | | var sss = AnalyInfo.Split('|').ToList(); |
| | | |
| | | for (int i = 0; i < sss.Count(); i++) |
| | | { |
| | | if (sss[i].StartsWith(tag)) |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 运行状态发生异常的标识 |
| | | /// 有分析异常 |
| | | /// </summary> |
| | | public static string InfoTag_RU = "RU"; |
| | | /// <summary> |
| | | /// 频率发生异常的标识 |
| | | /// </summary> |
| | | public static string InfoTag_HZ = "HZ"; |
| | | /// <summary> |
| | | /// 流量发生异常的标识 |
| | | /// </summary> |
| | | public static string InfoTag_Qa = "Qa"; |
| | | /// <summary> |
| | | /// 扬程发生异常的标识 |
| | | /// </summary> |
| | | public static string InfoTag_Ha = "Ha"; |
| | | /// <summary> |
| | | /// 进口压力发生异常的标识 |
| | | /// </summary> |
| | | public static string InfoTag_P1 = "P1"; |
| | | /// <summary> |
| | | /// 出口压力发生异常的标识 |
| | | /// </summary> |
| | | public static string InfoTag_P2 = "P2"; |
| | | /// <summary> |
| | | /// 功率发生异常的标识 |
| | | /// </summary> |
| | | public static string InfoTag_Pa = "Pa"; |
| | | /// <summary> |
| | | /// 效率发生异常的标识 |
| | | /// </summary> |
| | | public static string InfoTag_Ea = "Ea"; |
| | | /// <summary> |
| | | /// 电流发生异常的标识 |
| | | /// </summary> |
| | | public static string InfoTag_Ia = "Ia"; |
| | | /// <summary> |
| | | /// 曲线发生异常的标识 |
| | | /// </summary> |
| | | public static string InfoTag_Curve = "Cu"; |
| | | /// <param name="stationId"></param> |
| | | /// <returns></returns> |
| | | public bool IsHaveStationTag(long stationId) |
| | | { |
| | | if (string.IsNullOrEmpty(AnalyInfo)) |
| | | { |
| | | return false; |
| | | } |
| | | return AnalyInfo.Contains($"{InfoTag_Station}:{stationId}"); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 添加泵站 AnalyInfo标识 |
| | | /// </summary> |
| | | /// <param name="ePumpAnalyInfo">机泵错误信息</param> |
| | | /// <param name="ePumpId">机泵标识</param> |
| | | public void PutStationAnalyInfo(string ePumpAnalyInfo, long ePumpId) |
| | | { |
| | | if (string.IsNullOrEmpty(ePumpAnalyInfo)) |
| | | return; |
| | | var defaultEdition = "V1"; |
| | | if (string.IsNullOrEmpty(AnalyInfo)) |
| | | { |
| | | AnalyInfo = defaultEdition; |
| | | } |
| | | |
| | | var infoArry = ePumpAnalyInfo.Split('|').ToList(); |
| | | foreach (var item in infoArry) |
| | | { |
| | | if (item == defaultEdition) |
| | | continue; |
| | | AnalyInfo = $"{AnalyInfo}|{item}:{ePumpId}"; |
| | | } |
| | | |
| | | if (AnalyInfo == defaultEdition) |
| | | { |
| | | AnalyInfo = null; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 添加业务 AnalyInfo标识 |
| | | /// </summary> |
| | | /// <param name="logicAnalyInfo">业务错误信息</param> |
| | | public void PutLogicAnalyInfo(string logicAnalyInfo) |
| | | { |
| | | if (string.IsNullOrEmpty(logicAnalyInfo)) |
| | | return; |
| | | var defaultEdition = "V1"; |
| | | if (string.IsNullOrEmpty(AnalyInfo)) |
| | | { |
| | | AnalyInfo = defaultEdition; |
| | | } |
| | | |
| | | var infoArry = logicAnalyInfo.Split('|').ToList(); |
| | | foreach (var item in infoArry) |
| | | { |
| | | if (item == defaultEdition) |
| | | continue; |
| | | if (item.StartsWith(InfoTag_Station)) |
| | | { |
| | | AnalyInfo = $"{AnalyInfo}|{item}"; |
| | | } |
| | | } |
| | | |
| | | if (AnalyInfo == defaultEdition) |
| | | { |
| | | AnalyInfo = null; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取错误信息 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public List<long> GetStatioinIds() |
| | | { |
| | | if (string.IsNullOrEmpty(this.AnalyInfo)) |
| | | return default; |
| | | var list = new List<long>(); |
| | | var infoArry = AnalyInfo.Split('|').ToList(); |
| | | foreach (var item in infoArry) |
| | | { |
| | | if (item.StartsWith(InfoTag_Station)) |
| | | { |
| | | var valueArr = item.Split(':'); |
| | | if (valueArr != null && valueArr.Count() > 1) |
| | | { |
| | | var stationId = valueArr[1]; |
| | | if (long.TryParse(stationId, out long id)) |
| | | { |
| | | list.Add(id); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | return list; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取错误信息 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public List<long> GetPumpIds() |
| | | { |
| | | if (string.IsNullOrEmpty(this.AnalyInfo)) |
| | | return default; |
| | | var list = new List<long>(); |
| | | var infoArry = AnalyInfo.Split('|').ToList(); |
| | | foreach (var item in infoArry) |
| | | { |
| | | var valueArr = item.Split(':'); |
| | | if (valueArr != null && valueArr.Count() > 2) |
| | | { |
| | | var pumpId = valueArr[2]; |
| | | if (long.TryParse(pumpId, out long id)) |
| | | { |
| | | list.Add(id); |
| | | } |
| | | } |
| | | } |
| | | return list; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取错误信息 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public string GetAnaInfoCN() |
| | | { |
| | | var errCN = string.Empty; |
| | | if (string.IsNullOrEmpty(this.AnalyInfo)) |
| | | return string.Empty; |
| | | var tagList = new List<string>(); |
| | | var infoArry = AnalyInfo.Split('|').ToList(); |
| | | foreach (var item in infoArry) |
| | | { |
| | | if (item == "V1") |
| | | continue; |
| | | var valueList = item.Split(':'); |
| | | if (valueList != null && valueList.Count() > 0) |
| | | { |
| | | if (valueList.Count() > 2) |
| | | continue; |
| | | var tag = valueList[0]; |
| | | tagList.Add(tag); |
| | | } |
| | | } |
| | | |
| | | if (tagList.Count < 1) |
| | | return default; |
| | | foreach (var item in tagList) |
| | | { |
| | | errCN += GetAnaTagCN(item) + "、"; |
| | | } |
| | | |
| | | return errCN.Substring(0, errCN.Length - 1) + "测点异常!"; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取分析错误类型 |
| | | /// </summary> |
| | | public string GetAnaTagCN(string anaTag) |
| | | { |
| | | var tagCN = "未知"; |
| | | switch (anaTag) |
| | | { |
| | | case InfoTag_RU: tagCN = "运行状态"; break; |
| | | case InfoTag_HZ: tagCN = "频率"; break; |
| | | case InfoTag_Qa: tagCN = "流量"; break; |
| | | case InfoTag_Ha: tagCN = "扬程"; break; |
| | | case InfoTag_P1: tagCN = "进口压力"; break; |
| | | case InfoTag_P2: tagCN = "出口压力"; break; |
| | | case InfoTag_Pa: tagCN = "功率"; break; |
| | | case InfoTag_Ea: tagCN = "效率"; break; |
| | | case InfoTag_Ia: tagCN = "电流"; break; |
| | | case InfoTag_Curve: tagCN = "曲线"; break; |
| | | } |
| | | |
| | | return tagCN; |
| | | } |
| | | #endregion |
| | | |
| | | |
| | | |
| | | |
| | | #region 计算 |
| | |
| | | public bool CalcUnitPower() |
| | | { |
| | | Calcu_WP(); |
| | | return Calcu_UWP(); |
| | | return Calcu_UWP(); |
| | | } |
| | | /// <summary> |
| | | /// |