From 4efe844d9bcc03435cbbeb1aedbda5bf6ebf5912 Mon Sep 17 00:00:00 2001
From: ningshuxia <ningshuxia0927@outlook.com>
Date: 星期二, 22 十一月 2022 16:46:58 +0800
Subject: [PATCH] 数据对接

---
 Model/IStation.Model.Eta/eta_real/basic/EtaBasicRealRecord.cs |  283 ++++++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 242 insertions(+), 41 deletions(-)

diff --git a/Model/IStation.Model.Eta/eta_real/basic/EtaBasicRealRecord.cs b/Model/IStation.Model.Eta/eta_real/basic/EtaBasicRealRecord.cs
index a490e47..e6fadee 100644
--- a/Model/IStation.Model.Eta/eta_real/basic/EtaBasicRealRecord.cs
+++ b/Model/IStation.Model.Eta/eta_real/basic/EtaBasicRealRecord.cs
@@ -1,6 +1,7 @@
 锘縰sing System;
 using System.Collections.Generic;
 using System.Linq;
+using System.Reflection.Metadata;
 using System.Text;
 using System.Threading.Tasks;
 
@@ -121,6 +122,57 @@
         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>
@@ -136,6 +188,7 @@
                 AnalyInfo = string.Format("{0}|{1}:", AnalyInfo, tag);
             }
         }
+
         /// <summary>
         /// 娣诲姞AnalyInfo鏍囪瘑
         /// </summary>
@@ -166,6 +219,7 @@
                 }
             }
         }
+
         /// <summary>
         /// 娣诲姞AnalyInfo鏍囪瘑
         /// </summary>
@@ -177,7 +231,6 @@
                 return;
             }
             var sss = AnalyInfo.Split('|').ToList();
-
             for (int i = 0; i < sss.Count(); i++)
             {
                 if (sss[i].StartsWith(tag))
@@ -211,48 +264,196 @@
         }
 
         /// <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 璁$畻
@@ -313,7 +514,7 @@
         public bool CalcUnitPower()
         {
             Calcu_WP();
-            return  Calcu_UWP();
+            return Calcu_UWP();
         }
         /// <summary>
         /// 

--
Gitblit v1.9.3