cloudflight
2025-01-13 02c14c9c57dbde72d9c771bd8b0fab1cd023047d
WinFrmUI/Yw.WinFrmUI.Hydro.Core/00-core/03-helper/HydroPropStatusHelper.cs
@@ -24,6 +24,7 @@
        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>
        /// 获取属性状态信息
@@ -65,6 +66,23 @@
        }
        /// <summary>
        /// 获取更新属性状态Db列表
        /// </summary>
        /// <returns></returns>
        public List<Yw.Model.HydroParterPropStatusInfo> GetUpdatePropStatusDbList()
        {
            return _hydroInfo.ToPropStatusDbList(_dictUpdate);
        }
        /// <summary>
        /// 重置
        /// </summary>
        public void Reset()
        {
            _dictUpdate?.Clear();
        }
        /// <summary>
        /// 更新属性状态
        /// </summary>
        public void UpdatePropStatus(Yw.Model.HydroParterInfo parter, string propNameInfo, ePropStatus propStatus, string statusInfo)
@@ -101,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);
        }