From cec8d92bdca1da0b2eafe6eb3130f4bf6f03028b Mon Sep 17 00:00:00 2001
From: duheng <2286773002@qq.com>
Date: 星期三, 12 三月 2025 10:21:09 +0800
Subject: [PATCH] Merge branch 'master' of http://47.103.154.90:83/r/HStation/XHS.V1.0

---
 WinFrmUI/Yw.WinFrmUI.Hydro.Core/accuracy/04-control/HydroAccuracyListCtrl.cs                                  |    4 
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.resx             |   48 -
 WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-calcu/00-core/HydroVisualCalcuProp.cs                                      |   12 
 WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/00-core/HydroGradingPropHelper.cs                                  |  273 ++++--
 WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/03-list/SetHydroGradingModelCtrl.cs                                |   40 
 WinFrmUI/Yw.WinFrmUI.Hydro.Core/accuracy/00-core/HydroAccuracyHelper.cs                                       |   13 
 WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/00-core/HydroGradingCatalogHelper.cs                               |  100 ++
 WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/00-core/HydroMonitorPropHelper.cs                                  |    0 
 WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/04-set/SetHydroMonitorListCtrl.Designer.cs                         |  186 ++++
 WinFrmUI/Yw.WinFrmUI.Hydro.Core/monitor-analy/02-control/HydroMonitorAnalyListCtrl.cs                         |   14 
 Hydro/HStation.Hydro.Core/HStation.Hydro.Core.csproj                                                          |    2 
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy-analy/SimulationEnergyAnalyChartCtrl.Designer.cs  |   61 
 WinFrmUI/Yw.WinFrmUI.Hydro.Core/00-core/03-helper/HydroParterCatalogHelper.cs                                 |   13 
 WinFrmUI/Yw.WinFrmUI.Hydro.Core/energy-analy/01-core/HydroEnergyAnalyHelper.cs                                |    2 
 WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/04-set/SetHydroMonitorListDlg.Designer.cs                          |  167 ++++
 WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/04-set/HydroMonitorViewModel.cs                                    |   91 ++
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy-analy/SimulationEnergyAnalyChartCtrl.cs           |   62 +
 WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/00-core/HydroMonitorExtensions.cs                                  |    0 
 WinFrmUI/Yw.WinFrmUI.Hydro.Core/Properties/DataSources/Yw.WinFrmUI.HydroMonitorViewModel.datasource           |   10 
 WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/04-set/SetHydroMonitorListDlg.cs                                   |   63 +
 WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/04-set/SetHydroMonitorListDlg.resx                                 |    0 
 WinFrmUI/Yw.WinFrmUI.Hydro.Core/monitor-analy/01-core/HydroMonitorAnalyHelper.cs                              |   10 
 Entry/HStation.Entry.Xhs.Core/HStation.Entry.Xhs.Core.csproj                                                  |    2 
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/04-monitor/01-monitor/SimulationMonitorHelper.cs    |   54 -
 Desktop/HStation.Desktop.Xhs.Core/Properties/PublishProfiles/FolderProfile.pubxml.user                        |    2 
 WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/04-tree/SelectHydroGradingPropTreeCtrl.cs                          |   22 
 Entry/HStation.Entry.Xhs.Core/Properties/PublishProfiles/FolderProfile.pubxml.user                            |    2 
 WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/05-set/SetHydroGradingTreeDlg.cs                                   |   26 
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs               |  174 +---
 WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/02-prop/SelectHydroGradingPropCtrl.cs                              |    4 
 Desktop/HStation.Desktop.Xhs.Core/Program.cs                                                                  |    2 
 WinFrmUI/Yw.WinFrmUI.Hydro.Core/Yw.WinFrmUI.Hydro.Core.csproj                                                 |   15 
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/04-monitor/02-value/SimulationMonitorValueHelper.cs |   69 -
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.Designer.cs      |   56 
 WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/00-core/HydroGradingProp.cs                                        |   21 
 WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/04-set/SetHydroMonitorListCtrl.resx                                |  240 ++++++
 WinFrmUI/Yw.WinFrmUI.Hydro.Core/Yw.WinFrmUI.Hydro.Core.csproj.user                                            |    3 
 /dev/null                                                                                                     |  120 ---
 Hydro/Yw.Hydro.Core/Yw.Hydro.Core.csproj                                                                      |    2 
 WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/01-catalog/SelectHydroGradingCatalogCtrl.cs                        |    4 
 WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/06-apply/ApplyHydroGradingCtrl.cs                                  |    2 
 WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/00-core/HydroGradingHelper.cs                                      |  144 ++-
 WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/04-set/SetHydroMonitorListCtrl.cs                                  |  135 +++
 43 files changed, 1,520 insertions(+), 750 deletions(-)

diff --git a/Desktop/HStation.Desktop.Xhs.Core/Program.cs b/Desktop/HStation.Desktop.Xhs.Core/Program.cs
index dcf26b1..c4b8535 100644
--- a/Desktop/HStation.Desktop.Xhs.Core/Program.cs
+++ b/Desktop/HStation.Desktop.Xhs.Core/Program.cs
@@ -158,7 +158,7 @@
         //
         private static void TaskScheduler_UnobservedTaskException(object sender, UnobservedTaskExceptionEventArgs e)
         {
-            throw new NotImplementedException();
+            //throw new NotImplementedException();
         }
 
     }
diff --git a/Desktop/HStation.Desktop.Xhs.Core/Properties/PublishProfiles/FolderProfile.pubxml.user b/Desktop/HStation.Desktop.Xhs.Core/Properties/PublishProfiles/FolderProfile.pubxml.user
index 5514253..fdf09c5 100644
--- a/Desktop/HStation.Desktop.Xhs.Core/Properties/PublishProfiles/FolderProfile.pubxml.user
+++ b/Desktop/HStation.Desktop.Xhs.Core/Properties/PublishProfiles/FolderProfile.pubxml.user
@@ -4,7 +4,7 @@
 -->
 <Project>
   <PropertyGroup>
-    <History>True|2025-03-02T07:44:29.0809925Z;True|2025-03-02T15:40:28.7846274+08:00;True|2025-03-02T15:39:46.2586998+08:00;True|2025-03-02T15:23:07.3152127+08:00;True|2025-03-02T15:22:53.8096029+08:00;True|2025-02-25T22:53:44.2646465+08:00;True|2025-02-15T17:09:50.6365222+08:00;True|2025-02-15T01:47:09.6027737+08:00;True|2025-02-10T13:32:35.7746635+08:00;True|2025-02-06T14:55:56.1351264+08:00;True|2025-01-25T12:27:20.2443551+08:00;True|2025-01-24T09:16:09.4525881+08:00;True|2025-01-23T14:29:01.1814366+08:00;True|2025-01-23T14:28:18.0513868+08:00;True|2025-01-23T13:53:07.5061161+08:00;True|2025-01-23T12:58:32.3093753+08:00;True|2025-01-23T12:58:02.8169460+08:00;True|2025-01-23T12:57:05.6740839+08:00;True|2025-01-23T11:07:51.4564403+08:00;True|2025-01-13T11:03:21.1732352+08:00;True|2024-10-21T12:02:00.7754536+08:00;False|2024-10-21T11:51:29.4414327+08:00;False|2024-10-21T11:50:51.8640100+08:00;False|2024-10-21T11:49:14.9169777+08:00;</History>
+    <History>True|2025-03-11T14:15:02.8833947Z;True|2025-03-11T21:55:49.2273208+08:00;True|2025-03-11T18:27:12.8629670+08:00;True|2025-03-11T16:45:22.7703655+08:00;True|2025-03-02T15:44:29.0809925+08:00;True|2025-03-02T15:40:28.7846274+08:00;True|2025-03-02T15:39:46.2586998+08:00;True|2025-03-02T15:23:07.3152127+08:00;True|2025-03-02T15:22:53.8096029+08:00;True|2025-02-25T22:53:44.2646465+08:00;True|2025-02-15T17:09:50.6365222+08:00;True|2025-02-15T01:47:09.6027737+08:00;True|2025-02-10T13:32:35.7746635+08:00;True|2025-02-06T14:55:56.1351264+08:00;True|2025-01-25T12:27:20.2443551+08:00;True|2025-01-24T09:16:09.4525881+08:00;True|2025-01-23T14:29:01.1814366+08:00;True|2025-01-23T14:28:18.0513868+08:00;True|2025-01-23T13:53:07.5061161+08:00;True|2025-01-23T12:58:32.3093753+08:00;True|2025-01-23T12:58:02.8169460+08:00;True|2025-01-23T12:57:05.6740839+08:00;True|2025-01-23T11:07:51.4564403+08:00;True|2025-01-13T11:03:21.1732352+08:00;True|2024-10-21T12:02:00.7754536+08:00;False|2024-10-21T11:51:29.4414327+08:00;False|2024-10-21T11:50:51.8640100+08:00;False|2024-10-21T11:49:14.9169777+08:00;</History>
     <LastFailureDetails />
   </PropertyGroup>
 </Project>
\ No newline at end of file
diff --git a/Entry/HStation.Entry.Xhs.Core/HStation.Entry.Xhs.Core.csproj b/Entry/HStation.Entry.Xhs.Core/HStation.Entry.Xhs.Core.csproj
index 201a388..45b92ce 100644
--- a/Entry/HStation.Entry.Xhs.Core/HStation.Entry.Xhs.Core.csproj
+++ b/Entry/HStation.Entry.Xhs.Core/HStation.Entry.Xhs.Core.csproj
@@ -20,7 +20,7 @@
 	  <PackageReference Include="Yw.Application.Basic.Core" Version="3.3.3" />
 	  <PackageReference Include="Yw.Application.Bimface.Core" Version="3.2.0" />
 	  <PackageReference Include="Yw.Application.Dict.Core" Version="3.1.3" />
-	  <PackageReference Include="Yw.Application.Hydro.Core" Version="3.9.0" />
+	  <PackageReference Include="Yw.Application.Hydro.Core" Version="3.9.1" />
 	  <PackageReference Include="Yw.Application.Map.Core" Version="3.2.2" />
 	  <PackageReference Include="Yw.Application.Phart.Core" Version="3.3.1" />
 	  <PackageReference Include="Yw.Application.Unit.Core" Version="3.1.8" />
diff --git a/Entry/HStation.Entry.Xhs.Core/Properties/PublishProfiles/FolderProfile.pubxml.user b/Entry/HStation.Entry.Xhs.Core/Properties/PublishProfiles/FolderProfile.pubxml.user
index 8bb9054..324b5d3 100644
--- a/Entry/HStation.Entry.Xhs.Core/Properties/PublishProfiles/FolderProfile.pubxml.user
+++ b/Entry/HStation.Entry.Xhs.Core/Properties/PublishProfiles/FolderProfile.pubxml.user
@@ -5,7 +5,7 @@
 <Project>
   <PropertyGroup>
     <_PublishTargetUrl>D:\WorkData\git\HStation\XHS\Entry\HStation.Entry.Xhs.Core\bin\Release\net6.0\publish\</_PublishTargetUrl>
-    <History>True|2025-02-21T02:19:38.2050431Z;True|2025-02-20T18:12:03.4625245+08:00;True|2025-02-20T15:24:26.6198459+08:00;True|2025-02-20T15:20:15.0132977+08:00;True|2025-02-13T11:00:50.4202223+08:00;True|2025-02-08T17:31:17.3841999+08:00;True|2025-02-08T17:27:02.1630402+08:00;True|2025-01-25T12:24:10.7702918+08:00;True|2025-01-24T09:10:22.0248945+08:00;True|2025-01-23T10:54:42.2796686+08:00;True|2025-01-22T07:53:29.9931150+08:00;True|2025-01-21T11:37:36.9296374+08:00;True|2025-01-20T10:42:21.8992153+08:00;True|2025-01-20T10:41:30.8562468+08:00;True|2025-01-20T10:36:54.9849821+08:00;True|2025-01-20T10:31:16.0442319+08:00;True|2025-01-13T15:07:40.9182715+08:00;True|2025-01-13T12:08:58.0115763+08:00;True|2025-01-13T12:08:44.3187386+08:00;True|2025-01-13T12:07:41.4659157+08:00;True|2025-01-13T11:53:47.1828627+08:00;True|2025-01-13T11:38:53.6150404+08:00;True|2025-01-13T11:37:14.9075336+08:00;True|2025-01-13T11:35:23.3939940+08:00;True|2025-01-13T11:33:41.6199459+08:00;True|2025-01-13T11:32:15.2734783+08:00;True|2025-01-13T11:30:39.9296756+08:00;True|2025-01-13T11:25:02.3605923+08:00;True|2025-01-13T11:21:03.0110309+08:00;True|2025-01-13T11:17:46.3662069+08:00;True|2025-01-08T09:44:09.5132234+08:00;True|2024-09-03T11:22:43.3813050+08:00;True|2024-09-03T11:06:18.0799295+08:00;True|2024-09-03T10:52:25.3198740+08:00;True|2024-09-02T09:16:17.5197059+08:00;False|2024-09-02T09:08:02.4504522+08:00;True|2024-06-20T12:16:07.3854116+08:00;True|2024-06-18T09:13:21.8960491+08:00;True|2024-06-12T18:55:43.2697624+08:00;True|2024-06-12T18:54:42.2191664+08:00;True|2024-06-12T18:37:39.2735086+08:00;True|2024-06-12T18:32:59.2340941+08:00;True|2024-06-12T18:18:57.9018714+08:00;True|2024-06-12T18:13:13.4471521+08:00;True|2024-06-12T18:11:38.4803257+08:00;True|2024-06-12T18:10:00.3753638+08:00;True|2024-06-12T18:03:08.9521607+08:00;True|2024-06-12T17:59:46.2755740+08:00;True|2024-06-12T17:58:01.8017051+08:00;True|2024-06-12T17:56:20.6946001+08:00;True|2024-06-12T17:32:53.8291604+08:00;True|2024-06-12T17:32:38.6492118+08:00;False|2024-06-12T17:32:17.0260105+08:00;True|2024-06-12T17:08:59.9367775+08:00;True|2024-06-12T16:32:42.3320305+08:00;True|2024-06-07T13:34:17.3014803+08:00;True|2024-06-07T13:20:33.5124438+08:00;True|2024-06-07T10:24:47.0351087+08:00;True|2024-06-05T17:04:55.4017239+08:00;True|2024-06-05T16:05:35.1432805+08:00;True|2024-06-05T15:18:06.1797165+08:00;True|2024-06-05T13:53:59.9366676+08:00;True|2024-06-05T13:43:45.7009774+08:00;True|2024-06-05T13:38:18.1415782+08:00;True|2024-06-05T12:14:05.4745826+08:00;True|2024-06-05T12:10:02.8443283+08:00;True|2024-06-02T18:41:28.5233205+08:00;True|2024-06-02T18:21:27.5679625+08:00;True|2024-06-02T17:34:02.6234679+08:00;True|2024-06-02T16:58:23.9422671+08:00;True|2024-06-02T16:16:43.6949096+08:00;True|2024-06-02T14:44:06.8963915+08:00;True|2024-06-02T11:10:51.5587482+08:00;True|2024-06-01T11:30:39.5033584+08:00;True|2024-05-30T16:29:38.0730664+08:00;True|2024-05-30T15:16:14.5429969+08:00;True|2024-05-29T17:31:27.5349115+08:00;True|2024-05-29T16:49:44.3085849+08:00;True|2024-05-29T10:46:15.3071701+08:00;True|2024-05-28T16:21:22.2987178+08:00;True|2024-05-28T11:55:02.0680294+08:00;True|2024-05-24T09:27:50.0479340+08:00;True|2024-05-23T14:16:32.3824342+08:00;True|2024-05-23T10:51:43.4383910+08:00;True|2024-05-22T11:19:10.1709647+08:00;True|2024-05-22T11:12:47.8835237+08:00;True|2024-05-22T10:43:34.7720709+08:00;True|2024-05-21T17:25:46.9831973+08:00;True|2024-05-21T12:11:55.2774332+08:00;True|2024-05-13T10:32:18.9951394+08:00;True|2024-05-09T09:53:09.1673089+08:00;True|2024-05-08T17:18:58.3017566+08:00;True|2024-05-08T11:15:08.3734126+08:00;True|2024-05-07T10:59:04.2016283+08:00;True|2024-05-07T10:58:56.6254107+08:00;True|2024-05-07T10:56:03.7274034+08:00;True|2024-05-07T10:55:53.5496684+08:00;True|2024-05-07T10:55:41.1246352+08:00;True|2024-05-07T09:57:18.3908307+08:00;True|2024-05-06T18:17:15.0427456+08:00;</History>
+    <History>True|2025-03-11T08:40:47.6377709Z;True|2025-02-21T10:19:38.2050431+08:00;True|2025-02-20T18:12:03.4625245+08:00;True|2025-02-20T15:24:26.6198459+08:00;True|2025-02-20T15:20:15.0132977+08:00;True|2025-02-13T11:00:50.4202223+08:00;True|2025-02-08T17:31:17.3841999+08:00;True|2025-02-08T17:27:02.1630402+08:00;True|2025-01-25T12:24:10.7702918+08:00;True|2025-01-24T09:10:22.0248945+08:00;True|2025-01-23T10:54:42.2796686+08:00;True|2025-01-22T07:53:29.9931150+08:00;True|2025-01-21T11:37:36.9296374+08:00;True|2025-01-20T10:42:21.8992153+08:00;True|2025-01-20T10:41:30.8562468+08:00;True|2025-01-20T10:36:54.9849821+08:00;True|2025-01-20T10:31:16.0442319+08:00;True|2025-01-13T15:07:40.9182715+08:00;True|2025-01-13T12:08:58.0115763+08:00;True|2025-01-13T12:08:44.3187386+08:00;True|2025-01-13T12:07:41.4659157+08:00;True|2025-01-13T11:53:47.1828627+08:00;True|2025-01-13T11:38:53.6150404+08:00;True|2025-01-13T11:37:14.9075336+08:00;True|2025-01-13T11:35:23.3939940+08:00;True|2025-01-13T11:33:41.6199459+08:00;True|2025-01-13T11:32:15.2734783+08:00;True|2025-01-13T11:30:39.9296756+08:00;True|2025-01-13T11:25:02.3605923+08:00;True|2025-01-13T11:21:03.0110309+08:00;True|2025-01-13T11:17:46.3662069+08:00;True|2025-01-08T09:44:09.5132234+08:00;True|2024-09-03T11:22:43.3813050+08:00;True|2024-09-03T11:06:18.0799295+08:00;True|2024-09-03T10:52:25.3198740+08:00;True|2024-09-02T09:16:17.5197059+08:00;False|2024-09-02T09:08:02.4504522+08:00;True|2024-06-20T12:16:07.3854116+08:00;True|2024-06-18T09:13:21.8960491+08:00;True|2024-06-12T18:55:43.2697624+08:00;True|2024-06-12T18:54:42.2191664+08:00;True|2024-06-12T18:37:39.2735086+08:00;True|2024-06-12T18:32:59.2340941+08:00;True|2024-06-12T18:18:57.9018714+08:00;True|2024-06-12T18:13:13.4471521+08:00;True|2024-06-12T18:11:38.4803257+08:00;True|2024-06-12T18:10:00.3753638+08:00;True|2024-06-12T18:03:08.9521607+08:00;True|2024-06-12T17:59:46.2755740+08:00;True|2024-06-12T17:58:01.8017051+08:00;True|2024-06-12T17:56:20.6946001+08:00;True|2024-06-12T17:32:53.8291604+08:00;True|2024-06-12T17:32:38.6492118+08:00;False|2024-06-12T17:32:17.0260105+08:00;True|2024-06-12T17:08:59.9367775+08:00;True|2024-06-12T16:32:42.3320305+08:00;True|2024-06-07T13:34:17.3014803+08:00;True|2024-06-07T13:20:33.5124438+08:00;True|2024-06-07T10:24:47.0351087+08:00;True|2024-06-05T17:04:55.4017239+08:00;True|2024-06-05T16:05:35.1432805+08:00;True|2024-06-05T15:18:06.1797165+08:00;True|2024-06-05T13:53:59.9366676+08:00;True|2024-06-05T13:43:45.7009774+08:00;True|2024-06-05T13:38:18.1415782+08:00;True|2024-06-05T12:14:05.4745826+08:00;True|2024-06-05T12:10:02.8443283+08:00;True|2024-06-02T18:41:28.5233205+08:00;True|2024-06-02T18:21:27.5679625+08:00;True|2024-06-02T17:34:02.6234679+08:00;True|2024-06-02T16:58:23.9422671+08:00;True|2024-06-02T16:16:43.6949096+08:00;True|2024-06-02T14:44:06.8963915+08:00;True|2024-06-02T11:10:51.5587482+08:00;True|2024-06-01T11:30:39.5033584+08:00;True|2024-05-30T16:29:38.0730664+08:00;True|2024-05-30T15:16:14.5429969+08:00;True|2024-05-29T17:31:27.5349115+08:00;True|2024-05-29T16:49:44.3085849+08:00;True|2024-05-29T10:46:15.3071701+08:00;True|2024-05-28T16:21:22.2987178+08:00;True|2024-05-28T11:55:02.0680294+08:00;True|2024-05-24T09:27:50.0479340+08:00;True|2024-05-23T14:16:32.3824342+08:00;True|2024-05-23T10:51:43.4383910+08:00;True|2024-05-22T11:19:10.1709647+08:00;True|2024-05-22T11:12:47.8835237+08:00;True|2024-05-22T10:43:34.7720709+08:00;True|2024-05-21T17:25:46.9831973+08:00;True|2024-05-21T12:11:55.2774332+08:00;True|2024-05-13T10:32:18.9951394+08:00;True|2024-05-09T09:53:09.1673089+08:00;True|2024-05-08T17:18:58.3017566+08:00;True|2024-05-08T11:15:08.3734126+08:00;True|2024-05-07T10:59:04.2016283+08:00;True|2024-05-07T10:58:56.6254107+08:00;True|2024-05-07T10:56:03.7274034+08:00;True|2024-05-07T10:55:53.5496684+08:00;True|2024-05-07T10:55:41.1246352+08:00;True|2024-05-07T09:57:18.3908307+08:00;</History>
     <LastFailureDetails />
   </PropertyGroup>
 </Project>
\ No newline at end of file
diff --git a/Hydro/HStation.Hydro.Core/HStation.Hydro.Core.csproj b/Hydro/HStation.Hydro.Core/HStation.Hydro.Core.csproj
index b760da3..a5c25ed 100644
--- a/Hydro/HStation.Hydro.Core/HStation.Hydro.Core.csproj
+++ b/Hydro/HStation.Hydro.Core/HStation.Hydro.Core.csproj
@@ -7,7 +7,7 @@
   </PropertyGroup>
 
   <ItemGroup>
-    <PackageReference Include="Yw.Service.Hydro.Core" Version="5.1.7" />
+    <PackageReference Include="Yw.Service.Hydro.Core" Version="5.1.8" />
   </ItemGroup>
 
   <ItemGroup>
diff --git a/Hydro/Yw.Hydro.Core/Yw.Hydro.Core.csproj b/Hydro/Yw.Hydro.Core/Yw.Hydro.Core.csproj
index d95ade5..a0f166e 100644
--- a/Hydro/Yw.Hydro.Core/Yw.Hydro.Core.csproj
+++ b/Hydro/Yw.Hydro.Core/Yw.Hydro.Core.csproj
@@ -8,7 +8,7 @@
 
   <ItemGroup>
     <PackageReference Include="Yw.Geometry.Core" Version="3.3.2" />
-    <PackageReference Include="Yw.Service.Hydro.Core" Version="5.1.7" />
+    <PackageReference Include="Yw.Service.Hydro.Core" Version="5.1.8" />
   </ItemGroup>
 
   <ItemGroup>
diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/04-monitor/01-monitor/SimulationMonitorHelper.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/04-monitor/01-monitor/SimulationMonitorHelper.cs
index e37342c..b364b08 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/04-monitor/01-monitor/SimulationMonitorHelper.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/04-monitor/01-monitor/SimulationMonitorHelper.cs
@@ -1,5 +1,6 @@
 锘縰sing Yw.Hydro;
 using Yw.Vmo;
+using static Yw.WinFrmUI.Q3d.EpanetEnum;
 
 namespace HStation.WinFrmUI
 {
@@ -36,24 +37,6 @@
         }
 
         /// <summary>
-        /// 鑾峰彇瀵规帴鍒楄〃
-        /// </summary>
-        public async Task<List<HydroMonitorVmo>> GetDockingList()
-        {
-            var all = await GetAll();
-            return all?.Where(x => x.SourceType == Yw.Hydro.eSourceType.Docking).ToList();
-        }
-
-        /// <summary>
-        /// 鑾峰彇鍒嗘瀽鍒楄〃
-        /// </summary>
-        public async Task<List<HydroMonitorVmo>> GetAnalyseList()
-        {
-            var all = await GetAll();
-            return all?.Where(x => x.SourceType == Yw.Hydro.eSourceType.Analyse).ToList();
-        }
-
-        /// <summary>
         /// 鏇存柊
         /// </summary>
         public async Task<List<HydroMonitorVmo>> Update(string code)
@@ -69,47 +52,20 @@
         }
 
         /// <summary>
-        /// 鏇存柊瀵规帴
-        /// </summary>
-        public async Task<List<HydroMonitorVmo>> UpdateDocking(string code)
-        {
-            var all = await GetAll();
-            all.RemoveAll(x => x.Parter == code && x.SourceType == Yw.Hydro.eSourceType.Docking);
-            var monitorList = await BLLFactory<Yw.BLL.HydroMonitor>.Instance.GetBySourceType(_visualListHelper.HydroInfo.ID, code, Yw.Hydro.eSourceType.Docking);
-            if (monitorList != null && monitorList.Count > 0)
-            {
-                all.AddRange(monitorList);
-            }
-            return monitorList;
-        }
-
-        /// <summary>
         /// 鏇存柊
         /// </summary>
-        public async Task Update(string code, eSourceType sourceType, List<HydroMonitorVmo> monitorList)
+        public async Task Update(string code, List<HydroMonitorVmo> monitorList)
         {
             var all = await GetAll();
-            all.RemoveAll(x => x.Parter == code && x.SourceType == sourceType);
+            all.RemoveAll(x => x.Parter == code);
             if (monitorList != null && monitorList.Count > 0)
             {
                 all.AddRange(monitorList);
             }
         }
 
-        /// <summary>
-        /// 鏇存柊鍒嗘瀽
-        /// </summary>
-        public async Task<List<HydroMonitorVmo>> UpdateAnalyse(string code)
-        {
-            var all = await GetAll();
-            all.RemoveAll(x => x.Parter == code && x.SourceType == Yw.Hydro.eSourceType.Analyse);
-            var monitorList = await BLLFactory<Yw.BLL.HydroMonitor>.Instance.GetBySourceType(_visualListHelper.HydroInfo.ID, code, Yw.Hydro.eSourceType.Analyse);
-            if (monitorList != null && monitorList.Count > 0)
-            {
-                all.AddRange(monitorList);
-            }
-            return monitorList;
-        }
+
+
 
 
 
diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/04-monitor/02-value/SimulationMonitorValueHelper.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/04-monitor/02-value/SimulationMonitorValueHelper.cs
index 20e8f3f..de69dcc 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/04-monitor/02-value/SimulationMonitorValueHelper.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/04-monitor/02-value/SimulationMonitorValueHelper.cs
@@ -1,4 +1,5 @@
 锘縰sing Yw.Hydro;
+using static Yw.WinFrmUI.Q3d.EpanetEnum;
 
 namespace HStation.WinFrmUI
 {
@@ -13,19 +14,15 @@
         public SimulationMonitorValueHelper
             (
                 SimulationVisualListHelper visualListHelper,
-                SimulationMonitorHelper monitorHelper,
-                SimulationCalcuResultHelper calcuResultHelper
+                SimulationMonitorHelper monitorHelper
             )
         {
             _visualListHelper = visualListHelper;
             _monitorHelper = monitorHelper;
-            _calcuResultHelper = calcuResultHelper;
-            _calcuResultHelper.InitialEvent += async () => await Update();
         }
 
         private readonly SimulationVisualListHelper _visualListHelper = null;//鍙鍒楄〃杈呭姪绫�
         private readonly SimulationMonitorHelper _monitorHelper = null;//鐩戞祴鐐硅緟鍔╃被     
-        private readonly SimulationCalcuResultHelper _calcuResultHelper = null;//璁$畻缁撴灉杈呭姪绫�
         private List<HydroMonitorValueViewModel> _allList = null;//鎵�鏈夌洃娴嬪�煎垪琛�
 
         /// <summary>
@@ -47,13 +44,7 @@
                             if (allVisualDict.ContainsKey(monitor.Parter))
                             {
                                 var visual = allVisualDict[monitor.Parter];
-                                double? propValue = null;
-                                var calcuVisualResult = _calcuResultHelper.GetVisual(monitor.Parter);
-                                if (calcuVisualResult != null)
-                                {
-                                    propValue = calcuVisualResult.GetCalcuValue(monitor.PropName);
-                                }
-                                var vm = new HydroMonitorValueViewModel(monitor, visual, propValue);
+                                var vm = new HydroMonitorValueViewModel(monitor, visual, null);
                                 _allList.Add(vm);
                             }
                         }
