From c77112750890c773e5d9091e84d21d0a812faa21 Mon Sep 17 00:00:00 2001 From: tongfei <244188119@qq.com> Date: Fri, 17 Nov 2023 09:38:42 +0800 Subject: [PATCH] =?UTF-8?q?=E9=9D=9E=E9=87=87=E8=B4=AD=E4=B8=8A=E6=9E=B6-?= =?UTF-8?q?=E7=AE=B1=E5=BA=93=E5=AD=98=E5=8F=98=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml | 5 -- .../Dto/InStock/NoPurchaseShelfRequest.cs | 5 -- src/WMS.Web.Domain/Services/InStockService.cs | 54 ++++++++++++++----- 3 files changed, 41 insertions(+), 23 deletions(-) diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml index 344b5f84..12b4600d 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml @@ -1765,11 +1765,6 @@ 上架方式 - - - 箱集合 - - 入库单明细 diff --git a/src/WMS.Web.Core/Dto/InStock/NoPurchaseShelfRequest.cs b/src/WMS.Web.Core/Dto/InStock/NoPurchaseShelfRequest.cs index 86dc2412..9be984cc 100644 --- a/src/WMS.Web.Core/Dto/InStock/NoPurchaseShelfRequest.cs +++ b/src/WMS.Web.Core/Dto/InStock/NoPurchaseShelfRequest.cs @@ -23,11 +23,6 @@ namespace WMS.Web.Core.Dto.InStock [Required(ErrorMessage = "上架方式不能为空")] public int ShelfMethod { get; set; } - /// - /// 箱集合 - /// - public List Boxs { get; set; } = new List(); - /// /// 入库单明细 /// diff --git a/src/WMS.Web.Domain/Services/InStockService.cs b/src/WMS.Web.Domain/Services/InStockService.cs index 67f3bacb..7135f045 100644 --- a/src/WMS.Web.Domain/Services/InStockService.cs +++ b/src/WMS.Web.Domain/Services/InStockService.cs @@ -207,7 +207,7 @@ namespace WMS.Web.Domain.Services return serialNumber_result; //保存成功后:变更箱库存 - var boxInventoryGenerateDto = entity.Details.GroupBy(x => new { x.BoxId, x.StockCode, x.SubStockId }).Select(x => new BoxInventoryGenerateDto() + var boxInventoryGenerateDto = dto.Details.GroupBy(x => new { x.BoxId, x.StockCode, x.SubStockId }).Select(x => new BoxInventoryGenerateDto() { InventoryInOutMethod= (int)InventoryInOutMethod.Box, InventoryInOutType=(int)InventoryInOutType.In, @@ -246,12 +246,10 @@ namespace WMS.Web.Domain.Services /// private async Task ShelfNoPurchaseSave(NoPurchaseShelfRequest dto, LoginInDto loginInfo, bool isTransaction = true) { - //1.修改-入库任务单的信息 var updateInStockTaskRequest = new UpdateInStockTaskRequest(); updateInStockTaskRequest.Id = dto.TaskId; - updateInStockTaskRequest.Boxs = dto.Boxs; - updateInStockTaskRequest.Details =new List(); + updateInStockTaskRequest.Details = new List(); foreach (var item in dto.Details) { var updateInStockTaskDetailsRequest = new UpdateInStockTaskDetailsRequest(); @@ -259,7 +257,17 @@ namespace WMS.Web.Domain.Services updateInStockTaskDetailsRequest.ReceiveQty = item.Qty; updateInStockTaskRequest.Details.Add(updateInStockTaskDetailsRequest); } - + //1.1.先找到箱IDs:获取箱基本信息 + var boxIds = dto.Details.GroupBy(x => x.BoxId).Select(x => x.Key).ToList(); + var boxInfos= await _boxRepositories.GetEntityList(boxIds); + foreach (var item in boxInfos) + { + var task_box = new UpdateInStockTaskBoxRequest(); + task_box.BoxId = item.Id; + task_box.BoxBillNo = item.BoxBillNo; + updateInStockTaskRequest.Boxs.Add(task_box); + } + //2.修改后返回当前实体 var update_result = await this.Update(updateInStockTaskRequest, loginInfo.UserInfo.StaffId, null, isTransaction, true); if (!update_result.IsSuccess) @@ -271,10 +279,6 @@ namespace WMS.Web.Domain.Services entity.Details = _mapper.Map>(dto.Details); entity.Create(loginInfo.UserInfo.StaffId); - //需要填写序列号 - //需要修改库存 - //需要同步金蝶 - //添加入库单信息 entity = await _inStockRepositories.Add(entity, isTransaction); if(entity==null) @@ -284,7 +288,7 @@ namespace WMS.Web.Domain.Services if (dto.ShelfMethod == (int)ShelfMethod.Product) { var changeBox = new SaveChangeBoxRecordRequest(); - changeBox.DestBoxId = dto.Boxs.FirstOrDefault().BoxId; + changeBox.DestBoxId = boxIds.FirstOrDefault(); foreach (var item in dto.Details) { var changeBoxRD = new SaveChangeBoxRecordDetailsRequest(); @@ -302,6 +306,33 @@ namespace WMS.Web.Domain.Services var serialNumber_result = await _serialNumberService.InStock(entity, loginInfo, isTransaction); if (!serialNumber_result.IsSuccess) return serialNumber_result; + + //保存成功后:箱库存的变更 + var boxInventoryGenerateDto = dto.Details.GroupBy(x => new { x.BoxId, x.StockCode, x.SubStockId }).Select(x => new BoxInventoryGenerateDto() + { + InventoryInOutMethod = dto.ShelfMethod == (int)ShelfMethod.Product?(int)InventoryInOutMethod.Box: (int)InventoryInOutMethod.Product, + InventoryInOutType = (int)InventoryInOutType.In, + BoxId = x.Key.BoxId, + StockCode = x.Key.StockCode, + SubStockId = x.Key.SubStockId + }).ToList(); + + foreach (var item in dto.Details) + { + var current = boxInventoryGenerateDto.Where(x => x.BoxId == item.BoxId).FirstOrDefault(); + if (current != null) + { + var detail = new BoxInventoryGenerateDetailsDto(); + detail.MaterialId = item.MaterialId; + detail.Qty = item.Qty; + detail.SerialNumbers = item.SerialNumbers; + current.Details.Add(detail); + } + } + var boxInventoryResult = await _boxInventoryService.HandlBoxInventory(boxInventoryGenerateDto, isTransaction); + if (!boxInventoryResult.IsSuccess) + return boxInventoryResult; + return Result.ReSuccess(); } @@ -370,10 +401,7 @@ namespace WMS.Web.Domain.Services } var isSuccess = await _inStockTaskRepositories.UpdateRange(entitys, isTransaction); if (isSuccess) - { - return Result.ReSuccess(); - } else return Result.ReFailure(ResultCodes.DateWriteError); }