From d10b5c63fe08360560306ef799c828320f332db1 Mon Sep 17 00:00:00 2001
From: lixiaojun <1287241240@qq.com>
Date: 星期四, 28 十一月 2024 16:22:08 +0800
Subject: [PATCH] 增加综合分析

---
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs |  338 +++++++++++++++++++-------------------------------------
 1 files changed, 116 insertions(+), 222 deletions(-)

diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs
index c95b15d..daca05e 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs
@@ -583,121 +583,6 @@
 
         #endregion
 
-        #region 鑷姩鍖归厤
-
-        //鑾峰彇鍖归厤鍒楄〃鎺т欢
-        private XhsProjectSimulationMatchingListCtrl GetMatchingListCtrl()
-        {
-            if (_matchingListCtrl == null)
-            {
-                _matchingListCtrl = new XhsProjectSimulationMatchingListCtrl();
-                _matchingListCtrl.Dock = DockStyle.Fill;
-                _matchingListCtrl.HydroClickEvent += async (code) =>
-                {
-                    if (_hydroInfo == null)
-                    {
-                        return;
-                    }
-                    var allParterList = _hydroInfo.GetAllVisuals();
-                    _visual = allParterList?.Find(x => x.Code == code);
-                    var elementIds = new List<string>();
-                    if (_visual != null)
-                    {
-                        elementIds.Add(_visual.Code);
-                    }
-                    await _bimfaceCtrl?.ZoomAndSelectComponents(elementIds);
-                    //ShowSelectedProperty();
-                };
-                _matchingListCtrl.ApplyMatchingEvent += (output) =>
-                {
-                    if (_hydroInfo == null)
-                    {
-                        return false;
-                    }
-                    return AssetsMatchingParasHelper.Apply(_hydroInfo, output);
-                };
-            }
-            return _matchingListCtrl;
-        }
-
-        //鍖归厤鍒楄〃鎺т欢
-        private XhsProjectSimulationMatchingListCtrl _matchingListCtrl = null;
-
-        //鑷姩鍖归厤
-        private void barBtnMatchingList_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
-        {
-            if (_hydroInfo == null)
-            {
-                return;
-            }
-            this.controlContainerBottom.Controls.Clear();
-            var matchingListCtrl = GetMatchingListCtrl();
-            var input = AssetsMatchingParasHelper.Create(_hydroInfo, null);
-            matchingListCtrl.SetBindingData(input);
-            this.controlContainerBottom.Controls.Add(matchingListCtrl);
-            this.docPnlBottom.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Visible;
-            this.docPnlBottom.Text = "鍖归厤鍒楄〃";
-            this.docPnlBottom.Height = 350;
-        }
-
-        #endregion
-
-        #region 鏈尮鍒楄〃
-
-        //鑾峰彇鏈尮閰嶅垪琛ㄦ帶浠�
-        private XhsProjectSimulationUnMatchingListCtrl GetUnMatchingListCtrl()
-        {
-            if (_unMatchingListCtrl == null)
-            {
-                _unMatchingListCtrl = new XhsProjectSimulationUnMatchingListCtrl();
-                _unMatchingListCtrl.Dock = DockStyle.Fill;
-                _unMatchingListCtrl.HydroClickEvent += async (parter) =>//琛岀偣鍑�
-                {
-                    if (parter == null)
-                    {
-                        return;
-                    }
-                    if (_hydroInfo == null)
-                    {
-                        return;
-                    }
-                    var allParterList = _hydroInfo.GetAllVisuals();
-                    _visual = allParterList?.Find(x => x.Code == parter.Code);
-                    var elementIds = new List<string>() { parter.Code };
-                    await _bimfaceCtrl?.ZoomAndSelectComponents(elementIds);
-                    //ShowSelectedProperty();
-                };
-                _unMatchingListCtrl.ViewModelEvent += async (parters) =>//鏌ョ湅妯″瀷
-                {
-                    var codes = parters?.Select(x => x.Code).Distinct().ToList();
-                    await _bimfaceCtrl?.ZoomAndSelectComponents(codes);
-                    _visual = null;
-                    //ShowSelectedProperty();
-                };
-            }
-            return _unMatchingListCtrl;
-        }
-
-        private XhsProjectSimulationUnMatchingListCtrl _unMatchingListCtrl = null;//鏈尮閰嶅垪琛�
-
-        //鏈尮閰嶅垪琛�
-        private void barBtnUnMatchingList_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
-        {
-            if (_hydroInfo == null)
-            {
-                return;
-            }
-            this.controlContainerBottom.Controls.Clear();
-            var unMatchingListCtrl = GetUnMatchingListCtrl();
-            unMatchingListCtrl.SetBindingData(_hydroInfo);
-            this.controlContainerBottom.Controls.Add(unMatchingListCtrl);
-            this.docPnlBottom.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Visible;
-            this.docPnlBottom.Text = "鏈尮閰嶅垪琛�";
-            this.docPnlBottom.Height = 350;
-        }
-
-        #endregion
-
         #region 涓�閿樉闅�
 
         //璁剧疆瑁呴グ浠跺彲瑙佹��
