| | |
| | | global using Yw.EPAnet; |
| | | using DevExpress.Mvvm.Native; |
| | | using DevExpress.Xpo.Helpers; |
| | | using DevExpress.XtraRichEdit.Layout; |
| | | using DevExpress.XtraSpreadsheet.Commands; |
| | | using HStation.WinFrmUI.PhartRelation; |
| | | using System.Diagnostics; |
| | | using System.Windows.Media; |
| | | using System.Windows.Media.Media3D; |
| | | using Yw.Pump; |
| | | using Yw.Vmo; |
| | | using Yw.WinFrmUI.Bimface; |
| | |
| | | { |
| | | _bimfaceCtrl = new XhsProjectSimulationBimfaceCtrl(); |
| | | _bimfaceCtrl.Dock = DockStyle.Fill; |
| | | await _bimfaceCtrl.InitialData(_project, _projectSite, () => _hydroInfo); |
| | | await _bimfaceCtrl.InitialData(_project, _projectSite); |
| | | _bimfaceCtrl.LoadCompletedEvent += () => |
| | | {//view加载完成事件 |
| | | if (_hydroInfo == null) |
| | |
| | | { |
| | | return; |
| | | } |
| | | _selectedVisual = obj; |
| | | //_selectedVisual = obj; |
| | | ShowSelectedProperty(); |
| | | }; |
| | | } |
| | |
| | | { |
| | | _propertyCtrl = new XhsProjectSimulationPropertyCtrl(); |
| | | _propertyCtrl.Dock = DockStyle.Fill; |
| | | _propertyCtrl.InitialData(() => _hydroInfo, () => GetCalcuResultList()); |
| | | _propertyCtrl.BlinkLinkParterEvent += async (code, linkCode) => |
| | | { //强调连接组件 |
| | | if (string.IsNullOrEmpty(code)) |
| | | { |
| | | return; |
| | | } |
| | | if (string.IsNullOrEmpty(linkCode)) |
| | | { |
| | | return; |
| | | } |
| | | if (_hydroInfo == null) |
| | | { |
| | | return; |
| | | } |
| | | var allVisualList = _hydroInfo.GetAllVisuals(); |
| | | if (allVisualList == null || allVisualList.Count < 1) |
| | | { |
| | | return; |
| | | } |
| | | var linkParter = allVisualList.Find(x => x.Code == linkCode); |
| | | if (linkParter == null) |
| | | { |
| | | return; |
| | | } |
| | | var blinkCodes = new List<string>(); |
| | | if (linkParter.GetType() == typeof(Yw.Model.HydroJunctionInfo)) |
| | | { |
| | | var allLinkList = _hydroInfo.GetAllLinks(); |
| | | if (allLinkList == null || allLinkList.Count < 1) |
| | | { |
| | | return; |
| | | } |
| | | var linkList = allLinkList.Where(x => (x.StartCode == linkParter.Code || x.EndCode == linkParter.Code) && x.Code != code).ToList(); |
| | | if (linkList == null || linkList.Count < 1) |
| | | { |
| | | return; |
| | | } |
| | | blinkCodes.AddRange(linkList.Select(x => x.Code)); |
| | | } |
| | | else |
| | | { |
| | | blinkCodes.Add(linkCode); |
| | | } |
| | | //_propertyCtrl.InitialData(() => _hydroInfo, () => GetCalcuResultList()); |
| | | //_propertyCtrl.BlinkLinkNodeEvent += async (code, linkCode) => |
| | | //{ //强调连接组件 |
| | | // if (string.IsNullOrEmpty(code)) |
| | | // { |
| | | // return; |
| | | // } |
| | | // if (string.IsNullOrEmpty(linkCode)) |
| | | // { |
| | | // return; |
| | | // } |
| | | // if (_hydroInfo == null) |
| | | // { |
| | | // return; |
| | | // } |
| | | // var allVisualList = _hydroInfo.GetAllVisuals(); |
| | | // if (allVisualList == null || allVisualList.Count < 1) |
| | | // { |
| | | // return; |
| | | // } |
| | | // var linkParter = allVisualList.Find(x => x.Code == linkCode); |
| | | // if (linkParter == null) |
| | | // { |
| | | // return; |
| | | // } |
| | | // var blinkCodes = new List<string>(); |
| | | // if (linkParter.GetType() == typeof(Yw.Model.HydroJunctionInfo)) |
| | | // { |
| | | // var allLinkList = _hydroInfo.GetAllLinks(); |
| | | // if (allLinkList == null || allLinkList.Count < 1) |
| | | // { |
| | | // return; |
| | | // } |
| | | // var linkList = allLinkList.Where(x => (x.StartCode == linkParter.Code || x.EndCode == linkParter.Code) && x.Code != code).ToList(); |
| | | // if (linkList == null || linkList.Count < 1) |
| | | // { |
| | | // return; |
| | | // } |
| | | // blinkCodes.AddRange(linkList.Select(x => x.Code)); |
| | | // } |
| | | // else |
| | | // { |
| | | // blinkCodes.Add(linkCode); |
| | | // } |
| | | |
| | | await _bimfaceCtrl?.SetBlinkComponents(blinkCodes); |
| | | await Task.Delay(5000); |
| | | await _bimfaceCtrl?.ClearBlinkComponents(); |
| | | }; |
| | | // await _bimfaceCtrl?.SetBlinkComponents(blinkCodes); |
| | | // await Task.Delay(5000); |
| | | // await _bimfaceCtrl?.ClearBlinkComponents(); |
| | | //}; |
| | | |
| | | _propertyCtrl.ViewParterEvent += (parter) => |
| | | _propertyCtrl.HydroViewEvent += (parter) => |
| | | { |
| | | if (parter == null) |
| | | { |
| | |
| | | //分级属性发生改变 |
| | | //判断当前是否有分级展示,若有则更新分级,最好是更新单个分级 |
| | | }; |
| | | _propertyCtrl.FlowDirectionPropertyValueChangedEvent += async (parter) => |
| | | _propertyCtrl.FlowEffectPropertyValueChangedEvent += async (parter) => |
| | | { |
| | | //流向属性发生改变 |
| | | //判断流向是否加载,如果加载则更新流向,最好是更新单个流向 |
| | | UpdateFlowEffect(parter); |
| | | //UpdateFlowEffect(parter); |
| | | //await _bimfaceCtrl?.UnloadFlowEffectById(parter.Code); |
| | | }; |
| | | |
| | |
| | | } |
| | | ShowSelectedProperty(); |
| | | }; |
| | | dlg.HydroCalcuEvent += async (hydroInfo, workingInfo) => |
| | | { |
| | | if (_hydroInfo == null) |
| | | { |
| | | return; |
| | | } |
| | | _hydroInfo.UpdateWorkingInfo(workingInfo); |
| | | //校验 |
| | | _checkResult = _hydroInfo.Check(); |
| | | if (!_checkResult.Succeed) |
| | | { |
| | | ShowCheckCtrl(); |
| | | TipFormHelper.ShowWarn("校验失败,请检查后重试"); |
| | | return; |
| | | } |
| | | //dlg.HydroCalcuEvent += async (hydroInfo, workingInfo) => |
| | | //{ |
| | | // if (_hydroInfo == null) |
| | | // { |
| | | // return; |
| | | // } |
| | | // _hydroInfo.UpdateWorkingInfo(workingInfo); |
| | | // //校验 |
| | | // _checkResult = _hydroInfo.Check(); |
| | | // if (!_checkResult.Succeed) |
| | | // { |
| | | // ShowCheckCtrl(); |
| | | // TipFormHelper.ShowWarn("校验失败,请检查后重试"); |
| | | // return; |
| | | // } |
| | | |
| | | WaitFormHelper.ShowWaitForm(this, "正在计算分析中,请稍候..."); |
| | | // WaitFormHelper.ShowWaitForm(this, "正在计算分析中,请稍候..."); |
| | | |
| | | |
| | | await Task.Delay(5000); |
| | | // await Task.Delay(5000); |
| | | |
| | | var netWork = Yw.Hydro.ParseHelper.ToNetwork(_hydroInfo); |
| | | _calcuResult = netWork.CalcuMinorLoss(); |
| | | // var netWork = Yw.Hydro.ParseHelper.ToNetwork(_hydroInfo); |
| | | // _calcuResult = netWork.CalcuMinorLoss(); |
| | | |
| | | WaitFormHelper.HideWaitForm(); |
| | | if (_calcuResult.Succeed) |
| | | { |
| | | GetCalcuResultList(false); |
| | | UpdateVisualViewModelCalcuProperty(); |
| | | UpdateVisualListCtrl(); |
| | | UpdateSelectedProperty(); |
| | | await _bimfaceCtrl?.SetLogicCalcuCustomLabels(_calcuResult); |
| | | TipFormHelper.ShowSucceed("计算成功!"); |
| | | var codes = _hydroInfo.Pumps.Select(x => x.Code).ToList(); |
| | | await _bimfaceCtrl?.ZoomAndSelectComponents(codes); |
| | | } |
| | | else |
| | | { |
| | | ShowCalcuFailedCtrl(); |
| | | TipFormHelper.ShowError("计算失败!"); |
| | | } |
| | | AutoApplyGrading(); |
| | | UpdateVisualListCtrl(); |
| | | ShowSelectedProperty(); |
| | | }; |
| | | dlg.SetBindingData(_hydroInfo); |
| | | // WaitFormHelper.HideWaitForm(); |
| | | // if (_calcuResult.Succeed) |
| | | // { |
| | | // GetCalcuResultList(false); |
| | | // UpdateVisualViewModelCalcuProperty(); |
| | | // UpdateVisualListCtrl(); |
| | | // UpdateSelectedProperty(); |
| | | // await _bimfaceCtrl?.SetLogicCalcuCustomLabels(_calcuResult); |
| | | // TipFormHelper.ShowSucceed("计算成功!"); |
| | | // var codes = _hydroInfo.Pumps.Select(x => x.Code).ToList(); |
| | | // await _bimfaceCtrl?.ZoomAndSelectComponents(codes); |
| | | // } |
| | | // else |
| | | // { |
| | | // ShowCalcuFailedCtrl(); |
| | | // TipFormHelper.ShowError("计算失败!"); |
| | | // } |
| | | // AutoApplyGrading(); |
| | | // UpdateVisualListCtrl(); |
| | | // ShowSelectedProperty(); |
| | | //}; |
| | | //dlg.SetBindingData(_hydroInfo); |
| | | dlg.ShowDialog(); |
| | | } |
| | | |
| | |
| | | { |
| | | _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 |
| | | }); |
| | | } |
| | |
| | | { |
| | | _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 |
| | | }); |
| | | } |
| | |
| | | { |
| | | _allGradingApplyList.Add(new HydroGradingApplyViewModel() |
| | | { |
| | | Code = Yw.Hydro.ParterCatalog.Pipe, |
| | | Name = Yw.WinFrmUI.HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Pipe), |
| | | Catalog = Yw.Hydro.ParterCatalog.Pipe, |
| | | CatalogName = Yw.WinFrmUI.HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Pipe), |
| | | PropName = HydroVisualCalcuProp.CalcuFlow |
| | | }); |
| | | } |
| | |
| | | } |
| | | |
| | | //获取颜色分级应用结果列表 |
| | | private async Task<List<HydroGradingApplyResultViewModel>> GetGradingApplyResultList() |
| | | private async Task<List<HydroGradingResultViewModel>> GetGradingApplyResultList() |
| | | { |
| | | if (_hydroInfo == null) |
| | | { |
| | |
| | | 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: |
| | | { |
| | |
| | | var grading = gradingList.Meet(pump.LinkStatus); |
| | | if (grading != null) |
| | | { |
| | | var result = new HydroGradingApplyResultViewModel() |
| | | var result = new HydroGradingResultViewModel() |
| | | { |
| | | Code = pump.Code, |
| | | Color = grading.Color |
| | |
| | | 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 |
| | |
| | | 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 |
| | |
| | | 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 |
| | |
| | | var grading = gradingList.Meet(valve.LinkStatus); |
| | | if (grading != null) |
| | | { |
| | | var result = new HydroGradingApplyResultViewModel() |
| | | var result = new HydroGradingResultViewModel() |
| | | { |
| | | Code = valve.Code, |
| | | Color = grading.Color |
| | |
| | | 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 |
| | |
| | | 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 |
| | |
| | | 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 |
| | |
| | | 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 |
| | |
| | | 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 |
| | |
| | | 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 |
| | |
| | | } |
| | | |
| | | //获取颜色分级应用结果列表 |
| | | private async Task<List<HydroGradingApplyResultViewModel>> GetGradingApplyResultList(string catalog, string propName) |
| | | private async Task<List<HydroGradingResultViewModel>> GetGradingApplyResultList(string catalog, string propName) |
| | | { |
| | | if (_hydroInfo == null) |
| | | { |
| | |
| | | } |
| | | |
| | | //当前分级应用 |
| | | var gradingApply = allGradingApplyList.Find(x => x.Code == catalog); |
| | | var gradingApply = allGradingApplyList.Find(x => x.Catalog == catalog); |
| | | if (gradingApply == null) |
| | | { |
| | | return default; |
| | |
| | | var allCalcuResultList = GetCalcuResultList(); |
| | | |
| | | //应用结果列表 |
| | | var gradingApplyResultList = new List<HydroGradingApplyResultViewModel>(); |
| | | var gradingApplyResultList = new List<HydroGradingResultViewModel>(); |
| | | |
| | | switch (catalog) |
| | | { |
| | |
| | | var grading = gradingList.Meet(pump.LinkStatus); |
| | | if (grading != null) |
| | | { |
| | | var result = new HydroGradingApplyResultViewModel() |
| | | var result = new HydroGradingResultViewModel() |
| | | { |
| | | Code = pump.Code, |
| | | Color = grading.Color |
| | |
| | | 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 |
| | |
| | | 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 |
| | |
| | | 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 |
| | |
| | | var grading = gradingList.Meet(valve.LinkStatus); |
| | | if (grading != null) |
| | | { |
| | | var result = new HydroGradingApplyResultViewModel() |
| | | var result = new HydroGradingResultViewModel() |
| | | { |
| | | Code = valve.Code, |
| | | Color = grading.Color |
| | |
| | | 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 |
| | |
| | | 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 |
| | |
| | | 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 |
| | |
| | | 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 |
| | |
| | | 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 |
| | |
| | | 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 |