| | |
| | | /// <returns></returns> |
| | | public ApiAction<ScanOutput> AddOrder(BIZ_WMS_PREP.BIZ_TYPEs bizType, string orderNo) |
| | | { |
| | | lock(AddOrderLock) |
| | | lock (AddOrderLock) |
| | | { |
| | | var action = new ApiAction<ScanOutput>(new ScanOutput()); |
| | | |
| | | // 查询是否已存在备料任务 |
| | | var src = MainDB.Queryable<BIZ_WMS_PREP_SRC>().Where(q => q.SOURCE_ORDER == orderNo && |
| | | SqlFunc.Subqueryable<BIZ_WMS_PREP>().Where(p => p.STATUS < BIZ_WMS_PREP.STATUSs.Sended.GetValue()).Any()).First(); |
| | | if (Order.IsNullOrEmpty()) |
| | | { |
| | | if (!src.IsNullOrEmpty()) |
| | | { |
| | | Order = MainDB.Queryable<BIZ_WMS_PREP>().Where(q => q.ORDER_NO == src.ORDER_NO).IncludesAllFirstLayer().First(); |
| | | var action = new ApiAction<ScanOutput>(new ScanOutput()); |
| | | |
| | | // 查询是否已存在备料任务 |
| | | var src = MainDB.Queryable<BIZ_WMS_PREP_SRC>().Where(q => q.SOURCE_ORDER == orderNo && |
| | | SqlFunc.Subqueryable<BIZ_WMS_PREP>().Where(p => p.STATUS < BIZ_WMS_PREP.STATUSs.Sended.GetValue()).Any()).First(); |
| | | if (Order.IsNullOrEmpty()) |
| | | { |
| | | if (!src.IsNullOrEmpty()) |
| | | { |
| | | Order = MainDB.Queryable<BIZ_WMS_PREP>().Where(q => q.ORDER_NO == src.ORDER_NO).IncludesAllFirstLayer().First(); |
| | | //action.LocaleMsg = Biz.L("备料任务[{0}添加]单据[{1}]成功,请选择备料的物料行"); |
| | | action.LocaleMsg = Biz.L("WMS.Out_BIZ_WMS_PREP.AddOrder.LoadSuccess", Order?.ORDER_NO, orderNo); |
| | | return action; |
| | | } |
| | | else |
| | | { |
| | | Order = new BIZ_WMS_PREP() |
| | | { |
| | | } |
| | | else |
| | | { |
| | | Order = new BIZ_WMS_PREP() |
| | | { |
| | | AUTH_ORG = OrgCode, |
| | | ORDER_NO = $"MP{DateTime.Now:yyMMdd}{(DateTime.Now - DateTime.Today).TotalSeconds:00000}", |
| | | BIZ_TYPE = bizType.GetValue(), |
| | | STATUS = BIZ_WMS_PREP.STATUSs.Init.GetValue(), |
| | | }; |
| | | } |
| | | } |
| | | BIZ_TYPE = bizType.GetValue(), |
| | | STATUS = BIZ_WMS_PREP.STATUSs.Init.GetValue(), |
| | | }; |
| | | } |
| | | } |
| | | //合并发料只适用于包装车间工单发料,雅达包装车间编码:1002310010030758 |
| | | else if (Order.WS_CODE != "1002310010030758") |
| | | { |
| | |
| | | return action; |
| | | } |
| | | |
| | | if (!src.IsNullOrEmpty() && src.ORDER_NO != Order.ORDER_NO) |
| | | { |
| | | action.IsSuccessed = false; |
| | | //action.LocaleMsg = Biz.L("单据[{0}]已属于备料任务[{1}],无法添加到当前备料任务[{2}]中,如需切换备料业务,请退出后重新选择"); |
| | | action.LocaleMsg = Biz.L("WMS.Out_BIZ_WMS_PREP.AddOrder.NoFound", orderNo, src.ORDER_NO, Order.ORDER_NO); |
| | | return action; |
| | | } |
| | | if (!src.IsNullOrEmpty() && src.ORDER_NO != Order.ORDER_NO) |
| | | { |
| | | action.IsSuccessed = false; |
| | | //action.LocaleMsg = Biz.L("单据[{0}]已属于备料任务[{1}],无法添加到当前备料任务[{2}]中,如需切换备料业务,请退出后重新选择"); |
| | | action.LocaleMsg = Biz.L("WMS.Out_BIZ_WMS_PREP.AddOrder.NoFound", orderNo, src.ORDER_NO, Order.ORDER_NO); |
| | | return action; |
| | | } |
| | | |
| | | // 查询单据明细,并合并到备料单的备料明细中 |
| | | var srcDtls = bizType.GetPickList(orderNo); |
| | | if (srcDtls.Sum(q => q.QTY_ACT_REQ) <= 0) |
| | | { |
| | | action.IsSuccessed = false; |
| | | //action.LocaleMsg = Biz.L("单据[{0}]未找到需要备料的行明细,请扫描正确的单据"); |
| | | action.LocaleMsg = Biz.L("WMS.Out_BIZ_WMS_PREP.AddOrder.NoNeedPrep", orderNo); |
| | | return action; |
| | | } |
| | | if (srcDtls.Sum(q => q.QTY_ACT_REQ) <= 0) |
| | | { |
| | | action.IsSuccessed = false; |
| | | //action.LocaleMsg = Biz.L("单据[{0}]未找到需要备料的行明细,请扫描正确的单据"); |
| | | action.LocaleMsg = Biz.L("WMS.Out_BIZ_WMS_PREP.AddOrder.NoNeedPrep", orderNo); |
| | | return action; |
| | | } |
| | | //合并发料只适用于包装车间工单发料 |
| | | if (!src.IsNullOrEmpty() && Order.BIZ_TYPE == BIZ_WMS_PREP.BIZ_TYPEs.WorkOrder.GetValue()) |
| | | { |
| | |
| | | var pdtl = Order.Details.Where(q => q.ITEM_CODE == sdtl.ITEM_CODE).FirstOrDefault(); |
| | | if (pdtl.IsNullOrEmpty()) |
| | | { |
| | | pdtl = new () |
| | | pdtl = new() |
| | | { |
| | | AUTH_ORG = OrgCode, |
| | | ORDER_NO = Order.ORDER_NO, |
| | | ORDER_LINE = (Order.Details.Max(q => q.LINE_CODE.ToInt32()) + 1).ToString(), |
| | | ORDER_LINE = Order.Details.Count == 0 ? "1" : (Order.Details.Max(q => q.LINE_CODE.ToInt32()) + 1).ToString(), |
| | | ITEM_CODE = sdtl.ITEM_CODE, |
| | | SUBITEM_CODE = sdtl.SUBITEM_CODE, |
| | | UNIT = sdtl.UNIT, |
| | |
| | | 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)); |
| | | Order.SOURCE_ORDER = string.Join(",", srcInfo.Select(q => q.SOURCE_ORDER)); |
| | | |
| | | |
| | | //使用统一的事务DB对象 |
| | | var db = Biz.Db; |
| | | var dbTran = db.UseTran(() => |