duheng
2024-12-20 ab65b0ac21e7fabfd8548538142d9a1b66a2ad3d
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/11-pump/04-working/SimulationPumpSingleWorkingChartCtrl.cs
@@ -97,15 +97,92 @@
            vm.CurveName = $"装置线";
            vm.Color = Color.Black;
            double startHeadValue = 0;
            var startSourceMonitor = _allMonitorList?
                .Matching(HydroVisualCalcuProp.CalcuHead, new List<string>()
                { HStation.Xhs.Flags.水源,HStation.Xhs.Flags.始端,HStation.Xhs.Flags.默认});
            if (startSourceMonitor == null)
            {
                startSourceMonitor = _allMonitorList?
                .Matching(HydroVisualCalcuProp.CalcuHead, new List<string>()
                { HStation.Xhs.Flags.水源,HStation.Xhs.Flags.始端});
            }
            if (startSourceMonitor != null)
            {
                var startSourceCalcuResult = _allCalcuResultVisualDict?.GetValue(startSourceMonitor.Relation);
                if (startSourceCalcuResult != null)
                {
                    var startHead = startSourceCalcuResult.GetCalcuValue(startSourceMonitor.PropName);
                    if (startHead.HasValue)
                    {
                        startHeadValue = startHead.Value;
                    }
                }
            }
            var endSourceMonitor = _allMonitorList?
            .Matching(HydroVisualCalcuProp.CalcuHead, new List<string>()
            { HStation.Xhs.Flags.水源,HStation.Xhs.Flags.末端,HStation.Xhs.Flags.默认});
            if (endSourceMonitor == null)
            {
                endSourceMonitor = _allMonitorList?
                            .Matching(HydroVisualCalcuProp.CalcuHead, new List<string>()
                            { HStation.Xhs.Flags.水源,HStation.Xhs.Flags.末端});
            }
            if (endSourceMonitor != null)
            {
                var endSouceCalcuResult = _allCalcuResultVisualDict?.GetValue(endSourceMonitor.Relation);
                if (endSouceCalcuResult != null)
                {
                    var endHead = endSouceCalcuResult.GetCalcuValue(endSourceMonitor.PropName);
                    if (endHead.HasValue)
                    {
                        vm.StartH = Math.Round(endHead.Value - startHeadValue, 2);
                    }
                }
            }
            var outPipeFlowMonitor = _allMonitorList?.Matching(HydroVisualCalcuProp.CalcuFlow, new List<string>()
                            { HStation.Xhs.Flags.总管,HStation.Xhs.Flags.出口,HStation.Xhs.Flags.默认});
            if (outPipeFlowMonitor == null)
            {
                outPipeFlowMonitor = _allMonitorList?.Matching(HydroVisualCalcuProp.CalcuFlow, new List<string>()
                        { HStation.Xhs.Flags.总管,HStation.Xhs.Flags.出口});
            }
            if (outPipeFlowMonitor != null)
            {
                var outPipeFlowCalcuResult = _allCalcuResultVisualDict?.GetValue(outPipeFlowMonitor.Relation);
                if (outPipeFlowCalcuResult != null)
                {
                    var outPipeFlow = outPipeFlowCalcuResult.GetCalcuValue(outPipeFlowMonitor.PropName);
                    if (outPipeFlow.HasValue)
                    {
                        vm.PipeQ = Math.Round(outPipeFlow.Value, 1);
                    }
                }
            }
            var outPipeHeadMonitor = _allMonitorList?.Matching(HydroVisualCalcuProp.CalcuHead, new List<string>()
                            { HStation.Xhs.Flags.总管,HStation.Xhs.Flags.出口,HStation.Xhs.Flags.默认});
            if (outPipeHeadMonitor == null)
            {
                outPipeHeadMonitor = _allMonitorList?.Matching(HydroVisualCalcuProp.CalcuHead, new List<string>()
                            { HStation.Xhs.Flags.总管,HStation.Xhs.Flags.出口});
            }
            vm.StartH = 2;
            if (outPipeHeadMonitor != null)
            {
                var outPipeHeadCalcuResult = _allCalcuResultVisualDict?.GetValue(outPipeHeadMonitor.Relation);
                if (outPipeHeadCalcuResult != null)
                {
                    var outPipeHead = outPipeHeadCalcuResult.GetCalcuValue(outPipeHeadMonitor.PropName);
                    if (outPipeHead.HasValue)
                    {
                        vm.PipeH = Math.Round(outPipeHead.Value - startHeadValue, 2);
                    }
                }
            }
            if (_hydroInfo.Pumps != null && _hydroInfo.Pumps.Count > 0)
            {
@@ -167,9 +244,6 @@
                        }
                    }
                    vm.PipeQ = vm.Items.Sum(t => t.Q);
                    vm.PipeH = vm.Items.Max(t => t.H);
                }
            }
@@ -204,6 +278,14 @@
            this.pumpWorkingViewChart1.SetChartAxis();
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="fileName"></param>
        public void ExportToImage(string fileName)
        {
            this.pumpWorkingViewChart1.ExportToImage(fileName);
        }
    }
}