using DevExpress.Xpo.Helpers;
|
using DevExpress.XtraEditors;
|
using Yw.DAL.Basic;
|
using Yw.EPAnet;
|
using Yw.WinFrmUI.Q3d;
|
|
namespace HStation.WinFrmUI
|
{
|
public partial class XhsSchemeHydraulicSimulationPage : DocumentPage
|
{
|
public XhsSchemeHydraulicSimulationPage()
|
{
|
InitializeComponent();
|
this.xhsProjectHydroQ3dCtrl1.ClickParterEvent += XhsProjectHydroQ3dCtrl1_ClickParterEvent;
|
|
}
|
|
|
|
private long _projectId;
|
private Yw.Model.HydroModelInfo _hydro = null;
|
private Yw.Model.HydroParterInfo _parter = null;
|
private List<CalcuParter> _allCalcuParterList = null;
|
|
|
/// <summary>
|
///
|
/// </summary>
|
public async Task SetBindingData(long projectId)
|
{
|
_projectId = projectId;
|
var projectSite = await BLLFactory<HStation.BLL.XhsProjectSite>.Instance.GetDefaultByProjectID(projectId);
|
if (projectSite == null)
|
{
|
return;
|
}
|
var hydroRelation = await new Yw.BLL.HydroModelRelation().GetDefaultByObjectTypeAndObjectIDOfPurpose(HStation.Xhs.DataType.XhsProjectSite, projectSite.ID, HStation.Xhs.Purpose.Simulation);
|
if (hydroRelation == null)
|
{
|
return;
|
}
|
_hydro = await new Yw.BLL.HydroModelInfo().GetByID(hydroRelation.ModelID);
|
// this.xhsProjectSimulationPropertyCtrl1.SetBindingData(_hydro);
|
}
|
|
/// <summary>
|
/// 初始化数据
|
/// </summary>
|
public override void InitialDataSource()
|
{
|
base.InitialDataSource();
|
this.xhsProjectHydroQ3dCtrl1.SetBindingData(_hydro);
|
|
}
|
|
//bimface 构件点击
|
private void XhsProjectHydroQ3dCtrl1_ClickParterEvent(string objectId)
|
{
|
if (_hydro == null)
|
{
|
_parter = null;
|
return;
|
}
|
var allParterList = _hydro.GetAllParters();
|
_parter = allParterList.Find(x => x.Code == objectId);
|
this.xhsProjectSimulationPropertyCtrl1.SelectParter(_parter, allParterList);
|
if (_parter != null)
|
{
|
if (_allCalcuParterList != null && _allCalcuParterList.Count > 0)
|
{
|
var calcuParter = _allCalcuParterList.Find(x => x.Id == _parter.Code);
|
if (calcuParter != null)
|
{
|
IHydroCalcuProperty calcuProperty = null;
|
if (calcuParter is CalcuNode calcuNode)
|
{
|
var calcuNodeProperty = new Yw.WinFrmUI.HydroCalcuNodeProperty();
|
calcuNodeProperty.ID = _parter.ID;
|
calcuNodeProperty.CalcuPress = calcuNode.Press;
|
calcuNodeProperty.CalcuDemand = calcuNode.Demand;
|
calcuNodeProperty.CalcuHead = calcuNode.Head;
|
calcuProperty = calcuNodeProperty;
|
}
|
else if (calcuParter is CalcuLink calcuLink)
|
{
|
var calcuLinkProperty = new Yw.WinFrmUI.HydroCalcuLinkProperty();
|
calcuLinkProperty.ID = _parter.ID;
|
calcuLinkProperty.CalcuHeadLoss = calcuLink.Headloss;
|
calcuLinkProperty.CalcuFlow = calcuLink.Flow;
|
calcuLinkProperty.CalcuVelocity = calcuLink.Velocity;
|
calcuProperty = calcuLinkProperty;
|
}
|
|
if (calcuProperty != null)
|
{
|
this.xhsProjectSimulationPropertyCtrl1.UpdateCalcuProperty(calcuProperty);
|
}
|
}
|
}
|
}
|
|
}
|
|
private void barBtnCheck_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
{
|
if (_hydro == null)
|
{
|
return;
|
}
|
var netWork = Yw.Hydro.ParseHelper.ToNetwork(_hydro);
|
var result = netWork.Check();
|
XtraMessageBox.Show(JsonHelper.Object2FormatJson(result));
|
}
|
|
private void barBtnCalcu_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
{
|
if (_hydro == null)
|
{
|
return;
|
}
|
var netWork = Yw.Hydro.ParseHelper.ToNetwork(_hydro);
|
var result = netWork.Calcu();
|
if (!result.Succeed)
|
{
|
XtraMessageBox.Show(JsonHelper.Object2FormatJson(result));
|
return;
|
}
|
_allCalcuParterList = result.GetParterList();
|
TipFormHelper.ShowSucceed("计算成功");
|
if (_parter != null)
|
{
|
var calcuParter = _allCalcuParterList.Find(x => x.Id == _parter.Code);
|
if (calcuParter != null)
|
{
|
IHydroCalcuProperty calcuProperty = null;
|
if (calcuParter is CalcuNode calcuNode)
|
{
|
var calcuNodeProperty = new Yw.WinFrmUI.HydroCalcuNodeProperty();
|
calcuNodeProperty.ID = _parter.ID;
|
calcuNodeProperty.CalcuPress = calcuNode.Press;
|
calcuNodeProperty.CalcuDemand = calcuNode.Demand;
|
calcuNodeProperty.CalcuHead = calcuNode.Head;
|
calcuProperty = calcuNodeProperty;
|
}
|
else if (calcuParter is CalcuLink calcuLink)
|
{
|
var calcuLinkProperty = new Yw.WinFrmUI.HydroCalcuLinkProperty();
|
calcuLinkProperty.ID = _parter.ID;
|
calcuLinkProperty.CalcuHeadLoss = calcuLink.Headloss;
|
calcuLinkProperty.CalcuFlow = calcuLink.Flow;
|
calcuLinkProperty.CalcuVelocity = calcuLink.Velocity;
|
calcuProperty = calcuLinkProperty;
|
}
|
|
if (calcuProperty != null)
|
{
|
this.xhsProjectSimulationPropertyCtrl1.UpdateCalcuProperty(calcuProperty);
|
}
|
}
|
}
|
}
|
|
private void barBtnParter_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
{
|
var dlg = new HydroParterListDlg();
|
dlg.SetBindingData(_hydro);
|
dlg.Show();
|
}
|
|
private void barBtnInp_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
{
|
var fileName = Yw.WinFrmUI.FileDialogHelper.SaveInp("导出Inp文件");
|
if (string.IsNullOrEmpty(fileName))
|
{
|
return;
|
}
|
var netWork = Yw.Hydro.ParseHelper.ToNetwork(_hydro);
|
var result = netWork.ToInpString();
|
File.WriteAllText(fileName, result);
|
TipFormHelper.ShowSucceed("导出成功");
|
}
|
|
private async void barBtnSave_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
{
|
if (_hydro == null)
|
{
|
return;
|
}
|
var bll = new Yw.BLL.HydroModelInfo();
|
var result = await bll.Save(_hydro);
|
if (result > 0)
|
{
|
Yw.WinFrmUI.TipFormHelper.ShowSucceed("保存成功");
|
}
|
}
|
}
|
}
|