@@ -64,66 +55,16 @@
         }
 
         /// <summary>
-        /// 鑾峰彇瀵规帴鍒楄〃
-        /// </summary>
-        public async Task<List<HydroMonitorValueViewModel>> GetDockingList()
-        {
-            var all = await GetAll();
-            return all.Where(x => x.Vmo.SourceType == eSourceType.Docking).ToList();
-        }
-
-        /// <summary>
-        /// 鑾峰彇鍒嗘瀽鍒楄〃
-        /// </summary>
-        public async Task<List<HydroMonitorValueViewModel>> GetAnalyseList()
-        {
-            var all = await GetAll();
-            return all.Where(x => x.Vmo.SourceType == eSourceType.Analyse).ToList();
-        }
-
-        /// <summary>
         /// 鏇存柊
         /// </summary>
-        public async Task Update()
+        public async Task Update(string code, List<HydroMonitorValueViewModel> valueList)
         {
             var all = await GetAll();
-            foreach (var item in all)
-            {
-                if (!item.PropValue.HasValue)
-                {
-                    var calcuVisualResult = _calcuResultHelper.GetVisual(item.Vmo.Parter);
-                    if (calcuVisualResult != null)
-                    {
-                        var propValue = calcuVisualResult.GetCalcuValue(item.Vmo.PropName);
-                        if (propValue.HasValue)
-                        {
-                            item.PropValue = item.Vmo.GetPropValue(propValue.Value);
-                        }
-                    }
-                }
-            }
-        }
-
-        /// <summary>
-        /// 鏇存柊
-        /// </summary>
-        public async Task Update(string code, eSourceType sourceType, List<HydroMonitorValueViewModel> valueList)
-        {
-            var all = await GetAll();
-            all.RemoveAll(x => x.Vmo.Parter == code && x.Vmo.SourceType == sourceType);
+            all.RemoveAll(x => x.Vmo.Parter == code);
             if (valueList != null && valueList.Count > 0)
             {
                 all.AddRange(valueList);
             }
-        }
-
-        /// <summary>
-        /// 閲嶇疆
-        /// </summary>
-        public async Task Reset(List<HydroWorkingMonitorViewModel> allWorkingMonitorList)
-        {
-            var all = await GetAll();
-            all.UpdateMonitorValue(allWorkingMonitorList);
         }
 
         /// <summary>
diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.Designer.cs
index 3daad97..a90e1d2 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.Designer.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.Designer.cs
@@ -83,9 +83,8 @@
             barBtnExportWord = new DevExpress.XtraBars.BarButtonItem();
             barBtnWorkingMonitorAnaly = new DevExpress.XtraBars.BarButtonItem();
             barBtnSetCoolingList = new DevExpress.XtraBars.BarButtonItem();
-            barBtnDockingMonitor = new DevExpress.XtraBars.BarButtonItem();
-            barBtnDockingMonitorValue = new DevExpress.XtraBars.BarButtonItem();
-            barBtnAnalyseMonitor = new DevExpress.XtraBars.BarButtonItem();
+            barBtnSetMonitorList = new DevExpress.XtraBars.BarButtonItem();
+            barBtnSetMonitorValueList = new DevExpress.XtraBars.BarButtonItem();
             barBtnMgrWorking = new DevExpress.XtraBars.BarButtonItem();
             barToggleSwitchPress = new DevExpress.XtraBars.BarToggleSwitchItem();
             barBtnEvaluation = new DevExpress.XtraBars.BarButtonItem();
@@ -128,7 +127,7 @@
             // 
             ribbonControl1.ExpandCollapseItem.Id = 0;
             ribbonControl1.ItemPanelStyle = DevExpress.XtraBars.Ribbon.RibbonItemPanelStyle.Classic;
-            ribbonControl1.Items.AddRange(new DevExpress.XtraBars.BarItem[] { ribbonControl1.ExpandCollapseItem, barBtnCheck, barBtnCalcu, barBtnExportInp, barBtnSave, barBtnVisualList, barBtnSetList, barBtnSetPumpList, barBtnSetValveList, barBtnSetPipeList, barBtnSetElbowsList, barBtnSetThreelinkList, barBtnSetFourlinkList, barBtnSetTranslationList, barBtnSetExchangerList, barBtnSetJunctionList, barBtnPumpAnaly, barBtnSearch, barBtnSetGradingList, barBtnApplyGradingList, barBtnRefresh, barBtnSetMark, barBtnSetReservoirList, barBtnSetTankList, barBtnSetWaterboxList, barBtnSetBluntheadList, barBtnSetNozzleList, barBtnSetHydrantList, barBtnSetMeterList, barBtnSetCompressorList, barBtnSetFlowmeterList, barBtnSetPressmeterList, barCkMonitorVisible, barCkMark, barCkGrading, barCkCalcu, barBtnWorkingLossCurve, barBtnWorkingLossStatistics, barBtnEnergyAnaly, barBtnWorkingAnaly, barBtnPumpParallel, barBtnAccuracy, barBtnSetVisualVisible, barCkDecorator, barBtnAddWorking, barBtnPumpCurve, barBtnEditScheme, barBtnDeleteScheme, barBtnExportWord, barBtnWorkingMonitorAnaly, barBtnSetCoolingList, barBtnDockingMonitor, barBtnDockingMonitorValue, barBtnAnalyseMonitor, barBtnMgrWorking, barToggleSwitchPress, barBtnEvaluation });
+            ribbonControl1.Items.AddRange(new DevExpress.XtraBars.BarItem[] { ribbonControl1.ExpandCollapseItem, barBtnCheck, barBtnCalcu, barBtnExportInp, barBtnSave, barBtnVisualList, barBtnSetList, barBtnSetPumpList, barBtnSetValveList, barBtnSetPipeList, barBtnSetElbowsList, barBtnSetThreelinkList, barBtnSetFourlinkList, barBtnSetTranslationList, barBtnSetExchangerList, barBtnSetJunctionList, barBtnPumpAnaly, barBtnSearch, barBtnSetGradingList, barBtnApplyGradingList, barBtnRefresh, barBtnSetMark, barBtnSetReservoirList, barBtnSetTankList, barBtnSetWaterboxList, barBtnSetBluntheadList, barBtnSetNozzleList, barBtnSetHydrantList, barBtnSetMeterList, barBtnSetCompressorList, barBtnSetFlowmeterList, barBtnSetPressmeterList, barCkMonitorVisible, barCkMark, barCkGrading, barCkCalcu, barBtnWorkingLossCurve, barBtnWorkingLossStatistics, barBtnEnergyAnaly, barBtnWorkingAnaly, barBtnPumpParallel, barBtnAccuracy, barBtnSetVisualVisible, barCkDecorator, barBtnAddWorking, barBtnPumpCurve, barBtnEditScheme, barBtnDeleteScheme, barBtnExportWord, barBtnWorkingMonitorAnaly, barBtnSetCoolingList, barBtnSetMonitorList, barBtnSetMonitorValueList, barBtnMgrWorking, barToggleSwitchPress, barBtnEvaluation });
             ribbonControl1.Location = new Point(0, 0);
             ribbonControl1.MaxItemId = 97;
             ribbonControl1.Name = "ribbonControl1";
@@ -542,33 +541,24 @@
             barBtnSetCoolingList.ImageOptions.SvgImageSize = new Size(16, 16);
             barBtnSetCoolingList.Name = "barBtnSetCoolingList";
             // 
-            // barBtnDockingMonitor
+            // barBtnSetMonitorList
             // 
-            barBtnDockingMonitor.Caption = "浼犳劅鍣ㄦ祴鐐�";
-            barBtnDockingMonitor.Enabled = false;
-            barBtnDockingMonitor.Id = 87;
-            barBtnDockingMonitor.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barBtnDockingMonitor.ImageOptions.SvgImage");
-            barBtnDockingMonitor.Name = "barBtnDockingMonitor";
-            barBtnDockingMonitor.RibbonStyle = DevExpress.XtraBars.Ribbon.RibbonItemStyles.SmallWithText;
-            barBtnDockingMonitor.ItemClick += barBtnDockingMonitor_ItemClick;
+            barBtnSetMonitorList.Caption = "鐩戞祴鐐�";
+            barBtnSetMonitorList.Enabled = false;
+            barBtnSetMonitorList.Id = 87;
+            barBtnSetMonitorList.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barBtnSetMonitorList.ImageOptions.SvgImage");
+            barBtnSetMonitorList.Name = "barBtnSetMonitorList";
+            barBtnSetMonitorList.RibbonStyle = DevExpress.XtraBars.Ribbon.RibbonItemStyles.Large;
+            barBtnSetMonitorList.ItemClick += barBtnSetMonitorList_ItemClick;
             // 
-            // barBtnDockingMonitorValue
+            // barBtnSetMonitorValueList
             // 
-            barBtnDockingMonitorValue.Caption = "浼犳劅鍣ㄦ祴鍊�";
-            barBtnDockingMonitorValue.Id = 88;
-            barBtnDockingMonitorValue.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barBtnDockingMonitorValue.ImageOptions.SvgImage");
-            barBtnDockingMonitorValue.Name = "barBtnDockingMonitorValue";
-            barBtnDockingMonitorValue.RibbonStyle = DevExpress.XtraBars.Ribbon.RibbonItemStyles.SmallWithText;
-            barBtnDockingMonitorValue.ItemClick += barBtnDockingMonitorValue_ItemClick;
-            // 
-            // barBtnAnalyseMonitor
-            // 
-            barBtnAnalyseMonitor.Caption = "鍒嗘瀽娴嬬偣";
-            barBtnAnalyseMonitor.Enabled = false;
-            barBtnAnalyseMonitor.Id = 89;
-            barBtnAnalyseMonitor.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barBtnAnalyseMonitor.ImageOptions.SvgImage");
-            barBtnAnalyseMonitor.Name = "barBtnAnalyseMonitor";
-            barBtnAnalyseMonitor.ItemClick += barBtnAnalyseMonitor_ItemClick;
+            barBtnSetMonitorValueList.Caption = "璁剧疆娴嬪��";
+            barBtnSetMonitorValueList.Id = 88;
+            barBtnSetMonitorValueList.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barBtnSetMonitorValueList.ImageOptions.SvgImage");
+            barBtnSetMonitorValueList.Name = "barBtnSetMonitorValueList";
+            barBtnSetMonitorValueList.RibbonStyle = DevExpress.XtraBars.Ribbon.RibbonItemStyles.SmallWithText;
+            barBtnSetMonitorValueList.ItemClick += barBtnSetMonitorValueList_ItemClick;
             // 
             // barBtnMgrWorking
             // 
@@ -638,10 +628,9 @@
             // 
             // ribbonPageGroup7
             // 
-            ribbonPageGroup7.ItemLinks.Add(barBtnDockingMonitor);
-            ribbonPageGroup7.ItemLinks.Add(barBtnDockingMonitorValue);
+            ribbonPageGroup7.ItemLinks.Add(barBtnSetMonitorList);
+            ribbonPageGroup7.ItemLinks.Add(barBtnSetMonitorValueList);
             ribbonPageGroup7.ItemLinks.Add(barCkMonitorVisible);
-            ribbonPageGroup7.ItemLinks.Add(barBtnAnalyseMonitor);
             ribbonPageGroup7.Name = "ribbonPageGroup7";
             ribbonPageGroup7.Text = "鐩戞祴";
             // 
@@ -911,9 +900,8 @@
         private DevExpress.XtraBars.BarButtonItem barBtnExportWord;
         private DevExpress.XtraBars.BarButtonItem barBtnWorkingMonitorAnaly;
         private DevExpress.XtraBars.BarButtonItem barBtnSetCoolingList;
-        private DevExpress.XtraBars.BarButtonItem barBtnDockingMonitor;
-        private DevExpress.XtraBars.BarButtonItem barBtnDockingMonitorValue;
-        private DevExpress.XtraBars.BarButtonItem barBtnAnalyseMonitor;
+        private DevExpress.XtraBars.BarButtonItem barBtnSetMonitorList;
+        private DevExpress.XtraBars.BarButtonItem barBtnSetMonitorValueList;
         private DevExpress.XtraBars.BarButtonItem barBtnMgrWorking;
         private DevExpress.XtraEditors.Repository.RepositoryItemRadioGroup repositoryItemRadioGroup1;
         private DevExpress.XtraBars.BarToggleSwitchItem barToggleSwitchPress;
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 93ed623..94c7f81 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
@@ -124,8 +124,7 @@
         private void InitialSvgImages()
         {
             //鐩戞祴
-            this.barBtnDockingMonitor.ImageOptions.SvgImage = HydroMonitorSvgImageHelper.Docking;
-            this.barBtnAnalyseMonitor.ImageOptions.SvgImage = HydroMonitorSvgImageHelper.Analyse;
+            this.barBtnSetMonitorList.ImageOptions.SvgImage = HydroMonitorSvgImageHelper.Docking;
 
             //姘村簱
             this.barBtnSetReservoirList.ImageOptions.SvgImage = AssetsMainSvgImageHelper.Tank;
@@ -559,16 +558,14 @@
                 case eSimulationVisualSource.None:
                     {
                         _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code);
-                        this.barBtnDockingMonitor.Enabled = visual != null;
-                        this.barBtnAnalyseMonitor.Enabled = visual != null;
+                        this.barBtnSetMonitorList.Enabled = visual != null;
                         SetPropertyCtrl(visual);
                     }
                     break;
 
                 case eSimulationVisualSource.Bimface:
                     {
-                        this.barBtnDockingMonitor.Enabled = visual != null;
-                        this.barBtnAnalyseMonitor.Enabled = visual != null;
+                        this.barBtnSetMonitorList.Enabled = visual != null;
                         SetPropertyCtrl(visual);
                     }
                     break;
@@ -576,8 +573,7 @@
                 case eSimulationVisualSource.Q3d:
                     {
                         _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code);
-                        this.barBtnDockingMonitor.Enabled = visual != null;
-                        this.barBtnAnalyseMonitor.Enabled = visual != null;
+                        this.barBtnSetMonitorList.Enabled = visual != null;
                         SetPropertyCtrl(visual);
                     }
                     break;
@@ -585,16 +581,14 @@
                 case eSimulationVisualSource.Property:
                     {
                         _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code);
-                        this.barBtnDockingMonitor.Enabled = visual != null;
-                        this.barBtnAnalyseMonitor.Enabled = visual != null;
+                        this.barBtnSetMonitorList.Enabled = visual != null;
                     }
                     break;
 
                 case eSimulationVisualSource.List:
                     {
                         _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code);
-                        this.barBtnDockingMonitor.Enabled = visual != null;
-                        this.barBtnAnalyseMonitor.Enabled = visual != null;
+                        this.barBtnSetMonitorList.Enabled = visual != null;
                         SetPropertyCtrl(visual);
                     }
                     break;
@@ -602,8 +596,7 @@
                 case eSimulationVisualSource.Set:
                     {
                         _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code);
-                        this.barBtnDockingMonitor.Enabled = visual != null;
-                        this.barBtnAnalyseMonitor.Enabled = visual != null;
+                        this.barBtnSetMonitorList.Enabled = visual != null;
                         SetPropertyCtrl(visual);
                     }
                     break;
@@ -611,8 +604,7 @@
                 case eSimulationVisualSource.Search:
                     {
                         _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code);
-                        this.barBtnDockingMonitor.Enabled = visual != null;
-                        this.barBtnAnalyseMonitor.Enabled = visual != null;
+                        this.barBtnSetMonitorList.Enabled = visual != null;
                         SetPropertyCtrl(visual);
                     }
                     break;
@@ -620,8 +612,7 @@
                 case eSimulationVisualSource.Monitor:
                     {
                         _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code);
-                        this.barBtnDockingMonitor.Enabled = visual != null;
-                        this.barBtnAnalyseMonitor.Enabled = visual != null;
+                        this.barBtnSetMonitorList.Enabled = visual != null;
                         SetPropertyCtrl(visual);
                     }
                     break;
@@ -629,8 +620,7 @@
                 case eSimulationVisualSource.Check:
                     {
                         _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code);
-                        this.barBtnDockingMonitor.Enabled = visual != null;
-                        this.barBtnAnalyseMonitor.Enabled = visual != null;
+                        this.barBtnSetMonitorList.Enabled = visual != null;
                         SetPropertyCtrl(visual);
                     }
                     break;
@@ -638,8 +628,7 @@
                 case eSimulationVisualSource.Calcu:
                     {
                         _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code);
-                        this.barBtnDockingMonitor.Enabled = visual != null;
-                        this.barBtnAnalyseMonitor.Enabled = visual != null;
+                        this.barBtnSetMonitorList.Enabled = visual != null;
                         SetPropertyCtrl(visual);
                     }
                     break;
@@ -647,8 +636,7 @@
                 case eSimulationVisualSource.Warning:
                     {
                         _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code);
-                        this.barBtnDockingMonitor.Enabled = visual != null;
-                        this.barBtnAnalyseMonitor.Enabled = visual != null;
+                        this.barBtnSetMonitorList.Enabled = visual != null;
                         SetPropertyCtrl(visual);
                     }
                     break;
@@ -1907,21 +1895,7 @@
             return await helper.GetAll();
         }
 
-        //鑾峰彇鐩戞祴瀵规帴鍒楄〃
-        private async Task<List<HydroMonitorVmo>> GetMonitorDockingList()
-        {
-            var helper = GetMonitorHelper();
-            return await helper.GetDockingList();
-        }
-
-        //鑾峰彇鐩戞祴鍒嗘瀽鍒楄〃
-        private async Task<List<HydroMonitorVmo>> GetMonitorAnalyseList()
-        {
-            var helper = GetMonitorHelper();
-            return await helper.GetAnalyseList();
-        }
-
-        #endregion 鐩戞祴鐐�
+        #endregion
 
         #region 鐩戞祴鍊�
 
@@ -1935,8 +1909,7 @@
             {
                 var visualListHelper = GetVisualListHelper();
                 var monitorHelper = GetMonitorHelper();
-                var calcuResultHelper = GetCalcuResultHelper();
-                _monitorValueHelper = new SimulationMonitorValueHelper(visualListHelper, monitorHelper, calcuResultHelper);
+                _monitorValueHelper = new SimulationMonitorValueHelper(visualListHelper, monitorHelper);
             }
             return _monitorValueHelper;
         }
@@ -1948,21 +1921,7 @@
             return await helper.GetAll();
         }
 
-        //鑾峰彇鐩戞祴瀵规帴鍊煎垪琛�
-        private async Task<List<HydroMonitorValueViewModel>> GetMonitorDockingValueList()
-        {
-            var helper = GetMonitorValueHelper();
-            return await helper.GetDockingList();
-        }
-
-        //鑾峰彇鐩戞祴鍒嗘瀽鍊煎垪琛�
-        private async Task<List<HydroMonitorValueViewModel>> GetMonitorAnalyseValueList()
-        {
-            var helper = GetMonitorValueHelper();
-            return await helper.GetAnalyseList();
-        }
-
-        //閲嶇疆
+        //閲嶇疆鐩戞祴鍊�
         private void ResetMonitorValue()
         {
             var allWorkingList = GetWorkingList();
@@ -1974,12 +1933,12 @@
             }
         }
 
-        #endregion 鐩戞祴鍊�
+        #endregion
 
-        #region 浼犳劅鍣ㄦ祴鐐�
+        #region 璁剧疆娴嬬偣
 
-        //璁剧疆鍙鏋勪欢瀵规帴娴嬬偣鍒楄〃
-        private async void SetMonitorDockingList(HydroVisualInfo visual)
+        //璁剧疆娴嬬偣鍒楄〃
+        private async void SetMonitorList(HydroVisualInfo visual)
         {
             if (_hydroInfo == null)
             {
@@ -1993,33 +1952,33 @@
             var allMonitorList = await monitorHelper.GetAll();
             var monitorValueHelper = GetMonitorValueHelper();
             var allMonitorValueList = await monitorValueHelper.GetAll();
-            var calcuResult = GetCalcuResult();
-            var dlg = new SetHydroMonitorDockingListDlg();
+            var dlg = new SetHydroMonitorListDlg();
             dlg.ReloadDataEvent += async (list) =>
             {
                 var monitorList = list?.Select(x => x.Vmo).ToList();
-                await monitorHelper.Update(visual.Code, eSourceType.Docking, monitorList);
-                await monitorValueHelper.Update(visual.Code, eSourceType.Docking, list);
+                await monitorHelper.Update(visual.Code, monitorList);
+                await monitorValueHelper.Update(visual.Code, list);
                 var monitorMarkerHelper = await GetMonitorMarkerHelper();
                 monitorMarkerHelper.Set();
             };
-            dlg.SetBindingData(_hydroInfo, visual, allMonitorList, allMonitorValueList, calcuResult);
+            dlg.SetBindingData(_hydroInfo, visual, allMonitorList, allMonitorValueList);
             dlg.ShowDialog();
         }
 
-        //璁剧疆浼犳劅鍣ㄦ祴鐐�
-        private void barBtnDockingMonitor_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
+        //璁剧疆娴嬬偣鍒楄〃
+        private void barBtnSetMonitorList_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
         {
             if (_visual == null)
             {
+                TipFormHelper.ShowWarn("璇烽�夋嫨鏋勪欢鍚庨噸璇曪紒");
                 return;
             }
-            SetMonitorDockingList(_visual);
+            SetMonitorList(_visual);
         }
 
-        #endregion 浼犳劅鍣ㄦ祴鐐�
+        #endregion
 
-        #region 浼犳劅鍣ㄦ祴鍊�
+        #region 璁剧疆娴嬪��
 
         //鐩戞祴鍊煎垪琛ㄦ帶浠�
         private HydroMonitorValueListCtrl _monitorValueListCtrl = null;
@@ -2059,8 +2018,8 @@
             }
         }
 
-        //鏄剧ず鐩戞祴瀵规帴鍊煎垪琛ㄦ帶浠�
-        private async void ShowMonitorDockingValueListCtrl()
+        //鏄剧ず鐩戞祴鍊煎垪琛ㄦ帶浠�
+        private async void ShowMonitorValueListCtrl()
         {
             var monitorValueListCtrl = GetMonitorValueListCtrl();
             if (!IsMonitorValueListCtrlVisible)
@@ -2068,60 +2027,20 @@
                 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();
+            var allValueList = await GetMonitorValueList();
             monitorValueListCtrl.SetBindingData(allValueList);
         }
 
-        //璁剧疆浼犳劅鍣ㄦ祴鍊�
-        private void barBtnDockingMonitorValue_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
+        //璁剧疆娴嬪��
+        private void barBtnSetMonitorValueList_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
         {
-            ShowMonitorDockingValueListCtrl();
+            ShowMonitorValueListCtrl();
         }
 
-        #endregion 浼犳劅鍣ㄦ祴鍊�
-
-        #region 鍒嗘瀽娴嬬偣
-
-        //璁剧疆鍙鏋勪欢鍒嗘瀽娴嬬偣鍒楄〃
-        private async void SetMonitorAnalyseList(HydroVisualInfo visual)
-        {
-            if (_hydroInfo == null)
-            {
-                return;
-            }
-            if (visual == null)
-            {
-                return;
-            }
-            var monitorHelper = GetMonitorHelper();
-            var allMonitorList = await monitorHelper.GetAnalyseList();
-            var dlg = new SetHydroMonitorAnalyseListDlg();
-            dlg.ReloadDataEvent += async (list) =>
-            {
-                await monitorHelper.Update(visual.Code, eSourceType.Analyse, list);
-                //var monitorMarkerHelper = await GetMonitorMarkerHelper();
-                //monitorMarkerHelper.Update(visual.Code, monitorList);
-                //monitorMarkerHelper.Set();
-            };
-            dlg.SetBindingData(_hydroInfo, visual, allMonitorList);
-            dlg.ShowDialog();
-        }
-
-        //璁剧疆鍒嗘瀽娴嬬偣
-        private void barBtnAnalyseMonitor_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
-        {
-            if (_visual == null)
-            {
-                return;
-            }
-            SetMonitorAnalyseList(_visual);
-        }
-
-        #endregion 鍒嗘瀽娴嬬偣
+        #endregion 
 
         #region 娴嬬偣鏍囪
 
@@ -2148,7 +2067,7 @@
             monitorMarkerHelper.Set();
         }
 
-        #endregion 娴嬬偣鏍囪
+        #endregion
 
         #region 妯″瀷妫�鏌�
 
@@ -3126,7 +3045,7 @@
                 this.docPnlBottom.Height = 350;
             }
 
-            var allMonitorList = await GetMonitorAnalyseList();
+            var allMonitorList = await GetMonitorList();
             var isHead = _calcuPressModeIsHead;
             var allEvaluationList = await GetEvaluationList();
 
@@ -3147,7 +3066,7 @@
             ShowMonitorAnalyListCtrl();
         }
 
-        #endregion 鐩戞祴鍒嗘瀽
+        #endregion
 
         #region 宸ュ喌鍒嗘瀽
 
@@ -3200,10 +3119,11 @@
             {
                 return;
             }
-            var allMonitorList = await GetMonitorDockingList();
+
+            var allMonitorList = await GetMonitorList();
             if (allMonitorList == null || allMonitorList.Count < 1)
             {
-                TipFormHelper.ShowWarn("璇烽厤缃紶鎰熷櫒娴嬬偣鍚庨噸璇曪紒");
+                TipFormHelper.ShowWarn("璇疯缃洃娴嬬偣鍚庨噸璇曪紒");
                 return;
             }
 
