diff --git a/src/WMS.Web.Api/Controllers/InventoryController.cs b/src/WMS.Web.Api/Controllers/InventoryController.cs index ce64bda5..046b3251 100644 --- a/src/WMS.Web.Api/Controllers/InventoryController.cs +++ b/src/WMS.Web.Api/Controllers/InventoryController.cs @@ -82,5 +82,21 @@ namespace WMS.Web.Api.Controllers var result = await _boxInventoryRepositories.GetPagedList(dto); return result; } + + /// + /// 获取箱库存明细-根据箱号-pad + /// + /// + /// + [HttpPost] + [Route("GetBoxInventoryDetails/{boxBillNo}")] + public async Task> GetBoxInventoryDetails([FromRoute] string boxBillNo) + { + var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]); + if (loginInfo == null || loginInfo.UserInfo == null) + return ResultPagedList.ReFailure(ResultCodes.Token_Invalid_Error); + var result = await _boxInventoryRepositories.GetListDetailsBy(boxBillNo); + return ResultList < BoxInventoryDetailsDto >.ReSuccess(result); + } } } diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml index 555fc28c..682db163 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml @@ -176,6 +176,13 @@ + + + 获取箱库存明细-根据箱号-pad + + + + 登录接口 diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml index c9311ffc..ee500e1c 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml @@ -1830,6 +1830,46 @@ 保存入库单-请求对象 + + + 箱库存 + + + + + 箱库存明细 + + + + + 明细ID + + + + + 箱ID + + + + + 箱库存ID + + + + + 物料ID + + + + + 序列号集 + + + + + 物料库存数量 + + 箱库存-查询请求对象 diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml index 9b17d53e..8fb0078c 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml @@ -1412,6 +1412,13 @@ + + + 明细集合-根据箱号 + + + + 批量添加 diff --git a/src/WMS.Web.Core/Dto/Inventory/BoxInventoryDto.cs b/src/WMS.Web.Core/Dto/Inventory/BoxInventoryDto.cs new file mode 100644 index 00000000..8c7c78f6 --- /dev/null +++ b/src/WMS.Web.Core/Dto/Inventory/BoxInventoryDto.cs @@ -0,0 +1,48 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace WMS.Web.Core.Dto.Inventory +{ + /// + /// 箱库存 + /// + public class BoxInventoryDto + { + + } + + /// + /// 箱库存明细 + /// + public class BoxInventoryDetailsDto + { + /// + /// 明细ID + /// + public int DetailsId { get; set; } + + /// + /// 箱ID + /// + public int BoxId { get; set; } + + /// + /// 箱库存ID + /// + public int BoxInventoryId { get; set; } + + /// + /// 物料ID + /// + public int MaterialId { get; set; } + /// + /// 序列号集 + /// + public List SerialNumbers { get; set; } = new List(); + /// + /// 物料库存数量 + /// + public decimal Qty { get; set; } + } +} diff --git a/src/WMS.Web.Domain/Entitys/BoxInventoryDetails.cs b/src/WMS.Web.Domain/Entitys/BoxInventoryDetails.cs index 820b7622..1c1c0446 100644 --- a/src/WMS.Web.Domain/Entitys/BoxInventoryDetails.cs +++ b/src/WMS.Web.Domain/Entitys/BoxInventoryDetails.cs @@ -29,7 +29,7 @@ namespace WMS.Web.Domain.Entitys /// /// 序列号集 /// - public string SerialNumbers { get; set; } + public List SerialNumbers { get; set; } = new List(); /// /// 物料库存数量 /// diff --git a/src/WMS.Web.Domain/Infrastructure/IBoxInventoryRepositories.cs b/src/WMS.Web.Domain/Infrastructure/IBoxInventoryRepositories.cs index 5d9cf45f..c1b42267 100644 --- a/src/WMS.Web.Domain/Infrastructure/IBoxInventoryRepositories.cs +++ b/src/WMS.Web.Domain/Infrastructure/IBoxInventoryRepositories.cs @@ -19,6 +19,13 @@ namespace WMS.Web.Domain.Infrastructure /// /// Task> GetPagedList(BoxInventoryQueryRequest dto); + + /// + /// 明细集合-根据箱号 + /// + /// + /// + Task> GetListDetailsBy(string boxBillNo); /// /// 批量添加 /// diff --git a/src/WMS.Web.Repositories/BoxInventoryRepositories.cs b/src/WMS.Web.Repositories/BoxInventoryRepositories.cs index b3af134f..2bb5c8e6 100644 --- a/src/WMS.Web.Repositories/BoxInventoryRepositories.cs +++ b/src/WMS.Web.Repositories/BoxInventoryRepositories.cs @@ -101,6 +101,33 @@ namespace WMS.Web.Repositories return response; } + /// + /// 明细集合-根据箱号 + /// + /// + /// + public async Task> GetListDetailsBy(string boxBillNo) + { + 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 list = await query.Select(x => new BoxInventoryDetailsDto() + { + 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; + } + /// /// 批量添加 /// diff --git a/src/WMS.Web.Repositories/Configuration/RepositoryDbContext.cs b/src/WMS.Web.Repositories/Configuration/RepositoryDbContext.cs index aa94991a..729c827a 100644 --- a/src/WMS.Web.Repositories/Configuration/RepositoryDbContext.cs +++ b/src/WMS.Web.Repositories/Configuration/RepositoryDbContext.cs @@ -211,6 +211,9 @@ namespace WMS.Web.Repositories.Configuration { ent.ToTable("t_wms_box_inventory_details"); ent.HasKey(x => x.Id); + ent.Property(f => f.SerialNumbers).HasConversion( + v => JsonConvert.SerializeObject(v), + v => JsonConvert.DeserializeObject>(v)); }); # endregion