From 6cd499ca56e94a2df5a7b36dc58bb8dca706be1f Mon Sep 17 00:00:00 2001
From: tongfei <244188119@qq.com>
Date: Wed, 22 Nov 2023 17:38:21 +0800
Subject: [PATCH] =?UTF-8?q?=E7=A7=BB=E7=AE=B1?=
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 ++-
.../IService/IBoxInventoryService.cs | 8 ++
.../Services/BoxInventoryService.cs | 99 ++++++++++++++++++-
3 files changed, 114 insertions(+), 7 deletions(-)
diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
index ddff6762..346fa8f7 100644
--- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
+++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
@@ -2149,7 +2149,7 @@
-
+
改箱-箱库存的变更
@@ -2157,9 +2157,9 @@
-
+
- 改箱-箱库存的变更
+ 移箱-箱库存的变更
@@ -3246,6 +3246,14 @@
+
+
+ 移箱-箱库存的变更
+
+
+
+
+
入库回退上下架-箱库存的变更
diff --git a/src/WMS.Web.Domain/IService/IBoxInventoryService.cs b/src/WMS.Web.Domain/IService/IBoxInventoryService.cs
index 0e1f64c1..e19532c2 100644
--- a/src/WMS.Web.Domain/IService/IBoxInventoryService.cs
+++ b/src/WMS.Web.Domain/IService/IBoxInventoryService.cs
@@ -29,6 +29,14 @@ namespace WMS.Web.Domain.IService
///
Task GenerateChangeBox(List dtoDatas, bool isTransaction);
+ ///
+ /// 移箱-箱库存的变更
+ ///
+ ///
+ ///
+ ///
+ Task GenerateMoveBox(List dtoDatas, bool isTransaction);
+
///
/// 移箱-箱库存的变更
///
diff --git a/src/WMS.Web.Domain/Services/BoxInventoryService.cs b/src/WMS.Web.Domain/Services/BoxInventoryService.cs
index a42e7c9e..4f805c60 100644
--- a/src/WMS.Web.Domain/Services/BoxInventoryService.cs
+++ b/src/WMS.Web.Domain/Services/BoxInventoryService.cs
@@ -137,7 +137,19 @@ namespace WMS.Web.Domain.Services
newTagChangeDetail.SerialNumbers = item.SerialNumbers;
tag_update_entity.Details.Add(newTagChangeDetail);
}
+
+ //2.2.2组装即时库存dto
+ var inventoryDet = new InventoryDetailsGenerateDto();
+ inventoryDet.MaterialId = item.MaterialId;
+ inventoryDet.OrgCode = tag_update_entity.OrgCode;
+ inventoryDet.StockCode = tag_update_entity.StockCode;
+ inventoryDet.SubStockId = tag_update_entity.SubStockId;
+ inventoryDet.Qty = item.Qty;
+ inventoryDet.InventoryInOutType = (int)InventoryInOutType.In;
+ //2.2.2即时库存:修改箱库存的集合
+ InventoryDetailsGenerateDto.Add(inventoryDet);
}
+ //2.4箱库存:要修改的集合
update_entitys.Add(tag_update_entity);
}
@@ -156,6 +168,13 @@ namespace WMS.Web.Domain.Services
isSuccess = await _boxInventoryRepositories.UpdateRange(update_entitys, isTransaction);
if (!isSuccess) return Result.ReFailure(ResultCodes.DateWriteError);
}
+ //5.即时库存:变更
+ if (InventoryDetailsGenerateDto.Count != 0)
+ {
+ var InventoryDetailsGenerate_result = await _inventoryDetailsService.GenerateInventoryDetails(InventoryDetailsGenerateDto, isTransaction);
+ if (!InventoryDetailsGenerate_result.IsSuccess)
+ return InventoryDetailsGenerate_result;
+ }
return Result.ReSuccess();
}
@@ -172,10 +191,6 @@ namespace WMS.Web.Domain.Services
if (dtoDatas == null || dtoDatas.Count == 0)
return Result.ReFailure(ResultCodes.InventoryNoSourceError);
- var update_entitys = new List();
- var add_entitys = new List();
- var InventoryDetailsGenerateDto = new List();
-
//2.原来箱库存集合
var boxIds = dtoDatas.Where(x => x.SrcBoxId != 0).GroupBy(x => x.SrcBoxId).Select(x => x.Key).ToList();
var sourceBoxInventorys = await _boxInventoryRepositories.GetList(boxIds);
@@ -230,6 +245,7 @@ namespace WMS.Web.Domain.Services
var delete_entitys = new List();
var add_entitys = new List();
+ var InventoryDetailsGenerateDto = new List();
//2.获取“箱库存集合”和“箱基本信息集合”
var boxIds = dtoDatas.GroupBy(x => x.BoxId).Select(x => x.Key).ToList();
@@ -265,8 +281,25 @@ namespace WMS.Web.Domain.Services
if (box_serialNub != null)
item.SerialNumbers.Add(box_serialNub.SerialNumber);
}
+ //3.4箱库存:要新增的集合
add_entitys.Add(addEntity);
+ //4.1即时库存:组装入库
+ foreach (var item in box.Details)
+ {
+ //3.2.2组装即时库存dto
+ var inventoryDet = new InventoryDetailsGenerateDto();
+ inventoryDet.MaterialId = item.MaterialId;
+ inventoryDet.OrgCode = dto.OrgCode;
+ inventoryDet.StockCode = dto.StockCode;
+ inventoryDet.SubStockId = dto.SubStockId;
+ inventoryDet.Qty = item.Qty;
+ inventoryDet.InventoryInOutType = (int)InventoryInOutType.In;
+ //3.2.2即时库存:修改箱库存的集合
+ InventoryDetailsGenerateDto.Add(inventoryDet);
+ }
+
+
}//下架
else
{
@@ -278,6 +311,21 @@ namespace WMS.Web.Domain.Services
//3.2整箱移货下架-直接删除当前箱子所在的库存
var box_inventory = boxInventorys.Where(x => x.BoxId == dto.BoxId).FirstOrDefault();
delete_entitys.Add(box_inventory);
+
+ //4.1即时库存:组装出库
+ foreach (var item in box_inventory.Details)
+ {
+ //3.2.2组装即时库存dto
+ var inventoryDet = new InventoryDetailsGenerateDto();
+ inventoryDet.MaterialId = item.MaterialId;
+ inventoryDet.OrgCode = dto.OrgCode;
+ inventoryDet.StockCode = dto.StockCode;
+ inventoryDet.SubStockId = dto.SubStockId;
+ inventoryDet.Qty = item.Qty;
+ inventoryDet.InventoryInOutType = (int)InventoryInOutType.Out;
+ //3.2.2即时库存:修改箱库存的集合
+ InventoryDetailsGenerateDto.Add(inventoryDet);
+ }
}
}
@@ -294,9 +342,52 @@ namespace WMS.Web.Domain.Services
isSuccess = await _boxInventoryRepositories.DeleteRange(delete_ids, isTransaction);
if (!isSuccess) return Result.ReFailure(ResultCodes.DateWriteError);
}
+ //5.即时库存:处理
+ if (InventoryDetailsGenerateDto.Count != 0)
+ {
+ var InventoryDetailsGenerate_result = await _inventoryDetailsService.GenerateInventoryDetails(InventoryDetailsGenerateDto, isTransaction);
+ if (!InventoryDetailsGenerate_result.IsSuccess)
+ return InventoryDetailsGenerate_result;
+ }
return Result.ReSuccess();
}
+ ///
+ /// 移箱-箱库存的变更
+ ///
+ ///
+ ///
+ ///
+ public async Task GenerateMoveBox(List dtoDatas, bool isTransaction)
+ {
+ //1.判断来源数据是否存在
+ if (dtoDatas == null || dtoDatas.Count == 0)
+ return Result.ReFailure(ResultCodes.InventoryNoSourceError);
+
+ //2.箱库存集合
+ var boxIds = dtoDatas.Where(x => x.BoxId != 0 && x.Type== MoveBoxType.Down).GroupBy(x => x.BoxId).Select(x => x.Key).ToList();
+ var boxInventorys = await _boxInventoryRepositories.GetList(boxIds);
+
+ //2.1箱基本信息
+ var boxs= await _boxRepositories.GetEntityList(boxIds);
+
+ //2.2组合要生成的dto
+ var generateDtoList = new List();
+ foreach (var item in dtoDatas)
+ {
+ var generateDto = new BoxInventoryMoveGenerateDto();
+ generateDto.BoxId = item.BoxId;
+ generateDto.OrgCode = item.OrgCode;
+ generateDto.StockCode = item.StockCode;
+ generateDto.SubStockId = item.Type == MoveBoxType.Up ? item.DestSubStockId : item.SrcSubStockId;
+ generateDto.InventoryInOutType = item.Type== MoveBoxType.Down?(int)InventoryInOutType.Out: (int)InventoryInOutType.In;
+ generateDtoList.Add(generateDto);
+
+ }
+ //4.开始处理
+ return await this.GenerateMoveBox(generateDtoList, isTransaction);
+ }
+
///
/// 入库回退上下架-箱库存的变更
///