From 79f57894fadacedc6ffce559b33f4870bc28237f Mon Sep 17 00:00:00 2001 From: 18942506660 <18942506660@A18942506660> Date: Wed, 15 Nov 2023 14:24:31 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml | 14 +++++++------- src/WMS.Web.Domain/Entitys/OutStockTask.cs | 16 +++++++++++++--- src/WMS.Web.Domain/Values/ResultCodes.cs | 1 + 3 files changed, 21 insertions(+), 10 deletions(-) diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml index 941ad972..533d3f79 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml @@ -836,11 +836,6 @@ 单据编号 - - - 来源单号 - - 单据类型 @@ -923,11 +918,16 @@ 单据头Id - + 销售订单号 + + + 来源单号 + + 物料Id @@ -1059,7 +1059,7 @@ 来源单号(合并后有多个) - + 销售订单号 diff --git a/src/WMS.Web.Domain/Entitys/OutStockTask.cs b/src/WMS.Web.Domain/Entitys/OutStockTask.cs index 9792ab26..9ce17525 100644 --- a/src/WMS.Web.Domain/Entitys/OutStockTask.cs +++ b/src/WMS.Web.Domain/Entitys/OutStockTask.cs @@ -4,6 +4,7 @@ using System.ComponentModel.DataAnnotations.Schema; using System.Linq; using System.Text; using WMS.Web.Core; +using WMS.Web.Core.Help; using WMS.Web.Core.Internal.Results; using WMS.Web.Domain.Values; @@ -148,27 +149,36 @@ namespace WMS.Web.Domain.Entitys /// public Result Merge(List list, int creatorId) { + if (list.Count() <= 1) return Result.ReFailure(ResultCodes.MergeNumberError); // 符合合并数据逻辑:出库状态为”待拣货”+出库类型为:销售出库+发货组织一致+收货客户一致+发货仓库一致 if (list.Where(w => w.Status != OutStockStatus.Wait).Any()) return Result.ReFailure(ResultCodes.MergeStatusError); if (list.Where(w => w.Type != OutStockType.Sal).Any()) return Result.ReFailure(ResultCodes.MergeStatusError); if (list.GroupBy(g => g.DeliveryOrgId).Count() > 1) return Result.ReFailure(ResultCodes.MergeStatusError); 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.StockCode).Count() > 1) return Result.ReFailure(ResultCodes.MergeStatusError); + List details_new = new List(); //清空数据绑定 foreach (var d in details) { d.Id = 0; d.Fid = 0; + var detail_new = details_new.FirstOrDefault(f => f.MaterialId == d.MaterialId); + if (detail_new != null) + { + detail_new.AccruedQty += d.AccruedQty;//应出数量累加 + detail_new.SaleBillNos.AddRange(d.SaleBillNos); + detail_new.SourceBillNos.AddRange(d.SourceBillNos); + } + else + details_new.Add(d); } this.OperatorId = creatorId; this.OperateTime = DateTime.Now; this.Status = OutStockStatus.Wait; this.Type = OutStockType.Sal; - this.Details = details; + this.Details = details_new; return Result.ReSuccess(); } diff --git a/src/WMS.Web.Domain/Values/ResultCodes.cs b/src/WMS.Web.Domain/Values/ResultCodes.cs index 4a350ead..66a1e945 100644 --- a/src/WMS.Web.Domain/Values/ResultCodes.cs +++ b/src/WMS.Web.Domain/Values/ResultCodes.cs @@ -29,6 +29,7 @@ namespace WMS.Web.Domain.Values public static ValueTuple OutStockMaterialError = (70003, "出库物料在任务单中不存在"); public static ValueTuple OutStockTaskAlready = (70004, "任务单已全部出库"); public static ValueTuple OutStockTaskRepeal = (70005, "任务单已作废"); + public static ValueTuple MergeNumberError = (70006, "必须选择两个及以上的单合并"); public static ValueTuple BoxNoData = (80000, "箱信息不存在"); public static ValueTuple BoxMateriaNoData = (800010, "箱对应物料信息不存在");