出库单-物料收发明细
This commit is contained in:
@@ -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;
|
||||||
|
|
||||||
@@ -114,7 +114,7 @@ namespace WMS.Web.Domain.Services
|
|||||||
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,
|
||||||
@@ -126,7 +126,7 @@ namespace WMS.Web.Domain.Services
|
|||||||
//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;
|
||||||
}
|
}
|
||||||
@@ -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;
|
||||||
|
|
||||||
@@ -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;
|
||||||
|
|
||||||
@@ -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;
|
||||||
|
|
||||||
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user