From 94ebf14787ea1c67b6a6139a2b19e3693b809625 Mon Sep 17 00:00:00 2001
From: ningshuxia <ningshuxia0927@outlook.com>
Date: 星期五, 28 三月 2025 14:24:45 +0800
Subject: [PATCH] 模拟计算

---
 WinFrmUI/PBS.WinFrmUI.Hydro/Properties/Resources.Designer.cs                                |   10 ++
 WinFrmUI/PBS.WinFrmUI.Hydro/06-schedule-simulation/dispatch/General/OptAna.cs               |   28 ++---
 /dev/null                                                                                   |   54 ----------
 WinFrmUI/PBS.WinFrmUI.Hydro/06-schedule-simulation/dispatch/Input/MachineRunPara.cs         |    4 
 WinFrmUI/PBS.WinFrmUI.Hydro/05-system-curve/02-chart/SystemCurveChartCtrl.cs                |    2 
 WinFrmUI/PBS.WinFrmUI.Hydro/Properties/Resources.resx                                       |    3 
 WinFrmUI/PBS.WinFrmUI.Hydro/Resources/calcdate.svg                                          |   10 ++
 WinFrmUI/PBS.WinFrmUI.Hydro/06-schedule-simulation/simulationviewmodel/SimuPumpViewModel.cs |    8 -
 WinFrmUI/PBS.WinFrmUI.Hydro/06-schedule-simulation/SimulationSchedulePage.cs                |   60 +----------
 WinFrmUI/PBS.WinFrmUI.Hydro/05-system-curve/00-core/SystemCurvePage.Designer.cs             |   23 ++--
 WinFrmUI/PBS.WinFrmUI.Hydro/06-schedule-simulation/simulationviewmodel/TimeValue.cs         |    8 -
 WinFrmUI/PBS.WinFrmUI.Hydro/05-system-curve/00-core/SystemCurvePage.cs                      |   89 ++++++++++-------
 12 files changed, 113 insertions(+), 186 deletions(-)

diff --git a/WinFrmUI/PBS.WinFrmUI.Hydro/05-system-curve/00-core/SystemCurvePage.Designer.cs b/WinFrmUI/PBS.WinFrmUI.Hydro/05-system-curve/00-core/SystemCurvePage.Designer.cs
index 864a357..c8fe2ac 100644
--- a/WinFrmUI/PBS.WinFrmUI.Hydro/05-system-curve/00-core/SystemCurvePage.Designer.cs
+++ b/WinFrmUI/PBS.WinFrmUI.Hydro/05-system-curve/00-core/SystemCurvePage.Designer.cs
@@ -39,6 +39,7 @@
             ComponentResourceManager resources = new ComponentResourceManager(typeof(SystemCurvePage));
             ribbonControl1 = new DevExpress.XtraBars.Ribbon.RibbonControl();
             barBtnCalc = new DevExpress.XtraBars.BarButtonItem();
+            barBtnSimulationCalc = new DevExpress.XtraBars.BarButtonItem();
             ribbonPage = new DevExpress.XtraBars.Ribbon.RibbonPage();
             ribbonPageGroup1 = new DevExpress.XtraBars.Ribbon.RibbonPageGroup();
             dockManager1 = new DevExpress.XtraBars.Docking.DockManager(components);
@@ -53,7 +54,6 @@
             dockPanel2_Container = new DevExpress.XtraBars.Docking.ControlContainer();
             systemCurveChartCtrl1 = new SystemCurveChartCtrl();
             dockPanel3 = new DevExpress.XtraBars.Docking.DockPanel();
-            barButtonItem1 = new DevExpress.XtraBars.BarButtonItem();
             ((ISupportInitialize)ribbonControl1).BeginInit();
             ((ISupportInitialize)dockManager1).BeginInit();
             dockPanel1.SuspendLayout();
@@ -71,7 +71,7 @@
             ribbonControl1.EmptyAreaImageOptions.ImagePadding = new Padding(34, 39, 34, 39);
             ribbonControl1.ExpandCollapseItem.Id = 0;
             ribbonControl1.ItemPanelStyle = DevExpress.XtraBars.Ribbon.RibbonItemPanelStyle.Classic;
-            ribbonControl1.Items.AddRange(new DevExpress.XtraBars.BarItem[] { ribbonControl1.ExpandCollapseItem, barBtnCalc, barButtonItem1 });
+            ribbonControl1.Items.AddRange(new DevExpress.XtraBars.BarItem[] { ribbonControl1.ExpandCollapseItem, barBtnCalc, barBtnSimulationCalc });
             ribbonControl1.Location = new Point(0, 0);
             ribbonControl1.Margin = new Padding(3, 4, 3, 4);
             ribbonControl1.MaxItemId = 44;
@@ -92,6 +92,14 @@
             barBtnCalc.Name = "barBtnCalc";
             barBtnCalc.ItemClick += barBtnCalc_ItemClick;
             // 
+            // barBtnSimulationCalc
+            // 
+            barBtnSimulationCalc.Caption = "妯℃嫙璁$畻";
+            barBtnSimulationCalc.Id = 43;
+            barBtnSimulationCalc.ImageOptions.SvgImage = Properties.Resources.calcdate;
+            barBtnSimulationCalc.Name = "barBtnSimulationCalc";
+            barBtnSimulationCalc.ItemClick += barBtnSimulationCalc_ItemClick;
+            // 
             // ribbonPage
             // 
             ribbonPage.Groups.AddRange(new DevExpress.XtraBars.Ribbon.RibbonPageGroup[] { ribbonPageGroup1 });
@@ -101,7 +109,7 @@
             // ribbonPageGroup1
             // 
             ribbonPageGroup1.ItemLinks.Add(barBtnCalc);
-            ribbonPageGroup1.ItemLinks.Add(barButtonItem1);
+            ribbonPageGroup1.ItemLinks.Add(barBtnSimulationCalc);
             ribbonPageGroup1.Name = "ribbonPageGroup1";
             ribbonPageGroup1.Text = "ribbonPageGroup1";
             // 
@@ -224,13 +232,6 @@
             dockPanel3.Tabbed = true;
             dockPanel3.Text = "panelContainer1";
             // 
-            // barButtonItem1
-            // 
-            barButtonItem1.Caption = "barButtonItem1";
-            barButtonItem1.Id = 43;
-            barButtonItem1.Name = "barButtonItem1";
-            barButtonItem1.ItemClick += barButtonItem1_ItemClick;
-            // 
             // SystemCurvePage
             // 
             Appearance.BackColor = SystemColors.Control;
@@ -273,6 +274,6 @@
         private FacilityPropertyCtrl facilityPropertyCtrl1;
         private DevExpress.XtraBars.Docking.DockPanel dockPanel1;
         private SystemCurveChartCtrl systemCurveChartCtrl1;