@@ -3213,6 +3133,14 @@
             var workingList = GetCheckedWorkingList();
             if (workingList == null || workingList.Count < 1)
             {
+                var allMonitorValueList = await GetMonitorValueList();
+                allMonitorValueList = allMonitorValueList?.Where(x => x.PropValue.HasValue).ToList();
+                if (allMonitorValueList == null || allMonitorValueList.Count < 1)
+                {
+                    TipFormHelper.ShowWarn("璇疯缃洃娴嬪�煎悗锛岄噸鏂拌绠楋紒");
+                    return;
+                }
+
                 var workingHelper = GetWorkingHelper();
                 if (!workingHelper.Initialized)
                 {
diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.resx b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.resx
index b488d8a..6c67036 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.resx
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.resx
@@ -751,7 +751,7 @@
         IDMyLDEwIDMyLDQgICIgY2xhc3M9IkJsdWUiIC8+DQogIDwvZz4NCjwvc3ZnPgs=
 </value>
   </data>
-  <data name="barBtnDockingMonitor.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
+  <data name="barBtnSetMonitorList.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
         AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
         LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
@@ -777,7 +777,7 @@
         Ljd6IiBjbGFzcz0iQmxhY2siIC8+DQogIDwvZz4NCjwvc3ZnPgs=
 </value>
   </data>
-  <data name="barBtnDockingMonitorValue.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
+  <data name="barBtnSetMonitorValueList.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
         AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
         LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
@@ -798,50 +798,6 @@
         LDI0IDEyLDI4IDE0LDI4IDE0LDI0IDE2LDI0IDE2LDE4IDE4LDE4IDE4LDIwIDIwLDIwIDIwLDE2IDIy
         LDE2IDIyLDEwIDI0LDEwIDI0LDE0IDI2LDE0IDI2LDE4IDI4LDE4IDI4LDE0IDMwLDE0IDMwLDEwICAg
         IDMyLDEwIDMyLDQgICIgY2xhc3M9IkJsdWUiIC8+DQogIDwvZz4NCjwvc3ZnPgs=
-</value>
-  </data>
-  <data name="barBtnAnalyseMonitor.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
-    <value>
-        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
-        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
-        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAJYIAAAC77u/
-        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
-        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
-        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
-        Y2U9InByZXNlcnZlIiBpZD0iRmlsZHNfSXRlbXNfU2V0cyIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5k
-        Om5ldyAwIDAgMzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsYWNre2ZpbGw6Izcy
-        NzI3Mjt9CgkuQmx1ZXtmaWxsOiMxMTc3RDc7fQoJLnN0MHtvcGFjaXR5OjAuNTt9Cjwvc3R5bGU+DQog
-        IDxnIGNsYXNzPSJzdDAiPg0KICAgIDxwYXRoIGQ9Ik0xMCwxMEg2VjZoNFYxMHogTTI0LDZIMTJ2NGgx
-        MlY2eiBNMTAsMTJINnYxMmg0VjEyeiIgY2xhc3M9IkJsdWUiIC8+DQogIDwvZz4NCiAgPHBhdGggZD0i
-        TTMxLDEyaC0zVjNjMC0wLjYtMC40LTEtMS0xSDNDMi40LDIsMiwyLjQsMiwzdjI0YzAsMC42LDAuNCwx
-        LDEsMWg5djNjMCwwLjUsMC41LDEsMSwxaDE4YzAuNSwwLDEtMC41LDEtMSAgVjEzQzMyLDEyLjUsMzEu
-        NSwxMiwzMSwxMnogTTQsMjZWNGgyMnY4SDEzYy0wLjUsMC0xLDAuNS0xLDF2MTNINHogTTMwLDMwSDE0
-        di0ydi0yVjE0aDEyaDJoMlYzMHogTTIyLjcsMTguOUgyNGwtMC4zLDEuMmgtMS4zICBsLTEuMyw1LjFj
-        LTAuMSwwLjYtMC40LDEuMS0wLjcsMS42Yy0wLjMsMC40LTAuNywwLjctMS4xLDAuOWMtMC40LDAuMi0w
-        LjksMC4zLTEuNCwwLjNjLTAuNSwwLTEtMC4xLTEuMy0wLjMgIGMtMC40LTAuMi0wLjYtMC41LTAuNi0w
-        LjljMC0wLjMsMC4xLTAuNSwwLjMtMC42YzAuMi0wLjIsMC40LTAuMywwLjctMC4zYzAuMSwwLDAuMiww
-        LDAuMywwLjFjMC4xLDAsMC4yLDAuMSwwLjMsMC4yICBjMC4xLDAsMC4yLDAuMiwwLjMsMC40YzAuMSww
-        LjEsMC4xLDAuMSwwLjIsMC4yYzAuMSwwLDAuMSwwLDAuMiwwYzAuMywwLDAuNS0wLjMsMC42LTAuOWwx
-        LjMtNS43aC0wLjlsMC4zLTEuMmgxbDAuMi0wLjYgIGMwLjItMC43LDAuNS0xLjMsMS4xLTEuN2MwLjYt
-        MC40LDEuMy0wLjYsMi4yLTAuNmMwLjUsMCwwLjgsMC4xLDEuMSwwLjJjMC4zLDAuMSwwLjUsMC4yLDAu
-        NiwwLjRjMC4xLDAuMiwwLjIsMC40LDAuMiwwLjYgIGMwLDAuMiwwLDAuMy0wLjEsMC41cy0wLjIsMC4z
-        LTAuNCwwLjNzLTAuMywwLjEtMC41LDAuMWMtMC4yLDAtMC4zLDAtMC41LTAuMWMtMC4xLTAuMS0wLjMt
-        MC4yLTAuNC0wLjNjLTAuMi0wLjItMC4zLTAuMy0wLjMtMC4zICBjLTAuMSwwLTAuMS0wLjEtMC4yLTAu
-        MWMtMC4yLDAtMC4zLDAuMS0wLjQsMC4yYy0wLjEsMC4xLTAuMiwwLjMtMC4yLDAuN0wyMi43LDE4Ljl6
-        IE0yNS4yLDIyLjFsMC42LDEuMmMwLjMtMC41LDAuNi0wLjgsMC43LTAuOSAgYzAuMi0wLjIsMC4zLTAu
-        MywwLjUtMC40YzAuMi0wLjEsMC4zLTAuMSwwLjUtMC4xYzAuMiwwLDAuMywwLDAuNCwwLjFjMC4xLDAu
-        MSwwLjIsMC4yLDAuMiwwLjRjMCwwLjEsMCwwLjItMC4xLDAuMyAgcy0wLjEsMC4xLTAuMiwwLjJzLTAu
-        MSwwLjEtMC4yLDAuMWMwLDAtMC4xLDAtMC4zLDBjLTAuMiwwLTAuMywwLTAuMywwYy0wLjEsMC0wLjEs
-        MC4xLTAuMiwwLjFjLTAuMSwwLjEtMC4yLDAuMS0wLjIsMC4yICBjMCwwLTAuMiwwLjItMC40LDAuNmww
-        LjIsMC40YzAuMiwwLjMsMC4zLDAuNSwwLjQsMC42YzAuMSwwLjEsMC4yLDAuMSwwLjMsMC4xYzAuMiww
-        LDAuMy0wLjEsMC42LTAuM2wwLjQsMC41ICBjLTAuNCwwLjQtMC45LDAuNi0xLjQsMC42Yy0wLjIsMC0w
-        LjQsMC0wLjUtMC4xcy0wLjMtMC4yLTAuNC0wLjNzLTAuMi0wLjMtMC40LTAuNmwtMC4yLTAuNWMtMC4y
-        LDAuMy0wLjQsMC42LTAuNiwwLjggIGMtMC4yLDAuMi0wLjQsMC40LTAuNiwwLjVDMjMuOCwyNiwyMy43
-        LDI2LDIzLjUsMjZjLTAuMSwwLTAuMiwwLTAuMy0wLjFjLTAuMSwwLTAuMS0wLjEtMC4yLTAuMmMwLTAu
-        MS0wLjEtMC4yLTAuMS0wLjMgIGMwLTAuMSwwLTAuMiwwLjEtMC4zYzAuMS0wLjEsMC4xLTAuMiwwLjIt
-        MC4yczAuMi0wLjEsMC41LTAuMWMwLjIsMCwwLjMsMCwwLjQtMC4xYzAuMSwwLDAuMi0wLjEsMC4zLTAu
-        MnMwLjMtMC4zLDAuNS0wLjdsLTAuNC0wLjggIGgtMC42bDAuMi0wLjdjMC4zLDAsMC42LTAuMiwwLjkt
-        MC4zSDI1LjJ6IiBjbGFzcz0iQmxhY2siIC8+DQo8L3N2Zz4L
 </value>
   </data>
   <data name="barBtnMgrWorking.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy-analy/SimulationEnergyAnalyChartCtrl.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy-analy/SimulationEnergyAnalyChartCtrl.Designer.cs
index be13a13..43303fb 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy-analy/SimulationEnergyAnalyChartCtrl.Designer.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy-analy/SimulationEnergyAnalyChartCtrl.Designer.cs
@@ -36,7 +36,8 @@
             repositoryItemImageComboBox1 = new DevExpress.XtraEditors.Repository.RepositoryItemImageComboBox();
             barCkE = new DevExpress.XtraBars.BarCheckItem();
             barBtnCoord = new DevExpress.XtraBars.BarButtonItem();
-            barTxtPump = new DevExpress.XtraBars.BarEditItem();
+            barCmbPumpList = new DevExpress.XtraBars.BarEditItem();
+            repositoryItemImageComboBox2 = new DevExpress.XtraEditors.Repository.RepositoryItemImageComboBox();
             repositoryItemTextEdit5 = new DevExpress.XtraEditors.Repository.RepositoryItemTextEdit();
             barTxtQ = new DevExpress.XtraBars.BarEditItem();
             repositoryItemTextEdit1 = new DevExpress.XtraEditors.Repository.RepositoryItemTextEdit();
@@ -53,6 +54,7 @@
             pumpWorkingViewChart1 = new Yw.WinFrmUI.Phart.PumpWorkingViewChart();
             ((ISupportInitialize)barManager1).BeginInit();
             ((ISupportInitialize)repositoryItemImageComboBox1).BeginInit();
+            ((ISupportInitialize)repositoryItemImageComboBox2).BeginInit();
             ((ISupportInitialize)repositoryItemTextEdit5).BeginInit();
             ((ISupportInitialize)repositoryItemTextEdit1).BeginInit();
             ((ISupportInitialize)repositoryItemTextEdit2).BeginInit();
@@ -68,10 +70,10 @@
             barManager1.DockControls.Add(barDockControlLeft);
             barManager1.DockControls.Add(barDockControlRight);
             barManager1.Form = this;
-            barManager1.Items.AddRange(new DevExpress.XtraBars.BarItem[] { barCkE, barBtnCoord, barTxtQ, barTxtH, barTxtP, barTxtE, barTxtPump, barCmbGroup });
+            barManager1.Items.AddRange(new DevExpress.XtraBars.BarItem[] { barCkE, barBtnCoord, barTxtQ, barTxtH, barTxtP, barTxtE, barCmbGroup, barCmbPumpList });
             barManager1.MainMenu = bar2;
-            barManager1.MaxItemId = 8;
-            barManager1.RepositoryItems.AddRange(new DevExpress.XtraEditors.Repository.RepositoryItem[] { repositoryItemTextEdit1, repositoryItemTextEdit2, repositoryItemTextEdit3, repositoryItemTextEdit4, repositoryItemTextEdit5, repositoryItemImageComboBox1 });
+            barManager1.MaxItemId = 9;
+            barManager1.RepositoryItems.AddRange(new DevExpress.XtraEditors.Repository.RepositoryItem[] { repositoryItemTextEdit1, repositoryItemTextEdit2, repositoryItemTextEdit3, repositoryItemTextEdit4, repositoryItemTextEdit5, repositoryItemImageComboBox1, repositoryItemImageComboBox2 });
             // 
             // bar2
             // 
@@ -79,7 +81,7 @@
             bar2.DockCol = 0;
             bar2.DockRow = 0;
             bar2.DockStyle = DevExpress.XtraBars.BarDockStyle.Top;
-            bar2.LinksPersistInfo.AddRange(new DevExpress.XtraBars.LinkPersistInfo[] { new DevExpress.XtraBars.LinkPersistInfo(barCmbGroup), new DevExpress.XtraBars.LinkPersistInfo(barCkE), new DevExpress.XtraBars.LinkPersistInfo(barBtnCoord), new DevExpress.XtraBars.LinkPersistInfo(barTxtPump), new DevExpress.XtraBars.LinkPersistInfo(barTxtQ), new DevExpress.XtraBars.LinkPersistInfo(barTxtH), new DevExpress.XtraBars.LinkPersistInfo(barTxtP), new DevExpress.XtraBars.LinkPersistInfo(barTxtE) });
+            bar2.LinksPersistInfo.AddRange(new DevExpress.XtraBars.LinkPersistInfo[] { new DevExpress.XtraBars.LinkPersistInfo(barCmbGroup), new DevExpress.XtraBars.LinkPersistInfo(barCkE), new DevExpress.XtraBars.LinkPersistInfo(barBtnCoord), new DevExpress.XtraBars.LinkPersistInfo(DevExpress.XtraBars.BarLinkUserDefines.Width, barCmbPumpList, "", false, true, true, 71), new DevExpress.XtraBars.LinkPersistInfo(barTxtQ), new DevExpress.XtraBars.LinkPersistInfo(barTxtH), new DevExpress.XtraBars.LinkPersistInfo(barTxtP), new DevExpress.XtraBars.LinkPersistInfo(barTxtE) });
             bar2.OptionsBar.AllowQuickCustomization = false;
             bar2.OptionsBar.DrawBorder = false;
             bar2.OptionsBar.DrawDragBorder = false;
@@ -121,15 +123,22 @@
             barBtnCoord.PaintStyle = DevExpress.XtraBars.BarItemPaintStyle.CaptionGlyph;
             barBtnCoord.ItemClick += barBtnCoord_ItemClick;
             // 
-            // barTxtPump
+            // barCmbPumpList
             // 
-            barTxtPump.Alignment = DevExpress.XtraBars.BarItemLinkAlignment.Right;
-            barTxtPump.Caption = "姘存车";
-            barTxtPump.Edit = repositoryItemTextEdit5;
-            barTxtPump.EditWidth = 80;
-            barTxtPump.Id = 6;
-            barTxtPump.Name = "barTxtPump";
-            barTxtPump.PaintStyle = DevExpress.XtraBars.BarItemPaintStyle.CaptionGlyph;
+            barCmbPumpList.Alignment = DevExpress.XtraBars.BarItemLinkAlignment.Right;
+            barCmbPumpList.Caption = "姘存车:";
+            barCmbPumpList.Edit = repositoryItemImageComboBox2;
+            barCmbPumpList.EditWidth = 80;
+            barCmbPumpList.Id = 8;
+            barCmbPumpList.Name = "barCmbPumpList";
+            barCmbPumpList.PaintStyle = DevExpress.XtraBars.BarItemPaintStyle.CaptionGlyph;
+            barCmbPumpList.EditValueChanged += barCmbPumpList_EditValueChanged;
+            // 
+            // repositoryItemImageComboBox2
+            // 
+            repositoryItemImageComboBox2.AutoHeight = false;
+            repositoryItemImageComboBox2.Buttons.AddRange(new EditorButton[] { new EditorButton(ButtonPredefines.Combo) });
+            repositoryItemImageComboBox2.Name = "repositoryItemImageComboBox2";
             // 
             // repositoryItemTextEdit5
             // 
@@ -212,15 +221,15 @@
             barDockControlTop.Dock = DockStyle.Top;
             barDockControlTop.Location = new Point(0, 0);
             barDockControlTop.Manager = barManager1;
-            barDockControlTop.Size = new Size(1006, 24);
+            barDockControlTop.Size = new Size(1290, 24);
             // 
             // barDockControlBottom
             // 
             barDockControlBottom.CausesValidation = false;
             barDockControlBottom.Dock = DockStyle.Bottom;
-            barDockControlBottom.Location = new Point(0, 436);
+            barDockControlBottom.Location = new Point(0, 455);
             barDockControlBottom.Manager = barManager1;
-            barDockControlBottom.Size = new Size(1006, 0);
+            barDockControlBottom.Size = new Size(1290, 0);
             // 
             // barDockControlLeft
             // 
@@ -228,22 +237,22 @@
             barDockControlLeft.Dock = DockStyle.Left;
             barDockControlLeft.Location = new Point(0, 24);
             barDockControlLeft.Manager = barManager1;
-            barDockControlLeft.Size = new Size(0, 412);
+            barDockControlLeft.Size = new Size(0, 431);
             // 
             // barDockControlRight
             // 
             barDockControlRight.CausesValidation = false;
             barDockControlRight.Dock = DockStyle.Right;
-            barDockControlRight.Location = new Point(1006, 24);
+            barDockControlRight.Location = new Point(1290, 24);
             barDockControlRight.Manager = barManager1;
-            barDockControlRight.Size = new Size(0, 412);
+            barDockControlRight.Size = new Size(0, 431);
             // 
             // pumpWorkingViewChart1
             // 
             pumpWorkingViewChart1.Dock = DockStyle.Fill;
             pumpWorkingViewChart1.EquipVisible = true;
             pumpWorkingViewChart1.Location = new Point(0, 24);
-            pumpWorkingViewChart1.Margin = new Padding(2, 2, 2, 2);
+            pumpWorkingViewChart1.Margin = new Padding(2);
             pumpWorkingViewChart1.Name = "pumpWorkingViewChart1";
             pumpWorkingViewChart1.QEFeatType = Yw.Ahart.eFeatType.Cubic;
             pumpWorkingViewChart1.QEVisible = true;
@@ -251,10 +260,10 @@
             pumpWorkingViewChart1.QPFeatType = Yw.Ahart.eFeatType.Cubic;
             pumpWorkingViewChart1.QPVisble = true;
             pumpWorkingViewChart1.RunPointVisible = true;
-            pumpWorkingViewChart1.Size = new Size(1006, 412);
+            pumpWorkingViewChart1.Size = new Size(1290, 431);
             pumpWorkingViewChart1.TabIndex = 4;
             // 
-            // SimulationPumpSingleWorkingChartCtrl
+            // SimulationEnergyAnalyChartCtrl
             // 
             AutoScaleDimensions = new SizeF(7F, 14F);
             AutoScaleMode = AutoScaleMode.Font;
@@ -263,10 +272,11 @@
             Controls.Add(barDockControlRight);
             Controls.Add(barDockControlBottom);
             Controls.Add(barDockControlTop);
-            Name = "SimulationPumpSingleWorkingChartCtrl";
-            Size = new Size(1006, 436);
+            Name = "SimulationEnergyAnalyChartCtrl";
+            Size = new Size(1290, 455);
             ((ISupportInitialize)barManager1).EndInit();
             ((ISupportInitialize)repositoryItemImageComboBox1).EndInit();
+            ((ISupportInitialize)repositoryItemImageComboBox2).EndInit();
             ((ISupportInitialize)repositoryItemTextEdit5).EndInit();
             ((ISupportInitialize)repositoryItemTextEdit1).EndInit();
             ((ISupportInitialize)repositoryItemTextEdit2).EndInit();
@@ -295,9 +305,10 @@
         private DevExpress.XtraEditors.Repository.RepositoryItemTextEdit repositoryItemTextEdit3;
         private DevExpress.XtraBars.BarEditItem barTxtE;
         private DevExpress.XtraEditors.Repository.RepositoryItemTextEdit repositoryItemTextEdit4;
-        private DevExpress.XtraBars.BarEditItem barTxtPump;
         private DevExpress.XtraEditors.Repository.RepositoryItemTextEdit repositoryItemTextEdit5;
         private DevExpress.XtraBars.BarEditItem barCmbGroup;
         private DevExpress.XtraEditors.Repository.RepositoryItemImageComboBox repositoryItemImageComboBox1;
+        private DevExpress.XtraBars.BarEditItem barCmbPumpList;
+        private DevExpress.XtraEditors.Repository.RepositoryItemImageComboBox repositoryItemImageComboBox2;
     }
 }
diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy-analy/SimulationEnergyAnalyChartCtrl.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy-analy/SimulationEnergyAnalyChartCtrl.cs
index f0a50c7..2deb238 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy-analy/SimulationEnergyAnalyChartCtrl.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy-analy/SimulationEnergyAnalyChartCtrl.cs
@@ -14,21 +14,21 @@
             this.pumpWorkingViewChart1.RunPointSelectedEvent += PumpWorkingViewChart1_RunPointSelectedEvent;
         }
 
-        private Yw.Model.HydroModelInfo _hydroInfo = null;//姘村姏淇℃伅
+        private Yw.Model.HydroModelInfo _hydro = null;//姘村姏淇℃伅
         private HydroWorkingVmo _working = null;//宸ュ喌
-        private HydroEnergyAnalyViewModel _vm = null;
+        private HydroEnergyAnalyViewModel _vm = null;//鑳芥晥鍒嗘瀽瑙嗗浘
 
         /// <summary>
         /// 缁戝畾鏁版嵁
         /// </summary>
         public void SetBindingData
             (
-               Yw.Model.HydroModelInfo hydroInfo,
+               Yw.Model.HydroModelInfo hydro,
                HydroWorkingVmo working,
                HydroEnergyAnalyViewModel vm
             )
         {
-            if (hydroInfo == null)
+            if (hydro == null)
             {
                 return;
             }
@@ -40,7 +40,7 @@
             {
                 return;
             }
-            _hydroInfo = hydroInfo;
+            _hydro = hydro;
             _working = working;
             _vm = vm;
             InitialGroups();
@@ -66,18 +66,6 @@
             this.repositoryItemImageComboBox1.Items.EndUpdate();
         }
 
-        //鍒濆鍖栧浘琛�
-        private void InitialChart(PumpWorkingViewViewModel vm)
-        {
-            this.pumpWorkingViewChart1.SetBindingData(vm);
-            if (vm != null && vm.Items != null)
-            {
-                var item = vm.Items.FirstOrDefault();
-                SetCurrent(item);
-            }
-            this.barCkE.Checked = this.pumpWorkingViewChart1.QEVisible;
-        }
-
         //鍒嗙粍鍊兼敼鍙�
         private void barCmbGroup_EditValueChanged(object sender, EventArgs e)
         {
@@ -87,13 +75,35 @@
                 return;
             }
             var vm = CreateViewModel(group);
+            InitialPumpList(vm);
             InitialChart(vm);
+        }
+
+        //鍒濆鍖�
+        private void InitialPumpList(PumpWorkingViewViewModel vm)
+        {
+            this.repositoryItemImageComboBox2.Items.BeginUpdate();
+            this.repositoryItemImageComboBox2.Items.Clear();
+            this.barCmbPumpList.EditValue = null;
+            vm?.Items?.ForEach(x =>
+            {
+                this.repositoryItemImageComboBox2.Items.Add(x.Name, x, -1);
+            });
+            this.barCmbPumpList.EditValue = vm?.Items != null && vm.Items.Count > 0 ? vm.Items[0] : null;
+            this.repositoryItemImageComboBox2.Items.EndUpdate();
+        }
+
+        //鍒濆鍖栧浘琛�
+        private void InitialChart(PumpWorkingViewViewModel vm)
+        {
+            this.pumpWorkingViewChart1.SetBindingData(vm);
+            this.barCkE.Checked = this.pumpWorkingViewChart1.QEVisible;
         }
 
         //鍒涘缓
         private PumpWorkingViewViewModel CreateViewModel(string group)
         {
-            if (_hydroInfo == null)
+            if (_hydro == null)
             {
                 return default;
             }
@@ -146,12 +156,19 @@
             return vm;
         }
 
+        //姘存车閫夋嫨鏀瑰彉
+        private void barCmbPumpList_EditValueChanged(object sender, EventArgs e)
+        {
+            var item = this.barCmbPumpList.EditValue as PumpWorkingViewItemViewModel;
+            SetCurrent(item);
+        }
+
         //璁剧疆褰撳墠
         private void SetCurrent(PumpWorkingViewItemViewModel item)
         {
             if (item != null)
             {
-                this.barTxtPump.EditValue = item.Name;
+                this.barCmbPumpList.EditValue = item;
                 this.barTxtQ.EditValue = $"{Math.Round(item.Q, 1)}m鲁/h";
                 this.barTxtH.EditValue = $"{Math.Round(item.H, 2)}m";
                 this.barTxtP.EditValue = $"{Math.Round(item.P ?? 0, 1)}kW";
@@ -159,30 +176,31 @@
             }
         }
 
+        //姘存车宸ュ喌鍥捐〃杩愯鐐归�夋嫨浜嬩欢
         private void PumpWorkingViewChart1_RunPointSelectedEvent(PumpWorkingViewItemViewModel obj)
         {
             SetCurrent(obj);
         }
 
+        //鏁堢巼绾块�夋嫨
         private void barCkE_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
         {
             this.pumpWorkingViewChart1.QEVisible = this.barCkE.Checked;
         }
 
+        //璁剧疆鍧愭爣
         private void barBtnCoord_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
         {
             this.pumpWorkingViewChart1.SetChartAxis();
         }
 
         /// <summary>
-        /// 
+        /// 瀵煎嚭鍥剧墖
         /// </summary>
         public void ExportToImage(string fileName)
         {
             this.pumpWorkingViewChart1.ExportToImage(fileName);
         }
-
-
 
 
     }
diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/00-core/03-helper/HydroParterCatalogHelper.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/00-core/03-helper/HydroParterCatalogHelper.cs
index 724228e..11939a3 100644
--- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/00-core/03-helper/HydroParterCatalogHelper.cs
+++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/00-core/03-helper/HydroParterCatalogHelper.cs
@@ -51,19 +51,6 @@
         };
 
         /// <summary>
-        /// 鑾峰彇绠�鍗曞瓧鍏�
-        /// </summary>
-        public static Dictionary<string, string> GetSimpleDict()
-        {
-            return new Dictionary<string, string>()
-            {
-                { Yw.Hydro.ParterCatalog.Pump,"姘存车"},
-                { Yw.Hydro.ParterCatalog.Valve,"闃�闂�"},
-                { Yw.Hydro.ParterCatalog.Pipe,"绠¢亾"},
-            };
-        }
-
-        /// <summary>
         /// 鑾峰彇鍚嶇О
         /// </summary>
         public static string GetName(string code)
diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/00-core/03-helper/HydroParterPropHelper.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/00-core/03-helper/HydroParterPropHelper.cs
deleted file mode 100644
index ec6eda9..0000000
--- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/00-core/03-helper/HydroParterPropHelper.cs
+++ /dev/null
@@ -1,225 +0,0 @@
-锘縩amespace Yw.WinFrmUI
-{
-    /// <summary>
-    /// 
-    /// </summary>
-    public class HydroParterPropHelper
-    {
-        /// <summary>
-        /// 瀛楀吀
-        /// </summary>
-        public static Dictionary<string, string> Dict
-        {
-            get { return _dict; }
-        }
-        private static readonly Dictionary<string, string> _dict = new Dictionary<string, string>()
-        {
-            { Yw.Hydro.ParterProp.LinkStatus,"鐘舵��"},
-            { HydroVisualCalcuProp.CalcuPress,"鑷敱鍘嬪姏"},
-            { HydroVisualCalcuProp.CalcuHead,"缁濆鍘嬪姏"},
-            { HydroVisualCalcuProp.CalcuDemand,"闇�姘撮噺"},
-            { HydroVisualCalcuProp.CalcuFlow,"娴侀噺"},
-            { HydroVisualCalcuProp.CalcuVelocity,"娴侀��"},
-            { HydroVisualCalcuProp.CalcuHeadLoss,"姘村ご鎹熷け"}
-        };
-
-        /// <summary>
-        /// 鑾峰彇瀛楀吀
-        /// </summary>
-        public static Dictionary<string, string> GetDict(string catalog)
-        {
-            var dict = new Dictionary<string, string>();
-            switch (catalog)
-            {
-                case Yw.Hydro.ParterCatalog.Node:
-                    {
-                        dict.Add(HydroVisualCalcuProp.CalcuPress, "鑷敱鍘嬪姏");
-                        dict.Add(HydroVisualCalcuProp.CalcuHead, "缁濆鍘嬪姏");
-                        dict.Add(HydroVisualCalcuProp.CalcuDemand, "闇�姘撮噺");
-                    }
-                    break;
-                case Yw.Hydro.ParterCatalog.Reservoir:
-                    {
-                        dict.Add(HydroVisualCalcuProp.CalcuPress, "鑷敱鍘嬪姏");
-                        dict.Add(HydroVisualCalcuProp.CalcuHead, "缁濆鍘嬪姏");
-                        dict.Add(HydroVisualCalcuProp.CalcuDemand, "闇�姘撮噺");
-                    }
-                    break;
-                case Yw.Hydro.ParterCatalog.Tank:
-                    {
-                        dict.Add(HydroVisualCalcuProp.CalcuPress, "鑷敱鍘嬪姏");
-                        dict.Add(HydroVisualCalcuProp.CalcuHead, "缁濆鍘嬪姏");
-                        dict.Add(HydroVisualCalcuProp.CalcuDemand, "闇�姘撮噺");
-                    }
-                    break;
-                case Yw.Hydro.ParterCatalog.Waterbox:
-                    {
-                        dict.Add(HydroVisualCalcuProp.CalcuPress, "鑷敱鍘嬪姏");
-                        dict.Add(HydroVisualCalcuProp.CalcuHead, "缁濆鍘嬪姏");
-                        dict.Add(HydroVisualCalcuProp.CalcuDemand, "闇�姘撮噺");
-                    }
-                    break;
-                case Yw.Hydro.ParterCatalog.Junction:
-                    {
-                        dict.Add(HydroVisualCalcuProp.CalcuPress, "鑷敱鍘嬪姏");
-                        dict.Add(HydroVisualCalcuProp.CalcuHead, "缁濆鍘嬪姏");
-                        dict.Add(HydroVisualCalcuProp.CalcuDemand, "闇�姘撮噺");
-                    }
-                    break;
-                case Yw.Hydro.ParterCatalog.Blunthead:
-                    {
-                        dict.Add(HydroVisualCalcuProp.CalcuPress, "鑷敱鍘嬪姏");
-                        dict.Add(HydroVisualCalcuProp.CalcuHead, "缁濆鍘嬪姏");
-                        dict.Add(HydroVisualCalcuProp.CalcuDemand, "闇�姘撮噺");
-                    }
-                    break;
-                case Yw.Hydro.ParterCatalog.Elbow:
-                    {
-                        dict.Add(HydroVisualCalcuProp.CalcuPress, "鑷敱鍘嬪姏");
-                        dict.Add(HydroVisualCalcuProp.CalcuHead, "缁濆鍘嬪姏");
-                        dict.Add(HydroVisualCalcuProp.CalcuDemand, "闇�姘撮噺");
-                    }
-                    break;
-                case Yw.Hydro.ParterCatalog.Threelink:
-                    {
-                        dict.Add(HydroVisualCalcuProp.CalcuPress, "鑷敱鍘嬪姏");
-                        dict.Add(HydroVisualCalcuProp.CalcuHead, "缁濆鍘嬪姏");
-                        dict.Add(HydroVisualCalcuProp.CalcuDemand, "闇�姘撮噺");
-                    }
-                    break;
-                case Yw.Hydro.ParterCatalog.Fourlink:
-                    {
-                        dict.Add(HydroVisualCalcuProp.CalcuPress, "鑷敱鍘嬪姏");
-                        dict.Add(HydroVisualCalcuProp.CalcuHead, "缁濆鍘嬪姏");
-                        dict.Add(HydroVisualCalcuProp.CalcuDemand, "闇�姘撮噺");
-                    }
-                    break;
-                case Yw.Hydro.ParterCatalog.Emitter:
-                    {
-                        dict.Add(HydroVisualCalcuProp.CalcuPress, "鑷敱鍘嬪姏");
-                        dict.Add(HydroVisualCalcuProp.CalcuHead, "缁濆鍘嬪姏");
-                        dict.Add(HydroVisualCalcuProp.CalcuDemand, "闇�姘撮噺");
-                    }
-                    break;
-                case Yw.Hydro.ParterCatalog.Nozzle:
-                    {
-                        dict.Add(HydroVisualCalcuProp.CalcuPress, "鑷敱鍘嬪姏");
-                        dict.Add(HydroVisualCalcuProp.CalcuHead, "缁濆鍘嬪姏");
-                        dict.Add(HydroVisualCalcuProp.CalcuDemand, "闇�姘撮噺");
-                    }
-                    break;
-                case Yw.Hydro.ParterCatalog.Hydrant:
-                    {
-                        dict.Add(HydroVisualCalcuProp.CalcuPress, "鑷敱鍘嬪姏");
-                        dict.Add(HydroVisualCalcuProp.CalcuHead, "缁濆鍘嬪姏");
-                        dict.Add(HydroVisualCalcuProp.CalcuDemand, "闇�姘撮噺");
-                    }
-                    break;
-                case Yw.Hydro.ParterCatalog.Meter:
-                    {
-                        dict.Add(HydroVisualCalcuProp.CalcuPress, "鑷敱鍘嬪姏");
-                        dict.Add(HydroVisualCalcuProp.CalcuHead, "缁濆鍘嬪姏");
-                        dict.Add(HydroVisualCalcuProp.CalcuDemand, "闇�姘撮噺");
-                    }
-                    break;
-                case Yw.Hydro.ParterCatalog.Flowmeter:
-                    {
-                        dict.Add(HydroVisualCalcuProp.CalcuPress, "鑷敱鍘嬪姏");
-                        dict.Add(HydroVisualCalcuProp.CalcuHead, "缁濆鍘嬪姏");
-                        dict.Add(HydroVisualCalcuProp.CalcuDemand, "闇�姘撮噺");
-                    }
-                    break;
-                case Yw.Hydro.ParterCatalog.Pressmeter:
-                    {
-                        dict.Add(HydroVisualCalcuProp.CalcuPress, "鑷敱鍘嬪姏");
-                        dict.Add(HydroVisualCalcuProp.CalcuHead, "缁濆鍘嬪姏");
-                        dict.Add(HydroVisualCalcuProp.CalcuDemand, "闇�姘撮噺");
-                    }
-                    break;
-                case Yw.Hydro.ParterCatalog.Link:
-                    {
-                        dict.Add(HydroVisualCalcuProp.CalcuFlow, "娴侀噺");
-                        dict.Add(HydroVisualCalcuProp.CalcuVelocity, "娴侀��");
-                        dict.Add(HydroVisualCalcuProp.CalcuHeadLoss, "姘村ご鎹熷け");
-                    }
-                    break;
-                case Yw.Hydro.ParterCatalog.Pipe:
-                    {
-                        dict.Add(Yw.Hydro.ParterProp.LinkStatus, "鐘舵��");
-                        dict.Add(HydroVisualCalcuProp.CalcuFlow, "娴侀噺");
-                        dict.Add(HydroVisualCalcuProp.CalcuVelocity, "娴侀��");
-                        dict.Add(HydroVisualCalcuProp.CalcuHeadLoss, "姘村ご鎹熷け");
-                    }
-                    break;
-                case Yw.Hydro.ParterCatalog.Translation:
-                    {
-                        dict.Add(HydroVisualCalcuProp.CalcuFlow, "娴侀噺");
-                        dict.Add(HydroVisualCalcuProp.CalcuVelocity, "娴侀��");
-                        dict.Add(HydroVisualCalcuProp.CalcuHeadLoss, "姘村ご鎹熷け");
-                    }
-                    break;
-                case Yw.Hydro.ParterCatalog.Exchanger:
-                    {
-                        dict.Add(HydroVisualCalcuProp.CalcuFlow, "娴侀噺");
-                        dict.Add(HydroVisualCalcuProp.CalcuVelocity, "娴侀��");
-                        dict.Add(HydroVisualCalcuProp.CalcuHeadLoss, "姘村ご鎹熷け");
-                    }
-                    break;
-                case Yw.Hydro.ParterCatalog.Compressor:
-                    {
-                        dict.Add(HydroVisualCalcuProp.CalcuFlow, "娴侀噺");
-                        dict.Add(HydroVisualCalcuProp.CalcuVelocity, "娴侀��");
-                        dict.Add(HydroVisualCalcuProp.CalcuHeadLoss, "姘村ご鎹熷け");
-                    }
-                    break;
-                case Yw.Hydro.ParterCatalog.Pump:
-                    {
-                        dict.Add(Yw.Hydro.ParterProp.LinkStatus, "鐘舵��");
-                        dict.Add(HydroVisualCalcuProp.CalcuFlow, "娴侀噺");
-                        dict.Add(HydroVisualCalcuProp.CalcuVelocity, "娴侀��");
-                        dict.Add(HydroVisualCalcuProp.CalcuHeadLoss, "姘村ご鎹熷け");
-                    }
-                    break;
-                case Yw.Hydro.ParterCatalog.Valve:
-                    {
-                        dict.Add(Yw.Hydro.ParterProp.LinkStatus, "鐘舵��");
-                        dict.Add(HydroVisualCalcuProp.CalcuFlow, "娴侀噺");
-                        dict.Add(HydroVisualCalcuProp.CalcuVelocity, "娴侀��");
-                        dict.Add(HydroVisualCalcuProp.CalcuHeadLoss, "姘村ご鎹熷け");
-                    }
-                    break;
-                default: break;
-            }
-            return dict;
-        }
-
-        /// <summary>
-        /// 鑾峰彇灞炴�у悕绉�
-        /// </summary>
-        public static string GetPropName(string code)
-        {
-            if (_dict.ContainsKey(code))
-            {
-                return _dict[code];
-            }
-            return string.Empty;
-        }
-
-        /// <summary>
-        /// 鑾峰彇灞炴�х紪鐮�
-        /// </summary>
-        public static string GetPropCode(string name)
-        {
-            if (_dict.ContainsValue(name))
-            {
-                return _dict.FirstOrDefault(x => x.Value == name).Key;
-            }
-            return string.Empty;
-        }
-
-
-
-
-
-    }
-}
diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-calcu/00-core/HydroVisualCalcuProp.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-calcu/00-core/HydroVisualCalcuProp.cs
index 69585dc..3b799f5 100644
--- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-calcu/00-core/HydroVisualCalcuProp.cs
+++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-calcu/00-core/HydroVisualCalcuProp.cs
@@ -43,6 +43,18 @@
         public const string CalcuHeadLoss = "CalcuHeadLoss";
 
         /// <summary>
