lixiaojun
2025-03-02 4ce9d8c856dc2f0e580e92b74f399c80f27f080a
WinFrmUI/Yw.WinFrmUI.Hydro.Core/06-visual/03-waterbox/SetHydroWaterboxDlg.cs
@@ -7,6 +7,7 @@
            InitializeComponent();
            this.IconOptions.Icon = Yw.WinFrmUI.GlobalParas.AppIcon;
            this.layoutControl1.SetupLayoutControl();
            this.generalOkAndCancelCtrl1.OkEvent += GeneralOkAndCancelCtrl1_OkEvent;
        }
        /// <summary>
@@ -14,93 +15,119 @@
        /// </summary>
        public event Action<List<Yw.Model.HydroWaterboxInfo>> ReloadDataEvent;
        //所有部件列表
        private List<Yw.Model.HydroWaterboxInfo> _allVisualList = null;
        private List<Yw.Model.HydroWaterboxInfo> _allVisualList = null;//所有部件列表
        private HydroChangeHelper _changeHelper = null;//改变辅助类
        private HydroPropStatusHelper _propStatusHelper = null;//属性状态辅助类
        /// <summary>
        /// 绑定数据
        /// </summary>
        public void SetBindingData(Yw.Model.HydroWaterboxInfo visual)
        public void SetBindingData
            (
                Yw.Model.HydroWaterboxInfo visual,
                HydroChangeHelper changeHelper = null,
                HydroPropStatusHelper propStatusHelper = null
            )
        {
            var allVisualList = visual == null ? null : new List<Yw.Model.HydroWaterboxInfo>() { visual };
            SetBindingData(allVisualList);
            SetBindingData(allVisualList, changeHelper, propStatusHelper);
        }
        /// <summary>
        /// 绑定数据
        /// </summary>
        public void SetBindingData(List<Yw.Model.HydroWaterboxInfo> allVisualList)
        public void SetBindingData
            (
                List<Yw.Model.HydroWaterboxInfo> allVisualList,
                HydroChangeHelper changeHelper = null,
                HydroPropStatusHelper propStatusHelper = null
            )
        {
            _allVisualList = allVisualList;
            _changeHelper = changeHelper;
            _propStatusHelper = propStatusHelper;
            if (_allVisualList != null && _allVisualList.Count == 1)
            {
                var visual = _allVisualList.First();
                this.txtPoolElev.EditValue = Math.Round(visual.PoolElev, 4);
                this.txtBeginGroup.EditValue = visual.BeginGroup;
                this.txtInitLevel.EditValue = Math.Round(visual.InitLevel, 4);
                this.txtMinLevel.EditValue = Math.Round(visual.MinLevel, 4);
                this.txtMaxLevel.EditValue = Math.Round(visual.MaxLevel, 4);
                this.txtDN.EditValue = Math.Round(visual.DN, 4);
                this.ckOverFlow.Checked = visual.OverFlow;
                this.txtMinVol.EditValue = Math.Round(visual.MinVol, 2);
            }
        }
        //验证
        private bool Valid()
        {
            this.dxErrorProvider1.ClearErrors();
            if (this.txtPoolElev.EditValue == null)
            {
                this.dxErrorProvider1.SetError(this.txtPoolElev, "必填项");
                return false;
            }
            if (this.txtInitLevel.EditValue == null)
            {
                this.dxErrorProvider1.SetError(this.txtInitLevel, "必填项");
                return false;
            }
            if (this.txtMinLevel.EditValue == null)
            {
                this.dxErrorProvider1.SetError(this.txtMinLevel, "必填项");
                return false;
            }
            if (this.txtMaxLevel.EditValue == null)
            {
                this.dxErrorProvider1.SetError(this.txtMaxLevel, "必填项");
                return false;
            }
            if (this.txtDN.EditValue == null)
            {
                this.dxErrorProvider1.SetError(this.txtDN, "必填项");
                return false;
            }
            return true;
        }
        //
        private void btnOk_Click(object sender, EventArgs e)
        //确定
        private void GeneralOkAndCancelCtrl1_OkEvent()
        {
            if (_allVisualList == null || _allVisualList.Count < 1)
            {
                return;
            }
            if (!Valid())
            {
                return;
            }
            var poolElev = double.Parse(this.txtPoolElev.EditValue.ToString());
            var initLevel = double.Parse(this.txtInitLevel.EditValue.ToString());
            var minLevel = double.Parse(this.txtMinLevel.EditValue.ToString());
            var maxLevel = double.Parse(this.txtMaxLevel.EditValue.ToString());
            var dn = double.Parse(this.txtDN.EditValue.ToString());
            var overFlow = this.ckOverFlow.Checked;
            var beginGroup = this.txtBeginGroup.Text.Trim();
            double? initLevel = this.txtInitLevel.EditValue == null ? null : double.Parse(this.txtInitLevel.EditValue.ToString());
            double? minLevel = this.txtMinLevel.EditValue == null ? null : double.Parse(this.txtMinLevel.EditValue.ToString());
            double? maxLevel = this.txtMaxLevel.EditValue == null ? null : double.Parse(this.txtMaxLevel.EditValue.ToString());
            double? dn = this.txtDN.EditValue == null ? null : double.Parse(this.txtDN.EditValue.ToString());
            double? minVol = this.txtMinVol.EditValue == null ? null : double.Parse(this.txtMinVol.EditValue.ToString());
            _allVisualList.ForEach(x =>
            {
                x.PoolElev = poolElev;
                x.InitLevel = initLevel;
                x.MinLevel = minLevel;
                x.MaxLevel = maxLevel;
                x.DN = dn;
                x.OverFlow = overFlow;
                if (!string.IsNullOrEmpty(beginGroup))
                {
                    if (x.BeginGroup != beginGroup)
                    {
                        _changeHelper.Append(x, eChangeType.Update);
                        _propStatusHelper?.UpdatePropStatus(x.Code, nameof(x.BeginGroup), Yw.Hydro.ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过设置组件修改");
                    }
                    x.BeginGroup = beginGroup;
                }
                if (initLevel.HasValue)
                {
                    if (x.InitLevel != initLevel.Value)
                    {
                        _changeHelper.Append(x, eChangeType.Update);
                        _propStatusHelper?.UpdatePropStatus(x.Code, nameof(x.InitLevel), Yw.Hydro.ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过设置组件修改");
                    }
                    x.InitLevel = initLevel.Value;
                }
                if (minLevel.HasValue)
                {
                    if (x.MinLevel != minLevel.Value)
                    {
                        _changeHelper.Append(x, eChangeType.Update);
                        _propStatusHelper?.UpdatePropStatus(x.Code, nameof(x.MinLevel), Yw.Hydro.ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过设置组件修改");
                    }
                    x.MinLevel = minLevel.Value;
                }
                if (maxLevel.HasValue)
                {
                    if (x.MaxLevel != maxLevel.Value)
                    {
                        _changeHelper.Append(x, eChangeType.Update);
                        _propStatusHelper?.UpdatePropStatus(x.Code, nameof(x.MaxLevel), Yw.Hydro.ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过设置组件修改");
                    }
                    x.MaxLevel = maxLevel.Value;
                }
                if (dn.HasValue)
                {
                    if (x.DN != dn.Value)
                    {
                        _changeHelper.Append(x, eChangeType.Update);
                        _propStatusHelper?.UpdatePropStatus(x.Code, nameof(x.DN), Yw.Hydro.ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过设置组件修改");
                    }
                    x.DN = dn.Value;
                }
                if (minVol.HasValue)
                {
                    if (x.MinVol != minVol.Value)
                    {
                        _changeHelper.Append(x, eChangeType.Update);
                        _propStatusHelper?.UpdatePropStatus(x.Code, nameof(x.MinVol), Yw.Hydro.ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过设置组件修改");
                    }
                    x.MinVol = minVol.Value;
                }
            });
            this.ReloadDataEvent?.Invoke(_allVisualList);
            this.DialogResult = DialogResult.OK;