lixiaojun
2024-12-23 b9c79f595e5ad4684d731f968bf120ff8c52dbd8
解决重复HydroInfo获取问题
已删除9个文件
已重命名20个文件
已修改10个文件
已添加1个文件
1405 ■■■■ 文件已修改
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/03-calcu/01-result/SimulationCalcuResultHelper.cs 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/04-monitor/02-value/SimulationMonitorValueHelper.cs 92 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/05-function/SimulationFunctionCtrl.cs 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/00-core/HydroMonitorPropHelper.cs 152 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/00-core/HydroMonitorValueExtensions.cs 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/01-set/SetHydroMonitorListCtrl.Designer.cs 153 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/01-set/SetHydroMonitorListCtrl.cs 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/01-set/SetHydroMonitorListCtrl.resx 123 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/01-set/SetHydroMonitorListDlg.Designer.cs 165 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/01-set/SetHydroMonitorListDlg.cs 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/01-set/SetHydroMonitorListDlg.resx 120 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/01-set/SetHydroMonitorViewModel.cs 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/01-value/HydroMonitorValueListCtrl.Designer.cs 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/01-value/HydroMonitorValueListCtrl.cs 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/01-value/HydroMonitorValueListCtrl.resx 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/01-value/HydroMonitorValueViewModel.cs 146 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/02-docking/HydroMonitorDockingViewModel.cs 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/02-docking/SetHydroMonitorDockingListCtrl.Designer.cs 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/02-docking/SetHydroMonitorDockingListCtrl.cs 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/02-docking/SetHydroMonitorDockingListCtrl.resx 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/02-docking/SetHydroMonitorDockingListDlg.Designer.cs 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/02-docking/SetHydroMonitorDockingListDlg.cs 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/02-docking/SetHydroMonitorDockingListDlg.resx 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/02-value/HydroMonitorValueViewModel.cs 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/03-analyse/HydroMonitorAnalyseViewModel.cs 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/03-analyse/SetHydroMonitorAnalyseListCtrl.Designer.cs 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/03-analyse/SetHydroMonitorAnalyseListCtrl.cs 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/03-analyse/SetHydroMonitorAnalyseListCtrl.resx 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/03-analyse/SetHydroMonitorAnalyseListDlg.Designer.cs 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/03-analyse/SetHydroMonitorAnalyseListDlg.cs 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/03-analyse/SetHydroMonitorAnalyseListDlg.resx 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/05-analy/HydroWorkingMonitorAnalyListCtrl.Designer.cs 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/05-analy/HydroWorkingMonitorAnalyListCtrl.cs 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/05-analy/HydroWorkingMonitorAnalyListCtrl.resx 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/16-evaluation/00-core/HydroWorkingMonitorEvaluationViewModel.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/16-evaluation/01-list/HydroWorkingMonitorEvaluationListCtrl.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/Properties/DataSources/Yw.WinFrmUI.SetHydroMonitorViewModel.datasource 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/Yw.WinFrmUI.Hydro.Core.csproj 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/Yw.WinFrmUI.Hydro.Core.csproj.user 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/03-calcu/01-result/SimulationCalcuResultHelper.cs
@@ -10,21 +10,29 @@
        /// <summary>
        /// 
        /// </summary>
        public SimulationCalcuResultHelper(SimulationWorkingHelper workingHelper)
        public SimulationCalcuResultHelper
            (
                SimulationWorkingHelper workingHelper
            )
        {
            _workingHelper = workingHelper;
            workingHelper.InitialEvent += () => Initial();
            Initial();
        }
        /// <summary>
        /// åˆå§‹åŒ–事件
        /// </summary>
        public event Action InitialEvent;
        private SimulationWorkingHelper _workingHelper = null;//工况辅助类
        private Dictionary<string, HydroCalcuVisualResult> _dict;//计算结果可见字典
        //初始化
        private void Initial()
        {
            _dict = _workingHelper.CalcuResult?.GetVisualDict();
            this.InitialEvent?.Invoke();
        }
        /// <summary>
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/04-monitor/02-value/SimulationMonitorValueHelper.cs
@@ -22,6 +22,7 @@
            _visualListHelper = visualListHelper;
            _monitorHelper = monitorHelper;
            _calcuResultHelper = calcuResultHelper;
            _calcuResultHelper.InitialEvent += async () => await Update();
        }
        private readonly SimulationVisualListHelper _visualListHelper = null;//可见列表辅助类
