接口优化

This commit is contained in:
tongfei
2023-11-17 15:54:55 +08:00
parent 1a28d353f9
commit d2740124d2
9 changed files with 71 additions and 123 deletions

View File

@@ -171,13 +171,13 @@ namespace WMS.Web.Api.Controllers
/// <returns></returns>
[HttpGet]
[Route("GetBoxInventoryDetails/{boxBillNo}")]
public async Task<ResultList<BoxInventoryDetailsResponse>> GetBoxInventoryDetails([FromRoute] string boxBillNo)
public async Task<Result<BoxInventoryResponse>> GetBoxInventoryDetails([FromRoute] string boxBillNo)
{
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
if (loginInfo == null || loginInfo.UserInfo == null)
return ResultPagedList<BoxInventoryDetailsResponse>.ReFailure(ResultCodes.Token_Invalid_Error);
var result = await _boxInventoryRepositories.GetListDetailsBy(boxBillNo);
return ResultList <BoxInventoryDetailsResponse>.ReSuccess(result);
return Result<BoxInventoryResponse>.ReFailure(ResultCodes.Token_Invalid_Error);
var result = await _boxInventoryRepositories.GetInfoBy(boxBillNo);
return Result <BoxInventoryResponse>.ReSuccess(result);
}
}
}

View File

@@ -2140,66 +2140,41 @@
序列号
</summary>
</member>
<member name="T:WMS.Web.Core.Dto.Inventory.BoxInventoryResponse">
<summary>
箱库存信息
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.Inventory.BoxInventoryResponse.BoxId">
<summary>
箱ID
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.Inventory.BoxInventoryResponse.StockCode">
<summary>
仓库编码
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.Inventory.BoxInventoryResponse.SubStockId">
<summary>
仓位ID
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.Inventory.BoxInventoryResponse.Details">
<summary>
明细
</summary>
</member>
<member name="T:WMS.Web.Core.Dto.Inventory.BoxInventoryDetailsResponse">
<summary>
箱库存明细响应对象
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.Inventory.BoxInventoryDetailsResponse.BoxInventoryId">
<summary>
箱库存ID
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.Inventory.BoxInventoryDetailsResponse.BoxId">
<summary>
箱ID
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.Inventory.BoxInventoryDetailsResponse.DetailsId">
<summary>
明细ID
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.Inventory.BoxInventoryDetailsResponse.StockCode">
<summary>
仓库编码
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.Inventory.BoxInventoryDetailsResponse.Stock">
<summary>
仓库名称
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.Inventory.BoxInventoryDetailsResponse.SubStockId">
<summary>
仓位ID
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.Inventory.BoxInventoryDetailsResponse.SubStock">
<summary>
仓位名称
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.Inventory.BoxInventoryDetailsResponse.MaterialId">
<summary>
物料ID
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.Inventory.BoxInventoryDetailsResponse.MaterialName">
<summary>
物料名称
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.Inventory.BoxInventoryDetailsResponse.MaterialNumber">
<summary>
物料编码
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.Inventory.BoxInventoryDetailsResponse.Specifications">
<summary>
物料规格型号
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.Inventory.BoxInventoryDetailsResponse.SerialNumbers">
<summary>
序列号集

View File

@@ -200,7 +200,7 @@
仓库ID
</summary>
</member>
<member name="F:WMS.Web.Domain.Entitys.BoxInventory.Details">
<member name="P:WMS.Web.Domain.Entitys.BoxInventory.Details">
<summary>
明细
</summary>
@@ -1668,7 +1668,7 @@
<param name="dto"></param>
<returns></returns>
</member>
<member name="M:WMS.Web.Domain.Infrastructure.IBoxInventoryRepositories.GetListDetailsBy(System.String)">
<member name="M:WMS.Web.Domain.Infrastructure.IBoxInventoryRepositories.GetInfoBy(System.String)">
<summary>
明细集合-根据箱号
</summary>
@@ -3321,7 +3321,7 @@
非采购上架-保存
</summary>
<param name="dto"></param>
<param name="staffId"></param>
<param name="loginInfo"></param>
<param name="isTransaction"></param>
<returns></returns>
</member>

View File

@@ -5,63 +5,43 @@ using System.Text;
namespace WMS.Web.Core.Dto.Inventory
{
/// <summary>
/// 箱库存明细响应对象
/// 箱库存信息
/// </summary>
public class BoxInventoryDetailsResponse
public class BoxInventoryResponse
{
/// <summary>
/// 箱库存ID
/// </summary>
public int BoxInventoryId { get; set; }
/// <summary>
/// 箱ID
/// </summary>
public int BoxId { get; set; }
/// <summary>
/// 明细ID
/// </summary>
public int DetailsId { get; set; }
/// <summary>
/// 仓库编码
/// </summary>
public string StockCode { get; set; }
/// <summary>
/// 仓库名称
/// </summary>
public string Stock { get; set; }
/// <summary>
/// 仓位ID
/// </summary>
public int SubStockId { get; set; }
/// <summary>
/// 仓位名称
/// 明细
/// </summary>
public string SubStock { get; set; }
public List<BoxInventoryDetailsResponse> Details { get; set; }
}
/// <summary>
/// 箱库存明细响应对象
/// </summary>
public class BoxInventoryDetailsResponse:EntityBase
{
/// <summary>
/// 物料ID
/// </summary>
public int MaterialId { get; set; }
/// <summary>
/// 物料名称
/// </summary>
public string MaterialName { get; set; }
/// <summary>
/// 物料编码
/// </summary>
public string MaterialNumber { get; set; }
/// <summary>
/// 物料规格型号
/// </summary>
public string Specifications { get; set; }
/// <summary>
/// 序列号集
/// </summary>

View File

@@ -32,6 +32,6 @@ namespace WMS.Web.Domain.Entitys
/// <summary>
/// 明细
/// </summary>
public List<BoxInventoryDetails> Details = new List<BoxInventoryDetails>();
public List<BoxInventoryDetails> Details { get; set; } = new List<BoxInventoryDetails>();
}
}

