using DevExpress.XtraEditors; using DevExpress.XtraEditors.Controls; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Windows.Forms; namespace TProduct.WinFrmUI.TestBench { public partial class AddWorkBench4ValveDlg : DevExpress.XtraEditors.XtraForm { public AddWorkBench4ValveDlg() { InitializeComponent(); this.simpleBtnOK.SetConfirmButtonColor(); this.simpleBtnCancel.SetCancelButtonColor(); } private void ButtonClick(object sender, ButtonPressedEventArgs e) { var control = sender as DevExpress.XtraEditors.ImageComboBoxEdit; if (control == null) return; control.EditValue = null; } List _allProdcutStyle; TProduct.Model.eProductType _currentProductType = TProduct.Model.eProductType.Valve; private void AddWorkBench4ValveDlg_Load(object sender, EventArgs e) { this._allProdcutStyle = new BLL.ProductStyle().GetAll(); _currentProductType = TProduct.Model.eProductType.Valve; var valv_styles = _allProdcutStyle.Where(x => x.Type == _currentProductType).Select(x => x); checkedComboProductStyle.Properties.Items.Clear(); if (valv_styles != null) { foreach (var f in valv_styles) this.checkedComboProductStyle.Properties.Items.Add( new DevExpress.XtraEditors.Controls.CheckedListBoxItem(f.ID, f.Name)); } comboBoxLinkType.SelectedIndex = 1; comboBoxPipeIndex.Properties.Items.Clear(); this.comboBoxPipeIndex.Properties.Items.Add("未知"); if (TProduct.UserSetting.Setting.ValveTest.PipeIndex != null) this.comboBoxPipeIndex.Properties.Items.AddRange(TProduct.UserSetting.Setting.ValveTest.PipeIndex); } private void imageComboProductType_SelectedIndexChanged(object sender, EventArgs e) { } public event Action ReloadDataEvent = null; /// /// 初始化数据 /// public void SetBindingData() { this.chkIsCkecked.Checked = true; this.txtCode.Properties.ReadOnly = true; } private void simpleBtnOK_Click(object sender, EventArgs e) { if (!Verify()) return; if (TProduct.WinFrmUI.GlobeParas.CurrentLoginUser == null) { MessageBox.Show("用户信息丢失"); return; } List sel_style_ids = null; if (checkEdit所有分类.Checked) { } else { sel_style_ids = new List(); for (int i = 0; i < checkedComboProductStyle.Properties.Items.Count; i++) { if (checkedComboProductStyle.Properties.Items[i].CheckState == CheckState.Checked) { sel_style_ids.Add(Convert.ToInt64(checkedComboProductStyle.Properties.Items[i].Value)); } } if (sel_style_ids.Count == 0) { MessageBox.Show("请选择产品类型"); return; } } //var sel_styles = (from x in _allProdcutStyle where sel_style_ids.Contains(x.ID) select x).ToList(); var benchBase = new Model.WorkBenchBase(); benchBase.CreateUserID = TProduct.WinFrmUI.GlobeParas.CurrentLoginUser.ID; benchBase.CreateTime = DateTime.Now; benchBase.UpdateUserID = TProduct.WinFrmUI.GlobeParas.CurrentLoginUser.ID; benchBase.UpdateTime = DateTime.Now; benchBase.Code = this.txtCode.Text.Trim(); benchBase.Name = this.txtName.Text.Trim(); benchBase.Tag = this.textEditTag.Text; benchBase.ProductType = _currentProductType; benchBase.ProductStyleID = sel_style_ids; benchBase.UseStatus = Model.eUseStatus.Enable; benchBase.PipelineID = comboBoxPipeIndex.SelectedIndex; var pipeParas = new Model.PipeParas4Valve(); if (!string.IsNullOrEmpty(this.txtDiaP1.Text)) pipeParas.DiaP1 = double.Parse(this.txtDiaP1.Text); else pipeParas.DiaP1 = null; if (!string.IsNullOrEmpty(this.txtDiaP2.Text)) pipeParas.DiaP2 = double.Parse(this.txtDiaP2.Text); else pipeParas.DiaP2 = null; if (!string.IsNullOrEmpty(this.txtDiaP3.Text)) pipeParas.DiaP3 = double.Parse(this.txtDiaP3.Text); else pipeParas.DiaP3 = null; benchBase.PipeParas = pipeParas.ToJsonString(); benchBase.TestType = new List(); benchBase.TestType.Add(Model.eTestType.ValveTest); var setting = new TProduct.Model.WorkBenchSetting4Valve(); setting.Elevation = double.Parse(this.spinEdit海拔高度.Text); setting.AtmosphericPressure = double.Parse(this.spinEdit大气压.Text); setting.IsOperateValveDegree = this.checkEdit能否操控出口阀门开度.Checked; benchBase.TestSetting = setting.ToJsonString(); benchBase.LinkTag = comboBoxLinkTag.Text; benchBase.LinkType = _linkType; //预设测点 //List allMonitorPoints = AddDefaultMonitorsValve(pipeParas); benchBase.ID = new BLL.WorkBenchBase().InsertExParas(benchBase, null); if (benchBase.ID > 0) { ReloadDataEvent?.Invoke(benchBase); this.DialogResult = DialogResult.OK; this.Close(); } else { XtraMessageBox.Show("添加失败!"); } } #region 预设测点 private List AddDefaultMonitorsValve(Model.PipeParas4Valve pipeParas) { var allMonitorPoints = new List(); allMonitorPoints = new List(); allMonitorPoints.Add(new TProduct.Model.WorkBenchMonitorPoint() { Name = "P1直管段压力A", MonitorType = TProduct.Model.eMonitorType.压力, Property = TProduct.Model.MonitorTypeProperty.P1, //PipeDia = pipeParas.DiaP1, SumCalcCoeff = 1, ValueCoeffParas = null, UseStatus = TProduct.Model.eUseStatus.Enable, SourceType = TProduct.Model.eMonitorPointSourceType.模拟量, DigitalParas = null, DispInPanel = 1, AnalogParas = new TProduct.Model.AnalogMonitorPointParas() { RangeMin = -0.1, RangeMax = 0.1 }, CreateTime = DateTime.Now, CreateUserID = TProduct.WinFrmUI.GlobeParas.CurrentLoginUser.ID, UpdateTime = DateTime.Now, UpdateUserID = TProduct.WinFrmUI.GlobeParas.CurrentLoginUser.ID, SortCode = 1 }); if (spinEditP1.Value >= 2) { allMonitorPoints.Add(new TProduct.Model.WorkBenchMonitorPoint() { Name = "P1直管段压力B", MonitorType = TProduct.Model.eMonitorType.压力, Property = TProduct.Model.MonitorTypeProperty.P1, //PipeDia = pipeParas.DiaP1, SumCalcCoeff = 1, ValueCoeffParas = null, UseStatus = TProduct.Model.eUseStatus.Enable, SourceType = TProduct.Model.eMonitorPointSourceType.模拟量, DigitalParas = null, DispInPanel = 1, AnalogParas = new TProduct.Model.AnalogMonitorPointParas() { RangeMin = -0.1, RangeMax = 0.1 }, CreateTime = DateTime.Now, CreateUserID = TProduct.WinFrmUI.GlobeParas.CurrentLoginUser.ID, UpdateTime = DateTime.Now, UpdateUserID = TProduct.WinFrmUI.GlobeParas.CurrentLoginUser.ID, SortCode = 2 }); } if (spinEditP1.Value >= 3) { allMonitorPoints.Add(new TProduct.Model.WorkBenchMonitorPoint() { Name = "P1直管段压力C", MonitorType = TProduct.Model.eMonitorType.压力, Property = TProduct.Model.MonitorTypeProperty.P1, //PipeDia = pipeParas.DiaP1, SumCalcCoeff = 1, ValueCoeffParas = null, UseStatus = TProduct.Model.eUseStatus.Enable, SourceType = TProduct.Model.eMonitorPointSourceType.模拟量, DigitalParas = null, DispInPanel = 1, AnalogParas = new TProduct.Model.AnalogMonitorPointParas() { RangeMin = -0.1, RangeMax = 0.1 }, CreateTime = DateTime.Now, CreateUserID = TProduct.WinFrmUI.GlobeParas.CurrentLoginUser.ID, UpdateTime = DateTime.Now, UpdateUserID = TProduct.WinFrmUI.GlobeParas.CurrentLoginUser.ID, SortCode = 3 }); } if (spinEditP1.Value >= 4) { allMonitorPoints.Add(new TProduct.Model.WorkBenchMonitorPoint() { Name = "P1直管段压力D", MonitorType = TProduct.Model.eMonitorType.压力, Property = TProduct.Model.MonitorTypeProperty.P1, //PipeDia = pipeParas.DiaP1, SumCalcCoeff = 1, ValueCoeffParas = null, UseStatus = TProduct.Model.eUseStatus.Enable, SourceType = TProduct.Model.eMonitorPointSourceType.模拟量, DigitalParas = null, DispInPanel = 1, AnalogParas = new TProduct.Model.AnalogMonitorPointParas() { RangeMin = -0.1, RangeMax = 0.1 }, CreateTime = DateTime.Now, CreateUserID = TProduct.WinFrmUI.GlobeParas.CurrentLoginUser.ID, UpdateTime = DateTime.Now, UpdateUserID = TProduct.WinFrmUI.GlobeParas.CurrentLoginUser.ID, SortCode = 4 }); } allMonitorPoints.Add(new TProduct.Model.WorkBenchMonitorPoint() { Name = "P2阀门上游压力A", MonitorType = TProduct.Model.eMonitorType.压力, Property = TProduct.Model.MonitorTypeProperty.P2, // PipeDia = pipeParas.DiaP2, SumCalcCoeff = 1, ValueCoeffParas = null, UseStatus = TProduct.Model.eUseStatus.Enable, SourceType = TProduct.Model.eMonitorPointSourceType.模拟量, DigitalParas = null, DispInPanel = 1, AnalogParas = new TProduct.Model.AnalogMonitorPointParas() { RangeMin = -0.1, RangeMax = 0.1 }, CreateTime = DateTime.Now, CreateUserID = TProduct.WinFrmUI.GlobeParas.CurrentLoginUser.ID, UpdateTime = DateTime.Now, UpdateUserID = TProduct.WinFrmUI.GlobeParas.CurrentLoginUser.ID, SortCode = 5 }); if (spinEditP2.Value >= 2) { allMonitorPoints.Add(new TProduct.Model.WorkBenchMonitorPoint() { Name = "P2阀门上游压力B", MonitorType = TProduct.Model.eMonitorType.压力, Property = TProduct.Model.MonitorTypeProperty.P2, // PipeDia = pipeParas.DiaP2, SumCalcCoeff = 1, ValueCoeffParas = null, UseStatus = TProduct.Model.eUseStatus.Enable, SourceType = TProduct.Model.eMonitorPointSourceType.模拟量, DigitalParas = null, DispInPanel = 1, AnalogParas = new TProduct.Model.AnalogMonitorPointParas() { RangeMin = -0.1, RangeMax = 0.1 }, CreateTime = DateTime.Now, CreateUserID = TProduct.WinFrmUI.GlobeParas.CurrentLoginUser.ID, UpdateTime = DateTime.Now, UpdateUserID = TProduct.WinFrmUI.GlobeParas.CurrentLoginUser.ID, SortCode = 6 }); } if (spinEditP2.Value >= 3) { allMonitorPoints.Add(new TProduct.Model.WorkBenchMonitorPoint() { Name = "P2阀门上游压力C", MonitorType = TProduct.Model.eMonitorType.压力, Property = TProduct.Model.MonitorTypeProperty.P2, // PipeDia = pipeParas.DiaP2, SumCalcCoeff = 1, ValueCoeffParas = null, UseStatus = TProduct.Model.eUseStatus.Enable, SourceType = TProduct.Model.eMonitorPointSourceType.模拟量, DigitalParas = null, DispInPanel = 1, AnalogParas = new TProduct.Model.AnalogMonitorPointParas() { RangeMin = -0.1, RangeMax = 0.1 }, CreateTime = DateTime.Now, CreateUserID = TProduct.WinFrmUI.GlobeParas.CurrentLoginUser.ID, UpdateTime = DateTime.Now, UpdateUserID = TProduct.WinFrmUI.GlobeParas.CurrentLoginUser.ID, SortCode = 7 }); } if (spinEditP2.Value >= 4) { allMonitorPoints.Add(new TProduct.Model.WorkBenchMonitorPoint() { Name = "P2阀门上游压力D", MonitorType = TProduct.Model.eMonitorType.压力, Property = TProduct.Model.MonitorTypeProperty.P2, // PipeDia = pipeParas.DiaP2, SumCalcCoeff = 1, ValueCoeffParas = null, UseStatus = TProduct.Model.eUseStatus.Enable, SourceType = TProduct.Model.eMonitorPointSourceType.模拟量, DigitalParas = null, DispInPanel = 1, AnalogParas = new TProduct.Model.AnalogMonitorPointParas() { RangeMin = -0.1, RangeMax = 0.1 }, CreateTime = DateTime.Now, CreateUserID = TProduct.WinFrmUI.GlobeParas.CurrentLoginUser.ID, UpdateTime = DateTime.Now, UpdateUserID = TProduct.WinFrmUI.GlobeParas.CurrentLoginUser.ID, SortCode = 8 }); } allMonitorPoints.Add(new TProduct.Model.WorkBenchMonitorPoint() { Name = "P3阀门下游压力A", MonitorType = TProduct.Model.eMonitorType.压力, Property = TProduct.Model.MonitorTypeProperty.P3, // PipeDia = pipeParas.DiaP3, SumCalcCoeff = 1, ValueCoeffParas = null, UseStatus = TProduct.Model.eUseStatus.Enable, SourceType = TProduct.Model.eMonitorPointSourceType.模拟量, DigitalParas = null, DispInPanel = 1, AnalogParas = new TProduct.Model.AnalogMonitorPointParas() { RangeMin = -0.1, RangeMax = 0.1 }, CreateTime = DateTime.Now, CreateUserID = TProduct.WinFrmUI.GlobeParas.CurrentLoginUser.ID, UpdateTime = DateTime.Now, UpdateUserID = TProduct.WinFrmUI.GlobeParas.CurrentLoginUser.ID, SortCode = 7 }); if (spinEditP3.Value >= 2) { allMonitorPoints.Add(new TProduct.Model.WorkBenchMonitorPoint() { Name = "P3阀门下游压力B", MonitorType = TProduct.Model.eMonitorType.压力, Property = TProduct.Model.MonitorTypeProperty.P3, // PipeDia = pipeParas.DiaP3, SumCalcCoeff = 1, ValueCoeffParas = null, UseStatus = TProduct.Model.eUseStatus.Enable, SourceType = TProduct.Model.eMonitorPointSourceType.模拟量, DigitalParas = null, DispInPanel = 1, AnalogParas = new TProduct.Model.AnalogMonitorPointParas() { RangeMin = -0.1, RangeMax = 0.1 }, CreateTime = DateTime.Now, CreateUserID = TProduct.WinFrmUI.GlobeParas.CurrentLoginUser.ID, UpdateTime = DateTime.Now, UpdateUserID = TProduct.WinFrmUI.GlobeParas.CurrentLoginUser.ID, SortCode = 8 }); } if (spinEditP3.Value >= 3) { allMonitorPoints.Add(new TProduct.Model.WorkBenchMonitorPoint() { Name = "P3阀门下游压力C", MonitorType = TProduct.Model.eMonitorType.压力, Property = TProduct.Model.MonitorTypeProperty.P3, // PipeDia = pipeParas.DiaP3, SumCalcCoeff = 1, ValueCoeffParas = null, UseStatus = TProduct.Model.eUseStatus.Enable, SourceType = TProduct.Model.eMonitorPointSourceType.模拟量, DigitalParas = null, DispInPanel = 1, AnalogParas = new TProduct.Model.AnalogMonitorPointParas() { RangeMin = -0.1, RangeMax = 0.1 }, CreateTime = DateTime.Now, CreateUserID = TProduct.WinFrmUI.GlobeParas.CurrentLoginUser.ID, UpdateTime = DateTime.Now, UpdateUserID = TProduct.WinFrmUI.GlobeParas.CurrentLoginUser.ID, SortCode = 9 }); } if (spinEditP3.Value >= 4) { allMonitorPoints.Add(new TProduct.Model.WorkBenchMonitorPoint() { Name = "P3阀门下游压力D", MonitorType = TProduct.Model.eMonitorType.压力, Property = TProduct.Model.MonitorTypeProperty.P3, // PipeDia = pipeParas.DiaP3, SumCalcCoeff = 1, ValueCoeffParas = null, UseStatus = TProduct.Model.eUseStatus.Enable, SourceType = TProduct.Model.eMonitorPointSourceType.模拟量, DigitalParas = null, DispInPanel = 1, AnalogParas = new TProduct.Model.AnalogMonitorPointParas() { RangeMin = -0.1, RangeMax = 0.1 }, CreateTime = DateTime.Now, CreateUserID = TProduct.WinFrmUI.GlobeParas.CurrentLoginUser.ID, UpdateTime = DateTime.Now, UpdateUserID = TProduct.WinFrmUI.GlobeParas.CurrentLoginUser.ID, SortCode = 10 }); } allMonitorPoints.Add(new TProduct.Model.WorkBenchMonitorPoint() { Name = "流量", MonitorType = TProduct.Model.eMonitorType.流量, SumCalcCoeff = 1, ValueCoeffParas = null, UseStatus = TProduct.Model.eUseStatus.Enable, SourceType = TProduct.Model.eMonitorPointSourceType.模拟量, DigitalParas = null, DispInPanel = 1, AnalogParas = null, CreateTime = DateTime.Now, CreateUserID = TProduct.WinFrmUI.GlobeParas.CurrentLoginUser.ID, UpdateTime = DateTime.Now, UpdateUserID = TProduct.WinFrmUI.GlobeParas.CurrentLoginUser.ID, SortCode = 12 }); allMonitorPoints.Add(new TProduct.Model.WorkBenchMonitorPoint() { Name = "开度", MonitorType = TProduct.Model.eMonitorType.阀门开度, SumCalcCoeff = 1, ValueCoeffParas = null, UseStatus = TProduct.Model.eUseStatus.Enable, CreateTime = DateTime.Now, CreateUserID = TProduct.WinFrmUI.GlobeParas.CurrentLoginUser.ID, UpdateTime = DateTime.Now, UpdateUserID = TProduct.WinFrmUI.GlobeParas.CurrentLoginUser.ID, SortCode = 13 }); return allMonitorPoints; } #endregion //验证 private bool Verify() { this.dxErrorProvider1.ClearErrors(); if (!this.chkIsCkecked.Checked) { if (string.IsNullOrEmpty(this.txtCode.Text.Trim())) { this.dxErrorProvider1.SetError(this.txtName, "必填项!"); return false; } else { if (new BLL.WorkBenchBase().IsExistCode(this.txtCode.Text.Trim())) { this.dxErrorProvider1.SetError(this.txtName, "编号已存在!"); return false; } } } if (string.IsNullOrEmpty(this.txtName.Text.Trim())) { this.dxErrorProvider1.SetError(this.txtName, "必填项!"); return false; } return true; } private void chkIsCkecked_CheckedChanged(object sender, EventArgs e) { if (this.chkIsCkecked.Checked) this.txtCode.Properties.ReadOnly = true; else this.txtCode.Properties.ReadOnly = false; } private void AddWorkBench4ValveDlg_Activated(object sender, EventArgs e) { this.txtName.Focus(); } TProduct.Model.eLinkType _linkType = TProduct.Model.eLinkType.ShunZhou; private void comboBoxLinkType_SelectedIndexChanged(object sender, EventArgs e) { comboBoxLinkTag.Properties.Items.Clear(); if (comboBoxLinkType.SelectedIndex == 0) { _linkType = TProduct.Model.eLinkType.ShunZhou; } else if (comboBoxLinkType.SelectedIndex == 1) { _linkType = TProduct.Model.eLinkType.KeDi; //var array_list = TProduct.Link.Kedi.LinkHelper.GetTagList(); //comboBoxLinkTag.Properties.Items.AddRange(array_list); //comboBoxLinkTag.SelectedIndex = 0; } } private void checkEdit所有分类_CheckedChanged(object sender, EventArgs e) { checkedComboProductStyle.Enabled = !checkEdit所有分类.Checked; } } }