From f373ad1f566c9c8679547f4205d86eb6e0836d59 Mon Sep 17 00:00:00 2001 From: lixiaojun <1287241240@qq.com> Date: 星期一, 06 一月 2025 17:22:13 +0800 Subject: [PATCH] 修改保存逻辑 --- WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs | 217 +++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 190 insertions(+), 27 deletions(-) diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs index 6a21a93..895ddb0 100644 --- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs +++ b/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; } + //鑾峰彇灞炴�х姸鎬丏b鍒楄〃 + 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;//姝e湪淇濆瓨 + //淇濆瓨 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("姝e湪淇濆瓨锛岃绋嶅悗閲嶈瘯锛�"); + return; + } + } + + _isSaving = true; + + var addParterList = GetAddParterList(); + var updateParterList = GetUpdateParterList(); + var removeParters = GetRemoveParters(); + + this.FindForm().ShowAlertInfo("姘村姏淇℃伅淇濆瓨", "姝e湪鏇存柊姘村姏淇℃伅锛�"); + 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("姘村姏淇℃伅淇濆瓨", "姝e湪淇濆瓨灞炴�х姸鎬侊紒"); + 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 棰滆壊鍒嗙骇 -- Gitblit v1.9.3