库存接口

This commit is contained in:
tongfei
2023-11-23 11:38:29 +08:00
parent c4f90f0c7e
commit 8aee4380fe
8 changed files with 81 additions and 30 deletions

View File

@@ -177,6 +177,8 @@ namespace WMS.Web.Api.Controllers
if (loginInfo == null || loginInfo.UserInfo == null)
return Result<BoxInventoryResponse>.ReFailure(ResultCodes.Token_Invalid_Error);
var result = await _boxInventoryRepositories.GetInfoBy(boxBillNo);
if(result==null)
return Result<BoxInventoryResponse>.ReFailure(ResultCodes.BoxInventoryNoDataError);
return Result <BoxInventoryResponse>.ReSuccess(result);
}
}

View File

@@ -2265,6 +2265,11 @@
仓位名称
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.Inventory.BoxInventoryResponse.TotalCount">
<summary>
总数
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.Inventory.BoxInventoryResponse.Details">
<summary>
明细

View File

@@ -2213,6 +2213,14 @@
<param name="isTransaction"></param>
<returns></returns>
</member>
<member name="M:WMS.Web.Domain.IService.IBoxInventoryService.GenerateBackBox(System.Collections.Generic.List{WMS.Web.Domain.Entitys.BackRecord},System.Boolean)">
<summary>
入库回退上下架-箱库存的变更
</summary>
<param name="dtoDatas"></param>
<param name="isTransaction"></param>
<returns></returns>
</member>
<member name="T:WMS.Web.Domain.IService.IChangeMoveBoxService">
<summary>
改箱 移箱服务

View File

@@ -39,6 +39,11 @@ namespace WMS.Web.Core.Dto.Inventory
/// </summary>
public string SubStock { get; set; }
/// <summary>
/// 总数
/// </summary>
public decimal TotalCount { get; set; }
/// <summary>
/// 明细
/// </summary>

View File

@@ -45,5 +45,14 @@ namespace WMS.Web.Domain.IService
/// <returns></returns>
Task<Result> GenerateBackBox(List<BoxInventoryBackGenerateDto> dtoDatas, bool isTransaction);
/// <summary>
/// 入库回退上下架-箱库存的变更
/// </summary>
/// <param name="dtoDatas"></param>
/// <param name="isTransaction"></param>
/// <returns></returns>
Task<Result> GenerateBackBox(List<BackRecord> dtoDatas, bool isTransaction);
}
}

View File

@@ -73,27 +73,9 @@ namespace WMS.Web.Domain.Services
return serialNumber_result;
//保存成功后:变更库存
var boxInventoryBackGenerateDto = dto.Details.GroupBy(x =>new { x.BoxId,x.StockCode,x.SubStockId}).Select(x => new BoxInventoryBackGenerateDto()
{
BoxId=x.Key.BoxId,
StockCode=x.Key.StockCode,
SubStockId=x.Key.SubStockId,
InventoryInOutType= type== BackRecordType.OutstockOn? (int)InventoryInOutType.In:(int)InventoryInOutType.Out,
}).ToList();
foreach (var item in dto.Details)
{
var current= boxInventoryBackGenerateDto.Where(x => x.BoxId == item.BoxId).FirstOrDefault();
if (current != null)
{
var detail = new BoxInventoryBackDetailsGenerateDto();
detail.MaterialId = item.MaterialId;
detail.Qty = item.Qty;
detail.SerialNumbers = item.SerialNumbers;
current.Details.Add(detail);
}
}
var boxInventoryResult= await _boxInventoryService.GenerateBackBox(boxInventoryBackGenerateDto, isTransaction);
var entitys = new List<BackRecord>();
entitys.Add(entity);
var boxInventoryResult= await _boxInventoryService.GenerateBackBox(entitys, isTransaction);
if (!boxInventoryResult.IsSuccess)
return boxInventoryResult;

View File

