duheng
2025-02-19 ad8f813f5eddd66740b4e09801e4ea02ddf70a4a
WinFrmUI/HStation.WinFrmUI.Hydro.Core/00-core/HydroQ3dTransferHelper.cs
@@ -1,10 +1,4 @@
using HyView = Hydro.MapView;
using HyCore = Hydro.Core.Model;
using System.Globalization;
using static Hydro.Core.ObjectEnum;
using Hydro.MapView;
namespace HStation.WinFrmUI
namespace HStation.WinFrmUI
{
    /// <summary>
    /// 
@@ -16,35 +10,35 @@
        /// </summary>
        /// <param name="info">模型信息</param>
        /// <returns></returns>
        public static HyView.MapViewNetWork Transfer(Yw.Model.HydroModelInfo info)
        public static object Transfer(Yw.Model.HydroModelInfo info)
        {
            if (info == null)
            {
                return default;
            }
            var netWork = new HyView.MapViewNetWork();
            netWork.Nodes = new HyView.NodeViewModelList();
            netWork.Links = new HyView.LinkViewModelList();
            //var netWork = new HyView.MapViewNetWork();
            //netWork.Nodes = new HyView.NodeViewModelList();
            //netWork.Links = new HyView.LinkViewModelList();
            //连接节点
            if (info.Junctions != null && info.Junctions.Count > 0)
            {
                foreach (var junction in info.Junctions)
                {
                    var junctionModel = new HyView.JunctionViewModel();
                    junctionModel.ID = junction.Code;
                    junctionModel.Name = junction.Name;
                    junctionModel.X = (float)junction.Position3d.X;
                    junctionModel.Y = (float)junction.Position3d.Y;
                    //junctionModel.Z = (float)junction.Position3d.Z;
                    junctionModel.Position3D = new HyView.PointF3D((float)junction.Position3d.X, (float)junction.Position3d.Y, (float)junction.Position3d.Z);
                    junctionModel.Elev = (float)junction.Elev;
                    junctionModel.Demand = junction.Demand.HasValue ? (float)junction.Demand.Value : 0;
                    junctionModel.PatternID = junction.DemandPattern;
                    junctionModel.Status = StatusType.DEFAULT;
                    netWork.Nodes.Add(junctionModel);
                    //var junctionModel = new HyView.JunctionViewModel();
                    //junctionModel.UserID = junction.Code;
                    //junctionModel.Name = junction.Name;
                    //junctionModel.X = (float)junction.Position3d.X;
                    //junctionModel.Y = (float)junction.Position3d.Y;
                    ////junctionModel.Z = (float)junction.Position3d.Z;
                    //junctionModel.Position3D = new HyView.PointF3D((float)junction.Position3d.X, (float)junction.Position3d.Y, (float)junction.Position3d.Z);
                    //junctionModel.Elev = (float)junction.Elev;
                    //junctionModel.Demand = junction.Demand.HasValue ? (float)junction.Demand.Value : 0;
                    //junctionModel.PatternID = junction.DemandPattern;
                    ////junctionModel.Status = StatusType.DEFAULT;
                    //netWork.Nodes.Add(junctionModel);
                    netWork.Nodes.Add(junctionModel);
                    //netWork.Nodes.Add(junctionModel);
                }
            }
@@ -53,17 +47,17 @@
            {
                foreach (var reservoir in info.Reservoirs)
                {
                    var reservoirModel = new HyView.ReservoirViewModel();
                    reservoirModel.ID = reservoir.Code;
                    reservoirModel.Name = reservoir.Name;
                    reservoirModel.X = (float)reservoir.Position3d.X;
                    reservoirModel.Y = (float)reservoir.Position3d.Y;
                    //reservoirModel.Z = (float)reservoir.Position3d.Z;
                    reservoirModel.Demand = 0;
                    reservoirModel.Head = (float)reservoir.Head;
                    reservoirModel.PatternID = reservoir.HeadPattern;
                    reservoirModel.Position3D = new HyView.PointF3D((float)reservoir.Position3d.X, (float)reservoir.Position3d.Y, (float)reservoir.Position3d.Z);
                    netWork.Nodes.Add(reservoirModel);
                    //var reservoirModel = new HyView.ReservoirViewModel();
                    //reservoirModel.UserID = reservoir.Code;
                    //reservoirModel.Name = reservoir.Name;
                    //reservoirModel.X = (float)reservoir.Position3d.X;
                    //reservoirModel.Y = (float)reservoir.Position3d.Y;
                    ////reservoirModel.Z = (float)reservoir.Position3d.Z;
                    //reservoirModel.Demand = 0;
                    //reservoirModel.Head = (float)reservoir.Head;
                    //reservoirModel.PatternID = reservoir.HeadPattern;
                    //reservoirModel.Position3D = new HyView.PointF3D((float)reservoir.Position3d.X, (float)reservoir.Position3d.Y, (float)reservoir.Position3d.Z);
                    //netWork.Nodes.Add(reservoirModel);
                }
            }
@@ -72,22 +66,22 @@
            {
                foreach (var tank in info.Tanks)
                {
                    var tankModel = new HyView.TankViewModel();
                    tankModel.ID = tank.Code;
                    tankModel.Name = tank.Name;
                    tankModel.X = (float)tank.Position3d.X;
                    tankModel.Y = (float)tank.Position3d.Y;
                    //tankModel.Z = (float)tank.Position3d.Z;
                    tankModel.Demand = 0;
                    tankModel.Diameter = (float)tank.Diameter;
                    tankModel.Elev = (float)tank.PoolElev;
                    tankModel.InitLevel = (float)tank.InitLevel;
                    tankModel.MinLevel = (float)tank.MinLevel;
                    tankModel.MaxLevel = (float)tank.MaxLevel;
                    tankModel.MinVol = (float)tank.MinVol;
                    tankModel.VolCurve = tank.VolCurve;
                    tankModel.Position3D = new HyView.PointF3D((float)tank.Position3d.X, (float)tank.Position3d.Y, (float)tank.Position3d.Z);
                    netWork.Nodes.Add(tankModel);
                    //var tankModel = new HyView.TankViewModel();
                    //tankModel.UserID = tank.Code;
                    //tankModel.Name = tank.Name;
                    //tankModel.X = (float)tank.Position3d.X;
                    //tankModel.Y = (float)tank.Position3d.Y;
                    ////tankModel.Z = (float)tank.Position3d.Z;
                    //tankModel.Demand = 0;
                    //tankModel.Diameter = (float)tank.Diameter;
                    //tankModel.Elev = (float)tank.PoolElev;
                    //tankModel.InitLevel = (float)tank.InitLevel;
                    //tankModel.MinLevel = (float)tank.MinLevel;
                    //tankModel.MaxLevel = (float)tank.MaxLevel;
                    //tankModel.MinVol = (float)tank.MinVol;
                    //tankModel.VolCurve = tank.VolCurve;
                    //tankModel.Position3D = new HyView.PointF3D((float)tank.Position3d.X, (float)tank.Position3d.Y, (float)tank.Position3d.Z);
                    //netWork.Nodes.Add(tankModel);
                }
            }
@@ -96,18 +90,18 @@
            {
                foreach (var pipe in info.Pipes)
                {
                    var pipeModel = new HyView.PipeViewModel();
                    pipeModel.ID = pipe.Code;
                    pipeModel.Name = pipe.Name;
                    pipeModel.Status = StatusType.OPEN;
                    pipeModel.StartNode = netWork.Nodes.Find(x => x.ID == pipe.StartCode);
                    pipeModel.EndNode = netWork.Nodes.Find(x => x.ID == pipe.EndCode);
                    pipeModel.Diameter = (float)pipe.Diameter;
                    pipeModel.Length = (float)pipe.Length;
                    pipeModel.Roughness = (float)pipe.Roughness;
                    pipeModel.MinorLoss = (float)pipe.MinorLoss;
                    //var pipeModel = new HyView.PipeViewModel();
                    //pipeModel.UserID = pipe.Code;
                    //pipeModel.Name = pipe.Name;
                    //// pipeModel.Status = StatusType.OPEN;
                    //pipeModel.StartNode = netWork.Nodes.Find(x => x.UserID == pipe.StartCode);
                    //pipeModel.EndNode = netWork.Nodes.Find(x => x.UserID == pipe.EndCode);
                    //pipeModel.Diameter = (float)pipe.Diameter;
                    //pipeModel.Length = (float)pipe.Length;
                    //pipeModel.Roughness = (float)pipe.Roughness;
                    //pipeModel.MinorLoss = (float)pipe.MinorLoss;
                    netWork.Links.Add(pipeModel);
                    //netWork.Links.Add(pipeModel);
                }
            }
@@ -117,16 +111,16 @@
            {
                foreach (var pump in info.Pumps)
                {
                    var pumpModel = new HyView.PumpViewModel();
                    pumpModel.ID = pump.Code;
                    pumpModel.Name = pump.Name;
                    pumpModel.Status = StatusType.OPEN;
                    pumpModel.StartNode = netWork.Nodes.Find(x => x.ID == pump.StartCode);
                    pumpModel.EndNode = netWork.Nodes.Find(x => x.ID == pump.EndCode);
                    pumpModel.HeadCurve = pump.CurveQH;
                    //var pumpModel = new HyView.PumpViewModel();
                    //pumpModel.UserID = pump.Code;
                    //pumpModel.Name = pump.Name;
                    ////pumpModel.Status = StatusType.OPEN;
                    //pumpModel.StartNode = netWork.Nodes.Find(x => x.UserID == pump.StartCode);
                    //pumpModel.EndNode = netWork.Nodes.Find(x => x.UserID == pump.EndCode);
                    //pumpModel.HeadCurve = pump.CurveQH;
                    netWork.Links.Add(pumpModel);
                    //netWork.Links.Add(pumpModel);
                }
            }
@@ -136,23 +130,23 @@
            {
                foreach (var valve in info.Valves)
                {
                    var valveModel = new HyView.ValveViewModel();
                    valveModel.ID = valve.Code;
                    valveModel.Name = valve.Name;
                    valveModel.Status = StatusType.OPEN;
                    valveModel.StartNode = netWork.Nodes.Find(x => x.ID == valve.StartCode);
                    valveModel.EndNode = netWork.Nodes.Find(x => x.ID == valve.EndCode);
                    valveModel.Diameter = (float)valve.Diameter;
                    valveModel.Type = valve.ValveType;
                    valveModel.Setting = valve.ValveSetting;
                    //var valveModel = new HyView.ValveViewModel();
                    //valveModel.UserID = valve.Code;
                    //valveModel.Name = valve.Name;
                    ////valveModel.Status = StatusType.OPEN;
                    //valveModel.StartNode = netWork.Nodes.Find(x => x.UserID == valve.StartCode);
                    //valveModel.EndNode = netWork.Nodes.Find(x => x.UserID == valve.EndCode);
                    //valveModel.Diameter = (float)valve.Diameter;
                    //valveModel.Type = valve.ValveType;
                    //valveModel.Setting = valve.ValveSetting;
                    netWork.Links.Add(valveModel);
                    //netWork.Links.Add(valveModel);
                }
            }
            return netWork;
            return default;
        }
    }