lixiaojun
2025-01-06 f373ad1f566c9c8679547f4205d86eb6e0836d59
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs
@@ -2,7 +2,9 @@
using DevExpress.CodeParser;
using DevExpress.Diagram.Core.Native;
using DevExpress.Mvvm.Native;
using DevExpress.Office.Utils;
using DevExpress.Utils.MVVM;
using DevExpress.Xpo.Helpers;
using DevExpress.XtraMap;
using HStation.WinFrmUI.PhartRelation;
using Mapster;
@@ -32,11 +34,6 @@
        /// 新增工况事件
        /// </summary>
        public event Action<HydroWorkingVmo> AppendWorkingEvent;
        /// <summary>
        /// 保存模型事件
        /// </summary>
        public event Func<Yw.Model.HydroModelInfo, Task<Yw.Model.HydroModelInfo>> SaveModelEvent;
        /// <summary>
        /// 刷新模型事件
@@ -239,6 +236,62 @@
            return _propStatusHelper;
        }
        //获取属性状态Db列表
        private async Task<List<HydroParterPropStatusInfo>> GetPropStatusDbList()
        {
            var helper = await GetPropStatusHelper();
            return helper.GetPropStatusDbList();
        }
        #endregion
        #region 更改状态
        //改变辅助类
        private HydroChangeHelper _changeHelper = null;
        //获取改变辅助类
        private HydroChangeHelper GetChangeHelper()
        {
            if (_hydroInfo == null)
            {
                return default;
            }
            if (_changeHelper == null)
            {
                _changeHelper = new HydroChangeHelper(_hydroInfo);
            }
            return _changeHelper;
        }
        //附加改变构件
        private void AppendChangeParter(HydroParterInfo parter, eChangeType changeType)
        {
            var helper = GetChangeHelper();
            helper.Append(parter, changeType);
        }
        //获取增加构件列表
        private List<HydroParterInfo> GetAddParterList()
        {
            var helper = GetChangeHelper();
            return helper.GetAddParterList();
        }
        //获取更新构件列表
        private List<HydroParterInfo> GetUpdateParterList()
        {
            var helper = GetChangeHelper();
            return helper.GetUpdateParterList();
        }
        //获取移除构件列表
        private List<string> GetRemoveParters()
        {
            var helper = GetChangeHelper();
            return helper.GetRemoveParters();
        }
        #endregion
        #region BIM控件
@@ -283,7 +336,7 @@
            this.tabPageBimface.Controls.Add(bimfaceCtrl);
        }
        #endregion BIM控件
        #endregion
        #region Q3d控件
@@ -320,7 +373,7 @@
            this.tabPageQ3d.Controls.Add(q3dCtrl);
        }
        #endregion Q3d控件
        #endregion
        #region 属性控件
@@ -407,12 +460,13 @@
                    var gradingHelper = await GetGradingHelper();
                    gradingHelper.Set(visual);
                };
                _propertyCtrl.FlowEffectPropertyValueChangedEvent += async (visual) =>
                _propertyCtrl.ParterChangedEvent += (parter, changeType) =>
                {
                    //流向属性发生改变
                    //判断流向是否加载,如果加载则更新流向,最好是更新单个流向
                    var flowEffectHelper = await GetFlowEffectHelper();
                    flowEffectHelper.Set(visual);
                    if (parter == null)
                    {
                        return;
                    }
                    AppendChangeParter(parter, changeType);
                };
            }
            return _propertyCtrl;
@@ -697,6 +751,10 @@
                {
                    SelectVisual(_visual, eSimulationVisualSource.List);
                };
                _visualListCtrl.ParterChangedEvent += (parter, changeType) =>
                {
                    AppendChangeParter(parter, changeType);
                };
            }
            return _visualListCtrl;
        }
@@ -826,7 +884,7 @@
        #endregion 构件显示
        #endregion 构件明细
        #endregion
        #region 一键显隐
