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();
+ }
+
///
/// 新增
///