| | |
| | | CurPkgItem.Package.WIP_ID = CurPosition.CurWipSNs.Count == 1 ? CurPosition.CurWipSNs.First().ID : null; |
| | | CurPkgItem.Package.PKG_TYPE = dtl.PkgType.PKG_NAME; |
| | | CurPkgItem.Package.ITEM_CODE = CurPosition.CurWipSNs.First().ITEM_CODE; |
| | | CurPkgItem.Package.QTY = CurPosition.CurWipSNs.First().QTY; |
| | | CurPkgItem.Package.QTY = CurPosition.CurWipSNs.Sum(q => q.QTY); |
| | | CurPkgItem.Package.UNIT = dtl.PkgType.PKG_NAME; |
| | | CurPkgItem.Package.WORK_ORDER = CurPosition.CurWipSNs.First().WORK_ORDER; |
| | | CurPkgItem.Package.BATCH_NO = CurPosition.CurWipSNs.First().BATCH_NO; |
| | |
| | | |
| | | //创建变量克隆对象用于传入DBSubmitAction中保存当前需要暂存的数据值 |
| | | var _wipActs = wipActs.Clone(); |
| | | var _pkgList = CurPkg.IsFinished ? CurPosition.GetPackageList(CurPkg.Item) : new(); |
| | | var _pkgList = CurPkg.IsFinished ? CurPosition.GetPackageList(CurPkg.Item).Clone() : new(); |
| | | var _wipIDs = CurPkg.IsFinished ? CurPkg.Item.GetWipSnList().Select(q => q.Key).ToList().Clone() : new(); |
| | | //保存数据 |
| | | CurStep.DBSubmitAction = () => |
| | | { |
| | |
| | | if (_pkgList.Any()) |
| | | { |
| | | db.Storageable(_pkgList, CurPosition.UserCode).ExecuteCommand(); |
| | | var wipIDs = _pkgList.Where(q => !q.WIP_ID.IsNullOrEmpty()).Select(q => q.WIP_ID).ToList(); |
| | | //var wipIDs = _pkgList.Where(q => !q.WIP_ID.IsNullOrEmpty()).Select(q => q.WIP_ID).ToList(); |
| | | var nodeID = _pkgList.First().NODE_ID; |
| | | var actID = _pkgList.First().ACT_ID; |
| | | var wo = _pkgList.First().WORK_ORDER; |
| | |
| | | .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)) |
| | | .Where(q => q.WORK_ORDER == wo && _wipIDs.Contains(q.ID)) |
| | | .ExecuteCommand(); |
| | | //包装信息保存到生产过程记录 |
| | | 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)) |
| | | .Where(q => q.WORK_ORDER == wo && q.NODE_ID == nodeID && _wipIDs.Contains(q.WIP_ID)) |
| | | .ExecuteCommand(); |
| | | //包装信息保存到生产行为记录 |
| | | 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)) |
| | | .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>(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)) |
| | | .Where(q => q.WORK_ORDER == wo && _wipIDs.Contains(q.WIP_ID)) |
| | | .ExecuteCommand(); |
| | | } |
| | | }; |
| | |
| | | if (CurPkg.IsFinished) |
| | | { |
| | | var _pkgList = CurPosition.GetPackageList(CurPkg.Item).Clone(); |
| | | var _wipIDs = CurPkg.Item.GetWipSnList().Select(q => q.Key).ToList().Clone(); |
| | | var _lastWipID = CurPosition.LastWipSNs?.FirstOrDefault()?.ID; |
| | | |
| | | //最外层包装已经完成包装,则把工序中暂存标记设为false,统一提交包装内产品的过站记录 |
| | |
| | | if (_pkgList.Any()) |
| | | { |
| | | db.Storageable(_pkgList, CurPosition.UserCode).ExecuteCommand(); |
| | | var wipIDs = _pkgList.Where(q => !q.WIP_ID.IsNullOrEmpty()).Select(q => q.WIP_ID).ToList(); |
| | | //var wipIDs = _pkgList.Where(q => !q.WIP_ID.IsNullOrEmpty()).Select(q => q.WIP_ID).ToList(); |
| | | var nodeID = _pkgList.First(q => !q.WIP_ID.IsNullOrEmpty()).NODE_ID; |
| | | var actID = _pkgList.First(q => !q.WIP_ID.IsNullOrEmpty()).ACT_ID; |
| | | var wo = _pkgList.First(q => !q.WIP_ID.IsNullOrEmpty()).WORK_ORDER; |
| | |
| | | .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)) |
| | | .Where(q => q.WORK_ORDER == wo && _wipIDs.Contains(q.ID)) |
| | | .ExecuteCommand(); |
| | | //包装信息保存到生产过程记录 |
| | | var endOperCode = CurPkg.IsReachedEndNode ? "EndNode" : "NotReachedEndNode"; |
| | |
| | | .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)) |
| | | .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>(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)) |
| | | .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>(CurPosition.UserCode) |
| | | .SetColumns(q => q.ACT_VALUE_1 == (CurPkg.IsFinished ? "Y" : "N")) |
| | |
| | | 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)) |
| | | .Where(q => q.WORK_ORDER == wo && _wipIDs.Contains(q.WIP_ID)) |
| | | .ExecuteCommand(); |
| | | } |
| | | }); |