-        private DevExpress.XtraBars.BarButtonItem barButtonItem1;
+        private DevExpress.XtraBars.BarButtonItem barBtnSimulationCalc;
     }
 }
diff --git a/WinFrmUI/PBS.WinFrmUI.Hydro/05-system-curve/00-core/SystemCurvePage.cs b/WinFrmUI/PBS.WinFrmUI.Hydro/05-system-curve/00-core/SystemCurvePage.cs
index 07ef700..413d556 100644
--- a/WinFrmUI/PBS.WinFrmUI.Hydro/05-system-curve/00-core/SystemCurvePage.cs
+++ b/WinFrmUI/PBS.WinFrmUI.Hydro/05-system-curve/00-core/SystemCurvePage.cs
@@ -13,7 +13,8 @@
                 _curveLowerPressure = l;
                 _curveAveragePressure = a;
             };
-
+             
+            
         }
 
 
@@ -52,27 +53,8 @@
 
         }
 
-        //璁$畻
-        private void barBtnCalc_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
-        {
-
-            if (_facility == null)
-            {
-                TipFormHelper.ShowWarn("璇烽�夋嫨璁炬柦!");
-                return;
-            }
-
-
-            var file_path = _facility.ModelPath;
-            var minDemand = 0;   // 鏈�灏忔�婚渶姘撮噺(m鲁/h)
-            var maxDemand = _facility.MaxWaterDemand ?? 45;  // 鏈�澶ф�婚渶姘撮噺(m鲁/h) 
-            var calcCount = 1000;           // 璁$畻娆℃暟
-            var maxHeight = 22.5; //椤舵ゼ鏍囬珮
-            var requiredEndPressure = _facility.TerminalPressure ?? 15; //闈欏帇 
-            CalcSystemCurve(file_path, minDemand, maxDemand, maxHeight, requiredEndPressure, calcCount);
-
-        }
-
+        #region 璁$畻
+         
         /// <summary>
         /// 璁$畻绯荤粺鏇茬嚎
         /// </summary>
@@ -86,7 +68,6 @@
             string inpFilePath,
             double minDemand,
             double maxDemand,
-            //double reservoirElevation,
             double maxHeight,
             double requiredEndPressure,
             int calcCount)
@@ -195,12 +176,61 @@
                 if ((int)code > 100)
                 {
                     var msg = code.GetDisplayText();
+                    //TipFormHelper.ShowError(msg);
                     throw new Exception(msg);
                 }
 
             }
         }
 
+        //璁$畻
+        private void barBtnCalc_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
+        {
+
+            if (_facility == null)
+            {
+                TipFormHelper.ShowWarn("璇烽�夋嫨璁炬柦!");
+                return;
+            }
+
+
+            var file_path = _facility.ModelPath;
+            var minDemand = 0;   // 鏈�灏忔�婚渶姘撮噺(m鲁/h)
+            var maxDemand = _facility.MaxWaterDemand ?? 45;  // 鏈�澶ф�婚渶姘撮噺(m鲁/h) 
+            var calcCount = 1000;           // 璁$畻娆℃暟
+            var maxHeight = 22.5; //椤舵ゼ鏍囬珮
+            var requiredEndPressure = _facility.TerminalPressure ?? 15; //闈欏帇 
+            CalcSystemCurve(file_path, minDemand, maxDemand, maxHeight, requiredEndPressure, calcCount);
+        }
+        #endregion
+
+        #region 妯℃嫙璁$畻 
+
+        //妯℃嫙璁$畻
+        private void barBtnSimulationCalc_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
+        {
+            if (_facility==null)
+            {
+                return;
+            }
+            if (_curveAveragePressure==null)
+            {
+                TipFormHelper.ShowWarn("璇峰厛璁$畻鏇茬嚎锛�");
+                return;
+            }
+            var page = new SimulationSchedulePage();
+            page.Dock = DockStyle.Fill;
+            page.InitialData(_facility, _curveUpperPressure, _curveLowerPressure, _curveAveragePressure);
+            var dlg = new XtraForm();
+            dlg.Text = "妯℃嫙璁$畻";
+            dlg.IconOptions.Icon = Yw.WinFrmUI.GlobalParas.AppIcon;
+            dlg.Controls.Add(page);
+            dlg.StartPosition = FormStartPosition.CenterScreen;
+            dlg.WindowState = FormWindowState.Maximized;
+            dlg.ShowDialog();
+
+        }
+        #endregion
 
         /// <summary>
         /// 鍒锋柊鏁版嵁
@@ -211,18 +241,7 @@
             InitialDataSource();
         }
 
-        private void barButtonItem1_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
-        {
-            var page=new SimulationSchedulePage();
-            page.Dock= DockStyle.Fill;
-            page.InitialData(_facility, _curveUpperPressure, _curveLowerPressure, _curveAveragePressure);
-            var dlg=new XtraForm();
-            dlg.Controls.Add(page);
-            dlg.StartPosition= FormStartPosition.CenterScreen;
-            dlg.WindowState = FormWindowState.Maximized;
-            dlg.ShowDialog();
-
-        }
+      
     }
 
 }
\ No newline at end of file
diff --git a/WinFrmUI/PBS.WinFrmUI.Hydro/05-system-curve/02-chart/SystemCurveChartCtrl.cs b/WinFrmUI/PBS.WinFrmUI.Hydro/05-system-curve/02-chart/SystemCurveChartCtrl.cs
index b26e552..de1411a 100644
--- a/WinFrmUI/PBS.WinFrmUI.Hydro/05-system-curve/02-chart/SystemCurveChartCtrl.cs
+++ b/WinFrmUI/PBS.WinFrmUI.Hydro/05-system-curve/02-chart/SystemCurveChartCtrl.cs
@@ -10,6 +10,8 @@
         {
             InitializeComponent();
             this.layoutControl1.SetupLayoutControl();
+            this.gridView1.SetNormalView();
+            this.sidePanel1.Visible = false;
             InitialChart();
         }
 
diff --git a/WinFrmUI/PBS.WinFrmUI.Hydro/06-schedule-simulation/SimulationSchedulePage.cs b/WinFrmUI/PBS.WinFrmUI.Hydro/06-schedule-simulation/SimulationSchedulePage.cs
index 7dcba6e..ba0b594 100644
--- a/WinFrmUI/PBS.WinFrmUI.Hydro/06-schedule-simulation/SimulationSchedulePage.cs
+++ b/WinFrmUI/PBS.WinFrmUI.Hydro/06-schedule-simulation/SimulationSchedulePage.cs
@@ -1044,7 +1044,7 @@
                 calcValue.TargetHead = targetHead;
                 calcValues.Add(calcValue);
 
