diff --git a/src/WMS.Web.Domain/Entitys/OutStockTask.cs b/src/WMS.Web.Domain/Entitys/OutStockTask.cs index ea49eff6..2c82782d 100644 --- a/src/WMS.Web.Domain/Entitys/OutStockTask.cs +++ b/src/WMS.Web.Domain/Entitys/OutStockTask.cs @@ -87,6 +87,11 @@ namespace WMS.Web.Domain.Entitys /// public Result OutStock(int materialId, decimal qty) { + if (this.Status == OutStockStatus.Already) + return Result.ReFailure(ResultCodes.OutStockTaskAlready); + if (this.Status == OutStockStatus.Repeal) + return Result.ReFailure(ResultCodes.OutStockTaskRepeal); + var detail = this.Details.FirstOrDefault(f => f.MaterialId == materialId); if (detail == null) return Result.ReFailure(ResultCodes.OrderNoData); if ((detail.AccruedQty - detail.RealityQty) < qty) @@ -94,8 +99,9 @@ namespace WMS.Web.Domain.Entitys if (detail.RealityQty <= 0) detail.OutStockBeginTime = DateTime.Now; - - detail.OutStockEndTime = DateTime.Now; + //全部出库完成 + if (detail.AccruedQty == (detail.RealityQty + qty)) + detail.OutStockEndTime = DateTime.Now; detail.RealityQty = detail.RealityQty + qty; diff --git a/src/WMS.Web.Domain/Services/OutStockService.cs b/src/WMS.Web.Domain/Services/OutStockService.cs index 865ca810..f58a1c0a 100644 --- a/src/WMS.Web.Domain/Services/OutStockService.cs +++ b/src/WMS.Web.Domain/Services/OutStockService.cs @@ -54,12 +54,10 @@ namespace WMS.Web.Domain.Services public async Task Save(SaveOutStockRequest dto, LoginInDto loginInfo) { var outStockTask = await _outStockTaskRepositories.Get(dto.TaskId); - //OutStock entity = await _outStockRepositories.GetByTaskId(dto.TaskId); - ////同步该订单最新数据到wms系统 - //List nos = new List(); - //nos.Add(outStockTask.SourceBillNo); - //var res = await _outStockTaskService.Ssyn(nos); - //if (!res.IsSuccess) return Result.ReSuccess(); + if(outStockTask.Status== OutStockStatus.Already) + return Result.ReFailure(ResultCodes.OutStockTaskAlready); + if (outStockTask.Status == OutStockStatus.Repeal) + return Result.ReFailure(ResultCodes.OutStockTaskRepeal); //上传的物料在任务单里没有找到不能出库 var ex = dto.Details.Select(s=>s.MaterialId).Except(outStockTask.Details.Select(s=>s.MaterialId)).ToList(); if (ex.Count() > 0) diff --git a/src/WMS.Web.Domain/Values/ResultCodes.cs b/src/WMS.Web.Domain/Values/ResultCodes.cs index 7445d565..0e4dea8e 100644 --- a/src/WMS.Web.Domain/Values/ResultCodes.cs +++ b/src/WMS.Web.Domain/Values/ResultCodes.cs @@ -27,6 +27,8 @@ namespace WMS.Web.Domain.Values public static ValueTuple OutStockQtyError = (70001, "可出库数量不足"); public static ValueTuple OutStockTaskNoData = (70002, "出库任务数据不存在"); public static ValueTuple OutStockMaterialError = (70003, "出库物料在任务单中不存在"); + public static ValueTuple OutStockTaskAlready = (70004, "任务单已全部出库"); + public static ValueTuple OutStockTaskRepeal = (70005, "任务单已作废"); public static ValueTuple BoxNoData = (80000, "箱信息不存在"); public static ValueTuple BoxMateriaNoData = (800010, "箱对应物料信息不存在");