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, "箱对应物料信息不存在");