服务端的TigerApi 框架,基于.NET6 2024 版本
Rodney Chen
2024-08-05 ff636d822e327602f0c9a609d5f6d01cc22e5e86
Tiger.Business.MES/Transaction/Position.cs
@@ -65,6 +65,12 @@
        public bool IsFinishAllSteps => !Steps.Any() || !Steps.Any(q => !q.IsFinished);
        //public int CurStep => Steps.Where(q => !q.IsFinished).OrderBy(q => q.Sequence).FirstOrDefault()?.Sequence ?? 0;
        private DbClient CommitDB;
        /// <summary>
        /// 是否需要临时存储数据库提交操作,待需要的时候再提交
        /// </summary>
        public bool NeedTemporaryStoreDBCommitAction { get; set; } = false;
        protected List<Action> DBCommitList { get; set; } = new();
        #endregion Propertys & Variables
        #region Functions
@@ -321,6 +327,43 @@
        }
        /// <summary>
        /// 保存工步的数据库提交操作到数据库
        /// </summary>
        protected void SaveStepsCommitActionToDB()
        {
            //保存工步的数据库提交操作到提交操作列表
            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;
                }
            }
        }
        /// <summary>
        /// 获取打印标签模板过程变量值
        /// </summary>
        /// <param name="labelPVs">过程变量列表</param>
@@ -389,7 +432,6 @@
            }
            return "";
        }
        /// <summary>
        /// 获取工单维护的模板变量
        /// </summary>