+        /// 娌跨▼鎹熷け m
+        /// 绠¢亾
+        /// </summary>
+        public const string CalcuFrictionLoss = "CalcuFrictionLoss";
+
+        /// <summary>
+        /// 灞�閮ㄦ崯澶�
+        /// 鑺傜偣銆佺娈�
+        /// </summary>
+        public const string CalcuMinorLoss = "CalcuMinorLoss";
+
+        /// <summary>
         /// 璁$畻娴侀噺锛坢鲁/h锛�
         /// 娴侀噺璁°�佹按娉�
         /// </summary>
diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/00-core/HydroGradingCatalogHelper.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/00-core/HydroGradingCatalogHelper.cs
index cdf5409..868da0a 100644
--- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/00-core/HydroGradingCatalogHelper.cs
+++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/00-core/HydroGradingCatalogHelper.cs
@@ -16,8 +16,9 @@
         //瀛楀吀
         private static readonly Dictionary<string, string> _dict = new Dictionary<string, string>()
         {
-            { Yw.Hydro.ParterCatalog.Nozzle,"鍠峰槾"},
-            { Yw.Hydro.ParterCatalog.Hydrant,"娑堢伀鏍�"},
+            { Yw.Hydro.ParterCatalog.Reservoir,"姘村簱"},
+            { Yw.Hydro.ParterCatalog.Tank,"姘存睜"},
+            { Yw.Hydro.ParterCatalog.Waterbox,"姘寸"},
             { Yw.Hydro.ParterCatalog.Blunthead,"闂峰ご"},
             { Yw.Hydro.ParterCatalog.Elbow,"寮ご"},
             { Yw.Hydro.ParterCatalog.Threelink,"涓夐��"},
@@ -25,12 +26,15 @@
             { Yw.Hydro.ParterCatalog.Meter,"姘磋〃"},
             { Yw.Hydro.ParterCatalog.Flowmeter,"娴侀噺璁�"},
             { Yw.Hydro.ParterCatalog.Pressmeter,"鍘嬪姏琛�"},
+            { Yw.Hydro.ParterCatalog.Nozzle,"鍠峰槾"},
+            { Yw.Hydro.ParterCatalog.Hydrant,"娑堢伀鏍�"},
+            { Yw.Hydro.ParterCatalog.Cooling,"鍐峰嵈濉�"},
             { Yw.Hydro.ParterCatalog.Pipe,"绠¢亾"},
             { Yw.Hydro.ParterCatalog.Translation,"杩囨浮浠�"},
             { Yw.Hydro.ParterCatalog.Pump,"姘存车"},
             { Yw.Hydro.ParterCatalog.Valve,"闃�闂�"},
             { Yw.Hydro.ParterCatalog.Exchanger,"鎹㈢儹鍣�"},
-            { Yw.Hydro.ParterCatalog.Compressor,"鍘嬬缉鏈�"}
+            { Yw.Hydro.ParterCatalog.Compressor,"鍘嬬缉鏈�"},
         };
 
         /// <summary>
@@ -57,6 +61,96 @@
             return string.Empty;
         }
 
+        /// <summary>
+        /// 鑾峰彇瀛楀吀
+        /// </summary>
+        public static Dictionary<string, string> GetDict(Yw.Model.HydroModelInfo hydro)
+        {
+            var dict = new Dictionary<string, string>();
+            if (hydro == null)
+            {
+                return dict;
+            }
+            if (hydro.Reservoirs != null && hydro.Reservoirs.Count > 0)
+            {
+                dict.Add(Yw.Hydro.ParterCatalog.Reservoir, GetName(Yw.Hydro.ParterCatalog.Reservoir));
+            }
+            if (hydro.Tanks != null && hydro.Tanks.Count > 0)
+            {
+                dict.Add(Yw.Hydro.ParterCatalog.Tank, GetName(Yw.Hydro.ParterCatalog.Tank));
+            }
+            if (hydro.Waterboxs != null && hydro.Waterboxs.Count > 0)
+            {
+                dict.Add(Yw.Hydro.ParterCatalog.Waterbox, GetName(Yw.Hydro.ParterCatalog.Waterbox));
+            }
+            if (hydro.Bluntheads != null && hydro.Bluntheads.Count > 0)
+            {
+                dict.Add(Yw.Hydro.ParterCatalog.Blunthead, GetName(Yw.Hydro.ParterCatalog.Blunthead));
+            }
+            if (hydro.Elbows != null && hydro.Elbows.Count > 0)
+            {
+                dict.Add(Yw.Hydro.ParterCatalog.Elbow, GetName(Yw.Hydro.ParterCatalog.Elbow));
+            }
+            if (hydro.Threelinks != null && hydro.Threelinks.Count > 0)
+            {
+                dict.Add(Yw.Hydro.ParterCatalog.Threelink, GetName(Yw.Hydro.ParterCatalog.Threelink));
+            }
+            if (hydro.Fourlinks != null && hydro.Fourlinks.Count > 0)
+            {
+                dict.Add(Yw.Hydro.ParterCatalog.Fourlink, GetName(Yw.Hydro.ParterCatalog.Fourlink));
+            }
+            if (hydro.Meters != null && hydro.Meters.Count > 0)
+            {
+                dict.Add(Yw.Hydro.ParterCatalog.Meter, GetName(Yw.Hydro.ParterCatalog.Meter));
+            }
+            if (hydro.Flowmeters != null && hydro.Flowmeters.Count > 0)
+            {
+                dict.Add(Yw.Hydro.ParterCatalog.Flowmeter, GetName(Yw.Hydro.ParterCatalog.Flowmeter));
+            }
+            if (hydro.Pressmeters != null && hydro.Pressmeters.Count > 0)
+            {
+                dict.Add(Yw.Hydro.ParterCatalog.Pressmeter, GetName(Yw.Hydro.ParterCatalog.Pressmeter));
+            }
+            if (hydro.Nozzles != null && hydro.Nozzles.Count > 0)
+            {
+                dict.Add(Yw.Hydro.ParterCatalog.Nozzle, GetName(Yw.Hydro.ParterCatalog.Nozzle));
+            }
+            if (hydro.Hydrants != null && hydro.Hydrants.Count > 0)
+            {
+                dict.Add(Yw.Hydro.ParterCatalog.Hydrant, GetName(Yw.Hydro.ParterCatalog.Hydrant));
+            }
+            if (hydro.Coolings != null && hydro.Coolings.Count > 0)
+            {
+                dict.Add(Yw.Hydro.ParterCatalog.Cooling, GetName(Yw.Hydro.ParterCatalog.Cooling));
+            }
+            if (hydro.Pipes != null && hydro.Pipes.Count > 0)
+            {
+                dict.Add(Yw.Hydro.ParterCatalog.Pipe, GetName(Yw.Hydro.ParterCatalog.Pipe));
+            }
+            if (hydro.Translations != null && hydro.Translations.Count > 0)
+            {
+                dict.Add(Yw.Hydro.ParterCatalog.Translation, GetName(Yw.Hydro.ParterCatalog.Translation));
+            }
+            if (hydro.Pumps != null && hydro.Pumps.Count > 0)
+            {
+                dict.Add(Yw.Hydro.ParterCatalog.Pump, GetName(Yw.Hydro.ParterCatalog.Pump));
+            }
+            if (hydro.Valves != null && hydro.Valves.Count > 0)
+            {
+                dict.Add(Yw.Hydro.ParterCatalog.Valve, GetName(Yw.Hydro.ParterCatalog.Valve));
+            }
+            if (hydro.Exchangers != null && hydro.Exchangers.Count > 0)
+            {
+                dict.Add(Yw.Hydro.ParterCatalog.Exchanger, GetName(Yw.Hydro.ParterCatalog.Exchanger));
+            }
+            if (hydro.Compressors != null && hydro.Compressors.Count > 0)
+            {
+                dict.Add(Yw.Hydro.ParterCatalog.Compressor, GetName(Yw.Hydro.ParterCatalog.Compressor));
+            }
+            return dict;
+        }
+
+
 
     }
 }
diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/00-core/HydroGradingHelper.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/00-core/HydroGradingHelper.cs
index 1eb4958..1b7ca4f 100644
--- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/00-core/HydroGradingHelper.cs
+++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/00-core/HydroGradingHelper.cs
@@ -11,13 +11,13 @@
         /// <summary>
         /// 鑾峰彇鍒嗙骇鍒楄〃
         /// </summary>
-        public static async Task<List<HydroGradingVmo>> GetGradingList(Yw.Model.HydroModelInfo hydroInfo)
+        public static async Task<List<HydroGradingVmo>> GetGradingList(Yw.Model.HydroModelInfo hydro)
         {
-            if (hydroInfo == null)
+            if (hydro == null)
             {
                 return default;
             }
-            var allGradingList = await BLLFactory<Yw.BLL.HydroGrading>.Instance.GetByModelID(hydroInfo.ID);
+            var allGradingList = await BLLFactory<Yw.BLL.HydroGrading>.Instance.GetByModelID(hydro.ID);
             if (allGradingList == null || allGradingList.Count < 1)
             {
                 var config = Yw.Settings.HydroParasHelper.Hydro.Grading;
@@ -31,12 +31,14 @@
                     {
                         var vmo = new HydroGradingVmo()
                         {
-                            ModelID = hydroInfo.ID,
+                            ModelID = hydro.ID,
                             Catalog = x.Catalog,
                             PropName = x.PropName,
                             SetValue = x.SetValue,
                             MinValue = x.MinValue,
                             MaxValue = x.MaxValue,
+                            MinPercent = x.MinPercent,
+                            MaxPercent = x.MaxPercent,
                             Color = x.Color,
                             SortCode = config.Items.IndexOf(x)
                         };
@@ -50,161 +52,201 @@
         /// <summary>
         /// 鑾峰彇搴旂敤鍒楄〃
         /// </summary>
-        public static List<HydroGradingApplyViewModel> GetApplyList(Yw.Model.HydroModelInfo hydroInfo)
+        public static List<HydroGradingApplyViewModel> GetApplyList(Yw.Model.HydroModelInfo hydro)
         {
-            if (hydroInfo == null)
+            if (hydro == null)
             {
                 return default;
             }
             var allApplyList = new List<HydroGradingApplyViewModel>();
+            //姘村簱
+            if (hydro.Reservoirs != null && hydro.Reservoirs.Count > 0)
+            {
+                allApplyList.Add(new HydroGradingApplyViewModel()
+                {
+                    Catalog = Yw.Hydro.ParterCatalog.Reservoir,
+                    CatalogName = HydroGradingCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Reservoir),
+                    PropName = HydroGradingProp.None
+                });
+            }
+            //姘存睜
+            if (hydro.Tanks != null && hydro.Tanks.Count > 0)
+            {
+                allApplyList.Add(new HydroGradingApplyViewModel()
+                {
+                    Catalog = Yw.Hydro.ParterCatalog.Tank,
+                    CatalogName = HydroGradingCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Tank),
+                    PropName = HydroGradingProp.None
+                });
+            }
+            //姘寸
+            if (hydro.Waterboxs != null && hydro.Waterboxs.Count > 0)
+            {
+                allApplyList.Add(new HydroGradingApplyViewModel()
+                {
+                    Catalog = Yw.Hydro.ParterCatalog.Waterbox,
+                    CatalogName = HydroGradingCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Waterbox),
+                    PropName = HydroGradingProp.None
+                });
+            }
             //闂峰ご
-            if (hydroInfo.Bluntheads != null && hydroInfo.Bluntheads.Count > 0)
+            if (hydro.Bluntheads != null && hydro.Bluntheads.Count > 0)
             {
                 allApplyList.Add(new HydroGradingApplyViewModel()
                 {
                     Catalog = Yw.Hydro.ParterCatalog.Blunthead,
-                    CatalogName = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Blunthead),
-                    PropName = HydroVisualCalcuProp.CalcuPress
+                    CatalogName = HydroGradingCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Blunthead),
+                    PropName = HydroGradingProp.None
                 });
             }
             //寮ご
-            if (hydroInfo.Elbows != null && hydroInfo.Elbows.Count > 0)
+            if (hydro.Elbows != null && hydro.Elbows.Count > 0)
             {
                 allApplyList.Add(new HydroGradingApplyViewModel()
                 {
                     Catalog = Yw.Hydro.ParterCatalog.Elbow,
-                    CatalogName = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Elbow),
-                    PropName = HydroVisualCalcuProp.CalcuPress
+                    CatalogName = HydroGradingCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Elbow),
+                    PropName = HydroGradingProp.None
                 });
             }
             //涓夐��
-            if (hydroInfo.Threelinks != null && hydroInfo.Threelinks.Count > 0)
+            if (hydro.Threelinks != null && hydro.Threelinks.Count > 0)
             {
                 allApplyList.Add(new HydroGradingApplyViewModel()
                 {
                     Catalog = Yw.Hydro.ParterCatalog.Threelink,
-                    CatalogName = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Threelink),
-                    PropName = HydroVisualCalcuProp.CalcuPress
+                    CatalogName = HydroGradingCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Threelink),
+                    PropName = HydroGradingProp.None
                 });
             }
             //鍥涢��
-            if (hydroInfo.Fourlinks != null && hydroInfo.Fourlinks.Count > 0)
+            if (hydro.Fourlinks != null && hydro.Fourlinks.Count > 0)
             {
                 allApplyList.Add(new HydroGradingApplyViewModel()
                 {
                     Catalog = Yw.Hydro.ParterCatalog.Fourlink,
-                    CatalogName = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Fourlink),
-                    PropName = HydroVisualCalcuProp.CalcuPress
+                    CatalogName = HydroGradingCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Fourlink),
+                    PropName = HydroGradingProp.None
                 });
             }
             //鍠峰ご
-            if (hydroInfo.Nozzles != null && hydroInfo.Nozzles.Count > 0)
+            if (hydro.Nozzles != null && hydro.Nozzles.Count > 0)
             {
                 allApplyList.Add(new HydroGradingApplyViewModel()
                 {
                     Catalog = Yw.Hydro.ParterCatalog.Nozzle,
-                    CatalogName = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Nozzle),
-                    PropName = HydroVisualCalcuProp.CalcuPress
+                    CatalogName = HydroGradingCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Nozzle),
+                    PropName = HydroGradingProp.None
                 });
             }
             //娑堢伀鏍�
-            if (hydroInfo.Hydrants != null && hydroInfo.Hydrants.Count > 0)
+            if (hydro.Hydrants != null && hydro.Hydrants.Count > 0)
             {
                 allApplyList.Add(new HydroGradingApplyViewModel()
                 {
                     Catalog = Yw.Hydro.ParterCatalog.Hydrant,
-                    CatalogName = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Hydrant),
-                    PropName = HydroVisualCalcuProp.CalcuPress
+                    CatalogName = HydroGradingCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Hydrant),
+                    PropName = HydroGradingProp.None
+                });
+            }
+            //鍐峰嵈濉�
+            if (hydro.Coolings != null && hydro.Coolings.Count > 0)
+            {
+                allApplyList.Add(new HydroGradingApplyViewModel()
+                {
+                    Catalog = Yw.Hydro.ParterCatalog.Cooling,
+                    CatalogName = HydroGradingCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Cooling),
+                    PropName = HydroGradingProp.None
                 });
             }
             //姘磋〃
-            if (hydroInfo.Meters != null && hydroInfo.Meters.Count > 0)
+            if (hydro.Meters != null && hydro.Meters.Count > 0)
             {
                 allApplyList.Add(new HydroGradingApplyViewModel()
                 {
                     Catalog = Yw.Hydro.ParterCatalog.Meter,
-                    CatalogName = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Meter),
-                    PropName = HydroVisualCalcuProp.CalcuDemand
+                    CatalogName = HydroGradingCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Meter),
+                    PropName = HydroGradingProp.None
                 });
             }
             //娴侀噺璁�
-            if (hydroInfo.Flowmeters != null && hydroInfo.Flowmeters.Count > 0)
+            if (hydro.Flowmeters != null && hydro.Flowmeters.Count > 0)
             {
                 allApplyList.Add(new HydroGradingApplyViewModel()
                 {
                     Catalog = Yw.Hydro.ParterCatalog.Flowmeter,
-                    CatalogName = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Flowmeter),
-                    PropName = HydroVisualCalcuProp.CalcuQ
+                    CatalogName = HydroGradingCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Flowmeter),
+                    PropName = HydroGradingProp.None
                 });
             }
             //鍘嬪姏琛�
-            if (hydroInfo.Pressmeters != null && hydroInfo.Pressmeters.Count > 0)
+            if (hydro.Pressmeters != null && hydro.Pressmeters.Count > 0)
             {
                 allApplyList.Add(new HydroGradingApplyViewModel()
                 {
                     Catalog = Yw.Hydro.ParterCatalog.Pressmeter,
-                    CatalogName = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Pressmeter),
-                    PropName = HydroVisualCalcuProp.CalcuPr
+                    CatalogName = HydroGradingCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Pressmeter),
+                    PropName = HydroGradingProp.None
                 });
             }
             //绠¢亾
-            if (hydroInfo.Pipes != null && hydroInfo.Pipes.Count > 0)
+            if (hydro.Pipes != null && hydro.Pipes.Count > 0)
             {
                 allApplyList.Add(new HydroGradingApplyViewModel()
                 {
                     Catalog = Yw.Hydro.ParterCatalog.Pipe,
-                    CatalogName = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Pipe),
-                    PropName = HydroVisualCalcuProp.CalcuFlow
+                    CatalogName = HydroGradingCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Pipe),
+                    PropName = HydroGradingProp.CalcuFlow
                 });
             }
             //杩囨浮浠�
-            if (hydroInfo.Translations != null && hydroInfo.Translations.Count > 0)
+            if (hydro.Translations != null && hydro.Translations.Count > 0)
             {
                 allApplyList.Add(new HydroGradingApplyViewModel()
                 {
                     Catalog = Yw.Hydro.ParterCatalog.Translation,
-                    CatalogName = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Translation),
-                    PropName = HydroVisualCalcuProp.CalcuFlow
+                    CatalogName = HydroGradingCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Translation),
+                    PropName = HydroGradingProp.None
                 });
             }
             //姘存车
-            if (hydroInfo.Pumps != null && hydroInfo.Pumps.Count > 0)
+            if (hydro.Pumps != null && hydro.Pumps.Count > 0)
             {
                 allApplyList.Add(new HydroGradingApplyViewModel()
                 {
                     Catalog = Yw.Hydro.ParterCatalog.Pump,
-                    CatalogName = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Pump),
-                    PropName = Yw.Hydro.ParterProp.LinkStatus
+                    CatalogName = HydroGradingCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Pump),
+                    PropName = HydroGradingProp.LinkStatus
                 });
             }
             //闃�闂�
-            if (hydroInfo.Valves != null && hydroInfo.Valves.Count > 0)
+            if (hydro.Valves != null && hydro.Valves.Count > 0)
             {
                 allApplyList.Add(new HydroGradingApplyViewModel()
                 {
                     Catalog = Yw.Hydro.ParterCatalog.Valve,
-                    CatalogName = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Valve),
-                    PropName = Yw.Hydro.ParterProp.LinkStatus
+                    CatalogName = HydroGradingCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Valve),
+                    PropName = HydroGradingProp.CalcuFlow
                 });
             }
             //鎹㈢儹鍣�
-            if (hydroInfo.Exchangers != null && hydroInfo.Exchangers.Count > 0)
+            if (hydro.Exchangers != null && hydro.Exchangers.Count > 0)
             {
                 allApplyList.Add(new HydroGradingApplyViewModel()
                 {
                     Catalog = Yw.Hydro.ParterCatalog.Exchanger,
-                    CatalogName = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Exchanger),
-                    PropName = Yw.Hydro.ParterProp.LinkStatus
+                    CatalogName = HydroGradingCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Exchanger),
+                    PropName = HydroGradingProp.None
                 });
             }
             //鍘嬬缉鏈�
-            if (hydroInfo.Compressors != null && hydroInfo.Compressors.Count > 0)
+            if (hydro.Compressors != null && hydro.Compressors.Count > 0)
             {
                 allApplyList.Add(new HydroGradingApplyViewModel()
                 {
                     Catalog = Yw.Hydro.ParterCatalog.Compressor,
-                    CatalogName = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Compressor),
-                    PropName = Yw.Hydro.ParterProp.LinkStatus
+                    CatalogName = HydroGradingCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Compressor),
+                    PropName = HydroGradingProp.None
                 });
             }
             return allApplyList;
diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/00-core/HydroGradingProp.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/00-core/HydroGradingProp.cs
index 105d51c..d8fc667 100644
--- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/00-core/HydroGradingProp.cs
+++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/00-core/HydroGradingProp.cs
@@ -16,19 +16,24 @@
         public const string LinkStatus = Yw.Hydro.ParterProp.LinkStatus;
 
         /// <summary>
-        /// 鐩村緞
+        /// 缁濆鍘嬪姏
         /// </summary>
-        public const string Diameter = Yw.Hydro.ParterProp.Diameter;
+        public const string CalcuHead = Yw.Hydro.VisualCalcuProp.CalcuHead;
+
+        /// <summary>
+        /// 鑷敱鍘嬪姏
+        /// </summary>
+        public const string CalcuPress = Yw.Hydro.VisualCalcuProp.CalcuPress;
+
+        /// <summary>
+        /// 闇�姘撮噺
+        /// </summary>
+        public const string CalcuDemand = Yw.Hydro.VisualCalcuProp.CalcuDemand;
 
         /// <summary>
         /// 娴侀噺
         /// </summary>
-        public const string CalcuQ = Yw.Hydro.MonitorProp.CalcuQ;
-
-        /// <summary>
-        /// 鍘嬪姏
-        /// </summary>
-        public const string CalcuPr = Yw.Hydro.MonitorProp.CalcuPr;
+        public const string CalcuFlow = Yw.Hydro.VisualCalcuProp.CalcuFlow;
 
         /// <summary>
         /// 娴侀��
diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/00-core/HydroGradingPropHelper.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/00-core/HydroGradingPropHelper.cs
index 58d44ef..1d293ad 100644
--- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/00-core/HydroGradingPropHelper.cs
+++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/00-core/HydroGradingPropHelper.cs
@@ -5,174 +5,204 @@
     /// </summary>
     public class HydroGradingPropHelper
     {
+        //鍚嶇О瀛楀吀
+        private static Dictionary<string, string> _nameDict = new Dictionary<string, string>()
+        {
+            { HydroGradingProp.None,"鏃�"},
+            { HydroGradingProp.LinkStatus,"鐘舵��"},
+            { HydroGradingProp.CalcuHead,"缁濆鍘嬪姏"},
+            { HydroGradingProp.CalcuPress,"鑷敱鍘嬪姏"},
+            { HydroGradingProp.CalcuDemand,"闇�姘撮噺"},
+            { HydroGradingProp.CalcuFlow,"娴侀噺"},
+            { HydroGradingProp.CalcuVelocity,"娴侀��"},
+            { HydroGradingProp.CalcuHeadLoss,"姘村ご鎹熷け"},
+            { HydroGradingProp.CalcuMinorLoss,"灞�閮ㄦ崯澶�"},
+            { HydroGradingProp.CalcuFrictionLoss,"娌跨▼鎹熷け"}
+        };
+
+        //鍗曚綅瀛楀吀
+        private static Dictionary<string, string> _unitDict = new Dictionary<string, string>()
+        {
+            { HydroGradingProp.None,""},
+            { HydroGradingProp.LinkStatus,""},
+            { HydroGradingProp.CalcuHead,"m"},
+            { HydroGradingProp.CalcuPress,"m"},
+            { HydroGradingProp.CalcuDemand,"m鲁/h"},
+            { HydroGradingProp.CalcuFlow,"m鲁/h"},
+            { HydroGradingProp.CalcuVelocity,"m/s"},
+            { HydroGradingProp.CalcuHeadLoss,"m"},
+            { HydroGradingProp.CalcuMinorLoss,"m"},
+            { HydroGradingProp.CalcuFrictionLoss,"m"},
+        };
 
         /// <summary>
-        /// 鑾峰彇瀛楀吀
+        /// 鑾峰彇鍚嶇О
         /// </summary>
-        public static Dictionary<string, string> GetDict(string catalog)
+        public static string GetName(string code)
         {
+            if (_nameDict.ContainsKey(code))
+            {
+                return _nameDict[code];
+            }
+            return default;
+        }
+
+        /// <summary>
+        /// 鑾峰彇鍗曚綅
+        /// </summary>
+        public static string GetUnit(string code)
+        {
+            if (_unitDict.ContainsKey(code))
+            {
+                return _unitDict[code];
+            }
+            return default;
+        }
+
+        /// <summary>
+        /// 鑾峰彇鍚嶇О瀛楀吀
+        /// </summary>
+        public static Dictionary<string, string> GetNameDict(string catalog)
+        {
+            var dict = new Dictionary<string, string>();
             if (string.IsNullOrEmpty(catalog))
             {
-                return default;
+                return dict;
             }
-            var dict = new Dictionary<string, string>
-            {
-                { HydroGradingProp.None, "鏃�" }
-            };
             switch (catalog)
             {
-                case Yw.Hydro.ParterCatalog.Node:
-                    {
-                        dict.Add(HydroVisualCalcuProp.CalcuPress, HydroVisualCalcuPropHelper.GetName(HydroVisualCalcuProp.CalcuPress));
-                        dict.Add(HydroVisualCalcuProp.CalcuHead, HydroVisualCalcuPropHelper.GetName(HydroVisualCalcuProp.CalcuHead));
-                        dict.Add(HydroVisualCalcuProp.CalcuDemand, HydroVisualCalcuPropHelper.GetName(HydroVisualCalcuProp.CalcuDemand));
-                    }
-                    break;
                 case Yw.Hydro.ParterCatalog.Reservoir:
                     {
-                        dict.Add(HydroVisualCalcuProp.CalcuPress, HydroVisualCalcuPropHelper.GetName(HydroVisualCalcuProp.CalcuPress));
-                        dict.Add(HydroVisualCalcuProp.CalcuHead, HydroVisualCalcuPropHelper.GetName(HydroVisualCalcuProp.CalcuHead));
-                        dict.Add(HydroVisualCalcuProp.CalcuDemand, HydroVisualCalcuPropHelper.GetName(HydroVisualCalcuProp.CalcuDemand));
+                        dict.Add(HydroGradingProp.CalcuHead, GetName(HydroGradingProp.CalcuHead));
+                        dict.Add(HydroGradingProp.CalcuPress, GetName(HydroGradingProp.CalcuPress));
+                        dict.Add(HydroGradingProp.CalcuDemand, GetName(HydroGradingProp.CalcuDemand));
                     }
                     break;
                 case Yw.Hydro.ParterCatalog.Tank:
                     {
-                        dict.Add(HydroVisualCalcuProp.CalcuPress, HydroVisualCalcuPropHelper.GetName(HydroVisualCalcuProp.CalcuPress));
-                        dict.Add(HydroVisualCalcuProp.CalcuHead, HydroVisualCalcuPropHelper.GetName(HydroVisualCalcuProp.CalcuHead));
-                        dict.Add(HydroVisualCalcuProp.CalcuDemand, HydroVisualCalcuPropHelper.GetName(HydroVisualCalcuProp.CalcuDemand));
+                        dict.Add(HydroGradingProp.CalcuHead, GetName(HydroGradingProp.CalcuHead));
+                        dict.Add(HydroGradingProp.CalcuPress, GetName(HydroGradingProp.CalcuPress));
+                        dict.Add(HydroGradingProp.CalcuDemand, GetName(HydroGradingProp.CalcuDemand));
                     }
                     break;
                 case Yw.Hydro.ParterCatalog.Waterbox:
                     {
-                        dict.Add(HydroVisualCalcuProp.CalcuPress, HydroVisualCalcuPropHelper.GetName(HydroVisualCalcuProp.CalcuPress));
-                        dict.Add(HydroVisualCalcuProp.CalcuHead, HydroVisualCalcuPropHelper.GetName(HydroVisualCalcuProp.CalcuHead));
-                        dict.Add(HydroVisualCalcuProp.CalcuDemand, HydroVisualCalcuPropHelper.GetName(HydroVisualCalcuProp.CalcuDemand));
-                    }
-                    break;
-                case Yw.Hydro.ParterCatalog.Junction:
-                    {
-                        dict.Add(HydroVisualCalcuProp.CalcuPress, HydroVisualCalcuPropHelper.GetName(HydroVisualCalcuProp.CalcuPress));
-                        dict.Add(HydroVisualCalcuProp.CalcuHead, HydroVisualCalcuPropHelper.GetName(HydroVisualCalcuProp.CalcuHead));
-                        dict.Add(HydroVisualCalcuProp.CalcuDemand, HydroVisualCalcuPropHelper.GetName(HydroVisualCalcuProp.CalcuDemand));
+                        dict.Add(HydroGradingProp.CalcuHead, GetName(HydroGradingProp.CalcuHead));
+                        dict.Add(HydroGradingProp.CalcuPress, GetName(HydroGradingProp.CalcuPress));
+                        dict.Add(HydroGradingProp.CalcuDemand, GetName(HydroGradingProp.CalcuDemand));
                     }
                     break;
                 case Yw.Hydro.ParterCatalog.Blunthead:
                     {
-                        dict.Add(HydroVisualCalcuProp.CalcuPress, HydroVisualCalcuPropHelper.GetName(HydroVisualCalcuProp.CalcuPress));
-                        dict.Add(HydroVisualCalcuProp.CalcuHead, HydroVisualCalcuPropHelper.GetName(HydroVisualCalcuProp.CalcuHead));
-                        dict.Add(HydroVisualCalcuProp.CalcuDemand, HydroVisualCalcuPropHelper.GetName(HydroVisualCalcuProp.CalcuDemand));
+                        dict.Add(HydroGradingProp.CalcuHead, GetName(HydroGradingProp.CalcuHead));
+                        dict.Add(HydroGradingProp.CalcuPress, GetName(HydroGradingProp.CalcuPress));
+                        dict.Add(HydroGradingProp.CalcuMinorLoss, GetName(HydroGradingProp.CalcuMinorLoss));
                     }
                     break;
                 case Yw.Hydro.ParterCatalog.Elbow:
                     {
-                        dict.Add(HydroVisualCalcuProp.CalcuPress, HydroVisualCalcuPropHelper.GetName(HydroVisualCalcuProp.CalcuPress));
-                        dict.Add(HydroVisualCalcuProp.CalcuHead, HydroVisualCalcuPropHelper.GetName(HydroVisualCalcuProp.CalcuHead));
-                        dict.Add(HydroVisualCalcuProp.CalcuDemand, HydroVisualCalcuPropHelper.GetName(HydroVisualCalcuProp.CalcuDemand));
+                        dict.Add(HydroGradingProp.CalcuHead, GetName(HydroGradingProp.CalcuHead));
+                        dict.Add(HydroGradingProp.CalcuPress, GetName(HydroGradingProp.CalcuPress));
+                        dict.Add(HydroGradingProp.CalcuMinorLoss, GetName(HydroGradingProp.CalcuMinorLoss));
                     }
                     break;
                 case Yw.Hydro.ParterCatalog.Threelink:
                     {
-                        dict.Add(HydroVisualCalcuProp.CalcuPress, HydroVisualCalcuPropHelper.GetName(HydroVisualCalcuProp.CalcuPress));
-                        dict.Add(HydroVisualCalcuProp.CalcuHead, HydroVisualCalcuPropHelper.GetName(HydroVisualCalcuProp.CalcuHead));
-                        dict.Add(HydroVisualCalcuProp.CalcuDemand, HydroVisualCalcuPropHelper.GetName(HydroVisualCalcuProp.CalcuDemand));
+                        dict.Add(HydroGradingProp.CalcuHead, GetName(HydroGradingProp.CalcuHead));
+                        dict.Add(HydroGradingProp.CalcuPress, GetName(HydroGradingProp.CalcuPress));
+                        dict.Add(HydroGradingProp.CalcuMinorLoss, GetName(HydroGradingProp.CalcuMinorLoss));
                     }
                     break;
                 case Yw.Hydro.ParterCatalog.Fourlink:
                     {
-                        dict.Add(HydroVisualCalcuProp.CalcuPress, HydroVisualCalcuPropHelper.GetName(HydroVisualCalcuProp.CalcuPress));
-                        dict.Add(HydroVisualCalcuProp.CalcuHead, HydroVisualCalcuPropHelper.GetName(HydroVisualCalcuProp.CalcuHead));
-                        dict.Add(HydroVisualCalcuProp.CalcuDemand, HydroVisualCalcuPropHelper.GetName(HydroVisualCalcuProp.CalcuDemand));
-                    }
-                    break;
-                case Yw.Hydro.ParterCatalog.Emitter:
-                    {
-                        dict.Add(HydroVisualCalcuProp.CalcuPress, HydroVisualCalcuPropHelper.GetName(HydroVisualCalcuProp.CalcuPress));
-                        dict.Add(HydroVisualCalcuProp.CalcuHead, HydroVisualCalcuPropHelper.GetName(HydroVisualCalcuProp.CalcuHead));
-                        dict.Add(HydroVisualCalcuProp.CalcuDemand, HydroVisualCalcuPropHelper.GetName(HydroVisualCalcuProp.CalcuDemand));
+                        dict.Add(HydroGradingProp.CalcuHead, GetName(HydroGradingProp.CalcuHead));
+                        dict.Add(HydroGradingProp.CalcuPress, GetName(HydroGradingProp.CalcuPress));
+                        dict.Add(HydroGradingProp.CalcuMinorLoss, GetName(HydroGradingProp.CalcuMinorLoss));
                     }
                     break;
                 case Yw.Hydro.ParterCatalog.Nozzle:
                     {
-                        dict.Add(HydroVisualCalcuProp.CalcuPress, HydroVisualCalcuPropHelper.GetName(HydroVisualCalcuProp.CalcuPress));
-                        dict.Add(HydroVisualCalcuProp.CalcuHead, HydroVisualCalcuPropHelper.GetName(HydroVisualCalcuProp.CalcuHead));
-                        dict.Add(HydroVisualCalcuProp.CalcuDemand, HydroVisualCalcuPropHelper.GetName(HydroVisualCalcuProp.CalcuDemand));
+                        dict.Add(HydroGradingProp.CalcuHead, GetName(HydroGradingProp.CalcuHead));
+                        dict.Add(HydroGradingProp.CalcuPress, GetName(HydroGradingProp.CalcuPress));
+                        dict.Add(HydroGradingProp.CalcuMinorLoss, GetName(HydroGradingProp.CalcuMinorLoss));
                     }
                     break;
                 case Yw.Hydro.ParterCatalog.Hydrant:
                     {
-                        dict.Add(HydroVisualCalcuProp.CalcuPress, HydroVisualCalcuPropHelper.GetName(HydroVisualCalcuProp.CalcuPress));
-                        dict.Add(HydroVisualCalcuProp.CalcuHead, HydroVisualCalcuPropHelper.GetName(HydroVisualCalcuProp.CalcuHead));
-                        dict.Add(HydroVisualCalcuProp.CalcuDemand, HydroVisualCalcuPropHelper.GetName(HydroVisualCalcuProp.CalcuDemand));
+                        dict.Add(HydroGradingProp.CalcuHead, GetName(HydroGradingProp.CalcuHead));
+                        dict.Add(HydroGradingProp.CalcuPress, GetName(HydroGradingProp.CalcuPress));
+                        dict.Add(HydroGradingProp.CalcuMinorLoss, GetName(HydroGradingProp.CalcuMinorLoss));
+                    }
+                    break;
+                case Yw.Hydro.ParterCatalog.Cooling:
+                    {
+                        dict.Add(HydroGradingProp.CalcuHead, GetName(HydroGradingProp.CalcuHead));
+                        dict.Add(HydroGradingProp.CalcuPress, GetName(HydroGradingProp.CalcuPress));
+                        dict.Add(HydroGradingProp.CalcuMinorLoss, GetName(HydroGradingProp.CalcuMinorLoss));
                     }
                     break;
                 case Yw.Hydro.ParterCatalog.Meter:
                     {
-                        dict.Add(HydroVisualCalcuProp.CalcuPress, HydroVisualCalcuPropHelper.GetName(HydroVisualCalcuProp.CalcuPress));
-                        dict.Add(HydroVisualCalcuProp.CalcuHead, HydroVisualCalcuPropHelper.GetName(HydroVisualCalcuProp.CalcuHead));
-                        dict.Add(HydroVisualCalcuProp.CalcuDemand, HydroVisualCalcuPropHelper.GetName(HydroVisualCalcuProp.CalcuDemand));
+                        dict.Add(HydroGradingProp.CalcuHead, GetName(HydroGradingProp.CalcuHead));
+                        dict.Add(HydroGradingProp.CalcuPress, GetName(HydroGradingProp.CalcuPress));
+                        dict.Add(HydroGradingProp.CalcuDemand, GetName(HydroGradingProp.CalcuDemand));
                     }
                     break;
                 case Yw.Hydro.ParterCatalog.Flowmeter:
                     {
-                        dict.Add(HydroVisualCalcuProp.CalcuQ, HydroVisualCalcuPropHelper.GetName(HydroVisualCalcuProp.CalcuQ));
+                        dict.Add(HydroGradingProp.CalcuHead, GetName(HydroGradingProp.CalcuHead));
+                        dict.Add(HydroGradingProp.CalcuPress, GetName(HydroGradingProp.CalcuPress));
+                        dict.Add(HydroGradingProp.CalcuDemand, GetName(HydroGradingProp.CalcuDemand));
                     }
                     break;
                 case Yw.Hydro.ParterCatalog.Pressmeter:
                     {
-                        dict.Add(HydroVisualCalcuProp.CalcuPr, HydroVisualCalcuPropHelper.GetName(HydroVisualCalcuProp.CalcuPr));
-                    }
-                    break;
-                case Yw.Hydro.ParterCatalog.Link:
-                    {
-                        dict.Add(HydroVisualCalcuProp.CalcuFlow, HydroVisualCalcuPropHelper.GetName(HydroVisualCalcuProp.CalcuFlow));
-                        dict.Add(HydroVisualCalcuProp.CalcuVelocity, HydroVisualCalcuPropHelper.GetName(HydroVisualCalcuProp.CalcuVelocity));
-                        dict.Add(HydroVisualCalcuProp.CalcuHeadLoss, HydroVisualCalcuPropHelper.GetName(HydroVisualCalcuProp.CalcuHeadLoss));
+                        dict.Add(HydroGradingProp.CalcuHead, GetName(HydroGradingProp.CalcuHead));
+                        dict.Add(HydroGradingProp.CalcuPress, GetName(HydroGradingProp.CalcuPress));
+                        dict.Add(HydroGradingProp.CalcuDemand, GetName(HydroGradingProp.CalcuDemand));
                     }
                     break;
                 case Yw.Hydro.ParterCatalog.Pipe:
                     {
-                        dict.Add(HydroVisualCalcuProp.CalcuFlow, HydroVisualCalcuPropHelper.GetName(HydroVisualCalcuProp.CalcuFlow));
-                        dict.Add(HydroVisualCalcuProp.CalcuVelocity, HydroVisualCalcuPropHelper.GetName(HydroVisualCalcuProp.CalcuVelocity));
-                        dict.Add(HydroVisualCalcuProp.CalcuHeadLoss, HydroVisualCalcuPropHelper.GetName(HydroVisualCalcuProp.CalcuHeadLoss));
+                        dict.Add(HydroGradingProp.CalcuFlow, GetName(HydroGradingProp.CalcuFlow));
+                        dict.Add(HydroGradingProp.CalcuVelocity, GetName(HydroGradingProp.CalcuVelocity));
+                        dict.Add(HydroGradingProp.CalcuFrictionLoss, GetName(HydroGradingProp.CalcuFrictionLoss));
                     }
                     break;
                 case Yw.Hydro.ParterCatalog.Translation:
                     {
-                        dict.Add(HydroVisualCalcuProp.CalcuFlow, HydroVisualCalcuPropHelper.GetName(HydroVisualCalcuProp.CalcuFlow));
-                        dict.Add(HydroVisualCalcuProp.CalcuVelocity, HydroVisualCalcuPropHelper.GetName(HydroVisualCalcuProp.CalcuVelocity));
-                        dict.Add(HydroVisualCalcuProp.CalcuHeadLoss, HydroVisualCalcuPropHelper.GetName(HydroVisualCalcuProp.CalcuHeadLoss));
+                        dict.Add(HydroGradingProp.CalcuFlow, GetName(HydroGradingProp.CalcuFlow));
+                        dict.Add(HydroGradingProp.CalcuVelocity, GetName(HydroGradingProp.CalcuVelocity));
+                        dict.Add(HydroGradingProp.CalcuMinorLoss, GetName(HydroGradingProp.CalcuMinorLoss));
                     }
                     break;
                 case Yw.Hydro.ParterCatalog.Pump:
                     {
-                        dict.Add(Yw.Hydro.ParterProp.LinkStatus, "杩愯鐘舵��");
-                        dict.Add(HydroVisualCalcuProp.CalcuFlow, HydroVisualCalcuPropHelper.GetName(HydroVisualCalcuProp.CalcuFlow));
-                        dict.Add(HydroVisualCalcuProp.CalcuVelocity, HydroVisualCalcuPropHelper.GetName(HydroVisualCalcuProp.CalcuVelocity));
-                        dict.Add(HydroVisualCalcuProp.CalcuHeadLoss, HydroVisualCalcuPropHelper.GetName(HydroVisualCalcuProp.CalcuHeadLoss));
+                        dict.Add(HydroGradingProp.LinkStatus, GetName(HydroGradingProp.LinkStatus));
+                        dict.Add(HydroGradingProp.CalcuFlow, GetName(HydroGradingProp.CalcuFlow));
+                        dict.Add(HydroGradingProp.CalcuVelocity, GetName(HydroGradingProp.CalcuVelocity));
+                        dict.Add(HydroGradingProp.CalcuMinorLoss, GetName(HydroGradingProp.CalcuMinorLoss));
                     }
                     break;
                 case Yw.Hydro.ParterCatalog.Valve:
                     {
-                        dict.Add(Yw.Hydro.ParterProp.LinkStatus, "闃�闂ㄧ姸鎬�");
-                        dict.Add(HydroVisualCalcuProp.CalcuFlow, HydroVisualCalcuPropHelper.GetName(HydroVisualCalcuProp.CalcuFlow));
-                        dict.Add(HydroVisualCalcuProp.CalcuVelocity, HydroVisualCalcuPropHelper.GetName(HydroVisualCalcuProp.CalcuVelocity));
-                        dict.Add(HydroVisualCalcuProp.CalcuHeadLoss, HydroVisualCalcuPropHelper.GetName(HydroVisualCalcuProp.CalcuHeadLoss));
+                        dict.Add(HydroGradingProp.CalcuFlow, GetName(HydroGradingProp.CalcuFlow));
+                        dict.Add(HydroGradingProp.CalcuVelocity, GetName(HydroGradingProp.CalcuVelocity));
+                        dict.Add(HydroGradingProp.CalcuMinorLoss, GetName(HydroGradingProp.CalcuMinorLoss));
                     }
                     break;
                 case Yw.Hydro.ParterCatalog.Exchanger:
                     {
-                        dict.Add(Yw.Hydro.ParterProp.LinkStatus, "杩愯鐘舵��");
-                        dict.Add(HydroVisualCalcuProp.CalcuFlow, HydroVisualCalcuPropHelper.GetName(HydroVisualCalcuProp.CalcuFlow));
-                        dict.Add(HydroVisualCalcuProp.CalcuVelocity, HydroVisualCalcuPropHelper.GetName(HydroVisualCalcuProp.CalcuVelocity));
-                        dict.Add(HydroVisualCalcuProp.CalcuHeadLoss, HydroVisualCalcuPropHelper.GetName(HydroVisualCalcuProp.CalcuHeadLoss));
+                        dict.Add(HydroGradingProp.CalcuFlow, GetName(HydroGradingProp.CalcuFlow));
+                        dict.Add(HydroGradingProp.CalcuVelocity, GetName(HydroGradingProp.CalcuVelocity));
+                        dict.Add(HydroGradingProp.CalcuMinorLoss, GetName(HydroGradingProp.CalcuMinorLoss));
                     }
                     break;
                 case Yw.Hydro.ParterCatalog.Compressor:
                     {
-                        dict.Add(Yw.Hydro.ParterProp.LinkStatus, "杩愯鐘舵��");
-                        dict.Add(HydroVisualCalcuProp.CalcuFlow, HydroVisualCalcuPropHelper.GetName(HydroVisualCalcuProp.CalcuFlow));
-                        dict.Add(HydroVisualCalcuProp.CalcuVelocity, HydroVisualCalcuPropHelper.GetName(HydroVisualCalcuProp.CalcuVelocity));
-                        dict.Add(HydroVisualCalcuProp.CalcuHeadLoss, HydroVisualCalcuPropHelper.GetName(HydroVisualCalcuProp.CalcuHeadLoss));
+                        dict.Add(HydroGradingProp.CalcuFlow, GetName(HydroGradingProp.CalcuFlow));
+                        dict.Add(HydroGradingProp.CalcuVelocity, GetName(HydroGradingProp.CalcuVelocity));
+                        dict.Add(HydroGradingProp.CalcuMinorLoss, GetName(HydroGradingProp.CalcuMinorLoss));
                     }
                     break;
                 default: break;
@@ -180,6 +210,71 @@
             return dict;
         }
 
+        /// <summary>
+        /// 鑾峰彇鍚嶇О瀛楀吀锛屽寘鍚壒娈婂睘鎬one
+        /// </summary>
+        public static Dictionary<string, string> GetNameDictExtensions(string catalog)
+        {
+            var dict = new Dictionary<string, string>
+            {
+                { HydroGradingProp.None, GetName(HydroGradingProp.None) }
+            };
+            var ndict = GetNameDict(catalog);
+            if (ndict != null && ndict.Count > 0)
+            {
+                foreach (var item in ndict)
+                {
+                    dict.Add(item.Key, item.Value);
+                }
+            }
+            return dict;
+        }
+
+        /// <summary>
+        /// 鑾峰彇鍗曚綅瀛楀吀
+        /// </summary>
+        public static Dictionary<string, string> GetUnitDict(string catalog)
+        {
+            var dict = GetNameDict(catalog);
+            if (dict == null || dict.Count < 1)
+            {
+                return dict;
+            }
+            var udict = new Dictionary<string, string>();
+            foreach (var item in dict)
+            {
+                udict.Add(item.Key, GetUnit(item.Key));
+            }
+            return udict;
+        }
+
+        /// <summary>
+        /// 鑾峰彇鍗曚綅瀛楀吀锛屽寘鍚壒娈婂睘鎬one
+        /// </summary>
+        public static Dictionary<string, string> GetUnitDictExtensions(string catalog)
+        {
+            var dict = new Dictionary<string, string>
+            {
+                { HydroGradingProp.None, GetUnit(HydroGradingProp.None) }
+            };
+            var udict = GetUnitDict(catalog);
+            if (udict != null && udict.Count > 0)
+            {
+                foreach (var item in udict)
+                {
+                    dict.Add(item.Key, item.Value);
+                }
+            }
+            return dict;
+        }
+
+
+
+
+
+
+
+
 
     }
 }
diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/01-catalog/SelectHydroGradingCatalogCtrl.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/01-catalog/SelectHydroGradingCatalogCtrl.cs
index 45a56bf..4f5f266 100644
--- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/01-catalog/SelectHydroGradingCatalogCtrl.cs
+++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/01-catalog/SelectHydroGradingCatalogCtrl.cs
@@ -24,8 +24,8 @@
         public void InitialData()
         {
             _allBindingList = new List<HydroGradingCodeViewModel>();
-            var dict = HydroParterCatalogHelper.GetSimpleDict();
-            dict.ForEach(x =>
+            var dict = HydroGradingCatalogHelper.Dict;
+            dict?.ForEach(x =>
             {
                 _allBindingList.Add(new HydroGradingCodeViewModel(x.Key, x.Value));
             });
diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/02-prop/SelectHydroGradingPropCtrl.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/02-prop/SelectHydroGradingPropCtrl.cs
index 45f3cc7..3caf6fb 100644
--- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/02-prop/SelectHydroGradingPropCtrl.cs
+++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/02-prop/SelectHydroGradingPropCtrl.cs
@@ -24,8 +24,8 @@
         public void SetBindingData(string catalog)
         {
             _allBindingList = new List<HydroGradingCodeViewModel>();
-            var dict = HydroParterPropHelper.GetDict(catalog);
-            dict.ForEach(x =>
+            var dict = HydroGradingPropHelper.GetNameDict(catalog);
+            dict?.ForEach(x =>
             {
                 _allBindingList.Add(new HydroGradingCodeViewModel(x.Key, x.Value));
             });
diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/03-list/SetHydroGradingModelCtrl.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/03-list/SetHydroGradingModelCtrl.cs
index 7989b6f..7cd5ab1 100644
--- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/03-list/SetHydroGradingModelCtrl.cs
+++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/03-list/SetHydroGradingModelCtrl.cs
@@ -60,39 +60,14 @@
         {
             switch (_propName)
             {
-                case Yw.Hydro.ParterProp.LinkStatus:
+                case HydroGradingProp.LinkStatus:
                     {
                         ResetColumns(false);
                     }
                     break;
-                case HydroVisualCalcuProp.CalcuPress:
-                    {
-                        ResetColumns(true);
-                    }
-                    break;
-                case HydroVisualCalcuProp.CalcuHead:
-                    {
-                        ResetColumns(true);
-                    }
-                    break;
-                case HydroVisualCalcuProp.CalcuFlow:
-                    {
-                        ResetColumns(true);
-                    }
-                    break;
-                case HydroVisualCalcuProp.CalcuVelocity:
-                    {
-                        ResetColumns(true);
-                    }
-                    break;
-                case HydroVisualCalcuProp.CalcuHeadLoss:
-                    {
-                        ResetColumns(true);
-                    }
-                    break;
                 default:
                     {
-
+                        ResetColumns(true);
                     }
                     break;
             }
@@ -101,11 +76,14 @@
         //璁剧疆鍒�
         private void ResetColumns(bool numeric)
         {
-            this.colSetValue.Visible = false;
-            this.colMinValue.Visible = false;
-            this.colMaxValue.Visible = false;
-            this.colColor.Visible = false;
             this.colDelete.Visible = false;
+            this.colColor.Visible = false;
+            this.colMaxPercent.Visible = false;
+            this.colMinPercent.Visible = false;
+            this.colMaxValue.Visible = false;
+            this.colMinValue.Visible = false;
+            this.colSetValue.Visible = false;
+
             this.colSetValue.Visible = !numeric;
             this.colMinValue.Visible = numeric;
             this.colMaxValue.Visible = numeric;
diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/04-tree/SelectHydroGradingPropTreeCtrl.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/04-tree/SelectHydroGradingPropTreeCtrl.cs
index 3c5d6c5..3573e9b 100644
--- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/04-tree/SelectHydroGradingPropTreeCtrl.cs
+++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/04-tree/SelectHydroGradingPropTreeCtrl.cs
@@ -19,21 +19,26 @@
         /// </summary>
         public event Action<HydroGradingPropTreeViewModel> SelectedPropChangedEvent;
 
-        //鎵�鏈夌粦瀹氬垪琛�
-        private List<HydroGradingPropTreeViewModel> _allBindingList = null;
+        private Yw.Model.HydroModelInfo _hydro = null;//姘村姏淇℃伅
+        private List<HydroGradingPropTreeViewModel> _allBindingList = null;//鎵�鏈夌粦瀹氬垪琛�
 
         /// <summary>
-        /// 鍒濆鍖栨暟鎹�
+        /// 缁戝畾鏁版嵁
         /// </summary>
-        public void InitialData()
+        public void SetBindingData(Yw.Model.HydroModelInfo hydro)
         {
+            if (hydro == null)
+            {
+                return;
+            }
+            _hydro = hydro;
             _allBindingList = new List<HydroGradingPropTreeViewModel>();
-            var dictCatalogList = HydroParterCatalogHelper.GetSimpleDict();
-            dictCatalogList.ForEach(x =>
+            var catalogDict = HydroGradingCatalogHelper.GetDict(hydro);
+            catalogDict?.ForEach(x =>
             {
                 _allBindingList.Add(new HydroGradingPropTreeViewModel(x.Key, x.Value));
-                var dictPropList = HydroParterPropHelper.GetDict(x.Key);
-                dictPropList.ForEach(t =>
+                var propDict = HydroGradingPropHelper.GetNameDict(x.Key);
+                propDict?.ForEach(t =>
                 {
                     _allBindingList.Add(new HydroGradingPropTreeViewModel(x.Key, t.Key, t.Value));
                 });
@@ -51,7 +56,6 @@
                 };
                 allTreeList.Add(treeModel);
             });
-
 
             this.simpleTreeViewCtrl1.SetBindingData(allTreeList);
             this.simpleTreeViewCtrl1.ExpandAll();
diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/05-set/SetHydroGradingModelDlg.Designer.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/05-set/SetHydroGradingModelDlg.Designer.cs
deleted file mode 100644
index 11035dc..0000000
--- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/05-set/SetHydroGradingModelDlg.Designer.cs
+++ /dev/null
@@ -1,248 +0,0 @@
-锘縩amespace Yw.WinFrmUI
-{
-    partial class SetHydroGradingModelDlg
-    {
-        /// <summary>
-        /// Required designer variable.
-        /// </summary>
-        private System.ComponentModel.IContainer components = null;
-
-        /// <summary>
-        /// Clean up any resources being used.
-        /// </summary>
-        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
-        protected override void Dispose(bool disposing)
-        {
-            if (disposing && (components != null))
-            {
-                components.Dispose();
-            }
-            base.Dispose(disposing);
-        }
-
-        #region Windows Form Designer generated code
-
-        /// <summary>
-        /// Required method for Designer support - do not modify
-        /// the contents of this method with the code editor.
-        /// </summary>
-        private void InitializeComponent()
-        {
-            layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
-            btnCancel = new DevExpress.XtraEditors.SimpleButton();
-            btnOk = new DevExpress.XtraEditors.SimpleButton();
-            setHydroGradingModelCtrl1 = new SetHydroGradingModelCtrl();
-            selectHydroGradingPropCtrl1 = new SelectHydroGradingPropCtrl();
-            selectHydroGradingCatalogCtrl1 = new SelectHydroGradingCatalogCtrl();
-            Root = new DevExpress.XtraLayout.LayoutControlGroup();
-            layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
-            layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
-            layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
-            layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
-            layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem();
-            emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem();
-            splitterItem1 = new DevExpress.XtraLayout.SplitterItem();
-            splitterItem2 = new DevExpress.XtraLayout.SplitterItem();
-            ((ISupportInitialize)layoutControl1).BeginInit();
-            layoutControl1.SuspendLayout();
-            ((ISupportInitialize)Root).BeginInit();
-            ((ISupportInitialize)layoutControlItem1).BeginInit();
-            ((ISupportInitialize)layoutControlItem2).BeginInit();
-            ((ISupportInitialize)layoutControlItem3).BeginInit();
-            ((ISupportInitialize)layoutControlItem4).BeginInit();
-            ((ISupportInitialize)layoutControlItem5).BeginInit();
-            ((ISupportInitialize)emptySpaceItem1).BeginInit();
-            ((ISupportInitialize)splitterItem1).BeginInit();
-            ((ISupportInitialize)splitterItem2).BeginInit();
-            SuspendLayout();
-            // 
-            // layoutControl1
-            // 
-            layoutControl1.Controls.Add(btnCancel);
-            layoutControl1.Controls.Add(btnOk);
-            layoutControl1.Controls.Add(setHydroGradingModelCtrl1);
-            layoutControl1.Controls.Add(selectHydroGradingPropCtrl1);
-            layoutControl1.Controls.Add(selectHydroGradingCatalogCtrl1);
-            layoutControl1.Dock = DockStyle.Fill;
-            layoutControl1.Location = new Point(0, 0);
-            layoutControl1.Name = "layoutControl1";
-            layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new Rectangle(1189, 341, 650, 400);
-            layoutControl1.Root = Root;
-            layoutControl1.Size = new Size(913, 599);
-            layoutControl1.TabIndex = 0;
-            layoutControl1.Text = "layoutControl1";
-            // 
-            // btnCancel
-            // 
-            btnCancel.Appearance.BackColor = DevExpress.LookAndFeel.DXSkinColors.FillColors.Warning;
-            btnCancel.Appearance.Options.UseBackColor = true;
-            btnCancel.DialogResult = DialogResult.Cancel;
-            btnCancel.Location = new Point(785, 565);
-            btnCancel.Name = "btnCancel";
-            btnCancel.Size = new Size(116, 22);
-            btnCancel.StyleController = layoutControl1;
-            btnCancel.TabIndex = 5;
-            btnCancel.Text = "鍙栨秷";
-            // 
-            // btnOk
-            // 
-            btnOk.Appearance.BackColor = DevExpress.LookAndFeel.DXSkinColors.FillColors.Primary;
-            btnOk.Appearance.Options.UseBackColor = true;
-            btnOk.Location = new Point(665, 565);
-            btnOk.Name = "btnOk";
-            btnOk.Size = new Size(116, 22);
-            btnOk.StyleController = layoutControl1;
-            btnOk.TabIndex = 4;
-            btnOk.Text = "纭畾";
-            btnOk.Click += btnOk_Click;
-            // 
-            // setHydroGradingModelCtrl1
-            // 
-            setHydroGradingModelCtrl1.Location = new Point(445, 29);
-            setHydroGradingModelCtrl1.Name = "setHydroGradingModelCtrl1";
-            setHydroGradingModelCtrl1.Size = new Size(456, 532);
-            setHydroGradingModelCtrl1.TabIndex = 3;
-            // 
-            // selectHydroGradingPropCtrl1
-            // 
-            selectHydroGradingPropCtrl1.Location = new Point(231, 29);
-            selectHydroGradingPropCtrl1.Name = "selectHydroGradingPropCtrl1";
-            selectHydroGradingPropCtrl1.Size = new Size(200, 532);
-            selectHydroGradingPropCtrl1.TabIndex = 2;
-            selectHydroGradingPropCtrl1.SelectedCodeChangedEvent += selectHydroGradingPropCtrl1_SelectedCodeChangedEvent;
-            // 
-            // selectHydroGradingCatalogCtrl1
-            // 
-            selectHydroGradingCatalogCtrl1.Location = new Point(12, 29);
-            selectHydroGradingCatalogCtrl1.Name = "selectHydroGradingCatalogCtrl1";
-            selectHydroGradingCatalogCtrl1.Size = new Size(205, 532);
-            selectHydroGradingCatalogCtrl1.TabIndex = 0;
-            selectHydroGradingCatalogCtrl1.SelectedCodeChangedEvent += selectHydroGradingCatalogCtrl1_SelectedCodeChangedEvent;
-            // 
-            // Root
-            // 
-            Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
-            Root.GroupBordersVisible = false;
-            Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem1, layoutControlItem2, layoutControlItem3, layoutControlItem4, layoutControlItem5, emptySpaceItem1, splitterItem1, splitterItem2 });
-            Root.Name = "Root";
-            Root.Size = new Size(913, 599);
-            Root.TextVisible = false;
-            // 
-            // layoutControlItem1
-            // 
-            layoutControlItem1.Control = selectHydroGradingCatalogCtrl1;
-            layoutControlItem1.Location = new Point(0, 0);
-            layoutControlItem1.Name = "layoutControlItem1";
-            layoutControlItem1.Size = new Size(209, 553);
-            layoutControlItem1.Text = "鍒嗙被";
-            layoutControlItem1.TextLocation = DevExpress.Utils.Locations.Top;
-            layoutControlItem1.TextSize = new Size(24, 14);
-            // 
-            // layoutControlItem2
-            // 
-            layoutControlItem2.Control = selectHydroGradingPropCtrl1;
-            layoutControlItem2.Location = new Point(219, 0);
-            layoutControlItem2.Name = "layoutControlItem2";
-            layoutControlItem2.Size = new Size(204, 553);
-            layoutControlItem2.Text = "灞炴��";
-            layoutControlItem2.TextLocation = DevExpress.Utils.Locations.Top;
-            layoutControlItem2.TextSize = new Size(24, 14);
-            // 
-            // layoutControlItem3
-            // 
-            layoutControlItem3.Control = setHydroGradingModelCtrl1;
-            layoutControlItem3.Location = new Point(433, 0);
-            layoutControlItem3.Name = "layoutControlItem3";
-            layoutControlItem3.Size = new Size(460, 553);
-            layoutControlItem3.Text = "閰嶇疆";
-            layoutControlItem3.TextLocation = DevExpress.Utils.Locations.Top;
-            layoutControlItem3.TextSize = new Size(24, 14);
-            // 
-            // layoutControlItem4
-            // 
-            layoutControlItem4.Control = btnOk;
-            layoutControlItem4.Location = new Point(653, 553);
-            layoutControlItem4.MaxSize = new Size(120, 26);
-            layoutControlItem4.MinSize = new Size(120, 26);
-            layoutControlItem4.Name = "layoutControlItem4";
-            layoutControlItem4.Size = new Size(120, 26);
-            layoutControlItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
-            layoutControlItem4.TextSize = new Size(0, 0);
-            layoutControlItem4.TextVisible = false;
-            // 
-            // layoutControlItem5
-            // 
-            layoutControlItem5.Control = btnCancel;
-            layoutControlItem5.Location = new Point(773, 553);
-            layoutControlItem5.MaxSize = new Size(120, 26);
-            layoutControlItem5.MinSize = new Size(120, 26);
-            layoutControlItem5.Name = "layoutControlItem5";
-            layoutControlItem5.Size = new Size(120, 26);
-            layoutControlItem5.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
-            layoutControlItem5.TextSize = new Size(0, 0);
-            layoutControlItem5.TextVisible = false;
-            // 
-            // emptySpaceItem1
-            // 
-            emptySpaceItem1.AllowHotTrack = false;
-            emptySpaceItem1.Location = new Point(0, 553);
-            emptySpaceItem1.Name = "emptySpaceItem1";
-            emptySpaceItem1.Size = new Size(653, 26);
-            emptySpaceItem1.TextSize = new Size(0, 0);
-            // 
-            // splitterItem1
-            // 
-            splitterItem1.AllowHotTrack = true;
-            splitterItem1.Location = new Point(209, 0);
-            splitterItem1.Name = "splitterItem1";
-            splitterItem1.Size = new Size(10, 553);
-            // 
-            // splitterItem2
-            // 
-            splitterItem2.AllowHotTrack = true;
-            splitterItem2.Location = new Point(423, 0);
-            splitterItem2.Name = "splitterItem2";
-            splitterItem2.Size = new Size(10, 553);
-            // 
-            // SetHydroGradingModelDlg
-            // 
-            AutoScaleDimensions = new SizeF(7F, 14F);
-            AutoScaleMode = AutoScaleMode.Font;
-            ClientSize = new Size(913, 599);
-            Controls.Add(layoutControl1);
-            Name = "SetHydroGradingModelDlg";
-            StartPosition = FormStartPosition.CenterParent;
-            Text = "棰滆壊閰嶇疆";
-            ((ISupportInitialize)layoutControl1).EndInit();
-            layoutControl1.ResumeLayout(false);
-            ((ISupportInitialize)Root).EndInit();
-            ((ISupportInitialize)layoutControlItem1).EndInit();
-            ((ISupportInitialize)layoutControlItem2).EndInit();
-            ((ISupportInitialize)layoutControlItem3).EndInit();
-            ((ISupportInitialize)layoutControlItem4).EndInit();
-            ((ISupportInitialize)layoutControlItem5).EndInit();
-            ((ISupportInitialize)emptySpaceItem1).EndInit();
-            ((ISupportInitialize)splitterItem1).EndInit();
-            ((ISupportInitialize)splitterItem2).EndInit();
-            ResumeLayout(false);
-        }
-
-        #endregion
-
-        private DevExpress.XtraLayout.LayoutControl layoutControl1;
-        private DevExpress.XtraLayout.LayoutControlGroup Root;
-        private DevExpress.XtraEditors.SimpleButton btnCancel;
-        private DevExpress.XtraEditors.SimpleButton btnOk;
-        private SetHydroGradingModelCtrl setHydroGradingModelCtrl1;
-        private SelectHydroGradingPropCtrl selectHydroGradingPropCtrl1;
-        private SelectHydroGradingCatalogCtrl selectHydroGradingCatalogCtrl1;
-        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
-        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
-        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
-        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4;
-        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5;
-        private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1;
-        private DevExpress.XtraLayout.SplitterItem splitterItem1;
-        private DevExpress.XtraLayout.SplitterItem splitterItem2;
-    }
-}
\ No newline at end of file
diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/05-set/SetHydroGradingModelDlg.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/05-set/SetHydroGradingModelDlg.cs
deleted file mode 100644
index 62c395a..0000000
--- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/05-set/SetHydroGradingModelDlg.cs
+++ /dev/null
@@ -1,81 +0,0 @@
-锘縩amespace Yw.WinFrmUI
-{
-    public partial class SetHydroGradingModelDlg : DevExpress.XtraEditors.XtraForm
-    {
-        public SetHydroGradingModelDlg()
-        {
-            InitializeComponent();
-            this.IconOptions.Icon = Yw.WinFrmUI.GlobalParas.AppIcon;
-        }
-
-        private long _modelId;
-        private string _catalog;
-        private string _propName;
-
-        /// <summary>
-        /// 
-        /// </summary>
-        public async void SetBindingData(long modelId)
-        {
-            _modelId = modelId;
-            var hydroGradingList = await BLLFactory<Yw.BLL.HydroGrading>.Instance.GetByModelID(_modelId);
-            if (hydroGradingList == null || hydroGradingList.Count < 1)
-            {
-                var gradingConfig = Yw.Settings.HydroParasHelper.Hydro.Grading;
-                if (gradingConfig != null && gradingConfig.Items != null && gradingConfig.Items.Count > 0)
-                {
-                    hydroGradingList = new List<HydroGradingVmo>();
-                    gradingConfig.Items.ForEach(x =>
-                    {
-                        var vmo = new HydroGradingVmo()
-                        {
-                            ModelID = _modelId,
-                            Catalog = x.Catalog,
-                            PropName = x.PropName,
-                            SetValue = x.SetValue,
-                            MinValue = x.MinValue,
-                            MaxValue = x.MaxValue,
-                            Color = x.Color,
-                            SortCode = gradingConfig.Items.IndexOf(x)
-                        };
-                        hydroGradingList.Add(vmo);
-                    });
-                }
-            }
-            this.setHydroGradingModelCtrl1.InitialData(hydroGradingList);
-            this.selectHydroGradingCatalogCtrl1.InitialData();
-        }
-
-        //鍒嗙被鏀瑰彉
-        private void selectHydroGradingCatalogCtrl1_SelectedCodeChangedEvent(string code)
-        {
-            _catalog = code;
-            this.selectHydroGradingPropCtrl1.SetBindingData(code);
-        }
-
-        //灞炴�ф敼鍙�
-        private void selectHydroGradingPropCtrl1_SelectedCodeChangedEvent(string code)
-        {
-            _propName = code;
-            this.setHydroGradingModelCtrl1.SetBindingData(_modelId, _catalog, _propName);
-        }
-
-        //纭畾
-        private async void btnOk_Click(object sender, EventArgs e)
-        {
-            var gradingList = this.setHydroGradingModelCtrl1.GetGrading();
-            var bol = await BLLFactory<Yw.BLL.HydroGrading>.Instance.Save(_modelId, gradingList);
-            if (!bol)
-            {
-                TipFormHelper.ShowWarn("棰滆壊鍒嗙骇閰嶇疆澶辫触");
-            }
-            else
-            {
-                TipFormHelper.ShowSucceed("棰滆壊鍒嗙骇閰嶇疆鎴愬姛");
-            }
-            this.DialogResult = DialogResult.OK;
-            this.Close();
-        }
-
-    }
-}
\ No newline at end of file
diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/05-set/SetHydroGradingModelTreeDlg.Designer.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/05-set/SetHydroGradingModelTreeDlg.Designer.cs
deleted file mode 100644
index 5a3fc90..0000000
--- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/05-set/SetHydroGradingModelTreeDlg.Designer.cs
+++ /dev/null
@@ -1,213 +0,0 @@
-锘縩amespace Yw.WinFrmUI
-{
-    partial class SetHydroGradingModelTreeDlg
-    {
-        /// <summary>
-        /// Required designer variable.
-        /// </summary>
-        private System.ComponentModel.IContainer components = null;
-
-        /// <summary>
-        /// Clean up any resources being used.
-        /// </summary>
-        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
-        protected override void Dispose(bool disposing)
-        {
-            if (disposing && (components != null))
-            {
-                components.Dispose();
-            }
-            base.Dispose(disposing);
-        }
-
-        #region Windows Form Designer generated code
-
-        /// <summary>
-        /// Required method for Designer support - do not modify
-        /// the contents of this method with the code editor.
-        /// </summary>
-        private void InitializeComponent()
-        {
-            layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
-            selectHydroGradingPropTreeCtrl1 = new SelectHydroGradingPropTreeCtrl();
-            btnCancel = new DevExpress.XtraEditors.SimpleButton();
-            btnSave = new DevExpress.XtraEditors.SimpleButton();
-            setHydroGradingModelCtrl1 = new SetHydroGradingModelCtrl();
-            Root = new DevExpress.XtraLayout.LayoutControlGroup();
-            layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
-            layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
-            layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem();
-            emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem();
-            layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
-            splitterItem2 = new DevExpress.XtraLayout.SplitterItem();
-            ((ISupportInitialize)layoutControl1).BeginInit();
-            layoutControl1.SuspendLayout();
-            ((ISupportInitialize)Root).BeginInit();
-            ((ISupportInitialize)layoutControlItem3).BeginInit();
-            ((ISupportInitialize)layoutControlItem4).BeginInit();
-            ((ISupportInitialize)layoutControlItem5).BeginInit();
-            ((ISupportInitialize)emptySpaceItem1).BeginInit();
-            ((ISupportInitialize)layoutControlItem1).BeginInit();
-            ((ISupportInitialize)splitterItem2).BeginInit();
-            SuspendLayout();
-            // 
-            // layoutControl1
-            // 
-            layoutControl1.Controls.Add(selectHydroGradingPropTreeCtrl1);
-            layoutControl1.Controls.Add(btnCancel);
-            layoutControl1.Controls.Add(btnSave);
-            layoutControl1.Controls.Add(setHydroGradingModelCtrl1);
-            layoutControl1.Dock = DockStyle.Fill;
-            layoutControl1.Location = new Point(0, 0);
-            layoutControl1.Name = "layoutControl1";
-            layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new Rectangle(1004, 264, 650, 400);
-            layoutControl1.Root = Root;
-            layoutControl1.Size = new Size(913, 599);
-            layoutControl1.TabIndex = 0;
-            layoutControl1.Text = "layoutControl1";
-            // 
-            // selectHydroGradingPropTreeCtrl1
-            // 
-            selectHydroGradingPropTreeCtrl1.Location = new Point(12, 12);
-            selectHydroGradingPropTreeCtrl1.Name = "selectHydroGradingPropTreeCtrl1";
-            selectHydroGradingPropTreeCtrl1.Size = new Size(229, 549);
-            selectHydroGradingPropTreeCtrl1.TabIndex = 0;
-            // 
-            // btnCancel
-            // 
-            btnCancel.Appearance.BackColor = DevExpress.LookAndFeel.DXSkinColors.FillColors.Warning;
-            btnCancel.Appearance.Options.UseBackColor = true;
-            btnCancel.DialogResult = DialogResult.Cancel;
-            btnCancel.Location = new Point(805, 565);
-            btnCancel.Name = "btnCancel";
-            btnCancel.Size = new Size(96, 22);
-            btnCancel.StyleController = layoutControl1;
-            btnCancel.TabIndex = 4;
-            btnCancel.Text = "鍙栨秷";
-            // 
-            // btnSave
-            // 
-            btnSave.Appearance.BackColor = DevExpress.LookAndFeel.DXSkinColors.FillColors.Primary;
-            btnSave.Appearance.Options.UseBackColor = true;
-            btnSave.Location = new Point(705, 565);
-            btnSave.Name = "btnSave";
-            btnSave.Size = new Size(96, 22);
-            btnSave.StyleController = layoutControl1;
-            btnSave.TabIndex = 3;
-            btnSave.Text = "淇濆瓨";
-            btnSave.Click += btnSave_Click;
-            // 
-            // setHydroGradingModelCtrl1
-            // 
-            setHydroGradingModelCtrl1.Location = new Point(255, 12);
-            setHydroGradingModelCtrl1.Name = "setHydroGradingModelCtrl1";
-            setHydroGradingModelCtrl1.Size = new Size(646, 549);
-            setHydroGradingModelCtrl1.TabIndex = 2;
-            // 
-            // Root
-            // 
-            Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
-            Root.GroupBordersVisible = false;
-            Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem3, layoutControlItem4, layoutControlItem5, emptySpaceItem1, layoutControlItem1, splitterItem2 });
-            Root.Name = "Root";
-            Root.Size = new Size(913, 599);
-            Root.TextVisible = false;
-            // 
-            // layoutControlItem3
-            // 
-            layoutControlItem3.Control = setHydroGradingModelCtrl1;
-            layoutControlItem3.Location = new Point(243, 0);
-            layoutControlItem3.Name = "layoutControlItem3";
-            layoutControlItem3.Size = new Size(650, 553);
-            layoutControlItem3.Text = "閰嶇疆";
-            layoutControlItem3.TextLocation = DevExpress.Utils.Locations.Top;
-            layoutControlItem3.TextSize = new Size(0, 0);
-            layoutControlItem3.TextVisible = false;
-            // 
-            // layoutControlItem4
-            // 
-            layoutControlItem4.Control = btnSave;
-            layoutControlItem4.Location = new Point(693, 553);
-            layoutControlItem4.MaxSize = new Size(100, 26);
-            layoutControlItem4.MinSize = new Size(100, 26);
-            layoutControlItem4.Name = "layoutControlItem4";
-            layoutControlItem4.Size = new Size(100, 26);
-            layoutControlItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
-            layoutControlItem4.TextSize = new Size(0, 0);
-            layoutControlItem4.TextVisible = false;
-            // 
-            // layoutControlItem5
-            // 
-            layoutControlItem5.Control = btnCancel;
-            layoutControlItem5.Location = new Point(793, 553);
-            layoutControlItem5.MaxSize = new Size(100, 26);
-            layoutControlItem5.MinSize = new Size(100, 26);
-            layoutControlItem5.Name = "layoutControlItem5";
-            layoutControlItem5.Size = new Size(100, 26);
-            layoutControlItem5.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
-            layoutControlItem5.TextSize = new Size(0, 0);
-            layoutControlItem5.TextVisible = false;
-            // 
-            // emptySpaceItem1
-            // 
-            emptySpaceItem1.AllowHotTrack = false;
-            emptySpaceItem1.Location = new Point(0, 553);
-            emptySpaceItem1.Name = "emptySpaceItem1";
-            emptySpaceItem1.Size = new Size(693, 26);
-            emptySpaceItem1.TextSize = new Size(0, 0);
-            // 
-            // layoutControlItem1
-            // 
-            layoutControlItem1.Control = selectHydroGradingPropTreeCtrl1;
-            layoutControlItem1.Location = new Point(0, 0);
-            layoutControlItem1.Name = "layoutControlItem1";
-            layoutControlItem1.Size = new Size(233, 553);
-            layoutControlItem1.Text = "灞炴��";
-            layoutControlItem1.TextLocation = DevExpress.Utils.Locations.Top;
-            layoutControlItem1.TextSize = new Size(0, 0);
-            layoutControlItem1.TextVisible = false;
-            // 
-            // splitterItem2
-            // 
-            splitterItem2.AllowHotTrack = true;
-            splitterItem2.Location = new Point(233, 0);
-            splitterItem2.Name = "splitterItem2";
-            splitterItem2.Size = new Size(10, 553);
-            // 
-            // SetHydroGradingModelTreeDlg
-            // 
-            AutoScaleDimensions = new SizeF(7F, 14F);
-            AutoScaleMode = AutoScaleMode.Font;
-            ClientSize = new Size(913, 599);
-            Controls.Add(layoutControl1);
-            Name = "SetHydroGradingModelTreeDlg";
-            StartPosition = FormStartPosition.CenterParent;
-            Text = "棰滆壊閰嶇疆";
-            ((ISupportInitialize)layoutControl1).EndInit();
-            layoutControl1.ResumeLayout(false);
-            ((ISupportInitialize)Root).EndInit();
-            ((ISupportInitialize)layoutControlItem3).EndInit();
-            ((ISupportInitialize)layoutControlItem4).EndInit();
-            ((ISupportInitialize)layoutControlItem5).EndInit();
-            ((ISupportInitialize)emptySpaceItem1).EndInit();
-            ((ISupportInitialize)layoutControlItem1).EndInit();
-            ((ISupportInitialize)splitterItem2).EndInit();
-            ResumeLayout(false);
-        }
-
-        #endregion
-
-        private DevExpress.XtraLayout.LayoutControl layoutControl1;
-        private DevExpress.XtraLayout.LayoutControlGroup Root;
-        private DevExpress.XtraEditors.SimpleButton btnCancel;
-        private DevExpress.XtraEditors.SimpleButton btnSave;
-        private SetHydroGradingModelCtrl setHydroGradingModelCtrl1;
-        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
-        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4;
-        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5;
-        private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1;
-        private DevExpress.XtraLayout.SplitterItem splitterItem2;
-        private SelectHydroGradingPropTreeCtrl selectHydroGradingPropTreeCtrl1;
-        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
-    }
-}
\ No newline at end of file
diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/05-set/SetHydroGradingModelTreeDlg.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/05-set/SetHydroGradingModelTreeDlg.cs
deleted file mode 100644
index 70e99a2..0000000
--- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/05-set/SetHydroGradingModelTreeDlg.cs
+++ /dev/null
@@ -1,71 +0,0 @@
-锘縩amespace Yw.WinFrmUI
-{
-    public partial class SetHydroGradingModelTreeDlg : DevExpress.XtraEditors.XtraForm
-    {
-        public SetHydroGradingModelTreeDlg()
-        {
-            InitializeComponent();
-            this.IconOptions.Icon = Yw.WinFrmUI.GlobalParas.AppIcon;
-            this.layoutControl1.SetupLayoutControl();
-            this.selectHydroGradingPropTreeCtrl1.SelectedPropChangedEvent += SelectHydroGradingPropTreeCtrl1_SelectedPropChangedEvent;
-        }
-
-        private long _modelId;
-
-        /// <summary>
-        /// 
-        /// </summary>
-        public async void SetBindingData(long modelId)
-        {
-            _modelId = modelId;
-            var hydroGradingList = await BLLFactory<Yw.BLL.HydroGrading>.Instance.GetByModelID(_modelId);
-            if (hydroGradingList == null || hydroGradingList.Count < 1)
-            {
-                var gradingConfig = Yw.Settings.HydroParasHelper.Hydro.Grading;
-                if (gradingConfig != null && gradingConfig.Items != null && gradingConfig.Items.Count > 0)
-                {
-                    hydroGradingList = new List<HydroGradingVmo>();
-                    gradingConfig.Items.ForEach(x =>
-                    {
-                        var vmo = new HydroGradingVmo()
-                        {
-                            ModelID = _modelId,
-                            Catalog = x.Catalog,
-                            PropName = x.PropName,
-                            SetValue = x.SetValue,
-                            MinValue = x.MinValue,
-                            MaxValue = x.MaxValue,
-                            Color = x.Color,
-                            SortCode = gradingConfig.Items.IndexOf(x)
-                        };
-                        hydroGradingList.Add(vmo);
-                    });
-                }
-            }
-            this.setHydroGradingModelCtrl1.InitialData(hydroGradingList);
-            this.selectHydroGradingPropTreeCtrl1.InitialData();
-        }
-
-        //灞炴�ф敼鍙�
-        private void SelectHydroGradingPropTreeCtrl1_SelectedPropChangedEvent(HydroGradingPropTreeViewModel obj)
-        {
-            this.setHydroGradingModelCtrl1.SetBindingData(_modelId, obj.Catalog, obj.PropName);
-        }
-
-        //淇濆瓨
-        private async void btnSave_Click(object sender, EventArgs e)
-        {
-            var gradingList = this.setHydroGradingModelCtrl1.GetGrading();
-            var bol = await BLLFactory<Yw.BLL.HydroGrading>.Instance.Save(_modelId, gradingList);
-            if (bol)
-            {
-                TipFormHelper.ShowSucceed("棰滆壊鍒嗙骇閰嶇疆淇濆瓨鎴愬姛");
-                return;
-            }
-            TipFormHelper.ShowWarn("棰滆壊鍒嗙骇閰嶇疆淇濆瓨澶辫触");
-        }
-
-
-
-    }
-}
\ No newline at end of file
diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/05-set/SetHydroGradingModelTreeDlg.resx b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/05-set/SetHydroGradingModelTreeDlg.resx
deleted file mode 100644
index af32865..0000000
--- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/05-set/SetHydroGradingModelTreeDlg.resx
+++ /dev/null
@@ -1,120 +0,0 @@
-锘�<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!--
-    Microsoft ResX Schema 
-
-    Version 2.0
-
-    The primary goals of this format is to allow a simple XML format
-    that is mostly human readable. The generation and parsing of the
-    various data types are done through the TypeConverter classes
-    associated with the data types.
-
-    Example:
-
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-
-    There are any number of "resheader" rows that contain simple
-    name/value pairs.
-
-    Each data row contains a name, and value. The row also contains a
-    type or mimetype. Type corresponds to a .NET class that support
-    text/value conversion through the TypeConverter architecture.
-    Classes that don't support this are serialized and stored with the
-    mimetype set.
-
-    The mimetype is used for serialized objects, and tells the
-    ResXResourceReader how to depersist the object. This is currently not
-    extensible. For a given mimetype the value must be set accordingly:
-
-    Note - application/x-microsoft.net.object.binary.base64 is the format
-    that the ResXResourceWriter will generate, however the reader can
-    read any of the formats listed below.
-
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-</root>
\ No newline at end of file
diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/05-set/SetHydroGradingTreeDlg.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/05-set/SetHydroGradingTreeDlg.cs
index 41a9b2e..f334cc4 100644
--- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/05-set/SetHydroGradingTreeDlg.cs
+++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/05-set/SetHydroGradingTreeDlg.cs
@@ -23,48 +23,45 @@
         /// </summary>
         public event Action<string, string> ApplyDataEvent;
 
-        //妯″瀷淇℃伅
-        private Yw.Model.HydroModelInfo _hydroInfo;
-        //鎵�鏈夐鑹插垎绾�
-        private List<HydroGradingVmo> _allGradingList = null;
-        //褰撳墠灞炴��
-        private HydroGradingPropTreeViewModel _currentProp = null;
+        private Yw.Model.HydroModelInfo _hydro;//姘村姏淇℃伅
+        private List<HydroGradingVmo> _allGradingList = null;//鎵�鏈夐鑹插垎绾� 
+        private HydroGradingPropTreeViewModel _currentProp = null;//褰撳墠灞炴��
 
 
         /// <summary>
         /// 缁戝畾鏁版嵁
         /// </summary>
-        public void SetBindingData(Yw.Model.HydroModelInfo hydroInfo, List<HydroGradingVmo> allGradingList)
+        public void SetBindingData(Yw.Model.HydroModelInfo hydro, List<HydroGradingVmo> allGradingList)
         {
-            _hydroInfo = hydroInfo;
+            _hydro = hydro;
             _allGradingList = allGradingList;
             this.setHydroGradingModelCtrl1.InitialData(allGradingList);
-            this.selectHydroGradingPropTreeCtrl1.InitialData();
+            this.selectHydroGradingPropTreeCtrl1.SetBindingData(hydro);
         }
 
         //灞炴�ф敼鍙�
         private void SelectHydroGradingPropTreeCtrl1_SelectedPropChangedEvent(HydroGradingPropTreeViewModel obj)
         {
-            if (_hydroInfo == null)
+            if (_hydro == null)
             {
                 return;
             }
             _currentProp = obj;
-            this.setHydroGradingModelCtrl1.SetBindingData(_hydroInfo.ID, obj.Catalog, obj.PropName);
+            this.setHydroGradingModelCtrl1.SetBindingData(_hydro.ID, obj.Catalog, obj.PropName);
         }
 
         //淇濆瓨
         private async Task<bool> Save()
         {
-            if (_hydroInfo == null)
+            if (_hydro == null)
             {
                 return default;
             }
             var gradingList = this.setHydroGradingModelCtrl1.GetGrading();
-            var bol = await BLLFactory<Yw.BLL.HydroGrading>.Instance.Save(_hydroInfo.ID, gradingList);
+            var bol = await BLLFactory<Yw.BLL.HydroGrading>.Instance.Save(_hydro.ID, gradingList);
             if (bol)
             {
-                _allGradingList = await BLLFactory<Yw.BLL.HydroGrading>.Instance.GetByModelID(_hydroInfo.ID);
+                _allGradingList = await BLLFactory<Yw.BLL.HydroGrading>.Instance.GetByModelID(_hydro.ID);
                 this.setHydroGradingModelCtrl1.InitialData(_allGradingList);
                 this.setHydroGradingModelCtrl1.ResetBindingData();
                 this.ReloadDataEvent?.Invoke(_allGradingList);
@@ -107,7 +104,6 @@
             {
                 this.ApplyDataEvent.Invoke(_currentProp.Catalog, _currentProp.PropName);
                 TipFormHelper.ShowSucceed("搴旂敤鎴愬姛");
-
             }
         }
 
diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/06-apply/ApplyHydroGradingCtrl.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/06-apply/ApplyHydroGradingCtrl.cs
index 2473438..2ed46d1 100644
--- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/06-apply/ApplyHydroGradingCtrl.cs
+++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/06-apply/ApplyHydroGradingCtrl.cs
@@ -48,7 +48,7 @@
             if (e.Column == this.colPropName)
             {
                 var repositoryItem = new RepositoryItemImageComboBox();
-                var dict = HydroGradingPropHelper.GetDict(row.Catalog);
+                var dict = HydroGradingPropHelper.GetNameDictExtensions(row.Catalog);
                 dict?.ForEach(x => repositoryItem.Items.Add(x.Value, x.Key, -1));
                 e.RepositoryItem = repositoryItem;
             }
diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/00-core/05-extensions/HydroMonitorExtensions.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/00-core/HydroMonitorExtensions.cs
similarity index 100%
rename from WinFrmUI/Yw.WinFrmUI.Hydro.Core/00-core/05-extensions/HydroMonitorExtensions.cs
rename to WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/00-core/HydroMonitorExtensions.cs
diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/00-core/03-helper/HydroMonitorPropHelper.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/00-core/HydroMonitorPropHelper.cs
similarity index 100%
rename from WinFrmUI/Yw.WinFrmUI.Hydro.Core/00-core/03-helper/HydroMonitorPropHelper.cs
rename to WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/00-core/HydroMonitorPropHelper.cs
diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/04-set/HydroMonitorViewModel.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/04-set/HydroMonitorViewModel.cs
new file mode 100644
index 0000000..a2cf483
--- /dev/null
+++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/04-set/HydroMonitorViewModel.cs
@@ -0,0 +1,91 @@
+锘縩amespace Yw.WinFrmUI
+{
+    /// <summary>
+    /// 鐩戞祴鐐硅鍥�
+    /// </summary>
+    public class HydroMonitorViewModel
+    {
+        /// <summary>
+        /// 
+        /// </summary>
+        public HydroMonitorViewModel() { }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public HydroMonitorViewModel
+            (
+                Yw.Vmo.HydroMonitorVmo vmo,
+                Yw.Model.HydroVisualInfo visual,
+                double? propValue
+            )
+        {
+            this.Checked = vmo.ID > 0;
+            this.Parter = visual.Name;
+            this.PropName = HydroMonitorPropHelper.GetName(vmo.PropName);
+            this.PropValue = vmo.GetPropValue(propValue);
+            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;
+        }
+
+        /// <summary>
+        /// 閫夋嫨
+        /// </summary>
+        [DisplayName("閫夋嫨")]
+        public bool Checked { get; set; }
+
+        /// <summary>
+        /// 鏋勪欢
+        /// </summary>
+        [DisplayName("鏋勪欢")]
+        public string Parter { 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>
+        [DisplayName("鎺掑簭鐮�")]
+        public int SortCode { get; set; }
+
+        /// <summary>
+        /// 璇存槑
+        /// </summary>	
+        [DisplayName("璇存槑")]
+        public string Description { get; set; }
+
+        /// <summary>
+        /// vmo
+        /// </summary>
+        public Yw.Vmo.HydroMonitorVmo Vmo { get; set; }
+
+
+
+
+    }
+}
diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/04-set/SetHydroMonitorListCtrl.Designer.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/04-set/SetHydroMonitorListCtrl.Designer.cs
new file mode 100644
index 0000000..5f4faf7
--- /dev/null
+++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/04-set/SetHydroMonitorListCtrl.Designer.cs
@@ -0,0 +1,186 @@
+锘縩amespace Yw.WinFrmUI
+{
+    partial class SetHydroMonitorListCtrl
+    {
+        /// <summary> 
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Component Designer generated code
+
+        /// <summary> 
+        /// Required method for Designer support - do not modify 
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            components = new Container();
+            ComponentResourceManager resources = new ComponentResourceManager(typeof(SetHydroMonitorListCtrl));
+            gridControl1 = new DevExpress.XtraGrid.GridControl();
+            gridView1 = new DevExpress.XtraGrid.Views.Grid.GridView();
+            colChecked = new DevExpress.XtraGrid.Columns.GridColumn();
+            colParter = new DevExpress.XtraGrid.Columns.GridColumn();
+            colPropName = new DevExpress.XtraGrid.Columns.GridColumn();
+            colPropValue = new DevExpress.XtraGrid.Columns.GridColumn();
+            colUnitName = new DevExpress.XtraGrid.Columns.GridColumn();
+            colFlags = new DevExpress.XtraGrid.Columns.GridColumn();
+            repositoryItemCheckedComboBoxEdit1 = new DevExpress.XtraEditors.Repository.RepositoryItemCheckedComboBoxEdit();
+            colDescription = new DevExpress.XtraGrid.Columns.GridColumn();
+            hydroMonitorViewModelBindingSource = new BindingSource(components);
+            ((ISupportInitialize)gridControl1).BeginInit();
+            ((ISupportInitialize)gridView1).BeginInit();
+            ((ISupportInitialize)repositoryItemCheckedComboBoxEdit1).BeginInit();
+            ((ISupportInitialize)hydroMonitorViewModelBindingSource).BeginInit();
+            SuspendLayout();
+            // 
+            // gridControl1
+            // 
+            gridControl1.DataSource = hydroMonitorViewModelBindingSource;
+            gridControl1.Dock = DockStyle.Fill;
+            gridControl1.Location = new Point(0, 0);
+            gridControl1.MainView = gridView1;
+            gridControl1.Name = "gridControl1";
+            gridControl1.RepositoryItems.AddRange(new DevExpress.XtraEditors.Repository.RepositoryItem[] { repositoryItemCheckedComboBoxEdit1 });
+            gridControl1.Size = new Size(843, 329);
+            gridControl1.TabIndex = 0;
+            gridControl1.ViewCollection.AddRange(new DevExpress.XtraGrid.Views.Base.BaseView[] { gridView1 });
+            // 
+            // gridView1
+            // 
+            gridView1.Columns.AddRange(new DevExpress.XtraGrid.Columns.GridColumn[] { colChecked, colParter, colPropName, colPropValue, colUnitName, colFlags, colDescription });
+            gridView1.GridControl = gridControl1;
+            gridView1.Name = "gridView1";
+            // 
+            // colChecked
+            // 
+            colChecked.FieldName = "Checked";
+            colChecked.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("colChecked.ImageOptions.SvgImage");
+            colChecked.ImageOptions.SvgImageSize = new Size(16, 16);
+            colChecked.MaxWidth = 60;
+            colChecked.MinWidth = 60;
+            colChecked.Name = "colChecked";
+            colChecked.Visible = true;
+            colChecked.VisibleIndex = 0;
+            colChecked.Width = 60;
+            // 
+            // colParter
+            // 
+            colParter.FieldName = "Parter";
+            colParter.MaxWidth = 150;
+            colParter.MinWidth = 100;
+            colParter.Name = "colParter";
+            colParter.Visible = true;
+            colParter.VisibleIndex = 1;
+            colParter.Width = 100;
+            // 
+            // colPropName
+            // 
+            colPropName.FieldName = "PropName";
+            colPropName.MaxWidth = 100;
+            colPropName.MinWidth = 100;
+            colPropName.Name = "colPropName";
+            colPropName.Visible = true;
+            colPropName.VisibleIndex = 2;
+            colPropName.Width = 100;
+            // 
+            // colPropValue
+            // 
+            colPropValue.FieldName = "PropValue";
+            colPropValue.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("colPropValue.ImageOptions.SvgImage");
+            colPropValue.ImageOptions.SvgImageSize = new Size(16, 16);
+            colPropValue.MaxWidth = 150;
+            colPropValue.MinWidth = 100;
+            colPropValue.Name = "colPropValue";
+            colPropValue.Visible = true;
+            colPropValue.VisibleIndex = 3;
+            colPropValue.Width = 100;
+            // 
+            // colUnitName
+            // 
+            colUnitName.FieldName = "UnitName";
+            colUnitName.MaxWidth = 100;
+            colUnitName.MinWidth = 100;
+            colUnitName.Name = "colUnitName";
+            colUnitName.Visible = true;
+            colUnitName.VisibleIndex = 4;
+            colUnitName.Width = 100;
+            // 
+            // colFlags
+            // 
+            colFlags.ColumnEdit = repositoryItemCheckedComboBoxEdit1;
+            colFlags.FieldName = "Flags";
+            colFlags.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("colFlags.ImageOptions.SvgImage");
+            colFlags.ImageOptions.SvgImageSize = new Size(16, 16);
+            colFlags.MaxWidth = 200;
+            colFlags.MinWidth = 100;
+            colFlags.Name = "colFlags";
+            colFlags.Visible = true;
+            colFlags.VisibleIndex = 5;
+            colFlags.Width = 100;
+            // 
+            // repositoryItemCheckedComboBoxEdit1
+            // 
+            repositoryItemCheckedComboBoxEdit1.AllowMultiSelect = true;
+            repositoryItemCheckedComboBoxEdit1.AutoHeight = false;
+            repositoryItemCheckedComboBoxEdit1.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo) });
+            repositoryItemCheckedComboBoxEdit1.Name = "repositoryItemCheckedComboBoxEdit1";
+            repositoryItemCheckedComboBoxEdit1.SelectAllItemCaption = "鍏ㄩ��";
+            // 
+            // colDescription
+            // 
+            colDescription.FieldName = "Description";
+            colDescription.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("colDescription.ImageOptions.SvgImage");
+            colDescription.ImageOptions.SvgImageSize = new Size(16, 16);
+            colDescription.MinWidth = 100;
+            colDescription.Name = "colDescription";
+            colDescription.Visible = true;
+            colDescription.VisibleIndex = 6;
+            colDescription.Width = 100;
+            // 
+            // hydroMonitorViewModelBindingSource
+            // 
+            hydroMonitorViewModelBindingSource.DataSource = typeof(HydroMonitorViewModel);
+            // 
+            // SetHydroMonitorListCtrl
+            // 
+            AutoScaleDimensions = new SizeF(7F, 14F);
+            AutoScaleMode = AutoScaleMode.Font;
+            Controls.Add(gridControl1);
+            Name = "SetHydroMonitorListCtrl";
+            Size = new Size(843, 329);
+            ((ISupportInitialize)gridControl1).EndInit();
+            ((ISupportInitialize)gridView1).EndInit();
+            ((ISupportInitialize)repositoryItemCheckedComboBoxEdit1).EndInit();
+            ((ISupportInitialize)hydroMonitorViewModelBindingSource).EndInit();
+            ResumeLayout(false);
+        }
+
+        #endregion
+
+        private DevExpress.XtraGrid.GridControl gridControl1;
+        private DevExpress.XtraGrid.Views.Grid.GridView gridView1;
+        private DevExpress.XtraGrid.Columns.GridColumn colChecked;
+        private DevExpress.XtraGrid.Columns.GridColumn colParter;
+        private DevExpress.XtraGrid.Columns.GridColumn colPropName;
+        private DevExpress.XtraGrid.Columns.GridColumn colDescription;
+        private DevExpress.XtraGrid.Columns.GridColumn colFlags;
+        private DevExpress.XtraEditors.Repository.RepositoryItemCheckedComboBoxEdit repositoryItemCheckedComboBoxEdit1;
+        private DevExpress.XtraGrid.Columns.GridColumn colPropValue;
+        private DevExpress.XtraGrid.Columns.GridColumn colUnitName;
+        private BindingSource hydroMonitorViewModelBindingSource;
+    }
+}
diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/04-set/SetHydroMonitorListCtrl.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/04-set/SetHydroMonitorListCtrl.cs
new file mode 100644
index 0000000..489819c
--- /dev/null
+++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/04-set/SetHydroMonitorListCtrl.cs
@@ -0,0 +1,135 @@
+锘縩amespace Yw.WinFrmUI
+{
+    public partial class SetHydroMonitorListCtrl : DevExpress.XtraEditors.XtraUserControl
+    {
+        public SetHydroMonitorListCtrl()
+        {
+            InitializeComponent();
+            this.gridView1.SetNormalEditView(30);
+            this.colParter.OptionsColumn.AllowEdit = false;
+            this.colPropName.OptionsColumn.AllowEdit = false;
+            this.colUnitName.OptionsColumn.AllowEdit = false;
+        }
+
+        private Yw.Model.HydroModelInfo _hydro = null;//姘村姏淇℃伅    
+        private Yw.Model.HydroVisualInfo _visual = null;//鏋勪欢
+        private List<HydroMonitorVmo> _allMonitorList = null;//鎵�鏈夌洃娴嬪垪琛�
+        private List<HydroMonitorValueViewModel> _allMonitorValueList = null;//鎵�鏈夌洃娴嬪�煎垪琛�
+        private BindingList<HydroMonitorViewModel> _allBindingList = null;//鎵�鏈夌粦瀹氬垪琛�
+
+        /// <summary>
+        /// 缁戝畾鏁版嵁
+        /// </summary>
+        public void SetBindingData
+            (
+                Yw.Model.HydroModelInfo hydro,
+                Yw.Model.HydroVisualInfo visual,
+                List<HydroMonitorVmo> allMonitorList,
+                List<HydroMonitorValueViewModel> allMonitorValueList
+            )
+        {
+            _hydro = hydro;
+            _visual = visual;
+            _allMonitorList = allMonitorList;
+            _allMonitorValueList = allMonitorValueList;
+            _allBindingList = new BindingList<HydroMonitorViewModel>();
+            if (hydro != null)
+            {
+                if (visual != null)
+                {
+                    var propList = HydroMonitorPropHelper.GetPropList(visual.Catalog);
+                    var sortCode = allMonitorList == null || allMonitorList.Count < 1 ? 0 : allMonitorList.Max(x => x.SortCode);
+                    foreach (var prop in propList)
+                    {
+                        var vmo = allMonitorList?.Find(x => x.ModelID == hydro.ID && x.Parter == visual.Code && x.PropName == prop);
+                        if (vmo == null)
+                        {
+                            sortCode++;
+                            vmo = new HydroMonitorVmo()
+                            {
+                                ID = 0,
+                                ModelID = hydro.ID,
+                                Parter = visual.Code,
+                                SourceType = Yw.Hydro.eSourceType.None,
+                                PropName = prop,
+                                Flags = new List<string>(),
+                                SortCode = sortCode,
+                                Description = string.Empty
+                            };
+                        }
+                        double? propValue = null;
+                        var monitorValue = allMonitorValueList?.Find(x => x.Vmo.Parter == vmo.Parter && x.Vmo.PropName == vmo.PropName);
+                        if (monitorValue != null)
+                        {
+                            propValue = monitorValue.PropValue;
+                        }
+                        var vm = new HydroMonitorViewModel(vmo, visual, propValue);
+                        _allBindingList.Add(vm);
+                    }
+                }
+            }
+            InitialFlags();
+            this.hydroMonitorViewModelBindingSource.DataSource = _allBindingList;
+            this.hydroMonitorViewModelBindingSource.ResetBindings(false);
+        }
+
+        //鍒濆鍖栨爣绛�
+        private async void InitialFlags()
+        {
+            var flags = await BLLFactory<Yw.BLL.SysFlag>.Instance.GetBySysType(Yw.Hydro.DataType.HydroMonitor);
+            this.repositoryItemCheckedComboBoxEdit1.Items.BeginUpdate();
+            this.repositoryItemCheckedComboBoxEdit1.Items.Clear();
+            if (flags != null && flags.Count > 0)
+            {
+                foreach (var flag in flags)
+                {
+                    this.repositoryItemCheckedComboBoxEdit1.Items.Add(flag.Name);
+                }
+            }
+            this.repositoryItemCheckedComboBoxEdit1.Items.EndUpdate();
+        }
+
+        /// <summary>
+        /// 鑾峰彇鍊煎垪琛�
+        /// </summary>
+        public async Task<List<HydroMonitorValueViewModel>> GetValueList()
+        {
+            if (_hydro == null)
+            {
+                return default;
+            }
+            if (_visual == null)
+            {
+                return default;
+            }
+            var checkedList = _allBindingList?.Where(x => x.Checked).ToList();
+            checkedList?.ForEach(x =>
+            {
+                x.Vmo.Flags = HydroFlagsHelper.ToList(x.Flags);
+                x.Vmo.Description = x.Description;
+            });
+            var vmoList = checkedList?.Select(x => x.Vmo).ToList();
+            var bol = await BLLFactory<Yw.BLL.HydroMonitor>.Instance.Save(_hydro.ID, _visual.Code, null, vmoList);
+            if (!bol)
+            {
+                TipFormHelper.ShowError("璁剧疆澶辫触锛�");
+                return default;
+            }
+            TipFormHelper.ShowSucceed("璁剧疆鎴愬姛锛�");
+            var monitorList = await BLLFactory<Yw.BLL.HydroMonitor>.Instance.GetByParter(_hydro.ID, _visual.Code);
+            var valueList = new List<HydroMonitorValueViewModel>();
+            monitorList?.ForEach(x =>
+            {
+                double? propValue = null;
+                var checkedItem = checkedList.Find(t => t.Vmo.PropName == x.PropName);
+                propValue = checkedItem?.PropValue;
+                var vm = new HydroMonitorValueViewModel(x, _visual, propValue);
+                valueList.Add(vm);
+            });
+            return valueList;
+        }
+
+
+
+    }
+}
diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/04-set/SetHydroMonitorListCtrl.resx b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/04-set/SetHydroMonitorListCtrl.resx
new file mode 100644
index 0000000..0de6df0
--- /dev/null
+++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/04-set/SetHydroMonitorListCtrl.resx
@@ -0,0 +1,240 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!--
+    Microsoft ResX Schema 
+
+    Version 2.0
+
+    The primary goals of this format is to allow a simple XML format
+    that is mostly human readable. The generation and parsing of the
+    various data types are done through the TypeConverter classes
+    associated with the data types.
+
+    Example:
+
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+
+    There are any number of "resheader" rows that contain simple
+    name/value pairs.
+
+    Each data row contains a name, and value. The row also contains a
+    type or mimetype. Type corresponds to a .NET class that support
+    text/value conversion through the TypeConverter architecture.
+    Classes that don't support this are serialized and stored with the
+    mimetype set.
+
+    The mimetype is used for serialized objects, and tells the
+    ResXResourceReader how to depersist the object. This is currently not
+    extensible. For a given mimetype the value must be set accordingly:
+
+    Note - application/x-microsoft.net.object.binary.base64 is the format
+    that the ResXResourceWriter will generate, however the reader can
+    read any of the formats listed below.
+
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <metadata name="hydroMonitorViewModelBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>350, 17</value>
+  </metadata>
+  <assembly alias="DevExpress.Data.v23.2" name="DevExpress.Data.v23.2, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
+  <data name="colChecked.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
+        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
+        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAABwFAAAC77u/
+        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
+        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
+        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
+        Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
+        MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLlllbGxvd3tmaWxsOiNGRkIxMTU7fQoJ
+        LlJlZHtmaWxsOiNEMTFDMUM7fQoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9CgkuQmx1ZXtmaWxsOiMxMTc3
+        RDc7fQoJLldoaXRle2ZpbGw6I0ZGRkZGRjt9CgkuR3JlZW57ZmlsbDojMDM5QzIzO30KCS5zdDB7b3Bh
+        Y2l0eTowLjc1O30KCS5zdDF7b3BhY2l0eTowLjU7fQoJLnN0MntvcGFjaXR5OjAuMjU7fQoJLnN0M3tm
+        aWxsOiNGRkIxMTU7fQo8L3N0eWxlPg0KICA8ZyAvPg0KICA8ZyBpZD0iUmVuYW1lXzFfIj4NCiAgICA8
+        cGF0aCBkPSJNMi4xLDE2aDIuMmwwLjYtMi4zaDMuMkw4LjgsMTZIMTFMNy44LDZINS40TDIuMSwxNnog
+        TTYuNCw4LjdjMC4xLTAuMywwLjEtMC42LDAuMS0wLjloMC4xICAgYzAsMC4zLDAuMSwwLjYsMC4xLDAu
+        OWwxLDMuM0g1LjRMNi40LDguN3ogTTE3LjUsMTAuNmMwLjYtMC4yLDEuMS0wLjUsMS41LTAuOWMwLjQt
+        MC40LDAuNi0wLjksMC42LTEuNGMwLTAuNy0wLjMtMS4zLTAuOS0xLjcgICBDMTguMSw2LjIsMTcuMSw2
+        LDE1LjksNkgxMnY5LjlWMTZoNGMxLjIsMCwyLjItMC4yLDIuOS0wLjhDMTkuNywxNC42LDIwLDE0LDIw
+        LDEzYzAtMC42LTAuMi0xLjItMC43LTEuNiAgIEMxOC45LDExLDE4LjMsMTAuNywxNy41LDEwLjZ6IE0x
+        NC40LDcuN2gwLjljMS4xLDAsMS43LDAuNCwxLjcsMS4xYzAsMC40LTAuMSwwLjctMC40LDAuOUMxNi40
+        LDkuOSwxNiwxMCwxNS41LDEwaC0xLjFWNy43eiAgICBNMTcsMTMuOGMtMC4zLDAuMi0wLjgsMC40LTEu
+        MywwLjRoLTEuM3YtMi42aDEuM2MwLjUsMCwwLjksMC4xLDEuMywwLjNjMC4zLDAuMiwwLjUsMC42LDAu
+        NSwwLjlDMTcuNSwxMy4zLDE3LjQsMTMuNiwxNywxMy44eiIgY2xhc3M9IkJsYWNrIiAvPg0KICAgIDxw
+        YXRoIGQ9Ik0yNywxOWwtOCw4bC00LTRsOC04TDI3LDE5eiBNMjgsMThsMS43LTEuN2MwLjQtMC40LDAu
+        NC0xLDAtMS4zTDI3LDEyLjNjLTAuNC0wLjQtMS0wLjQtMS4zLDBMMjQsMTRMMjgsMTh6ICAgIE0xNCwy
+        NHY0aDRMMTQsMjR6IiBjbGFzcz0iQmx1ZSIgLz4NCiAgPC9nPg0KPC9zdmc+Cw==
+</value>
+  </data>
+  <data name="colPropValue.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
+        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
+        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAABwFAAAC77u/
+        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
+        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
+        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
+        Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
+        MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLlllbGxvd3tmaWxsOiNGRkIxMTU7fQoJ
+        LlJlZHtmaWxsOiNEMTFDMUM7fQoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9CgkuQmx1ZXtmaWxsOiMxMTc3
+        RDc7fQoJLldoaXRle2ZpbGw6I0ZGRkZGRjt9CgkuR3JlZW57ZmlsbDojMDM5QzIzO30KCS5zdDB7b3Bh
+        Y2l0eTowLjc1O30KCS5zdDF7b3BhY2l0eTowLjU7fQoJLnN0MntvcGFjaXR5OjAuMjU7fQoJLnN0M3tm
+        aWxsOiNGRkIxMTU7fQo8L3N0eWxlPg0KICA8ZyAvPg0KICA8ZyBpZD0iUmVuYW1lXzFfIj4NCiAgICA8
+        cGF0aCBkPSJNMi4xLDE2aDIuMmwwLjYtMi4zaDMuMkw4LjgsMTZIMTFMNy44LDZINS40TDIuMSwxNnog
+        TTYuNCw4LjdjMC4xLTAuMywwLjEtMC42LDAuMS0wLjloMC4xICAgYzAsMC4zLDAuMSwwLjYsMC4xLDAu
+        OWwxLDMuM0g1LjRMNi40LDguN3ogTTE3LjUsMTAuNmMwLjYtMC4yLDEuMS0wLjUsMS41LTAuOWMwLjQt
+        MC40LDAuNi0wLjksMC42LTEuNGMwLTAuNy0wLjMtMS4zLTAuOS0xLjcgICBDMTguMSw2LjIsMTcuMSw2
+        LDE1LjksNkgxMnY5LjlWMTZoNGMxLjIsMCwyLjItMC4yLDIuOS0wLjhDMTkuNywxNC42LDIwLDE0LDIw
+        LDEzYzAtMC42LTAuMi0xLjItMC43LTEuNiAgIEMxOC45LDExLDE4LjMsMTAuNywxNy41LDEwLjZ6IE0x
+        NC40LDcuN2gwLjljMS4xLDAsMS43LDAuNCwxLjcsMS4xYzAsMC40LTAuMSwwLjctMC40LDAuOUMxNi40
+        LDkuOSwxNiwxMCwxNS41LDEwaC0xLjFWNy43eiAgICBNMTcsMTMuOGMtMC4zLDAuMi0wLjgsMC40LTEu
+        MywwLjRoLTEuM3YtMi42aDEuM2MwLjUsMCwwLjksMC4xLDEuMywwLjNjMC4zLDAuMiwwLjUsMC42LDAu
+        NSwwLjlDMTcuNSwxMy4zLDE3LjQsMTMuNiwxNywxMy44eiIgY2xhc3M9IkJsYWNrIiAvPg0KICAgIDxw
+        YXRoIGQ9Ik0yNywxOWwtOCw4bC00LTRsOC04TDI3LDE5eiBNMjgsMThsMS43LTEuN2MwLjQtMC40LDAu
+        NC0xLDAtMS4zTDI3LDEyLjNjLTAuNC0wLjQtMS0wLjQtMS4zLDBMMjQsMTRMMjgsMTh6ICAgIE0xNCwy
+        NHY0aDRMMTQsMjR6IiBjbGFzcz0iQmx1ZSIgLz4NCiAgPC9nPg0KPC9zdmc+Cw==
+</value>
+  </data>
+  <data name="colFlags.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
+        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
+        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAABwFAAAC77u/
+        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
+        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
+        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
+        Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
+        MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLlllbGxvd3tmaWxsOiNGRkIxMTU7fQoJ
+        LlJlZHtmaWxsOiNEMTFDMUM7fQoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9CgkuQmx1ZXtmaWxsOiMxMTc3
+        RDc7fQoJLldoaXRle2ZpbGw6I0ZGRkZGRjt9CgkuR3JlZW57ZmlsbDojMDM5QzIzO30KCS5zdDB7b3Bh
+        Y2l0eTowLjc1O30KCS5zdDF7b3BhY2l0eTowLjU7fQoJLnN0MntvcGFjaXR5OjAuMjU7fQoJLnN0M3tm
+        aWxsOiNGRkIxMTU7fQo8L3N0eWxlPg0KICA8ZyAvPg0KICA8ZyBpZD0iUmVuYW1lXzFfIj4NCiAgICA8
+        cGF0aCBkPSJNMi4xLDE2aDIuMmwwLjYtMi4zaDMuMkw4LjgsMTZIMTFMNy44LDZINS40TDIuMSwxNnog
+        TTYuNCw4LjdjMC4xLTAuMywwLjEtMC42LDAuMS0wLjloMC4xICAgYzAsMC4zLDAuMSwwLjYsMC4xLDAu
+        OWwxLDMuM0g1LjRMNi40LDguN3ogTTE3LjUsMTAuNmMwLjYtMC4yLDEuMS0wLjUsMS41LTAuOWMwLjQt
+        MC40LDAuNi0wLjksMC42LTEuNGMwLTAuNy0wLjMtMS4zLTAuOS0xLjcgICBDMTguMSw2LjIsMTcuMSw2
+        LDE1LjksNkgxMnY5LjlWMTZoNGMxLjIsMCwyLjItMC4yLDIuOS0wLjhDMTkuNywxNC42LDIwLDE0LDIw
+        LDEzYzAtMC42LTAuMi0xLjItMC43LTEuNiAgIEMxOC45LDExLDE4LjMsMTAuNywxNy41LDEwLjZ6IE0x
+        NC40LDcuN2gwLjljMS4xLDAsMS43LDAuNCwxLjcsMS4xYzAsMC40LTAuMSwwLjctMC40LDAuOUMxNi40
+        LDkuOSwxNiwxMCwxNS41LDEwaC0xLjFWNy43eiAgICBNMTcsMTMuOGMtMC4zLDAuMi0wLjgsMC40LTEu
+        MywwLjRoLTEuM3YtMi42aDEuM2MwLjUsMCwwLjksMC4xLDEuMywwLjNjMC4zLDAuMiwwLjUsMC42LDAu
+        NSwwLjlDMTcuNSwxMy4zLDE3LjQsMTMuNiwxNywxMy44eiIgY2xhc3M9IkJsYWNrIiAvPg0KICAgIDxw
+        YXRoIGQ9Ik0yNywxOWwtOCw4bC00LTRsOC04TDI3LDE5eiBNMjgsMThsMS43LTEuN2MwLjQtMC40LDAu
+        NC0xLDAtMS4zTDI3LDEyLjNjLTAuNC0wLjQtMS0wLjQtMS4zLDBMMjQsMTRMMjgsMTh6ICAgIE0xNCwy
+        NHY0aDRMMTQsMjR6IiBjbGFzcz0iQmx1ZSIgLz4NCiAgPC9nPg0KPC9zdmc+Cw==
+</value>
+  </data>
+  <data name="colDescription.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
+        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
+        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAABwFAAAC77u/
+        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
+        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
+        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
+        Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
+        MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLlllbGxvd3tmaWxsOiNGRkIxMTU7fQoJ
+        LlJlZHtmaWxsOiNEMTFDMUM7fQoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9CgkuQmx1ZXtmaWxsOiMxMTc3
+        RDc7fQoJLldoaXRle2ZpbGw6I0ZGRkZGRjt9CgkuR3JlZW57ZmlsbDojMDM5QzIzO30KCS5zdDB7b3Bh
+        Y2l0eTowLjc1O30KCS5zdDF7b3BhY2l0eTowLjU7fQoJLnN0MntvcGFjaXR5OjAuMjU7fQoJLnN0M3tm
+        aWxsOiNGRkIxMTU7fQo8L3N0eWxlPg0KICA8ZyAvPg0KICA8ZyBpZD0iUmVuYW1lXzFfIj4NCiAgICA8
+        cGF0aCBkPSJNMi4xLDE2aDIuMmwwLjYtMi4zaDMuMkw4LjgsMTZIMTFMNy44LDZINS40TDIuMSwxNnog
+        TTYuNCw4LjdjMC4xLTAuMywwLjEtMC42LDAuMS0wLjloMC4xICAgYzAsMC4zLDAuMSwwLjYsMC4xLDAu
+        OWwxLDMuM0g1LjRMNi40LDguN3ogTTE3LjUsMTAuNmMwLjYtMC4yLDEuMS0wLjUsMS41LTAuOWMwLjQt
+        MC40LDAuNi0wLjksMC42LTEuNGMwLTAuNy0wLjMtMS4zLTAuOS0xLjcgICBDMTguMSw2LjIsMTcuMSw2
+        LDE1LjksNkgxMnY5LjlWMTZoNGMxLjIsMCwyLjItMC4yLDIuOS0wLjhDMTkuNywxNC42LDIwLDE0LDIw
+        LDEzYzAtMC42LTAuMi0xLjItMC43LTEuNiAgIEMxOC45LDExLDE4LjMsMTAuNywxNy41LDEwLjZ6IE0x
+        NC40LDcuN2gwLjljMS4xLDAsMS43LDAuNCwxLjcsMS4xYzAsMC40LTAuMSwwLjctMC40LDAuOUMxNi40
+        LDkuOSwxNiwxMCwxNS41LDEwaC0xLjFWNy43eiAgICBNMTcsMTMuOGMtMC4zLDAuMi0wLjgsMC40LTEu
+        MywwLjRoLTEuM3YtMi42aDEuM2MwLjUsMCwwLjksMC4xLDEuMywwLjNjMC4zLDAuMiwwLjUsMC42LDAu
+        NSwwLjlDMTcuNSwxMy4zLDE3LjQsMTMuNiwxNywxMy44eiIgY2xhc3M9IkJsYWNrIiAvPg0KICAgIDxw
+        YXRoIGQ9Ik0yNywxOWwtOCw4bC00LTRsOC04TDI3LDE5eiBNMjgsMThsMS43LTEuN2MwLjQtMC40LDAu
+        NC0xLDAtMS4zTDI3LDEyLjNjLTAuNC0wLjQtMS0wLjQtMS4zLDBMMjQsMTRMMjgsMTh6ICAgIE0xNCwy
+        NHY0aDRMMTQsMjR6IiBjbGFzcz0iQmx1ZSIgLz4NCiAgPC9nPg0KPC9zdmc+Cw==
+</value>
+  </data>
+</root>
\ No newline at end of file
diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/04-set/SetHydroMonitorListDlg.Designer.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/04-set/SetHydroMonitorListDlg.Designer.cs
new file mode 100644
index 0000000..e7f534f
--- /dev/null
+++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/04-set/SetHydroMonitorListDlg.Designer.cs
@@ -0,0 +1,167 @@
+锘縩amespace Yw.WinFrmUI
+{
+    partial class SetHydroMonitorListDlg
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Windows Form Designer generated code
+
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            ribbon = new DevExpress.XtraBars.Ribbon.RibbonControl();
+            ribbonPage1 = new DevExpress.XtraBars.Ribbon.RibbonPage();
+            ribbonPageGroup1 = new DevExpress.XtraBars.Ribbon.RibbonPageGroup();
+            layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+            setHydroMonitorListCtrl1 = new SetHydroMonitorListCtrl();
+            generalOkAndCancelCtrl1 = new GeneralOkAndCancelCtrl();
+            Root = new DevExpress.XtraLayout.LayoutControlGroup();
+            layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+            layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
+            ((ISupportInitialize)ribbon).BeginInit();
+            ((ISupportInitialize)layoutControl1).BeginInit();
+            layoutControl1.SuspendLayout();
+            ((ISupportInitialize)Root).BeginInit();
+            ((ISupportInitialize)layoutControlItem2).BeginInit();
+            ((ISupportInitialize)layoutControlItem3).BeginInit();
+            SuspendLayout();
+            // 
+            // ribbon
+            // 
+            ribbon.ExpandCollapseItem.Id = 0;
+            ribbon.Items.AddRange(new DevExpress.XtraBars.BarItem[] { ribbon.ExpandCollapseItem });
+            ribbon.Location = new Point(0, 0);
+            ribbon.MaxItemId = 1;
+            ribbon.Name = "ribbon";
+            ribbon.Pages.AddRange(new DevExpress.XtraBars.Ribbon.RibbonPage[] { ribbonPage1 });
+            ribbon.RibbonCaptionAlignment = DevExpress.XtraBars.Ribbon.RibbonCaptionAlignment.Left;
+            ribbon.ShowDisplayOptionsMenuButton = DevExpress.Utils.DefaultBoolean.False;
+            ribbon.Size = new Size(942, 32);
+            // 
+            // ribbonPage1
+            // 
+            ribbonPage1.Groups.AddRange(new DevExpress.XtraBars.Ribbon.RibbonPageGroup[] { ribbonPageGroup1 });
+            ribbonPage1.Name = "ribbonPage1";
+            ribbonPage1.Text = "ribbonPage1";
+            // 
+            // ribbonPageGroup1
+            // 
+            ribbonPageGroup1.Name = "ribbonPageGroup1";
+            ribbonPageGroup1.Text = "ribbonPageGroup1";
+            // 
+            // layoutControl1
+            // 
+            layoutControl1.Controls.Add(setHydroMonitorListCtrl1);
+            layoutControl1.Controls.Add(generalOkAndCancelCtrl1);
+            layoutControl1.Dock = DockStyle.Fill;
+            layoutControl1.Location = new Point(0, 32);
+            layoutControl1.Name = "layoutControl1";
+            layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new Rectangle(976, 355, 650, 400);
+            layoutControl1.Root = Root;
+            layoutControl1.Size = new Size(942, 365);
+            layoutControl1.TabIndex = 2;
+            layoutControl1.Text = "layoutControl1";
+            // 
+            // setHydroMonitorListCtrl1
+            // 
+            setHydroMonitorListCtrl1.Location = new Point(12, 12);
+            setHydroMonitorListCtrl1.Name = "setHydroMonitorListCtrl1";
+            setHydroMonitorListCtrl1.Size = new Size(918, 311);
+            setHydroMonitorListCtrl1.TabIndex = 10;
+            // 
+            // generalOkAndCancelCtrl1
+            // 
+            generalOkAndCancelCtrl1.ButtonCancelMaxSize = new Size(100, 26);
+            generalOkAndCancelCtrl1.ButtonCancelMinSize = new Size(100, 26);
+            generalOkAndCancelCtrl1.ButtonOkMaxSize = new Size(100, 26);
+            generalOkAndCancelCtrl1.ButtonOkMinSize = new Size(100, 26);
+            generalOkAndCancelCtrl1.Location = new Point(12, 327);
+            generalOkAndCancelCtrl1.Name = "generalOkAndCancelCtrl1";
+            generalOkAndCancelCtrl1.Size = new Size(918, 26);
+            generalOkAndCancelCtrl1.TabIndex = 8;
+            // 
+            // Root
+            // 
+            Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+            Root.GroupBordersVisible = false;
+            Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem2, layoutControlItem3 });
+            Root.Name = "Root";
+            Root.Size = new Size(942, 365);
+            Root.TextVisible = false;
+            // 
+            // layoutControlItem2
+            // 
+            layoutControlItem2.Control = generalOkAndCancelCtrl1;
+            layoutControlItem2.Location = new Point(0, 315);
+            layoutControlItem2.MaxSize = new Size(0, 30);
+            layoutControlItem2.MinSize = new Size(205, 30);
+            layoutControlItem2.Name = "layoutControlItem2";
+            layoutControlItem2.Size = new Size(922, 30);
+            layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+            layoutControlItem2.TextSize = new Size(0, 0);
+            layoutControlItem2.TextVisible = false;
+            // 
+            // layoutControlItem3
+            // 
+            layoutControlItem3.Control = setHydroMonitorListCtrl1;
+            layoutControlItem3.Location = new Point(0, 0);
+            layoutControlItem3.Name = "layoutControlItem3";
+            layoutControlItem3.Size = new Size(922, 315);
+            layoutControlItem3.TextSize = new Size(0, 0);
+            layoutControlItem3.TextVisible = false;
+            // 
+            // SetHydroMonitorListDlg
+            // 
+            AutoScaleDimensions = new SizeF(7F, 14F);
+            AutoScaleMode = AutoScaleMode.Font;
+            ClientSize = new Size(942, 397);
+            Controls.Add(layoutControl1);
+            Controls.Add(ribbon);
+            FormBorderStyle = FormBorderStyle.SizableToolWindow;
+            Name = "SetHydroMonitorListDlg";
+            Ribbon = ribbon;
+            RibbonVisibility = DevExpress.XtraBars.Ribbon.RibbonVisibility.Hidden;
+            StartPosition = FormStartPosition.CenterParent;
+            Text = "璁剧疆娴嬬偣";
+            ((ISupportInitialize)ribbon).EndInit();
+            ((ISupportInitialize)layoutControl1).EndInit();
+            layoutControl1.ResumeLayout(false);
+            ((ISupportInitialize)Root).EndInit();
+            ((ISupportInitialize)layoutControlItem2).EndInit();
+            ((ISupportInitialize)layoutControlItem3).EndInit();
+            ResumeLayout(false);
+            PerformLayout();
+        }
+
+        #endregion
+
+        private DevExpress.XtraBars.Ribbon.RibbonControl ribbon;
+        private DevExpress.XtraBars.Ribbon.RibbonPage ribbonPage1;
+        private DevExpress.XtraBars.Ribbon.RibbonPageGroup ribbonPageGroup1;
+        private DevExpress.XtraLayout.LayoutControl layoutControl1;
+        private DevExpress.XtraLayout.LayoutControlGroup Root;
+        private GeneralOkAndCancelCtrl generalOkAndCancelCtrl1;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+        private SetHydroMonitorListCtrl setHydroMonitorListCtrl1;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
+    }
+}
\ No newline at end of file
diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/04-set/SetHydroMonitorListDlg.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/04-set/SetHydroMonitorListDlg.cs
new file mode 100644
index 0000000..3702972
--- /dev/null
+++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/04-set/SetHydroMonitorListDlg.cs
@@ -0,0 +1,63 @@
+锘縩amespace Yw.WinFrmUI
+{
+    public partial class SetHydroMonitorListDlg : DevExpress.XtraBars.Ribbon.RibbonForm
+    {
+        public SetHydroMonitorListDlg()
+        {
+            InitializeComponent();
+            this.IconOptions.Icon = Yw.WinFrmUI.GlobalParas.AppIcon;
+            this.layoutControl1.SetupLayoutControl();
+            this.generalOkAndCancelCtrl1.OkEvent += GeneralOkAndCancelCtrl1_OkEvent;
+        }
+
+        /// <summary>
+        /// 閲嶈浇鏁版嵁浜嬩欢
+        /// </summary>
+        public event Action<List<HydroMonitorValueViewModel>> ReloadDataEvent;
+
+
+        private Yw.Model.HydroModelInfo _hydroInfo = null;//姘村姏淇℃伅    
+        private Yw.Model.HydroVisualInfo _visual = null;//鏋勪欢
+        private List<HydroMonitorVmo> _allMonitorList = null;//鎵�鏈夌洃娴嬪垪琛�
+        private List<HydroMonitorValueViewModel> _allMonitorValueList = null;//鎵�鏈夌洃娴嬪�煎垪琛�
+
+        /// <summary>
+        /// 缁戝畾鏁版嵁
+        /// </summary>
+        public void SetBindingData
+            (
+                Yw.Model.HydroModelInfo hydroInfo,
+                Yw.Model.HydroVisualInfo visual,
+                List<HydroMonitorVmo> allMonitorList,
+                List<HydroMonitorValueViewModel> allMonitorValueList
+            )
+        {
+            _hydroInfo = hydroInfo;
+            _visual = visual;
+            _allMonitorList = allMonitorList;
+            _allMonitorValueList = allMonitorValueList;
+
+            this.setHydroMonitorListCtrl1.SetBindingData(hydroInfo, visual, allMonitorList, allMonitorValueList);
+        }
+
+        //纭畾
+        private async void GeneralOkAndCancelCtrl1_OkEvent()
+        {
+            if (_hydroInfo == null)
+            {
+                return;
+            }
+            if (_visual == null)
+            {
+                return;
+            }
+            var valueList = await this.setHydroMonitorListCtrl1.GetValueList();
+            this.ReloadDataEvent?.Invoke(valueList);
+            this.DialogResult = DialogResult.OK;
+            this.Close();
+        }
+
+
+
+    }
+}
\ No newline at end of file
diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/05-set/SetHydroGradingModelDlg.resx b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/04-set/SetHydroMonitorListDlg.resx
similarity index 100%
rename from WinFrmUI/Yw.WinFrmUI.Hydro.Core/08-grading/05-set/SetHydroGradingModelDlg.resx
rename to WinFrmUI/Yw.WinFrmUI.Hydro.Core/12-monitor/04-set/SetHydroMonitorListDlg.resx
diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/Properties/DataSources/Yw.WinFrmUI.HydroMonitorViewModel.datasource b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/Properties/DataSources/Yw.WinFrmUI.HydroMonitorViewModel.datasource
new file mode 100644
index 0000000..b6930c2
--- /dev/null
+++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/Properties/DataSources/Yw.WinFrmUI.HydroMonitorViewModel.datasource
@@ -0,0 +1,10 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<!--
+    This file is automatically generated by Visual Studio. It is 
+    used to store generic object data source configuration information.  
+    Renaming the file extension or editing the content of this file may   
+    cause the file to be unrecognizable by the program.
+-->
+<GenericObjectDataSource DisplayName="HydroMonitorViewModel" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
+  <TypeInfo>Yw.WinFrmUI.HydroMonitorViewModel, Yw.WinFrmUI.Hydro.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
+</GenericObjectDataSource>
\ No newline at end of file
diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/Yw.WinFrmUI.Hydro.Core.csproj b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/Yw.WinFrmUI.Hydro.Core.csproj
index c6c7078..afa96fb 100644
--- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/Yw.WinFrmUI.Hydro.Core.csproj
+++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/Yw.WinFrmUI.Hydro.Core.csproj
@@ -10,16 +10,12 @@
 	<ItemGroup>
 		<Compile Remove="04-viewmodel\00-core\**" />
 		<Compile Remove="04-viewmodel\08-validation\**" />
