服务端的TigerApi 框架,基于.NET6 2024 版本
Rodney Chen
2024-09-25 2420648a1522c2e1cd8138bb43dd7d46a6561a1a
Tiger.Business.MES/WorkAction/PackingAction.cs
@@ -443,8 +443,20 @@
                        //手动结束包装默认从第二层包装开始验证
                        var dtl = PkgRule.Details.First(q => q.PKG_LEVEL == 2);
                        //行为设定的OPTION_1-9是包装不同层级的标签模板代码,如果为空则不需要打印
                        if (LabelDic[dtl.PKG_LEVEL].IsNullOrEmpty())
                        if (dtl.PKG_LEVEL == CurPkg.Item.PKG_LEVEL && CurPkg.NeedWeighing)
                        {
                            var data = new PackingActionOutput() { PkgInfo = CurPkg };
                            data.ExecCode = "Weighing";
                            data.PkgLevel = dtl.PKG_LEVEL;
                            CurCmd = data;
                            CurStep?.SetStatusMessage(StepStatus.Normal, Biz.L("上称称重"));
                            action.Data.Data = data;
                            action.Data.ShortMsg = new("上称称重", ShortMessage.Types.Success);
                            //action.LocaleMsg = new($"请把外包装上称称重");
                            action.LocaleMsg = new("MES.WorkAction.PackingAction.PleaseWeighing");
                        }
                        //根据包装不同层级的标签模板代码,如果为空则不需要打印
                        else if (LabelDic[dtl.PKG_LEVEL].IsNullOrEmpty())
                        {
                            var data = new PackingActionOutput() { PkgInfo = CurPkg };
                            data.ExecCode = "Scan";
@@ -542,6 +554,7 @@
                    //最外层包装已经完成包装,保存包装数据到数据库
                    else
                    {
                        CurPkg.Item = CurPkgItem;
                        action = CompletePkg();
                    }
                }
@@ -552,7 +565,27 @@
                    if (pInput.PkgLevel == dtl.PKG_LEVEL)
                    {
                        CurPkgItem.IsFinished = true;
                        CurPkgItem.Package = new()
                        CurPkgItem.Package = IsManually ? new()
                        {
                            AUTH_ORG = CurPosition.WorkBatch.WO.AUTH_ORG,
                            AUTH_PROD = CurPosition.CurLine.LINE_CODE,
                            SN = pInput.PkgSN,
                            PKG_TYPE = dtl.PkgType.PKG_NAME,
                            ITEM_CODE = CurPkgItem.Items.First().Package.ITEM_CODE,
                            QTY = CurPkgItem.Items.Sum(q => q.Package.QTY),
                            UNIT = dtl.PkgType.PKG_NAME,
                            WORK_ORDER = CurPkgItem.Items.First().Package.WORK_ORDER,
                            BATCH_NO = CurPkgItem.Items.First().Package.BATCH_NO,
                            ROT_CODE = CurPkgItem.Items.First().Package.ROT_CODE,
                            NODE_ID = CurPkgItem.Items.First().Package.NODE_ID,
                            NODE_NAME = CurPkgItem.Items.First().Package.NODE_NAME,
                            FTY_CODE = CurPkgItem.Items.First().Package.FTY_CODE,
                            WS_CODE = CurPkgItem.Items.First().Package.WS_CODE,
                            LINE_CODE = CurPkgItem.Items.First().Package.LINE_CODE,
                            POST_CODE = CurPkgItem.Items.First().Package.POST_CODE,
                            OPER_CODE = CurPkgItem.Items.First().Package.OPER_CODE,
                            SEGMENT = CurPkgItem.Items.First().Package.SEGMENT,
                        } : new()
                        {
                            AUTH_ORG = CurPosition.WorkBatch.WO.AUTH_ORG,
                            AUTH_PROD = CurPosition.CurLine.LINE_CODE,
@@ -715,6 +748,27 @@
            return list;
        }
        public List<MES_WIP_PKG> GetMinPackageList(WipPkgItem parent)
        {
            List<MES_WIP_PKG> list = new();
            if (parent.Items.Any())
            {
               foreach (var item in parent.Items)
               {
                   item.Package.PARENT_SN = parent.Package?.SN;
                   list.AddRange(GetMinPackageList(item));
               }
            }
            else
            {
                if (!parent.Package.IsNullOrEmpty())
                {
                    list.Add(parent.Package);
                }
            }
            return list;
        }
        public ApiAction<SubmitOutput> CompletePkg()
        {
            var action = new ApiAction<SubmitOutput>(new SubmitOutput());
@@ -794,6 +848,7 @@
                        ACT_TYPE = NodeAct.ACT_TYPE,
                        ACT_SN = wipSn.SN,
                        ACT_RESULT = "Y",
                        ELAPSED_TIME = CurStep.GetElapsedTime().TotalMilliseconds.ToInt64(),
                        TRACE_INFO = $"产品条码[{string.Join(",", CurPosition.CurSN)}]包装完成",
                    };
                    wipActs.Add(wipAct);