@@ -85,43 +86,24 @@
        /// <summary>
        /// æ›´æ–°
        /// </summary>
        public async void Update(string code, List<HydroMonitorVmo> monitorList)
        public async Task Update()
        {
            if (string.IsNullOrEmpty(code))
            var all = await GetAll();
            foreach (var item in all)
            {
                return;
            }
            var visual = _visualListHelper.GetVisual(code);
            if (visual == null)
            {
                return;
            }
            var allValueList = await GetAll();
            var valueList = allValueList.Where(x => x.Vmo.Relation == code).ToList();
            valueList.ForEach(x =>
            {
                var result = monitorList?.Exists(t => t.Relation == x.Vmo.Relation && t.PropName == x.Vmo.PropName);
                if (!(result.HasValue && result.Value))
                if (!item.PropValue.HasValue)
                {
                    allValueList.Remove(x);
                }
            });
            monitorList?.ForEach(x =>
            {
                var result = valueList?.Exists(t => t.Vmo.Relation == x.Relation && t.Vmo.PropName == x.PropName);
                if (!(result.HasValue && result.Value))
                {
                    double? propValue = null;
                    var calcuVisualResult = _calcuResultHelper.GetVisual(x.Relation);
                    var calcuVisualResult = _calcuResultHelper.GetVisual(item.Vmo.Relation);
                    if (calcuVisualResult != null)
                    {
                        propValue = calcuVisualResult.GetCalcuValue(x.PropName);
                        var propValue = calcuVisualResult.GetCalcuValue(item.Vmo.PropName);
                        if (propValue.HasValue)
                        {
                            item.UpdatePropValue(propValue.Value);
                        }
                    }
                    var vm = new HydroMonitorValueViewModel(x, visual, propValue);
                    allValueList.Add(vm);
                }
            });
            }
        }
        /// <summary>
@@ -138,56 +120,12 @@
        }
        /// <summary>
        /// æ›´æ–°
        /// </summary>
        public async void Update(string code, List<HydroMonitorVmo> monitorList, List<HydroMonitorDockingViewModel> monitorDockingList)
        {
            if (string.IsNullOrEmpty(code))
            {
                return;
            }
            var visual = _visualListHelper.GetVisual(code);
            if (visual == null)
            {
                return;
            }
            var allValueList = await GetAll();
            var valueList = allValueList.Where(x => x.Vmo.Relation == code).ToList();
            valueList.ForEach(x =>
            {
                var result = monitorList?.Exists(t => t.Relation == x.Vmo.Relation && t.PropName == x.Vmo.PropName);
                if (!(result.HasValue && result.Value))
                {
                    allValueList.Remove(x);
                }
            });
            monitorList?.ForEach(x =>
            {
                var result = valueList?.Exists(t => t.Vmo.Relation == x.Relation && t.Vmo.PropName == x.PropName);
                if (!(result.HasValue && result.Value))
                {
                    double? propValue = null;
                    var monitorDocking = monitorDockingList?.Find(t => t.Vmo.Relation == x.Relation && t.Vmo.PropName == x.PropName);
                    propValue = monitorDocking?.PropValue;
                    if (!propValue.HasValue)
                    {
                        var calcuVisualResult = _calcuResultHelper.GetVisual(x.Relation);
                        propValue = calcuVisualResult?.GetCalcuValue(x.PropName);
                    }
                    var vm = new HydroMonitorValueViewModel(x, visual, propValue);
                    allValueList.Add(vm);
                }
            });
        }
        /// <summary>
        /// é‡ç½®
        /// </summary>
        public async void Reset(List<HydroWorkingMonitorViewModel> allWorkingMonitorList)
        public async Task Reset(List<HydroWorkingMonitorViewModel> allWorkingMonitorList)
        {
            var allMonitorValueList = await GetAll();
            allMonitorValueList.UpdateMonitorValue(allWorkingMonitorList);
            var all = await GetAll();
            all.UpdateMonitorValue(allWorkingMonitorList);
        }
        /// <summary>
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/05-function/SimulationFunctionCtrl.cs
@@ -3,6 +3,7 @@
using DevExpress.Utils.Extensions;
using DevExpress.Utils.Svg;
using DevExpress.XtraCharts;
using System.Collections.Concurrent;
using Yw.DAL.Basic;
using Yw.Vmo;
@@ -67,7 +68,7 @@
        private Dictionary<HydroWorkingVmo, bool> _allWorkingCheckedListDict = null;//所有工况选择列表字典
        private Dictionary<XhsSchemeVmo, Yw.Model.HydroModelInfo> _allSchemeHydroInfoDict = null;//所有方案水力信息列表
        private Dictionary<XhsSchemeVmo, Dictionary<HydroWorkingVmo, bool>> _allSchemeWorkingCheckedListDict = null;//所有方案工况选择列表字典
        private readonly object _locker = new();//锁定对象
        private ConcurrentDictionary<string, bool> _gettingHydroInfoDict = new ConcurrentDictionary<string, bool>();//获取水力信息字典
        /// <summary>
        /// ç»‘定数据
