| | |
| | | IS_MIN_PKG = max.PkgType.IS_MIN_PKG, |
| | | PKG_LEVEL = max.PKG_LEVEL, |
| | | PKG_QTY = max.PKG_QTY, |
| | | LABEL_CODE = LabelDic.Count > max.PKG_LEVEL ? LabelDic[max.PKG_LEVEL]?.LABEL_CODE : null, |
| | | LABEL_CODE = LabelDic?.GetValueOrDefault(max.PKG_LEVEL, null)?.LABEL_CODE,//LabelDic.Count >= max.PKG_LEVEL ? LabelDic[max.PKG_LEVEL]?.LABEL_CODE : null, |
| | | SN = CurPosition.GenerateSN(max.SN_RULE, this), |
| | | } |
| | | }; |
| | |
| | | IS_MIN_PKG = dtl.PkgType.IS_MIN_PKG, |
| | | PKG_LEVEL = dtl.PKG_LEVEL, |
| | | PKG_QTY = dtl.PKG_QTY, |
| | | LABEL_CODE = LabelDic.Count > dtl.PKG_LEVEL ? LabelDic[dtl.PKG_LEVEL]?.LABEL_CODE : null, |
| | | LABEL_CODE = LabelDic.Count >= dtl.PKG_LEVEL ? LabelDic[dtl.PKG_LEVEL]?.LABEL_CODE : null, |
| | | SN = CurPosition.GenerateSN(dtl.SN_RULE, this), |
| | | }; |
| | | if (!child.IsNullOrEmpty()) |
| | |
| | | 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; |
| | |
| | | POST_CODE = CurPkgItem.Items.First().Package.POST_CODE, |
| | | OPER_CODE = CurPkgItem.Items.First().Package.OPER_CODE, |
| | | SEGMENT = CurPkgItem.Items.First().Package.SEGMENT, |
| | | ACT_ID = CurPkgItem.Items.First().Package.ACT_ID, |
| | | ACT_NAME = CurPkgItem.Items.First().Package.ACT_NAME, |
| | | } : new() |
| | | { |
| | | AUTH_ORG = CurPosition.WorkBatch.WO.AUTH_ORG, |
| | |
| | | |
| | | //创建变量克隆对象用于传入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 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; |
| | | //var wipIDs = _pkgList.Where(q => !q.WIP_ID.IsNullOrEmpty()).Select(q => q.WIP_ID).ToList(); |
| | | var nodeID = _pkgList.First(q => !q.NODE_ID.IsNullOrEmpty()).NODE_ID; |
| | | var actID = _pkgList.First(q => !q.ACT_ID.IsNullOrEmpty()).ACT_ID; |
| | | var wo = _pkgList.First(q => !q.WORK_ORDER.IsNullOrEmpty()).WORK_ORDER; |
| | | //包装信息保存到在制品信息表 |
| | | 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)) |
| | | .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(); |
| | | } |
| | | }); |