View File

@@ -25,7 +25,7 @@ namespace WMS.Web.Domain.Infrastructure
/// </summary>
/// <param name="boxBillNo"></param>
/// <returns></returns>
Task<List<BoxInventoryDetailsResponse>> GetListDetailsBy(string boxBillNo);
Task<BoxInventoryResponse> GetInfoBy(string boxBillNo);
/// <summary>
/// 列表-根据箱ids

View File

@@ -44,7 +44,16 @@ namespace WMS.Web.Domain.Mappers
//即时库存明细-映射
CreateMap<InventoryDetailsGenerateDto, InventoryDetails>();
//箱库存详情-映射
CreateMap<BoxInventoryResponse, BoxInventory>()
.ForMember(x=>x.Details,t=>t.Ignore());
CreateMap<BoxInventoryDetailsResponse, BoxInventoryDetails>();
}
}
}

View File

@@ -241,7 +241,7 @@ namespace WMS.Web.Domain.Services
/// 非采购上架-保存
/// </summary>
/// <param name="dto"></param>
/// <param name="staffId"></param>
/// <param name="loginInfo"></param>
/// <param name="isTransaction"></param>
/// <returns></returns>
private async Task<Result> ShelfNoPurchaseSave(NoPurchaseShelfRequest dto, LoginInDto loginInfo, bool isTransaction = true)

View File

@@ -101,39 +101,23 @@ namespace WMS.Web.Repositories
/// </summary>
/// <param name="boxBillNo"></param>
/// <returns></returns>
public async Task<List<BoxInventoryDetailsResponse>> GetListDetailsBy(string boxBillNo)
public async Task<BoxInventoryResponse> GetInfoBy(string boxBillNo)
{
//1.获取物料集合和组织集合
var materials_result = await _erpService.BillQueryForMaterial();
if (!materials_result.IsSuccess)
return new List<BoxInventoryDetailsResponse>();
var materials = materials_result.Data.ToList();
////1.获取物料集合和组织集合
//var materials_result = await _erpService.BillQueryForMaterial();
//if (!materials_result.IsSuccess)
// return new List<BoxInventoryDetailsResponse>();
//var materials = materials_result.Data.ToList();
var query=_context.BoxInventoryDetails
.GroupJoin(_context.BoxInventory, detail => detail.Fid, order => order.Id, (detail, orders) => new { detail, orders })
.SelectMany(x => x.orders.DefaultIfEmpty(), (p, order) => new { p.detail, order })
.GroupJoin(_context.Box, p => p.order.BoxId, t => t.Id, (p, ts) => new { p.detail, p.order, ts })
.SelectMany(x => x.ts.DefaultIfEmpty(), (p, box) => new { p.detail, p.order, box })
.Where(x => 1 == 1 && x.box.BoxBillNo==boxBillNo);
var entity=await _context.BoxInventory.Include(x=>x.Details)
.GroupJoin(_context.Box, t => t.BoxId, box => box.Id, (boxinvent, ts) => new { boxinvent, ts })
.SelectMany(x => x.ts.DefaultIfEmpty(), (p, box) => new { p.boxinvent, box })
.Where(x => 1 == 1 && x.box.BoxBillNo==boxBillNo).Select(x=>x.boxinvent).FirstOrDefaultAsync();
var list = await query.Select(x => new BoxInventoryDetailsResponse()
{
MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, x.detail.MaterialId),
MaterialNumber = _erpBasicDataExtendService.GetMaterialNumber(materials, x.detail.MaterialId),
Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, x.detail.MaterialId),
StockCode =x.order.StockCode,
Stock = _singleDataService.GetSingleData(SingleAction.Stocks, _loginRepositories.CompanyId, x.order.StockCode),
SubStockId=x.order.SubStockId,
SubStock= _singleDataService.GetSingleData(SingleAction.SubStocks, _loginRepositories.CompanyId, x.order.SubStockId),
DetailsId =x.detail.Id,
BoxId=x.box.Id,
BoxInventoryId=x.order.Id,
MaterialId=x.detail.MaterialId,
Qty=x.detail.Qty,
SerialNumbers=x.detail.SerialNumbers
}).ToListAsync();
return list;
var response = _mapper.Map<BoxInventoryResponse>(entity);
response.Details = _mapper.Map<List<BoxInventoryDetailsResponse>>(entity.Details);
return response;
}
/// <summary>