服务端的TigerApi 框架,基于.NET6 2024 版本
Rodney Chen
2024-09-25 0fdb04b7c451d7c59b226c25425722afd3364916
Tiger.Business.MES/Transaction/Position.cs
@@ -48,6 +48,9 @@
        #region Propertys & Variables
        public string UserCode { get; set; }
        public string PostCode { get; set; }
        protected DateTime BeginAt;
        protected DateTime EndAt;
        public TimeSpan ElapsedTime => EndAt - BeginAt;
        public MES_FACTORY CurFactory { get; set; }
        public MES_WORKSHOP CurWorkshop { get; set; }
        public MES_LINE CurLine { get; set; }
@@ -64,7 +67,7 @@
        public WorkStep CurStep { get; set; }
        public List<WorkStep> NextSteps { get; set; } = new();
        public bool IsFinishNodeSteps => !Steps.Any(q => q.NodeType == IWorkStep.NodeTypes.Node && !q.IsFinished);
        public bool IsFinishAllSteps => !Steps.Any() || !Steps.Any(q => !q.IsFinished);
        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>
@@ -351,11 +354,23 @@
                    CurStep = step;
                    //更新后续可执行的工步列表
                    NextSteps = GetNextSteps(CurStep);
                    //返回结果到客户端
                    result = canBegin;
                    result.Data.SetValue(CurBatch, CurStep, CurStep?.ID, IsFinishAllSteps);
                    //如果当前执行工步尝试执行后就已经完成,不需要后续交互,且,则继续开始下一工步
                    if (CurStep.IsFinished && NextSteps.Any())
                    {
                        result = BeginNextActionStep(input);
                    }
                    else
                    {
                       //返回结果到客户端
                       result = canBegin;
                       result.Data.SetValue(CurBatch, CurStep, CurStep?.ID, IsFinishAllSteps);
                    }
                    return result;
                }
                //工序被重置
                else if(Steps.IsNullOrEmpty())
                {
                    return canBegin;
                }
            }
@@ -403,6 +418,10 @@
                            action.Invoke();
                        }
                    }
                    //记录工序耗时
                    EndAt = DateTime.Now;
                    var ids = CurWipSNHiss.Select(q => q.ID).ToList();
                    GetCommitDB().Updateable<MES_WIP_HIS>().SetColumns(q => q.ELAPSED_TIME == ElapsedTime.TotalMilliseconds.ToInt64()).Where(q => ids.Contains(q.ID)).ExecuteCommand();
                });
                if (dbTran.IsSuccess)
                {