lixiaojun
2025-01-22 d50162a99d326d4cd7b08f94fc6a57e8348a271a
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>
        /// 获取属性状态信息
@@ -62,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>
@@ -110,6 +128,40 @@
            }
            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);
        }