lixiaojun
2024-11-17 c390474980cea47189c1fcc962315b9867c9e2ce
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/04-scheme/XhsProjectSimulationSchemeMgrPage.cs
@@ -1050,7 +1050,7 @@
        //显示工况计算窗体
        private void ShowWorkingCalcuDlg()
        {
            var dlg = new SetHydroWorkingInfoDlg();
            var dlg = new SetHydroWorkingDlg();
            dlg.HydroViewEvent += async (parter) =>
            {
                _selectedVisual = parter as Yw.Model.HydroVisualInfo;
@@ -1156,11 +1156,11 @@
        #region 计算结果
        //所有计算结果列表
        private List<HydroCalcuResult> _allCalcuResultList = null;
        private List<HydroCalcuVisualResult> _allCalcuResultList = null;
        //获取计算结果
        //true 使用缓存,false 不使用缓存
        private List<HydroCalcuResult> GetCalcuResultList(bool isCache = true)
        private List<HydroCalcuVisualResult> GetCalcuResultList(bool isCache = true)
        {
            if (_hydroInfo == null)
            {
@@ -1179,7 +1179,7 @@
                return _allCalcuResultList;
            }
            _allCalcuResultList = new List<HydroCalcuResult>();
            _allCalcuResultList = new List<HydroCalcuVisualResult>();
            //节点
            var allNodeList = _hydroInfo.GetAllNodes();
@@ -1446,51 +1446,51 @@
            if (_allMarkSetList == null)
            {
                _allMarkSetList = new List<HydroMarkSetViewModel>();
                if (_hydroInfo.Waterboxs != null && _hydroInfo.Waterboxs.Count > 0)
                {
                    _allMarkSetList.Add(new HydroMarkSetViewModel()
                    {
                        Code = Yw.Hydro.ParterCatalog.Waterbox,
                        Name = Yw.WinFrmUI.HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Waterbox),
                        MarkType = (int)eWaterboxMarkType.None
                    });
                }
                if (_hydroInfo.Pumps != null && _hydroInfo.Pumps.Count > 0)
                {
                    _allMarkSetList.Add(new HydroMarkSetViewModel()
                    {
                        Code = Yw.Hydro.ParterCatalog.Pump,
                        Name = Yw.WinFrmUI.HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Pump),
                        MarkType = (int)eWaterboxMarkType.None
                    });
                }
                if (_hydroInfo.Valves != null && _hydroInfo.Valves.Count > 0)
                {
                    _allMarkSetList.Add(new HydroMarkSetViewModel()
                    {
                        Code = Yw.Hydro.ParterCatalog.Valve,
                        Name = Yw.WinFrmUI.HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Valve),
                        MarkType = (int)eWaterboxMarkType.None
                    });
                }
                if (_hydroInfo.Pipes != null && _hydroInfo.Pipes.Count > 0)
                {
                    _allMarkSetList.Add(new HydroMarkSetViewModel()
                    {
                        Code = Yw.Hydro.ParterCatalog.Pipe,
                        Name = Yw.WinFrmUI.HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Pipe),
                        MarkType = (int)eWaterboxMarkType.None
                    });
                }
                if (_hydroInfo.Nozzles != null && _hydroInfo.Nozzles.Count > 0)
                {
                    _allMarkSetList.Add(new HydroMarkSetViewModel()
                    {
                        Code = Yw.Hydro.ParterCatalog.Nozzle,
                        Name = Yw.WinFrmUI.HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Nozzle),
                        MarkType = (int)eWaterboxMarkType.None
                    });
                }
                //if (_hydroInfo.Waterboxs != null && _hydroInfo.Waterboxs.Count > 0)
                //{
                //    _allMarkSetList.Add(new HydroMarkSetViewModel()
                //    {
                //        Code = Yw.Hydro.ParterCatalog.Waterbox,
                //        Name = Yw.WinFrmUI.HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Waterbox),
                //        MarkType = (int)eWaterboxMarkType.None
                //    });
                //}
                //if (_hydroInfo.Pumps != null && _hydroInfo.Pumps.Count > 0)
                //{
                //    _allMarkSetList.Add(new HydroMarkSetViewModel()
                //    {
                //        Code = Yw.Hydro.ParterCatalog.Pump,
                //        Name = Yw.WinFrmUI.HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Pump),
                //        MarkType = (int)eWaterboxMarkType.None
                //    });
                //}
                //if (_hydroInfo.Valves != null && _hydroInfo.Valves.Count > 0)
                //{
                //    _allMarkSetList.Add(new HydroMarkSetViewModel()
                //    {
                //        Code = Yw.Hydro.ParterCatalog.Valve,
                //        Name = Yw.WinFrmUI.HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Valve),
                //        MarkType = (int)eWaterboxMarkType.None
                //    });
                //}
                //if (_hydroInfo.Pipes != null && _hydroInfo.Pipes.Count > 0)
                //{
                //    _allMarkSetList.Add(new HydroMarkSetViewModel()
                //    {
                //        Code = Yw.Hydro.ParterCatalog.Pipe,
                //        Name = Yw.WinFrmUI.HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Pipe),
                //        MarkType = (int)eWaterboxMarkType.None
                //    });
                //}
                //if (_hydroInfo.Nozzles != null && _hydroInfo.Nozzles.Count > 0)
                //{
                //    _allMarkSetList.Add(new HydroMarkSetViewModel()
                //    {
                //        Code = Yw.Hydro.ParterCatalog.Nozzle,
                //        Name = Yw.WinFrmUI.HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Nozzle),
                //        MarkType = (int)eWaterboxMarkType.None
                //    });
                //}
            }
            return _allMarkSetList;
        }
