using Yw.WinFrmUI.Hydro;
|
|
namespace Yw.WinFrmUI
|
{
|
/// <summary>
|
/// 标注辅助类
|
/// </summary>
|
public class HydroMarkHelper
|
{
|
/// <summary>
|
/// 获取设置列表
|
/// </summary>
|
public static List<HydroMarkSetViewModel> GetSetList(Yw.Model.HydroModelInfo hydroInfo)
|
{
|
if (hydroInfo == null)
|
{
|
return default;
|
}
|
var list = new List<HydroMarkSetViewModel>();
|
if (hydroInfo.Reservoirs != null && hydroInfo.Reservoirs.Count > 0)
|
{
|
list.Add(new HydroMarkSetViewModel()
|
{
|
Catalog = Yw.Hydro.ParterCatalog.Reservoir,
|
CatalogName = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Reservoir),
|
PropName = HydroMarkProp.None
|
});
|
}
|
if (hydroInfo.Tanks != null && hydroInfo.Tanks.Count > 0)
|
{
|
list.Add(new HydroMarkSetViewModel()
|
{
|
Catalog = Yw.Hydro.ParterCatalog.Tank,
|
CatalogName = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Tank),
|
PropName = HydroMarkProp.None
|
});
|
}
|
if (hydroInfo.Waterboxs != null && hydroInfo.Waterboxs.Count > 0)
|
{
|
list.Add(new HydroMarkSetViewModel()
|
{
|
Catalog = Yw.Hydro.ParterCatalog.Waterbox,
|
CatalogName = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Waterbox),
|
PropName = HydroMarkProp.None
|
});
|
}
|
if (hydroInfo.Pipes != null && hydroInfo.Pipes.Count > 0)
|
{
|
list.Add(new HydroMarkSetViewModel()
|
{
|
Catalog = Yw.Hydro.ParterCatalog.Pipe,
|
CatalogName = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Pipe),
|
PropName = HydroMarkProp.None
|
});
|
}
|
if (hydroInfo.Translations != null && hydroInfo.Translations.Count > 0)
|
{
|
list.Add(new HydroMarkSetViewModel()
|
{
|
Catalog = Yw.Hydro.ParterCatalog.Translation,
|
CatalogName = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Translation),
|
PropName = HydroMarkProp.None
|
});
|
}
|
if (hydroInfo.Pumps != null && hydroInfo.Pumps.Count > 0)
|
{
|
list.Add(new HydroMarkSetViewModel()
|
{
|
Catalog = Yw.Hydro.ParterCatalog.Pump,
|
CatalogName = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Pump),
|
PropName = HydroMarkProp.None
|
});
|
}
|
if (hydroInfo.Valves != null && hydroInfo.Valves.Count > 0)
|
{
|
list.Add(new HydroMarkSetViewModel()
|
{
|
Catalog = Yw.Hydro.ParterCatalog.Valve,
|
CatalogName = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Valve),
|
PropName = HydroMarkProp.None
|
});
|
}
|
if (hydroInfo.Exchangers != null && hydroInfo.Exchangers.Count > 0)
|
{
|
list.Add(new HydroMarkSetViewModel()
|
{
|
Catalog = Yw.Hydro.ParterCatalog.Exchanger,
|
CatalogName = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Exchanger),
|
PropName = HydroMarkProp.None
|
});
|
}
|
if (hydroInfo.Nozzles != null && hydroInfo.Nozzles.Count > 0)
|
{
|
list.Add(new HydroMarkSetViewModel()
|
{
|
Catalog = Yw.Hydro.ParterCatalog.Nozzle,
|
CatalogName = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Nozzle),
|
PropName = HydroMarkProp.None
|
});
|
}
|
if (hydroInfo.Hydrants != null && hydroInfo.Hydrants.Count > 0)
|
{
|
list.Add(new HydroMarkSetViewModel()
|
{
|
Catalog = Yw.Hydro.ParterCatalog.Hydrant,
|
CatalogName = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Hydrant),
|
PropName = HydroMarkProp.None
|
});
|
}
|
return list;
|
}
|
|
/// <summary>
|
/// 获取结果列表
|
/// </summary>
|
public static List<HydroMarkResultViewModel> GetResultList(Yw.Model.HydroModelInfo hydroInfo, List<HydroMarkSetViewModel> allSetList)
|
{
|
if (hydroInfo == null)
|
{
|
return default;
|
}
|
if (allSetList == null || allSetList.Count < 1)
|
{
|
return default;
|
}
|
var list = new List<HydroMarkResultViewModel>();
|
foreach (var set in allSetList)
|
{
|
switch (set.Catalog)
|
{
|
case Yw.Hydro.ParterCatalog.Reservoir:
|
{
|
if (hydroInfo.Reservoirs != null && hydroInfo.Reservoirs.Count > 0)
|
{
|
switch (set.PropName)
|
{
|
case Yw.Hydro.ParterProp.PoolElev:
|
{
|
hydroInfo.Reservoirs.ForEach(t =>
|
{
|
if (t.PoolElev.HasValue)
|
{
|
list.Add(new HydroMarkResultViewModel()
|
{
|
Code = t.Code,
|
Text = $"池底标高:{Math.Round(t.PoolElev.Value, 4)}m"
|
});
|
}
|
});
|
}
|
break;
|
case Yw.Hydro.ParterProp.Head:
|
{
|
hydroInfo.Reservoirs.ForEach(t =>
|
{
|
list.Add(new HydroMarkResultViewModel()
|
{
|
Code = t.Code,
|
Text = $"总水头:{Math.Round(t.Head, 2)}m"
|
});
|
});
|
}
|
break;
|
default: break;
|
}
|
}
|
}
|
break;
|
case Yw.Hydro.ParterCatalog.Tank:
|
{
|
if (hydroInfo.Tanks != null && hydroInfo.Tanks.Count > 0)
|
{
|
switch (set.PropName)
|
{
|
case Yw.Hydro.ParterProp.PoolElev:
|
{
|
hydroInfo.Tanks.ForEach(t =>
|
{
|
list.Add(new HydroMarkResultViewModel()
|
{
|
Code = t.Code,
|
Text = $"池底标高:{Math.Round(t.PoolElev, 4)}m"
|
});
|
});
|
}
|
break;
|
case Yw.Hydro.ParterProp.InitLevel:
|
{
|
hydroInfo.Tanks.ForEach(t =>
|
{
|
list.Add(new HydroMarkResultViewModel()
|
{
|
Code = t.Code,
|
Text = $"初始水位:{Math.Round(t.InitLevel, 4)}m"
|
});
|
});
|
}
|
break;
|
case Yw.Hydro.ParterProp.MinLevel:
|
{
|
hydroInfo.Tanks.ForEach(t =>
|
{
|
list.Add(new HydroMarkResultViewModel()
|
{
|
Code = t.Code,
|
Text = $"最小水位:{Math.Round(t.MinLevel, 4)}m"
|
});
|
});
|
}
|
break;
|
case Yw.Hydro.ParterProp.MaxLevel:
|
{
|
hydroInfo.Tanks.ForEach(t =>
|
{
|
list.Add(new HydroMarkResultViewModel()
|
{
|
Code = t.Code,
|
Text = $"最高水位:{Math.Round(t.MaxLevel, 4)}m"
|
});
|
});
|
}
|
break;
|
case Yw.Hydro.ParterProp.DN:
|
{
|
hydroInfo.Tanks.ForEach(t =>
|
{
|
list.Add(new HydroMarkResultViewModel()
|
{
|
Code = t.Code,
|
Text = $"公称直径:{Math.Round(t.DN, 4)}m"
|
});
|
});
|
}
|
break;
|
case Yw.Hydro.ParterProp.MinVol:
|
{
|
hydroInfo.Tanks.ForEach(t =>
|
{
|
list.Add(new HydroMarkResultViewModel()
|
{
|
Code = t.Code,
|
Text = $"最小容积:{Math.Round(t.MinVol, 1)}m"
|
});
|
});
|
}
|
break;
|
default: break;
|
}
|
}
|
}
|
break;
|
case Yw.Hydro.ParterCatalog.Waterbox:
|
{
|
if (hydroInfo.Waterboxs != null && hydroInfo.Waterboxs.Count > 0)
|
{
|
switch (set.PropName)
|
{
|
case Yw.Hydro.ParterProp.PoolElev:
|
{
|
hydroInfo.Waterboxs.ForEach(t =>
|
{
|
list.Add(new HydroMarkResultViewModel()
|
{
|
Code = t.Code,
|
Text = $"池底标高:{Math.Round(t.PoolElev, 4)}m"
|
});
|
});
|
}
|
break;
|
case Yw.Hydro.ParterProp.InitLevel:
|
{
|
hydroInfo.Waterboxs.ForEach(t =>
|
{
|
list.Add(new HydroMarkResultViewModel()
|
{
|
Code = t.Code,
|
Text = $"初始水位:{Math.Round(t.InitLevel, 4)}m"
|
});
|
});
|
}
|
break;
|
case Yw.Hydro.ParterProp.MinLevel:
|
{
|
hydroInfo.Waterboxs.ForEach(t =>
|
{
|
list.Add(new HydroMarkResultViewModel()
|
{
|
Code = t.Code,
|
Text = $"最小水位:{Math.Round(t.MinLevel, 4)}m"
|
});
|
});
|
}
|
break;
|
case Yw.Hydro.ParterProp.MaxLevel:
|
{
|
hydroInfo.Waterboxs.ForEach(t =>
|
{
|
list.Add(new HydroMarkResultViewModel()
|
{
|
Code = t.Code,
|
Text = $"最高水位:{Math.Round(t.MaxLevel, 4)}m"
|
});
|
});
|
}
|
break;
|
case Yw.Hydro.ParterProp.DN:
|
{
|
hydroInfo.Waterboxs.ForEach(t =>
|
{
|
list.Add(new HydroMarkResultViewModel()
|
{
|
Code = t.Code,
|
Text = $"公称直径:{Math.Round(t.DN, 4)}m"
|
});
|
});
|
}
|
break;
|
case Yw.Hydro.ParterProp.MinVol:
|
{
|
hydroInfo.Waterboxs.ForEach(t =>
|
{
|
list.Add(new HydroMarkResultViewModel()
|
{
|
Code = t.Code,
|
Text = $"最小容积:{Math.Round(t.MinVol, 1)}m"
|
});
|
});
|
}
|
break;
|
default: break;
|
}
|
}
|
}
|
break;
|
case Yw.Hydro.ParterCatalog.Pipe:
|
{
|
if (hydroInfo.Pipes != null && hydroInfo.Pipes.Count > 0)
|
{
|
switch (set.PropName)
|
{
|
case Yw.Hydro.ParterProp.Diameter:
|
{
|
hydroInfo.Pipes.ForEach(t =>
|
{
|
list.Add(new HydroMarkResultViewModel()
|
{
|
Code = t.Code,
|
Text = $"直径:{Math.Round(t.Diameter, 1)}mm"
|
});
|
});
|
}
|
break;
|
case Yw.Hydro.ParterProp.Length:
|
{
|
hydroInfo.Pipes.ForEach(t =>
|
{
|
list.Add(new HydroMarkResultViewModel()
|
{
|
Code = t.Code,
|
Text = $"长度:{Math.Round(t.Length, 4)}m"
|
});
|
});
|
}
|
break;
|
case Yw.Hydro.ParterProp.Roughness:
|
{
|
hydroInfo.Pipes.ForEach(t =>
|
{
|
list.Add(new HydroMarkResultViewModel()
|
{
|
Code = t.Code,
|
Text = $"粗糙系数:{Math.Round(t.Roughness, 1)}"
|
});
|
});
|
}
|
break;
|
case Yw.Hydro.ParterProp.MinorLoss:
|
{
|
hydroInfo.Pipes.ForEach(t =>
|
{
|
list.Add(new HydroMarkResultViewModel()
|
{
|
Code = t.Code,
|
Text = $"局阻系数:{Math.Round(t.MinorLoss, 1)}"
|
});
|
});
|
}
|
break;
|
default: break;
|
}
|
}
|
}
|
break;
|
case Yw.Hydro.ParterCatalog.Translation:
|
{
|
if (hydroInfo.Translations != null && hydroInfo.Translations.Count > 0)
|
{
|
switch (set.PropName)
|
{
|
case Yw.Hydro.ParterProp.Diameter:
|
{
|
hydroInfo.Translations.ForEach(t =>
|
{
|
list.Add(new HydroMarkResultViewModel()
|
{
|
Code = t.Code,
|
Text = $"直径:{Math.Round(t.Diameter, 1)}mm"
|
});
|
});
|
}
|
break;
|
case Yw.Hydro.ParterProp.Length:
|
{
|
hydroInfo.Translations.ForEach(t =>
|
{
|
list.Add(new HydroMarkResultViewModel()
|
{
|
Code = t.Code,
|
Text = $"长度:{Math.Round(t.Length, 4)}m"
|
});
|
});
|
}
|
break;
|
case Yw.Hydro.ParterProp.Roughness:
|
{
|
hydroInfo.Translations.ForEach(t =>
|
{
|
list.Add(new HydroMarkResultViewModel()
|
{
|
Code = t.Code,
|
Text = $"粗糙系数:{Math.Round(t.Roughness, 1)}"
|
});
|
});
|
}
|
break;
|
case Yw.Hydro.ParterProp.MinorLoss:
|
{
|
hydroInfo.Translations.ForEach(t =>
|
{
|
list.Add(new HydroMarkResultViewModel()
|
{
|
Code = t.Code,
|
Text = $"局阻系数:{Math.Round(t.MinorLoss, 1)}"
|
});
|
});
|
}
|
break;
|
default: break;
|
}
|
}
|
}
|
break;
|
case Yw.Hydro.ParterCatalog.Pump:
|
{
|
if (hydroInfo.Pumps != null && hydroInfo.Pumps.Count > 0)
|
{
|
switch (set.PropName)
|
{
|
case Yw.Hydro.ParterProp.LinkStatus:
|
{
|
hydroInfo.Pumps.ForEach(t =>
|
{
|
list.Add(new HydroMarkResultViewModel()
|
{
|
Code = t.Code,
|
Text = $"开机状态:{Yw.WinFrmUI.HydroLinkStatusHelper.GetStatusName(t.LinkStatus)}"
|
});
|
});
|
}
|
break;
|
case Yw.Hydro.ParterProp.RatedQ:
|
{
|
hydroInfo.Pumps.ForEach(t =>
|
{
|
list.Add(new HydroMarkResultViewModel()
|
{
|
Code = t.Code,
|
Text = $"额定流量:{t.RatedQ}m³/h"
|
});
|
});
|
}
|
break;
|
case Yw.Hydro.ParterProp.RatedH:
|
{
|
hydroInfo.Pumps.ForEach(t =>
|
{
|
list.Add(new HydroMarkResultViewModel()
|
{
|
Code = t.Code,
|
Text = $"额定扬程:{t.RatedH}m"
|
});
|
});
|
}
|
break;
|
case Yw.Hydro.ParterProp.RatedP:
|
{
|
hydroInfo.Pumps.ForEach(t =>
|
{
|
list.Add(new HydroMarkResultViewModel()
|
{
|
Code = t.Code,
|
Text = $"额定功率:{t.RatedP}kW"
|
});
|
});
|
}
|
break;
|
case Yw.Hydro.ParterProp.RatedN:
|
{
|
hydroInfo.Pumps.ForEach(t =>
|
{
|
list.Add(new HydroMarkResultViewModel()
|
{
|
Code = t.Code,
|
Text = $"额定转速:{t.RatedN}r/min"
|
});
|
});
|
}
|
break;
|
case Yw.Hydro.ParterProp.CurrentHz:
|
{
|
hydroInfo.Pumps.ForEach(t =>
|
{
|
list.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 (set.PropName)
|
{
|
case Yw.Hydro.ParterProp.LinkStatus:
|
{
|
hydroInfo.Valves.ForEach(t =>
|
{
|
list.Add(new HydroMarkResultViewModel()
|
{
|
Code = t.Code,
|
Text = $"阀门状态:{HydroLinkStatusHelper.GetStatusName(t.LinkStatus)}"
|
});
|
});
|
}
|
break;
|
case Yw.Hydro.ParterProp.ValveType:
|
{
|
hydroInfo.Valves.ForEach(t =>
|
{
|
list.Add(new HydroMarkResultViewModel()
|
{
|
Code = t.Code,
|
Text = $"阀门类型:{HydroValveTypeHelper.GetTypeName(t.ValveType)}"
|
});
|
});
|
}
|
break;
|
case Yw.Hydro.ParterProp.OpeningDegree:
|
{
|
hydroInfo.Valves.ForEach(t =>
|
{
|
list.Add(new HydroMarkResultViewModel()
|
{
|
Code = t.Code,
|
Text = $"阀门开度:{t.OpeningDegree}%"
|
});
|
});
|
}
|
break;
|
case Yw.Hydro.ParterProp.Diameter:
|
{
|
hydroInfo.Valves.ForEach(t =>
|
{
|
list.Add(new HydroMarkResultViewModel()
|
{
|
Code = t.Code,
|
Text = $"直径:{t.Diameter}mm"
|
});
|
});
|
}
|
break;
|
case Yw.Hydro.ParterProp.MinorLoss:
|
{
|
hydroInfo.Valves.ForEach(t =>
|
{
|
list.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 (set.PropName)
|
{
|
case Yw.Hydro.ParterProp.Elev:
|
{
|
hydroInfo.Nozzles.ForEach(t =>
|
{
|
list.Add(new HydroMarkResultViewModel()
|
{
|
Code = t.Code,
|
Text = $"标高:{Math.Round(t.Elev, 4)}m"
|
});
|
});
|
}
|
break;
|
case Yw.Hydro.ParterProp.Demand:
|
{
|
hydroInfo.Nozzles.ForEach(t =>
|
{
|
if (t.Demand.HasValue)
|
{
|
list.Add(new HydroMarkResultViewModel()
|
{
|
Code = t.Code,
|
Text = $"需水量:{t.Demand}m³/h"
|
});
|
}
|
});
|
}
|
break;
|
case Yw.Hydro.ParterProp.Coefficient:
|
{
|
hydroInfo.Nozzles.ForEach(t =>
|
{
|
list.Add(new HydroMarkResultViewModel()
|
{
|
Code = t.Code,
|
Text = $"喷射系数:{t.Coefficient}"
|
});
|
});
|
}
|
break;
|
default: break;
|
}
|
}
|
}
|
break;
|
default: break;
|
}
|
}
|
return list;
|
}
|
}
|
}
|