qin
2025-03-18 fd206ba4e3e792eb01898fea540d50c2fd92f364
WinFrmUI/Yw.WinFrmUI.Hydro.Core/00-core/03-helper/HydroPropStatusHelper.cs
@@ -24,6 +24,38 @@
        private Yw.Model.HydroModelInfo _hydroInfo = null;//水力信息
        private Dictionary<string, List<Yw.Model.HydroParterPropStatusInfo>> _dict = null;//字典
        private Dictionary<string, List<Yw.Model.HydroParterPropStatusInfo>> _dictUpdate = null;//更新字典
        /// <summary>
        /// 获取属性状态信息
        /// </summary>
        public HydroParterPropStatusInfo GetPropStatusInfo(string code, string propNameInfo)
        {
            if (string.IsNullOrEmpty(code))
            {
                return default;
            }
            if (string.IsNullOrEmpty(propNameInfo))
            {
                return default;
            }
            if (_dict == null)
            {
                _dict = new Dictionary<string, List<Model.HydroParterPropStatusInfo>>();
            }
            if (!_dict.ContainsKey(code))
            {
                _dict.Add(code, new List<Model.HydroParterPropStatusInfo>());
            }
            if (_dict[code] == null)
            {
                _dict[code] = new List<Model.HydroParterPropStatusInfo>();
            }
            var list = _dict[code];
            var propStatusInfo = list.Find(x => x.PropName == propNameInfo);
            return propStatusInfo;
        }
        /// <summary>
        /// 获取属性状态Db列表
@@ -31,6 +63,23 @@
        public List<Yw.Model.HydroParterPropStatusInfo> GetPropStatusDbList()
        {
            return _hydroInfo.ToPropStatusDbList(_dict);
        }
        /// <summary>
        /// 获取更新属性状态Db列表
        /// </summary>
        /// <returns></returns>
        public List<Yw.Model.HydroParterPropStatusInfo> GetUpdatePropStatusDbList()
        {
            return _hydroInfo.ToPropStatusDbList(_dictUpdate);
        }
        /// <summary>
        /// 重置
        /// </summary>
        public void Reset()
        {
            _dictUpdate?.Clear();
        }
        /// <summary>
@@ -70,11 +119,49 @@
            var propStatusInfo = list.Find(x => x.PropName == propNameInfo);
            if (propStatusInfo == null)
            {
                propStatusInfo.Parter = code;
                propStatusInfo.PropName = propNameInfo;
                propStatusInfo = new HydroParterPropStatusInfo()
                {
                    Parter = code,
                    PropName = propNameInfo
                };
                list.Add(propStatusInfo);
            }
            propStatusInfo.PropStatus = propStatus;
            propStatusInfo.StatusInfo = statusInfo;
            AppendUpdatePropStatus(propStatusInfo);
        }
        //附加更新属性状态
        private void AppendUpdatePropStatus(HydroParterPropStatusInfo propStatusInfo)
        {
            if (propStatusInfo == null)
            {
                return;
            }
            if (string.IsNullOrEmpty(propStatusInfo.Parter))
            {
                return;
            }
            if (string.IsNullOrEmpty(propStatusInfo.PropName))
            {
                return;
            }
            if (_dictUpdate == null)
            {
                _dictUpdate = new Dictionary<string, List<HydroParterPropStatusInfo>>();
            }
            if (!_dictUpdate.ContainsKey(propStatusInfo.Parter))
            {
                _dictUpdate.Add(propStatusInfo.Parter, new List<HydroParterPropStatusInfo>());
            }
            if (_dictUpdate[propStatusInfo.Parter] == null)
            {
                _dictUpdate[propStatusInfo.Parter] = new List<Model.HydroParterPropStatusInfo>();
            }
            var list = _dictUpdate[propStatusInfo.Parter];
            list.RemoveAll(x => x.PropName == propStatusInfo.PropName);
            list.Add(propStatusInfo);
        }