From aee5ba78a2f54754da719ca1ba56213a9e607870 Mon Sep 17 00:00:00 2001 From: tongfei <244188119@qq.com> Date: Mon, 13 Nov 2023 17:19:14 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E7=AE=B1=E5=BA=93=E5=AD=98?= =?UTF-8?q?=E6=98=8E=E7=BB=86-=E6=A0=B9=E6=8D=AE=E7=AE=B1=E5=8F=B7-pad?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/InventoryController.cs | 16 +++++++ src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml | 7 +++ src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml | 40 ++++++++++++++++ src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml | 7 +++ .../Dto/Inventory/BoxInventoryDto.cs | 48 +++++++++++++++++++ .../Entitys/BoxInventoryDetails.cs | 2 +- .../IBoxInventoryRepositories.cs | 7 +++ .../BoxInventoryRepositories.cs | 27 +++++++++++ .../Configuration/RepositoryDbContext.cs | 3 ++ 9 files changed, 156 insertions(+), 1 deletion(-) create mode 100644 src/WMS.Web.Core/Dto/Inventory/BoxInventoryDto.cs 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