From 9242291f2a1d7c7186f502d451f77f601af194d0 Mon Sep 17 00:00:00 2001 From: lixiaojun <1287241240@qq.com> Date: 星期一, 30 十二月 2024 14:44:19 +0800 Subject: [PATCH] 修改导入 --- WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/05-function/SimulationFunctionCtrl.cs | 79 +++++++++++++++++++++++++++++---------- 1 files changed, 59 insertions(+), 20 deletions(-) diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/05-function/SimulationFunctionCtrl.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/05-function/SimulationFunctionCtrl.cs index 522751c..5595451 100644 --- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/05-function/SimulationFunctionCtrl.cs +++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/05-function/SimulationFunctionCtrl.cs @@ -1,6 +1,9 @@ -锘縰sing DevExpress.Utils.Extensions; +锘縰sing DevExpress.CodeParser; +using DevExpress.DataAccess.Native; +using DevExpress.Utils.Extensions; using DevExpress.Utils.Svg; using DevExpress.XtraCharts; +using System.Collections.Concurrent; using Yw.DAL.Basic; using Yw.Vmo; @@ -22,10 +25,6 @@ /// 鏄剧ず椤圭洰绔欐ā鎷熶簨浠� /// </summary> public event Action<XhsProjectVmo, XhsProjectSiteVmo, XhsSchemeVmo, Yw.Model.HydroModelInfo, Dictionary<HydroWorkingVmo, bool>, SvgImage> ShowProjectSiteSimulationEvent; - /// <summary> - /// 鏄剧ず椤圭洰绔欏伐鍐典簨浠� - /// </summary> - public event Action<XhsProjectVmo, XhsProjectSiteVmo, XhsSchemeVmo, Yw.Model.HydroModelInfo, HydroWorkingVmo, SvgImage> ShowProjectSiteWorkingEvent; /// <summary> /// 椤圭洰绔欏伐鍐甸�夋嫨鏀瑰彉浜嬩欢 /// </summary> @@ -65,6 +64,7 @@ private Dictionary<HydroWorkingVmo, bool> _allWorkingCheckedListDict = null;//鎵�鏈夊伐鍐甸�夋嫨鍒楄〃瀛楀吀 private Dictionary<XhsSchemeVmo, Yw.Model.HydroModelInfo> _allSchemeHydroInfoDict = null;//鎵�鏈夋柟妗堟按鍔涗俊鎭垪琛� private Dictionary<XhsSchemeVmo, Dictionary<HydroWorkingVmo, bool>> _allSchemeWorkingCheckedListDict = null;//鎵�鏈夋柟妗堝伐鍐甸�夋嫨鍒楄〃瀛楀吀 + private ConcurrentDictionary<string, bool> _gettingHydroInfoDict = new ConcurrentDictionary<string, bool>();//鑾峰彇姘村姏淇℃伅瀛楀吀 /// <summary> /// 缁戝畾鏁版嵁 @@ -157,6 +157,7 @@ this.CreateProjectSiteSchemeEvent?.Invoke(_project, _projectSite, hydroInfo, this.svgImg32[3]); } + //鍙抽敭寮瑰嚭 private void accordionControl1_MouseClick(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Right) @@ -165,11 +166,13 @@ } } + //鍏ㄩ儴鎶樺彔 private void barBtnCollpseAll_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { this.accordionControl1.CollapseAll(); } + //鍏ㄩ儴灞曞紑 private void barBtnExpandAll_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { this.accordionControl1.ExpandAll(); @@ -186,7 +189,10 @@ Yw.Model.HydroModelInfo hydroInfo = null; if (!useCache) { - hydroInfo = await GetHydroInfo(scheme); + if (hydroInfo == null) + { + hydroInfo = await GetHydroInfo(scheme); + } if (hydroInfo == null) { return default; @@ -199,7 +205,15 @@ { if (_hydroInfo == null) { - _hydroInfo = await GetHydroInfo(null); + hydroInfo = await GetHydroInfo(null); + if (hydroInfo == null) + { + return default; + } + if (_hydroInfo == null) + { + _hydroInfo = hydroInfo; + } } return _hydroInfo; } @@ -217,9 +231,16 @@ if (!_allSchemeHydroInfoDict.ContainsKey(scheme)) { hydroInfo = await GetHydroInfo(scheme); - _allSchemeHydroInfoDict.Add(scheme, hydroInfo); - return hydroInfo; + if (hydroInfo == null) + { + return default; + } + if (!_allSchemeHydroInfoDict.ContainsKey(scheme)) + { + _allSchemeHydroInfoDict.Add(scheme, hydroInfo); + } } + return _allSchemeHydroInfoDict[scheme]; } if (_allSchemeHydroInfoDict.ContainsKey(scheme)) @@ -231,7 +252,7 @@ _allSchemeHydroInfoDict.Add(scheme, hydroInfo); } - return hydroInfo; + return _allSchemeHydroInfoDict[scheme]; } //鑾峰彇姘村姏淇℃伅 @@ -244,6 +265,21 @@ if (_projectSite == null) { return default; + } + string key = $"{_project.ID}-{_projectSite.ID}-{scheme?.ID}"; + if (_gettingHydroInfoDict.TryGetValue(key, out bool getting)) + { + if (getting) + { + return default; + } + } + + WaitFormHelper.ShowWaitForm(this.FindForm(), "姝e湪鍔犺浇妯″瀷鏁版嵁锛岃绋嶅悗..."); + //var overlay = this.ShowOverlay(); + if (!_gettingHydroInfoDict.TryAdd(key, true)) + { + _gettingHydroInfoDict[key] = true; } HydroModelRelationVmo relation = null; @@ -262,6 +298,9 @@ return default; } var hydroInfo = await BLLFactory<Yw.BLL.HydroModelInfo>.Instance.GetByID(relation.ModelID); + _gettingHydroInfoDict[key] = false; + //overlay.Close(); + WaitFormHelper.HideWaitForm(); return hydroInfo; } @@ -481,10 +520,9 @@ elementWorking.Text = working.Name; elementWorking.Hint = working.Description; elementWorking.Tag = working; - elementWorking.Click += async (sender, e) => + elementWorking.Click += (sender, e) => { - var hydroInfo = await GetHydroInfo(null, true); - this.ShowProjectSiteWorkingEvent?.Invoke(_project, _projectSite, null, hydroInfo, working, this.svgImg32[4]); + }; this.elementProjectSiteSimulation.Elements.Add(elementWorking); this.elementProjectSiteSimulation.Style = DevExpress.XtraBars.Navigation.ElementStyle.Group; @@ -531,10 +569,9 @@ elementWorking.Text = working.Name; elementWorking.Hint = working.Description; elementWorking.Tag = working; - elementWorking.Click += async (sender, e) => + elementWorking.Click += (sender, e) => { - var hydroInfo = await GetHydroInfo(scheme, true); - this.ShowProjectSiteWorkingEvent?.Invoke(_project, _projectSite, scheme, hydroInfo, working, this.svgImg32[4]); + }; elementScheme.Elements.Add(elementWorking); elementScheme.Style = DevExpress.XtraBars.Navigation.ElementStyle.Group; @@ -760,10 +797,11 @@ { return default; } - var db = await BLLFactory<Yw.BLL.HydroModelInfo>.Instance.GetByID(id); + //var db = await HStation.BLL.XhsHydroInfo.GetByID(id); if (scheme == null) { - _hydroInfo = db; + // _hydroInfo = db; + _hydroInfo = hydroInfo; return _hydroInfo; } if (_allSchemeHydroInfoDict == null || _allSchemeHydroInfoDict.Count < 1) @@ -775,8 +813,9 @@ { return default; } - _allSchemeHydroInfoDict[schemeKey] = db; - return db; + //_allSchemeHydroInfoDict[schemeKey] = db; + _allSchemeHydroInfoDict[schemeKey] = hydroInfo; + return _allSchemeHydroInfoDict[schemeKey]; } /// <summary> -- Gitblit v1.9.3