| | |
| | | /// <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) |
| | | { |
| | |
| | | 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) |
| | | //{ |
| | | // //恢复临时存储标记为false |
| | | // NeedTemporaryStoreDBCommitAction = false; |
| | | //保存工步的数据库提交操作到提交操作列表 |
| | | foreach (var step in Steps.OrderBy(q => q.Sequence)) |
| | | { |
| | | DBCommitList.Add(step.DBSubmitAction); |
| | | } |
| | | //如果不需要临时存储数据库提交操作,则把提交操作列表提交到数据库 |
| | | if (!NeedTemporaryStoreDBCommitAction) |
| | | { |
| | | //恢复临时存储标记为false |
| | | 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() |