@@ -2086,12 +1971,12 @@
                 var hydroInfo = _hydroInfo.Adapt<Yw.Model.HydroModelInfo>();
 
                 var working = new HydroWorkingVmo();
-                working.ModelID = _hydroInfo.ID;
-                working.Name = working.Name;
-                working.WorkingInfo = JsonHelper.Object2Json(working.WorkingInfo);
-                working.MonitorInfo = JsonHelper.Object2Json(working.MonitorInfo);
-                working.SortCode = working.SortCode;
-                working.Description = working.Description;
+                working.ModelID = vm.ModelID;
+                working.Name = vm.Name;
+                working.WorkingInfo = JsonHelper.Object2Json(vm.WorkingInfo);
+                working.MonitorInfo = JsonHelper.Object2Json(vm.MonitorInfo);
+                working.SortCode = vm.SortCode;
+                working.Description = vm.Description;
 
                 var workingHelper = GetWorkingHelper();
                 //鏍¢獙
@@ -2147,8 +2032,6 @@
         //姘村姏璁$畻
         private void barBtnCalcu_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
         {
-            var network = _hydroInfo.ToW3dNetworkViewModel();
-            var json = JsonHelper.Object2Json(network);
             Calcu();
         }
 
@@ -2247,67 +2130,36 @@
 
         #region 宸ュ喌鍒嗘瀽
 
-        #region 宸ュ喌璇勪及
-
-        //璇勪及
-        private async void Evaluate()
+        //绮惧害璇勪及
+        private async void barBtnWorkingEvaluation_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
         {
-            if (_hydroInfo == null)
-            {
-                return;
-            }
-            var working = GetWorking();
-            if (working == null)
-            {
-                TipFormHelper.ShowWarn("灏氭湭璁$畻锛岃璁$畻鍚庨噸璇曪紒");
-                return;
-            }
-            var checkResult = GetCheckResult();
-            if (checkResult == null)
-            {
-                return;
-            }
-            if (!checkResult.Succeed)
-            {
-                ShowCheckCtrl(checkResult);
-                TipFormHelper.ShowWarn("妫�鏌ュけ璐ワ紝鍋滄璇勪及锛�");
-                return;
-            }
-            var calcuResult = GetCalcuResult();
-            if (!calcuResult.Succeed)
-            {
-                ShowCalcuFailedCtrl(calcuResult);
-                TipFormHelper.ShowWarn("璁$畻澶辫触锛屽仠姝㈣瘎浼帮紒");
-                return;
-            }
-            if (calcuResult.WainingList != null && calcuResult.WainingList.Count > 0)
-            {
-                ShowCalcuWarningCtrl(calcuResult);
-                TipFormHelper.ShowWarn("璇峰叧娉ㄨ鍛婁俊鎭紒");
-            }
-            var visualListHelper = GetVisualListHelper();
-            var allVisualDict = visualListHelper.GetVisualDict();
             var monitorHelper = GetMonitorHelper();
             var allMonitorList = await monitorHelper.Get();
-            var allWorkingMonitorList = JsonHelper.Json2Object<List<HydroWorkingMonitorViewModel>>(working.MonitorInfo);
-            var allCalcuResultDict = calcuResult.GetVisualDict();
-            var dlg = new HydroWorkingEvaluationDlg();
-            dlg.SetBindingData(allVisualDict, allMonitorList, allWorkingMonitorList, allCalcuResultDict);
-            dlg.ShowDialog();
+
+            var workingCheckedListHelper = GetWorkingCheckedListHelper();
+            var allCheckedWorkingList = workingCheckedListHelper.GetCheckedWorkingList();
+            if (allCheckedWorkingList == null || allCheckedWorkingList.Count < 1)
+            {
+                var workingHelper = GetWorkingHelper();
+                if (!workingHelper.Initialized)
+                {
+                    TipFormHelper.ShowWarn("璇疯绠楀悗閲嶈瘯锛�");
+                    return;
+                }
+                var dlg = new HydroSingleWorkingEvaluationDlg();
+                dlg.SetBindingData(workingHelper.HydroInfo, allMonitorList, workingHelper.Working, workingHelper.CalcuResult);
+                dlg.ShowDialog();
+            }
+            else
+            {
+                var dlg = new HydroMultiWorkingEvaluationDlg();
+                dlg.SetBindingData(_hydroInfo, allMonitorList, allCheckedWorkingList);
+                dlg.ShowDialog();
+            }
         }
 
