出库单-物料收发明细

This commit is contained in:
tongfei
2023-11-24 14:57:56 +08:00
parent 5f71e20802
commit c023f3eb11

View File

@@ -38,7 +38,7 @@ namespace WMS.Web.Domain.Services
_inventoryInOutDetailsService = inventoryInOutDetailsService; _inventoryInOutDetailsService = inventoryInOutDetailsService;
} }
/// <summary> /// <summary>
/// 改箱-箱库存的变更 /// 改箱-箱库存的变更
@@ -89,7 +89,7 @@ namespace WMS.Web.Domain.Services
} }
}); });
//4.开始处理 //4.开始处理
var result= await this.ExeChangeBox(generateDtos, sourceBoxInventorys, targetBoxInventorys, isTransaction); var result = await this.ExeChangeBox(generateDtos, sourceBoxInventorys, targetBoxInventorys, isTransaction);
if (!result.IsSuccess) if (!result.IsSuccess)
return result; return result;
@@ -112,9 +112,9 @@ namespace WMS.Web.Domain.Services
} }
//5.3组装:目标箱物料收发明细;有箱库存就需要创建物料收发明细; //5.3组装:目标箱物料收发明细;有箱库存就需要创建物料收发明细;
var tagBox = targetBoxInventorys.Where(x => x.BoxId == item.DestBoxId).FirstOrDefault(); var tagBox = targetBoxInventorys.Where(x => x.BoxId == item.DestBoxId).FirstOrDefault();
if (tagBox != null) if (tagBox != null)
{ {
var inventoryInOutDet=_inventoryInOutDetailsService.GenerateDto( var inventoryInOutDet = _inventoryInOutDetailsService.GenerateDto(
item.DestBoxId, item.MaterialId, item.DestBoxId, item.MaterialId,
item.DestBoxOrgCode, item.DestStockCode, item.DestBoxOrgCode, item.DestStockCode,
item.DestSubStockId, OrderType.ChangeBox, item.DestSubStockId, OrderType.ChangeBox,
@@ -122,17 +122,17 @@ namespace WMS.Web.Domain.Services
InventoryInOutDetailsGenerateDtoList.Add(inventoryInOutDet); InventoryInOutDetailsGenerateDtoList.Add(inventoryInOutDet);
} }
} }
//5.提交物料收发明细:新增 //5.提交物料收发明细:新增
if (InventoryInOutDetailsGenerateDtoList.Count != 0) if (InventoryInOutDetailsGenerateDtoList.Count != 0)
{ {
var inout_result = await _inventoryInOutDetailsService.GenerateInOrOutDetails(InventoryInOutDetailsGenerateDtoList,isTransaction); var inout_result = await _inventoryInOutDetailsService.GenerateInOrOutDetails(InventoryInOutDetailsGenerateDtoList, isTransaction);
if (!inout_result.IsSuccess) if (!inout_result.IsSuccess)
return inout_result; return inout_result;
} }
return Result.ReSuccess(); return Result.ReSuccess();
} }
/// <summary> /// <summary>
/// 移箱-箱库存的变更 /// 移箱-箱库存的变更
@@ -187,13 +187,13 @@ namespace WMS.Web.Domain.Services
item.OrgCode, item.StockCode, item.OrgCode, item.StockCode,
SubStockId, OrderType.MoveBox, SubStockId, OrderType.MoveBox,
item.BillNo, item.Qty, InOutType); item.BillNo, item.Qty, InOutType);
InventoryInOutDetailsGenerateDtoList.Add(inventoryInOutDet); InventoryInOutDetailsGenerateDtoList.Add(inventoryInOutDet);
} }
} }
} }
//4.开始处理 //4.开始处理
var result= await this.ExeMoveBox(generateDtoList, boxInventorys, boxs, isTransaction); var result = await this.ExeMoveBox(generateDtoList, boxInventorys, boxs, isTransaction);
if (!result.IsSuccess) if (!result.IsSuccess)
return result; return result;
@@ -206,7 +206,7 @@ namespace WMS.Web.Domain.Services
} }
return Result.ReSuccess(); return Result.ReSuccess();
} }
/// <summary> /// <summary>
/// 入库回退上下架-箱库存的变更 /// 入库回退上下架-箱库存的变更
@@ -296,12 +296,12 @@ namespace WMS.Web.Domain.Services
generateDtoList.AddRange(generateDtoList_in); generateDtoList.AddRange(generateDtoList_in);
generateDtoList.AddRange(generateDtoList_out); generateDtoList.AddRange(generateDtoList_out);
//4.提交处理 //4.提交处理
var result= await this.ExeBackBox(generateDtoList, isTransaction); var result = await this.ExeBackBox(generateDtoList, isTransaction);
if (!result.IsSuccess) if (!result.IsSuccess)
return result; return result;
//5.组装物料收发明细dto //5.组装物料收发明细dto
foreach (var item in dtoDatas.SelectMany(x=>x.Details).ToList()) foreach (var item in dtoDatas.SelectMany(x => x.Details).ToList())
{ {
var entity = dtoDatas.Where(x => x.Id == item.Fid).FirstOrDefault(); var entity = dtoDatas.Where(x => x.Id == item.Fid).FirstOrDefault();
if (entity != null) if (entity != null)
@@ -310,7 +310,7 @@ namespace WMS.Web.Domain.Services
item.BoxId, item.MaterialId, item.BoxId, item.MaterialId,
item.OrgCode, item.StockCode, item.OrgCode, item.StockCode,
item.SubStockId, OrderType.Back, item.SubStockId, OrderType.Back,
entity.BillNo, item.Qty, (entity.Type== BackRecordType.InstockOff?InventoryInOutType.Out:InventoryInOutType.In)); entity.BillNo, item.Qty, (entity.Type == BackRecordType.InstockOff ? InventoryInOutType.Out : InventoryInOutType.In));
InventoryInOutDetailsGenerateDtoList.Add(inventoryInOutDet); InventoryInOutDetailsGenerateDtoList.Add(inventoryInOutDet);
} }
} }
@@ -401,7 +401,7 @@ namespace WMS.Web.Domain.Services
generateDtoList.AddRange(generateDtoList_in); generateDtoList.AddRange(generateDtoList_in);
generateDtoList.AddRange(generateDtoList_out); generateDtoList.AddRange(generateDtoList_out);
//提交处理 //提交处理
var result= await this.ExeTakeBox(generateDtoList, isTransaction); var result = await this.ExeTakeBox(generateDtoList, isTransaction);
if (!result.IsSuccess) if (!result.IsSuccess)
return result; return result;
@@ -423,7 +423,7 @@ namespace WMS.Web.Domain.Services
return inout_result; return inout_result;
} }
return Result.ReSuccess(); return Result.ReSuccess();
} }
/// <summary> /// <summary>
/// 入库单-箱库存的变更 /// 入库单-箱库存的变更
@@ -511,7 +511,7 @@ namespace WMS.Web.Domain.Services
generateDtoList.AddRange(generateDtoList_Metod_Box); generateDtoList.AddRange(generateDtoList_Metod_Box);
generateDtoList.AddRange(generateDtoList_Metod_Product); generateDtoList.AddRange(generateDtoList_Metod_Product);
//提交处理 //提交处理
var result= await this.ExeInStockBox(generateDtoList, isTransaction); var result = await this.ExeInStockBox(generateDtoList, isTransaction);
if (!result.IsSuccess) if (!result.IsSuccess)
return result; return result;
@@ -538,7 +538,7 @@ namespace WMS.Web.Domain.Services
} }
return Result.ReSuccess(); return Result.ReSuccess();
} }
/// <summary> /// <summary>
/// 出库单-箱库存变更 /// 出库单-箱库存变更
@@ -552,6 +552,9 @@ namespace WMS.Web.Domain.Services
if (dtoData == null) if (dtoData == null)
return Result.ReFailure(ResultCodes.InventoryNoSourceError); return Result.ReFailure(ResultCodes.InventoryNoSourceError);
//物料收发明细dtos
var InventoryInOutDetailsGenerateDtoList = new List<InventoryInOutDetailsGenerateDto>();
//2.组装 //2.组装
var generateDtoList = dtoData.Details.SelectMany(x => x.BoxsDetails).GroupBy(x => new { x.BoxId, x.SubStockId }) var generateDtoList = dtoData.Details.SelectMany(x => x.BoxsDetails).GroupBy(x => new { x.BoxId, x.SubStockId })
.Select(x => new BoxInventoryGenerateDto() .Select(x => new BoxInventoryGenerateDto()
@@ -587,7 +590,37 @@ namespace WMS.Web.Domain.Services
}); });
//提交处理 //提交处理
return await this.ExeOutStockBox(generateDtoList, isTransaction); var result = await this.ExeOutStockBox(generateDtoList, isTransaction);
if (!result.IsSuccess)
return result;
//5.组装物料收发明细dto
//3.1明细的IDS
var current_materialDetails_ids = dtoData.Details.SelectMany(t => t.BoxsDetails).GroupBy(t => t.DetailId).Select(t => t.Key).ToList();
//3.2再通过找到的IDS获取中间层的明细
var current_materialDetails = dtoData.Details.Where(t => current_materialDetails_ids.Contains(t.Id)).ToList();
foreach (var item in dtoData.Details.SelectMany(x => x.BoxsDetails).ToList())
{
//找到当前box对应的物料明细
var currentDet= current_materialDetails.Where(x => x.Id == item.DetailId).FirstOrDefault();
var inventoryInOutDet = _inventoryInOutDetailsService.GenerateDto(
item.BoxId, currentDet.MaterialId,
dtoData.OrgCode, dtoData.StockCode,
item.SubStockId, OutStockTypeConvert(dtoData.Type),
dtoData.BillNo, item.Qty, InventoryInOutType.Out);
InventoryInOutDetailsGenerateDtoList.Add(inventoryInOutDet);
}
//5.提交物料收发明细:新增
if (InventoryInOutDetailsGenerateDtoList.Count != 0)
{
var inout_result = await _inventoryInOutDetailsService.GenerateInOrOutDetails(InventoryInOutDetailsGenerateDtoList, isTransaction);
if (!inout_result.IsSuccess)
return inout_result;
}
return Result.ReSuccess();
} }
/// <summary> /// <summary>
@@ -598,7 +631,7 @@ namespace WMS.Web.Domain.Services
/// <param name="targetBoxInventorys"></param> /// <param name="targetBoxInventorys"></param>
/// <param name="isTransaction"></param> /// <param name="isTransaction"></param>
/// <returns></returns> /// <returns></returns>
private async Task<Result> ExeChangeBox(List<BoxInventoryChangeGenerateDto> dtoDatas,List<BoxInventory> sourceBoxInventorys, List<BoxInventory> targetBoxInventorys, bool isTransaction) private async Task<Result> ExeChangeBox(List<BoxInventoryChangeGenerateDto> dtoDatas, List<BoxInventory> sourceBoxInventorys, List<BoxInventory> targetBoxInventorys, bool isTransaction)
{ {
//1.判断来源数据是否存在 //1.判断来源数据是否存在
if (dtoDatas == null || dtoDatas.Count == 0) if (dtoDatas == null || dtoDatas.Count == 0)
@@ -733,7 +766,7 @@ namespace WMS.Web.Domain.Services
/// <param name="boxs"></param> /// <param name="boxs"></param>
/// <param name="isTransaction"></param> /// <param name="isTransaction"></param>
/// <returns></returns> /// <returns></returns>
private async Task<Result> ExeMoveBox(List<BoxInventoryMoveGenerateDto> dtoDatas, List<BoxInventory> boxInventorys,List<Box> boxs, bool isTransaction) private async Task<Result> ExeMoveBox(List<BoxInventoryMoveGenerateDto> dtoDatas, List<BoxInventory> boxInventorys, List<Box> boxs, bool isTransaction)
{ {
//1.判断来源数据是否存在 //1.判断来源数据是否存在
if (dtoDatas == null || dtoDatas.Count == 0) if (dtoDatas == null || dtoDatas.Count == 0)