@@ -874,6 +932,10 @@
        #region 保存信息
        //保存锁定对象
        private object _locker_save = new();
        private bool _isSaving = false;//正在保存
        //保存
        private async void barBtnSave_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
@@ -881,19 +943,44 @@
            {
                return;
            }
            if (this.SaveModelEvent == null)
            {
                return;
            }
            var hydroInfo = await this.SaveModelEvent.Invoke(_hydroInfo);
            if (hydroInfo == null)
            {
                TipFormHelper.ShowError("保存失败!");
                return;
            }
            _hydroInfo = hydroInfo;
            TipFormHelper.ShowSucceed("保存成功!");
            lock (_locker_save)
            {
                if (_isSaving)
                {
                    TipFormHelper.ShowWarn("正在保存,请稍后重试!");
                    return;
                }
            }
            _isSaving = true;
            var addParterList = GetAddParterList();
            var updateParterList = GetUpdateParterList();
            var removeParters = GetRemoveParters();
            this.FindForm().ShowAlertInfo("水力信息保存", "正在更新水力信息!");
            var bol = await BLLFactory<Yw.BLL.HydroModelInfo>.Instance
                .Update(_hydroInfo, addParterList, updateParterList, removeParters);
            if (!bol)
            {
                this.FindForm().ShowAlertInfo("水力信息保存", "水力信息更新失败!");
                return;
            }
            this.FindForm().ShowAlertInfo("水力信息保存", "水力信息更新成功!");
            this.FindForm().ShowAlertInfo("水力信息保存", "正在保存属性状态!");
            var propStatusDbList = await GetPropStatusDbList();
            bol = await BLLFactory<Yw.BLL.HydroParterPropStatusInfo>.Instance.Save(_hydroInfo.ID, propStatusDbList);
            if (bol)
            {
                this.FindForm().ShowAlertInfo("水力信息保存", "属性状态保存成功!");
            }
            else
            {
                this.FindForm().ShowAlertInfo("水力信息保存", "属性状态保存失败!");
            }
            _isSaving = false;
            //Stopwatch sw = new Stopwatch();
            //sw.Start();
@@ -925,6 +1012,10 @@
                    SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set);
                    UpdateVisualListCtrl();
                };
                dlg.ParterChangedEvent += (parter, changeType) =>
                {
                    AppendChangeParter(parter, changeType);
                };
                dlg.ShowDialog();
            };
            //水池
@@ -941,6 +1032,10 @@
                {
                    SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set);
                    UpdateVisualListCtrl();
                };
                dlg.ParterChangedEvent += (parter, changeType) =>
                {
                    AppendChangeParter(parter, changeType);
                };
                dlg.ShowDialog();
            };
@@ -959,6 +1054,10 @@
                    SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set);
                    UpdateVisualListCtrl();
                };
                dlg.ParterChangedEvent += (parter, changeType) =>
                {
                    AppendChangeParter(parter, changeType);
                };
                dlg.ShowDialog();
            };
            //连接节点
@@ -975,6 +1074,10 @@
                {
                    SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set);
                    UpdateVisualListCtrl();
                };
                dlg.ParterChangedEvent += (parter, changeType) =>
                {
                    AppendChangeParter(parter, changeType);
                };
                dlg.ShowDialog();
            };
@@ -993,6 +1096,10 @@
                    SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set);
                    UpdateVisualListCtrl();
                };
                dlg.ParterChangedEvent += (parter, changeType) =>
                {
                    AppendChangeParter(parter, changeType);
                };
                dlg.ShowDialog();
            };
            //弯头
@@ -1009,6 +1116,10 @@
                {
                    SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set);
                    UpdateVisualListCtrl();
                };
                dlg.ParterChangedEvent += (parter, changeType) =>
                {
                    AppendChangeParter(parter, changeType);
                };
                dlg.ShowDialog();
            };
