| | |
| | | } |
| | | |
| | | // 查询单据明细,并合并到备料单的备料明细中 |
| | | var dtls = bizType.GetPickList(orderNo); |
| | | if (dtls.Sum(q => q.QTY_ACT_REQ) <= 0) |
| | | var srcDtls = bizType.GetPickList(orderNo); |
| | | if (srcDtls.Sum(q => q.QTY_ACT_REQ) <= 0) |
| | | { |
| | | action.IsSuccessed = false; |
| | | //action.LocaleMsg = Biz.L("单据[{0}]未找到需要备料的行明细,请扫描正确的单据"); |
| | |
| | | ADD_TIME = DateTime.Now, |
| | | }; |
| | | Order.SourceOrders.Add(srcOrder); |
| | | foreach (var dtl in dtls) |
| | | foreach (var sdtl in srcDtls) |
| | | { |
| | | dtl.AUTH_ORG = OrgCode; |
| | | var pdtl = Order.Details.Where(q => q.ITEM_CODE == dtl.ITEM_CODE).FirstOrDefault(); |
| | | sdtl.AUTH_ORG = OrgCode; |
| | | var pdtl = Order.Details.Where(q => q.ITEM_CODE == sdtl.ITEM_CODE).FirstOrDefault(); |
| | | if (pdtl.IsNullOrEmpty()) |
| | | { |
| | | pdtl = new () |
| | |
| | | AUTH_ORG = OrgCode, |
| | | ORDER_NO = Order.ORDER_NO, |
| | | ORDER_LINE = (Order.Details.Max(q => q.LINE_CODE.ToInt32()) + 1).ToString(), |
| | | ITEM_CODE = dtl.ITEM_CODE, |
| | | SUBITEM_CODE = dtl.SUBITEM_CODE, |
| | | UNIT = dtl.UNIT, |
| | | PLAN_LOSS_QTY = dtl.PLAN_LOSS_QTY, |
| | | PLAN_LOSS_RATE = dtl.PLAN_LOSS_RATE, |
| | | IS_CALC_LOSS = dtl.IS_CALC_LOSS, |
| | | IS_WHOLE = dtl.IS_WHOLE, |
| | | SOURCE_CODE = dtl.SOURCE_CODE, |
| | | SOURCE_ORDER = dtl.SOURCE_ORDER, |
| | | SOURCE_LINE = dtl.SOURCE_LINE, |
| | | ITEM_CODE = sdtl.ITEM_CODE, |
| | | SUBITEM_CODE = sdtl.SUBITEM_CODE, |
| | | UNIT = sdtl.UNIT, |
| | | PLAN_LOSS_QTY = sdtl.PLAN_LOSS_QTY, |
| | | PLAN_LOSS_RATE = sdtl.PLAN_LOSS_RATE, |
| | | IS_CALC_LOSS = sdtl.IS_CALC_LOSS, |
| | | IS_WHOLE = sdtl.IS_WHOLE, |
| | | SOURCE_CODE = sdtl.SOURCE_CODE, |
| | | SOURCE_ORDER = sdtl.SOURCE_ORDER, |
| | | SOURCE_LINE = sdtl.SOURCE_LINE, |
| | | STATUS = BIZ_WMS_PREP_DTL.STATUSs.UnCalc.GetValue(), |
| | | FTY_CODE = dtl.FTY_CODE, |
| | | WS_CODE = dtl.WS_CODE, |
| | | LINE_CODE = dtl.LINE_CODE, |
| | | POST_CODE = dtl.POST_CODE, |
| | | OPER_CODE = dtl.OPER_CODE, |
| | | SEGMENT = dtl.SEGMENT, |
| | | SMT_NO = dtl.SMT_NO, |
| | | STATION_NO = dtl.STATION_NO, |
| | | FEEDER_NO = dtl.FEEDER_NO, |
| | | FEEDER_TYPE = dtl.FEEDER_TYPE, |
| | | FTY_CODE = sdtl.FTY_CODE, |
| | | WS_CODE = sdtl.WS_CODE, |
| | | LINE_CODE = sdtl.LINE_CODE, |
| | | POST_CODE = sdtl.POST_CODE, |
| | | OPER_CODE = sdtl.OPER_CODE, |
| | | SEGMENT = sdtl.SEGMENT, |
| | | SMT_NO = sdtl.SMT_NO, |
| | | STATION_NO = sdtl.STATION_NO, |
| | | FEEDER_NO = sdtl.FEEDER_NO, |
| | | FEEDER_TYPE = sdtl.FEEDER_TYPE, |
| | | }; |
| | | Order.Details.Add(pdtl); |
| | | } |
| | | pdtl.QTY_REQ += dtl.QTY_ACT_REQ; |
| | | Order.SourceDetails.Add(dtl); |
| | | pdtl.QTY_REQ += sdtl.QTY_ACT_REQ; |
| | | sdtl.ORDER_NO = pdtl.ORDER_NO; |
| | | sdtl.ORDER_LINE = pdtl.ORDER_LINE; |
| | | Order.SourceDetails.Add(sdtl); |
| | | } |
| | | var srcInfo = Order.SourceOrders.Select(q => new { q.SOURCE_CODE, q.SOURCE_ORDER }).DistinctBy(q => q.SOURCE_ORDER).OrderBy(q => q.SOURCE_ORDER); |
| | | Order.SOURCE_CODE = string.Join(",", srcInfo.Select(q => q.SOURCE_CODE)); |
| | |
| | | using Newtonsoft.Json; |
| | | using Newtonsoft.Json.Serialization; |
| | | using Org.BouncyCastle.Asn1.X509; |
| | | using Org.BouncyCastle.Ocsp; |
| | | using Rhea.Common; |
| | | using SqlSugar; |
| | | using System; |
| | |
| | | item.QTY_ACT_DLVY = item.QTY_ACT_REQ; |
| | | } |
| | | trans.CurPREP.Order.STATUS = BIZ_WMS_PREP.STATUSs.Sended.GetValue(); |
| | | var orders = trans.MainDB.Queryable<BIZ_U9_MISC_OUT>().Where(q => trans.CurPREP.Order.SourceOrders.Select(s => s.SOURCE_ORDER).Contains(q.ORDER_NO)).ToList(); |
| | | foreach (var item in orders) |
| | | var orders = trans.MainDB.Queryable<BIZ_U9_MISC_OUT>().Where(q => trans.CurPREP.Order.SourceOrders.Select(s => s.SOURCE_ORDER).Contains(q.ORDER_NO)).IncludesAllFirstLayer().ToList(); |
| | | foreach (var order in orders) |
| | | { |
| | | item.STATUS = BIZ_U9_MISC_OUT.STATUSs.Sended.GetValue(); |
| | | item.PREP_PERSON = trans.UserCode; |
| | | item.FINISH_TIME = DateTime.Now; |
| | | item.REQ_PERSON = trans.UserCode; |
| | | item.DLVY_TIME = DateTime.Now; |
| | | order.STATUS = BIZ_U9_MISC_OUT.STATUSs.Sended.GetValue(); |
| | | order.PREP_PERSON = trans.UserCode; |
| | | order.FINISH_TIME = DateTime.Now; |
| | | order.REQ_PERSON = trans.UserCode; |
| | | order.DLVY_TIME = DateTime.Now; |
| | | foreach (var dtl in order.Details) |
| | | { |
| | | dtl.STATUS = BIZ_WMS_TRANSFER.STATUSs.Sended.GetValue(); |
| | | } |
| | | order.SnList ??= new(); |
| | | foreach (var sn in trans.CurPREP.Order.SnList) |
| | | { |
| | | var dtl = order.Details.Where(q => q.ITEM_CODE == sn.ITEM_CODE).First(); |
| | | order.SnList.Add(new() |
| | | { |
| | | AUTH_ORG = dtl.AUTH_ORG, |
| | | ORDER_NO = dtl.ORDER_NO, |
| | | LINE_NO = dtl.LINE_NO, |
| | | SN = sn.SN, |
| | | STATUS = sn.STATUS, |
| | | ITEM_CODE = sn.ITEM_CODE, |
| | | QTY = sn.QTY, |
| | | UNIT = sn.UNIT, |
| | | WH_CODE = sn.WH_CODE, |
| | | REGION_CODE = sn.REGION_CODE, |
| | | SHELF_CODE = sn.SHELF_CODE, |
| | | LOCATION_CODE = sn.LOCATION_CODE, |
| | | DOWN_TIME = sn.DOWN_TIME, |
| | | DLVY_TIME = DateTime.Now, |
| | | IS_OUT = "Y", |
| | | LOTNO = sn.LOTNO, |
| | | }); |
| | | } |
| | | } |
| | | var items = trans.MainDB.Queryable<WMS_ITEM>().Where(q => q.TRANS_NO == trans.CurPREP.Order.ORDER_NO).ToList(); |
| | | var history = new List<WMS_ITEM_HIS>(); |
| | |
| | | db.Updateable(items, trans.UserCode).UpdateColumns(q => new { q.UPDATE_TIME, q.UPDATE_USER, q.STATUS }).ExecuteCommand(); |
| | | db.Insertable(history, trans.UserCode).ExecuteCommand(); |
| | | db.Updateable(orders, trans.UserCode).UpdateColumns(q => new { q.UPDATE_TIME, q.UPDATE_USER, q.STATUS, q.PREP_PERSON, q.FINISH_TIME, q.REQ_PERSON, q.DLVY_TIME }).ExecuteCommand(); |
| | | db.Updateable(orders.SelectMany(q => q.Details).ToList(), trans.UserCode).UpdateColumns(q => new { q.UPDATE_TIME, q.UPDATE_USER, q.STATUS }).ExecuteCommand(); |
| | | db.Storageable(orders.SelectMany(q => q.SnList).ToList(), trans.UserCode).ToStorage().AsInsertable.ExecuteCommand(); |
| | | }); |
| | | if (dbTran.IsSuccess) |
| | | { |
| | |
| | | { |
| | | sn.DLVY_BATCH = batch.DLVY_BATCH; |
| | | sn.STATUS = WMS_ITEM.STATUSs.Sended.GetValue(); |
| | | sn.REQ_ID = batch.REQ_ID; |
| | | sn.REQ_ORDER = batch.REQ_ORDER; |
| | | } |
| | | |
| | | var items = trans.MainDB.Queryable<WMS_ITEM>().Where(q => sns.Select(s => s.SN).Contains(q.SN)).ToList(); |
| | |
| | | db.Updateable(trans.CurPREP.Order, trans.UserCode).UpdateColumns(q => new { q.UPDATE_TIME, q.UPDATE_USER, q.STATUS }).ExecuteCommand(); |
| | | db.Updateable(prepSrcList, trans.UserCode).UpdateColumns(q => new { q.UPDATE_TIME, q.UPDATE_USER, q.QTY_ACT_DLVY }).ExecuteCommand(); |
| | | db.Insertable(batch, trans.UserCode).ExecuteCommand(); |
| | | db.Updateable(sns, trans.UserCode).UpdateColumns(q => new { q.UPDATE_TIME, q.UPDATE_USER, q.STATUS, q.DLVY_BATCH }).ExecuteCommand(); |
| | | db.Updateable(sns, trans.UserCode).UpdateColumns(q => new { q.UPDATE_TIME, q.UPDATE_USER, q.STATUS, q.DLVY_BATCH, q.REQ_ID, q.REQ_ORDER }).ExecuteCommand(); |
| | | db.Updateable(items, trans.UserCode).UpdateColumns(q => new { q.UPDATE_TIME, q.UPDATE_USER, q.STATUS }).ExecuteCommand(); |
| | | db.Insertable(history, trans.UserCode).ExecuteCommand(); |
| | | }); |
| | |
| | | { |
| | | sn.DLVY_BATCH = batch.DLVY_BATCH; |
| | | sn.STATUS = WMS_ITEM.STATUSs.Sended.GetValue(); |
| | | sn.REQ_ID = batch.REQ_ID; |
| | | sn.REQ_ORDER = batch.REQ_ORDER; |
| | | } |
| | | |
| | | var items = trans.MainDB.Queryable<WMS_ITEM>().Where(q => sns.Select(s => s.SN).Contains(q.SN)).ToList(); |
| | |
| | | db.Updateable(trans.CurPREP.Order, trans.UserCode).UpdateColumns(q => new { q.UPDATE_TIME, q.UPDATE_USER, q.STATUS }).ExecuteCommand(); |
| | | db.Updateable(prepSrcList, trans.UserCode).UpdateColumns(q => new { q.UPDATE_TIME, q.UPDATE_USER, q.QTY_ACT_DLVY }).ExecuteCommand(); |
| | | db.Insertable(batch, trans.UserCode).ExecuteCommand(); |
| | | db.Updateable(sns, trans.UserCode).UpdateColumns(q => new { q.UPDATE_TIME, q.UPDATE_USER, q.STATUS, q.DLVY_BATCH }).ExecuteCommand(); |
| | | db.Updateable(sns, trans.UserCode).UpdateColumns(q => new { q.UPDATE_TIME, q.UPDATE_USER, q.STATUS, q.DLVY_BATCH, q.REQ_ID, q.REQ_ORDER }).ExecuteCommand(); |
| | | db.Updateable(items, trans.UserCode).UpdateColumns(q => new { q.UPDATE_TIME, q.UPDATE_USER, q.STATUS }).ExecuteCommand(); |
| | | db.Insertable(history, trans.UserCode).ExecuteCommand(); |
| | | if (orders.Any()) |
| | |
| | | item.QTY_ACT_DLVY = item.QTY_ACT_REQ; |
| | | } |
| | | trans.CurPREP.Order.STATUS = BIZ_WMS_PREP.STATUSs.Sended.GetValue(); |
| | | //var orders = trans.MainDB.Queryable<BIZ_WMS_TRANSFER>().Where(q => trans.CurPREP.Order.SourceOrders.Select(s => s.SOURCE_ORDER).Contains(q.ORDER_NO)).ToList(); |
| | | //foreach (var item in orders) |
| | | //{ |
| | | // item.STATUS = BIZ_WMS_TRANSFER.STATUSs.Sended.GetValue(); |
| | | // item.PREP_PERSON = trans.UserCode; |
| | | // item.FINISH_TIME = DateTime.Now; |
| | | // item.REQ_PERSON = trans.UserCode; |
| | | // item.DLVY_TIME = DateTime.Now; |
| | | //} |
| | | var orders = trans.MainDB.Queryable<BIZ_WMS_TRANSFER>().Where(q => trans.CurPREP.Order.SourceOrders.Select(s => s.SOURCE_ORDER).Contains(q.ORDER_NO)).IncludesAllFirstLayer().ToList(); |
| | | foreach (var order in orders) |
| | | { |
| | | order.STATUS = BIZ_WMS_TRANSFER.STATUSs.Sended.GetValue(); |
| | | order.OUT_WH_CODE = string.Join(",", trans.CurPREP.Order.SnList.Select(q => q.WH_CODE).Distinct()); |
| | | foreach (var dtl in order.Details) |
| | | { |
| | | dtl.STATUS = BIZ_WMS_TRANSFER.STATUSs.Sended.GetValue(); |
| | | dtl.OUT_WH_CODE = string.Join(",", trans.CurPREP.Order.SnList.Select(q => q.WH_CODE).Distinct()); |
| | | dtl.QTY_OUT = dtl.QTY_REQ; |
| | | dtl.OUT_LOTNO = string.Join(",", trans.CurPREP.Order.SnList.Select(q => q.LOTNO).Distinct()); |
| | | } |
| | | order.SnList ??= new(); |
| | | foreach (var sn in trans.CurPREP.Order.SnList) |
| | | { |
| | | var dtl = order.Details.Where(q => q.ITEM_CODE == sn.ITEM_CODE).First(); |
| | | order.SnList.Add(new() |
| | | { |
| | | AUTH_ORG = dtl.AUTH_ORG, |
| | | ORDER_NO = dtl.ORDER_NO, |
| | | ORDER_LINE = dtl.ORDER_LINE, |
| | | SN = sn.SN, |
| | | STATUS = sn.STATUS, |
| | | ITEM_CODE = sn.ITEM_CODE, |
| | | QTY = sn.QTY, |
| | | LOTNO = sn.LOTNO, |
| | | OUT_WH_CODE = sn.WH_CODE, |
| | | OUT_REGION_CODE = sn.REGION_CODE, |
| | | OUT_SHELF_CODE = sn.SHELF_CODE, |
| | | OUT_LOCATION_CODE = sn.LOCATION_CODE, |
| | | OUT_TIME = DateTime.Now, |
| | | }); |
| | | } |
| | | } |
| | | var items = trans.MainDB.Queryable<WMS_ITEM>().Where(q => q.TRANS_NO == trans.CurPREP.Order.ORDER_NO).ToList(); |
| | | var history = new List<WMS_ITEM_HIS>(); |
| | | foreach(var item in items) |
| | |
| | | .SetColumns(q => q.DLVY_BATCH == batch.DLVY_BATCH).SetColumns(q => q.STATUS == WMS_ITEM.STATUSs.Sended.GetValue()).ExecuteCommand(); |
| | | db.Updateable(items, trans.UserCode).UpdateColumns(q => new { q.UPDATE_TIME, q.UPDATE_USER, q.STATUS }).ExecuteCommand(); |
| | | db.Insertable(history, trans.UserCode).ExecuteCommand(); |
| | | //db.Updateable(orders, trans.UserCode).UpdateColumns(q => new { q.UPDATE_TIME, q.UPDATE_USER, q.STATUS, q.PREP_PERSON, q.FINISH_TIME, q.REQ_PERSON, q.DLVY_TIME }).ExecuteCommand(); |
| | | db.Updateable(orders, trans.UserCode).UpdateColumns(q => new { q.UPDATE_TIME, q.UPDATE_USER, q.STATUS, q.OUT_WH_CODE }).ExecuteCommand(); |
| | | db.Updateable(orders.SelectMany(q => q.Details).ToList(), trans.UserCode).UpdateColumns(q => new { q.UPDATE_TIME, q.UPDATE_USER, q.STATUS, q.OUT_WH_CODE, q.QTY_OUT, q.OUT_LOTNO }).ExecuteCommand(); |
| | | db.Storageable(orders.SelectMany(q => q.SnList).ToList(), trans.UserCode).ToStorage().AsInsertable.ExecuteCommand(); |
| | | }); |
| | | if (dbTran.IsSuccess) |
| | | { |
| | |
| | | var action = new ApiAction<ProdReqOutput>(); |
| | | try |
| | | { |
| | | req = await Biz.Db.Queryable<BIZ_WMS_TRANSFER>().Where(x => x.ORDER_NO == input.ReqNo).Includes(q => q.DtlsWithGhost, d => d.ItemInfo).IncludesAllFirstLayer().FirstAsync(); |
| | | req = await Biz.Db.Queryable<BIZ_WMS_TRANSFER>().Where(x => x.ORDER_NO == input.ReqNo).Includes(q => q.Details, d => d.ItemInfo).IncludesAllFirstLayer().FirstAsync(); |
| | | //验证明细是否正确 |
| | | if (!req.Dtls.Any()) |
| | | if (!req.Details.Any()) |
| | | { |
| | | action.IsSuccessed = false; |
| | | action.LocaleMsg = new("WMS.ProdMReq.SelectOrder.DtlsException", input.ReqNo); |
| | |
| | | |
| | | var begin = DateTime.Now; |
| | | var ElapsedTime = 0.0; |
| | | var sumDtls = req.Dtls.Where(q => q.STATUS != BIZ_WMS_TRANSFER.STATUSs.Finished.GetValue()) |
| | | var sumDtls = req.Details.Where(q => q.STATUS != BIZ_WMS_TRANSFER.STATUSs.Finished.GetValue()) |
| | | .GroupBy(x => new { x.ITEM_CODE }).Select(x => new { ItemCode = x.Key.ITEM_CODE.ToString(), WarehouseCode = x.Max(t => t.OUT_WH_CODE), actQty = x.Sum(t => t.QTY_REQ - t.QTY_OUT), lockObj = new object() }); |
| | | var dic = sumDtls.ToDictionary(k => k, v => new Result<List<SuggestItem>>()); |
| | | foreach (var item in dic) |
| | |
| | | var action = new ApiAction(); |
| | | try |
| | | { |
| | | var dtls = req.Dtls.GroupBy(x => new { x.ORDER_LINE, x.ITEM_CODE, x.ItemInfo.ITEM_NAME }).Select(x => new ProdReqDtl() { BillLine = x.Key.ORDER_LINE.ToInt32(), ItemCode = x.Key.ITEM_CODE, ItemName = x.Key.ITEM_NAME, Status = "", Items = new List<ProdReqDtlItems>() }).ToList(); |
| | | var dtls = req.Details.GroupBy(x => new { x.ORDER_LINE, x.ITEM_CODE, x.ItemInfo.ITEM_NAME }).Select(x => new ProdReqDtl() { BillLine = x.Key.ORDER_LINE.ToInt32(), ItemCode = x.Key.ITEM_CODE, ItemName = x.Key.ITEM_NAME, Status = "", Items = new List<ProdReqDtlItems>() }).ToList(); |
| | | foreach (var d in dtls) |
| | | { |
| | | d.Items = Suggests.Where(x => x.Item.ITEM_CODE == d.ItemCode).Select(x => new ProdReqDtlItems { WHCode = x.Warehouse.WH_CODE, LocationCode = x.Location.LOCATION_CODE, SN = x.Item.SN, QTY = x.Item.QTY }).ToList(); |
| | | d.Status = $"{(double)req.Dtls.Where(x => x.ITEM_CODE == d.ItemCode).Sum(x => x.QTY_OUT)} / {(double)req.Dtls.Where(x => x.ITEM_CODE == d.ItemCode).Sum(x => x.QTY_REQ)} {Suggests.FirstOrDefault()?.Item?.UNIT} (还需{d.Items.Count}个)"; |
| | | d.Status = $"{(double)req.Details.Where(x => x.ITEM_CODE == d.ItemCode).Sum(x => x.QTY_OUT)} / {(double)req.Details.Where(x => x.ITEM_CODE == d.ItemCode).Sum(x => x.QTY_REQ)} {Suggests.FirstOrDefault()?.Item?.UNIT} (还需{d.Items.Count}个)"; |
| | | } |
| | | action.Data = itemcode.IsNullOrEmpty() ? dtls.OrderBy(q => q.BillLine) : dtls.Where(x => x.ItemCode == itemcode).FirstOrDefault()?.Items.OrderBy(q => q.SN); |
| | | } |
| | |
| | | var action = new ApiAction(); |
| | | try |
| | | { |
| | | action.Data = $"物料{itemcode}:已下架[{(double)req.Dtls.Where(x => x.ITEM_CODE == itemcode).Sum(x => x.QTY_OUT)}],共{(double)req.Dtls.Where(x => x.ITEM_CODE == itemcode).Sum(x => x.QTY_REQ)} {Suggests.FirstOrDefault()?.Item?.UNIT}"; |
| | | action.Data = $"物料{itemcode}:已下架[{(double)req.Details.Where(x => x.ITEM_CODE == itemcode).Sum(x => x.QTY_OUT)}],共{(double)req.Details.Where(x => x.ITEM_CODE == itemcode).Sum(x => x.QTY_REQ)} {Suggests.FirstOrDefault()?.Item?.UNIT}"; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | |
| | | } |
| | | |
| | | //仓库卡控 |
| | | if (!req.Dtls.Any(q => q.ITEM_CODE == CurInv.ItemInfo.ITEM_CODE && q.OUT_WH_CODE == CurInv.Warehouse.WH_CODE)) |
| | | if (!req.Details.Any(q => q.ITEM_CODE == CurInv.ItemInfo.ITEM_CODE && q.OUT_WH_CODE == CurInv.Warehouse.WH_CODE)) |
| | | { |
| | | action.IsSuccessed = false; |
| | | action.LocaleMsg = Biz.L($"条码[{CurInv.Barcode.SN}]的料号或者仓库跟单据[{req.ORDER_NO}]上的不一致"); |
| | |
| | | |
| | | //2.是否超发 |
| | | isExceed = false; |
| | | req = await Biz.Db.Queryable<BIZ_WMS_TRANSFER>().Where(x => x.ORDER_NO == req.ORDER_NO).Includes(q => q.DtlsWithGhost, d => d.ItemInfo).IncludesAllFirstLayer().FirstAsync(); |
| | | dtls = req.Dtls.Where(x => x.ITEM_CODE == CurInv.ItemInfo.ITEM_CODE).ToList(); |
| | | req = await Biz.Db.Queryable<BIZ_WMS_TRANSFER>().Where(x => x.ORDER_NO == req.ORDER_NO).Includes(q => q.Details, d => d.ItemInfo).IncludesAllFirstLayer().FirstAsync(); |
| | | dtls = req.Details.Where(x => x.ITEM_CODE == CurInv.ItemInfo.ITEM_CODE).ToList(); |
| | | if (dtls.IsNullOrEmpty()) |
| | | { |
| | | action.IsSuccessed = false; |
| | |
| | | }; |
| | | |
| | | //4.更新业务单据,BIZ_WMS_TRANSFER、BIZ_WMS_TRANSFER_DTL、BIZ_WMS_TRANSFER_SN 判断明细行状态是否完成 |
| | | var isComplete = !req.Dtls.Any(x => x.STATUS != BIZ_WMS_TRANSFER.STATUSs.Finished.GetValue() && x.STATUS != BIZ_WMS_TRANSFER.STATUSs.Picked.GetValue() && x.QTY_REQ > 0); |
| | | var isComplete = !req.Details.Any(x => x.STATUS != BIZ_WMS_TRANSFER.STATUSs.Finished.GetValue() && x.STATUS != BIZ_WMS_TRANSFER.STATUSs.Picked.GetValue() && x.QTY_REQ > 0); |
| | | his_isComplete = isComplete; |
| | | if (isComplete) |
| | | { |
| | |
| | | SHELF_CODE = CurInvItem.Shelf.SHELF_CODE, |
| | | LOCATION_ID = CurInvItem.Location.ID, |
| | | LOCATION_CODE = CurInvItem.Location.LOCATION_CODE, |
| | | PREP_USER = UserCode, |
| | | DOWN_TIME = DateTime.Now, |
| | | SMT_NO = CurPrepDtl.SMT_NO, |
| | | STATION_NO = CurPrepDtl.STATION_NO, |
| | | FEEDER_NO = CurPrepDtl.FEEDER_NO, |
| | |
| | | namespace Tiger.Model |
| | | { |
| | | /// <summary> |
| | | /// 实体:杂发单(U9) |
| | | /// 实体:杂发单(U9) |
| | | /// </summary> |
| | | [Description("Primary:ID")] |
| | | [DisplayName("杂发单(U9)")] |
| | | [DisplayName("杂发单(U9)")] |
| | | [Serializable] |
| | | [SugarTable("BIZ_U9_MISC_OUT")] |
| | | public class BIZ_U9_MISC_OUT : DbEntityWithAuth |
| | | { |
| | | #region 构造函数 |
| | | #region 构造函数 |
| | | /// <summary> |
| | | /// 实体:杂发单(U9) |
| | | /// 实体:杂发单(U9) |
| | | /// </summary> |
| | | public BIZ_U9_MISC_OUT() {} |
| | | #endregion |
| | | |
| | | #region 公共属性 |
| | | #region 公共属性 |
| | | /// <summary> |
| | | /// 单据号 |
| | | /// 单据号 |
| | | /// </summary> |
| | | [DisplayName("单据号")] |
| | | [DisplayName("单据号")] |
| | | public string ORDER_NO { get; set; } |
| | | /// <summary> |
| | | /// 状态(0Init初始化|1WaitPick待捡料|2Picking捡料中|3Picked已捡完|4Sended已发料|5Close已关闭|6Cancel作废) |
| | | /// 状态(0Init初始化|1WaitPick待捡料|2Picking捡料中|3Picked已捡完|4Sended已发料|5Close已关闭|6Cancel作废) |
| | | /// </summary> |
| | | [DisplayName("状态(0Init初始化|1WaitPick待捡料|2Picking捡料中|3Picked已捡完|4Sended已发料|5Close已关闭|6Cancel作废)")] |
| | | [DisplayName("状态(0Init初始化|1WaitPick待捡料|2Picking捡料中|3Picked已捡完|4Sended已发料|5Close已关闭|6Cancel作废)")] |
| | | public int STATUS { get; set; } |
| | | /// <summary> |
| | | /// 单据类型编码 |
| | | /// 单据类型编码 |
| | | /// </summary> |
| | | [DisplayName("单据类型编码")] |
| | | [DisplayName("单据类型编码")] |
| | | public string TYPE_CODE { get; set; } |
| | | /// <summary> |
| | | /// 单据类型名称 |
| | | /// 单据类型名称 |
| | | /// </summary> |
| | | [DisplayName("单据类型名称")] |
| | | [DisplayName("单据类型名称")] |
| | | public string TYPE_NAME { get; set; } |
| | | /// <summary> |
| | | /// ERP单据状态 |
| | | /// ERP单据状态 |
| | | /// </summary> |
| | | [DisplayName("ERP单据状态")] |
| | | [DisplayName("ERP单据状态")] |
| | | public string ERP_STATUS_CODE { get; set; } |
| | | /// <summary> |
| | | /// ERP单据状态名称 |
| | | /// ERP单据状态名称 |
| | | /// </summary> |
| | | [DisplayName("ERP单据状态名称")] |
| | | [DisplayName("ERP单据状态名称")] |
| | | public string ERP_STATUS_NAME { get; set; } |
| | | /// <summary> |
| | | /// 单据日期 |
| | | /// 单据日期 |
| | | /// </summary> |
| | | [DisplayName("单据日期")] |
| | | [DisplayName("单据日期")] |
| | | public DateTime ORDER_DATE { get; set; } = DateTime.MinValue; |
| | | /// <summary> |
| | | /// 备料人 |
| | | /// 备料人 |
| | | /// </summary> |
| | | [DisplayName("备料人")] |
| | | [DisplayName("备料人")] |
| | | public string PREP_PERSON { get; set; } |
| | | /// <summary> |
| | | /// 备料完成时间 |
| | | /// 备料完成时间 |
| | | /// </summary> |
| | | [DisplayName("备料完成时间")] |
| | | [DisplayName("备料完成时间")] |
| | | public DateTime FINISH_TIME { get; set; } = DateTime.MinValue; |
| | | /// <summary> |
| | | /// 领料人 |
| | | /// 领料人 |
| | | /// </summary> |
| | | [DisplayName("领料人")] |
| | | [DisplayName("领料人")] |
| | | public string REQ_PERSON { get; set; } |
| | | /// <summary> |
| | | /// 领料部门 |
| | | /// 领料部门 |
| | | /// </summary> |
| | | [DisplayName("领料部门")] |
| | | [DisplayName("领料部门")] |
| | | public string REQ_DEPT { get; set; } |
| | | /// <summary> |
| | | /// 出库时间 |
| | | /// 出库时间 |
| | | /// </summary> |
| | | [DisplayName("出库时间")] |
| | | [DisplayName("出库时间")] |
| | | public DateTime DLVY_TIME { get; set; } = DateTime.MinValue; |
| | | /// <summary> |
| | | /// 备注 |
| | | /// 备注 |
| | | /// </summary> |
| | | [DisplayName("备注")] |
| | | [DisplayName("备注")] |
| | | public string REMARK { get; set; } |
| | | /// <summary> |
| | | /// -1:未处理,0:同步处理完,>0:同步处理失败次数 |
| | | /// -1:未处理,0:同步处理完,>0:同步处理失败次数 |
| | | /// </summary> |
| | | [DisplayName("-1:未处理,0:同步处理完,>0:同步处理失败次数")] |
| | | [DisplayName("-1:未处理,0:同步处理完,>0:同步处理失败次数")] |
| | | public int HANDLED { get; set; } |
| | | /// <summary> |
| | | /// 最后一次同步处理日期 |
| | | /// 最后一次同步处理日期 |
| | | /// </summary> |
| | | [DisplayName("最后一次同步处理日期")] |
| | | [DisplayName("最后一次同步处理日期")] |
| | | public DateTime HANDLED_DATE { get; set; } = DateTime.MinValue; |
| | | /// <summary> |
| | | /// 过账提交的JSON |
| | | /// 过账提交的JSON |
| | | /// </summary> |
| | | [DisplayName("过账提交的JSON")] |
| | | [DisplayName("过账提交的JSON")] |
| | | public string COMMIT_JSON { get; set; } |
| | | /// <summary> |
| | | /// 过账提交的返回信息 |
| | | /// 过账提交的返回信息 |
| | | /// </summary> |
| | | [DisplayName("过账提交的返回信息")] |
| | | [DisplayName("过账提交的返回信息")] |
| | | public string COMMIT_MSG { get; set; } |
| | | #endregion |
| | | |
| | | #region 虚拟属性 |
| | | /*例子 |
| | | #region 虚拟属性 |
| | | /*例子 |
| | | [SugarColumn(IsIgnore = true)] |
| | | public string FieldName { get; set; } |
| | | */ |
| | | #endregion |
| | | |
| | | #region 外键属性 |
| | | /*例子 |
| | | //一对一外键导航 |
| | | [Navigate(NavigateType.OneToOne, nameof(ClassAId))]//一对一 ClassAId是BIZ_U9_MISC_OUT类里面的外键ID字段 |
| | | public ClassA ClassA { get; set; } //注意禁止手动赋值,只能是null |
| | | //一对多外键导航 |
| | | [Navigate(NavigateType.OneToMany, nameof(ClassA.BIZ_U9_MISC_OUTId))]//ClassA表中的BIZ_U9_MISC_OUTId |
| | | public List<ClassA> ClassAList { get; set; }//注意禁止手动赋值,只能是null |
| | | //多对多外键导航 |
| | | [Navigate(typeof(MappingClass), nameof(MappingClass.BIZ_U9_MISC_OUTId), nameof(MappingClass.ClassAId))]//注意顺序 |
| | | public List<ClassA> ClassAList { get; set; } //注意禁止手动赋值,只能是null |
| | | #region 外键属性 |
| | | /*例子 |
| | | //一对一外键导航 |
| | | [Navigate(NavigateType.OneToOne, nameof(ClassAId))]//一对一 ClassAId是BIZ_U9_MISC_OUT类里面的外键ID字段 |
| | | public ClassA ClassA { get; set; } //注意禁止手动赋值,只能是null |
| | | //一对多外键导航 |
| | | [Navigate(NavigateType.OneToMany, nameof(ClassA.BIZ_U9_MISC_OUTId))]//ClassA表中的BIZ_U9_MISC_OUTId |
| | | public List<ClassA> ClassAList { get; set; }//注意禁止手动赋值,只能是null |
| | | //多对多外键导航 |
| | | [Navigate(typeof(MappingClass), nameof(MappingClass.BIZ_U9_MISC_OUTId), nameof(MappingClass.ClassAId))]//注意顺序 |
| | | public List<ClassA> ClassAList { get; set; } //注意禁止手动赋值,只能是null |
| | | */ |
| | | [Navigate(NavigateType.OneToMany, nameof(BIZ_U9_MISC_OUT_DTL.ORDER_NO), nameof(ORDER_NO), "GHOST_ROW = 0")]//一对一 ClassAId是BIZ_U9_MISC_OUT类里面的外键ID字段 |
| | | public List<BIZ_U9_MISC_OUT_DTL> Details { get; set; } //注意禁止手动赋值,只能是null |
| | | [Navigate(NavigateType.OneToMany, nameof(BIZ_U9_MISC_OUT_SN.ORDER_NO), nameof(ORDER_NO), "GHOST_ROW = 0")]//一对一 ClassAId是BIZ_U9_MISC_OUT类里面的外键ID字段 |
| | | public List<BIZ_U9_MISC_OUT_SN> SnList { get; set; } //注意禁止手动赋值,只能是null |
| | | #endregion |
| | | |
| | | #region 枚举变量 |
| | | /*例子 |
| | | #region 枚举变量 |
| | | /*例子 |
| | | public enum FieldNames |
| | | { |
| | | [Description("枚举描述0")] |
| | | [Description("枚举描述0")] |
| | | Enum0, |
| | | [Description("枚举描述1")] |
| | | [Description("枚举描述1")] |
| | | Enum1, |
| | | } |
| | | */ |
| | | |
| | | /// <summary> |
| | | /// 枚举:状态(0Init初始化|1WaitPick待捡料|2Picking捡料中|3Picked已捡完|4Sended已发料|5Close已关闭|6Cancel作废) |
| | | /// 枚举:状态(0Init初始化|1WaitPick待捡料|2Picking捡料中|3Picked已捡完|4Sended已发料|5Close已关闭|6Cancel作废) |
| | | /// </summary> |
| | | public enum STATUSs |
| | | { |
| | | [Description("初始化")] |
| | | [Description("初始化")] |
| | | Init = 0, |
| | | [Description("待捡料")] |
| | | [Description("待捡料")] |
| | | WaitPick = 1, |
| | | [Description("捡料中")] |
| | | [Description("捡料中")] |
| | | Picking = 2, |
| | | [Description("已捡完")] |
| | | [Description("已捡完")] |
| | | Picked = 3, |
| | | [Description("已发料")] |
| | | [Description("已发料")] |
| | | Sended = 4, |
| | | [Description("已关闭")] |
| | | [Description("已关闭")] |
| | | Close = 5, |
| | | [Description("作废")] |
| | | [Description("作废")] |
| | | Cancel = 6, |
| | | } |
| | | #endregion |
| | | |
| | | #region 公共方法 |
| | | #region 公共方法 |
| | | |
| | | #endregion |
| | | |
| | |
| | | namespace Tiger.Model |
| | | { |
| | | /// <summary> |
| | | /// 实体:杂发单(U9)条码明细 |
| | | /// 实体:杂发单(U9)条码明细 |
| | | /// </summary> |
| | | [Description("Primary:ID")] |
| | | [DisplayName("杂发单(U9)条码明细")] |
| | | [DisplayName("杂发单(U9)条码明细")] |
| | | [Serializable] |
| | | [SugarTable("BIZ_U9_MISC_OUT_SN")] |
| | | public class BIZ_U9_MISC_OUT_SN : DbEntityWithAuth |
| | | { |
| | | #region 构造函数 |
| | | #region 构造函数 |
| | | /// <summary> |
| | | /// 实体:杂发单(U9)条码明细 |
| | | /// 实体:杂发单(U9)条码明细 |
| | | /// </summary> |
| | | public BIZ_U9_MISC_OUT_SN() {} |
| | | #endregion |
| | | |
| | | #region 公共属性 |
| | | #region 公共属性 |
| | | /// <summary> |
| | | /// 单据号 |
| | | /// 单据号 |
| | | /// </summary> |
| | | [DisplayName("单据号")] |
| | | [DisplayName("单据号")] |
| | | public string ORDER_NO { get; set; } |
| | | /// <summary> |
| | | /// 单据行号 |
| | | /// 单据行号 |
| | | /// </summary> |
| | | [DisplayName("单据行号")] |
| | | [DisplayName("单据行号")] |
| | | public string LINE_NO { get; set; } |
| | | /// <summary> |
| | | /// 条码 |
| | | /// 条码 |
| | | /// </summary> |
| | | [DisplayName("条码")] |
| | | [DisplayName("条码")] |
| | | public string SN { get; set; } |
| | | /// <summary> |
| | | /// 元条码 |
| | | /// 物料编码 |
| | | /// </summary> |
| | | [DisplayName("元条码")] |
| | | public string META_SN { get; set; } |
| | | /// <summary> |
| | | /// 物料编码 |
| | | /// </summary> |
| | | [DisplayName("物料编码")] |
| | | [DisplayName("物料编码")] |
| | | public string ITEM_CODE { get; set; } |
| | | /// <summary> |
| | | /// ״̬(ͬWMS_ITEM״̬) |
| | | /// 状态(同WMS_ITEM状态) |
| | | /// </summary> |
| | | [DisplayName("״̬(ͬWMS_ITEM״̬)")] |
| | | [DisplayName("状态(同WMS_ITEM状态)")] |
| | | public int STATUS { get; set; } |
| | | /// <summary> |
| | | /// 数量 |
| | | /// 数量 |
| | | /// </summary> |
| | | [DisplayName("数量")] |
| | | [DisplayName("数量")] |
| | | public double QTY { get; set; } |
| | | /// <summary> |
| | | /// 单位 |
| | | /// 单位 |
| | | /// </summary> |
| | | [DisplayName("单位")] |
| | | [DisplayName("单位")] |
| | | public string UNIT { get; set; } |
| | | /// <summary> |
| | | /// 发料仓库 |
| | | /// 发料仓库 |
| | | /// </summary> |
| | | [DisplayName("发料仓库")] |
| | | [DisplayName("发料仓库")] |
| | | public string WH_CODE { get; set; } |
| | | /// <summary> |
| | | /// 发料储区 |
| | | /// 发料储区 |
| | | /// </summary> |
| | | [DisplayName("发料储区")] |
| | | [DisplayName("发料储区")] |
| | | public string REGION_CODE { get; set; } |
| | | /// <summary> |
| | | /// 发料货架/料车 |
| | | /// 发料货架/料车 |
| | | /// </summary> |
| | | [DisplayName("发料货架/料车")] |
| | | [DisplayName("发料货架/料车")] |
| | | public string SHELF_CODE { get; set; } |
| | | /// <summary> |
| | | /// 发料储位 |
| | | /// 发料储位 |
| | | /// </summary> |
| | | [DisplayName("发料储位")] |
| | | [DisplayName("发料储位")] |
| | | public string LOCATION_CODE { get; set; } |
| | | /// <summary> |
| | | /// 下架时间 |
| | | /// 下架时间 |
| | | /// </summary> |
| | | [DisplayName("下架时间")] |
| | | [DisplayName("下架时间")] |
| | | public DateTime DOWN_TIME { get; set; } = DateTime.MinValue; |
| | | /// <summary> |
| | | /// 出库时间 |
| | | /// 出库时间 |
| | | /// </summary> |
| | | [DisplayName("出库时间")] |
| | | [DisplayName("出库时间")] |
| | | public DateTime DLVY_TIME { get; set; } = DateTime.MinValue; |
| | | /// <summary> |
| | | /// 是否出库(Y/N) |
| | | /// 是否出库(Y/N) |
| | | /// </summary> |
| | | [DisplayName("是否出库(Y/N)")] |
| | | [DisplayName("是否出库(Y/N)")] |
| | | public string IS_OUT { get; set; } |
| | | /// <summary> |
| | | /// 批次号 |
| | | /// 批次号 |
| | | /// </summary> |
| | | [DisplayName("批次号")] |
| | | [DisplayName("批次号")] |
| | | public string LOTNO { get; set; } |
| | | /// <summary> |
| | | /// 箱号 |
| | | /// 箱号 |
| | | /// </summary> |
| | | [DisplayName("箱号")] |
| | | [DisplayName("箱号")] |
| | | public string CARTON_NO { get; set; } |
| | | /// <summary> |
| | | /// 栈板号 |
| | | /// 栈板号 |
| | | /// </summary> |
| | | [DisplayName("栈板号")] |
| | | [DisplayName("栈板号")] |
| | | public string PALLET_NO { get; set; } |
| | | /// <summary> |
| | | /// 备注 |
| | | /// 备注 |
| | | /// </summary> |
| | | [DisplayName("备注")] |
| | | [DisplayName("备注")] |
| | | public string REMARK { get; set; } |
| | | #endregion |
| | | |
| | | #region 虚拟属性 |
| | | /*例子 |
| | | #region 虚拟属性 |
| | | /*例子 |
| | | [SugarColumn(IsIgnore = true)] |
| | | public string FieldName { get; set; } |
| | | */ |
| | | #endregion |
| | | |
| | | #region 外键属性 |
| | | /*例子 |
| | | //一对一外键导航 |
| | | [Navigate(NavigateType.OneToOne, nameof(ClassAId))]//一对一 ClassAId是BIZ_U9_MISC_OUT_SN类里面的外键ID字段 |
| | | public ClassA ClassA { get; set; } //注意禁止手动赋值,只能是null |
| | | //一对多外键导航 |
| | | [Navigate(NavigateType.OneToMany, nameof(ClassA.BIZ_U9_MISC_OUT_SNId))]//ClassA表中的BIZ_U9_MISC_OUT_SNId |
| | | public List<ClassA> ClassAList { get; set; }//注意禁止手动赋值,只能是null |
| | | //多对多外键导航 |
| | | [Navigate(typeof(MappingClass), nameof(MappingClass.BIZ_U9_MISC_OUT_SNId), nameof(MappingClass.ClassAId))]//注意顺序 |
| | | public List<ClassA> ClassAList { get; set; } //注意禁止手动赋值,只能是null |
| | | #region 外键属性 |
| | | /*例子 |
| | | //一对一外键导航 |
| | | [Navigate(NavigateType.OneToOne, nameof(ClassAId))]//一对一 ClassAId是BIZ_U9_MISC_OUT_SN类里面的外键ID字段 |
| | | public ClassA ClassA { get; set; } //注意禁止手动赋值,只能是null |
| | | //一对多外键导航 |
| | | [Navigate(NavigateType.OneToMany, nameof(ClassA.BIZ_U9_MISC_OUT_SNId))]//ClassA表中的BIZ_U9_MISC_OUT_SNId |
| | | public List<ClassA> ClassAList { get; set; }//注意禁止手动赋值,只能是null |
| | | //多对多外键导航 |
| | | [Navigate(typeof(MappingClass), nameof(MappingClass.BIZ_U9_MISC_OUT_SNId), nameof(MappingClass.ClassAId))]//注意顺序 |
| | | public List<ClassA> ClassAList { get; set; } //注意禁止手动赋值,只能是null |
| | | */ |
| | | #endregion |
| | | |
| | | #region 枚举变量 |
| | | /*例子 |
| | | #region 枚举变量 |
| | | /*例子 |
| | | public enum FieldNames |
| | | { |
| | | [Description("枚举描述0")] |
| | | [Description("枚举描述0")] |
| | | Enum0, |
| | | [Description("枚举描述1")] |
| | | [Description("枚举描述1")] |
| | | Enum1, |
| | | } |
| | | */ |
| | | #endregion |
| | | |
| | | #region 公共方法 |
| | | #region 公共方法 |
| | | |
| | | #endregion |
| | | |
| | |
| | | [DisplayName("发料储位")] |
| | | public string LOCATION_CODE { get; set; } |
| | | /// <summary> |
| | | /// 备料人 |
| | | /// </summary> |
| | | [DisplayName("备料人")] |
| | | public string PREP_USER { get; set; } |
| | | /// <summary> |
| | | /// 下架时间 |
| | | /// </summary> |
| | | [DisplayName("下架时间")] |
| | |
| | | [Navigate(typeof(MappingClass), nameof(MappingClass.BIZ_WMS_TRANSFERId), nameof(MappingClass.ClassAId))]//注意顺序 |
| | | public List<ClassA> ClassAList { get; set; } //注意禁止手动赋值,只能是null |
| | | */ |
| | | |
| | | [Navigate(NavigateType.OneToMany, nameof(BIZ_WMS_TRANSFER_DTL.ORDER_NO), nameof(ORDER_NO))] |
| | | public List<BIZ_WMS_TRANSFER_DTL> DtlsWithGhost { get; set; }//注意禁止手动赋值,只能是null |
| | | |
| | | [SugarColumn(IsIgnore = true)] |
| | | public List<BIZ_WMS_TRANSFER_DTL> Dtls => DtlsWithGhost?.Where(q => !q.GHOST_ROW).ToList(); |
| | | |
| | | [Navigate(NavigateType.OneToMany, nameof(BIZ_WMS_TRANSFER_SN.ORDER_NO), nameof(ORDER_NO))] |
| | | public List<BIZ_WMS_TRANSFER_SN> SnListWithGhost { get; set; }//注意禁止手动赋值,只能是null |
| | | |
| | | [SugarColumn(IsIgnore = true)] |
| | | public List<BIZ_WMS_TRANSFER_SN> SnList => SnListWithGhost?.Where(q => !q.GHOST_ROW).ToList(); |
| | | [Navigate(NavigateType.OneToMany, nameof(BIZ_WMS_TRANSFER_DTL.ORDER_NO), nameof(ORDER_NO), "GHOST_ROW = 0")]//一对一 ClassAId是BIZ_WMS_TRANSFER类里面的外键ID字段 |
| | | public List<BIZ_WMS_TRANSFER_DTL> Details { get; set; } //注意禁止手动赋值,只能是null |
| | | [Navigate(NavigateType.OneToMany, nameof(BIZ_WMS_TRANSFER_SN.ORDER_NO), nameof(ORDER_NO), "GHOST_ROW = 0")]//一对一 ClassAId是BIZ_WMS_TRANSFER类里面的外键ID字段 |
| | | public List<BIZ_WMS_TRANSFER_SN> SnList { get; set; } //注意禁止手动赋值,只能是null |
| | | |
| | | #endregion 外键属性 |
| | | |
| | |
| | | namespace Tiger.Model |
| | | { |
| | | /// <summary> |
| | | /// 实体:调拨单(WMS)条码明细 |
| | | /// 实体:调拨单(WMS)条码明细 |
| | | /// </summary> |
| | | [Description("Primary:ID")] |
| | | [DisplayName("调拨单(WMS)条码明细")] |
| | | [DisplayName("调拨单(WMS)条码明细")] |
| | | [Serializable] |
| | | [SugarTable("BIZ_WMS_TRANSFER_SN")] |
| | | public class BIZ_WMS_TRANSFER_SN : DbEntityWithAuth |
| | | { |
| | | #region 构造函数 |
| | | #region 构造函数 |
| | | /// <summary> |
| | | /// 实体:调拨单(WMS)条码明细 |
| | | /// 实体:调拨单(WMS)条码明细 |
| | | /// </summary> |
| | | public BIZ_WMS_TRANSFER_SN() {} |
| | | #endregion |
| | | |
| | | #region 公共属性 |
| | | #region 公共属性 |
| | | /// <summary> |
| | | /// 调拨单号 |
| | | /// 调拨单号 |
| | | /// </summary> |
| | | [DisplayName("调拨单号")] |
| | | [DisplayName("调拨单号")] |
| | | public string ORDER_NO { get; set; } |
| | | /// <summary> |
| | | /// 调拨单行号 |
| | | /// 调拨单行号 |
| | | /// </summary> |
| | | [DisplayName("调拨单行号")] |
| | | [DisplayName("调拨单行号")] |
| | | public string ORDER_LINE { get; set; } |
| | | /// <summary> |
| | | /// 条码 |
| | | /// 条码 |
| | | /// </summary> |
| | | [DisplayName("条码")] |
| | | [DisplayName("条码")] |
| | | public string SN { get; set; } |
| | | /// <summary> |
| | | /// ״̬(ͬWMS_ITEM״̬) |
| | | /// 状态(同WMS_ITEM状态) |
| | | /// </summary> |
| | | [DisplayName("״̬(ͬWMS_ITEM״̬)")] |
| | | [DisplayName("状态(同WMS_ITEM状态)")] |
| | | public int STATUS { get; set; } |
| | | /// <summary> |
| | | /// 物料编码 |
| | | /// 物料编码 |
| | | /// </summary> |
| | | [DisplayName("物料编码")] |
| | | [DisplayName("物料编码")] |
| | | public string ITEM_CODE { get; set; } |
| | | /// <summary> |
| | | /// 数量 |
| | | /// 数量 |
| | | /// </summary> |
| | | [DisplayName("数量")] |
| | | [DisplayName("数量")] |
| | | public double QTY { get; set; } |
| | | /// <summary> |
| | | /// 调出仓库 |
| | | /// 批号 |
| | | /// </summary> |
| | | [DisplayName("调出仓库")] |
| | | [DisplayName("批号")] |
| | | public string LOTNO { get; set; } |
| | | /// <summary> |
| | | /// 调出仓库 |
| | | /// </summary> |
| | | [DisplayName("调出仓库")] |
| | | public string OUT_WH_CODE { get; set; } |
| | | /// <summary> |
| | | /// 调出储区 |
| | | /// 调出储区 |
| | | /// </summary> |
| | | [DisplayName("调出储区")] |
| | | [DisplayName("调出储区")] |
| | | public string OUT_REGION_CODE { get; set; } |
| | | /// <summary> |
| | | /// 调出货架 |
| | | /// 调出货架 |
| | | /// </summary> |
| | | [DisplayName("调出货架")] |
| | | [DisplayName("调出货架")] |
| | | public string OUT_SHELF_CODE { get; set; } |
| | | /// <summary> |
| | | /// 调出储位 |
| | | /// 调出储位 |
| | | /// </summary> |
| | | [DisplayName("调出储位")] |
| | | [DisplayName("调出储位")] |
| | | public string OUT_LOCATION_CODE { get; set; } |
| | | /// <summary> |
| | | /// 调出时间 |
| | | /// 调出时间 |
| | | /// </summary> |
| | | [DisplayName("调出时间")] |
| | | [DisplayName("调出时间")] |
| | | public DateTime OUT_TIME { get; set; } = DateTime.MinValue; |
| | | /// <summary> |
| | | /// 拨入仓库 |
| | | /// 拨入仓库 |
| | | /// </summary> |
| | | [DisplayName("拨入仓库")] |
| | | [DisplayName("拨入仓库")] |
| | | public string IN_WH_CODE { get; set; } |
| | | /// <summary> |
| | | /// 拨入储区 |
| | | /// 拨入储区 |
| | | /// </summary> |
| | | [DisplayName("拨入储区")] |
| | | [DisplayName("拨入储区")] |
| | | public string IN_REGION_CODE { get; set; } |
| | | /// <summary> |
| | | /// 拨入货架 |
| | | /// 拨入货架 |
| | | /// </summary> |
| | | [DisplayName("拨入货架")] |
| | | [DisplayName("拨入货架")] |
| | | public string IN_SHELF_CODE { get; set; } |
| | | /// <summary> |
| | | /// 拨入储位 |
| | | /// 拨入储位 |
| | | /// </summary> |
| | | [DisplayName("拨入储位")] |
| | | [DisplayName("拨入储位")] |
| | | public string IN_LOCATION_CODE { get; set; } |
| | | /// <summary> |
| | | /// 拨入时间 |
| | | /// 拨入时间 |
| | | /// </summary> |
| | | [DisplayName("拨入时间")] |
| | | [DisplayName("拨入时间")] |
| | | public DateTime IN_TIME { get; set; } = DateTime.MinValue; |
| | | /// <summary> |
| | | /// 备注 |
| | | /// 备注 |
| | | /// </summary> |
| | | [DisplayName("备注")] |
| | | [DisplayName("备注")] |
| | | public string REMARK { get; set; } |
| | | #endregion |
| | | |
| | | #region 虚拟属性 |
| | | /*例子 |
| | | #region 虚拟属性 |
| | | /*例子 |
| | | [SugarColumn(IsIgnore = true)] |
| | | public string FieldName { get; set; } |
| | | */ |
| | | #endregion |
| | | |
| | | #region 外键属性 |
| | | /*例子 |
| | | //一对一外键导航 |
| | | [Navigate(NavigateType.OneToOne, nameof(ClassAId))]//一对一 ClassAId是BIZ_WMS_TRANSFER_SN类里面的外键ID字段 |
| | | public ClassA ClassA { get; set; } //注意禁止手动赋值,只能是null |
| | | //一对多外键导航 |
| | | [Navigate(NavigateType.OneToMany, nameof(ClassA.BIZ_WMS_TRANSFER_SNId))]//ClassA表中的BIZ_WMS_TRANSFER_SNId |
| | | public List<ClassA> ClassAList { get; set; }//注意禁止手动赋值,只能是null |
| | | //多对多外键导航 |
| | | [Navigate(typeof(MappingClass), nameof(MappingClass.BIZ_WMS_TRANSFER_SNId), nameof(MappingClass.ClassAId))]//注意顺序 |
| | | public List<ClassA> ClassAList { get; set; } //注意禁止手动赋值,只能是null |
| | | #region 外键属性 |
| | | /*例子 |
| | | //一对一外键导航 |
| | | [Navigate(NavigateType.OneToOne, nameof(ClassAId))]//一对一 ClassAId是BIZ_WMS_TRANSFER_SN类里面的外键ID字段 |
| | | public ClassA ClassA { get; set; } //注意禁止手动赋值,只能是null |
| | | //一对多外键导航 |
| | | [Navigate(NavigateType.OneToMany, nameof(ClassA.BIZ_WMS_TRANSFER_SNId))]//ClassA表中的BIZ_WMS_TRANSFER_SNId |
| | | public List<ClassA> ClassAList { get; set; }//注意禁止手动赋值,只能是null |
| | | //多对多外键导航 |
| | | [Navigate(typeof(MappingClass), nameof(MappingClass.BIZ_WMS_TRANSFER_SNId), nameof(MappingClass.ClassAId))]//注意顺序 |
| | | public List<ClassA> ClassAList { get; set; } //注意禁止手动赋值,只能是null |
| | | */ |
| | | #endregion |
| | | |
| | | #region 枚举变量 |
| | | /*例子 |
| | | #region 枚举变量 |
| | | /*例子 |
| | | public enum FieldNames |
| | | { |
| | | [Description("枚举描述0")] |
| | | [Description("枚举描述0")] |
| | | Enum0, |
| | | [Description("枚举描述1")] |
| | | [Description("枚举描述1")] |
| | | Enum1, |
| | | } |
| | | */ |
| | | #endregion |
| | | |
| | | #region 公共方法 |
| | | #region 公共方法 |
| | | |
| | | #endregion |
| | | |