服务端的TigerApi 框架,基于.NET6 2024 版本
Rodney Chen
2024-07-25 3678120ac63c176b5f261ef12e67c4ce7f1b320f
Tiger.Business.MES/Transaction/PackingNode.cs
@@ -161,11 +161,37 @@
        {
            try
            {
                var curNode = CurBatch.GetNode(PostCode);
                //判断工单实时状态判断
                var woStatus = CurBatch.CheckStatus();
                if (!woStatus.IsSuccessed)
                {
                    return woStatus;
                }
                //非法过站防呆:进入工序时要增加判断条码是否按流程过站
                var wipSN = Biz.Db.Queryable<MES_WIP_DATA>().Where(q => q.SN == input.SN && q.WORK_ORDER == CurBatch.WO.ORDER_NO).IncludesAllFirstLayer().First() ?? new MES_WIP_DATA()
                {
                    SN = input.SN,
                    STATUS = MES_WIP_DATA.STATUSs.Init.GetValue(),
                    ITEM_CODE = CurBatch.WO.ITEM_CODE,
                    WORK_ORDER = CurBatch.Batch.ORDER_NO,
                    BATCH_NO = CurBatch.Batch.BATCH_NO,
                    HOLD_FLAG = "N",
                    REWORK_FLAG = CurBatch.WO.ORDER_TYPE == BIZ_MES_WO.ORDER_TYPEs.Rework.GetValue() ? "Y" : "N",
                    FINISHED_FLAG = "N",
                    INV_FLAG = "N",
                    DFT_FLAG = "N",
                    DFT_COUNT = 0,
                };
                var canGotoNext = CurBatch.CanGotoNext(input, wipSN, curNode);
                if (!canGotoNext.IsSuccessed)
                {
                    return canGotoNext;
                }
                //当工步列表为空,则执行当前工序的必要逻辑当作第一个工序节点,完成后按需求创建后续的工步列表
                if (Steps.IsNullOrEmpty())
                {
                    var curNode = CurBatch.GetNode(PostCode);
                    //绑定条码到工单
                    if (!CurBatch.WoSNs.Any(q => q.SN == input.SN))
                   {
@@ -176,26 +202,12 @@
                           STATUS = BIZ_MES_WO_SN.STATUSs.NotInput.GetValue(),
                       });
                   }
                   var woSN = CurBatch.WoSNs.FirstOrDefault(q => q.SN == input.SN);
                   var woSN = CurBatch.WoSNs.First(q => q.SN == input.SN);
                    woSN.AUTH_ORG = CurBatch.WO.AUTH_ORG;
                    woSN.AUTH_PROD = CurLine.LINE_CODE;
                    woSN.BATCH_NO = CurBatch.Batch.BATCH_NO;
                    
                   //条码过站
                   var wipSN = Biz.Db.Queryable<MES_WIP_DATA>().First(q => q.SN == input.SN && q.BATCH_NO == CurBatch.Batch.BATCH_NO) ?? new MES_WIP_DATA()
                   {
                       SN = input.SN,
                       STATUS = MES_WIP_DATA.STATUSs.Init.GetValue(),
                       ITEM_CODE = CurBatch.WO.ITEM_CODE,
                       WORK_ORDER = CurBatch.Batch.ORDER_NO,
                       BATCH_NO = CurBatch.Batch.BATCH_NO,
                       HOLD_FLAG = "N",
                       REWORK_FLAG = CurBatch.WO.ORDER_TYPE == BIZ_MES_WO.ORDER_TYPEs.Rework.GetValue() ? "Y" : "N",
                       FINISHED_FLAG = "N",
                       INV_FLAG = "N",
                       DFT_FLAG = "N",
                       DFT_COUNT = 0,
                   };
                    wipSN.AUTH_ORG = CurBatch.WO.AUTH_ORG;
                    wipSN.AUTH_PROD = CurLine.LINE_CODE;
                   wipSN.STATUS = wipSN.STATUS > 0 ? MES_WIP_DATA.STATUSs.OK.GetValue() : wipSN.STATUS;