From 5e776f1884d4d865c8d3d037a1fb10fb083f37ed Mon Sep 17 00:00:00 2001 From: Shuxia Ning <NingShuxia0927@outlook.com> Date: 星期五, 03 一月 2025 11:13:02 +0800 Subject: [PATCH] PhartRelation 新增远程方式 --- WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/03-mgr/XhsProjectMgrPage.cs | 523 ++++++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 399 insertions(+), 124 deletions(-) diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/03-mgr/XhsProjectMgrPage.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/03-mgr/XhsProjectMgrPage.cs index c0b9493..40061e1 100644 --- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/03-mgr/XhsProjectMgrPage.cs +++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/03-mgr/XhsProjectMgrPage.cs @@ -1,6 +1,7 @@ -锘縰sing DevExpress.CodeParser; -using DevExpress.Utils; +锘縰sing DevExpress.Utils; +using DevExpress.XtraTreeList; using HStation.WinFrmUI.Xhs; +using Timer = System.Threading.Timer; namespace HStation.WinFrmUI { @@ -10,63 +11,403 @@ { InitializeComponent(); this.treeList1.InitialMultiColSettings(); + this.treeList1.Appearance.Row.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Default; this.PageTitle.Caption = "椤圭洰绠$悊"; - this.PageTitle.HeaderSvgImage = this.svgImg32[0]; + this.PageTitle.HeaderSvgImage = XhsMainSvgImageHelper.Project; this.PageTitle.SvgImageSize = new Size(24, 24); + this.Load += XhsProjectMgrPage_Load; } - private List<XhsProjectMgrViewModel> _allProjectList = null; + private void XhsProjectMgrPage_Load(object sender, EventArgs e) + { + repositoryItemImageComboBox1.Items.AddEnum(typeof(eXhsProjectStatus)); + repositoryItemImageComboBox1.Items[0].ImageIndex = 0; + repositoryItemImageComboBox1.Items[1].ImageIndex = 1; + repositoryItemImageComboBox1.Items[2].ImageIndex = 2; + repositoryItemImageComboBox1.Items[3].ImageIndex = 3; + repositoryItemImageComboBox1.Items[4].ImageIndex = 4; + repositoryItemImageComboBox1.Items[5].ImageIndex = 5; + repositoryItemImageComboBox1.Items[6].ImageIndex = 6; + repositoryItemImageComboBox1.Items[7].ImageIndex = 7; + repositoryItemImageComboBox1.Items[8].ImageIndex = 8; + } - private BLL.XhsProjectExtensions _bll = null; + private List<XhsProjectMgrViewModel> _allBindingList = null; /// <summary> /// 鍒濆鍖栨暟鎹簮 /// </summary> - public override async void InitialDataSource() + public override void InitialDataSource() { base.InitialDataSource(); - _bll = new BLL.XhsProjectExtensions(); - var allProjectList = await _bll.GetAll(); - _allProjectList = new List<XhsProjectMgrViewModel>(); + this.barBtnViewBimface.ImageOptions.SvgImage = Yw.WinFrmUI.BimfaceMainSvgImageHelper.Bimface; + this.barBtnViewHydro.ImageOptions.SvgImage = Yw.WinFrmUI.HydroMainSvgImageHelper.Hydro; + this.barBtnSetMap.ImageOptions.SvgImage = XhsMainSvgImageHelper.Map; + InitialData(); + } + + //鍒濆鍖栨暟鎹� + private async void InitialData() + { + var overlay = this.ShowOverlay(); + _allBindingList = new List<XhsProjectMgrViewModel>(); + var allProjectList = await BLLFactory<HStation.BLL.XhsProjectExtensions>.Instance.GetAll(); if (allProjectList != null && allProjectList.Count > 0) { foreach (var project in allProjectList) { - var vm = new XhsProjectMgrViewModel(project); - _allProjectList.Add(vm); + var mapInfo = await BLLFactory<Yw.BLL.MapInfo>.Instance + .Get(HStation.Xhs.DataType.XhsProject, project.ID, Yw.Map.Kind.Gaodei, Yw.Map.Purpose.Location); + Yw.Vmo.BimfaceFileVmo bimfaceFile = null; + var projectSite = project.SiteList?.FirstOrDefault(); + if (projectSite != null) + { + var bimfaceFileRelation = await BLLFactory<Yw.BLL.BimfaceFileRelation>.Instance + .GetDefaultByObjectTypeAndObjectIDOfPurpose(HStation.Xhs.DataType.XhsProjectSite, projectSite.ID, HStation.Xhs.Purpose.Simulation); ; + if (bimfaceFileRelation != null) + { + bimfaceFile = await BLLFactory<Yw.BLL.BimfaceFile>.Instance + .GetByID(bimfaceFileRelation.BimfaceFileID); + } + } + var vm = new XhsProjectMgrViewModel(project, mapInfo, bimfaceFile); + _allBindingList.Add(vm); } } - this.xhsProjectMgrViewModelBindingSource.DataSource = _allProjectList; + this.xhsProjectMgrViewModelBindingSource.DataSource = _allBindingList; + this.xhsProjectMgrViewModelBindingSource.ResetBindings(false); + overlay.Close(); } - //鍙戝竷 - private void barBtnPublish_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + /// <summary> + /// 鍒锋柊鏁版嵁 + /// </summary> + public override void RefreshData() { + base.RefreshData(); + InitialData(); } - //鏌ョ湅bimface妯″瀷 - private async void barBtnViewBimface_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + #region 褰撳墠 + + //鑾峰彇褰撳墠 + private XhsProjectMgrViewModel GetCurrentViewModel() + { + if (_allBindingList == null) + { + TipFormHelper.ShowError("鏁版嵁鍒濆鍖栭敊璇紒"); + return null; + } + if (_allBindingList.Count < 1) + { + TipFormHelper.ShowWarn("鏃犳暟鎹紒"); + return null; + } + var vm = this.treeList1.GetCurrentViewModel(_allBindingList); + if (vm == null) + { + TipFormHelper.ShowWarn("璇烽�夋嫨鏁版嵁琛岋紒"); + return null; + } + return vm; + } + + #endregion + + #region 鍩虹鎿嶄綔 + + //瀵煎叆椤圭洰 + private void barBtnImport_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + if (_allBindingList == null) + { + TipFormHelper.ShowError("鏁版嵁鍒濆鍖栧け璐ワ紒"); + return; + } + var dlg = new ImportXhsProjectDlg(); + dlg.SetBindingData(); + if (dlg.ShowDialog() == DialogResult.OK) + { + var viewModel = dlg.ViewModel; + var vm = new XhsProjectMgrViewModel(viewModel.Project, viewModel.MapInfo, viewModel.BimfaceFile); + _allBindingList.Add(vm); + this.treeList1.RefreshDataSource(); + } + } + + //涓婁紶妯″瀷 + private void barBtnUploadBimface_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { var vm = GetCurrentViewModel(); if (vm == null) { return; } + if (vm.BimfaceFile != null) + { + TipFormHelper.ShowWarn("妯″瀷宸蹭笂浼狅紝涓嶈兘閲嶅涓婁紶锛�"); + return; + } + var dlg = new ImportXhsProjectDlg(); + dlg.SetBindingData(vm.Project, vm.MapInfo); + if (dlg.ShowDialog() == DialogResult.OK) + { + var viewModel = dlg.ViewModel; + var project = viewModel.Project; + if (project == null) + { + return; + } + if (project.ID < 1) + { + return; + } + var mapInfo = viewModel.MapInfo; + if (mapInfo != null) + { + if (mapInfo.ID < 1) + { + mapInfo = null; + } + } + var bimfaceFile = viewModel.BimfaceFile; + if (bimfaceFile != null) + { + if (bimfaceFile.ID < 1) + { + bimfaceFile = null; + } + } + vm.Reset(project, mapInfo, bimfaceFile); + this.treeList1.RefreshDataSource(); + } + } + + //缂栬緫 + private void barBtnEdit_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + var vm = GetCurrentViewModel(); + if (vm == null) + { + return; + } + var dlg = new EditXhsProjectDlg(); + dlg.ReloadDataEvent += (project) => + { + vm.Reset(project, vm.MapInfo, vm.BimfaceFile); + this.treeList1.RefreshNode(this.treeList1.FocusedNode); + }; + dlg.SetBindingData(vm.Project); + dlg.ShowDialog(); + } + + //鍒犻櫎 + private async void barBtnDelete_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + var vm = this.treeList1.GetCurrentViewModel(_allBindingList); + if (vm == null) + { + TipFormHelper.ShowWarn("璇烽�夋嫨椤圭洰锛�"); + return; + } + var result = XtraMessageBox.Show("鏄惁纭鍒犻櫎姝ら」鐩紵", "璇㈤棶", MessageBoxButtons.YesNo) == DialogResult.Yes; + if (!result) + { + return; + } + if (vm.Project.SiteList != null && vm.Project.SiteList.Count > 0) + { + foreach (var projectSite in vm.Project.SiteList) + { + var allSchemeList = await BLLFactory<HStation.BLL.XhsScheme>.Instance.GetBySiteID(projectSite.ID); + if (allSchemeList != null && allSchemeList.Count > 0) + { + foreach (var scheme in allSchemeList) + { + var schemeRelation = await BLLFactory<Yw.BLL.HydroModelRelation>.Instance + .GetDefaultByObjectTypeAndObjectIDOfPurpose(HStation.Xhs.DataType.XhsScheme, scheme.ID, HStation.Xhs.Purpose.Simulation); + if (schemeRelation != null) + { + if (!await BLLFactory<Yw.BLL.HydroModelInfo>.Instance.DeleteByID(schemeRelation.ModelID)) + { + TipFormHelper.ShowError("椤圭洰鏂规妯″瀷鍒犻櫎澶辫触锛岃閲嶈瘯锛�"); + return; + } + } + if (!await BLLFactory<HStation.BLL.XhsScheme>.Instance.DeleteByID(scheme.ID)) + { + TipFormHelper.ShowError("椤圭洰鏂规鍒犻櫎澶辫触锛岃閲嶈瘯锛�"); + return; + } + } + } + var bimfaceFileRelation = await BLLFactory<Yw.BLL.BimfaceFileRelation>.Instance + .GetDefaultByObjectTypeAndObjectIDOfPurpose(HStation.Xhs.DataType.XhsProjectSite, projectSite.ID, HStation.Xhs.Purpose.Simulation); + if (bimfaceFileRelation != null) + { + if (!await BLLFactory<Yw.BLL.BimfaceFileRelation>.Instance.DeleteAllByID(bimfaceFileRelation.ID)) + { + TipFormHelper.ShowError("椤圭洰涓夌淮妯″瀷鍒犻櫎澶辫触锛岃閲嶈瘯锛�"); + return; + } + } + var hydroRelation = await BLLFactory<Yw.BLL.HydroModelRelation>.Instance + .GetDefaultByObjectTypeAndObjectIDOfPurpose(HStation.Xhs.DataType.XhsProjectSite, projectSite.ID, HStation.Xhs.Purpose.Simulation); + if (hydroRelation != null) + { + if (!await BLLFactory<Yw.BLL.HydroModelInfo>.Instance.DeleteByID(hydroRelation.ModelID)) + { + TipFormHelper.ShowError("椤圭洰妯″瀷鍒犻櫎澶辫触锛岃閲嶈瘯锛�"); + return; + } + } + if (!await BLLFactory<HStation.BLL.XhsProjectSite>.Instance.DeleteByID(projectSite.ID)) + { + TipFormHelper.ShowError("椤圭洰绔欏垹闄ゅけ璐ワ紝璇烽噸璇曪紒"); + return; + } + } + } + + if (vm.MapInfo != null) + { + if (!await BLLFactory<Yw.BLL.MapInfo>.Instance.DeleteByObjectTypeAndObjectID(HStation.Xhs.DataType.XhsProject, vm.Project.ID)) + { + TipFormHelper.ShowError("椤圭洰鍦板浘浣嶇疆鍒犻櫎澶辫触锛岃閲嶈瘯锛�"); + return; + } + } + + var bol = await BLLFactory<HStation.BLL.XhsProject>.Instance.DeleteByID(vm.Project.ID); + if (!bol) + { + TipFormHelper.ShowError("椤圭洰鍒犻櫎澶辫触锛岃閲嶈瘯锛�"); + return; + } + + _allBindingList.Remove(vm); + this.xhsProjectMgrViewModelBindingSource.ResetBindings(false); + TipFormHelper.ShowSucceed("椤圭洰鍒犻櫎鎴愬姛锛�"); + } + + //鍦板浘 + private void barBtnSetMap_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + var vm = GetCurrentViewModel(); + if (vm == null) + { + return; + } + var dlg = new SetXhsProjectMapDlg(); + dlg.ReloadDataEvent += (project, mapInfo) => + { + vm.Reset(project, mapInfo, vm.BimfaceFile); + this.treeList1.RefreshNode(this.treeList1.FocusedNode); + }; + dlg.SetBindingData(vm.Project, vm.MapInfo); + dlg.ShowDialog(); + } + + //璇︾粏淇℃伅 + private void barBtnInfo_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + var vm = GetCurrentViewModel(); + if (vm == null) + { + return; + } + var dlg = new ViewXhsProjectDlg(); + dlg.SetBindingData(vm.Project); + dlg.ShowDialog(); + } + + #endregion + + #region 妯″瀷 + + //鏌ョ湅bimface妯″瀷 + private void barBtnViewBimface_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + var vm = GetCurrentViewModel(); + if (vm == null) + { + return; + } + if (vm.BimfaceFile == null) + { + TipFormHelper.ShowWarn("璇峰厛涓婁紶鏂囦欢鍐嶈繘琛屾搷浣滐紒"); + return; + } + if (vm.ModelStatus < eXhsProjectStatus.UploadSucceed) + { + TipFormHelper.ShowWarn("璇峰厛涓婁紶鏂囦欢鍐嶈繘琛屾搷浣滐紒"); + return; + } + if (vm.ModelStatus < eXhsProjectStatus.ConvertSucceed) + { + TipFormHelper.ShowWarn("妯″瀷姝e湪杞婚噺鍖栵紝璇风◢鍚庨噸璇曪紒"); + return; + } + var guid = new PageGuid() { - Modular = Yw.WinFrmUI.PageModular.Bimface, + Modular = XhsFunctionHelper.Modular, MoudingType = Yw.WinFrmUI.Page.eMoudingType.Tab, - Function = Yw.WinFrmUI.PageFunction.ViewBimface3d, + Function = XhsFunctionHelper.ProjectBimfaceView, TagName = $"{vm.ID}" }; if (!IsExistPage(guid, true)) { - var page = new ViewXhsProjectBimfacePage(); - await page.SetBindingData(vm.ID); + var page = new XhsProjectBimfaceViewPage(); + page.SetBindingData(vm.Project); CreatePage(page, guid); } } + + //鏌ョ湅姘村姏妯″瀷 + private void barBtnViewHydro_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + var vm = GetCurrentViewModel(); + if (vm == null) + { + return; + } + if (vm.BimfaceFile == null) + { + TipFormHelper.ShowWarn("璇峰厛涓婁紶鏂囦欢鍐嶈繘琛屾搷浣滐紒"); + return; + } + if (vm.ModelStatus < eXhsProjectStatus.UploadSucceed) + { + TipFormHelper.ShowWarn("璇峰厛涓婁紶鏂囦欢鍐嶈繘琛屾搷浣滐紒"); + return; + } + if (vm.ModelStatus < eXhsProjectStatus.ConvertSucceed) + { + TipFormHelper.ShowWarn("妯″瀷姝e湪杞婚噺鍖栵紝璇风◢鍚庨噸璇曪紒"); + return; + } + + var guid = new PageGuid() + { + Modular = XhsFunctionHelper.Modular, + MoudingType = Yw.WinFrmUI.Page.eMoudingType.Tab, + Function = XhsFunctionHelper.ProjectQ3dView, + TagName = $"{vm.ID}" + }; + + if (!IsExistPage(guid, true)) + { + var page = new XhsProjectQ3dViewPage(); + page.SetBindingData(vm.Project); + CreatePage(page, guid); + } + } + + #endregion + + #region 鏇村鎿嶄綔 //鍏ㄩ儴灞曞紑 private void barBtnExpandAll_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) @@ -100,124 +441,58 @@ this.RefreshData(); } - #region 褰撳墠 + #endregion - //鑾峰彇褰撳墠 - private XhsProjectMgrViewModel GetCurrentViewModel() + #region 鏍戜簨浠� + + //妯℃嫙 + private void treeList1_RowCellClick(object sender, RowCellClickEventArgs e) { - if (_allProjectList == null) + if (e.Column != this.colSimulation) { - Yw.WinFrmUI.MessageBoxHelper.ShowError("鏁版嵁鍒濆鍖栭敊璇紒"); - return null; + return; } - if (_allProjectList == null) - { - Yw.WinFrmUI.MessageBoxHelper.ShowInfo("鏃犳暟鎹�"); - return null; - } - var vm = this.treeList1.GetCurrentViewModel(_allProjectList); + var vm = GetCurrentViewModel(); if (vm == null) { - Yw.WinFrmUI.MessageBoxHelper.ShowInfo("璇烽�夋嫨鏁版嵁琛�!"); - return null; + return; } - return vm; - } - - #endregion 褰撳墠 - - #region 鍩虹鎿嶄綔 - - //娣诲姞 - private void barBtnAdd_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) - { - var dlg = new AddProjectDlg(); - dlg.ReloadDataEvent += async (rhs, mapinfo) => + if (vm.BimfaceFile == null) { - var bll = new BLL.XhsProjectExtensions(); - var id = await bll.Insert(rhs); - if (id > 0) - { - rhs.ID = id; - var vmo = await _bll.GetByID(id); - _allProjectList.Add(new XhsProjectMgrViewModel(vmo)); - this.xhsProjectMgrViewModelBindingSource.ResetBindings(false); - if (mapinfo != null) - { - mapinfo.ObjectID = id; - mapinfo.ObjectName = rhs.Name; - var mapinfoid = await new Yw.BLL.MapInfo().Insert(mapinfo); - if (mapinfoid < 0) - { - TipFormHelper.ShowError("鍦板浘淇℃伅娣诲姞閿欒"); - } - } - return true; - } - return false; + TipFormHelper.ShowWarn("璇峰厛涓婁紶鏂囦欢鍐嶈繘琛屾搷浣滐紒"); + return; + } + if (vm.ModelStatus < eXhsProjectStatus.UploadSucceed) + { + TipFormHelper.ShowWarn("璇峰厛涓婁紶鏂囦欢鍐嶈繘琛屾搷浣滐紒"); + return; + } + if (vm.ModelStatus < eXhsProjectStatus.ConvertSucceed) + { + TipFormHelper.ShowWarn("妯″瀷姝e湪杞婚噺鍖栵紝璇风◢鍚庨噸璇曪紒"); + return; + } + var guid = new PageGuid() + { + Modular = XhsFunctionHelper.Modular, + MoudingType = Yw.WinFrmUI.Page.eMoudingType.Tab, + Function = XhsFunctionHelper.ProjectSimulation, + TagName = $"{vm.ID}" }; - dlg.ShowDialog(); - } - //缂栬緫 - private void barBtnEdit_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) - { - var currentVm = this.GetCurrentViewModel(); - var dlg = new EditProjectDlg(); - dlg.SetBindingData(currentVm.ID); - dlg.ReloadDataEvent += async (rhs, mapinfo) => + if (!IsExistPage(guid, true)) { - if (await _bll.Update(rhs)) - { - currentVm.Reset(rhs); - this.xhsProjectMgrViewModelBindingSource.ResetBindings(false); - if (mapinfo != null) - { - // mapinfo.ObjectID = id; - mapinfo.ObjectName = rhs.Name; - var bol = await new Yw.BLL.MapInfo().Update(mapinfo); - if (!bol) - { - TipFormHelper.ShowError("鍦板浘淇℃伅娣诲姞閿欒"); - } - } - return true; - } - return false; - }; - dlg.ShowDialog(); - } - - //鍒犻櫎 - private async void barBtnDelete_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) - { - var currentVm = GetCurrentViewModel(); - if (currentVm == null) - { - MessageBoxHelper.ShowWarning("璇烽�夋嫨鏁版嵁琛岋紒"); - return; - } - if (MessageBoxHelper.IsClickOk($"纭鍒犻櫎鏁版嵁琛�?", "鎻愮ず")) - return; - var groupresult = await _bll.DeleteByID(currentVm.ID); - if (groupresult) - { - _allProjectList.Remove(currentVm); - this.xhsProjectMgrViewModelBindingSource.ResetBindings(false); - TipFormHelper.ShowSucceed("鍒犻櫎鎴愬姛!"); - } - else - { - TipFormHelper.ShowSucceed("鍒犻櫎澶辫触!"); - return; + var page = new XhsProjectSimulationMgrPage(); + page.SetBindingData(vm.Project); + CreatePage(page, guid); } } - //璇︾粏淇℃伅 - private void barBtnInfo_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) - { - } + #endregion - #endregion 鍩虹鎿嶄綔 + + + + } } \ No newline at end of file -- Gitblit v1.9.3