| | |
| | | return action; |
| | | } |
| | | |
| | | 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()); |
| | |
| | | ACT_VALUE_1 = CurPkg.IsFinished ? "Y" : "N", |
| | | ACT_VALUE_2 = CurPkg.ToJson(), |
| | | ACT_VALUE_3 = CurPkg.IsFinished ? LabelDic[CurPkg.Item.PKG_LEVEL].ToJson() : "", |
| | | ACT_VALUE_4 = "Customer", |
| | | ELAPSED_TIME = CurStep.GetElapsedTime().TotalMilliseconds.ToInt64(), |
| | | TRACE_INFO = $"产品条码[{string.Join(",", CurPosition.CurSN)}]包装完成", |
| | | }; |
| | |
| | | var actID = _pkgList.First().ACT_ID; |
| | | var wo = _pkgList.First().WORK_ORDER; |
| | | //包装信息保存到在制品信息表 |
| | | db.Updateable<MES_WIP_DATA>() |
| | | db.Updateable<MES_WIP_DATA>(CurPosition.UserCode) |
| | | .SetColumns(q => q.TRAY_SN == CurPkg.Item.Package.SN) |
| | | .SetColumns(q => q.INNER_SN == q.CARTON_SN) |
| | | .SetColumns(q => q.CARTON_SN == CurPkg.Item.Package.SN) |
| | | .Where(q => q.WORK_ORDER == wo && wipIDs.Contains(q.ID)) |
| | | .ExecuteCommand(); |
| | | //包装信息保存到生产过程记录 |
| | | db.Updateable<MES_WIP_HIS>() |
| | | db.Updateable<MES_WIP_HIS>(CurPosition.UserCode) |
| | | .SetColumns(q => q.TRAY_SN == CurPkg.Item.Package.SN) |
| | | .SetColumns(q => q.INNER_SN == q.CARTON_SN) |
| | | .SetColumns(q => q.CARTON_SN == CurPkg.Item.Package.SN) |
| | | .Where(q => q.WORK_ORDER == wo && q.NODE_ID == nodeID && wipIDs.Contains(q.WIP_ID)) |
| | | .ExecuteCommand(); |
| | | //包装信息保存到生产行为记录 |
| | | db.Updateable<MES_WIP_ACT>() |
| | | db.Updateable<MES_WIP_ACT>(CurPosition.UserCode) |
| | | .SetColumns(q => q.TRAY_SN == CurPkg.Item.Package.SN) |
| | | .SetColumns(q => q.INNER_SN == q.CARTON_SN) |
| | | .SetColumns(q => q.CARTON_SN == CurPkg.Item.Package.SN) |
| | | .Where(q => q.WORK_ORDER == wo && q.NODE_ID == nodeID && q.ACT_ID == actID && wipIDs.Contains(q.WIP_ID)) |
| | | .ExecuteCommand(); |
| | | //包装信息保存到工单条码明细表 |
| | | db.Updateable<BIZ_MES_WO_SN>() |
| | | db.Updateable<BIZ_MES_WO_SN>(CurPosition.UserCode) |
| | | .SetColumns(q => q.TRAY_SN == CurPkg.Item.Package.SN) |
| | | .SetColumns(q => q.OUTER_SN == CurPkg.Item.Package.SN) |
| | | .Where(q => q.WORK_ORDER == wo && wipIDs.Contains(q.WIP_ID)) |
| | |
| | | var actID = _pkgList.First(q => !q.WIP_ID.IsNullOrEmpty()).ACT_ID; |
| | | var wo = _pkgList.First(q => !q.WIP_ID.IsNullOrEmpty()).WORK_ORDER; |
| | | //包装信息保存到在制品信息表 |
| | | db.Updateable<MES_WIP_DATA>() |
| | | db.Updateable<MES_WIP_DATA>(CurPosition.UserCode) |
| | | .SetColumns(q => q.TRAY_SN == CurPkg.Item.Package.SN) |
| | | .SetColumns(q => q.INNER_SN == q.CARTON_SN) |
| | | .SetColumns(q => q.CARTON_SN == CurPkg.Item.Package.SN) |
| | |
| | | .ExecuteCommand(); |
| | | //包装信息保存到生产过程记录 |
| | | var endOperCode = CurPkg.IsReachedEndNode ? "EndNode" : "NotReachedEndNode"; |
| | | db.Updateable<MES_WIP_HIS>() |
| | | db.Updateable<MES_WIP_HIS>(CurPosition.UserCode) |
| | | .SetColumns(q => q.TRAY_SN == CurPkg.Item.Package.SN) |
| | | .SetColumns(q => q.INNER_SN == q.CARTON_SN) |
| | | .SetColumns(q => q.CARTON_SN == CurPkg.Item.Package.SN) |
| | | .Where(q => q.WORK_ORDER == wo && (q.NODE_ID == nodeID || q.OPER_CODE == endOperCode) && wipIDs.Contains(q.WIP_ID)) |
| | | .ExecuteCommand(); |
| | | //包装信息保存到生产行为记录 |
| | | db.Updateable<MES_WIP_ACT>() |
| | | db.Updateable<MES_WIP_ACT>(CurPosition.UserCode) |
| | | .SetColumns(q => q.TRAY_SN == CurPkg.Item.Package.SN) |
| | | .SetColumns(q => q.INNER_SN == q.CARTON_SN) |
| | | .SetColumns(q => q.CARTON_SN == CurPkg.Item.Package.SN) |
| | | .Where(q => q.WORK_ORDER == wo && q.NODE_ID == nodeID && q.ACT_ID == actID && wipIDs.Contains(q.WIP_ID)) |
| | | .ExecuteCommand(); |
| | | db.Updateable<MES_WIP_ACT>() |
| | | db.Updateable<MES_WIP_ACT>(CurPosition.UserCode) |
| | | .SetColumns(q => q.ACT_VALUE_1 == (CurPkg.IsFinished ? "Y" : "N")) |
| | | .SetColumns(q => q.ACT_VALUE_2 == CurPkg.ToJson()) |
| | | .SetColumns(q => q.ACT_VALUE_3 == (CurPkg.IsFinished ? LabelDic[CurPkg.Item.PKG_LEVEL].ToJson() : "")) |
| | | .SetColumns(q => q.ACT_VALUE_4 == "Customer") |
| | | .Where(q => q.WORK_ORDER == wo && q.NODE_ID == nodeID && q.ACT_ID == actID && q.WIP_ID == _lastWipID) |
| | | .ExecuteCommand(); |
| | | var InStoreLabel = CurPkg.IsFinished ? CurPkg.InStoreLabel?.ToJson() : ""; |
| | | db.Updateable<MES_WIP_ACT>(CurPosition.UserCode) |
| | | .SetColumns(q => q.ACT_VALUE_1 == (CurPkg.IsFinished ? "Y" : "N")) |
| | | .SetColumns(q => q.ACT_VALUE_2 == CurPkg.ToJson()) |
| | | .SetColumns(q => q.ACT_VALUE_3 == InStoreLabel) |
| | | .SetColumns(q => q.ACT_VALUE_4 == "InStore") |
| | | .Where(q => q.WORK_ORDER == wo && q.NODE_ID == nodeID && q.ACT_ID == CurPkg.InStoreActID && q.WIP_ID == _lastWipID) |
| | | .ExecuteCommand(); |
| | | //包装信息保存到工单条码明细表 |
| | | db.Updateable<BIZ_MES_WO_SN>() |
| | | db.Updateable<BIZ_MES_WO_SN>(CurPosition.UserCode) |
| | | .SetColumns(q => q.TRAY_SN == CurPkg.Item.Package.SN) |
| | | .SetColumns(q => q.OUTER_SN == CurPkg.Item.Package.SN) |
| | | .Where(q => q.WORK_ORDER == wo && wipIDs.Contains(q.WIP_ID)) |