-                var schemes = calcHelper.CalcSchemes(simuPumps.Values.ToList(), complexRequestPras, null, combinRunStatus, out string errorInfo);
+                var schemes = calcHelper.CalcSchemes(simuPumps.Values.ToList(), complexRequestPras, combinRunStatus, out string errorInfo);
                 if (schemes == null || !schemes.Any())
                 {
                     calcValue.CalcSuccess = false;
@@ -1115,14 +1115,14 @@
             };
 
             var simuTime = dateTime;
-             
+
             complexRequestPras.OutletPipePara = new List<Dispatch.Model.OutletPipePara>();
             complexRequestPras.OutletPipePara.Add(new OutletPipePara()
             {
                 TargetFlow = targetFlow,
                 TargetPress = targetHead
             });
-            
+
             var combin = _pumpCombine[combinIndex];
             var combinRunStatus = new Dispatch.Model.MachineRunPara();
             combinRunStatus.MachineRunFilter = new List<MachineRunFilter>();
@@ -1144,7 +1144,7 @@
 
             double.TryParse(this.txtEndP.Text, out double endP);
             //璁$畻
-            var schemes = calcHelper.CalcSchemes(simuPumps, complexRequestPras, null, combinRunStatus, out string errorInfo);
+            var schemes = calcHelper.CalcSchemes(simuPumps, complexRequestPras,   combinRunStatus, out string errorInfo);
             if (schemes == null || !schemes.Any())
             {
                 return default;
@@ -1166,13 +1166,13 @@
             {
                 calcValue.Pumps = new List<PumpViewModel>();
                 foreach (var item in scheme.Items)
-                { 
-                    calcValue.Pumps = GetPumpViewModelList(targetFlow,item, out double clac_power);
+                {
+                    calcValue.Pumps = GetPumpViewModelList(targetFlow, item, out double clac_power);
                 }
             }
 
             complexRequestPras.OutletPipePara[0].TargetPress = constantP;
-            var compareSchemes = calcHelper.CalcSchemes(simuPumps, complexRequestPras, null, combinRunStatus, out errorInfo);
+            var compareSchemes = calcHelper.CalcSchemes(simuPumps, complexRequestPras, combinRunStatus, out errorInfo);
             if (compareSchemes != null && compareSchemes.Any())
             {
                 var compareScheme = compareSchemes[0];
@@ -1185,51 +1185,7 @@
 
         private List<PumpViewModel> GetPumpViewModelList(double targetFlow, AnaSchemeItem item, out double clac_power)
         {
-            //var pump = _pumpMainList.Find(x => x.ID == item.Flag);
-            //var curve = _pumpCurveList[pump.ID];
-
-            //clac_power = 0;
-            //var calc_pump = new PumpViewModel();
-            //calc_pump.DbID = item.Flag;
-            //calc_pump.Name = pump.Name + "-鍙樺帇";
-            //calc_pump.HZ = item.Frequency;
-            //calc_pump.Power = item.Power;
-            //calc_pump.Eff = item.Eff;
-            //calc_pump.Head = item.Head;
-            //calc_pump.Flow = item.Flow;
-            ////calc_pump.CurveInfoQH = item.GetDescription;
-            ////calc_pump.CurveInfoQP = item.CurveInfoQP;
-
-
-            //var pt = new Yw.Geometry.Point2d(targetFlow, _constantPressure);
-
-            //var sect_pt = Yw.Pump.PerformParabolaHelper.GetQHSectPoint(Item1, pt);
-            //if (sect_pt == null || sect_pt.IsZeroPoint())
-            //    return null;
-
-            //var wrk_speed = sect_pt.Y.CalculateSimuByH(pump.RatedSpeed, pt.Y);
-            //var wrk_fre = Math.Round(wrk_speed / pump.RatedSpeed * 50, 1);
-
-
-            //var wrk_curve_qh = new Yw.Pump.CurveQH(Yw.Ahart.eFeatType.Cubic, Item1.GetPointListByN(pump.RatedSpeed, wrk_speed));
-            //var wrk_curve_qp = new Yw.Pump.CurveQP(Yw.Ahart.eFeatType.Cubic, Item2.GetPointListByN(pump.RatedSpeed, wrk_speed));
-            //var wrk_power = wrk_curve_qp.FeatGetPointY(targetFlow);
-            //var wrk_eff = Yw.Pump.CalculationHelper.CalcuE(targetFlow, _constantPressure, wrk_power);
-
-            //var calc_pump2 = new PumpViewModel();
-            //calc_pump2.DbID = item.Flag;
-            //calc_pump2.Name = pump.Name + "-鎭掑帇";
-            //calc_pump2.HZ = wrk_fre;
-            //calc_pump2.Power = Math.Round(wrk_power, 3);
-            //calc_pump2.Eff = Math.Round(wrk_eff, 1);
-            //calc_pump2.Head = _constantPressure;
-            //calc_pump2.Flow = Math.Round(targetFlow, 2);
-            //calc_pump2.CurveInfoQH = wrk_curve_qh;
-            //calc_pump2.CurveInfoQP = wrk_curve_qp;
-            //calc_pump2.IsCalc = true;
-
-            //clac_power = wrk_power;
-            //return new List<PumpViewModel>() { calc_pump2, calc_pump };
+             
 
 
             clac_power = 0;
diff --git a/WinFrmUI/PBS.WinFrmUI.Hydro/06-schedule-simulation/dispatch/General/OptAna.cs b/WinFrmUI/PBS.WinFrmUI.Hydro/06-schedule-simulation/dispatch/General/OptAna.cs
index 861afc4..32fa50b 100644
--- a/WinFrmUI/PBS.WinFrmUI.Hydro/06-schedule-simulation/dispatch/General/OptAna.cs
+++ b/WinFrmUI/PBS.WinFrmUI.Hydro/06-schedule-simulation/dispatch/General/OptAna.cs
@@ -12,31 +12,25 @@
         /// <summary>
         /// 
         /// </summary>
-        protected List<PBS.WinFrmUI.Hydro.Dispatch.Model.MachineDetailEx> allMachineList = null;
+        protected List<Model.MachineDetailEx> allMachineList = null;
 
         #region 璁$畻 鏈�浼樻柟妗�
-        /// <summary>
-        /// 璁$畻 鏈�浼樻柟妗� 
-        /// </summary>
-        /// <param name="complex_request_paras"></param>
-        /// <param name="eta_ana_records"></param>
-        /// <param name="machine_run_status"></param>
-        /// <param name="error_info"></param>
+  
         public List<Dispatch.Model.AnaScheme> CalcSchemes(
               List<SimuPumpViewModel> simuCalcPumps,
-            PBS.WinFrmUI.Hydro.Dispatch.Model.RequestParasComplex complex_request_paras,
-            PBS.WinFrmUI.Hydro.Dispatch.Model.EtaAnaRecord4Station eta_ana_records,
-            PBS.WinFrmUI.Hydro.Dispatch.Model.MachineRunPara machine_run_status,
+            Model.RequestParasComplex complex_request_paras, 
+            Model.MachineRunPara machine_run_status,
             out string error_info)
         {
 
             return CalcSchemes鎵▼(simuCalcPumps, complex_request_paras, machine_run_status, out error_info);
         }
 
-        protected List<Dispatch.Model.AnaScheme> CalcSchemes鎵▼(List<SimuPumpViewModel> simuCalcPumps,
-    PBS.WinFrmUI.Hydro.Dispatch.Model.RequestParasComplex complex_request_paras,
-    PBS.WinFrmUI.Hydro.Dispatch.Model.MachineRunPara machine_run_status,
-    out string error_info)
+        protected List<Dispatch.Model.AnaScheme> CalcSchemes鎵▼(
+            List<SimuPumpViewModel> simuCalcPumps,
+            Model.RequestParasComplex complex_request_paras,
+            Model.MachineRunPara machine_run_status,
+            out string error_info)
         {
             error_info = null;
             if (complex_request_paras == null)
@@ -98,8 +92,8 @@
             }
 
 
-            PBS.WinFrmUI.Hydro.Dispatch.Common.DispatchAnaGeneralHelper鎵▼ calc_pipe_helper =
-                new PBS.WinFrmUI.Hydro.Dispatch.Common.DispatchAnaGeneralHelper鎵▼();
+            Common.DispatchAnaGeneralHelper鎵▼ calc_pipe_helper =
+                new Common.DispatchAnaGeneralHelper鎵▼();
             calc_pipe_helper.InitialParas(
                 target_flow,
                 target_head,
diff --git a/WinFrmUI/PBS.WinFrmUI.Hydro/06-schedule-simulation/dispatch/Helper/SimuSpeedCalcHelper.cs b/WinFrmUI/PBS.WinFrmUI.Hydro/06-schedule-simulation/dispatch/Helper/SimuSpeedCalcHelper.cs
deleted file mode 100644
index 71f20b1..0000000
--- a/WinFrmUI/PBS.WinFrmUI.Hydro/06-schedule-simulation/dispatch/Helper/SimuSpeedCalcHelper.cs
+++ /dev/null
@@ -1,494 +0,0 @@
-锘縩amespace PBS.WinFrmUI.Hydro.Dispatch.Common
-{
-    /// <summary>
-    /// 
-    /// </summary>
-    public class SimuSpeedCalcHelper
-    {
-        /// <summary>
-        /// /
-        /// </summary>
-        /// <param name="OriginExpress"></param>
-        /// <param name="origin_speed"></param>
-        /// <param name="change_speed"></param>
-        /// <param name="pointNum"></param>
-        /// <returns></returns>
-        public static Yw.Ahart.CubicCurve GetSimuPointQH(Yw.Ahart.CubicCurve OriginExpress, double origin_speed, double change_speed, int pointNum = 12)
-        {
-            //change鍙互澶т簬origin,鏈夋椂鐢ㄤ簬鍙嶆眰
-            if (OriginExpress == null)
-                return null;
-            if (change_speed < 1)
-                return null;
-
-            var simularPoints = new List<Yw.Geometry.Point2d>();
-            var curvePoints = OriginExpress.GetPointList();
-            foreach (Yw.Geometry.Point2d pt in curvePoints)
-            {
-                simularPoints.Add(new Yw.Geometry.Point2d(
-                 GetQ(pt.X, origin_speed, change_speed),
-                 GetH(pt.Y, origin_speed, change_speed)));
-            }
-            return FitHelper.BuildCurveExpress(curvePoints, OriginExpress.FitType);
-        }
-        /// <summary>
-        /// 
-        /// </summary>
-        /// <param name="OriginExpress"></param>
-        /// <param name="origin"></param>
-        /// <param name="change"></param>
-        /// <param name="pointNum"></param>
-        /// <returns></returns>
-        public static Yw.Ahart.CubicCurve GetSimuPointQP(Yw.Ahart.CubicCurve OriginExpress, double origin, double change, int pointNum = 12)
-        {
-            if (OriginExpress == null)
-                return null;
-
-            var simularPoints = new List<Yw.Geometry.Point2d>();
-            var curvePoints = OriginExpress.GetPointList();
-            foreach (Yw.Geometry.Point2d pt in curvePoints)
-            {
-                simularPoints.Add(new Yw.Geometry.Point2d(
-                 GetQ(pt.X, origin, change),
-                 GetP(pt.Y, origin, change)));
-            }
-
-            return new Yw.Ahart.CubicCurve(curvePoints, OriginExpress.FitType);
-        }
-        /// <summary>
-        /// 
-        /// </summary>
-        /// <param name="curveExpressQH"></param>
-        /// <param name="simularPoint"></param>
-        /// <param name="originValue"></param>
-        /// <param name="extendRatio"></param>
-        /// <returns></returns>
-        public static double GetSimuValue(ISupply.c.CurveExpress curveExpressQH, Yw.Geometry.Point2d simularPoint, double originValue, double extendRatio = 1)
-        {
-            if (curveExpressQH == null)
-                return -3;
-            if (simularPoint.X < 0.1 || simularPoint.Y < 0.1)
-                return -2;
-            if (simularPoint.X > curveExpressQH.Max * extendRatio * 1.5)
-                return -4;
-            if (curveExpressQH.FitType == ISupply.Model.eCurveFitType.ThroughPoint)
-            {
-            }
-            //璁$畻浜ょ偣浣嶇疆鍙傛暟
-            var sectPoint = GetSectPoint(curveExpressQH, simularPoint, extendRatio);
-            if (sectPoint == null || IsZeroPoint(sectPoint))
-                return -5;
-
-            //璁$畻鐩镐技鐐圭殑杞��/鐩村緞
-            return GetSimuByH(originValue, sectPoint.Y, simularPoint.Y);
-        }
-
-        /// <summary>
-        /// ratioIgnore:浣滅敤 褰搒imularPoint瓒呭嚭鏇茬嚎鑼冨洿鏃�,鏇茬嚎鎵╁ぇ鐨勫�嶆暟
-        /// </summary>
-        /// <param name="CurveExpress"></param>
-        /// <param name="simularPoint"></param>
-        /// <param name="ratioIgnore"></param>
-        /// <returns></returns>
-        public static Yw.Geometry.Point2d GetSectPoint(CurveExpress CurveExpress, Yw.Geometry.Point2d simularPoint, double ratioIgnore)
-        {
-            return GetSectPointGeneral(CurveExpress, simularPoint, 2, ratioIgnore);
-        }
-
-        /// <summary>
-        /// ratioIgnore:浣滅敤 褰搒imularPoint瓒呭嚭鑼冨洿鏃�,鎵╁ぇ鐨勫�嶆暟
-        /// </summary>
-        /// <param name="curveExpress"></param>
-        /// <param name="simularPoint"></param>
-        /// <param name="index"></param>
-        /// <param name="ratioIgnore"></param>
-        /// <returns></returns>
-        public static Yw.Geometry.Point2d GetSectPointGeneral(Yw.Ahart.CubicCurve curveExpress, Yw.Geometry.Point2d simularPoint, double index, double ratioIgnore)
-        {
-            var sectPoint = new Yw.Geometry.Point2d(0, 0);
-            if (curveExpress == null)
-                return sectPoint;
-
-            if (simularPoint.X < 1)
-                return sectPoint;
-            var CurveExpressEx = new Yw.Ahart.CubicCurve(curveExpress);
-            //妫�鏌ユ槸鍚﹀湪鏇茬嚎鐨勫尯鍩熻寖鍥村唴
-            double maxQ = CurveExpressEx.Max锛�;
-            double maxH = ISupply.Model.FitCurveHelper.GetFitPointY(CurveExpressEx, maxQ);
-            double k1 = maxH / Math.Pow(maxQ, index);
-            double k2 = simularPoint.Y / Math.Pow(simularPoint.X, index);
-            if (k1 > k2)
-            {
-                CurveExpressEx.Max = CurveExpressEx.Max * ratioIgnore;//鏀惧ぇ1.2鍊�
-            }
-
-            if (Math.Abs(index - 1) < 0.01)
-                return GetSectPointLine(CurveExpressEx, simularPoint);
-            if (Math.Abs(index - 2) < 0.01)
-                return GetSectPointParabola(CurveExpressEx, simularPoint);
-
-            //璁$畻绯绘暟K
-            double fixK = simularPoint.Y / Math.Pow(simularPoint.X, index);
-            if (fixK < 0.000001)
-                return sectPoint;
-
-            //鎬濊矾鏄粠simularPoint寮�濮嬮�愪釜澧炲姞0.1,鐩村埌k鍊兼渶鎺ヨ繎fixK
-            double space = (CurveExpressEx.Max - simularPoint.X) / 1000;
-            double x = simularPoint.X;
-            double y, k;
-            do
-            {
-                x = x + space;
-                y = ISupply.Model.FitCurveHelper.GetFitPointY(CurveExpressEx, x);
-                k = y / Math.Pow(x, index);
-            } while (k > fixK);
-
-            sectPoint.X = x;
-            sectPoint.Y = y;
-            return sectPoint;
-        }
-        /// <summary>
-        /// 
-        /// </summary>
-        /// <param name="curveExpress"></param>
-        /// <param name="simularPoint"></param>
-        /// <returns></returns>
-        protected static Yw.Geometry.Point2d GetSectPointLine(Yw.Ahart.CubicCurve curveExpress, Yw.Geometry.Point2d simularPoint)
-        {
-            var sectPoint = new Yw.Geometry.Point2d(0, 0);
-            if (curveExpress == null)
-                return sectPoint;
-
-            //璁$畻鐩寸嚎鐨凨
-            if (simularPoint.X < 1)
-                return sectPoint;
-            double a = simularPoint.Y / simularPoint.X;
-            if (a < 0.0001)
-                return sectPoint;
-
-            //鐐硅秺澶氳秺绮剧‘
-            return GetSectPointLine(ISupply.Model.FitCurveHelper.GetPointList(curveExpress, 100), simularPoint);
-        }
-
-        /// <summary>
-        /// 閫氳繃鐐箂imularPoint鍜岀偣(0,0)鐨勭洿绾�,涓庢洸绾緾urve鐨勪氦鐐�(娌℃湁,杩斿洖Point(0,0))
-        /// </summary>
-        /// <param name="CurvePoints"></param>
-        /// <param name="simularPoint"></param>
-        /// <returns></returns>
-        protected static Yw.Geometry.Point2d GetSectPointLine(List<Yw.Geometry.Point2d> CurvePoints, Yw.Geometry.Point2d simularPoint)
-        {
-            var sectPoint = new Yw.Geometry.Point2d(0, 0);
-            if (CurvePoints == null || CurvePoints.Count < 2)
-                return sectPoint;
-
-            //璁$畻鐩寸嚎鐨凨
-            if (simularPoint.X < 1)
-                return sectPoint;
-            double a = simularPoint.Y / simularPoint.X;
-            if (a < 0.0001)
-                return sectPoint;
-
-            //涓�2鐐硅繛鎴愮洿绾跨殑浜ょ偣,鍒ゆ柇浜ょ偣鏄惁鍦�2鐐逛箣闂�,鍗冲彲鏄洸绾跨殑浜ょ偣
-            double b, c;
-            double x;
-            for (int i = 0; i < CurvePoints.Count - 1; i++)
-            {
-                CurveLineHelper.GetKandB(CurvePoints[i], CurvePoints[i + 1], out b, out c);
-
-                /*瑙f柟绋�
-                 * y=ax
-                 * y=bx+c
-                 */
-                if (Math.Abs(a - b) < 0.001)
-                    continue;
-
-                x = c / (a - b);
-                if (ISupply.Common.PointHelper.IsMiddlePt(CurvePoints[i].X, CurvePoints[i + 1].X, x))
-                {
-                    sectPoint.X = x;
-                    sectPoint.Y = a * x;
-                    return sectPoint;
-                }
-            }
-
-            return sectPoint;
-        }
-
-        #region 鍙樻崲鍏紡
-        private static double _speedIndexQ = 1;
-        /// <summary>
-        /// 
-        /// </summary>
-        /// <returns></returns>
-        public static double GetIndexQ() { return _speedIndexQ; }
-
-        private static double _speedIndexH = 2;
-        /// <summary>
-        /// 
-        /// </summary>
-        /// <returns></returns>
-        public static double GetIndexH() { return _speedIndexH; }
-
-        /// <summary>
-        /// 鐭ラ亾鍘熷閫熷害鍜屾敼鍙樺悗鐨勯�熷害,姹傚師濮嬫祦閲弌riginQ瀵瑰簲鏀瑰彉鍚庣殑娴侀噺
-        /// </summary>
-        /// <param name="originQ"></param>
-        /// <param name="originN"></param>
-        /// <param name="changeN"></param>
-        /// <returns></returns>
-        public static double GetQ(double originQ, double originN, double changeN)
-        {
-            double ratio = originN / changeN;
-            return originQ / ratio;
-        }
-
-        /// <summary>
-        /// 鐭ラ亾鍘熷閫熷害鍜屾敼鍙樺悗鐨勯�熷害,姹傚師濮嬫壃绋媜riginH瀵瑰簲鏀瑰彉鍚庣殑鎵▼
-        /// </summary>
-        /// <param name="originH"></param>
-        /// <param name="originN"></param>
-        /// <param name="changeN"></param>
-        /// <returns></returns>
-        public static double GetH(double originH, double originN, double changeN)
-        {
-            double ratio = Math.Pow(originN / changeN, _speedIndexH);
-            return originH / ratio;
-        }
-        /// <summary>
-        /// 鐭ラ亾鍘熷閫熷害鍜屾敼鍙樺悗鐨勯�熷害,姹傚師濮嬪姛鐜噊riginP瀵瑰簲鏀瑰彉鍚庣殑鍔熺巼
-        /// </summary>
-        /// <param name="originP"></param>
-        /// <param name="originN"></param>
-        /// <param name="changeN"></param>
-        /// <returns></returns>
-        public static double GetP(double originP, double originN, double changeN)
-        {
-            double ratio = Math.Pow(originN / changeN, _speedIndexH + _speedIndexQ);
-            return originP / ratio;
-        }
-        /// <summary>
-        /// 鐭ラ亾鍘熷閫熷害鍜屾敼鍙樺悗鐨勯�熷害,姹傚師濮嬫晥鐜噊riginE瀵瑰簲鏀瑰彉鍚庣殑鏁堢巼
-        /// </summary>
-        /// <param name="originE"></param>
-        /// <param name="originN"></param>
-        /// <param name="changeN"></param>
-        /// <returns></returns>
-        public static double GetE(double originE, double originN, double changeN)
-        {//鍙橀�熷害鍏紡(P65椤�)
-            if (changeN >= originN)
-                return originE;//涓嶈兘澶勭悊杞�熷彉澶х殑鎯呭喌,涓嶇劧鏁堢巼鍙兘瓒呰繃100
-            double ratio = originN / changeN;
-            double bilv = Math.Pow(ratio, 0.17);
-            return originE * 100 / (originE + (100 - originE) * bilv);
-        }
-
-        /// <summary>
-        /// 鐭ラ亾鍘熷閫熷害,浠ュ強鍘熷鐨勬潹绋婬浠ュ強瀵瑰簲鐨勫彉閫熷悗鐨勬潹绋�,姹傚彉閫熷悗鐨勯�熷害
-        /// </summary>
-        /// <param name="originSpeend"></param>
-        /// <param name="originH"></param>
-        /// <param name="changeH"></param>
-        /// <returns></returns>
-        public static double GetSimuByH(double originSpeend, double originH, double changeH)
-        {
-            double ratio = Math.Pow(originH / changeH, 1 / _speedIndexH);
-            return originSpeend / ratio;
-        }
-        #endregion
-
-        /// <summary>
-        /// 鍒ゆ柇鏄惁鏄�0鐐�,鐢ㄤ簬鍒ゆ柇鍑芥暟鏄惁鎴愬姛杩斿洖
-        /// </summary>
-        /// <param name="pt"></param>
-        /// <returns></returns>
-        public static bool IsZeroPoint(Yw.Geometry.Point2d pt)
-        {
-            if (pt.X < 0.01 && pt.Y < 0.01)
-                return true;
-            else
-                return false;
-        }
-        /// <summary>
-        /// 
-        /// </summary>
-        /// <param name="points"></param>
-        /// <param name="maxY"></param>
-        /// <param name="minY"></param>
-        /// <returns></returns>
-        public static bool GetMinMaxPointY(List<Yw.Geometry.Point2d> points, out double maxY, out double minY)
-        {
-            if (points == null)
-            {
-                maxY = (minY = 0.0);
-                return false;
-            }
-
-            List<Yw.Geometry.Point2d> fitPointsByExtend = ISupply.Model.FitCurveHelper.GetFitPointsByExtend(points, 50.0, 20);
-            maxY = fitPointsByExtend.Max(x => x.Y);
-            minY = fitPointsByExtend.Min(x => x.Y);
-            return true;
-        }
-
-        /// <summary>
-        /// 
-        /// </summary>
-        /// <param name="curve"></param>
-        /// <param name="maxY"></param>
-        /// <param name="minY"></param>
-        /// <returns></returns>
-        public static bool GetMinMaxPointY(Yw.Ahart.CubicCurve curve, out double maxY, out double minY)
-        {
-            if (curve == null)
-            {
-                maxY = (minY = 0.0);
-                return false;
-            }
-            var points = ISupply.Model.FitCurveHelper.GetPointList(curve);
-            if (points == null)
-            {
-                maxY = (minY = 0.0);
-                return false;
-            }
-
-            List<Yw.Geometry.Point2d> fitPointsByExtend = ISupply.Model.FitCurveHelper.GetFitPointsByExtend(points, 50.0, 20);
-            maxY = fitPointsByExtend.Max(x => x.Y);
-            minY = fitPointsByExtend.Min(x => x.Y);
-            return true;
-        }
-
-        /// <summary>
-        /// 
-        /// </summary>
-        /// <param name="CurveExpress"></param>
-        /// <param name="simularPoint"></param>
-        /// <returns></returns>
-        public static Yw.Geometry.Point2d GetSectPointParabola(CurveExpress CurveExpress, Yw.Geometry.Point2d simularPoint)
-        {
-            Yw.Geometry.Point2d result = new Yw.Geometry.Point2d(0, 0);
-            if (CurveExpress == null)
-            {
-                return result;
-            }
-
-            return GetSectPointParabola(FitCurveHelper.GetFitPointsByExtend(CurveExpress, 1.2, 50), simularPoint);
-        }
-        /// <summary>
-        /// 
-        /// </summary>
-        /// <param name="CurvePoints"></param>
-        /// <param name="simularPoint"></param>
-        /// <returns></returns>
-        public static Yw.Geometry.Point2d GetSectPointParabola(List<Yw.Geometry.Point2d> CurvePoints, Yw.Geometry.Point2d simularPoint)
-        {
-            return GetSectPoint(CurvePoints, simularPoint, 0.0);
-        }
-        /// <summary>
-        /// 
-        /// </summary>
-        /// <param name="CurvePoints"></param>
-        /// <param name="simularPoint"></param>
-        /// <param name="equipCurveZeroH"></param>
-        /// <returns></returns>
-        public static Yw.Geometry.Point2d GetSectPoint(List<Yw.Geometry.Point2d> CurvePoints, Yw.Geometry.Point2d simularPoint, double equipCurveZeroH)
-        {
-            Yw.Geometry.Point2d point = new Yw.Geometry.Point2d(0, 0);
-            if (CurvePoints == null || CurvePoints.Count < 2)
-            {
-                return point;
-            }
-
-            if (simularPoint.X < CurvePoints.First().X)
-            {
-                return point;
-            }
-
-            if (simularPoint.X < 0.1)
-            {
-                return point;
-            }
-
-            double num = (simularPoint.Y - equipCurveZeroH) / (simularPoint.X * simularPoint.X);
-            if (num < 0.0001)
-            {
-                GetSectPointLn(CurvePoints, simularPoint);
-            }
-
-            double num2 = 0.0;
-            for (int i = 0; i < CurvePoints.Count - 1; i++)
-            {
-                CurveLineHelper.GetKandB(CurvePoints[i], CurvePoints[i + 1], out double k, out double b, 1E-10);
-                b -= equipCurveZeroH;
-                num2 = k * k + 4.0 * num * b;
-                if (!(num2 < 0.0))
-                {
-                    double num3 = (k + Math.Sqrt(num2)) / (2.0 * num);
-                    if (ISupply.Common.PointHelper.IsMiddlePt(CurvePoints[i].X, CurvePoints[i + 1].X, num3))
-                    {
-                        point.X = num3;
-                        point.Y = k * num3 + b + equipCurveZeroH;
-                        return point;
-                    }
-
-                    double num4 = (k - Math.Sqrt(num2)) / (2.0 * num);
-                    if (ISupply.Common.PointHelper.IsMiddlePt(CurvePoints[i].X, CurvePoints[i + 1].X, num4))
-                    {
-                        point.X = num4;
-                        point.Y = k * num4 + b + equipCurveZeroH;
-                        return point;
-                    }
-                }
-            }
-            return point;
-        }
-
-        /// <summary>
-        /// 
-        /// </summary>
-        /// <param name="CurvePoints"></param>
-        /// <param name="simularPoint"></param>
-        /// <returns></returns>
-        protected static Yw.Geometry.Point2d GetSectPointLn(List<Yw.Geometry.Point2d> CurvePoints, Yw.Geometry.Point2d simularPoint)
-        {
-            Yw.Geometry.Point2d featPoint = new Yw.Geometry.Point2d(0, 0);
-            if (CurvePoints == null || CurvePoints.Count < 2)
-            {
-                return featPoint;
-            }
-
-            double num = Math.Log10(simularPoint.Y) / Math.Log10(simularPoint.X);
-            if (num < 0.0001)
-            {
-                return featPoint;
-            }
-
-            var list = new List<Yw.Geometry.Point2d>();
-            for (int i = 0; i < CurvePoints.Count; i++)
-            {
-                if (CurvePoints[i].X > 1.0)
-                {
-                    list.Add(new Yw.Geometry.Point2d(Math.Log10(CurvePoints[i].X), Math.Log10(CurvePoints[i].Y)));
-                }
-            }
-
-            for (int j = 0; j < list.Count - 1; j++)
-            {
-                CurveLineHelper.GetKandB(list[j], list[j + 1], out double k, out double b);
-                if (!(Math.Abs(num - k) < 0.001))
-                {
-                    double num2 = b / (num - k);
-                    if (ISupply.Common.PointHelper.IsMiddlePt(list[j].X, list[j + 1].X, num2))
-                    {
-                        featPoint.X = Math.Pow(10.0, num2);
-                        featPoint.Y = Math.Pow(10.0, num * num2);
-                        return featPoint;
-                    }
-                }
-            }
-
-            return featPoint;
-        }
-
-
-    }
-}
diff --git a/WinFrmUI/PBS.WinFrmUI.Hydro/06-schedule-simulation/dispatch/Input/EtaAnaRecord4Pump.cs b/WinFrmUI/PBS.WinFrmUI.Hydro/06-schedule-simulation/dispatch/Input/EtaAnaRecord4Pump.cs
deleted file mode 100644
index e339963..0000000
--- a/WinFrmUI/PBS.WinFrmUI.Hydro/06-schedule-simulation/dispatch/Input/EtaAnaRecord4Pump.cs
+++ /dev/null
@@ -1,61 +0,0 @@
-锘縩amespace PBS.WinFrmUI.Hydro.Dispatch.Model
-{
-    /// <summary>
-    /// 褰撳墠鏈烘车鑳芥晥鍒嗘瀽璁板綍
-    /// </summary>
-    public class EtaAnaRecord4Pump
-    {
-        /// <summary>
-        /// 
-        /// </summary>
-        public EtaAnaRecord4Pump() { }
-
-
-        /// <summary>
-        /// Machine鏍囪瘑
-        /// </summary>
-        public long MachineID { get; set; }
-        /// <summary>
-        /// Machine鏍囪瘑
-        /// </summary>
-        public long PumpID { get; set; }
-
-        /// <summary>
-        /// PipeLine鏍囪瘑
-        /// </summary>
-        public long PipeLineID { get; set; }
-
-        /// <summary>
-        /// 鍚嶇О
-        /// </summary>
-        public string Name { get; set; }
-        /// <summary>
-        /// 鍔熺巼
-        /// </summary>
-        public double? P { get; set; }
-        /// <summary>
-        /// 娴侀噺
-        /// </summary>
-        public double? Q { get; set; }
-        /// <summary>
-        /// 鎵▼
-        /// </summary>
-        public double? H { get; set; }
-        /// <summary>
-        /// 鏁堢巼
-        /// </summary>
-        public double? E { get; set; }
-        /// <summary>
-        /// 鍗冨惃鑳借��
-        /// </summary>
-        public double? WP { get; set; }
-        /// <summary>
-        /// 鍗曚綅鑳借��
-        /// </summary>
-        public double? UWP { get; set; }
-        /// <summary>
-        /// 棰戠巼
-        /// </summary>
-        public double HZ { get; set; }
-    }
-}
diff --git a/WinFrmUI/PBS.WinFrmUI.Hydro/06-schedule-simulation/dispatch/Input/EtaAnaRecord4Station.cs b/WinFrmUI/PBS.WinFrmUI.Hydro/06-schedule-simulation/dispatch/Input/EtaAnaRecord4Station.cs
deleted file mode 100644
index b6789c4..0000000
--- a/WinFrmUI/PBS.WinFrmUI.Hydro/06-schedule-simulation/dispatch/Input/EtaAnaRecord4Station.cs
+++ /dev/null
@@ -1,54 +0,0 @@
-锘縰sing System.Collections.Generic;
-
-namespace PBS.WinFrmUI.Hydro.Dispatch.Model
-{
-    /// <summary>
-    /// 褰撳墠娉电珯鑳芥晥鍒嗘瀽璁板綍
-    /// </summary>
-    public class EtaAnaRecord4Station
-    {
-        /// <summary>
-        /// 
-        /// </summary>
-        public EtaAnaRecord4Station() { }
-
-
-        /// <summary>
-        /// 鍚嶇О
-        /// </summary>
-        public string Name { get; set; }
-        /// <summary>
-        /// 娴侀噺
-        /// </summary>
-        public double? Q { get; set; }
-        /// <summary>
-        /// 鍔熺巼
-        /// </summary>
-        public double? P { get; set; }
-        /// <summary>
-        /// 鎵▼
-        /// </summary>
-        public double? H { get; set; }
-        /// <summary>
-        /// 鏁堢巼
-        /// </summary>
-        public double? E { get; set; }
-        /// <summary>
-        /// 鍗冨惃鑳借��
-        /// </summary>
-        public double? WP { get; set; }
-        /// <summary>
-        /// 鍗曚綅鑳借��
-        /// </summary>
-        public double? UWP { get; set; }
-        /// <summary>
-        /// 杩愯鐘舵��
-        /// </summary>
-        public int RunStatus { get; set; }
-        /// <summary>
-        /// 瀛愰」闆嗗悎
-        /// </summary>
-        public List<EtaAnaRecord4Pump> Items { get; set; }
-
-    }
-}
diff --git a/WinFrmUI/PBS.WinFrmUI.Hydro/06-schedule-simulation/dispatch/Input/MachineRunPara.cs b/WinFrmUI/PBS.WinFrmUI.Hydro/06-schedule-simulation/dispatch/Input/MachineRunPara.cs
index b373247..0e9b837 100644
--- a/WinFrmUI/PBS.WinFrmUI.Hydro/06-schedule-simulation/dispatch/Input/MachineRunPara.cs
+++ b/WinFrmUI/PBS.WinFrmUI.Hydro/06-schedule-simulation/dispatch/Input/MachineRunPara.cs
@@ -1,6 +1,4 @@
-锘縰sing System.Collections.Generic;
-
-namespace PBS.WinFrmUI.Hydro.Dispatch.Model
+锘縩amespace PBS.WinFrmUI.Hydro.Dispatch.Model
 {
     /// <summary>
     /// 
diff --git a/WinFrmUI/PBS.WinFrmUI.Hydro/06-schedule-simulation/simulationviewmodel/SimuPumpViewModel.cs b/WinFrmUI/PBS.WinFrmUI.Hydro/06-schedule-simulation/simulationviewmodel/SimuPumpViewModel.cs
index de5ba9c..d161b22 100644
--- a/WinFrmUI/PBS.WinFrmUI.Hydro/06-schedule-simulation/simulationviewmodel/SimuPumpViewModel.cs
+++ b/WinFrmUI/PBS.WinFrmUI.Hydro/06-schedule-simulation/simulationviewmodel/SimuPumpViewModel.cs
@@ -1,10 +1,4 @@
-锘縰sing System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace PBS.WinFrmUI.Hydro
+锘縩amespace PBS.WinFrmUI.Hydro
 {
     public class SimuPumpViewModel
     {
diff --git a/WinFrmUI/PBS.WinFrmUI.Hydro/06-schedule-simulation/simulationviewmodel/TimeValue.cs b/WinFrmUI/PBS.WinFrmUI.Hydro/06-schedule-simulation/simulationviewmodel/TimeValue.cs
index 4a60140..b6a80a6 100644
--- a/WinFrmUI/PBS.WinFrmUI.Hydro/06-schedule-simulation/simulationviewmodel/TimeValue.cs
+++ b/WinFrmUI/PBS.WinFrmUI.Hydro/06-schedule-simulation/simulationviewmodel/TimeValue.cs
@@ -1,10 +1,4 @@
-锘縰sing System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace PBS.WinFrmUI.Hydro
+锘縩amespace PBS.WinFrmUI.Hydro
 {
     public class TimeValue
     {
diff --git a/WinFrmUI/PBS.WinFrmUI.Hydro/Properties/Resources.Designer.cs b/WinFrmUI/PBS.WinFrmUI.Hydro/Properties/Resources.Designer.cs
index 11e7132..6b5c5d2 100644
--- a/WinFrmUI/PBS.WinFrmUI.Hydro/Properties/Resources.Designer.cs
+++ b/WinFrmUI/PBS.WinFrmUI.Hydro/Properties/Resources.Designer.cs
@@ -83,6 +83,16 @@
         /// <summary>
         ///   鏌ユ壘 DevExpress.Utils.Svg.SvgImage 绫诲瀷鐨勬湰鍦板寲璧勬簮銆�
         /// </summary>
+        internal static DevExpress.Utils.Svg.SvgImage calcdate {
+            get {
+                object obj = ResourceManager.GetObject("calcdate", resourceCulture);
+                return ((DevExpress.Utils.Svg.SvgImage)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   鏌ユ壘 DevExpress.Utils.Svg.SvgImage 绫诲瀷鐨勬湰鍦板寲璧勬簮銆�
+        /// </summary>
         internal static DevExpress.Utils.Svg.SvgImage connector {
             get {
                 object obj = ResourceManager.GetObject("connector", resourceCulture);
diff --git a/WinFrmUI/PBS.WinFrmUI.Hydro/Properties/Resources.resx b/WinFrmUI/PBS.WinFrmUI.Hydro/Properties/Resources.resx
index 6c0ba05..227343a 100644
--- a/WinFrmUI/PBS.WinFrmUI.Hydro/Properties/Resources.resx
+++ b/WinFrmUI/PBS.WinFrmUI.Hydro/Properties/Resources.resx
@@ -166,4 +166,7 @@
   <data name="actions_reload" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\actions_reload.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
   </data>
+  <data name="calcdate" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\calcdate.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
+  </data>
 </root>
\ No newline at end of file
diff --git a/WinFrmUI/PBS.WinFrmUI.Hydro/Resources/calcdate.svg b/WinFrmUI/PBS.WinFrmUI.Hydro/Resources/calcdate.svg
new file mode 100644
index 0000000..df04b30
--- /dev/null
+++ b/WinFrmUI/PBS.WinFrmUI.Hydro/Resources/calcdate.svg
@@ -0,0 +1,10 @@
+锘�<?xml version='1.0' encoding='UTF-8'?>
+<svg x="0px" y="0px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" id="Layer_1" style="enable-background:new 0 0 16 16">
+  <style type="text/css">
+	.Blue{fill:#3475BA;}
+	.Black{fill:#737373;}
+</style>
+  <path d="M0,1v14h16V1H0z M15,14H1V2h14V14z" class="Black" />
+  <path d="M8,4C5.8,4,4,5.8,4,8s1.8,4,4,4s4-1.8,4-4S10.2,4,8,4z M8,11c-1.6,0-3-1.4-3-3s1.3-3,3-3s3,1.3,3,3  S9.7,11,8,11z" class="Blue" />
+  <polygon points="8,8 8,6 7,6 7,9 10,9 10,8 " class="Black" />
+</svg>
\ No newline at end of file

--
Gitblit v1.9.3