duheng
2025-03-28 dfe7e1653f8309e23e4c314cd58ac4ff7ce49dbc
Merge branch 'master' of http://47.103.154.90:83/r/HStation/XHS.V1.0
已删除3个文件
已修改10个文件
已添加1个文件
854 ■■■■ 文件已修改
WinFrmUI/PBS.WinFrmUI.Hydro/05-system-curve/00-core/SystemCurvePage.Designer.cs 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/PBS.WinFrmUI.Hydro/05-system-curve/00-core/SystemCurvePage.cs 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/PBS.WinFrmUI.Hydro/05-system-curve/02-chart/SystemCurveChartCtrl.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/PBS.WinFrmUI.Hydro/06-schedule-simulation/SimulationSchedulePage.cs 60 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/PBS.WinFrmUI.Hydro/06-schedule-simulation/dispatch/General/OptAna.cs 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/PBS.WinFrmUI.Hydro/06-schedule-simulation/dispatch/Helper/SimuSpeedCalcHelper.cs 494 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/PBS.WinFrmUI.Hydro/06-schedule-simulation/dispatch/Input/EtaAnaRecord4Pump.cs 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/PBS.WinFrmUI.Hydro/06-schedule-simulation/dispatch/Input/EtaAnaRecord4Station.cs 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/PBS.WinFrmUI.Hydro/06-schedule-simulation/dispatch/Input/MachineRunPara.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/PBS.WinFrmUI.Hydro/06-schedule-simulation/simulationviewmodel/SimuPumpViewModel.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/PBS.WinFrmUI.Hydro/06-schedule-simulation/simulationviewmodel/TimeValue.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/PBS.WinFrmUI.Hydro/Properties/Resources.Designer.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/PBS.WinFrmUI.Hydro/Properties/Resources.resx 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/PBS.WinFrmUI.Hydro/Resources/calcdate.svg 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;
    }
}
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();
        }
    }
}
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();
        }
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;
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,
WinFrmUI/PBS.WinFrmUI.Hydro/06-schedule-simulation/dispatch/Helper/SimuSpeedCalcHelper.cs
ÎļþÒÑɾ³ý
WinFrmUI/PBS.WinFrmUI.Hydro/06-schedule-simulation/dispatch/Input/EtaAnaRecord4Pump.cs
ÎļþÒÑɾ³ý
WinFrmUI/PBS.WinFrmUI.Hydro/06-schedule-simulation/dispatch/Input/EtaAnaRecord4Station.cs
ÎļþÒÑɾ³ý
WinFrmUI/PBS.WinFrmUI.Hydro/06-schedule-simulation/dispatch/Input/MachineRunPara.cs
@@ -1,6 +1,4 @@
using System.Collections.Generic;
namespace PBS.WinFrmUI.Hydro.Dispatch.Model
namespace PBS.WinFrmUI.Hydro.Dispatch.Model
{
    /// <summary>
    /// 
WinFrmUI/PBS.WinFrmUI.Hydro/06-schedule-simulation/simulationviewmodel/SimuPumpViewModel.cs
@@ -1,10 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace PBS.WinFrmUI.Hydro
namespace PBS.WinFrmUI.Hydro
{
    public class SimuPumpViewModel
    {
WinFrmUI/PBS.WinFrmUI.Hydro/06-schedule-simulation/simulationviewmodel/TimeValue.cs
@@ -1,10 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace PBS.WinFrmUI.Hydro
namespace PBS.WinFrmUI.Hydro
{
    public class TimeValue
    {
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);
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>
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>