using DevExpress.XtraEditors;
|
using IStation.Model;
|
using IStation.WinFrmUI.Curve;
|
using System;
|
using System.Collections.Generic;
|
using System.IO;
|
using System.Linq;
|
using System.Windows.Forms;
|
|
namespace IStation.WinFrmUI.Basic
|
{
|
public partial class PumpCurveMgrPage : DocumentPage
|
{
|
public PumpCurveMgrPage()
|
{
|
InitializeComponent();
|
this.PageTitle.Caption = "单泵曲线";
|
this.pumpCurveTreeListCtrl1.FocusedChangedEvent += PumpCurveTreeListCtrl1_FocusedChangedEvent; ;
|
this.curveExpressChart1.OnCurveCoordinateParasChanged += CurveExpressChart1_OnCurveCoordinateParasChanged;
|
}
|
|
|
|
private string _belongType;
|
private Model.PumpCurveExMapping _pumpCurveExMapping = null;
|
private Model.PumpSpeedCurve _pumpSpeedCurve = null;
|
private BLL.PumpCurve _bll = new BLL.PumpCurve();
|
|
/// <summary>
|
/// 初始化数据
|
/// </summary>
|
public override void InitialDataSource()
|
{
|
_pumpCurveExMapping = null;
|
this.pumpCurveTreeListCtrl1.SetBindingData();
|
}
|
|
|
//曲线切换
|
private void PumpCurveTreeListCtrl1_FocusedChangedEvent(string objectType, object obj)
|
{
|
_belongType = objectType;
|
_pumpCurveExMapping = null;
|
_pumpSpeedCurve = null;
|
this.curveExpressChart1.InitialChartData();
|
var isMapping = objectType == IStation.ObjectType.PumpCurveMapping;
|
if (isMapping)
|
{
|
var mapping = obj as Model.PumpCurveMapping;
|
var pumpCurve = _bll.GetByID(mapping.CurveID);
|
_pumpCurveExMapping = new Model.PumpCurveExMapping(pumpCurve, mapping);
|
SetBindingData(_pumpCurveExMapping.CurveInfo, _pumpCurveExMapping.CoordParas);
|
}
|
else
|
{
|
_pumpSpeedCurve = obj as Model.PumpSpeedCurve;
|
SetBindingData(_pumpSpeedCurve.CurveInfo, _pumpSpeedCurve.CoordParas);
|
}
|
SetRibbonButton(isMapping);
|
}
|
|
private void SetRibbonButton(bool use)
|
{
|
this.barBtnEditInfo.Enabled = use;
|
this.barBtnEditOtherName.Enabled = use;
|
this.barBtnSetWorkCurve.Enabled = use;
|
this.barBtnRefresh.Enabled = use;
|
this.barBtnDeleteCurve.Enabled = use;
|
this.barBtnEditCurve.Enabled = use;
|
this.barBtnCopyAndExpandCurve.Enabled = use;
|
this.barBtnExportYCM.Enabled = use;
|
// this.barSubImport.Enabled = use;
|
// this.barSubExport.Enabled = use;
|
}
|
|
|
|
|
//绑定数据
|
private void SetBindingData(Model.FeatCurveExpressGroup curveInfo, Model.CurveCoordinateParas coordinateParas)
|
{
|
if (curveInfo == null || curveInfo.CurveQH == null)
|
return;
|
this.curveExpressChart1.SetBindingData(curveInfo.CurveQH,
|
curveInfo.CurveQE,
|
curveInfo.CurveQP,
|
coordinateParas);
|
}
|
|
|
|
|
//坐标变换修改
|
private void CurveExpressChart1_OnCurveCoordinateParasChanged(Model.CurveCoordinateParas obj)
|
{
|
_pumpCurveExMapping.CoordParas = obj;
|
if (!new BLL.PumpCurve().Update(_pumpCurveExMapping))
|
{
|
XtraMessageBox.Show("修改失败!");
|
return;
|
}
|
XtraMessageBox.Show("修改成功!");
|
}
|
|
|
//修改泵曲线信息
|
private void barBtnEditInfo_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
{
|
if (_pumpCurveExMapping == null)
|
return;
|
WaitFrmHelper.ShowWaitForm();
|
var dlg = new EditPumpCurveInfoDlg();
|
dlg.Shown += delegate { WaitFrmHelper.HideWaitForm(); };
|
dlg.SetBindingData(_pumpCurveExMapping);
|
dlg.ReloadDataEvent += (rhs) =>
|
{
|
rhs.UpdateTime = DateTime.Now;
|
var result = new BLL.PumpCurve().Update(rhs);
|
if (result)
|
{
|
_pumpCurveExMapping.Reset(rhs);
|
SetBindingData(_pumpCurveExMapping.CurveInfo, _pumpCurveExMapping.CoordParas);
|
}
|
return result;
|
};
|
dlg.ShowDialog();
|
}
|
|
//修改泵曲线名称
|
private void barBtnEditOtherName_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
{
|
if (_pumpCurveExMapping == null)
|
return;
|
WaitFrmHelper.ShowWaitForm();
|
var dlg = new EditOtherNameDlg();
|
dlg.Shown += delegate { WaitFrmHelper.HideWaitForm(); };
|
dlg.SetBindingData(_pumpCurveExMapping.OtherName);
|
dlg.ReloadDataEvent += (rhs) =>
|
{
|
var mapping = new BLL.PumpCurveMapping().GetByID(_pumpCurveExMapping.MappingID);
|
mapping.OtherName = rhs;
|
var result = new BLL.PumpCurveMapping().Update(mapping);
|
if (result)
|
{
|
_pumpCurveExMapping.Reset(mapping);
|
this.pumpCurveTreeListCtrl1.UpdateOtherName(rhs);
|
}
|
return result;
|
};
|
dlg.ShowDialog();
|
}
|
|
//设置工作曲线
|
private void barBtnSetWorkCurve_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
{
|
if (_pumpCurveExMapping == null)
|
return;
|
var result = new BLL.PumpCurveMapping().UpdateWorkCurve(_pumpCurveExMapping.MappingID);
|
if (result)
|
{
|
_pumpCurveExMapping.IsWorking = true;
|
this.pumpCurveTreeListCtrl1.UpdateWorkingCurve();
|
}
|
}
|
|
//编辑曲线
|
private void barBtnEditCurve_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
{
|
if (_pumpCurveExMapping != null)
|
{
|
var curveInfo = _pumpCurveExMapping.CurveInfo;
|
if (curveInfo == null)
|
return;
|
if (curveInfo.CurveQH == null)
|
return;
|
var dlg = new EditCurveExpressDlg();
|
dlg.SetBindingData(curveInfo);
|
dlg.ReloadDataEvent += (featCurveExpressGroup) =>
|
{
|
_pumpCurveExMapping.CurveInfo = featCurveExpressGroup;
|
var bol = new BLL.PumpCurve().Update(_pumpCurveExMapping);
|
if (bol)
|
{
|
this.curveExpressChart1.SetBindingData(featCurveExpressGroup, _pumpCurveExMapping.CoordParas);
|
}
|
return bol;
|
};
|
dlg.ShowDialog();
|
}
|
else if (_pumpSpeedCurve != null)
|
{
|
var curveInfo = _pumpSpeedCurve.CurveInfo;
|
if (curveInfo == null)
|
return;
|
if (curveInfo.CurveQH == null)
|
return;
|
var dlg = new EditCurveExpressDlg();
|
dlg.SetBindingData(curveInfo);
|
dlg.ReloadDataEvent += (featCurveExpressGroup) =>
|
{
|
_pumpSpeedCurve.CurveInfo = featCurveExpressGroup;
|
var bol = new BLL.PumpSpeedCurve().Update(_pumpSpeedCurve);
|
if (bol)
|
{
|
this.curveExpressChart1.SetBindingData(featCurveExpressGroup, _pumpSpeedCurve.CoordParas);
|
}
|
return bol;
|
};
|
dlg.ShowDialog();
|
}
|
}
|
|
|
//复制并延长曲线
|
private void barBtnCopyAndExpandCurve_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
{
|
if (_pumpCurveExMapping == null)
|
return;
|
var dlg = new CopyAndExpandCurveDlg();
|
dlg.SetBindingData(_pumpCurveExMapping);
|
dlg.ReloadDataEvent += (otherName, curveExpressGroup) =>
|
{
|
var pumpCurve = new Model.PumpCurve(_pumpCurveExMapping);
|
pumpCurve.CurveInfo = curveExpressGroup;
|
pumpCurve.ID = 0;
|
|
var pumpCurveId = new BLL.PumpCurve().Insert(pumpCurve);
|
if (pumpCurveId < 1)
|
return false;
|
pumpCurve.ID = pumpCurveId;
|
|
var pumpCurveMapping = new Model.PumpCurveMapping();
|
pumpCurveMapping.PumpID = _pumpCurveExMapping.PumpID;
|
pumpCurveMapping.CurveID = pumpCurveId;
|
pumpCurveMapping.OtherName = otherName;
|
pumpCurveMapping.IsWorking = false;
|
|
var pumpCurveMappingId = new BLL.PumpCurveMapping().Insert(pumpCurveMapping);
|
if (pumpCurveMappingId < 1)
|
return false;
|
pumpCurveMapping.ID = pumpCurveMappingId;
|
return true;
|
};
|
dlg.ShowDialog();
|
}
|
|
//删除曲线
|
private void barBtnDeleteCurve_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
{
|
if (_pumpCurveExMapping == null)
|
return;
|
if (XtraMessageBox.Show("是否删除曲线?", "提示信息", MessageBoxButtons.YesNo, MessageBoxIcon.Information) != DialogResult.Yes)
|
return;
|
var result = new BLL.PumpCurve().DeleteByID(_pumpCurveExMapping.ID, out string msg);
|
if (!result)
|
{
|
XtraMessageBox.Show("删除失败!");
|
return;
|
}
|
this.pumpCurveTreeListCtrl1.DeletePumpMapping(_pumpCurveExMapping.ID, _pumpCurveExMapping.MappingID);
|
}
|
|
//刷新
|
private void barBtnReload_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
{
|
InitialDataSource();
|
}
|
|
//导出 inp
|
private void barBtnExportCrv_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
{
|
string fileName;
|
Model.FeatCurveExpressGroup featCurveExpressGroup = null;
|
//if (_belongType == IStation.ObjectType.PumpCurveExMapping)
|
//{
|
fileName = _pumpCurveExMapping.OtherName;
|
featCurveExpressGroup = _pumpCurveExMapping.CurveInfo;
|
//}
|
//else
|
//{
|
// fileName = _pumpSpeedCurve.HZ.ToString();
|
// featCurveExpressGroup = _pumpSpeedCurve.CurveInfo;
|
//}
|
ExportCurveHelper.INPFile(fileName, featCurveExpressGroup);
|
}
|
|
//导出ycm文件
|
private void barBtnExportYCM_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
{
|
if (_pumpCurveExMapping == null)
|
return;
|
if (_pumpCurveExMapping.CurveInfo.CurveQH == null)
|
return;
|
|
var json = PumpCurveDtoHelper.ExportJson(_pumpCurveExMapping);
|
if (string.IsNullOrEmpty(json))
|
{
|
XtraMessageBox.Show("无法解析!");
|
return;
|
}
|
|
var dlg = new SaveFileDialog();
|
dlg.Title = "导出 .ycm 文件";
|
dlg.FileName = $"{_pumpCurveExMapping.CurveCode}.ycm";
|
dlg.Filter = "ycm (*.ycm)|*.ycm";
|
if (dlg.ShowDialog() != DialogResult.OK)
|
return;
|
var filePath = dlg.FileName;
|
File.WriteAllText(filePath, json);
|
|
XtraMessageBox.Show("导出成功!");
|
}
|
|
|
private void barBtnTemp_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
{
|
var station = new BLL.Station().GetAll().Last();
|
var pumps = new BLL.Equipment().GetPumpListByBelongTypeAndBelongID(IStation.ObjectType.Station, station.ID);
|
foreach (var pump in pumps)
|
{
|
var list = new List<Temp2ViewModel>();
|
var curve = new BLL.PumpCurve().GetExMappingByPumpID(pump.ID).First();
|
for (int i = 1; i <= 4; i++)
|
{
|
var vm = new Temp2ViewModel(pump.RatedParas);
|
vm.ID = i;
|
vm.Name = i + "#";
|
vm.Code = pump.Name;
|
vm.CurveQH = curve.CurveInfo.CurveQH;
|
vm.CurveQE = curve.CurveInfo.CurveQE;
|
vm.CurveQP = curve.CurveInfo.CurveQP;
|
list.Add(vm);
|
}
|
var json = JsonHelper.Object2Json(list);
|
var path = Path.Combine(Settings.File.RootDirectory, "陈行");
|
if (!Directory.Exists(path))
|
{
|
Directory.CreateDirectory(path);
|
}
|
File.WriteAllText(path + "\\" + pump.Name + ".json", json);
|
}
|
|
XtraMessageBox.Show("over");
|
}
|
|
public class Temp2ViewModel
|
{
|
public Temp2ViewModel(Model.Pump rhs)
|
{
|
this.Qr = rhs.Qr;
|
this.Hr = rhs.Hr;
|
this.Nr = rhs.Nr;
|
this.Pr = rhs.Pr;
|
this.Er = rhs.Er;
|
this.Ic = rhs.Ic;
|
this.Oc = rhs.Oc;
|
this.IOd = rhs.IOd;
|
this.IsBp = rhs.IsBp;
|
this.IsSxp = rhs.IsSxp;
|
}
|
|
public long ID { get; set; }
|
public string Code { get; set; }
|
public string Name { get; set; }
|
public double Qr { get; set; }
|
public double Hr { get; set; }
|
public double Nr { get; set; }
|
public double Pr { get; set; }
|
public double Er { get; set; }
|
public double? Ic { get; set; }
|
public double? Oc { get; set; }
|
public double? IOd { get; set; }
|
public double? Ie { get; set; }
|
public double? Oe { get; set; }
|
public bool IsBp { get; set; }
|
public bool IsSxp { get; set; }
|
public CurveExpress CurveQH { get; set; }
|
public CurveExpress CurveQE { get; set; }
|
public CurveExpress CurveQP { get; set; }
|
}
|
|
//陈行输水
|
private void barBtnExportChSS_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
{
|
var path = Path.Combine(Settings.File.RootDirectory, "陈行");
|
if (!Directory.Exists(path))
|
{
|
Directory.CreateDirectory(path);
|
}
|
var stations = new BLL.Station().GetAll();
|
stations = stations?.Where(x => x.Name.Contains("输")).ToList();
|
if (stations == null || !stations.Any())
|
return;
|
var ch1 = stations.First();
|
var ch2 = stations.Last();
|
|
var model = new Model.StationInfo();
|
model.Station1 = new List<PumpInfo>();
|
model.Station2 = new List<PumpInfo>();
|
|
var pumps1 = new BLL.Equipment().GetPumpListByBelongTypeAndBelongID(IStation.ObjectType.Station, ch1.ID);
|
foreach (var pump in pumps1)
|
{
|
var curve = new BLL.PumpCurve().GetDefaultWorkingByPumpID(pump.ID);
|
if (curve == null)
|
continue;
|
var rhs = new PumpInfo();
|
rhs.Flag = pump.SortCode;
|
rhs.Code = pump.NO;
|
rhs.Name = pump.Name;
|
rhs.Qr = pump.RatedParas.Qr;
|
rhs.Hr = pump.RatedParas.Hr;
|
rhs.Nr = pump.RatedParas.Nr;
|
rhs.Pr = pump.RatedParas.Pr;
|
rhs.Er = pump.RatedParas.Er;
|
rhs.Ic = pump.RatedParas.Ic;
|
rhs.Oc = pump.RatedParas.Oc;
|
rhs.IOd = pump.RatedParas.IOd;
|
rhs.IsBp = pump.RatedParas.IsBp;
|
rhs.CurveQH = curve.CurveInfo.CurveQH;
|
rhs.CurveQE = curve.CurveInfo.CurveQE;
|
rhs.CurveQP = curve.CurveInfo.CurveQP;
|
model.Station1.Add(rhs);
|
}
|
|
var pumps2 = new BLL.Equipment().GetPumpListByBelongTypeAndBelongID(IStation.ObjectType.Station, ch2.ID);
|
foreach (var pump in pumps2)
|
{
|
var curve = new BLL.PumpCurve().GetDefaultWorkingByPumpID(pump.ID);
|
if (curve == null)
|
continue;
|
var rhs = new PumpInfo();
|
rhs.Flag = pump.SortCode;
|
rhs.Code = pump.NO;
|
rhs.Name = pump.Name;
|
rhs.Qr = pump.RatedParas.Qr;
|
rhs.Hr = pump.RatedParas.Hr;
|
rhs.Nr = pump.RatedParas.Nr;
|
rhs.Pr = pump.RatedParas.Pr;
|
rhs.Er = pump.RatedParas.Er;
|
rhs.Ic = pump.RatedParas.Ic;
|
rhs.Oc = pump.RatedParas.Oc;
|
rhs.IOd = pump.RatedParas.IOd;
|
rhs.IsBp = pump.RatedParas.IsBp;
|
rhs.CurveQH = curve.CurveInfo.CurveQH;
|
rhs.CurveQE = curve.CurveInfo.CurveQE;
|
rhs.CurveQP = curve.CurveInfo.CurveQP;
|
model.Station2.Add(rhs);
|
}
|
|
var json = JsonHelper.Object2FormatJson(model);
|
var jsonPath = path + "\\" + "Station" + ".json";
|
File.WriteAllText(jsonPath, json);
|
XtraMessageBox.Show("over");
|
}
|
|
private void barBtnDataValid_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
{
|
|
|
|
}
|
}
|
}
|