@@ -209,6 +210,10 @@
                    if (_hydroInfo == null)
                    {
                        hydroInfo = await GetHydroInfo(null);
                        if (hydroInfo == null)
                        {
                            return default;
                        }
                        if (_hydroInfo == null)
                        {
                            _hydroInfo = hydroInfo;
@@ -230,6 +235,10 @@
                if (!_allSchemeHydroInfoDict.ContainsKey(scheme))
                {
                    hydroInfo = await GetHydroInfo(scheme);
                    if (hydroInfo == null)
                    {
                        return default;
                    }
                    if (!_allSchemeHydroInfoDict.ContainsKey(scheme))
                    {
                        _allSchemeHydroInfoDict.Add(scheme, hydroInfo);
@@ -261,6 +270,18 @@
            {
                return default;
            }
            string key = $"{_project.ID}-{_projectSite.ID}-{scheme?.ID}";
            if (_gettingHydroInfoDict.TryGetValue(key, out bool getting))
            {
                if (getting)
                {
                    return default;
                }
            }
            if (!_gettingHydroInfoDict.TryAdd(key, true))
            {
                _gettingHydroInfoDict[key] = true;
            }
            HydroModelRelationVmo relation = null;
            if (scheme == null)
@@ -278,6 +299,7 @@
                return default;
            }
            var hydroInfo = await BLLFactory<Yw.BLL.HydroModelInfo>.Instance.GetByID(relation.ModelID);
            _gettingHydroInfoDict[key] = false;
            return hydroInfo;
        }
@@ -500,6 +522,10 @@
                elementWorking.Click += async (sender, e) =>
                {
                    var hydroInfo = await GetHydroInfo(null, true);
                    if (hydroInfo == null)
                    {
                        return;
                    }
                    this.ShowProjectSiteWorkingEvent?.Invoke(_project, _projectSite, null, hydroInfo, working, this.svgImg32[4]);
                };
                this.elementProjectSiteSimulation.Elements.Add(elementWorking);
@@ -550,6 +576,10 @@
                elementWorking.Click += async (sender, e) =>
                {
                    var hydroInfo = await GetHydroInfo(scheme, true);
                    if (hydroInfo == null)
                    {
                        return;
                    }
                    this.ShowProjectSiteWorkingEvent?.Invoke(_project, _projectSite, scheme, hydroInfo, working, this.svgImg32[4]);
                };
                elementScheme.Elements.Add(elementWorking);
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs
@@ -1878,10 +1878,11 @@
                this.controlContainerBottom.Controls.Clear();
                this.controlContainerBottom.Controls.Add(monitorValueListCtrl);
                this.docPnlBottom.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Visible;
                this.docPnlBottom.Text = "监测值";
                this.docPnlBottom.Text = "传感器测值";
                this.docPnlBottom.Height = 350;
            }
            var allValueList = await GetMonitorDockingValueList();
            var calcuResult = GetCalcuResult();
            monitorValueListCtrl.SetBindingData(allValueList);
        }
@@ -2547,7 +2548,7 @@
            AddWorking();
        }
        #endregion å½“前工况
        #endregion
        #region é€‰æ‹©å·¥å†µ
@@ -2716,8 +2717,7 @@
        //精度评估
        private async void barBtnWorkingEvaluation_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            var monitorHelper = GetMonitorHelper();
            var allMonitorList = await monitorHelper.GetAll();
            var allMonitorList = await GetMonitorDockingList();
            var workingCheckedListHelper = GetWorkingCheckedListHelper();
            var allCheckedWorkingList = workingCheckedListHelper.GetCheckedWorkingList();
WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/00-core/HydroMonitorPropHelper.cs
@@ -174,158 +174,6 @@
        }
        /// <summary>
        /// èŽ·å–åç§°å­—å…¸
        /// </summary>
        public static Dictionary<string, string> GetNameDict(string catalog)
        {
            if (string.IsNullOrEmpty(catalog))
            {
                return default;
            }
            var dict = new Dictionary<string, string>();
            switch (catalog)
            {
                case Yw.Hydro.ParterCatalog.Reservoir:
                    {
                        dict.Add(MonitorProp.CalcuL, MonitorPropHelper.GetName(MonitorProp.CalcuL));
                    }
                    break;
                case Yw.Hydro.ParterCatalog.Tank:
                    {
                        dict.Add(MonitorProp.CalcuL, MonitorPropHelper.GetName(MonitorProp.CalcuL));
                    }
                    break;
                case Yw.Hydro.ParterCatalog.Waterbox:
                    {
                        dict.Add(MonitorProp.CalcuL, MonitorPropHelper.GetName(MonitorProp.CalcuL));
                    }
                    break;
                case ParterCatalog.Junction:
                    {
                        dict.Add(MonitorProp.CalcuPr, MonitorPropHelper.GetName(MonitorProp.CalcuPr));
                    }
                    break;
                case Yw.Hydro.ParterCatalog.Blunthead:
                    {
                        dict.Add(MonitorProp.CalcuPr, MonitorPropHelper.GetName(MonitorProp.CalcuPr));
                    }
                    break;
                case Yw.Hydro.ParterCatalog.Elbow:
                    {
                        dict.Add(MonitorProp.CalcuPr, MonitorPropHelper.GetName(MonitorProp.CalcuPr));
                    }
                    break;
                case Yw.Hydro.ParterCatalog.Threelink:
                    {
                        dict.Add(MonitorProp.CalcuPr, MonitorPropHelper.GetName(MonitorProp.CalcuPr));
                    }
                    break;
                case Yw.Hydro.ParterCatalog.Fourlink:
                    {
                        dict.Add(MonitorProp.CalcuPr, MonitorPropHelper.GetName(MonitorProp.CalcuPr));
                    }
                    break;
                case Yw.Hydro.ParterCatalog.Nozzle:
                    {
                        dict.Add(MonitorProp.CalcuPr, MonitorPropHelper.GetName(MonitorProp.CalcuPr));
                    }
                    break;
                case Yw.Hydro.ParterCatalog.Hydrant:
                    {
                        dict.Add(MonitorProp.CalcuPr, MonitorPropHelper.GetName(MonitorProp.CalcuPr));
                    }
                    break;
                case Yw.Hydro.ParterCatalog.Meter:
                    {
                        dict.Add(MonitorProp.CalcuPr, MonitorPropHelper.GetName(MonitorProp.CalcuPr));
                    }
                    break;
                case Yw.Hydro.ParterCatalog.Flowmeter:
                    {
                        dict.Add(MonitorProp.CalcuPr, MonitorPropHelper.GetName(MonitorProp.CalcuPr));
                    }
                    break;
                case Yw.Hydro.ParterCatalog.Pressmeter:
                    {
                        dict.Add(MonitorProp.CalcuPr, MonitorPropHelper.GetName(MonitorProp.CalcuPr));
                    }
                    break;
                case Yw.Hydro.ParterCatalog.Pipe:
                    {
                        dict.Add(MonitorProp.CalcuQ, MonitorPropHelper.GetName(MonitorProp.CalcuQ));
                    }
                    break;
                case Yw.Hydro.ParterCatalog.Translation:
                    {
                        dict.Add(MonitorProp.CalcuQ, MonitorPropHelper.GetName(MonitorProp.CalcuQ));
                    }
                    break;
                case Yw.Hydro.ParterCatalog.Pump:
                    {
                        dict.Add(MonitorProp.CalcuQ, MonitorPropHelper.GetName(MonitorProp.CalcuQ));
                        dict.Add(MonitorProp.CalcuPr1, MonitorPropHelper.GetName(MonitorProp.CalcuPr1));
                        dict.Add(MonitorProp.CalcuPr2, MonitorPropHelper.GetName(MonitorProp.CalcuPr2));
                        dict.Add(MonitorProp.CalcuPrd, MonitorPropHelper.GetName(MonitorProp.CalcuPrd));
                        dict.Add(MonitorProp.CalcuO1, MonitorPropHelper.GetName(MonitorProp.CalcuO1));
                        dict.Add(MonitorProp.CalcuO2, MonitorPropHelper.GetName(MonitorProp.CalcuO2));
                        dict.Add(MonitorProp.CalcuH, MonitorPropHelper.GetName(MonitorProp.CalcuH));
                        dict.Add(MonitorProp.CalcuP, MonitorPropHelper.GetName(MonitorProp.CalcuP));
                        dict.Add(MonitorProp.CalcuE, MonitorPropHelper.GetName(MonitorProp.CalcuE));
                    }
                    break;
                case Yw.Hydro.ParterCatalog.Valve:
                    {
                        dict.Add(MonitorProp.CalcuQ, MonitorPropHelper.GetName(MonitorProp.CalcuQ));
                        dict.Add(MonitorProp.CalcuPr1, MonitorPropHelper.GetName(MonitorProp.CalcuPr1));
                        dict.Add(MonitorProp.CalcuPr2, MonitorPropHelper.GetName(MonitorProp.CalcuPr2));
                        dict.Add(MonitorProp.CalcuO, MonitorPropHelper.GetName(MonitorProp.CalcuO));
                    }
                    break;
                case Yw.Hydro.ParterCatalog.Resistance:
                    {
                        dict.Add(MonitorProp.CalcuQ, MonitorPropHelper.GetName(MonitorProp.CalcuQ));
                        dict.Add(MonitorProp.CalcuPr1, MonitorPropHelper.GetName(MonitorProp.CalcuPr1));
                        dict.Add(MonitorProp.CalcuPr2, MonitorPropHelper.GetName(MonitorProp.CalcuPr2));
                        dict.Add(MonitorProp.CalcuPrd, MonitorPropHelper.GetName(MonitorProp.CalcuPrd));
                        dict.Add(MonitorProp.CalcuO1, MonitorPropHelper.GetName(MonitorProp.CalcuO1));
                        dict.Add(MonitorProp.CalcuO2, MonitorPropHelper.GetName(MonitorProp.CalcuO2));
                        dict.Add(MonitorProp.CalcuT1, MonitorPropHelper.GetName(MonitorProp.CalcuT1));
                        dict.Add(MonitorProp.CalcuT2, MonitorPropHelper.GetName(MonitorProp.CalcuT2));
                        dict.Add(MonitorProp.CalcuTd, MonitorPropHelper.GetName(MonitorProp.CalcuTd));
                    }
                    break;
                case Yw.Hydro.ParterCatalog.Exchanger:
                    {
                        dict.Add(MonitorProp.CalcuQ, MonitorPropHelper.GetName(MonitorProp.CalcuQ));
                        dict.Add(MonitorProp.CalcuPr1, MonitorPropHelper.GetName(MonitorProp.CalcuPr1));
                        dict.Add(MonitorProp.CalcuPr2, MonitorPropHelper.GetName(MonitorProp.CalcuPr2));
                        dict.Add(MonitorProp.CalcuPrd, MonitorPropHelper.GetName(MonitorProp.CalcuPrd));
                        dict.Add(MonitorProp.CalcuO1, MonitorPropHelper.GetName(MonitorProp.CalcuO1));
                        dict.Add(MonitorProp.CalcuO2, MonitorPropHelper.GetName(MonitorProp.CalcuO2));
                        dict.Add(MonitorProp.CalcuT1, MonitorPropHelper.GetName(MonitorProp.CalcuT1));
                        dict.Add(MonitorProp.CalcuT2, MonitorPropHelper.GetName(MonitorProp.CalcuT2));
                        dict.Add(MonitorProp.CalcuTd, MonitorPropHelper.GetName(MonitorProp.CalcuTd));
                    }
                    break;
                case Yw.Hydro.ParterCatalog.Compressor:
                    {
                        dict.Add(MonitorProp.CalcuQ, MonitorPropHelper.GetName(MonitorProp.CalcuQ));
                        dict.Add(MonitorProp.CalcuPr1, MonitorPropHelper.GetName(MonitorProp.CalcuPr1));
                        dict.Add(MonitorProp.CalcuPr2, MonitorPropHelper.GetName(MonitorProp.CalcuPr2));
                        dict.Add(MonitorProp.CalcuPrd, MonitorPropHelper.GetName(MonitorProp.CalcuPrd));
                        dict.Add(MonitorProp.CalcuO1, MonitorPropHelper.GetName(MonitorProp.CalcuO1));
                        dict.Add(MonitorProp.CalcuO2, MonitorPropHelper.GetName(MonitorProp.CalcuO2));
                        dict.Add(MonitorProp.CalcuT1, MonitorPropHelper.GetName(MonitorProp.CalcuT1));
                        dict.Add(MonitorProp.CalcuT2, MonitorPropHelper.GetName(MonitorProp.CalcuT2));
                        dict.Add(MonitorProp.CalcuTd, MonitorPropHelper.GetName(MonitorProp.CalcuTd));
                    }
                    break;
                default: break;
            }
            return dict;
        }
        /// <summary>
        /// èŽ·å–åç§°
        /// </summary>
        public static string GetName(string code)
WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/00-core/HydroMonitorValueExtensions.cs
@@ -9,9 +9,9 @@
        /// <summary>
        /// æ›´æ–°ç›‘测值列表
        /// </summary>
        public static void UpdateMonitorValue(this List<HydroMonitorValueViewModel> allMonitorValueList, string monitorInfo)
        public static void UpdateMonitorValue(this List<HydroMonitorValueViewModel> all, string monitorInfo)
        {
            if (allMonitorValueList == null || allMonitorValueList.Count < 1)
            if (all == null || all.Count < 1)
            {
                return;
            }
@@ -20,19 +20,19 @@
                return;
            }
            var allWorkingMonitorList = JsonHelper.Json2Object<List<HydroWorkingMonitorViewModel>>(monitorInfo);
            if (allWorkingMonitorList == null || allWorkingMonitorList.Count < 1)
            {
                return;
            }
            allMonitorValueList.UpdateMonitorValue(allWorkingMonitorList);
            all.UpdateMonitorValue(allWorkingMonitorList);
        }
        /// <summary>
        /// æ›´æ–°ç›‘测值列表
        /// </summary>
        public static void UpdateMonitorValue(this List<HydroMonitorValueViewModel> allMonitorValueList, List<HydroWorkingMonitorViewModel> allWorkingMonitorList)
        public static void UpdateMonitorValue
            (
                this List<HydroMonitorValueViewModel> all,
                List<HydroWorkingMonitorViewModel> allWorkingMonitorList
            )
        {
            if (allMonitorValueList == null || allMonitorValueList.Count < 1)
            if (all == null || all.Count < 1)
            {
                return;
            }
@@ -40,12 +40,12 @@
            {
                return;
            }
            foreach (var monitorValue in allMonitorValueList)
            foreach (var monitorValue in all)
            {
                var workingMonitor = allWorkingMonitorList.Find(x => x.Relation == monitorValue.Vmo.Relation && x.PropName == monitorValue.Vmo.PropName);
                if (workingMonitor != null)
                {
                    monitorValue.PropValue = workingMonitor.PropValue;
                    monitorValue.UpdatePropValue(workingMonitor.PropValue);
                }
            }
        }
WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/01-set/SetHydroMonitorListCtrl.Designer.cs
ÎļþÒÑɾ³ý
WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/01-set/SetHydroMonitorListCtrl.cs
ÎļþÒÑɾ³ý
WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/01-set/SetHydroMonitorListCtrl.resx
ÎļþÒÑɾ³ý
WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/01-set/SetHydroMonitorListDlg.Designer.cs
ÎļþÒÑɾ³ý
WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/01-set/SetHydroMonitorListDlg.cs
ÎļþÒÑɾ³ý
WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/01-set/SetHydroMonitorListDlg.resx
ÎļþÒÑɾ³ý
WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/01-set/SetHydroMonitorViewModel.cs
ÎļþÒÑɾ³ý
WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/01-value/HydroMonitorValueListCtrl.Designer.cs
WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/01-value/HydroMonitorValueListCtrl.cs
WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/01-value/HydroMonitorValueListCtrl.resx
WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/01-value/HydroMonitorValueViewModel.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,146 @@
namespace Yw.WinFrmUI
{
    /// <summary>
    ///
    /// </summary>
    public class HydroMonitorValueViewModel
    {
        /// <summary>
        ///
        /// </summary>
        public HydroMonitorValueViewModel() { }
        /// <summary>
        ///
        /// </summary>
        public HydroMonitorValueViewModel
            (
                Yw.Vmo.HydroMonitorVmo vmo,
                Yw.Model.HydroVisualInfo visual,
                double? propValue
            )
        {
            this.Relation = visual.Name;
            this.PropName = HydroMonitorPropHelper.GetName(vmo.PropName);
            this.UnitName = HydroMonitorPropHelper.GetUnit(vmo.PropName);
            this.Flags = Yw.Untity.FlagsHelper.ToString(vmo.Flags);
            this.SortCode = vmo.SortCode;
            this.Description = vmo.Description;
            this.Vmo = vmo;
            if (propValue.HasValue)
            {
                UpdatePropValue(propValue.Value);
            }
        }
        /// <summary>
        /// æž„ä»¶
        /// </summary>
        [DisplayName("构件")]
        public string Relation { get; set; }
        /// <summary>
        /// åç§°
        /// </summary>
        [DisplayName("名称")]
        public string PropName { get; set; }
        /// <summary>
        /// ç›‘测值
        /// </summary>
        [DisplayName("监测值")]
        public double? PropValue { get; set; }
        /// <summary>
        /// å•位
        /// </summary>
        [DisplayName("单位")]
        public string UnitName { get; set; }
        /// <summary>
        /// æ ‡ç­¾
        /// </summary>
        [DisplayName("标签")]
        public string Flags { get; set; }
        /// <summary>
        /// æŽ’序码
        /// </summary>
        public int SortCode { get; set; }
        /// <summary>
        /// è¯´æ˜Ž
        /// </summary>
        [DisplayName("说明")]
        public string Description { get; set; }
        /// <summary>
        /// vmo
        /// </summary>
        public Yw.Vmo.HydroMonitorVmo Vmo { get; set; }
        /// <summary>
        /// æ›´æ–°å±žæ€§å€¼
        /// </summary>
        public void UpdatePropValue(double propValue)
        {
            switch (this.Vmo.PropName)
            {
                case Yw.Hydro.MonitorProp.CalcuQ:
                    {
                        this.PropValue = Math.Round(propValue, 1);
                    }
                    break;
                case Yw.Hydro.MonitorProp.CalcuP:
                    {
                        this.PropValue = Math.Round(propValue, 1);
                    }
                    break;
                case Yw.Hydro.MonitorProp.CalcuE:
                    {
                        this.PropValue = Math.Round(propValue, 1);
                    }
                    break;
                case Yw.Hydro.MonitorProp.CalcuPr:
                    {
                        this.PropValue = Math.Round(propValue, 2);
                    }
                    break;
                case Yw.Hydro.MonitorProp.CalcuO:
                    {
                        this.PropValue = Math.Round(propValue, 0);
                    }
                    break;
                case Yw.Hydro.MonitorProp.CalcuO1:
                    {
                        this.PropValue = Math.Round(propValue, 0);
                    }
                    break;
                case Yw.Hydro.MonitorProp.CalcuO2:
                    {
                        this.PropValue = Math.Round(propValue, 0);
                    }
                    break;
                default: this.PropValue = Math.Round(propValue, 2); break;
            }
        }
        /// <summary>
        /// æ›´æ–°å±žæ€§å€¼
        /// </summary>
        public void UpdatePropValue(double? propValue)
        {
            this.PropValue = propValue;
            if (propValue.HasValue)
            {
                UpdatePropValue(propValue.Value);
            }
        }
    }
}
WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/02-docking/HydroMonitorDockingViewModel.cs
WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/02-docking/SetHydroMonitorDockingListCtrl.Designer.cs
WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/02-docking/SetHydroMonitorDockingListCtrl.cs
WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/02-docking/SetHydroMonitorDockingListCtrl.resx
WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/02-docking/SetHydroMonitorDockingListDlg.Designer.cs
ÎļþÃû´Ó WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/04-docking/SetHydroMonitorDockingListDlg.Designer.cs ÐÞ¸Ä
@@ -32,10 +32,10 @@
            ribbonPage1 = new DevExpress.XtraBars.Ribbon.RibbonPage();
            ribbonPageGroup1 = new DevExpress.XtraBars.Ribbon.RibbonPageGroup();
            layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
            setHydroMonitorDockingListCtrl1 = new SetHydroMonitorDockingListCtrl();
            generalOkAndCancelCtrl1 = new GeneralOkAndCancelCtrl();
            Root = new DevExpress.XtraLayout.LayoutControlGroup();
            layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
            setHydroMonitorDockingListCtrl1 = new SetHydroMonitorDockingListCtrl();
            layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
            ((ISupportInitialize)ribbon).BeginInit();
            ((ISupportInitialize)layoutControl1).BeginInit();
