lixiaojun
2024-12-24 f7253b1a5b2a945d88e6ab230910a78c2cbbc7ad
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/11-pump/04-working/SimulationPumpSingleWorkingChartCtrl.cs
@@ -97,92 +97,13 @@
            vm.CurveName = $"装置线";
            vm.Color = Color.Black;
            var head = _hydroInfo.GetHead();
            var pipeQ = _hydroInfo.GetPipeQ(_allCalcuResultVisualDict);
            var pipeH = _hydroInfo.GetPipeHead(_allCalcuResultVisualDict);
            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.出口});
            }
            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);
                    }
                }
            }
            vm.StartH = head;
            vm.PipeQ = pipeQ ?? 0;
            vm.PipeH = pipeH ?? 0;
            if (_hydroInfo.Pumps != null && _hydroInfo.Pumps.Count > 0)
            {