出库单-物料收发明细

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

View File

@@ -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>