From 935963aa18f55b23e32367d37af91263e2798de1 Mon Sep 17 00:00:00 2001 From: tongfei <244188119@qq.com> Date: Wed, 22 Nov 2023 09:57:00 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml | 10 ++++++++++ src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml | 7 +++++++ .../Dto/Inventory/BoxInventoryChangeGenerateDto.cs | 10 ++++++++++ .../Infrastructure/IInStockRepositories.cs | 7 +++++++ src/WMS.Web.Domain/Services/BoxInventoryService.cs | 13 +++++++++---- src/WMS.Web.Domain/Services/InStockService.cs | 7 ++++++- src/WMS.Web.Domain/Values/ResultCodes.cs | 1 + src/WMS.Web.Repositories/InStockRepositories.cs | 10 ++++++++++ 8 files changed, 60 insertions(+), 5 deletions(-) diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml index 5f4fc192..e1c93222 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml @@ -2170,6 +2170,16 @@ 目标箱ID + + + 目标箱的仓库(可为空:当目标箱不需要上架时候) + + + + + 目标箱的仓位(可为空:当目标箱不需要上架时候) + + 目标箱组织编码 diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml index b6dde6f6..21ef1559 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml @@ -1796,6 +1796,13 @@ + + + 箱是否存在于入库单明细中;(箱是否被上架了) + + + + 添加 diff --git a/src/WMS.Web.Core/Dto/Inventory/BoxInventoryChangeGenerateDto.cs b/src/WMS.Web.Core/Dto/Inventory/BoxInventoryChangeGenerateDto.cs index 310a18be..f662e799 100644 --- a/src/WMS.Web.Core/Dto/Inventory/BoxInventoryChangeGenerateDto.cs +++ b/src/WMS.Web.Core/Dto/Inventory/BoxInventoryChangeGenerateDto.cs @@ -24,6 +24,16 @@ namespace WMS.Web.Core.Dto.Inventory /// public int TargetBoxId { get; set; } + /// + /// 目标箱的仓库(可为空:当目标箱不需要上架时候) + /// + public string StockCode { get; set; } + + /// + /// 目标箱的仓位(可为空:当目标箱不需要上架时候) + /// + public int? SubStockId { get; set; } + /// /// 目标箱组织编码 /// diff --git a/src/WMS.Web.Domain/Infrastructure/IInStockRepositories.cs b/src/WMS.Web.Domain/Infrastructure/IInStockRepositories.cs index 974a9fcd..92c8a36d 100644 --- a/src/WMS.Web.Domain/Infrastructure/IInStockRepositories.cs +++ b/src/WMS.Web.Domain/Infrastructure/IInStockRepositories.cs @@ -21,6 +21,13 @@ namespace WMS.Web.Domain.Infrastructure /// Task<(List list,int total)> GetPagedList(InStockQueryRequest dto); + /// + /// 箱是否存在于入库单明细中;(箱是否被上架了) + /// + /// + /// + Task IsExistBy(int boxId); + /// /// 添加 /// diff --git a/src/WMS.Web.Domain/Services/BoxInventoryService.cs b/src/WMS.Web.Domain/Services/BoxInventoryService.cs index 078e6bd3..0b3ae480 100644 --- a/src/WMS.Web.Domain/Services/BoxInventoryService.cs +++ b/src/WMS.Web.Domain/Services/BoxInventoryService.cs @@ -95,10 +95,15 @@ namespace WMS.Web.Domain.Services var tagBox = targetBoxInventorys.Where(x => x.BoxId == dto.TargetBoxId).FirstOrDefault(); if (tagBox == null) { - var newTagBox = new BoxInventory(); - newTagBox.BoxId = dto.TargetBoxId; - newTagBox.Details =_mapper.Map>(dto.Details); - add_entitys.Add(newTagBox); + if (!string.IsNullOrEmpty(dto.StockCode) && dto.SubStockId.HasValue) + { + var newTagBox = new BoxInventory(); + newTagBox.StockCode = dto.StockCode; + newTagBox.SubStockId = dto.SubStockId.Value; + newTagBox.BoxId = dto.TargetBoxId; + newTagBox.Details = _mapper.Map>(dto.Details); + add_entitys.Add(newTagBox); + } } else { diff --git a/src/WMS.Web.Domain/Services/InStockService.cs b/src/WMS.Web.Domain/Services/InStockService.cs index 8b7991ce..06bd8d00 100644 --- a/src/WMS.Web.Domain/Services/InStockService.cs +++ b/src/WMS.Web.Domain/Services/InStockService.cs @@ -153,13 +153,18 @@ namespace WMS.Web.Domain.Services //1.先判断:箱号已经绑定了入库任务单中;备注:业务说法就是箱是否收货了 var tast = await _inStockTaskRepositories.GetBy(boxBillNo); if (tast == null) - return Result.ReFailure(ResultCodes.Box_NoBind_Task_Data); + return Result.ReFailure(ResultCodes.Box_NoBind_Task_Data); //2.找到箱对应的物料信息 var box = await _boxRepositories.GetByNo(boxBillNo); if (box == null) return Result.ReFailure(ResultCodes.BoxNoData); + //2.1判断箱是否上架过了 + var isExist = await _inStockRepositories.IsExistBy(box.Id); + if(isExist) + return Result.ReFailure(ResultCodes.BoxIsTrueShelf); + //3.组装返回数据 var result = _mapper.Map(tast); result.BoxId = box.Id; diff --git a/src/WMS.Web.Domain/Values/ResultCodes.cs b/src/WMS.Web.Domain/Values/ResultCodes.cs index 74ea401e..9f06d53d 100644 --- a/src/WMS.Web.Domain/Values/ResultCodes.cs +++ b/src/WMS.Web.Domain/Values/ResultCodes.cs @@ -32,6 +32,7 @@ namespace WMS.Web.Domain.Values public static ValueTuple OutStockTaskRepeal = (70005, "任务单已作废"); public static ValueTuple MergeNumberError = (70006, "必须选择两个及以上的单合并"); + public static ValueTuple BoxIsTrueShelf = (80000, "该箱已上架,请选择其它箱进行上架!"); public static ValueTuple BoxNoData = (80000, "箱信息不存在"); public static ValueTuple BoxMateriaNoData = (800010, "箱对应物料信息不存在"); public static ValueTuple MateriaNoData = (800011, "物料信息不存在"); diff --git a/src/WMS.Web.Repositories/InStockRepositories.cs b/src/WMS.Web.Repositories/InStockRepositories.cs index d22ad1c2..c13dd38c 100644 --- a/src/WMS.Web.Repositories/InStockRepositories.cs +++ b/src/WMS.Web.Repositories/InStockRepositories.cs @@ -135,6 +135,16 @@ namespace WMS.Web.Repositories return (list, total); } + /// + /// 箱是否存在于入库单明细中;(箱是否被上架了) + /// + /// + /// + public async Task IsExistBy(int boxId) + { + return await _context.InStockDetails.Where(x => x.BoxId == boxId).AnyAsync(); + } + /// /// 新增 ///