@@ -495,31 +495,32 @@ namespace WMS.Web.Domain.Services
var boxs = await _boxRepositories.GetEntityList(boxIds);
var serialNumbers = await _serialNumbersRepositories.GetEntityListByBoxIds(boxIds);
//
var generateDtoList = new List<BoxInventoryBackGenerateDto>();
#region
//入库的明细
var dtoDetails_in = dtoDatas.Where(x => x.Type == BackRecordType.OutstockOn).SelectMany(x => x.Details).ToList();
//2.1组织:头部
var generateDtoList = dtoDatas.SelectMany(x => x.Details).GroupBy(x => new { x.BoxId, x.OrgCode, x.StockCode, x.SubStockId })
var generateDtoList_in = dtoDetails_in.GroupBy(x => new { x.BoxId, x.OrgCode, x.StockCode, x.SubStockId })
.Select(x=>new BoxInventoryBackGenerateDto()
{
BoxId=x.Key.BoxId,
OrgCode=x.Key.OrgCode,
StockCode=x.Key.StockCode,
SubStockId=x.Key.SubStockId
SubStockId=x.Key.SubStockId,
InventoryInOutType = (int)InventoryInOutType.In
}).ToList();
//3.遍历:组装明细
generateDtoList.ForEach(x =>
generateDtoList_in.ForEach(x =>
{
foreach (var detItem in dtoDatas.SelectMany(x=>x.Details).ToList())
foreach (var detItem in dtoDetails_in)
{
//3.1箱是当前的
if (detItem.BoxId == x.BoxId)
{
var dtoCurrent = dtoDatas.Where(x => x.Id == detItem.Fid).FirstOrDefault();
if (dtoCurrent != null)
x.InventoryInOutType = dtoCurrent.Type == BackRecordType.InstockOff ? (int)InventoryInOutType.Out : (int)InventoryInOutType.In;
//3.2组装明细
var det = new BoxInventoryBackDetailsGenerateDto();
det.MaterialId = detItem.MaterialId;
@@ -529,6 +530,44 @@ namespace WMS.Web.Domain.Services
}
}
});
#endregion
#region
//出库的明细
var dtoDetails_out = dtoDatas.Where(x => x.Type == BackRecordType.InstockOff).SelectMany(x => x.Details).ToList();
//2.1组织:头部
var generateDtoList_out = dtoDetails_out.GroupBy(x => new { x.BoxId, x.OrgCode, x.StockCode, x.SubStockId })
.Select(x => new BoxInventoryBackGenerateDto()
{
BoxId = x.Key.BoxId,
OrgCode = x.Key.OrgCode,
StockCode = x.Key.StockCode,
SubStockId = x.Key.SubStockId,
InventoryInOutType = (int)InventoryInOutType.Out
}).ToList();
//3.遍历:组装明细
generateDtoList_out.ForEach(x =>
{
foreach (var detItem in dtoDetails_out)
{
//3.1箱是当前的
if (detItem.BoxId == x.BoxId)
{
//3.2组装明细
var det = new BoxInventoryBackDetailsGenerateDto();
det.MaterialId = detItem.MaterialId;
det.Qty = detItem.Qty;
det.SerialNumbers = detItem.SerialNumbers;
x.Details.Add(det);
}
}
});
#endregion
generateDtoList.AddRange(generateDtoList_in);
generateDtoList.AddRange(generateDtoList_out);
//4.提交处理
return await this.GenerateBackBox(generateDtoList, isTransaction);
}

View File

@@ -120,6 +120,7 @@ namespace WMS.Web.Repositories
response.Stock = _singleDataService.GetSingleData(SingleAction.StocksJoinOrgCode, _loginRepositories.CompanyId, response.StockCode + response.OrgCode);
response.SubStock = _singleDataService.GetSingleData(SingleAction.SubStocks, _loginRepositories.CompanyId, response.SubStockId);
response.Details = _mapper.Map<List<BoxInventoryDetailsResponse>>(entity.Details);
response.TotalCount = response.Details.Count();
}
return response;