@@ -1507,408 +1507,408 @@
            }
            _allMarkResultList = new List<HydroMarkResultViewModel>();
            var allMarkSetList = GetMarkSetList();
            foreach (var markSet in allMarkSetList)
            {
                switch (markSet.Code)
                {
                    case Yw.Hydro.ParterCatalog.Waterbox:
                        {
                            if (_hydroInfo.Waterboxs != null && _hydroInfo.Waterboxs.Count > 0)
                            {
                                switch ((eWaterboxMarkType)markSet.MarkType)
                                {
                                    case eWaterboxMarkType.None:
                                        {
            //foreach (var markSet in allMarkSetList)
            //{
            //    switch (markSet.Code)
            //    {
            //        case Yw.Hydro.ParterCatalog.Waterbox:
            //            {
            //                if (_hydroInfo.Waterboxs != null && _hydroInfo.Waterboxs.Count > 0)
            //                {
            //                    switch ((eWaterboxMarkType)markSet.MarkType)
            //                    {
            //                        case eWaterboxMarkType.None:
            //                            {
                                        }
                                        break;
                                    case eWaterboxMarkType.PoolElev:
                                        {
                                            _hydroInfo.Waterboxs.ForEach(t =>
                                            {
                                                _allMarkResultList.Add(new HydroMarkResultViewModel()
                                                {
                                                    Code = t.Code,
                                                    Text = $"池底标高:{Math.Round(t.PoolElev, 4)}m"
                                                });
                                            });
                                        }
                                        break;
                                    case eWaterboxMarkType.InitLevel:
                                        {
                                            _hydroInfo.Waterboxs.ForEach(t =>
                                            {
                                                _allMarkResultList.Add(new HydroMarkResultViewModel()
                                                {
                                                    Code = t.Code,
                                                    Text = $"初始水位:{Math.Round(t.InitLevel, 4)}m"
                                                });
                                            });
                                        }
                                        break;
                                    case eWaterboxMarkType.MinLevel:
                                        {
                                            _hydroInfo.Waterboxs.ForEach(t =>
                                            {
                                                _allMarkResultList.Add(new HydroMarkResultViewModel()
                                                {
                                                    Code = t.Code,
                                                    Text = $"最小水位:{Math.Round(t.MinLevel, 4)}m"
                                                });
                                            });
                                        }
                                        break;
                                    case eWaterboxMarkType.MaxLevel:
                                        {
                                            _hydroInfo.Waterboxs.ForEach(t =>
                                            {
                                                _allMarkResultList.Add(new HydroMarkResultViewModel()
                                                {
                                                    Code = t.Code,
                                                    Text = $"最高水位:{Math.Round(t.MaxLevel, 4)}m"
                                                });
                                            });
                                        }
                                        break;
                                    case eWaterboxMarkType.DN:
                                        {
                                            _hydroInfo.Waterboxs.ForEach(t =>
                                            {
                                                _allMarkResultList.Add(new HydroMarkResultViewModel()
                                                {
                                                    Code = t.Code,
                                                    Text = $"直径:{Math.Round(t.DN, 4)}m"
                                                });
                                            });
                                        }
                                        break;
                                    case eWaterboxMarkType.MinVol:
                                        {
                                            _hydroInfo.Waterboxs.ForEach(t =>
                                            {
                                                _allMarkResultList.Add(new HydroMarkResultViewModel()
                                                {
                                                    Code = t.Code,
                                                    Text = $"最小容积:{Math.Round(t.MinVol, 1)}m"
                                                });
                                            });
                                        }
                                        break;
                                    default: break;
                                }
                            }
                        }
                        break;
                    case Yw.Hydro.ParterCatalog.Pump:
                        {
                            if (_hydroInfo.Pumps != null && _hydroInfo.Pumps.Count > 0)
                            {
                                switch ((ePumpMarkType)markSet.MarkType)
                                {
                                    case ePumpMarkType.None:
                                        {
            //                            }
            //                            break;
            //                        case eWaterboxMarkType.PoolElev:
            //                            {
            //                                _hydroInfo.Waterboxs.ForEach(t =>
            //                                {
            //                                    _allMarkResultList.Add(new HydroMarkResultViewModel()
            //                                    {
            //                                        Code = t.Code,
            //                                        Text = $"池底标高:{Math.Round(t.PoolElev, 4)}m"
            //                                    });
            //                                });
            //                            }
            //                            break;
            //                        case eWaterboxMarkType.InitLevel:
            //                            {
            //                                _hydroInfo.Waterboxs.ForEach(t =>
            //                                {
            //                                    _allMarkResultList.Add(new HydroMarkResultViewModel()
            //                                    {
            //                                        Code = t.Code,
            //                                        Text = $"初始水位:{Math.Round(t.InitLevel, 4)}m"
            //                                    });
            //                                });
            //                            }
            //                            break;
            //                        case eWaterboxMarkType.MinLevel:
            //                            {
            //                                _hydroInfo.Waterboxs.ForEach(t =>
            //                                {
            //                                    _allMarkResultList.Add(new HydroMarkResultViewModel()
            //                                    {
            //                                        Code = t.Code,
            //                                        Text = $"最小水位:{Math.Round(t.MinLevel, 4)}m"
            //                                    });
            //                                });
            //                            }
            //                            break;
            //                        case eWaterboxMarkType.MaxLevel:
            //                            {
            //                                _hydroInfo.Waterboxs.ForEach(t =>
            //                                {
            //                                    _allMarkResultList.Add(new HydroMarkResultViewModel()
            //                                    {
            //                                        Code = t.Code,
            //                                        Text = $"最高水位:{Math.Round(t.MaxLevel, 4)}m"
            //                                    });
            //                                });
            //                            }
            //                            break;
            //                        case eWaterboxMarkType.DN:
            //                            {
            //                                _hydroInfo.Waterboxs.ForEach(t =>
            //                                {
            //                                    _allMarkResultList.Add(new HydroMarkResultViewModel()
            //                                    {
            //                                        Code = t.Code,
            //                                        Text = $"直径:{Math.Round(t.DN, 4)}m"
            //                                    });
            //                                });
            //                            }
            //                            break;
            //                        case eWaterboxMarkType.MinVol:
            //                            {
            //                                _hydroInfo.Waterboxs.ForEach(t =>
            //                                {
            //                                    _allMarkResultList.Add(new HydroMarkResultViewModel()
            //                                    {
            //                                        Code = t.Code,
            //                                        Text = $"最小容积:{Math.Round(t.MinVol, 1)}m"
            //                                    });
            //                                });
            //                            }
            //                            break;
            //                        default: break;
            //                    }
            //                }
            //            }
            //            break;
            //        case Yw.Hydro.ParterCatalog.Pump:
            //            {
            //                if (_hydroInfo.Pumps != null && _hydroInfo.Pumps.Count > 0)
            //                {
            //                    switch ((ePumpMarkType)markSet.MarkType)
            //                    {
            //                        case ePumpMarkType.None:
            //                            {
                                        }
                                        break;
                                    case ePumpMarkType.PumpStatus:
                                        {
                                            _hydroInfo.Pumps.ForEach(t =>
                                            {
                                                _allMarkResultList.Add(new HydroMarkResultViewModel()
                                                {
                                                    Code = t.Code,
                                                    Text = $"开机状态:{Yw.WinFrmUI.HydroLinkStatusHelper.GetStatusName(t.LinkStatus)}"
                                                });
                                            });
                                        }
                                        break;
                                    case ePumpMarkType.RatedP:
                                        {
                                            _hydroInfo.Pumps.ForEach(t =>
                                            {
                                                _allMarkResultList.Add(new HydroMarkResultViewModel()
                                                {
                                                    Code = t.Code,
                                                    Text = $"额定功率:{t.RatedP}kW"
                                                });
                                            });
                                        }
                                        break;
                                    case ePumpMarkType.RatedQ:
                                        {
                                            _hydroInfo.Pumps.ForEach(t =>
                                            {
                                                _allMarkResultList.Add(new HydroMarkResultViewModel()
                                                {
                                                    Code = t.Code,
                                                    Text = $"额定流量:{t.RatedQ}m³/h"
                                                });
                                            });
                                        }
                                        break;
                                    case ePumpMarkType.RatedH:
                                        {
                                            _hydroInfo.Pumps.ForEach(t =>
                                            {
                                                _allMarkResultList.Add(new HydroMarkResultViewModel()
                                                {
                                                    Code = t.Code,
                                                    Text = $"额定扬程:{t.RatedH}m"
                                                });
                                            });
                                        }
                                        break;
                                    case ePumpMarkType.RatedN:
                                        {
                                            _hydroInfo.Pumps.ForEach(t =>
                                            {
                                                _allMarkResultList.Add(new HydroMarkResultViewModel()
                                                {
                                                    Code = t.Code,
                                                    Text = $"额定转速:{t.RatedN}r/min"
                                                });
                                            });
                                        }
                                        break;
                                    case ePumpMarkType.RatedHz:
                                        {
                                            _hydroInfo.Pumps.ForEach(t =>
                                            {
                                                _allMarkResultList.Add(new HydroMarkResultViewModel()
                                                {
                                                    Code = t.Code,
                                                    Text = $"额定频率:{t.RatedHz}"
                                                });
                                            });
                                        }
                                        break;
                                    case ePumpMarkType.CurrentN:
                                        {
                                            _hydroInfo.Pumps.ForEach(t =>
                                            {
                                                if (t.RatedN.HasValue)
                                                {
                                                    _allMarkResultList.Add(new HydroMarkResultViewModel()
                                                    {
                                                        Code = t.Code,
                                                        Text = $"设定转速:{Math.Round(t.RatedN.Value * t.SpeedRatio, 1)}r/min"
                                                    });
                                                }
                                            });
                                        }
                                        break;
                                    case ePumpMarkType.CurrentHz:
                                        {
                                            _hydroInfo.Pumps.ForEach(t =>
                                            {
                                                _allMarkResultList.Add(new HydroMarkResultViewModel()
                                                {
                                                    Code = t.Code,
                                                    Text = $"设定频率:{Math.Round(t.RatedHz * t.SpeedRatio, 1)}hz"
                                                });
                                            });
                                        }
                                        break;
                                    default: break;
                                }
                            }
                        }
                        break;
                    case Yw.Hydro.ParterCatalog.Valve:
                        {
                            if (_hydroInfo.Valves != null && _hydroInfo.Valves.Count > 0)
                            {
                                switch ((eValveMarkType)markSet.MarkType)
                                {
                                    case eValveMarkType.None:
                                        {
            //                            }
            //                            break;
            //                        case ePumpMarkType.PumpStatus:
            //                            {
            //                                _hydroInfo.Pumps.ForEach(t =>
            //                                {
            //                                    _allMarkResultList.Add(new HydroMarkResultViewModel()
            //                                    {
            //                                        Code = t.Code,
            //                                        Text = $"开机状态:{Yw.WinFrmUI.HydroLinkStatusHelper.GetStatusName(t.LinkStatus)}"
            //                                    });
            //                                });
            //                            }
            //                            break;
            //                        case ePumpMarkType.RatedP:
            //                            {
            //                                _hydroInfo.Pumps.ForEach(t =>
            //                                {
            //                                    _allMarkResultList.Add(new HydroMarkResultViewModel()
            //                                    {
            //                                        Code = t.Code,
            //                                        Text = $"额定功率:{t.RatedP}kW"
            //                                    });
            //                                });
            //                            }
            //                            break;
            //                        case ePumpMarkType.RatedQ:
            //                            {
            //                                _hydroInfo.Pumps.ForEach(t =>
            //                                {
            //                                    _allMarkResultList.Add(new HydroMarkResultViewModel()
            //                                    {
            //                                        Code = t.Code,
            //                                        Text = $"额定流量:{t.RatedQ}m³/h"
            //                                    });
            //                                });
            //                            }
            //                            break;
            //                        case ePumpMarkType.RatedH:
            //                            {
            //                                _hydroInfo.Pumps.ForEach(t =>
            //                                {
            //                                    _allMarkResultList.Add(new HydroMarkResultViewModel()
            //                                    {
            //                                        Code = t.Code,
            //                                        Text = $"额定扬程:{t.RatedH}m"
            //                                    });
            //                                });
            //                            }
            //                            break;
            //                        case ePumpMarkType.RatedN:
            //                            {
            //                                _hydroInfo.Pumps.ForEach(t =>
            //                                {
            //                                    _allMarkResultList.Add(new HydroMarkResultViewModel()
            //                                    {
            //                                        Code = t.Code,
            //                                        Text = $"额定转速:{t.RatedN}r/min"
            //                                    });
            //                                });
            //                            }
            //                            break;
            //                        case ePumpMarkType.RatedHz:
            //                            {
            //                                _hydroInfo.Pumps.ForEach(t =>
            //                                {
            //                                    _allMarkResultList.Add(new HydroMarkResultViewModel()
            //                                    {
            //                                        Code = t.Code,
            //                                        Text = $"额定频率:{t.RatedHz}"
            //                                    });
            //                                });
            //                            }
            //                            break;
            //                        case ePumpMarkType.CurrentN:
            //                            {
            //                                _hydroInfo.Pumps.ForEach(t =>
            //                                {
            //                                    if (t.RatedN.HasValue)
            //                                    {
            //                                        _allMarkResultList.Add(new HydroMarkResultViewModel()
            //                                        {
            //                                            Code = t.Code,
            //                                            Text = $"设定转速:{Math.Round(t.RatedN.Value * t.SpeedRatio, 1)}r/min"
            //                                        });
            //                                    }
            //                                });
            //                            }
            //                            break;
            //                        case ePumpMarkType.CurrentHz:
            //                            {
            //                                _hydroInfo.Pumps.ForEach(t =>
            //                                {
            //                                    _allMarkResultList.Add(new HydroMarkResultViewModel()
            //                                    {
            //                                        Code = t.Code,
            //                                        Text = $"设定频率:{Math.Round(t.RatedHz * t.SpeedRatio, 1)}hz"
            //                                    });
            //                                });
            //                            }
            //                            break;
            //                        default: break;
            //                    }
            //                }
            //            }
            //            break;
            //        case Yw.Hydro.ParterCatalog.Valve:
            //            {
            //                if (_hydroInfo.Valves != null && _hydroInfo.Valves.Count > 0)
            //                {
            //                    switch ((eValveMarkType)markSet.MarkType)
            //                    {
            //                        case eValveMarkType.None:
            //                            {
                                        }
                                        break;
                                    case eValveMarkType.ValveStatus:
                                        {
                                            _hydroInfo.Valves.ForEach(t =>
                                            {
                                                _allMarkResultList.Add(new HydroMarkResultViewModel()
                                                {
                                                    Code = t.Code,
                                                    Text = $"阀门状态:{HydroLinkStatusHelper.GetStatusName(t.LinkStatus)}"
                                                });
                                            });
                                        }
                                        break;
                                    case eValveMarkType.ValveType:
                                        {
                                            _hydroInfo.Valves.ForEach(t =>
                                            {
                                                _allMarkResultList.Add(new HydroMarkResultViewModel()
                                                {
                                                    Code = t.Code,
                                                    Text = $"阀门类型:{HydroValveTypeHelper.GetTypeName(t.ValveType)}"
                                                });
                                            });
                                        }
                                        break;
                                    case eValveMarkType.Diameter:
                                        {
                                            _hydroInfo.Valves.ForEach(t =>
                                            {
                                                _allMarkResultList.Add(new HydroMarkResultViewModel()
                                                {
                                                    Code = t.Code,
                                                    Text = $"直径:{t.Diameter}mm"
                                                });
                                            });
                                        }
                                        break;
                                    case eValveMarkType.MinorLoss:
                                        {
                                            _hydroInfo.Valves.ForEach(t =>
                                            {
                                                _allMarkResultList.Add(new HydroMarkResultViewModel()
                                                {
                                                    Code = t.Code,
                                                    Text = $"局阻系数:{t.MinorLoss}"
                                                });
                                            });
                                        }
                                        break;
                                    default: break;
                                }
                            }
                        }
                        break;
                    case Yw.Hydro.ParterCatalog.Pipe:
                        {
                            if (_hydroInfo.Pipes != null && _hydroInfo.Pipes.Count > 0)
                            {
                                switch ((ePipeMarkType)markSet.MarkType)
                                {
                                    case ePipeMarkType.None:
                                        {
            //                            }
            //                            break;
            //                        case eValveMarkType.ValveStatus:
            //                            {
            //                                _hydroInfo.Valves.ForEach(t =>
            //                                {
            //                                    _allMarkResultList.Add(new HydroMarkResultViewModel()
            //                                    {
            //                                        Code = t.Code,
            //                                        Text = $"阀门状态:{HydroLinkStatusHelper.GetStatusName(t.LinkStatus)}"
            //                                    });
            //                                });
            //                            }
            //                            break;
            //                        case eValveMarkType.ValveType:
            //                            {
            //                                _hydroInfo.Valves.ForEach(t =>
            //                                {
            //                                    _allMarkResultList.Add(new HydroMarkResultViewModel()
            //                                    {
            //                                        Code = t.Code,
            //                                        Text = $"阀门类型:{HydroValveTypeHelper.GetTypeName(t.ValveType)}"
            //                                    });
            //                                });
            //                            }
            //                            break;
            //                        case eValveMarkType.Diameter:
            //                            {
            //                                _hydroInfo.Valves.ForEach(t =>
            //                                {
            //                                    _allMarkResultList.Add(new HydroMarkResultViewModel()
            //                                    {
            //                                        Code = t.Code,
            //                                        Text = $"直径:{t.Diameter}mm"
            //                                    });
            //                                });
            //                            }
            //                            break;
            //                        case eValveMarkType.MinorLoss:
            //                            {
            //                                _hydroInfo.Valves.ForEach(t =>
            //                                {
            //                                    _allMarkResultList.Add(new HydroMarkResultViewModel()
            //                                    {
            //                                        Code = t.Code,
            //                                        Text = $"局阻系数:{t.MinorLoss}"
            //                                    });
            //                                });
            //                            }
            //                            break;
            //                        default: break;
            //                    }
            //                }
            //            }
            //            break;
            //        case Yw.Hydro.ParterCatalog.Pipe:
            //            {
            //                if (_hydroInfo.Pipes != null && _hydroInfo.Pipes.Count > 0)
            //                {
            //                    switch ((ePipeMarkType)markSet.MarkType)
            //                    {
            //                        case ePipeMarkType.None:
            //                            {
                                        }
                                        break;
                                    case ePipeMarkType.PipeStatus:
                                        {
                                            _hydroInfo.Pipes.ForEach(t =>
                                            {
                                                _allMarkResultList.Add(new HydroMarkResultViewModel()
                                                {
                                                    Code = t.Code,
                                                    Text = $"状态:{Yw.WinFrmUI.HydroLinkStatusHelper.GetStatusName(t.LinkStatus)}"
                                                });
                                            });
                                        }
                                        break;
                                    case ePipeMarkType.Diameter:
                                        {
                                            _hydroInfo.Pipes.ForEach(t =>
                                            {
                                                _allMarkResultList.Add(new HydroMarkResultViewModel()
                                                {
                                                    Code = t.Code,
                                                    Text = $"直径:{t.Diameter}mm"
                                                });
                                            });
                                        }
                                        break;
                                    case ePipeMarkType.Length:
                                        {
                                            _hydroInfo.Pipes.ForEach(t =>
                                            {
                                                _allMarkResultList.Add(new HydroMarkResultViewModel()
                                                {
                                                    Code = t.Code,
                                                    Text = $"长度:{t.Length}m"
                                                });
                                            });
                                        }
                                        break;
                                    case ePipeMarkType.Roughness:
                                        {
                                            _hydroInfo.Pipes.ForEach(t =>
                                            {
                                                _allMarkResultList.Add(new HydroMarkResultViewModel()
                                                {
                                                    Code = t.Code,
                                                    Text = $"粗糙系数:{t.Roughness}"
                                                });
                                            });
                                        }
                                        break;
                                    case ePipeMarkType.MinorLoss:
                                        {
                                            _hydroInfo.Pipes.ForEach(t =>
                                            {
                                                _allMarkResultList.Add(new HydroMarkResultViewModel()
                                                {
                                                    Code = t.Code,
                                                    Text = $"局阻系数:{t.MinorLoss}"
                                                });
                                            });
                                        }
                                        break;
                                    default: break;
                                }
                            }
                        }
                        break;
                    case Yw.Hydro.ParterCatalog.Nozzle:
                        {
                            if (_hydroInfo.Nozzles != null && _hydroInfo.Nozzles.Count > 0)
                            {
                                switch ((eNozzleMarkType)markSet.MarkType)
                                {
                                    case eNozzleMarkType.None:
                                        {
            //                            }
            //                            break;
            //                        case ePipeMarkType.PipeStatus:
            //                            {
            //                                _hydroInfo.Pipes.ForEach(t =>
            //                                {
            //                                    _allMarkResultList.Add(new HydroMarkResultViewModel()
            //                                    {
            //                                        Code = t.Code,
            //                                        Text = $"状态:{Yw.WinFrmUI.HydroLinkStatusHelper.GetStatusName(t.LinkStatus)}"
            //                                    });
            //                                });
            //                            }
            //                            break;
            //                        case ePipeMarkType.Diameter:
            //                            {
            //                                _hydroInfo.Pipes.ForEach(t =>
            //                                {
            //                                    _allMarkResultList.Add(new HydroMarkResultViewModel()
            //                                    {
            //                                        Code = t.Code,
            //                                        Text = $"直径:{t.Diameter}mm"
            //                                    });
            //                                });
            //                            }
            //                            break;
            //                        case ePipeMarkType.Length:
            //                            {
            //                                _hydroInfo.Pipes.ForEach(t =>
            //                                {
            //                                    _allMarkResultList.Add(new HydroMarkResultViewModel()
            //                                    {
            //                                        Code = t.Code,
            //                                        Text = $"长度:{t.Length}m"
            //                                    });
            //                                });
            //                            }
            //                            break;
            //                        case ePipeMarkType.Roughness:
            //                            {
            //                                _hydroInfo.Pipes.ForEach(t =>
            //                                {
            //                                    _allMarkResultList.Add(new HydroMarkResultViewModel()
            //                                    {
            //                                        Code = t.Code,
            //                                        Text = $"粗糙系数:{t.Roughness}"
            //                                    });
            //                                });
            //                            }
            //                            break;
            //                        case ePipeMarkType.MinorLoss:
            //                            {
            //                                _hydroInfo.Pipes.ForEach(t =>
            //                                {
            //                                    _allMarkResultList.Add(new HydroMarkResultViewModel()
            //                                    {
            //                                        Code = t.Code,
            //                                        Text = $"局阻系数:{t.MinorLoss}"
            //                                    });
            //                                });
            //                            }
            //                            break;
            //                        default: break;
            //                    }
            //                }
            //            }
            //            break;
            //        case Yw.Hydro.ParterCatalog.Nozzle:
            //            {
            //                if (_hydroInfo.Nozzles != null && _hydroInfo.Nozzles.Count > 0)
            //                {
            //                    switch ((eNozzleMarkType)markSet.MarkType)
            //                    {
            //                        case eNozzleMarkType.None:
            //                            {
                                        }
                                        break;
                                    case eNozzleMarkType.Elev:
                                        {
                                            _hydroInfo.Nozzles.ForEach(t =>
                                            {
                                                _allMarkResultList.Add(new HydroMarkResultViewModel()
                                                {
                                                    Code = t.Code,
                                                    Text = $"标高:{Math.Round(t.Elev, 4)}m"
                                                });
                                            });
                                        }
                                        break;
                                    case eNozzleMarkType.Demand:
                                        {
                                            _hydroInfo.Nozzles.ForEach(t =>
                                            {
                                                _allMarkResultList.Add(new HydroMarkResultViewModel()
                                                {
                                                    Code = t.Code,
                                                    Text = $"需水量:{t.Demand}m³/h"
                                                });
                                            });
                                        }
                                        break;
                                    case eNozzleMarkType.Coefficient:
                                        {
                                            _hydroInfo.Nozzles.ForEach(t =>
                                            {
                                                _allMarkResultList.Add(new HydroMarkResultViewModel()
                                                {
                                                    Code = t.Code,
                                                    Text = $"喷射系数:{t.Coefficient}"
                                                });
                                            });
                                        }
                                        break;
                                    default: break;
                                }
                            }
                        }
                        break;
                    default: break;
                }
            }
            //                            }
            //                            break;
            //                        case eNozzleMarkType.Elev:
            //                            {
            //                                _hydroInfo.Nozzles.ForEach(t =>
            //                                {
            //                                    _allMarkResultList.Add(new HydroMarkResultViewModel()
            //                                    {
            //                                        Code = t.Code,
            //                                        Text = $"标高:{Math.Round(t.Elev, 4)}m"
            //                                    });
            //                                });
            //                            }
            //                            break;
            //                        case eNozzleMarkType.Demand:
            //                            {
            //                                _hydroInfo.Nozzles.ForEach(t =>
            //                                {
            //                                    _allMarkResultList.Add(new HydroMarkResultViewModel()
            //                                    {
            //                                        Code = t.Code,
            //                                        Text = $"需水量:{t.Demand}m³/h"
            //                                    });
            //                                });
            //                            }
            //                            break;
            //                        case eNozzleMarkType.Coefficient:
            //                            {
            //                                _hydroInfo.Nozzles.ForEach(t =>
            //                                {
            //                                    _allMarkResultList.Add(new HydroMarkResultViewModel()
            //                                    {
            //                                        Code = t.Code,
            //                                        Text = $"喷射系数:{t.Coefficient}"
            //                                    });
            //                                });
            //                            }
            //                            break;
            //                        default: break;
            //                    }
            //                }
            //            }
            //            break;
            //        default: break;
            //    }
            //}
            return _allMarkResultList;
        }