-		<Compile Remove="12-monitor\00-core\**" />
 		<EmbeddedResource Remove="04-viewmodel\00-core\**" />
 		<EmbeddedResource Remove="04-viewmodel\08-validation\**" />
-		<EmbeddedResource Remove="12-monitor\00-core\**" />
 		<None Remove="04-viewmodel\00-core\**" />
 		<None Remove="04-viewmodel\08-validation\**" />
-		<None Remove="12-monitor\00-core\**" />
 		<Page Remove="04-viewmodel\00-core\**" />
 		<Page Remove="04-viewmodel\08-validation\**" />
-		<Page Remove="12-monitor\00-core\**" />
 	</ItemGroup>
 
 	<ItemGroup>
@@ -57,7 +53,7 @@
 	<ItemGroup>
 		<PackageReference Include="DevExpress.Win.Design" Version="23.2.4" />
 		<PackageReference Include="Yw.BLL.Basic.Core" Version="3.3.7" />
-		<PackageReference Include="Yw.BLL.Hydro.Core" Version="5.0.2" />
+		<PackageReference Include="Yw.BLL.Hydro.Core" Version="5.0.3" />
 		<PackageReference Include="Yw.Pump.Core" Version="3.2.4" />
 	</ItemGroup>
 
@@ -222,6 +218,12 @@
 		<Compile Update="12-monitor\03-analyse\SetHydroMonitorAnalyseListDlg.cs">
 			<SubType>Form</SubType>
 		</Compile>