@@ -81,6 +81,13 @@
            layoutControl1.TabIndex = 2;
            layoutControl1.Text = "layoutControl1";
            // 
            // setHydroMonitorDockingListCtrl1
            //
            setHydroMonitorDockingListCtrl1.Location = new Point(12, 12);
            setHydroMonitorDockingListCtrl1.Name = "setHydroMonitorDockingListCtrl1";
            setHydroMonitorDockingListCtrl1.Size = new Size(918, 311);
            setHydroMonitorDockingListCtrl1.TabIndex = 9;
            //
            // generalOkAndCancelCtrl1
            // 
            generalOkAndCancelCtrl1.ButtonCancelMaxSize = new Size(100, 26);
@@ -113,13 +120,6 @@
            layoutControlItem2.TextSize = new Size(0, 0);
            layoutControlItem2.TextVisible = false;
            // 
            // setHydroMonitorDockingListCtrl1
            //
            setHydroMonitorDockingListCtrl1.Location = new Point(12, 12);
            setHydroMonitorDockingListCtrl1.Name = "setHydroMonitorDockingListCtrl1";
            setHydroMonitorDockingListCtrl1.Size = new Size(918, 311);
            setHydroMonitorDockingListCtrl1.TabIndex = 9;
            //
            // layoutControlItem1
            // 
            layoutControlItem1.Control = setHydroMonitorDockingListCtrl1;
@@ -141,7 +141,7 @@
            Ribbon = ribbon;
            RibbonVisibility = DevExpress.XtraBars.Ribbon.RibbonVisibility.Hidden;
            StartPosition = FormStartPosition.CenterParent;
            Text = "监测点";
            Text = "传感器测点";
            ((ISupportInitialize)ribbon).EndInit();
            ((ISupportInitialize)layoutControl1).EndInit();
            layoutControl1.ResumeLayout(false);
WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/02-docking/SetHydroMonitorDockingListDlg.cs
WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/02-docking/SetHydroMonitorDockingListDlg.resx
WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/02-value/HydroMonitorValueViewModel.cs
ÎļþÒÑɾ³ý
WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/03-analyse/HydroMonitorAnalyseViewModel.cs
WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/03-analyse/SetHydroMonitorAnalyseListCtrl.Designer.cs
WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/03-analyse/SetHydroMonitorAnalyseListCtrl.cs
WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/03-analyse/SetHydroMonitorAnalyseListCtrl.resx
WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/03-analyse/SetHydroMonitorAnalyseListDlg.Designer.cs
ÎļþÃû´Ó WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/05-analyse/SetHydroMonitorAnalyseListDlg.Designer.cs ÐÞ¸Ä
@@ -32,10 +32,10 @@
            ribbonPage1 = new DevExpress.XtraBars.Ribbon.RibbonPage();
            ribbonPageGroup1 = new DevExpress.XtraBars.Ribbon.RibbonPageGroup();
            layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
            setHydroMonitorAnalyseListCtrl1 = new SetHydroMonitorAnalyseListCtrl();
            generalOkAndCancelCtrl1 = new GeneralOkAndCancelCtrl();
            Root = new DevExpress.XtraLayout.LayoutControlGroup();
            layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
            setHydroMonitorAnalyseListCtrl1 = new SetHydroMonitorAnalyseListCtrl();
            layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
            ((ISupportInitialize)ribbon).BeginInit();
            ((ISupportInitialize)layoutControl1).BeginInit();
@@ -81,6 +81,13 @@
            layoutControl1.TabIndex = 2;
            layoutControl1.Text = "layoutControl1";
            // 
            // setHydroMonitorAnalyseListCtrl1
            //
            setHydroMonitorAnalyseListCtrl1.Location = new Point(12, 12);
            setHydroMonitorAnalyseListCtrl1.Name = "setHydroMonitorAnalyseListCtrl1";
            setHydroMonitorAnalyseListCtrl1.Size = new Size(918, 311);
            setHydroMonitorAnalyseListCtrl1.TabIndex = 9;
            //
            // generalOkAndCancelCtrl1
            // 
            generalOkAndCancelCtrl1.ButtonCancelMaxSize = new Size(100, 26);
@@ -113,13 +120,6 @@
            layoutControlItem2.TextSize = new Size(0, 0);
            layoutControlItem2.TextVisible = false;
            // 
            // setHydroMonitorDockingListCtrl1
            //
            setHydroMonitorAnalyseListCtrl1.Location = new Point(12, 12);
            setHydroMonitorAnalyseListCtrl1.Name = "setHydroMonitorDockingListCtrl1";
            setHydroMonitorAnalyseListCtrl1.Size = new Size(918, 311);
            setHydroMonitorAnalyseListCtrl1.TabIndex = 9;
            //
            // layoutControlItem1
            // 
            layoutControlItem1.Control = setHydroMonitorAnalyseListCtrl1;
@@ -129,7 +129,7 @@
            layoutControlItem1.TextSize = new Size(0, 0);
            layoutControlItem1.TextVisible = false;
            // 
            // SetHydroMonitorDockingListDlg
            // SetHydroMonitorAnalyseListDlg
            // 
            AutoScaleDimensions = new SizeF(7F, 14F);
            AutoScaleMode = AutoScaleMode.Font;
