From dd4da9a651330fabe210618581299ac3536bda2f Mon Sep 17 00:00:00 2001 From: lixiaojun <1287241240@qq.com> Date: 星期六, 26 十月 2024 21:41:24 +0800 Subject: [PATCH] 修复下载问题 --- WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/03-mgr/XhsProjectMgrPage.cs | 410 +++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 349 insertions(+), 61 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 83c8aeb..ce4f749 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,5 +1,10 @@ -锘縰sing DevExpress.Utils; +锘縰sing DevExpress.CodeParser; +using DevExpress.Utils; +using DevExpress.XtraTreeList; using HStation.WinFrmUI.Xhs; +using NetTaste; +using System; +using Timer = System.Threading.Timer; namespace HStation.WinFrmUI { @@ -9,14 +14,34 @@ { 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.SvgImageSize = new Size(24, 24); + this.Load += XhsProjectMgrPage_Load; + } + + private void XhsProjectMgrPage_Load + (object sender, EventArgs e) + { + repositoryItemImageComboBox1.Items.AddEnum(typeof(XhsProjectMgrViewModel.eFileStatus)); + var a = typeof(XhsProjectMgrViewModel.eFileStatus); + 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 List<XhsProjectMgrViewModel> _allProjectList = null; - private BLL.XhsProject _Bll = null; + private BLL.XhsProjectExtensions _bll = null; + + private event Action ImportProjectCompletedEvent = null; /// <summary> /// 鍒濆鍖栨暟鎹簮 @@ -24,79 +49,72 @@ public override async void InitialDataSource() { base.InitialDataSource(); - _Bll = new BLL.XhsProject(); - var allProjectList = await _Bll.GetAll(); + this.SetBindingData(); + } + + private async void SetBindingData() + { + _bll = new BLL.XhsProjectExtensions(); + var allProjectList = await _bll.GetAll(); _allProjectList = new List<XhsProjectMgrViewModel>(); if (allProjectList != null && allProjectList.Count > 0) { foreach (var project in allProjectList) { - var vm = new XhsProjectMgrViewModel(project); - _allProjectList.Add(vm); + var mapinfo = await new Yw.BLL.MapInfo().Get(HStation.Xhs.DataType.XhsProject, project.ID, Yw.Map.Kind.Gaodei, Yw.Map.Purpose.Location); + var bimFile = await BimfaceFileStateHelper.IsHaveBimFace(project.ID); + if (bimFile != null) + { + //濡傛灉鏂囦欢鐘舵�佷负涓婁紶涓垯杩涜瀹氭椂璇锋眰鍒锋柊鐘舵�� + if (bimFile.FileStatus == 0) + { + Task.Factory.StartNew(() => + { + StartTimer(300, bimFile.ID); + }); + } + var vm = new XhsProjectMgrViewModel(project, true, bimFile.FileStatus, mapinfo); + _allProjectList.Add(vm); + } + else + { + var vm = new XhsProjectMgrViewModel(project, false, 8, mapinfo); + _allProjectList.Add(vm); + } } } this.xhsProjectMgrViewModelBindingSource.DataSource = _allProjectList; } - //鍙戝竷 - private void barBtnPublish_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + //璁℃椂鍣�(鍒锋柊涓婁紶鐘舵��) + public void StartTimer(int intervalMilliseconds, long ID) { + // 鍒涘缓涓�涓� Timer锛屽畠灏嗗湪缁欏畾鐨勬椂闂撮棿闅斿悗瑙﹀彂鍥炶皟鏂规硶 + var timer = new System.Threading.Timer(TimerCallback, ID, Timeout.Infinite, intervalMilliseconds); + // 鍚姩 Timer + timer.Change(intervalMilliseconds, intervalMilliseconds); } - //鏌ョ湅bimface妯″瀷 - private async void barBtnViewBimface_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + private async void TimerCallback(object state) { - var vm = GetCurrentViewModel(); - if (vm == null) + var tupleState = (Tuple<long, Timer>)state; + long iD = tupleState.Item1; + Timer timer = tupleState.Item2; + try { - return; + var stateResult = await BimfaceHelper.GetFileTranslateStatus(iD); + if (stateResult == 0) + { + this.SetBindingData(); + } + else + { + timer.Dispose(); + } } - var guid = new PageGuid() + catch (Exception ex) { - Modular = Yw.WinFrmUI.PageModular.Bimface, - MoudingType = Yw.WinFrmUI.Page.eMoudingType.Tab, - Function = Yw.WinFrmUI.PageFunction.ViewBimface3d, - TagName = $"{vm.ID}" - }; - - if (!IsExistPage(guid, true)) - { - var page = new ViewXhsProjectBimfacePage(); - await page.SetBindingData(vm.ID); - CreatePage(page, guid); } - } - - //鍏ㄩ儴灞曞紑 - private void barBtnExpandAll_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) - { - this.treeList1.ExpandAll(); - } - - //鍏ㄩ儴鎶樺彔 - private void barBtnCollpseAll_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) - { - this.treeList1.CollapseAll(); - } - - /// <summary> - /// 鏍戠嚎 - /// </summary> - private void barCkTreeLine_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e) - { - this.treeList1.OptionsView.ShowTreeLines = this.barCkTreeLine.Checked ? DefaultBoolean.True : DefaultBoolean.False; - } - - //鏌ヨ - private void barBtnSearch_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) - { - this.treeList1.OptionsFind.AlwaysVisible = !this.treeList1.OptionsFind.AlwaysVisible; - } - - //鍒锋柊 - private void barBtnRefresh_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) - { - this.RefreshData(); } #region 褰撳墠 @@ -128,22 +146,292 @@ #region 鍩虹鎿嶄綔 //娣诲姞 - private void barBtnAdd_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + private async void barBtnAdd_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { - var dlg = new AddProjectDlg(); - dlg.ShowDialog(); + /* var dlg = new AddProjectDlg(); + dlg.ReloadDataEvent += async (rhs, mapinfo) => + { + 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, false)); + 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; + }; + dlg.ShowDialog(); + */ + var dlg = new ImportXhsProjectDlg(); + dlg.SetBindingData(); + if (dlg.ShowDialog() == DialogResult.OK) + { + var prj = dlg.ViewModel; + if (prj.ProjectID == null) + return; + var vmo = await _bll.GetByID((long)prj.ProjectID); + if (vmo == null) + { + TipFormHelper.ShowError("瀵煎叆澶辫触!"); + return; + } + else + { + TipFormHelper.ShowSucceed("瀵煎叆鎴愬姛!"); + var mapinfo = await new Yw.BLL.MapInfo().Get(HStation.Xhs.DataType.XhsProject, (long)prj.ProjectID, Yw.Map.Kind.Gaodei, Yw.Map.Purpose.Location); + var bimFile = await BimfaceFileStateHelper.IsHaveBimFace((long)prj.ProjectID); + if (bimFile != null) + { + _allProjectList.Add(new XhsProjectMgrViewModel(vmo, true, bimFile.FileStatus, mapinfo)); + } + else + { + _allProjectList.Add(new XhsProjectMgrViewModel(vmo, false, 8, mapinfo)); + } + this.xhsProjectMgrViewModelBindingSource.ResetBindings(false); + } + } } //缂栬緫 private void barBtnEdit_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { + var currentVm = this.GetCurrentViewModel(); + if (currentVm == null) + { + MessageBoxHelper.ShowWarning("璇烽�夋嫨鏁版嵁琛�!"); + return; + } + var dlg = new EditProjectDlg(); + dlg.SetBindingData(currentVm.ID); + dlg.ReloadDataEvent += async (rhs, mapinfo) => + { + 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 void barBtnDelete_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + 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; + } + } + + //璇︾粏淇℃伅 + private void barBtnInfo_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { } #endregion 鍩虹鎿嶄綔 + + private void treeList1_CustomDrawRow(object sender, DevExpress.XtraTreeList.CustomDrawRowEventArgs e) + { + var a = repositoryItemButtonEdit1.ReadOnly = true; + } + + private async void treeList1_RowCellClick(object sender, RowCellClickEventArgs e) + { + if (_allProjectList == null || _allProjectList.Count < 1) + return; + var vm = GetCurrentViewModel(); + if (vm == null) + { + return; + } + if (e.Column != this.ColViewBimface) + return; + if (!vm.IsHaveBimface) + { + TipFormHelper.ShowWarn("璇峰厛涓婁紶鏂囦欢鍐嶈繘琛屾搷浣�!"); + return; + } + var guid = new PageGuid() + { + Modular = Yw.WinFrmUI.PageModular.Bimface, + MoudingType = Yw.WinFrmUI.Page.eMoudingType.Tab, + Function = Yw.WinFrmUI.PageFunction.ViewSchemeMgr, + TagName = $"{vm.ID}" + }; + + if (!IsExistPage(guid, true)) + { + var page = new XhsProjectSimulationMgrPage(); + await page.SetBindingData(vm.ID); + CreatePage(page, guid); + } + } + + #region 鏇村鎿嶄綔 + + //鍏ㄩ儴灞曞紑 + private void barBtnExpandAll_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + this.treeList1.ExpandAll(); + } + + //鍏ㄩ儴鎶樺彔 + private void barBtnCollpseAll_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + this.treeList1.CollapseAll(); + } + + /// <summary> + /// 鏍戠嚎 + /// </summary> + private void barCkTreeLine_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + this.treeList1.OptionsView.ShowTreeLines = this.barCkTreeLine.Checked ? DefaultBoolean.True : DefaultBoolean.False; + } + + //鏌ヨ + private void barBtnSearch_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + this.treeList1.OptionsFind.AlwaysVisible = !this.treeList1.OptionsFind.AlwaysVisible; + } + + //鍒锋柊 + private void barBtnRefresh_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + this.SetBindingData(); + } + + #endregion 鏇村鎿嶄綔 + + //鏌ョ湅bimface妯″瀷 + private async void barBtnViewBimface_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + var vm = GetCurrentViewModel(); + if (vm == null) + { + return; + } + if (!vm.IsHaveBimface) + { + TipFormHelper.ShowWarn("璇峰厛涓婁紶鏂囦欢鍐嶈繘琛屾搷浣�!"); + return; + } + var guid = new PageGuid() + { + Modular = Yw.WinFrmUI.PageModular.Bimface, + MoudingType = Yw.WinFrmUI.Page.eMoudingType.Tab, + Function = Yw.WinFrmUI.PageFunction.ViewBimface3d, + TagName = $"{vm.ID}" + }; + + if (!IsExistPage(guid, true)) + { + var page = new ViewXhsProjectBimfacePage(); + await page.SetBindingData(vm.ID); + CreatePage(page, guid); + } + } + + //鏌ョ湅姘村姏妯″瀷 + private void barBtnViewHydro_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + if (_allProjectList == null || _allProjectList.Count < 1) + return; + var vm = GetCurrentViewModel(); + if (vm == null) + { + return; + } + if (!vm.IsHaveBimface) + { + TipFormHelper.ShowWarn("璇峰厛涓婁紶鏂囦欢鍐嶈繘琛屾搷浣�!"); + return; + } + var guid = new PageGuid() + { + Modular = "Hydro", + MoudingType = Yw.WinFrmUI.Page.eMoudingType.Tab, + Function = "ViewModel", + }; + if (!IsExistPage(guid, true)) + { + var page = new HydroQ3dViewPage(); + page.SetBindingData(vm.ID); + CreatePage(page, guid); + } + } + + //瀵煎叆鏂囦欢 + private async void BtnAddBimfaceFile_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + var currentVm = this.GetCurrentViewModel(); + if (currentVm == null) + { + MessageBoxHelper.ShowWarning("璇烽�夋嫨鏁版嵁琛�!"); + return; + } + if (currentVm.ModelState != XhsProjectMgrViewModel.eFileStatus.Noupload) + { + MessageBoxHelper.ShowWarning("宸茬粡瀛樺湪妯″瀷鏂囦欢!"); + return; + } + var dlg = new ImportXhsProjectFileDlg(); + dlg.SetBindingData(currentVm.ID); + if (dlg.ShowDialog() == DialogResult.OK) + { + var prj = dlg.ViewModel; + if (prj.ProjectID == null) + return; + var mapinfo = await new Yw.BLL.MapInfo().Get(HStation.Xhs.DataType.XhsProject, (long)prj.ProjectID, Yw.Map.Kind.Gaodei, Yw.Map.Purpose.Location); + var bimFile = await BimfaceFileStateHelper.IsHaveBimFace((long)prj.ProjectID); + if (bimFile != null) + { + currentVm.Reset(currentVm, bimFile.FileStatus); + this.xhsProjectMgrViewModelBindingSource.ResetBindings(false); + } + } + } } } \ No newline at end of file -- Gitblit v1.9.3