From 347d12736ed282c22f339c82975b6bc1f7853394 Mon Sep 17 00:00:00 2001 From: 18942506660 <18942506660@A18942506660> Date: Mon, 18 Dec 2023 11:43:06 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=AE=B1=E5=B7=AE=E5=87=BA?= =?UTF-8?q?=E5=BA=93=E5=8D=95=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/SysConfigController.cs | 24 ++++++++++++++- .../Infrastructure/IOutStockRepositories.cs | 3 ++ .../OutStockRepositories.cs | 30 +++++++++++++++++++ 3 files changed, 56 insertions(+), 1 deletion(-) diff --git a/src/WMS.Web.Api/Controllers/SysConfigController.cs b/src/WMS.Web.Api/Controllers/SysConfigController.cs index e03f3ae8..d5f9ccc6 100644 --- a/src/WMS.Web.Api/Controllers/SysConfigController.cs +++ b/src/WMS.Web.Api/Controllers/SysConfigController.cs @@ -37,10 +37,11 @@ namespace WMS.Web.Api.Controllers private readonly IBoxInventoryRepositories _boxInventoryRepositories; private readonly IMapper _mapper; private readonly IErpBasicDataExtendService _erpBasicDataExtendService; + private readonly IOutStockRepositories _outStockRepositories; public SysConfigController(ILoginService loginService, IBasicsRepositories basicsRepositories, IBoxRepositories boxRepositories, IErpService erpService, ISingleDataService singleDataService, ISerialNumbersRepositories serialNumbersRepositories, IBoxInventoryRepositories boxInventoryRepositories, - IMapper mapper, IErpBasicDataExtendService erpBasicDataExtendService) + IMapper mapper, IErpBasicDataExtendService erpBasicDataExtendService, IOutStockRepositories outStockRepositories) { _loginService = loginService; _basicsRepositories = basicsRepositories; @@ -51,6 +52,7 @@ namespace WMS.Web.Api.Controllers _boxInventoryRepositories = boxInventoryRepositories; _mapper = mapper; _erpBasicDataExtendService = erpBasicDataExtendService; + _outStockRepositories = outStockRepositories; } /// @@ -357,6 +359,26 @@ namespace WMS.Web.Api.Controllers return Result.ReSuccess(res.First()); } + + /// + /// 根据箱号获取箱对应出库单信息 最新一条 + /// + /// 必填 + /// + [HttpGet] + [Route("GetBox_OutStock")] + public async Task> GetBox_OutStock([FromQuery] string boxBillNo) + { + var res = await _boxRepositories.GetBox(new List() { boxBillNo }); + if (res.Count() <= 0) + return Result.ReFailure("箱号" + boxBillNo + "不存在", 800000); + var response = res[0]; + var detail = await _outStockRepositories.GetDetailsByBoxId(response.Id); + response.Details = detail; + response.TotalQty = detail.Sum(s => s.Qty); + return Result.ReSuccess(response); + } + /// /// 根据序列号或规格型号,物料编码搜索物料信息-PDA /// diff --git a/src/WMS.Web.Domain/Infrastructure/IOutStockRepositories.cs b/src/WMS.Web.Domain/Infrastructure/IOutStockRepositories.cs index 3d42c2f2..9b917767 100644 --- a/src/WMS.Web.Domain/Infrastructure/IOutStockRepositories.cs +++ b/src/WMS.Web.Domain/Infrastructure/IOutStockRepositories.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Text; using System.Threading.Tasks; +using WMS.Web.Core.Dto; using WMS.Web.Core.Dto.OutStock; using WMS.Web.Domain.Entitys; @@ -23,5 +24,7 @@ namespace WMS.Web.Domain.Infrastructure Task EditEntityList(List entitys, bool isTransaction = true); //获取详情 Task GetInfo(int id); + //获取出库单明细 + Task> GetDetailsByBoxId(int boxId); } } diff --git a/src/WMS.Web.Repositories/OutStockRepositories.cs b/src/WMS.Web.Repositories/OutStockRepositories.cs index ca96dc0e..18d0e857 100644 --- a/src/WMS.Web.Repositories/OutStockRepositories.cs +++ b/src/WMS.Web.Repositories/OutStockRepositories.cs @@ -7,6 +7,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using WMS.Web.Core; +using WMS.Web.Core.Dto; using WMS.Web.Core.Dto.Erp; using WMS.Web.Core.Dto.OutStock; using WMS.Web.Core.Help; @@ -320,5 +321,34 @@ namespace WMS.Web.Repositories { return await GetListAsync(dto); } + + public async Task> GetDetailsByBoxId(int boxId) + { + var res = await _context.OutStock + .Include(s => s.Details).ThenInclude(s => s.ErpDetails) + .Include(s => s.Details).ThenInclude(s => s.BoxsDetails.Where(w => w.BoxId == boxId)) + .Where(f => f.Details.SelectMany(s => s.BoxsDetails).Where(w => w.BoxId == boxId).Any()) + .OrderByDescending(o => o.Id) + .FirstAsync(); + List details = new List(); + + var materials_result = await _erpService.BillQueryForMaterial(); + if (!materials_result.IsSuccess) + return new List(); + var materials = materials_result.Data.ToList(); + + foreach (var d in res.Details) + { + BoxDetailResponse detail = new BoxDetailResponse(); + detail.MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, detail.MaterialId); + detail.MaterialNumber = _erpBasicDataExtendService.GetMaterialNumber(materials, detail.MaterialId); + detail.Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, detail.MaterialId); + detail.SerialNumbers = d.SerialNumbers; + detail.MaterialId = d.MaterialId; + detail.Qty = d.BoxsDetails.FirstOrDefault(f => f.BoxId == boxId)?.Qty ?? 0; + details.Add(detail); + } + return details; + } } }