服务端的TigerApi 框架,基于.NET6 2024 版本
Ben Lin
2024-09-24 7d9cd464aab0ac583362ac5398403e1c596a4856
Tiger.Business.MES/Transaction/PackingNode.cs
@@ -89,8 +89,9 @@
                        else
                        {
                            var wosns = Biz.Db.Queryable<BIZ_MES_WO_BATCH, BIZ_MES_WO_SN>((q, s) => new JoinQueryInfos(JoinType.Inner, q.ORDER_NO == s.WORK_ORDER))
                                                        .ByAuth(input.AuthOption).Where((q, s) => s.SN == input.SN || s.FLOW_SN == input.SN || s.TRAY_SN == input.SN).Select((q, s) => new { Batch = q, SN = s }).ToList();
                                                .ByAuth(input.AuthOption).Where((q, s) => s.STATUS < BIZ_MES_WO_SN.STATUSs.Finished.GetValue())
                                                .Where((q, s) => s.SN == input.SN || s.FLOW_SN == input.SN || s.TRAY_SN == input.SN).Select((q, s) => new { Batch = q, SN = s }).ToList();
                            //查找到条码已绑定的工单
                            if (!wosns.IsNullOrEmpty())
                            {
@@ -182,18 +183,18 @@
                        CurBatch?.Update();
                        var submitStep = Steps.Where(q => q.ID == input.CurStepID && !q.IsFinished).FirstOrDefault();
                        //如果客户端返回的当前工步ID找不到未完成的行为工步,则直接开始下一个行为工步
                        if (submitStep.IsNullOrEmpty())
                        {
                            action = BeginNextActionStep(input);
                            action.Data.OperInfo = CurOperInfo(input.Locale);
                        }
                        else
                        {
                            var result = submitStep.Submit(input);
                            action = submitStep.Submit(input);
                            //如果当前工步已完成,开始执行下一工步
                            if (result.IsSuccessed && submitStep.IsFinished)
                            if (action.IsSuccessed && submitStep.IsFinished)
                            {
                                result = BeginNextActionStep(input);
                                action = BeginNextActionStep(input);
                            }
                            //如果当前工步未完成
                            else
@@ -201,23 +202,22 @@
                                //行为执行出错,工步被重置
                                if (Steps.IsNullOrEmpty())
                                {
                                    result.LocaleMsg = new(Biz.T(result.LocaleMsg, input.Locale) + Biz.T(Biz.L("MES.Transaction.Position.RescanSN"), input.Locale));
                                    action.LocaleMsg = new(Biz.T(action.LocaleMsg, input.Locale) + Biz.T(Biz.L("MES.Transaction.Position.RescanSN"), input.Locale));
                                }
                                else
                                {
                                    result.Data.SetValue(CurBatch, CurStep, CurStep?.ID, IsFinishAllSteps);
                                    action.Data.SetValue(CurBatch, CurStep, CurStep?.ID, IsFinishAllSteps);
                                }
                            }
                            //如果所有工步都完成
                            if (IsFinishAllSteps)
                            {
                                result = DoIfFinishAllSteps(result, input.Locale);
                            }
                            else
                            {
                                result.Data.OperInfo = CurOperInfo(input.Locale);
                            }
                            return result;
                        }
                        //如果所有工步都完成
                        if (IsFinishAllSteps)
                        {
                            action = DoIfFinishAllSteps(action, input.Locale);
                        }
                        else
                        {
                            action.Data.OperInfo = CurOperInfo(input.Locale);
                        }
                    }
                    //没有可执行的工步
@@ -503,6 +503,7 @@
                    }
                    //完成第一个工序节点工步
                    curStep.IsFinished = true;
                    curStep.Status = StepStatus.Finished;
                    CurStep = curStep;
                } 
@@ -511,6 +512,7 @@
                    var curStep = Steps.Where(q => q.NodeType == IWorkStep.NodeTypes.Node && !q.IsFinished).OrderBy(q => q.Sequence).First();
                    //完成当前工序节点工步
                    curStep.IsFinished = true;
                    curStep.Status = StepStatus.Finished;
                    CurStep = curStep;
                }
@@ -614,9 +616,9 @@
                        {
                            action.IsSuccessed = false;
                            //action.LocaleMsg = new($"出货数量设定为[{0}],目前包装了[{1}],包装尾数的数量必需是[{2}],请装够数量后再结束包装");
                            action.LocaleMsg = new("MES.Transaction.PackingNode.NotMatchShipQty", shipQty, curQty, shipQty % ruleQty);
                            action.LocaleMsg = new("MES.Transaction.PackingNode.NotMatchShipQty", shipQty, curQty, shipQty % ruleQty);
                            return action;
                        }
                        action = TempPkgAction.Submit(null);
                    }
                    else