@@ -2055,8 +2055,8 @@
                {
                    _allGradingApplyList.Add(new HydroGradingApplyViewModel()
                    {
                        Code = Yw.Hydro.ParterCatalog.Pump,
                        Name = Yw.WinFrmUI.HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Pump),
                        Catalog = Yw.Hydro.ParterCatalog.Pump,
                        CatalogName = Yw.WinFrmUI.HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Pump),
                        PropName = Yw.Hydro.ParterProp.LinkStatus
                    });
                }
@@ -2064,8 +2064,8 @@
                {
                    _allGradingApplyList.Add(new HydroGradingApplyViewModel()
                    {
                        Code = Yw.Hydro.ParterCatalog.Valve,
                        Name = Yw.WinFrmUI.HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Valve),
                        Catalog = Yw.Hydro.ParterCatalog.Valve,
                        CatalogName = Yw.WinFrmUI.HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Valve),
                        PropName = Yw.Hydro.ParterProp.LinkStatus
                    });
                }
@@ -2073,9 +2073,9 @@
                {
                    _allGradingApplyList.Add(new HydroGradingApplyViewModel()
                    {
                        Code = Yw.Hydro.ParterCatalog.Pipe,
                        Name = Yw.WinFrmUI.HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Pipe),
                        PropName = HydroCalcuProp.CalcuFlow
                        Catalog = Yw.Hydro.ParterCatalog.Pipe,
                        CatalogName = Yw.WinFrmUI.HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Pipe),
                        PropName = HydroVisualCalcuProp.CalcuFlow
                    });
                }
            }