+		<Compile Update="12-monitor\04-set\SetHydroMonitorListDlg.cs">
+		  <SubType>Form</SubType>
+		</Compile>
+		<Compile Update="12-monitor\04-set\SetHydroMonitorListCtrl.cs">
+		  <SubType>UserControl</SubType>
+		</Compile>
 		<Compile Update="15-visible\SetHydroVisualVisibleDlg.cs">
 			<SubType>Form</SubType>
 		</Compile>
@@ -271,9 +273,6 @@
 		</Compile>
 		<Compile Update="08-grading\04-tree\SelectHydroGradingPropTreeCtrl.cs">
 			<SubType>UserControl</SubType>
-		</Compile>
-		<Compile Update="08-grading\05-set\SetHydroGradingModelTreeDlg.cs">
-			<SubType>Form</SubType>
 		</Compile>
 		<Compile Update="08-grading\05-set\SetHydroGradingTreeDlg.cs">
 			<SubType>Form</SubType>
diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/Yw.WinFrmUI.Hydro.Core.csproj.user b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/Yw.WinFrmUI.Hydro.Core.csproj.user
index 0969fb8..254e97d 100644
--- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/Yw.WinFrmUI.Hydro.Core.csproj.user
+++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/Yw.WinFrmUI.Hydro.Core.csproj.user
@@ -91,9 +91,6 @@
     <Compile Update="08-grading\03-list\SetHydroGradingModelCtrl.cs">
       <SubType>UserControl</SubType>
     </Compile>
-    <Compile Update="08-grading\05-set\SetHydroGradingModelDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
     <Compile Update="06-visual\01-reservoir\SetHydroReservoirDlg.cs">
       <SubType>Form</SubType>
     </Compile>
diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/accuracy/00-core/HydroAccuracyHelper.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/accuracy/00-core/HydroAccuracyHelper.cs
index f39f9bf..4770135 100644
--- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/accuracy/00-core/HydroAccuracyHelper.cs
+++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/accuracy/00-core/HydroAccuracyHelper.cs
@@ -42,13 +42,6 @@
                 return vm;
             }
 
-            //杩囨护娴嬬偣锛屼粎闇�瑕佸鎺ユ祴鐐�
-            var monitorList = allMonitorList?.Where(x => x.SourceType == Yw.Hydro.eSourceType.Docking).ToList();
-            if (monitorList == null || monitorList.Count < 1)
-            {
-                return vm;
-            }
-
             //瑙f瀽宸ュ喌娴嬬偣
             var allWorkingMonitorList = JsonHelper.Json2Object<List<HydroWorkingMonitorViewModel>>(working?.MonitorInfo);
             if (allWorkingMonitorList == null || allWorkingMonitorList.Count < 1)
@@ -70,7 +63,7 @@
 
             //閬嶅巻娴嬬偣
             vm.Items = new List<HydroAccuracyItemViewModel>();
-            foreach (var monitor in monitorList)
+            foreach (var monitor in allMonitorList)
             {
                 var visual = allVisualDict.GetValue(monitor.Parter);
                 if (visual == null)
@@ -82,6 +75,10 @@
                 {
                     continue;
                 }
+                if (!workingMonitor.PropValue.HasValue)
+                {
+                    continue;
+                }
                 var calcuVisualResult = allCalcuVisualDict.GetValue(monitor.Parter);
                 if (calcuVisualResult == null)
                 {
diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/accuracy/04-control/HydroAccuracyListCtrl.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/accuracy/04-control/HydroAccuracyListCtrl.cs
index 307dcb2..c15e64c 100644
--- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/accuracy/04-control/HydroAccuracyListCtrl.cs
+++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/accuracy/04-control/HydroAccuracyListCtrl.cs
@@ -37,6 +37,10 @@
         public void SetBindingData(List<HydroAccuracyItemViewModel> allBindingList)
         {
             _allBindingList = allBindingList;
+            if (_allBindingList == null)
+            {
+                _allBindingList = new List<HydroAccuracyItemViewModel>();
+            }
             this.hydroAccuracyItemViewModelBindingSource.DataSource = _allBindingList;
             this.hydroAccuracyItemViewModelBindingSource.ResetBindings(false);
         }
diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/energy-analy/01-core/HydroEnergyAnalyHelper.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/energy-analy/01-core/HydroEnergyAnalyHelper.cs
index 568a70e..d315c75 100644
--- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/energy-analy/01-core/HydroEnergyAnalyHelper.cs
+++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/energy-analy/01-core/HydroEnergyAnalyHelper.cs
@@ -114,7 +114,7 @@
                     {
                         var qp_pts = item.RatedCurveQP;
                         var qp_run_pts = qp_pts.GetQPPointListByN(item.RatedHz, item.CurrentHz);
-                        item.CurrentCurveQP = qp_pts;
+                        item.CurrentCurveQP = qp_run_pts;
                     }
 
                     if (item.RatedCurveQE != null)
diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/monitor-analy/01-core/HydroMonitorAnalyHelper.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/monitor-analy/01-core/HydroMonitorAnalyHelper.cs
index cd8a96a..e0ee3e4 100644
--- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/monitor-analy/01-core/HydroMonitorAnalyHelper.cs
+++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/monitor-analy/01-core/HydroMonitorAnalyHelper.cs
@@ -34,14 +34,6 @@
 
             var vm = new HydroMonitorAnalyViewModel();
 
-
-            //杩囨护娴嬬偣锛屼粎闇�瑕佸垎鏋愭祴鐐�
-            var monitorList = allMonitorList.Where(x => x.SourceType == Yw.Hydro.eSourceType.Analyse).ToList();
-            if (monitorList == null || monitorList.Count < 1)
-            {
-                return vm;
-            }
-
             //鏋勪欢鍒楄〃
             var allVisualDict = hydroInfo.GetVisualDict();
             if (allVisualDict == null || allVisualDict.Count < 1)
@@ -63,7 +55,7 @@
 
             //閬嶅巻娴嬬偣
             vm.Items = new List<HydroMonitorAnalyItemViewModel>();
-            foreach (var monitor in monitorList)
+            foreach (var monitor in allMonitorList)
             {
                 var item = new HydroMonitorAnalyItemViewModel(monitor, allVisualDict, allCalcuVisualDict);
                 vm.Items.Add(item);
diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/monitor-analy/02-control/HydroMonitorAnalyListCtrl.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/monitor-analy/02-control/HydroMonitorAnalyListCtrl.cs
index 6632f52..c4abb7c 100644
--- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/monitor-analy/02-control/HydroMonitorAnalyListCtrl.cs
+++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/monitor-analy/02-control/HydroMonitorAnalyListCtrl.cs
@@ -186,15 +186,14 @@
             _dt.Columns.Add("CalcuValue", typeof(string));
             _dt.Columns.Add("UnitName", typeof(string));
 
-            var monitorList = _allMonitorList?.Where(x => x.SourceType == Yw.Hydro.eSourceType.Analyse).ToList();
-            monitorList = monitorList?.OrderBy(x => x.SortCode).ToList();
-            if (monitorList != null && monitorList.Count > 0)
+            var allMonitorList = _allMonitorList?.OrderBy(x => x.SortCode).ToList();
+            if (allMonitorList != null && allMonitorList.Count > 0)
             {
                 var allVisualDict = _hydroInfo?.GetVisualDict();
                 if (allVisualDict != null && allVisualDict.Count > 0)
                 {
                     var allCalcuVisualDict = _allCalcuResultDict?.FirstOrDefault().Value?.GetVisualDict();
-                    foreach (var monitor in monitorList)
+                    foreach (var monitor in allMonitorList)
                     {
                         var visual = allVisualDict.GetValue(monitor.Parter);
                         if (visual == null)
@@ -270,14 +269,13 @@
             }
             _dt.Columns.Add("UnitName", typeof(string));
 
-            var monitorList = _allMonitorList?.Where(x => x.SourceType == Yw.Hydro.eSourceType.Analyse).ToList();
-            monitorList = monitorList?.OrderBy(x => x.SortCode).ToList();
-            if (monitorList != null && monitorList.Count > 0)
+            var allMonitorList = _allMonitorList?.OrderBy(x => x.SortCode).ToList();
+            if (allMonitorList != null && allMonitorList.Count > 0)
             {
                 var allVisualDict = _hydroInfo?.GetVisualDict();
                 if (allVisualDict != null && allVisualDict.Count > 0)
                 {
-                    foreach (var monitor in monitorList)
+                    foreach (var monitor in allMonitorList)
                     {
                         var visual = allVisualDict.GetValue(monitor.Parter);
                         if (visual == null)

--
Gitblit v1.9.3