| | |
| | | using DevExpress.XtraEditors; |
| | | using HStation.Model; |
| | | using HStation.Vmo; |
| | | using Microsoft.Extensions.DependencyInjection; |
| | | using static DevExpress.XtraEditors.XtraInputBox; |
| | | using static System.Windows.Forms.VisualStyles.VisualStyleElement.Window; |
| | | |
| | |
| | | |
| | | #region 第二步 创建项目(进度 10%) |
| | | |
| | | feedBackMsg?.Invoke("正在创建项目...", Color.Black); |
| | | |
| | | var project = new Vmo.XhsProjectExtensionsVmo(); |
| | | project.NO = vm.NO; |
| | | project.Name = vm.Name; |
| | | project.Address = vm.Address; |
| | | project.Customer = vm.Customer; |
| | | project.Flags = vm.Flags; |
| | | project.TagName = vm.TagName; |
| | | project.Description = vm.Description; |
| | | project.SiteList = new List<XhsProjectSiteVmo>() |
| | | { |
| | | new XhsProjectSiteVmo() |
| | | { |
| | | Name=vm.Name, |
| | | Description=vm.Description |
| | | } |
| | | }; |
| | | |
| | | var projectId = await BLLFactory<HStation.BLL.XhsProjectExtensions>.Instance.Insert(project); |
| | | if (projectId < 1) |
| | | //尚未创建项目 |
| | | if (vm.Project == null) |
| | | { |
| | | feedBackMsg?.Invoke("项目创建失败!!!", Color.Red); |
| | | return false; |
| | | feedBackMsg?.Invoke("正在创建项目...", Color.Black); |
| | | |
| | | var project = new Vmo.XhsProjectExtensionsVmo(); |
| | | project.NO = vm.NO; |
| | | project.Name = vm.Name; |
| | | project.Address = vm.Address; |
| | | project.Customer = vm.Customer; |
| | | project.Flags = vm.Flags; |
| | | project.TagName = vm.TagName; |
| | | project.Description = vm.Description; |
| | | project.SiteList = new List<XhsProjectSiteVmo>() |
| | | { |
| | | new XhsProjectSiteVmo() |
| | | { |
| | | Name=vm.Name, |
| | | Description=vm.Description |
| | | } |
| | | }; |
| | | |
| | | var projectId = await BLLFactory<HStation.BLL.XhsProjectExtensions>.Instance.Insert(project); |
| | | if (projectId < 1) |
| | | { |
| | | feedBackMsg?.Invoke("项目创建失败!!!", Color.Red); |
| | | return false; |
| | | } |
| | | vm.ProjectID = projectId; |
| | | vm.Project = await BLLFactory<HStation.BLL.XhsProjectExtensions>.Instance.GetByID(projectId); |
| | | vm.ProjectSiteID = vm.Project.SiteList.FirstOrDefault().ID; |
| | | |
| | | feedBackMsg?.Invoke("项目创建成功。。。", Color.Green); |
| | | } |
| | | |
| | | feedBackMsg?.Invoke("项目创建成功。。。", Color.Green); |
| | | |
| | | vm.ProjectID = projectId; |
| | | |
| | | feedBackProgress?.Invoke(100, 10); |
| | | |
| | |
| | | |
| | | #region 第三步 设置地图位置(进度 20%) |
| | | |
| | | feedBackMsg?.Invoke("正在设置地图位置...", Color.Black); |
| | | |
| | | if (vm.Location != null) |
| | | if (vm.MapInfo != null) |
| | | { |
| | | var mapInfo = new Yw.Vmo.MapInfoVmo(); |
| | | mapInfo.ObjectType = HStation.Xhs.DataType.XhsProject; |
| | | mapInfo.ObjectID = projectId; |
| | | mapInfo.ObjectName = project.Name; |
| | | mapInfo.Purpose = Yw.Map.Purpose.Location; |
| | | mapInfo.Kind = Yw.Map.Kind.Gaodei; |
| | | mapInfo.Shape = Yw.Map.Shape.Marker; |
| | | mapInfo.Position = vm.Location.ToJson(); |
| | | feedBackMsg?.Invoke("正在设置地图位置...", Color.Black); |
| | | |
| | | var mapInfoId = await BLLFactory<Yw.BLL.MapInfo>.Instance.Insert(mapInfo); |
| | | if (mapInfoId < 1) |
| | | if (vm.Location != null) |
| | | { |
| | | feedBackMsg?.Invoke("设置地图位置失败!!!", Color.Red); |
| | | var mapInfo = new Yw.Vmo.MapInfoVmo(); |
| | | mapInfo.ObjectType = HStation.Xhs.DataType.XhsProject; |
| | | mapInfo.ObjectID = vm.ProjectID.Value; |
| | | mapInfo.ObjectName = vm.Project.Name; |
| | | mapInfo.Purpose = Yw.Map.Purpose.Location; |
| | | mapInfo.Kind = Yw.Map.Kind.Gaodei; |
| | | mapInfo.Shape = Yw.Map.Shape.Marker; |
| | | mapInfo.Position = vm.Location.ToJson(); |
| | | |
| | | var mapInfoId = await BLLFactory<Yw.BLL.MapInfo>.Instance.Insert(mapInfo); |
| | | if (mapInfoId < 1) |
| | | { |
| | | feedBackMsg?.Invoke("设置地图位置失败!!!", Color.Red); |
| | | } |
| | | else |
| | | { |
| | | vm.MapInfoID = mapInfoId; |
| | | vm.MapInfo = await BLLFactory<Yw.BLL.MapInfo>.Instance.GetByID(mapInfoId); |
| | | feedBackMsg?.Invoke("设置地图位置成功。。。", Color.Green); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | vm.MapInfoID = mapInfoId; |
| | | feedBackMsg?.Invoke("设置地图位置成功。。。", Color.Green); |
| | | feedBackMsg?.Invoke("未设置地图位置信息!!!", Color.Red); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | feedBackMsg?.Invoke("未设置地图位置信息!!!", Color.Red); |
| | | } |
| | | |
| | | feedBackProgress?.Invoke(100, 20); |
| | |
| | | feedBackMsg?.Invoke($"构件类型:{revitParter.Catalog},构件编码:{revitParter.Id},构件属性:{revitParterPropStatus.PropName},错误:{revitParterPropStatus.StatusInfo} ", Color.Red); |
| | | } |
| | | break; |
| | | |
| | | case Revit.ePropStatus.Lack: |
| | | { |
| | | //feedBackMsg?.Invoke($"构件编码:{revitParter.Id},构件属性:{revitParterPropStatus.PropName},缺省:{revitParterPropStatus.StatusInfo} ", Color.Gray); |
| | | } |
| | | break; |
| | | |
| | | case Revit.ePropStatus.Abnormal: |
| | | { |
| | | //feedBackMsg?.Invoke($"构件编码:{revitParter.Id},构件属性:{revitParterPropStatus.PropName},异常:{revitParterPropStatus.StatusInfo} ", Color.Orange); |
| | | } |
| | | break; |
| | | |
| | | default: break; |
| | | } |
| | | } |
| | |
| | | } |
| | | |
| | | feedBackMsg?.Invoke("正在进行产品匹配...", Color.Black); |
| | | var matchingParas = AssetsMatchingParasHelper.Create(hydroInfo, null); |
| | | var matchingParas = Yw.WinFrmUI.HydroMatchingHelper.Create(hydroInfo); |
| | | if (AssetsMatchingHelper.Matching(matchingParas, out string error)) |
| | | { |
| | | if (AssetsMatchingParasHelper.Apply(hydroInfo, matchingParas)) |
| | | if (Yw.WinFrmUI.HydroMatchingHelper.Apply(hydroInfo, matchingParas)) |
| | | { |
| | | feedBackMsg?.Invoke("产品匹配完成。。。", Color.Green); |
| | | } |
| | |
| | | { |
| | | feedBackMsg?.Invoke("产品匹配失败!!!", Color.Red); |
| | | } |
| | | |
| | | feedBackMsg?.Invoke("正在进行管网修复...", Color.Black); |
| | | if (hydroInfo.RepairLinksDirection(out msg)) |
| | | { |
| | | feedBackMsg?.Invoke(msg, Color.Green); |
| | | } |
| | | else |
| | | { |
| | | feedBackMsg?.Invoke(msg, Color.Red); |
| | | } |
| | | |
| | | feedBackMsg?.Invoke("正在进行管网参数修复...", Color.Black); |
| | | hydroInfo.RepairParas(out msg); |
| | | if (string.IsNullOrEmpty(msg)) |
| | | { |
| | | feedBackMsg?.Invoke("管网参数修复完成。。。", Color.Green); |
| | | } |
| | | else |
| | | { |
| | | feedBackMsg?.Invoke(msg, Color.Red); |
| | | } |
| | | |
| | | feedBackMsg?.Invoke("正在保存水力结构信息...", Color.Black); |
| | | var hydroId = await BLLFactory<Yw.BLL.HydroModelInfo>.Instance.Save(hydroInfo); |
| | | if (hydroId < 1) |
| | |
| | | |
| | | #region 第六步 关联水力结构模型(进度 50%) |
| | | |
| | | var projectSite = await BLLFactory<HStation.BLL.XhsProjectSite>.Instance.GetDefaultByProjectID(projectId); |
| | | if (projectSite == null) |
| | | { |
| | | feedBackMsg?.Invoke("项目站信息错误...", Color.Red); |
| | | feedBackMsg?.Invoke("项目导入结束。。。", Color.Blue); |
| | | feedBackProgress?.Invoke(100, 100); |
| | | return true; |
| | | } |
| | | |
| | | var projectSiteId = projectSite.ID; |
| | | vm.ProjectSiteID = projectSite.ID; |
| | | |
| | | feedBackMsg?.Invoke("正在关联水力结构模型...", Color.Black); |
| | | |
| | | var hydroRelation = new Yw.Vmo.HydroModelRelationVmo(); |
| | | hydroRelation.ObjectType = HStation.Xhs.DataType.XhsProjectSite; |
| | | hydroRelation.ObjectID = projectSiteId; |
| | | hydroRelation.ModelID = hydroId; |
| | | hydroRelation.ObjectID = vm.ProjectSiteID.Value; |
| | | hydroRelation.ModelID = vm.HydroID.Value; |
| | | hydroRelation.Purpose = HStation.Xhs.Purpose.Simulation; |
| | | hydroRelation.Content = null; |
| | | hydroRelation.Description = null; |
| | |
| | | |
| | | var bimfaceRelation = new Yw.Vmo.BimfaceFileRelationVmo(); |
| | | bimfaceRelation.ObjectType = HStation.Xhs.DataType.XhsProjectSite; |
| | | bimfaceRelation.ObjectID = projectSiteId; |
| | | bimfaceRelation.ObjectID = vm.ProjectSiteID.Value; |
| | | bimfaceRelation.BimfaceFileID = bimfaceFileId; |
| | | bimfaceRelation.Purpose = HStation.Xhs.Purpose.Simulation; |
| | | bimfaceRelation.Description = vm.Description; |
| | |
| | | |
| | | #endregion |
| | | } |
| | | |
| | | |
| | | } |
| | | } |