From 8ccb8c4d10bff43b884005426110b5ec234a1cbb Mon Sep 17 00:00:00 2001 From: Rodney Chen <rodney.chen@hotmail.com> Date: 星期三, 07 八月 2024 15:44:09 +0800 Subject: [PATCH] 更新MES工序事务跟工序行为中保存数据操作的写法 --- Tiger.Business.MES/Transaction/Position.cs | 97 +++++++++++++++++++++++++++--------------------- 1 files changed, 55 insertions(+), 42 deletions(-) diff --git a/Tiger.Business.MES/Transaction/Position.cs b/Tiger.Business.MES/Transaction/Position.cs index 33bcf88..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) { @@ -330,56 +330,69 @@ return result; } + public object Clone() + { + var newObject = this.MemberwiseClone() as Position; + newObject.Steps = Steps.Clone(); + newObject.CurWipSNs = CurWipSNs.Clone(); + + return newObject; + } + /// <summary> /// 淇濆瓨宸ユ鐨勬暟鎹簱鎻愪氦鎿嶄綔鍒版暟鎹簱 /// </summary> protected void SaveStepsCommitActionToDB() { - ////淇濆瓨宸ユ鐨勬暟鎹簱鎻愪氦鎿嶄綔鍒版彁浜ゆ搷浣滃垪琛� - //foreach (var step in Steps.OrderBy(q => q.Sequence)) - //{ - // DBCommitList.Add(step.DBSubmitAction); - //} - ////濡傛灉涓嶉渶瑕佷复鏃跺瓨鍌ㄦ暟鎹簱鎻愪氦鎿嶄綔锛屽垯鎶婃彁浜ゆ搷浣滃垪琛ㄦ彁浜ゅ埌鏁版嵁搴� - //if (!NeedTemporaryStoreDBCommitAction) - //{ - // //鎭㈠涓存椂瀛樺偍鏍囪涓篺alse - // NeedTemporaryStoreDBCommitAction = false; + //淇濆瓨宸ユ鐨勬暟鎹簱鎻愪氦鎿嶄綔鍒版彁浜ゆ搷浣滃垪琛� + foreach (var step in Steps.OrderBy(q => q.Sequence)) + { + DBCommitList.Add(step.DBSubmitAction); + } + //濡傛灉涓嶉渶瑕佷复鏃跺瓨鍌ㄦ暟鎹簱鎻愪氦鎿嶄綔锛屽垯鎶婃彁浜ゆ搷浣滃垪琛ㄦ彁浜ゅ埌鏁版嵁搴� + if (!NeedTemporaryStoreDBCommitAction) + { + //鎭㈠涓存椂瀛樺偍鏍囪涓篺alse + NeedTemporaryStoreDBCommitAction = false; - // var dbTran = GetCommitDB().UseTran(() => - // { - // //鍦ㄥ悓涓�涓簨鍔′腑淇濆瓨鎵�鏈夊伐姝ョ殑鏁版嵁 - // foreach (var action in DBCommitList) - // { - // action.Invoke(); - // } - // }); - // if (dbTran.IsSuccess) - // { - // //淇濆瓨鎴愬姛鍒欐竻绌烘彁浜ゆ搷浣滃垪琛� - // DBCommitList.Clear(); - // } - // else - // { - // //鎶涘嚭寮傚父 - // throw dbTran.ErrorException; - // } - //} - if (NeedTemporaryStoreDBCommitAction) - { - NodeCommitList.Add(this.MemberwiseClone() as Position); - } - else - { - //淇濆瓨鎴愬姛鍒欐竻绌烘彁浜ゆ搷浣滃垪琛� - foreach (var item in NodeCommitList) + var dbTran = GetCommitDB().UseTran(() => { - item?.DoSaveToDB(); - item?.Dispose(); + //鍦ㄥ悓涓�涓簨鍔′腑淇濆瓨鎵�鏈夊伐姝ョ殑鏁版嵁 + foreach (var action in DBCommitList) + { + action.Invoke(); + } + }); + if (dbTran.IsSuccess) + { + //淇濆瓨鎴愬姛鍒欐竻绌烘彁浜ゆ搷浣滃垪琛� + DBCommitList.Clear(); } - DoSaveToDB(); - NodeCommitList.Clear(); + else + { + //鎶涘嚭寮傚父 + 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() -- Gitblit v1.9.3