@@ -2083,7 +2083,7 @@
        }
        //获取颜色分级应用结果列表
        private async Task<List<HydroGradingApplyResultViewModel>> GetGradingApplyResultList()
        private async Task<List<HydroGradingResultViewModel>> GetGradingApplyResultList()
        {
            if (_hydroInfo == null)
            {
@@ -2108,13 +2108,13 @@
            var allCalcuResultList = GetCalcuResultList();
            //所有应用结果列表
            var allGradingApplyResultList = new List<HydroGradingApplyResultViewModel>();
            var allGradingApplyResultList = new List<HydroGradingResultViewModel>();
            allGradingApplyList.ForEach(x =>
            {
                var allCatalogGradingList = allGradingList.Where(t => t.Catalog == x.Code).ToList();
                var allCatalogGradingList = allGradingList.Where(t => t.Catalog == x.Catalog).ToList();
                if (allCatalogGradingList != null || allCatalogGradingList.Count > 0)
                {
                    switch (x.Code)
                    switch (x.Catalog)
                    {
                        case Yw.Hydro.ParterCatalog.Pump:
                            {
@@ -2132,7 +2132,7 @@
                                                        var grading = gradingList.Meet(pump.LinkStatus);
                                                        if (grading != null)
                                                        {
                                                            var result = new HydroGradingApplyResultViewModel()
                                                            var result = new HydroGradingResultViewModel()
                                                            {
                                                                Code = pump.Code,
                                                                Color = grading.Color
@@ -2142,9 +2142,9 @@
                                                    }
                                                }
                                                break;
                                            case HydroCalcuProp.CalcuFlow:
                                            case HydroVisualCalcuProp.CalcuFlow:
                                                {
                                                    var gradingList = allCatalogGradingList.Where(x => x.PropName == HydroCalcuProp.CalcuFlow).OrderBy(t => t.SortCode).ToList();
                                                    var gradingList = allCatalogGradingList.Where(x => x.PropName == HydroVisualCalcuProp.CalcuFlow).OrderBy(t => t.SortCode).ToList();
                                                    if (gradingList != null && gradingList.Count > 0)
                                                    {
                                                        var calcuResult = allCalcuResultList?.Find(t => t.Code == pump.Code);
@@ -2155,7 +2155,7 @@
                                                                var grading = gradingList.Meet(Math.Abs(calcuLinkResult.CalcuFlow.Value));
                                                                if (grading != null)
                                                                {
                                                                    var result = new HydroGradingApplyResultViewModel()
                                                                    var result = new HydroGradingResultViewModel()
                                                                    {
                                                                        Code = pump.Code,
                                                                        Color = grading.Color
@@ -2167,9 +2167,9 @@
                                                    }
                                                }
                                                break;
                                            case HydroCalcuProp.CalcuVelocity:
                                            case HydroVisualCalcuProp.CalcuVelocity:
                                                {
                                                    var gradingList = allCatalogGradingList.Where(x => x.PropName == HydroCalcuProp.CalcuVelocity).OrderBy(t => t.SortCode).ToList();
                                                    var gradingList = allCatalogGradingList.Where(x => x.PropName == HydroVisualCalcuProp.CalcuVelocity).OrderBy(t => t.SortCode).ToList();
                                                    if (gradingList != null && gradingList.Count > 0)
                                                    {
                                                        var calcuResult = allCalcuResultList?.Find(t => t.Code == pump.Code);
@@ -2180,7 +2180,7 @@
                                                                var grading = gradingList.Meet(Math.Abs(calcuLinkResult.CalcuVelocity.Value));
                                                                if (grading != null)
                                                                {
                                                                    var result = new HydroGradingApplyResultViewModel()
                                                                    var result = new HydroGradingResultViewModel()
                                                                    {
                                                                        Code = pump.Code,
                                                                        Color = grading.Color
@@ -2192,9 +2192,9 @@
                                                    }
                                                }
                                                break;
                                            case HydroCalcuProp.CalcuHeadLoss:
                                            case HydroVisualCalcuProp.CalcuHeadLoss:
                                                {
                                                    var gradingList = allCatalogGradingList.Where(x => x.PropName == HydroCalcuProp.CalcuHeadLoss).OrderBy(t => t.SortCode).ToList();
                                                    var gradingList = allCatalogGradingList.Where(x => x.PropName == HydroVisualCalcuProp.CalcuHeadLoss).OrderBy(t => t.SortCode).ToList();
                                                    if (gradingList != null && gradingList.Count > 0)
                                                    {
                                                        var calcuResult = allCalcuResultList?.Find(t => t.Code == pump.Code);
@@ -2205,7 +2205,7 @@
                                                                var grading = gradingList.Meet(Math.Abs(calcuLinkResult.CalcuHeadLoss.Value));
                                                                if (grading != null)
                                                                {
                                                                    var result = new HydroGradingApplyResultViewModel()
                                                                    var result = new HydroGradingResultViewModel()
                                                                    {
                                                                        Code = pump.Code,
                                                                        Color = grading.Color
@@ -2239,7 +2239,7 @@
                                                        var grading = gradingList.Meet(valve.LinkStatus);
                                                        if (grading != null)
                                                        {
                                                            var result = new HydroGradingApplyResultViewModel()
                                                            var result = new HydroGradingResultViewModel()
                                                            {
                                                                Code = valve.Code,
                                                                Color = grading.Color
@@ -2249,9 +2249,9 @@
                                                    }
                                                }
                                                break;
                                            case HydroCalcuProp.CalcuFlow:
                                            case HydroVisualCalcuProp.CalcuFlow:
                                                {
                                                    var gradingList = allCatalogGradingList.Where(x => x.PropName == HydroCalcuProp.CalcuFlow).OrderBy(t => t.SortCode).ToList();
                                                    var gradingList = allCatalogGradingList.Where(x => x.PropName == HydroVisualCalcuProp.CalcuFlow).OrderBy(t => t.SortCode).ToList();
                                                    if (gradingList != null && gradingList.Count > 0)
                                                    {
                                                        var calcuResult = allCalcuResultList?.Find(t => t.Code == valve.Code);
@@ -2262,7 +2262,7 @@
                                                                var grading = gradingList.Meet(Math.Abs(calcuLinkResult.CalcuFlow.Value));
                                                                if (grading != null)
                                                                {
                                                                    var result = new HydroGradingApplyResultViewModel()
                                                                    var result = new HydroGradingResultViewModel()
                                                                    {
                                                                        Code = valve.Code,
                                                                        Color = grading.Color
@@ -2274,9 +2274,9 @@
                                                    }
                                                }
                                                break;
                                            case HydroCalcuProp.CalcuVelocity:
                                            case HydroVisualCalcuProp.CalcuVelocity:
                                                {
                                                    var gradingList = allCatalogGradingList.Where(x => x.PropName == HydroCalcuProp.CalcuVelocity).OrderBy(t => t.SortCode).ToList();
                                                    var gradingList = allCatalogGradingList.Where(x => x.PropName == HydroVisualCalcuProp.CalcuVelocity).OrderBy(t => t.SortCode).ToList();
                                                    if (gradingList != null && gradingList.Count > 0)
                                                    {
                                                        var calcuResult = allCalcuResultList?.Find(t => t.Code == valve.Code);
@@ -2287,7 +2287,7 @@
                                                                var grading = gradingList.Meet(Math.Abs(calcuLinkResult.CalcuVelocity.Value));
                                                                if (grading != null)
                                                                {
                                                                    var result = new HydroGradingApplyResultViewModel()
                                                                    var result = new HydroGradingResultViewModel()
                                                                    {
                                                                        Code = valve.Code,
                                                                        Color = grading.Color
@@ -2299,9 +2299,9 @@
                                                    }
                                                }
                                                break;
                                            case HydroCalcuProp.CalcuHeadLoss:
                                            case HydroVisualCalcuProp.CalcuHeadLoss:
                                                {
                                                    var gradingList = allCatalogGradingList.Where(x => x.PropName == HydroCalcuProp.CalcuHeadLoss).OrderBy(t => t.SortCode).ToList();
                                                    var gradingList = allCatalogGradingList.Where(x => x.PropName == HydroVisualCalcuProp.CalcuHeadLoss).OrderBy(t => t.SortCode).ToList();
                                                    if (gradingList != null && gradingList.Count > 0)
                                                    {
                                                        var calcuResult = allCalcuResultList?.Find(t => t.Code == valve.Code);
@@ -2312,7 +2312,7 @@
                                                                var grading = gradingList.Meet(Math.Abs(calcuLinkResult.CalcuHeadLoss.Value));
                                                                if (grading != null)
                                                                {
                                                                    var result = new HydroGradingApplyResultViewModel()
                                                                    var result = new HydroGradingResultViewModel()
                                                                    {
                                                                        Code = valve.Code,
                                                                        Color = grading.Color
@@ -2338,9 +2338,9 @@
                                    {
                                        switch (x.PropName)
                                        {
                                            case HydroCalcuProp.CalcuFlow:
                                            case HydroVisualCalcuProp.CalcuFlow:
                                                {
                                                    var gradingList = allCatalogGradingList.Where(x => x.PropName == HydroCalcuProp.CalcuFlow).OrderBy(t => t.SortCode).ToList();
                                                    var gradingList = allCatalogGradingList.Where(x => x.PropName == HydroVisualCalcuProp.CalcuFlow).OrderBy(t => t.SortCode).ToList();
                                                    if (gradingList != null && gradingList.Count > 0)
                                                    {
                                                        var calcuResult = allCalcuResultList?.Find(t => t.Code == pipe.Code);
@@ -2351,7 +2351,7 @@
                                                                var grading = gradingList.Meet(Math.Abs(calcuLinkResult.CalcuFlow.Value));
                                                                if (grading != null)
                                                                {
                                                                    var result = new HydroGradingApplyResultViewModel()
                                                                    var result = new HydroGradingResultViewModel()
                                                                    {
                                                                        Code = pipe.Code,
                                                                        Color = grading.Color
@@ -2363,9 +2363,9 @@
                                                    }
                                                }
                                                break;
                                            case HydroCalcuProp.CalcuVelocity:
                                            case HydroVisualCalcuProp.CalcuVelocity:
                                                {
                                                    var gradingList = allCatalogGradingList.Where(x => x.PropName == HydroCalcuProp.CalcuVelocity).OrderBy(t => t.SortCode).ToList();
                                                    var gradingList = allCatalogGradingList.Where(x => x.PropName == HydroVisualCalcuProp.CalcuVelocity).OrderBy(t => t.SortCode).ToList();
                                                    if (gradingList != null && gradingList.Count > 0)
                                                    {
                                                        var calcuResult = allCalcuResultList?.Find(t => t.Code == pipe.Code);
@@ -2376,7 +2376,7 @@
                                                                var grading = gradingList.Meet(Math.Abs(calcuLinkResult.CalcuVelocity.Value));
                                                                if (grading != null)
                                                                {
                                                                    var result = new HydroGradingApplyResultViewModel()
                                                                    var result = new HydroGradingResultViewModel()
                                                                    {
                                                                        Code = pipe.Code,
                                                                        Color = grading.Color
@@ -2388,9 +2388,9 @@
                                                    }
                                                }
                                                break;
                                            case HydroCalcuProp.CalcuHeadLoss:
                                            case HydroVisualCalcuProp.CalcuHeadLoss:
                                                {
                                                    var gradingList = allCatalogGradingList.Where(x => x.PropName == HydroCalcuProp.CalcuHeadLoss).OrderBy(t => t.SortCode).ToList();
                                                    var gradingList = allCatalogGradingList.Where(x => x.PropName == HydroVisualCalcuProp.CalcuHeadLoss).OrderBy(t => t.SortCode).ToList();
                                                    if (gradingList != null && gradingList.Count > 0)
                                                    {
                                                        var calcuResult = allCalcuResultList?.Find(t => t.Code == pipe.Code);
@@ -2401,7 +2401,7 @@
                                                                var grading = gradingList.Meet(Math.Abs(calcuLinkResult.CalcuHeadLoss.Value));
                                                                if (grading != null)
                                                                {
                                                                    var result = new HydroGradingApplyResultViewModel()
                                                                    var result = new HydroGradingResultViewModel()
                                                                    {
                                                                        Code = pipe.Code,
                                                                        Color = grading.Color
@@ -2428,7 +2428,7 @@
        }
        //获取颜色分级应用结果列表
        private async Task<List<HydroGradingApplyResultViewModel>> GetGradingApplyResultList(string catalog, string propName)
        private async Task<List<HydroGradingResultViewModel>> GetGradingApplyResultList(string catalog, string propName)
        {
            if (_hydroInfo == null)
            {
@@ -2455,7 +2455,7 @@
            }
            //当前分级应用
            var gradingApply = allGradingApplyList.Find(x => x.Code == catalog);
            var gradingApply = allGradingApplyList.Find(x => x.Catalog == catalog);
            if (gradingApply == null)
            {
                return default;
@@ -2466,7 +2466,7 @@
            var allCalcuResultList = GetCalcuResultList();
            //应用结果列表
            var gradingApplyResultList = new List<HydroGradingApplyResultViewModel>();
            var gradingApplyResultList = new List<HydroGradingResultViewModel>();
            switch (catalog)
            {
@@ -2486,7 +2486,7 @@
                                                var grading = gradingList.Meet(pump.LinkStatus);
                                                if (grading != null)
                                                {
                                                    var result = new HydroGradingApplyResultViewModel()
                                                    var result = new HydroGradingResultViewModel()
                                                    {
                                                        Code = pump.Code,
                                                        Color = grading.Color
@@ -2496,9 +2496,9 @@
                                            }
                                        }
                                        break;
                                    case HydroCalcuProp.CalcuFlow:
                                    case HydroVisualCalcuProp.CalcuFlow:
                                        {
                                            var gradingList = currentGradingList.Where(x => x.PropName == HydroCalcuProp.CalcuFlow).OrderBy(t => t.SortCode).ToList();
                                            var gradingList = currentGradingList.Where(x => x.PropName == HydroVisualCalcuProp.CalcuFlow).OrderBy(t => t.SortCode).ToList();
                                            if (gradingList != null && gradingList.Count > 0)
                                            {
                                                var calcuResult = allCalcuResultList?.Find(t => t.Code == pump.Code);
@@ -2509,7 +2509,7 @@
                                                        var grading = gradingList.Meet(Math.Abs(calcuLinkResult.CalcuFlow.Value));
                                                        if (grading != null)
                                                        {
                                                            var result = new HydroGradingApplyResultViewModel()
                                                            var result = new HydroGradingResultViewModel()
                                                            {
                                                                Code = pump.Code,
                                                                Color = grading.Color
@@ -2521,9 +2521,9 @@
                                            }
                                        }
                                        break;
                                    case HydroCalcuProp.CalcuVelocity:
                                    case HydroVisualCalcuProp.CalcuVelocity:
                                        {
                                            var gradingList = currentGradingList.Where(x => x.PropName == HydroCalcuProp.CalcuVelocity).OrderBy(t => t.SortCode).ToList();
                                            var gradingList = currentGradingList.Where(x => x.PropName == HydroVisualCalcuProp.CalcuVelocity).OrderBy(t => t.SortCode).ToList();
                                            if (gradingList != null && gradingList.Count > 0)
                                            {
                                                var calcuResult = allCalcuResultList?.Find(t => t.Code == pump.Code);
@@ -2534,7 +2534,7 @@
                                                        var grading = gradingList.Meet(Math.Abs(calcuLinkResult.CalcuVelocity.Value));
                                                        if (grading != null)
                                                        {
                                                            var result = new HydroGradingApplyResultViewModel()
                                                            var result = new HydroGradingResultViewModel()
                                                            {
                                                                Code = pump.Code,
                                                                Color = grading.Color
@@ -2546,9 +2546,9 @@
                                            }
                                        }
                                        break;
                                    case HydroCalcuProp.CalcuHeadLoss:
                                    case HydroVisualCalcuProp.CalcuHeadLoss:
                                        {
                                            var gradingList = currentGradingList.Where(x => x.PropName == HydroCalcuProp.CalcuHeadLoss).OrderBy(t => t.SortCode).ToList();
                                            var gradingList = currentGradingList.Where(x => x.PropName == HydroVisualCalcuProp.CalcuHeadLoss).OrderBy(t => t.SortCode).ToList();
                                            if (gradingList != null && gradingList.Count > 0)
                                            {
                                                var calcuResult = allCalcuResultList?.Find(t => t.Code == pump.Code);
@@ -2559,7 +2559,7 @@
                                                        var grading = gradingList.Meet(Math.Abs(calcuLinkResult.CalcuHeadLoss.Value));
                                                        if (grading != null)
                                                        {
                                                            var result = new HydroGradingApplyResultViewModel()
                                                            var result = new HydroGradingResultViewModel()
                                                            {
                                                                Code = pump.Code,
                                                                Color = grading.Color
@@ -2593,7 +2593,7 @@
                                                var grading = gradingList.Meet(valve.LinkStatus);
                                                if (grading != null)
                                                {
                                                    var result = new HydroGradingApplyResultViewModel()
                                                    var result = new HydroGradingResultViewModel()
                                                    {
                                                        Code = valve.Code,
                                                        Color = grading.Color
@@ -2603,9 +2603,9 @@
                                            }
                                        }
                                        break;
                                    case HydroCalcuProp.CalcuFlow:
                                    case HydroVisualCalcuProp.CalcuFlow:
                                        {
                                            var gradingList = currentGradingList.Where(x => x.PropName == HydroCalcuProp.CalcuFlow).OrderBy(t => t.SortCode).ToList();
                                            var gradingList = currentGradingList.Where(x => x.PropName == HydroVisualCalcuProp.CalcuFlow).OrderBy(t => t.SortCode).ToList();
                                            if (gradingList != null && gradingList.Count > 0)
                                            {
                                                var calcuResult = allCalcuResultList?.Find(t => t.Code == valve.Code);
@@ -2616,7 +2616,7 @@
                                                        var grading = gradingList.Meet(Math.Abs(calcuLinkResult.CalcuFlow.Value));
                                                        if (grading != null)
                                                        {
                                                            var result = new HydroGradingApplyResultViewModel()
                                                            var result = new HydroGradingResultViewModel()
                                                            {
                                                                Code = valve.Code,
                                                                Color = grading.Color
@@ -2628,9 +2628,9 @@
                                            }
                                        }
                                        break;
                                    case HydroCalcuProp.CalcuVelocity:
                                    case HydroVisualCalcuProp.CalcuVelocity:
                                        {
                                            var gradingList = currentGradingList.Where(x => x.PropName == HydroCalcuProp.CalcuVelocity).OrderBy(t => t.SortCode).ToList();
                                            var gradingList = currentGradingList.Where(x => x.PropName == HydroVisualCalcuProp.CalcuVelocity).OrderBy(t => t.SortCode).ToList();
                                            if (gradingList != null && gradingList.Count > 0)
                                            {
                                                var calcuResult = allCalcuResultList?.Find(t => t.Code == valve.Code);
@@ -2641,7 +2641,7 @@
                                                        var grading = gradingList.Meet(Math.Abs(calcuLinkResult.CalcuVelocity.Value));
                                                        if (grading != null)
                                                        {
                                                            var result = new HydroGradingApplyResultViewModel()
                                                            var result = new HydroGradingResultViewModel()
                                                            {
                                                                Code = valve.Code,
                                                                Color = grading.Color
@@ -2653,9 +2653,9 @@
                                            }
                                        }
                                        break;
                                    case HydroCalcuProp.CalcuHeadLoss:
                                    case HydroVisualCalcuProp.CalcuHeadLoss:
                                        {
                                            var gradingList = currentGradingList.Where(x => x.PropName == HydroCalcuProp.CalcuHeadLoss).OrderBy(t => t.SortCode).ToList();
                                            var gradingList = currentGradingList.Where(x => x.PropName == HydroVisualCalcuProp.CalcuHeadLoss).OrderBy(t => t.SortCode).ToList();
                                            if (gradingList != null && gradingList.Count > 0)
                                            {
                                                var calcuResult = allCalcuResultList?.Find(t => t.Code == valve.Code);
@@ -2666,7 +2666,7 @@
                                                        var grading = gradingList.Meet(Math.Abs(calcuLinkResult.CalcuHeadLoss.Value));
                                                        if (grading != null)
                                                        {
                                                            var result = new HydroGradingApplyResultViewModel()
                                                            var result = new HydroGradingResultViewModel()
                                                            {
                                                                Code = valve.Code,
                                                                Color = grading.Color
@@ -2692,9 +2692,9 @@
                            {
                                switch (propName)
                                {
                                    case HydroCalcuProp.CalcuFlow:
                                    case HydroVisualCalcuProp.CalcuFlow:
                                        {
                                            var gradingList = currentGradingList.Where(x => x.PropName == HydroCalcuProp.CalcuFlow).OrderBy(t => t.SortCode).ToList();
                                            var gradingList = currentGradingList.Where(x => x.PropName == HydroVisualCalcuProp.CalcuFlow).OrderBy(t => t.SortCode).ToList();
                                            if (gradingList != null && gradingList.Count > 0)
                                            {
                                                var calcuResult = allCalcuResultList?.Find(t => t.Code == pipe.Code);
@@ -2705,7 +2705,7 @@
                                                        var grading = gradingList.Meet(Math.Abs(calcuLinkResult.CalcuFlow.Value));
                                                        if (grading != null)
                                                        {
                                                            var result = new HydroGradingApplyResultViewModel()
                                                            var result = new HydroGradingResultViewModel()
                                                            {
                                                                Code = pipe.Code,
                                                                Color = grading.Color
@@ -2717,9 +2717,9 @@
                                            }
                                        }
                                        break;
                                    case HydroCalcuProp.CalcuVelocity:
                                    case HydroVisualCalcuProp.CalcuVelocity:
                                        {
                                            var gradingList = currentGradingList.Where(x => x.PropName == HydroCalcuProp.CalcuVelocity).OrderBy(t => t.SortCode).ToList();
                                            var gradingList = currentGradingList.Where(x => x.PropName == HydroVisualCalcuProp.CalcuVelocity).OrderBy(t => t.SortCode).ToList();
                                            if (gradingList != null && gradingList.Count > 0)
                                            {
                                                var calcuResult = allCalcuResultList?.Find(t => t.Code == pipe.Code);
@@ -2730,7 +2730,7 @@
                                                        var grading = gradingList.Meet(Math.Abs(calcuLinkResult.CalcuVelocity.Value));
                                                        if (grading != null)
                                                        {
                                                            var result = new HydroGradingApplyResultViewModel()
                                                            var result = new HydroGradingResultViewModel()
                                                            {
                                                                Code = pipe.Code,
                                                                Color = grading.Color
@@ -2742,9 +2742,9 @@
                                            }
                                        }
                                        break;
                                    case HydroCalcuProp.CalcuHeadLoss:
                                    case HydroVisualCalcuProp.CalcuHeadLoss:
                                        {
                                            var gradingList = currentGradingList.Where(x => x.PropName == HydroCalcuProp.CalcuHeadLoss).OrderBy(t => t.SortCode).ToList();
                                            var gradingList = currentGradingList.Where(x => x.PropName == HydroVisualCalcuProp.CalcuHeadLoss).OrderBy(t => t.SortCode).ToList();
                                            if (gradingList != null && gradingList.Count > 0)
                                            {
                                                var calcuResult = allCalcuResultList?.Find(t => t.Code == pipe.Code);
@@ -2755,7 +2755,7 @@
                                                        var grading = gradingList.Meet(Math.Abs(calcuLinkResult.CalcuHeadLoss.Value));
                                                        if (grading != null)
                                                        {
                                                            var result = new HydroGradingApplyResultViewModel()
                                                            var result = new HydroGradingResultViewModel()
                                                            {
                                                                Code = pipe.Code,
                                                                Color = grading.Color