From a98ecfff21e3b106d077e894295cbfac29cf9e83 Mon Sep 17 00:00:00 2001 From: tongfei <244188119@qq.com> Date: Wed, 15 Nov 2023 16:35:05 +0800 Subject: [PATCH] =?UTF-8?q?=E5=87=BA=E5=85=A5=E5=BA=93=E5=9B=9E=E9=80=80?= =?UTF-8?q?=E5=AF=BC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/BackRecordController.cs | 40 +++++++++++++++++-- src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml | 7 ++++ src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml | 18 +++++++++ .../Infrastructure/IBackRecordRepositories.cs | 2 +- .../Values/FileDownLoadOrderType.cs | 5 +++ .../BackRecordRepositories.cs | 24 +++++++---- .../AppBuilderExtensions.cs | 1 + 7 files changed, 85 insertions(+), 12 deletions(-) diff --git a/src/WMS.Web.Api/Controllers/BackRecordController.cs b/src/WMS.Web.Api/Controllers/BackRecordController.cs index e092a915..82790b8c 100644 --- a/src/WMS.Web.Api/Controllers/BackRecordController.cs +++ b/src/WMS.Web.Api/Controllers/BackRecordController.cs @@ -1,15 +1,19 @@ using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.Options; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; +using WMS.Web.Core; using WMS.Web.Core.Dto; using WMS.Web.Core.Dto.BackRecord; +using WMS.Web.Core.Help; using WMS.Web.Core.Internal.Results; using WMS.Web.Domain.Infrastructure; using WMS.Web.Domain.IService; using WMS.Web.Domain.IService.Public; +using WMS.Web.Domain.Options; using WMS.Web.Domain.Values; namespace WMS.Web.Api.Controllers @@ -22,10 +26,17 @@ namespace WMS.Web.Api.Controllers public class BackRecordController : ControllerBase { private readonly ILoginService _loginService; + private readonly QiniuOptions _option; + private readonly IExportExcelService _exportExcelService; private readonly IBackRecordService _backRecordService; private readonly IBackRecordRepositories _backRecordRepositories; - public BackRecordController(ILoginService loginService, IBackRecordRepositories backRecordRepositories, IBackRecordService backRecordService) + public BackRecordController(ILoginService loginService, + IOptions option, + IExportExcelService exportExcelService, + IBackRecordRepositories backRecordRepositories, IBackRecordService backRecordService) { + _option = option?.Value; + this._exportExcelService = exportExcelService; this._loginService = loginService; this._backRecordService = backRecordService; this._backRecordRepositories = backRecordRepositories; @@ -43,8 +54,31 @@ namespace WMS.Web.Api.Controllers 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 _backRecordRepositories.GetPagedList(dto); - return result; + var (list,total) = await _backRecordRepositories.GetPagedList(dto); + return ResultPagedList.ReSuccess(list, total); + } + + /// + /// 导出 + /// + /// + /// + [HttpPost] + [Route("Export")] + public Task> Export([FromBody] BackRecordQueryRequest dto) + { + var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]); + if (loginInfo == null) + return Task.FromResult(Result.ReFailure(ResultCodes.Token_Invalid_Error)); + string fileName = FileDownLoadOrderType.BackRecord.GetRemark() + loginInfo.UserInfo.CompanyId + DateTime.Now.DateTimeToLongTimeStamp() + ".xlsx"; + string res = _option.Url + fileName; + + Task.Run(async () => + { + await _exportExcelService.ExportList(dto, fileName, loginInfo.UserInfo.StaffId, loginInfo.UserInfo.CompanyId, FileDownLoadOrderType.OutStock); + }); + + return Task.FromResult(Result.ReSuccess(res)); } /// diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml index ef9748ca..79d0062e 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml @@ -16,6 +16,13 @@ + + + 导出 + + + + 出库回退上架-pda diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml index 125ad751..5b3f58a4 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml @@ -481,6 +481,11 @@ 同步时间 + + + 备注 + + 明细 @@ -492,6 +497,14 @@ + + + 同步金蝶 + + + + + 生成单据号 @@ -4238,6 +4251,11 @@ 箱库存明细 + + + 出入库回退上下架 + + 入库状态 diff --git a/src/WMS.Web.Domain/Infrastructure/IBackRecordRepositories.cs b/src/WMS.Web.Domain/Infrastructure/IBackRecordRepositories.cs index 52613288..f1001522 100644 --- a/src/WMS.Web.Domain/Infrastructure/IBackRecordRepositories.cs +++ b/src/WMS.Web.Domain/Infrastructure/IBackRecordRepositories.cs @@ -18,7 +18,7 @@ namespace WMS.Web.Domain.Infrastructure /// /// /// - Task> GetPagedList(BackRecordQueryRequest dto); + Task<(List list, int total)> GetPagedList(BackRecordQueryRequest dto); /// /// 新增 diff --git a/src/WMS.Web.Domain/Values/FileDownLoadOrderType.cs b/src/WMS.Web.Domain/Values/FileDownLoadOrderType.cs index 7cd176e2..c947b840 100644 --- a/src/WMS.Web.Domain/Values/FileDownLoadOrderType.cs +++ b/src/WMS.Web.Domain/Values/FileDownLoadOrderType.cs @@ -60,5 +60,10 @@ namespace WMS.Web.Domain.Values /// [EnumRemark("箱库存明细")] BoxInventoryDetails = 10, + /// + /// 出入库回退上下架 + /// + [EnumRemark("出入库回退上下架")] + BackRecord = 11, } } diff --git a/src/WMS.Web.Repositories/BackRecordRepositories.cs b/src/WMS.Web.Repositories/BackRecordRepositories.cs index 50ebacca..82b83c81 100644 --- a/src/WMS.Web.Repositories/BackRecordRepositories.cs +++ b/src/WMS.Web.Repositories/BackRecordRepositories.cs @@ -21,7 +21,7 @@ namespace WMS.Web.Repositories /// /// 出入库回退记录-仓储 /// - public class BackRecordRepositories: IBackRecordRepositories + public class BackRecordRepositories : IAllFielRepositories, IBackRecordRepositories { private readonly IMapper _mapper; private readonly IServiceProvider _serviceProvider; @@ -46,6 +46,7 @@ namespace WMS.Web.Repositories _serviceProvider = serviceProvider; _loginRepositories = loginRepositories; _singleDataService = singleDataService; + _erpBasicDataExtendService = erpBasicDataExtendService; } /// @@ -53,12 +54,12 @@ namespace WMS.Web.Repositories /// /// /// - public async Task> GetPagedList(BackRecordQueryRequest dto) + public async Task<(List list,int total)> GetPagedList(BackRecordQueryRequest dto) { //1.获取物料集合和组织集合和供应商的集合 var materials_result = await _erpService.BillQueryForMaterial(); if (!materials_result.IsSuccess) - return ResultPagedList.ReFailure(materials_result); + return (new List(), 0); var materials = materials_result.Data.ToList(); var query = _context.BackRecordDetails @@ -74,10 +75,7 @@ namespace WMS.Web.Repositories if (dto.CreateEndDate != null) query = query.Where(w => w.order.CreateTime <= dto.CreateEndDate.Value); - var response = new ResultPagedList(); int total = await query.CountAsync(); - response.TotalCount = total; - var list = await query.Select(s => new BackRecordQueryResponse() { Id = s.order.Id, @@ -95,8 +93,7 @@ namespace WMS.Web.Repositories SerialNumbers = JsonConvert.SerializeObject(s.detail.SerialNumbers), }).OrderByDescending(x => x.Id).Skip((dto.PageNo - 1) * dto.PageSize).Take(dto.PageSize).ToListAsync(); - response.Data = list; - return response; + return (list,total); } /// @@ -132,5 +129,16 @@ namespace WMS.Web.Repositories } } + + /// + /// 导出 + /// + /// + /// + /// + public async Task<(object obj, int total)> GetListField(BackRecordQueryRequest dto, int companyId) + { + return await GetPagedList(dto); + } } } diff --git a/src/WMS.Web.Repositories/DependencyInjection/AppBuilderExtensions.cs b/src/WMS.Web.Repositories/DependencyInjection/AppBuilderExtensions.cs index 2067becb..9949db50 100644 --- a/src/WMS.Web.Repositories/DependencyInjection/AppBuilderExtensions.cs +++ b/src/WMS.Web.Repositories/DependencyInjection/AppBuilderExtensions.cs @@ -56,6 +56,7 @@ namespace Microsoft.Extensions.DependencyInjection services.AddTransient, InventoryDetailsRepositories>(); services.AddTransient, InventoryInOutDetailsRepositories>(); services.AddTransient, BoxInventoryRepositories>(); + services.AddTransient, BackRecordRepositories>(); #endregion