From 69de798d88449aefd03e383084c335adad3acc6b Mon Sep 17 00:00:00 2001 From: 18942506660 <18942506660@A18942506660> Date: Tue, 16 Apr 2024 09:35:37 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=90=9C=E7=B4=A2=E6=9D=A1?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/WMS.Web.Api/Controllers/TestController.cs | 8 +++- src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml | 6 +++ .../Infrastructure/IOutStockRepositories.cs | 5 +++ .../OutStockRepositories.cs | 37 +++++++++++++++++++ .../OutStockTaskRepositories.cs | 23 +++++++++++- 5 files changed, 77 insertions(+), 2 deletions(-) diff --git a/src/WMS.Web.Api/Controllers/TestController.cs b/src/WMS.Web.Api/Controllers/TestController.cs index 781073de..9079bd37 100644 --- a/src/WMS.Web.Api/Controllers/TestController.cs +++ b/src/WMS.Web.Api/Controllers/TestController.cs @@ -39,6 +39,7 @@ namespace WMS.Web.Api.Controllers private readonly IOpsService _opsService; private readonly IBoxService _boxService; private readonly IOutStockTaskRepositories _outStockTaskRepositories; + private readonly IOutStockRepositories _outStockRepositories; private readonly IOutStockTaskService _outStockTaskService; private readonly IBoxInventoryRepositories _boxInventoryRepositories; private readonly ITakeStockService _takeStockService; @@ -55,7 +56,7 @@ namespace WMS.Web.Api.Controllers IBasicsRepositories transactionRepositories, IOpsService opsService, IBoxService boxService, IBasicsRepositories basicsRepositories, IMemoryCache memoryCache, IOutStockTaskRepositories outStockTaskRepositories, IOutStockTaskService outStockTaskService, IOptions options, ILoginService loginService, ISendMessageService sendMessageService, ITakeStockService takeStockService, ITakeStockRepositories takeStockRepositories, IOutStockService outStockService, IInStockTaskRepositories inStockTaskRepositories, - IWebHostEnvironment env, IMaterialService materialService) + IWebHostEnvironment env, IMaterialService materialService, IOutStockRepositories outStockRepositories) { _memoryCache = memoryCache; _materialService = materialService; @@ -75,6 +76,7 @@ namespace WMS.Web.Api.Controllers _takeStockService = takeStockService; _takeStockRepositories = takeStockRepositories; _outStockService = outStockService; + _outStockRepositories = outStockRepositories; _env = env; } @@ -84,6 +86,10 @@ namespace WMS.Web.Api.Controllers { //var list = await _outStockTaskRepositories.GetEntityList(new List { 14321 }); + //await _outStockRepositories.GetEntityListBySerialNumbers(new List() { "131L0" }); + //await _outStockRepositories.GetEntityListByBoxBillNos(new List() { "CTN0002187" }); + + //list[0].Details[0].ErpDetails[0].AccruedQty = 2; //list[0].Details[0].ErpDetails.Add(new OutStockTaskErpDetails() //{ diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml index f1ba02cb..a480fb38 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml @@ -3206,6 +3206,12 @@ 修改实体集合 + + 根据出库序列码搜索 + + + 根据出库箱号搜索 + 批量添加 diff --git a/src/WMS.Web.Domain/Infrastructure/IOutStockRepositories.cs b/src/WMS.Web.Domain/Infrastructure/IOutStockRepositories.cs index 308df288..a994bc5a 100644 --- a/src/WMS.Web.Domain/Infrastructure/IOutStockRepositories.cs +++ b/src/WMS.Web.Domain/Infrastructure/IOutStockRepositories.cs @@ -26,5 +26,10 @@ namespace WMS.Web.Domain.Infrastructure Task GetInfo(int id); //获取出库单明细 Task> GetDetailsByBoxId(int boxId); + + /// 根据出库序列码搜索 + Task> GetEntityListBySerialNumbers(List serialNumbers); + /// 根据出库箱号搜索 + Task> GetEntityListByBoxBillNos(List boxBillNos); } } diff --git a/src/WMS.Web.Repositories/OutStockRepositories.cs b/src/WMS.Web.Repositories/OutStockRepositories.cs index 8e52bf63..ee98d727 100644 --- a/src/WMS.Web.Repositories/OutStockRepositories.cs +++ b/src/WMS.Web.Repositories/OutStockRepositories.cs @@ -5,6 +5,7 @@ using Microsoft.Extensions.Logging; using System; using System.Collections.Generic; using System.Linq; +using System.Runtime.CompilerServices; using System.Text; using System.Threading.Tasks; using WMS.Web.Core; @@ -373,5 +374,41 @@ namespace WMS.Web.Repositories } return details; } + /// + /// 根据序列号搜索 + /// + /// + /// + public Task> GetEntityListBySerialNumbers(List serialNumbers) + { + if (serialNumbers.Count() == 0) Task.FromResult(new List()); + string str = $"select * from t_wms_outstock where Id in (select Fid from t_wms_outstock_details where "; + for (int i = 0; i < serialNumbers.Count(); i++) + { + if (i == 0) + str += $"SerialNumbers like '%{serialNumbers[i]}%'"; + else + str += $" or SerialNumbers like '%{serialNumbers[i]}%'"; + } + str += ")"; + var fs = FormattableStringFactory.Create(str); + var list = _context.Set().FromSqlInterpolated(fs).ToList(); + return Task.FromResult(list); + } + /// + /// 根据箱号搜索 + /// + /// + /// + public async Task> GetEntityListByBoxBillNos(List boxBillNos) + { + var boxIds = await _context.Box.Where(w => boxBillNos.Contains(w.BoxBillNo)).Select(s => s.Id).ToListAsync(); + if (boxIds.Count() == 0) return new List(); + var res = await _context.OutStock + .Include(s => s.Details).ThenInclude(s => s.BoxsDetails) + .Where(f => f.Details.SelectMany(s=>s.BoxsDetails).Where(wb=> boxIds.Contains(wb.BoxId)).Any()).ToListAsync(); + + return res; + } } } diff --git a/src/WMS.Web.Repositories/OutStockTaskRepositories.cs b/src/WMS.Web.Repositories/OutStockTaskRepositories.cs index a6680b85..d6d9c144 100644 --- a/src/WMS.Web.Repositories/OutStockTaskRepositories.cs +++ b/src/WMS.Web.Repositories/OutStockTaskRepositories.cs @@ -34,9 +34,11 @@ namespace WMS.Web.Repositories private readonly IErpService _erpService; private readonly IErpBasicDataExtendService _erpBasicDataExtendService; private readonly ILogger _logger; + private readonly IOutStockRepositories _outStockRepositories; public OutStockTaskRepositories(RepositoryDbContext context, IMapper mapper, IServiceProvider serviceProvider, ISingleDataService singleDataService, ILoginRepositories loginRepositories, IErpService erpService, - IErpBasicDataExtendService erpBasicDataExtendService, ILogger logger) + IErpBasicDataExtendService erpBasicDataExtendService, ILogger logger, + IOutStockRepositories outStockRepositories) { _context = context; _mapper = mapper; @@ -46,6 +48,8 @@ namespace WMS.Web.Repositories _erpService = erpService; _erpBasicDataExtendService = erpBasicDataExtendService; _logger = logger; + _outStockRepositories = outStockRepositories; + } /// /// 新增 @@ -273,6 +277,19 @@ namespace WMS.Web.Repositories if (customer_result.IsSuccess) customers = customer_result.Data.ToList(); + List taskIds = new List(); + //序列码出库单 + if (dto.SerialNumbers.Count() > 0) + { + var res = await _outStockRepositories.GetEntityListBySerialNumbers(dto.SerialNumbers); + taskIds.AddRange(res.Select(s => s.TaskId)); + } + //箱号取出库单 + if (dto.BoxBillNos.Count() > 0) + { + var res = await _outStockRepositories.GetEntityListByBoxBillNos(dto.BoxBillNos); + taskIds.AddRange(res.Select(s => s.TaskId)); + } #endregion var query = _context.OutStockTaskDetails.Include(x => x.ErpDetails) @@ -315,6 +332,10 @@ namespace WMS.Web.Repositories DateTime dt_end = ((DateTime)dto.CreateEndDate).AddDays(1); query = query.Where(w => w.order.OperateTime <= dt_end); } + if (taskIds.Count() > 0) + { + query = query.Where(w => taskIds.Contains(w.order.Id)); + } //组装 int total = await query.CountAsync(); var list = await query.Select(s => new OutStockTaskQueryInfoResponse()