服务端的TigerApi 框架,基于.NET6 2024 版本
Ben Lin
2024-09-13 1f72396c6294b9f78723d786a9b0965414d0601a
Tiger.Business.MES/Transaction/PackingNode.cs
@@ -63,14 +63,15 @@
                else
                {
                    NodeCmd = "NodeSubmit";
                    //更新CurBatch
                    CurBatch = WoContext.GetBatch(CurBatch?.OrderNo, CurLine.LINE_CODE);
                    //工步列表为空或者工序节点工步有未完成时,优先完成工序节点工步
                    if (Steps.IsNullOrEmpty() || !IsFinishNodeSteps)
                    {
                        //先判断当前工单不为空且当前岗位在当前工单是不是首站,如果是则不允许变更当前工单,尝试把条码绑定到当前工单
                        if (!CurBatch.IsNullOrEmpty() && CurBatch.IsFirstNode(PostCode))
                        {
                            //更新CurBatch
                            CurBatch?.Update();
                            //提交数据
                            action = NodeSubmit(action, input);
                            //更新工序信息
                            if (!action.IsSuccessed)
@@ -134,8 +135,10 @@
                                           return action;
                                       }
                                   }
                                   //条码过站
                                   action = NodeSubmit(action, input);
                                    //更新CurBatch
                                    CurBatch?.Update();
                                    //条码过站
                                    action = NodeSubmit(action, input);
                                    if (!action.IsSuccessed && !CurWipSNs.Any())
                                    {
                                        var info = WoContext.GetSnOperInfo(input.SN).Data;
@@ -175,6 +178,9 @@
                    //完成工序节点工步后,后开始执行当前工序的行为工步
                    else if (IsFinishNodeSteps && !IsFinishAllSteps)
                    {
                        //更新CurBatch
                        CurBatch?.Update();
                        var submitStep = Steps.Where(q => q.ID == input.CurStepID && !q.IsFinished).FirstOrDefault();
                        if (submitStep.IsNullOrEmpty())
                        {
@@ -254,8 +260,8 @@
                    woStatus.Data.ShortMsg = new("工单异常", ShortMessage.Types.Error);
                    return woStatus;
                }
                var wipSNs = Biz.Db.Queryable<MES_WIP_DATA>().IncludesAllFirstLayer().Where(q => (q.SN == input.SN || q.TRAY_SN == input.SN) && q.WORK_ORDER == CurBatch.WO.ORDER_NO).ToList();
                var wipSNs = Biz.Db.Queryable<MES_WIP_DATA>().IncludesAllFirstLayer().Where(q => q.SN == input.SN || q.FLOW_SN == input.SN || q.TRAY_SN == input.SN).ToList();
                if (wipSNs.IsNullOrEmpty())
                {
                   var wipSN = new MES_WIP_DATA()
@@ -583,7 +589,7 @@
        /// 包装工序:手动结束包装
        /// </summary>
        /// <returns></returns>
        public async Task<ApiAction<SubmitOutput>> CompletePkg()
        public async Task<ApiAction<SubmitOutput>> CompletePkg(ApiAction input)
        {
            var action = new ApiAction<SubmitOutput>(new SubmitOutput());
            try
@@ -593,6 +599,12 @@
                {
                    if (Context.ContainsKey("CurPackage"))
                    {
                        int shipQty = input.Data.ToInt32();
                        //有填出货数量则验证当前包装数量必须等于(出货数量/包装规则数量)的余数
                        if (shipQty > 0)
                        {
                        }
                        NodeCmd = "PkgSubmit";
                        TempPkgAction = new PackingAction();