This commit is contained in:
tongfei
2023-11-22 17:38:21 +08:00
parent d6c4d6db0c
commit 6cd499ca56
3 changed files with 114 additions and 7 deletions

View File

@@ -2149,7 +2149,7 @@
<param name="isTransaction"></param>
<returns></returns>
</member>
<member name="M:WMS.Web.Domain.IService.IBoxInventoryService.GenerateChangeBox(System.Collections.Generic.List{WMS.Web.Core.Dto.Inventory.BoxInventoryChangeGenerateDto},System.Boolean)">
<member name="M:WMS.Web.Domain.IService.IBoxInventoryService.GenerateChangeBox(System.Collections.Generic.List{WMS.Web.Domain.Entitys.ChangeBoxRecord},System.Boolean)">
<summary>
改箱-箱库存的变更
</summary>
@@ -2157,9 +2157,9 @@
<param name="isTransaction"></param>
<returns></returns>
</member>
<member name="M:WMS.Web.Domain.IService.IBoxInventoryService.GenerateChangeBox(System.Collections.Generic.List{WMS.Web.Domain.Entitys.ChangeBoxRecord},System.Boolean)">
<member name="M:WMS.Web.Domain.IService.IBoxInventoryService.GenerateMoveBox(System.Collections.Generic.List{WMS.Web.Domain.Entitys.MoveBoxRecord},System.Boolean)">
<summary>
箱-箱库存的变更
箱-箱库存的变更
</summary>
<param name="dtoDatas"></param>
<param name="isTransaction"></param>
@@ -3246,6 +3246,14 @@
<param name="isTransaction"></param>
<returns></returns>
</member>
<member name="M:WMS.Web.Domain.Services.BoxInventoryService.GenerateMoveBox(System.Collections.Generic.List{WMS.Web.Domain.Entitys.MoveBoxRecord},System.Boolean)">
<summary>
移箱-箱库存的变更
</summary>
<param name="dtoDatas"></param>
<param name="isTransaction"></param>
<returns></returns>
</member>
<member name="M:WMS.Web.Domain.Services.BoxInventoryService.GenerateBackBox(System.Collections.Generic.List{WMS.Web.Core.Dto.Inventory.BoxInventoryBackGenerateDto},System.Boolean)">
<summary>
入库回退上下架-箱库存的变更

View File

@@ -29,6 +29,14 @@ namespace WMS.Web.Domain.IService
/// <returns></returns>
Task<Result> GenerateChangeBox(List<ChangeBoxRecord> dtoDatas, bool isTransaction);
/// <summary>
/// 移箱-箱库存的变更
/// </summary>
/// <param name="dtoDatas"></param>
/// <param name="isTransaction"></param>
/// <returns></returns>
Task<Result> GenerateMoveBox(List<MoveBoxRecord> dtoDatas, bool isTransaction);
/// <summary>
/// 移箱-箱库存的变更
/// </summary>

View File

@@ -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<BoxInventory>();
var add_entitys = new List<BoxInventory>();
var InventoryDetailsGenerateDto = new List<InventoryDetailsGenerateDto>();
//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<BoxInventory>();
var add_entitys = new List<BoxInventory>();
var InventoryDetailsGenerateDto = new List<InventoryDetailsGenerateDto>();
//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();
}
/// <summary>
/// 移箱-箱库存的变更
/// </summary>
/// <param name="dtoDatas"></param>
/// <param name="isTransaction"></param>
/// <returns></returns>
public async Task<Result> GenerateMoveBox(List<MoveBoxRecord> 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<BoxInventoryMoveGenerateDto>();
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);
}
/// <summary>
/// 入库回退上下架-箱库存的变更
/// </summary>