using DevExpress.CodeParser;
|
using DevExpress.Utils;
|
using DevExpress.XtraTreeList;
|
using HStation.WinFrmUI.Xhs;
|
using NetTaste;
|
using System;
|
using Timer = System.Threading.Timer;
|
|
namespace HStation.WinFrmUI
|
{
|
public partial class XhsProjectMgrPage : DocumentPage
|
{
|
public XhsProjectMgrPage()
|
{
|
InitializeComponent();
|
this.treeList1.InitialMultiColSettings();
|
this.PageTitle.Caption = "项目管理";
|
this.PageTitle.HeaderSvgImage = this.svgImg32[0];
|
this.PageTitle.SvgImageSize = new Size(24, 24);
|
this.Load += XhsProjectMgrPage_Load;
|
}
|
|
private List<XhsProjectMgrViewModel> _allProjectList = null;
|
|
private BLL.XhsProjectExtensions _bll = null;
|
|
private void XhsProjectMgrPage_Load(object sender, EventArgs e)
|
{
|
repositoryItemImageComboBox1.Items.AddEnum(typeof(Yw.WinFrmUI.Bimface.eFileStatus));
|
var a = typeof(Yw.WinFrmUI.Bimface.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;
|
}
|
|
/// <summary>
|
/// 初始化数据源
|
/// </summary>
|
public override async void InitialDataSource()
|
{
|
base.InitialDataSource();
|
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 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);
|
_allProjectList.Add(vm);
|
}
|
else
|
{
|
var vm = new XhsProjectMgrViewModel(project, false);
|
_allProjectList.Add(vm);
|
}
|
}
|
}
|
this.xhsProjectMgrViewModelBindingSource.DataSource = _allProjectList;
|
}
|
|
//计时器(刷新上传状态)
|
public void StartTimer(int intervalMilliseconds, long ID)
|
{
|
// 创建一个 Timer,它将在给定的时间间隔后触发回调方法
|
var timer = new System.Threading.Timer(TimerCallback, ID, Timeout.Infinite, intervalMilliseconds);
|
// 启动 Timer
|
timer.Change(intervalMilliseconds, intervalMilliseconds);
|
}
|
|
private async void TimerCallback(object state)
|
{
|
var tupleState = (Tuple<long, Timer>)state;
|
long iD = tupleState.Item1;
|
Timer timer = tupleState.Item2;
|
try
|
{
|
var stateResult = await BimfaceHelper.GetFileTranslateStatus(iD);
|
if (stateResult == 0)
|
{
|
this.SetBindingData();
|
}
|
else
|
{
|
timer.Dispose();
|
}
|
}
|
catch (Exception ex)
|
{
|
}
|
}
|
|
#region 当前
|
|
//获取当前
|
private XhsProjectMgrViewModel GetCurrentViewModel()
|
{
|
if (_allProjectList == null)
|
{
|
Yw.WinFrmUI.MessageBoxHelper.ShowError("数据初始化错误!");
|
return null;
|
}
|
if (_allProjectList == null)
|
{
|
Yw.WinFrmUI.MessageBoxHelper.ShowInfo("无数据");
|
return null;
|
}
|
var vm = this.treeList1.GetCurrentViewModel(_allProjectList);
|
if (vm == null)
|
{
|
Yw.WinFrmUI.MessageBoxHelper.ShowInfo("请选择数据行!");
|
return null;
|
}
|
return vm;
|
}
|
|
#endregion 当前
|
|
#region 基础操作
|
|
//添加
|
private void barBtnAdd_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
{
|
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();
|
}
|
|
//编辑
|
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 (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;
|
}
|
}
|
|
//详细信息
|
private void barBtnInfo_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
{
|
}
|
|
//导入bimface文件
|
private void BtnImportBImfaceFile_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
{
|
}
|
|
#endregion 基础操作
|
|
#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 更多操作
|
|
#region 查看模型
|
|
//查看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);
|
}
|
}
|
|
#endregion 查看模型
|
|
//行内查看方案详情点击事件
|
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 XhsSchemeMultiMgrPage();
|
await page.SetBindingData(vm.ID);
|
CreatePage(page, guid);
|
}
|
}
|
}
|
}
|