-        //绮惧害璇勪及
-        private void barBtnWorkingEvaluation_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
-        {
-            Evaluate();
-        }
-
-        #endregion
-
-        #region 宸ュ喌骞惰仈
-
-        //骞惰仈鍒嗘瀽
-        private void barBtnAnaly_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
+        //姘存车鍒嗘瀽
+        private void barBtnPumpAnaly_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
         {
             if (_hydroInfo == null)
             {
@@ -2397,57 +2249,71 @@
             dlg.ShowDialog();
         }
 
-        #endregion
-
-        #region 宸ュ喌鑳芥晥
-
+        //鑳芥晥鍒嗘瀽
         private void barBtnWorkingPower_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
         {
-            var workingHelper = GetWorkingHelper();
-            var dlg = new SimulationSingleWorkingEnergyDlg();
-            dlg.SetBindingData(workingHelper.HydroInfo, workingHelper.CalcuResult);
-            dlg.ShowDialog();
+            var workingCheckedListHelper = GetWorkingCheckedListHelper();
+            var allCheckedWorkingList = workingCheckedListHelper.GetCheckedWorkingList();
+            if (allCheckedWorkingList == null || allCheckedWorkingList.Count < 1)
+            {
+                var workingHelper = GetWorkingHelper();
+                if (!workingHelper.Initialized)
+                {
+                    TipFormHelper.ShowWarn("璇疯绠楀悗閲嶈瘯锛�");
+                    return;
+                }
+                var dlg = new SimulationSingleWorkingEnergyDlg();
+                dlg.SetBindingData(workingHelper.HydroInfo, workingHelper.CalcuResult);
+                dlg.ShowDialog();
+            }
+            else
+            {
+                var dlg = new SimulationMultiWorkingEnergyDlg();
+                dlg.SetBindingData(_hydroInfo, allCheckedWorkingList);
+                dlg.ShowDialog();
+            }
         }
 
-        #endregion
-
-        #region 鎹熷け鏇茬嚎
-
+        //鎹熷け鏇茬嚎
         private void barBtnWorkingLossCurve_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
         {
             if (_visual == null)
             {
-                XtraMessageBox.Show("璇烽�夋嫨鑺傜偣鍚庨噸璇曪紒");
+                TipFormHelper.ShowWarn("璇烽�夋嫨鏋勪欢鍚庨噸璇曪紒");
                 return;
             }
-            if (!(_visual is Yw.Model.HydroNodeInfo))
+            HydroVisualInfo visual = _visual;
+            if (_visual is HydroLinkInfo linkInfo)
             {
-                XtraMessageBox.Show("璇烽�夋嫨鑺傜偣鍚庨噸璇曪紒");
-                return;
+                var visualListHelper = GetVisualListHelper();
+                visual = visualListHelper.GetVisual(linkInfo.StartCode);
             }
-            var network = _hydroInfo.ToNetwork();
-            var calcuResult = network.Calcu(Yw.EPAnet.CalcuMode.Simple);
-            var allNodeList = network.GetAllNodes();
-            var node = allNodeList.Find(x => x.Id == _visual.Code);
-            var allPathList = network.AnalyzeDownstreamPath(node, calcuResult);
-            var allEpaLossList = network.GetChartNodeByPathLinks(allPathList, calcuResult);
-            var allLossList = allEpaLossList?.Select(x => new HydroNodeLossViewModel(x)).ToList();
-            var dlg = new HydroSingleLossCurveDlg();
-            dlg.SetBindingData(allLossList);
-            dlg.ShowDialog();
+
+            var workingCheckedListHelper = GetWorkingCheckedListHelper();
+            var allCheckedWorkingList = workingCheckedListHelper.GetCheckedWorkingList();
+            if (allCheckedWorkingList == null || allCheckedWorkingList.Count < 1)
+            {
+                var workingHelper = GetWorkingHelper();
+                if (!workingHelper.Initialized)
+                {
+                    TipFormHelper.ShowWarn("璇疯绠楀悗閲嶈瘯锛�");
+                    return;
+                }
+                var dlg = new HydroSingleWorkingLossCurveDlg();
+                dlg.SetBindingData(workingHelper.HydroInfo, workingHelper.CalcuResult, visual);
+                dlg.ShowDialog();
+            }
+            else
+            {
+                var dlg = new HydroMultiWorkingLossCurveDlg();
+                dlg.SetBindingData(_hydroInfo, allCheckedWorkingList, visual);
+                dlg.ShowDialog();
+            }
         }
-
-        #endregion
-
-        #region 鎹熷け缁熻
 
         //鎹熷け缁熻
         private void barBtnWorkingLossStatistics_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
         {
-            if (_hydroInfo == null)
-            {
-                return;
-            }
             var workingCheckedListHelper = GetWorkingCheckedListHelper();
             var allCheckedWorkingList = workingCheckedListHelper.GetCheckedWorkingList();
             if (allCheckedWorkingList == null || allCheckedWorkingList.Count < 1)
@@ -2468,19 +2334,47 @@
                 dlg.SetBindingData(_hydroInfo, allCheckedWorkingList);
                 dlg.ShowDialog();
             }
-
-
         }
 
