| | |
| | | using Rhea.Common; |
| | | using Microsoft.CodeAnalysis.Differencing; |
| | | using Rhea.Common; |
| | | using SqlSugar; |
| | | using System; |
| | | using System.Collections.Generic; |
| | |
| | | else |
| | | { |
| | | //设置打印变量值 |
| | | LabelDic[min.PKG_LEVEL] = CurPosition.SetLabelVariables(LabelPV, LabelDic[min.PKG_LEVEL]); |
| | | LabelDic[min.PKG_LEVEL] = CurPosition.SetLabelVariables(LabelPV, LabelDic[min.PKG_LEVEL], this); |
| | | |
| | | var data = new PackingActionOutput() { PkgInfo = CurPkg }; |
| | | data.ExecCode = "Print"; |
| | |
| | | CurCmd = null; |
| | | PrintTimes = 0; |
| | | action = SavePkgData(input, action); |
| | | if (action.IsSuccessed) |
| | | { |
| | | CurStep?.SetStatusMessage(StepStatus.Success, Biz.L("扫描成功")); |
| | | action.Data.ShortMsg = new("扫描成功", ShortMessage.Types.Success); |
| | | } |
| | | //if (action.IsSuccessed) |
| | | //{ |
| | | // CurStep?.SetStatusMessage(StepStatus.Success, Biz.L("扫描成功")); |
| | | // action.Data.ShortMsg = new("扫描成功", ShortMessage.Types.Success); |
| | | //} |
| | | } |
| | | break; |
| | | //Print:打印,打印当前包装层级的标签 |
| | |
| | | else |
| | | { |
| | | //设置打印变量值 |
| | | LabelDic[dtl.PKG_LEVEL] = CurPosition.SetLabelVariables(LabelPV, LabelDic[dtl.PKG_LEVEL]); |
| | | LabelDic[dtl.PKG_LEVEL] = CurPosition.SetLabelVariables(LabelPV, LabelDic[dtl.PKG_LEVEL], this); |
| | | |
| | | var data = new PackingActionOutput() { PkgInfo = CurPkg }; |
| | | data.ExecCode = "Print"; |
| | |
| | | |
| | | //手动结束包装默认从第二层包装开始验证 |
| | | 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"; |
| | |
| | | else |
| | | { |
| | | //设置打印变量值 |
| | | LabelDic[dtl.PKG_LEVEL] = CurPosition.SetLabelVariables(LabelPV, LabelDic[dtl.PKG_LEVEL]); |
| | | LabelDic[dtl.PKG_LEVEL] = CurPosition.SetLabelVariables(LabelPV, LabelDic[dtl.PKG_LEVEL], this); |
| | | |
| | | var data = new PackingActionOutput() { PkgInfo = CurPkg }; |
| | | data.ExecCode = "Print"; |
| | |
| | | //最外层包装已经完成包装,保存包装数据到数据库 |
| | | else |
| | | { |
| | | CurPkg.Item = CurPkgItem; |
| | | action = CompletePkg(); |
| | | } |
| | | } |
| | |
| | | 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, |
| | |
| | | else |
| | | { |
| | | //设置打印变量值 |
| | | LabelDic[dtl.PKG_LEVEL] = CurPosition.SetLabelVariables(LabelPV, LabelDic[dtl.PKG_LEVEL]); |
| | | LabelDic[dtl.PKG_LEVEL] = CurPosition.SetLabelVariables(LabelPV, LabelDic[dtl.PKG_LEVEL], this); |
| | | |
| | | var data = new PackingActionOutput() { PkgInfo = CurPkg }; |
| | | data.ExecCode = "Print"; |
| | |
| | | { |
| | | item.Package.PARENT_SN = parent.Package?.SN; |
| | | list.AddRange(GetPackageList(item)); |
| | | } |
| | | 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; |
| | | } |
| | |
| | | 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); |
| | |
| | | else |
| | | { |
| | | var _pkgList = CurPkg.IsFinished ? GetPackageList(CurPkg.Item) : new(); |
| | | |
| | | //最外层包装已经完成包装,则把工序中暂存标记设为false,统一提交包装内产品的过站记录 |
| | | CurPosition.NeedTemporaryStoreDBCommitAction = false; |
| | | //保存数据 |
| | | var db = Biz.Db; |
| | | var dbTran = db.UseTran(() => |
| | | CurPosition.SaveStepsCommitActionToDB(() => |
| | | { |
| | | var db = CurPosition.GetCommitDB(); |
| | | if (_pkgList.Any()) |
| | | { |
| | | db.Storageable(_pkgList, CurPosition.UserCode).ExecuteCommand(); |
| | |
| | | } |
| | | } |
| | | }); |
| | | if (!dbTran.IsSuccess) |
| | | { |
| | | //抛出异常 |
| | | throw dbTran.ErrorException; |
| | | } |
| | | } |
| | | |
| | | if (CurPkg.IsFinished) |