@@ -1027,6 +1138,10 @@
                    SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set);
                    UpdateVisualListCtrl();
                };
                dlg.ParterChangedEvent += (parter, changeType) =>
                {
                    AppendChangeParter(parter, changeType);
                };
                dlg.ShowDialog();
            };
            //四通
@@ -1043,6 +1158,10 @@
                {
                    SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set);
                    UpdateVisualListCtrl();
                };
                dlg.ParterChangedEvent += (parter, changeType) =>
                {
                    AppendChangeParter(parter, changeType);
                };
                dlg.ShowDialog();
            };
@@ -1061,6 +1180,10 @@
                    SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set);
                    UpdateVisualListCtrl();
                };
                dlg.ParterChangedEvent += (parter, changeType) =>
                {
                    AppendChangeParter(parter, changeType);
                };
                dlg.ShowDialog();
            };
            //流量计
@@ -1077,6 +1200,10 @@
                {
                    SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set);
                    UpdateVisualListCtrl();
                };
                dlg.ParterChangedEvent += (parter, changeType) =>
                {
                    AppendChangeParter(parter, changeType);
                };
                dlg.ShowDialog();
            };
@@ -1095,6 +1222,10 @@
                    SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set);
                    UpdateVisualListCtrl();
                };
                dlg.ParterChangedEvent += (parter, changeType) =>
                {
                    AppendChangeParter(parter, changeType);
                };
                dlg.ShowDialog();
            };
            //喷嘴
@@ -1111,6 +1242,10 @@
                {
                    SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set);
                    UpdateVisualListCtrl();
                };
                dlg.ParterChangedEvent += (parter, changeType) =>
                {
                    AppendChangeParter(parter, changeType);
                };
                dlg.ShowDialog();
            };
@@ -1129,6 +1264,10 @@
                    SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set);
                    UpdateVisualListCtrl();
                };
                dlg.ParterChangedEvent += (parter, changeType) =>
                {
                    AppendChangeParter(parter, changeType);
                };
                dlg.ShowDialog();
            };
            //管道
@@ -1145,6 +1284,10 @@
                {
                    SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set);
                    UpdateVisualListCtrl();
                };
                dlg.ParterChangedEvent += (parter, changeType) =>
                {
                    AppendChangeParter(parter, changeType);
                };
                dlg.ShowDialog();
            };
@@ -1163,6 +1306,10 @@
                    SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set);
                    UpdateVisualListCtrl();
                };
                dlg.ParterChangedEvent += (parter, changeType) =>
                {
                    AppendChangeParter(parter, changeType);
                };
                dlg.ShowDialog();
            };
            //水泵
@@ -1179,6 +1326,10 @@
                {
                    SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set);
                    UpdateVisualListCtrl();
                };
                dlg.ParterChangedEvent += (parter, changeType) =>
                {
                    AppendChangeParter(parter, changeType);
                };
                dlg.ShowDialog();
            };
@@ -1197,6 +1348,10 @@
                    SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set);
                    UpdateVisualListCtrl();
                };
                dlg.ParterChangedEvent += (parter, changeType) =>
                {
                    AppendChangeParter(parter, changeType);
                };
                dlg.ShowDialog();
            };
            //换热器
@@ -1214,6 +1369,10 @@
                    SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set);
                    UpdateVisualListCtrl();
                };
                dlg.ParterChangedEvent += (parter, changeType) =>
                {
                    AppendChangeParter(parter, changeType);
                };
                dlg.ShowDialog();
            };
            //压缩机
@@ -1230,6 +1389,10 @@
                {
                    SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set);
                    UpdateVisualListCtrl();
                };
                dlg.ParterChangedEvent += (parter, changeType) =>
                {
                    AppendChangeParter(parter, changeType);
                };
                dlg.ShowDialog();
            };
@@ -1450,7 +1613,7 @@
            }
        }
        #endregion 批量配置
        #endregion
        #region 构件查询
@@ -1593,7 +1756,7 @@
            markHelper.Set();
        }
        #endregion 模型标注
        #endregion
        #region 颜色分级