From 492fbc0052225864e97cceb66d86d3fdf9dee961 Mon Sep 17 00:00:00 2001 From: duheng <2784771470@qq.com> Date: 星期四, 05 十二月 2024 16:18:36 +0800 Subject: [PATCH] 修改匹配方法以及单独匹配 --- WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/04-scheme/01-add/AddXhsSchemeDlg.cs | 281 ++++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 243 insertions(+), 38 deletions(-) diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/04-scheme/01-add/AddXhsSchemeDlg.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/04-scheme/01-add/AddXhsSchemeDlg.cs index a732d79..88cdc43 100644 --- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/04-scheme/01-add/AddXhsSchemeDlg.cs +++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/04-scheme/01-add/AddXhsSchemeDlg.cs @@ -1,4 +1,4 @@ -锘縰sing DevExpress.XtraBars; +锘縰sing Mapster; namespace HStation.WinFrmUI { @@ -8,8 +8,15 @@ { InitializeComponent(); this.IconOptions.Icon = Yw.WinFrmUI.GlobalParas.AppIcon; - this.ribbon.SetFormStyle(); - + this.ribbon.SetFormStyle(); + this.gridView1.SetNormalView(); + this.gridView2.SetNormalView(); + this.gridView2.OptionsView.EnableAppearanceOddRow = false; // 浣胯兘 // 鍜屽拰涓婇潰缁戝畾 鍚屾椂浣跨敤鏈夋晥 + this.gridView2.OptionsView.EnableAppearanceEvenRow = false; + + this.gridView1.OptionsView.ShowIndicator = false; + this.gridView2.OptionsView.ShowIndicator = false; + foreach (var page in this.tabPane1.Pages) { if (page.Controls[0] is ISetSchemeParterList ctrl) @@ -17,30 +24,60 @@ ctrl.ShowFindPanel = false; ctrl.HydroClickEvent += async (parter) => { - _selectedParter = parter; - await _bimfaceCtrl?.ZoomAndSelectComponent(_selectedParter.Code); - + _selected_parter = parter; + await _bimfaceCtrl?.ZoomAndSelectComponent(_selected_parter.Code); }; ctrl.HydroRecordChangedEvent += (record) => - { + { _set_record_list.Add(record); this.setSchemeParterRecordBindingSource.ResetBindings(false); - }; + }; ctrl.HydroChangedEvent += (parterList) => { - + }; } } + } + + /// <summary> + /// + /// </summary> + public event Action<HStation.Vmo.XhsSchemeVmo> ReloadDataEvent; private HStation.Vmo.XhsProjectVmo _project = null;//椤圭洰 - private HStation.Vmo.XhsProjectSiteVmo _projectSite = null;//椤圭洰绔� - private Yw.Model.HydroModelInfo _hydroInfo = null;//姘村姏淇℃伅 - - private Yw.Model.HydroParterInfo _selectedParter = null; //閫夋嫨鏋勪欢 + private HStation.Vmo.XhsProjectSiteVmo _project_site = null;//椤圭洰绔� + private Yw.Model.HydroModelInfo _hydro_info = null;//姘村姏淇℃伅 + private Yw.Model.HydroModelInfo _hydro_info_init = null;//鍒濆 姘村姏淇℃伅 + + private Yw.Model.HydroParterInfo _selected_parter = null; //閫夋嫨鏋勪欢 private List<SetSchemeParterRecord> _set_record_list = null; + + + #region Initial + + //鍒濆鍖栨枃浠舵牸寮� + private void InitialSchemeType() + { + this.imgCmbSchemeType.Properties.BeginUpdate(); + this.imgCmbSchemeType.Properties.Items.Clear(); + this.imgCmbSchemeType.Properties.Items.AddEnum(typeof(HStation.Xhs.eSchemeType), false); + this.imgCmbSchemeType.EditValue = eSchemeType.Common; + this.imgCmbSchemeType.Properties.EndUpdate(); + } + //鍒濆鍖栨爣绛� + private async Task InitialFlags() + { + var allFlagList = await BLLFactory<Yw.BLL.SysFlag>.Instance.GetBySysType(HStation.Xhs.DataType.XhsScheme); + var allFlagNameList = allFlagList?.Select(x => x.Name).ToList(); + this.setFlagsEditCtrl1.SetBindingData(allFlagNameList, null); + } + + #endregion + + #region SetBindingData /// <summary> /// 缁戝畾鏁版嵁 @@ -48,8 +85,8 @@ public async Task SetBindingData ( HStation.Vmo.XhsProjectVmo project, - HStation.Vmo.XhsProjectSiteVmo projectSite, - Yw.Model.HydroModelInfo hydroInfo + HStation.Vmo.XhsProjectSiteVmo project_site, + Yw.Model.HydroModelInfo hydro_info ) { if (project == null) @@ -57,29 +94,73 @@ return; } _project = project; - _projectSite = projectSite; - _hydroInfo = hydroInfo; + _project_site = project_site; + _hydro_info_init = hydro_info; _set_record_list = new List<SetSchemeParterRecord>(); - if (_projectSite == null) + if (_project_site == null) { - _projectSite = await BLLFactory<HStation.BLL.XhsProjectSite>.Instance.GetDefaultByProjectID(_project.ID); - } - if (_hydroInfo == null) - { - var hydroRelation = await BLLFactory<Yw.BLL.HydroModelRelation>.Instance - .GetDefaultByObjectTypeAndObjectIDOfPurpose(HStation.Xhs.DataType.XhsProjectSite, _projectSite.ID, HStation.Xhs.Purpose.Simulation); - _hydroInfo = await BLLFactory<Yw.BLL.HydroModelInfo>.Instance.GetByID(hydroRelation.ModelID); + _project_site = await BLLFactory<HStation.BLL.XhsProjectSite>.Instance.GetDefaultByProjectID(_project.ID); } - this.setSchemePumpListCtrl1.SetBindingData(_hydroInfo); - this.setSchemeValveListCtrl1.SetBindingData(_hydroInfo); - this.setSchemePipeListCtrl1.SetBindingData(_hydroInfo); + if (_hydro_info_init == null) + { + var hydroRelation = await BLLFactory<Yw.BLL.HydroModelRelation>.Instance + .GetDefaultByObjectTypeAndObjectIDOfPurpose(HStation.Xhs.DataType.XhsProjectSite, _project_site.ID, HStation.Xhs.Purpose.Simulation); + _hydro_info_init = await BLLFactory<Yw.BLL.HydroModelInfo>.Instance.GetByID(hydroRelation.ModelID); + } this.setSchemeParterRecordBindingSource.DataSource = _set_record_list; this.setSchemeParterRecordBindingSource.ResetBindings(false); - + SetBindingData(); ShowBimfaceCtrl(); + FastShowHidden(false); + + InitialSchemeType(); + await InitialFlags(); } + + private void SetBindingData(List<SetSchemeParterRecord> set_record_list = null) + { + _hydro_info = _hydro_info_init.Adapt<Yw.Model.HydroModelInfo, Yw.Model.HydroModelInfo>(); + if (set_record_list != null && set_record_list.Any()) + { + foreach (var item in set_record_list) + { + switch (item.Catalog) + { + case Yw.Hydro.ParterCatalog.Pump: + { + var vm = item.MatchingModel as PumpMatchingViewModel; + var bol = AssetsMatchingParasHelper.Apply(_hydro_info, vm); + } + break; + + case Yw.Hydro.ParterCatalog.Valve: + { + var vm = item.MatchingModel as ValveMatchingViewModel; + var bol = AssetsMatchingParasHelper.Apply(_hydro_info, vm); + } + break; + case Yw.Hydro.ParterCatalog.Pipe: + { + var vm = item.MatchingModel as PipeMatchingViewModel; + var bol = AssetsMatchingParasHelper.Apply(_hydro_info, vm); + } + break; + default: + break; + } + } + } + + this.setSchemePumpListCtrl1.SetBindingData(_hydro_info); + this.setSchemeValveListCtrl1.SetBindingData(_hydro_info); + this.setSchemePipeListCtrl1.SetBindingData(_hydro_info); + + } + + + #endregion #region Bimface @@ -93,18 +174,18 @@ { _bimfaceCtrl = new XhsProjectSimulationBimfaceCtrl(); _bimfaceCtrl.Dock = DockStyle.Fill; - await _bimfaceCtrl.InitialData(_project, _projectSite, () => _hydroInfo); + await _bimfaceCtrl.InitialData(_project, _project_site); _bimfaceCtrl.LoadCompletedEvent += () => { //view鍔犺浇瀹屾垚浜嬩欢 - if (_hydroInfo == null) + if (_hydro_info == null) { return; } }; _bimfaceCtrl.HydroMouseLeftClickEvent += (obj) => {//榧犳爣宸﹂敭鐐瑰嚮浜嬩欢 - if (_hydroInfo == null) + if (_hydro_info == null) { return; } @@ -127,21 +208,145 @@ } #endregion - - private void barCek_CheckedChanged(object sender, ItemClickEventArgs e) + #region Menu + + #region FastShowHidden + + //涓�閿樉闅� + private void barBtnFastShowHidden_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { + _show_hidden = !_show_hidden; + FastShowHidden(_show_hidden); + } - if (!this.flyoutPanel1.Visible) + private bool _show_hidden = false; + private async void FastShowHidden(bool visible) + { + var code_list = _hydro_info.Decorators.Select(x => x.Code).ToList(); + if (code_list == null) { - this.flyoutPanel1.ShowPopup(); + return; + } + if (visible) + { + await _bimfaceCtrl?.ShowComponents(code_list); } else { - this.flyoutPanel1.HidePopup(); + await _bimfaceCtrl?.HideComponents(code_list); + } + } + + + #endregion + + #endregion + + #region Save + + private bool Verify() + { + this.dxErrorProvider1.ClearErrors(); + if (string.IsNullOrEmpty(this.txtNo.Text)) + { + this.dxErrorProvider1.SetError(this.txtNo, "蹇呭~椤�"); + return false; + } + if (string.IsNullOrEmpty(this.txtName.Text)) + { + this.dxErrorProvider1.SetError(this.txtName, "蹇呭~椤�"); + return false; } + return true; } - + + private async void btnSave_Click(object sender, EventArgs e) + { + if (_hydro_info == null) + { + return; + } + if (!Verify()) + { + return; + } + var bll_hydro_model = new Yw.BLL.HydroModel(); + var bll_xhs_scheme = new BLL.XhsScheme(); + var hydro_model_id = await bll_hydro_model.Copy(_hydro_info.ID); + if (hydro_model_id > 0) + { + var xhs_scheme = new Vmo.XhsSchemeVmo(); + xhs_scheme.SiteID = _project_site.ID; + xhs_scheme.NO = this.txtNo.Text.Trim(); + xhs_scheme.Name = this.txtName.Text.Trim(); + xhs_scheme.SchemeType = eSchemeType.Common; + xhs_scheme.Paras = null; + xhs_scheme.Flags = null; + xhs_scheme.UseStatus = Yw.Model.eUseStatus.Enable; + + var xhs_scheme_id = await bll_xhs_scheme.Insert(xhs_scheme); + if (xhs_scheme_id < 0) + { + await bll_hydro_model.DeleteByID(hydro_model_id); + XtraMessageBox.Show("鏂规鍒涘缓澶辫触!"); + return; + } + + + var hydro_relation = new Yw.Vmo.HydroModelRelationVmo(); + hydro_relation.ObjectType = HStation.Xhs.DataType.XhsScheme; + hydro_relation.ObjectID = xhs_scheme_id; + hydro_relation.ModelID = hydro_model_id; + hydro_relation.Purpose = HStation.Xhs.Purpose.Simulation; + hydro_relation.Content = null; + hydro_relation.Description = this.memoDescription.Text.Trim(); + + var hydro_relation_id = await BLLFactory<Yw.BLL.HydroModelRelation>.Instance.Insert(hydro_relation); + if (hydro_relation_id < 1) + { + await bll_hydro_model.DeleteByID(hydro_model_id); + await bll_xhs_scheme.DeleteByID(xhs_scheme_id); + XtraMessageBox.Show("妯″瀷渚濊禆鍒涘缓澶辫触!"); + return; + } + + var scheme = await BLLFactory<HStation.BLL.XhsScheme>.Instance.GetByID(xhs_scheme_id); + this.ReloadDataEvent?.Invoke(scheme); + } + + TipFormHelper.Show(eTipStatus.Succeed, "鍒涘缓鎴愬姛!"); + this.Close(); + + } + + #endregion + + #region GridView + + private void gridView1_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e) + { + var row = this.gridView1.GetRow(e.FocusedRowHandle) as SetSchemeParterRecord; + this.setSchemeParterRecordItemBindingSource.DataSource = row?.Items; + this.setSchemeParterRecordItemBindingSource.ResetBindings(false); + } + + private void gridView1_RowCellClick(object sender, DevExpress.XtraGrid.Views.Grid.RowCellClickEventArgs e) + { + if (e.Column == this.colDelete) + { + var row = this.gridView1.GetRow(e.RowHandle) as SetSchemeParterRecord; + _set_record_list.Remove(row); + this.setSchemeParterRecordBindingSource.ResetBindings(false); + SetBindingData(_set_record_list); + + } + } + + + #endregion + + } } \ No newline at end of file -- Gitblit v1.9.3