-        #endregion
-
-        #region 缁煎悎鍒嗘瀽
-        private void barBtnWorkingAnaly_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
+        //缁煎悎鍒嗘瀽
+        private async void barBtnWorkingAnaly_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
         {
-            XtraMessageBox.Show("姝e湪寮�鍙戜腑锛屾暚璇锋湡寰咃紒");
-        }
+            if (_visual == null)
+            {
+                TipFormHelper.ShowWarn("璇烽�夋嫨鏋勪欢鍚庨噸璇曪紒");
+                return;
+            }
+            HydroVisualInfo visual = _visual;
+            if (_visual is HydroLinkInfo linkInfo)
+            {
+                var visualListHelper = GetVisualListHelper();
+                visual = visualListHelper.GetVisual(linkInfo.StartCode);
+            }
 
-        #endregion
+            var monitorHelper = GetMonitorHelper();
+            var allMonitorList = await monitorHelper.Get();
+
+            var workingCheckedListHelper = GetWorkingCheckedListHelper();
+            var allCheckedWorkingList = workingCheckedListHelper.GetCheckedWorkingList();
+            if (allCheckedWorkingList == null || allCheckedWorkingList.Count < 1)
+            {
+                var workingHelper = GetWorkingHelper();
+                if (!workingHelper.Initialized)
+                {
+                    TipFormHelper.ShowWarn("璇疯绠楀悗閲嶈瘯锛�");
+                    return;
+                }
+                var dlg = new SimulationSingleWorkingAnalyDlg();
+                dlg.SetBindingData(workingHelper.HydroInfo, allMonitorList, workingHelper.Working, workingHelper.CalcuResult, visual);
+                dlg.ShowDialog();
+            }
+            else
+            {
+                var dlg = new SimulationMultiWorkingAnalyDlg();
+                dlg.SetBindingData(_hydroInfo, allMonitorList, allCheckedWorkingList, visual);
+                dlg.ShowDialog();
+            }
+        }
 
         #endregion
 

--
Gitblit v1.9.3