diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml index 29afc263..8c54100a 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml @@ -862,6 +862,14 @@ 明细 + + + 出库 反写 任务单 + + + + + 生成单据号 @@ -940,14 +948,6 @@ 出库结束时间 - - - 出库 反写 任务单 - - - - - wms盘点单 diff --git a/src/WMS.Web.Domain/Entitys/OutStockTask.cs b/src/WMS.Web.Domain/Entitys/OutStockTask.cs index 26451462..a038a43f 100644 --- a/src/WMS.Web.Domain/Entitys/OutStockTask.cs +++ b/src/WMS.Web.Domain/Entitys/OutStockTask.cs @@ -80,6 +80,33 @@ namespace WMS.Web.Domain.Entitys this.CreateTime = createTime; } /// + /// 出库 反写 任务单 + /// + /// + /// + /// + public Result OutStock(int materialId, decimal qty) + { + var detail = this.Details.FirstOrDefault(f => f.MaterialId == materialId); + if (detail == null) return Result.ReFailure(ResultCodes.OrderNoData); + if ((detail.AccruedQty - detail.RealityQty) < qty) + return Result.ReFailure(ResultCodes.OutStockQtyError); + + if (detail.RealityQty <= 0) + detail.OutStockBeginTime = DateTime.Now; + + detail.OutStockEndTime = DateTime.Now; + + detail.RealityQty = detail.RealityQty + qty; + + if (this.Details.Where(w => w.RealityQty >= w.AccruedQty).Count() == this.Details.Count()) + this.Status = OutStockStatus.Already; + else + this.Status = OutStockStatus.Part; + + return Result.ReSuccess(); + } + /// /// 生成单据号 /// public void GenerateNo() @@ -127,7 +154,7 @@ namespace WMS.Web.Domain.Entitys if (list.GroupBy(g => g.ReceiptCustomerId).Count() > 1) return Result.ReFailure(ResultCodes.MergeStatusError); var details = list.SelectMany(s => s.Details).ToList(); - + if (details.GroupBy(g => g.StockId).Count() > 1) return Result.ReFailure(ResultCodes.MergeStatusError); //清空数据绑定 diff --git a/src/WMS.Web.Domain/Entitys/OutStockTaskDetails.cs b/src/WMS.Web.Domain/Entitys/OutStockTaskDetails.cs index 9098ba6b..8e1e95d9 100644 --- a/src/WMS.Web.Domain/Entitys/OutStockTaskDetails.cs +++ b/src/WMS.Web.Domain/Entitys/OutStockTaskDetails.cs @@ -72,25 +72,6 @@ namespace WMS.Web.Domain.Entitys [Column("OutStockEndTime")] public DateTime? OutStockEndTime { get; set; } - /// - /// 出库 反写 任务单 - /// - /// - /// - /// - public Result OutStock(int materialId,decimal qty) - { - if ((this.AccruedQty - this.RealityQty) < qty) - return Result.ReFailure(ResultCodes.OutStockQtyError); - - if (this.RealityQty <= 0) - this.OutStockBeginTime = DateTime.Now; - - this.OutStockEndTime = DateTime.Now; - - this.RealityQty = this.RealityQty + qty; - - return Result.ReSuccess(); - } + } } diff --git a/src/WMS.Web.Domain/Services/OutStockService.cs b/src/WMS.Web.Domain/Services/OutStockService.cs index 287243d3..3962eccc 100644 --- a/src/WMS.Web.Domain/Services/OutStockService.cs +++ b/src/WMS.Web.Domain/Services/OutStockService.cs @@ -56,7 +56,7 @@ namespace WMS.Web.Domain.Services //任务单明细 var tDetail = outStockTask.Details.FirstOrDefault(f => f.MaterialId == d.MaterialId); if (tDetail == null) continue; - var res = tDetail.OutStock(d.MaterialId, d.Qty); + var res = outStockTask.OutStock(d.MaterialId, d.Qty); if (!res.IsSuccess) return res; var outd = _mapper.Map(tDetail);