@@ -137,11 +137,11 @@
            Controls.Add(layoutControl1);
            Controls.Add(ribbon);
            FormBorderStyle = FormBorderStyle.SizableToolWindow;
            Name = "SetHydroMonitorDockingListDlg";
            Name = "SetHydroMonitorAnalyseListDlg";
            Ribbon = ribbon;
            RibbonVisibility = DevExpress.XtraBars.Ribbon.RibbonVisibility.Hidden;
            StartPosition = FormStartPosition.CenterParent;
            Text = "监测点";
            Text = "分析测点";
            ((ISupportInitialize)ribbon).EndInit();
            ((ISupportInitialize)layoutControl1).EndInit();
            layoutControl1.ResumeLayout(false);
WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/03-analyse/SetHydroMonitorAnalyseListDlg.cs
WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/03-analyse/SetHydroMonitorAnalyseListDlg.resx
WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/05-analy/HydroWorkingMonitorAnalyListCtrl.Designer.cs
WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/05-analy/HydroWorkingMonitorAnalyListCtrl.cs
WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/05-analy/HydroWorkingMonitorAnalyListCtrl.resx
WinFrmUI/Yw.WinFrmUI.Hydro.Core/16-evaluation/00-core/HydroWorkingMonitorEvaluationViewModel.cs
@@ -24,9 +24,9 @@
            )
        {
            this.EvaluateName = visual.Name;
            this.EvaluateItem = HydroVisualCalcuPropHelper.GetName(monitor.PropName);
            this.EvaluateItem = HydroMonitorPropHelper.GetName(monitor.PropName);
            this.PropName = monitor.PropName;
            this.UnitName = HydroVisualCalcuPropHelper.GetUnit(monitor.PropName);
            this.UnitName = HydroMonitorPropHelper.GetUnit(monitor.PropName);
            this.MonitorValue = workingMonitor.PropValue;
            if (this.MonitorValue.HasValue)
            {
WinFrmUI/Yw.WinFrmUI.Hydro.Core/16-evaluation/01-list/HydroWorkingMonitorEvaluationListCtrl.cs
@@ -29,8 +29,6 @@
        private List<HydroWorkingMonitorEvaluationViewModel> _allBindingList = null;//所有绑定列表
        /// <summary>
        /// ç»‘定数据
        /// </summary>
WinFrmUI/Yw.WinFrmUI.Hydro.Core/Properties/DataSources/Yw.WinFrmUI.SetHydroMonitorViewModel.datasource
ÎļþÒÑɾ³ý
WinFrmUI/Yw.WinFrmUI.Hydro.Core/Yw.WinFrmUI.Hydro.Core.csproj
@@ -191,19 +191,16 @@
        <Compile Update="11-search\HydroVisualSearchListCtrl.cs">
            <SubType>UserControl</SubType>
        </Compile>
        <Compile Update="12-monitor\01-set\SetHydroMonitorListDlg.cs">
            <SubType>Form</SubType>
        </Compile>
        <Compile Update="12-monitor\04-docking\SetHydroMonitorDockingListCtrl.cs">
        <Compile Update="12-monitor\02-docking\SetHydroMonitorDockingListCtrl.cs">
          <SubType>UserControl</SubType>
        </Compile>
        <Compile Update="12-monitor\04-docking\SetHydroMonitorDockingListDlg.cs">
        <Compile Update="12-monitor\02-docking\SetHydroMonitorDockingListDlg.cs">
          <SubType>Form</SubType>
        </Compile>
        <Compile Update="12-monitor\05-analyse\SetHydroMonitorAnalyseListCtrl.cs">
        <Compile Update="12-monitor\03-analyse\SetHydroMonitorAnalyseListCtrl.cs">
          <SubType>UserControl</SubType>
        </Compile>
        <Compile Update="12-monitor\05-analyse\SetHydroMonitorAnalyseListDlg.cs">
        <Compile Update="12-monitor\03-analyse\SetHydroMonitorAnalyseListDlg.cs">
          <SubType>Form</SubType>
        </Compile>
        <Compile Update="15-visible\SetHydroVisualVisibleDlg.cs">
WinFrmUI/Yw.WinFrmUI.Hydro.Core/Yw.WinFrmUI.Hydro.Core.csproj.user
@@ -40,13 +40,10 @@
    <Compile Update="11-search\InputHydroVisualSearchListDlg.cs">
      <SubType>Form</SubType>
    </Compile>
    <Compile Update="12-monitor\01-set\SetHydroMonitorListCtrl.cs">
    <Compile Update="12-monitor\01-value\HydroMonitorValueListCtrl.cs">
      <SubType>UserControl</SubType>
    </Compile>
    <Compile Update="12-monitor\02-value\HydroMonitorValueListCtrl.cs">
      <SubType>UserControl</SubType>
    </Compile>
    <Compile Update="12-monitor\03-analy\HydroWorkingMonitorAnalyListCtrl.cs">
    <Compile Update="12-monitor\05-analy\HydroWorkingMonitorAnalyListCtrl.cs">
      <SubType>UserControl</SubType>
    </Compile>
    <Compile Update="16-evaluation\04-single\HydroSingleWorkingEvaluationCtrl.cs">