From 6c9535734ff0bd5e957620be0247689d6e2ca252 Mon Sep 17 00:00:00 2001 From: Rodney Chen <rodney.chen@hotmail.com> Date: 星期三, 07 八月 2024 11:51:57 +0800 Subject: [PATCH] 创建变量克隆对象用于传入DBSubmitAction中保存当前需要暂存的数据值 --- Tiger.Business.MES/Transaction/Position.cs | 64 +++++++++++++++++++++++++++---- 1 files changed, 55 insertions(+), 9 deletions(-) diff --git a/Tiger.Business.MES/Transaction/Position.cs b/Tiger.Business.MES/Transaction/Position.cs index 720f86b..6e26cf6 100644 --- a/Tiger.Business.MES/Transaction/Position.cs +++ b/Tiger.Business.MES/Transaction/Position.cs @@ -17,7 +17,7 @@ /// <summary> /// MES宀椾綅浜嬪姟 /// </summary> - public class Position : MESTransactionBase, IPosition + public class Position : MESTransactionBase, IPosition, ICloneable { public IPosition Init(string id, string apiHost, string userCode, string postCode) { @@ -72,6 +72,7 @@ /// </summary> public bool NeedTemporaryStoreDBCommitAction { get; set; } = false; protected List<Action> DBCommitList { get; set; } = new(); + protected List<Position> NodeCommitList { get; set; } = new(); #endregion Propertys & Variables @@ -329,6 +330,15 @@ return result; } + public object Clone() + { + var newObject = this.MemberwiseClone() as Position; + newObject.Steps = Steps.Clone(); + newObject.CurWipSNs = CurWipSNs.Clone(); + + return newObject; + } + /// <summary> /// 淇濆瓨宸ユ鐨勬暟鎹簱鎻愪氦鎿嶄綔鍒版暟鎹簱 /// </summary> @@ -346,15 +356,15 @@ NeedTemporaryStoreDBCommitAction = false; var dbTran = GetCommitDB().UseTran(() => - { - //鍦ㄥ悓涓�涓簨鍔′腑淇濆瓨鎵�鏈夊伐姝ョ殑鏁版嵁 - foreach (var action in DBCommitList) - { + { + //鍦ㄥ悓涓�涓簨鍔′腑淇濆瓨鎵�鏈夊伐姝ョ殑鏁版嵁 + foreach (var action in DBCommitList) + { action.Invoke(); - } - }); - if (dbTran.IsSuccess) - { + } + }); + if (dbTran.IsSuccess) + { //淇濆瓨鎴愬姛鍒欐竻绌烘彁浜ゆ搷浣滃垪琛� DBCommitList.Clear(); } @@ -364,6 +374,42 @@ throw dbTran.ErrorException; } } + + + //if (NeedTemporaryStoreDBCommitAction) + //{ + + + // NodeCommitList.Add(this.Clone() as Position); + //} + //else + //{ + // //淇濆瓨鎴愬姛鍒欐竻绌烘彁浜ゆ搷浣滃垪琛� + // foreach (var item in NodeCommitList) + // { + // item?.DoSaveToDB(); + // item?.Dispose(); + // } + // DoSaveToDB(); + // NodeCommitList.Clear(); + //} + } + + protected void DoSaveToDB() + { + var dbTran = GetCommitDB().UseTran(() => + { + //鍦ㄥ悓涓�涓簨鍔′腑淇濆瓨鎵�鏈夊伐姝ョ殑鏁版嵁 + foreach (var step in Steps.OrderBy(q => q.Sequence)) + { + step.DBSubmitAction.Invoke(); + } + }); + if (!dbTran.IsSuccess) + { + //鎶涘嚭寮傚父 + throw dbTran.ErrorException; + } } /// <summary> -- Gitblit v1.9.3