diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml index e5b83843..e50d7003 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml @@ -85,6 +85,101 @@ + + + 出入库回退-查询请求对象 + + + + + 箱号 + + + + + 仓位ID + + + + + 操作人 + + + + + 操作时间 + + + + + 操作时间 + + + + + 出入库回退-查询响应对象 + + + + + ID + + + + + 明细ID + + + + + 所属箱号ID + + + + + 类型:1为入库回退下架,2为出库回退上架 + + + + + 操作人 + + + + + 操作时间 + + + + + 物料名称 + + + + + 物料编码 + + + + + 物料规格型号 + + + + + 数量 + + + + + 仓位 + + + + + 序列号集 + + 改箱列表请求 diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml index 3e28250d..0bb5024b 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml @@ -915,6 +915,11 @@ + + + 生成单据号 + + wms盘点单明细 @@ -980,6 +985,18 @@ 备注 + + + 出入库回退记录-仓储接口 + + + + + 列表-分页 + + + + 基础数据 diff --git a/src/WMS.Web.Core/Dto/BackRecord/BackRecordQueryRequest.cs b/src/WMS.Web.Core/Dto/BackRecord/BackRecordQueryRequest.cs new file mode 100644 index 00000000..90f3c022 --- /dev/null +++ b/src/WMS.Web.Core/Dto/BackRecord/BackRecordQueryRequest.cs @@ -0,0 +1,35 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace WMS.Web.Core.Dto +{ + /// + /// 出入库回退-查询请求对象 + /// + public class BackRecordQueryRequest: PaginationBaseRequestDto + { + /// + /// 箱号 + /// + public string BoxBillNo { get; set; } + + /// + /// 仓位ID + /// + public int? SubStockId { get; set; } + + /// + /// 操作人 + /// + public string Creator { get; set; } + /// + /// 操作时间 + /// + public DateTime? CreateBeginDate { get; set; } = null; + /// + /// 操作时间 + /// + public DateTime? CreateEndDate { get; set; } = null; + } +} diff --git a/src/WMS.Web.Core/Dto/BackRecord/BackRecordQueryResponse.cs b/src/WMS.Web.Core/Dto/BackRecord/BackRecordQueryResponse.cs new file mode 100644 index 00000000..6b96c860 --- /dev/null +++ b/src/WMS.Web.Core/Dto/BackRecord/BackRecordQueryResponse.cs @@ -0,0 +1,65 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace WMS.Web.Core.Dto +{ + /// + /// 出入库回退-查询响应对象 + /// + public class BackRecordQueryResponse + { + /// + /// ID + /// + public int Id { get; set; } + + /// + /// 明细ID + /// + public int DetailsId { get; set; } + + /// + /// 所属箱号ID + /// + public string BoxBillNo { get; set; } + /// + /// 类型:1为入库回退下架,2为出库回退上架 + /// + public string Type { get; set; } + /// + /// 操作人 + /// + public string Creator { get; set; } + /// + /// 操作时间 + /// + public DateTime CreateTime { get; set; } + + /// + /// 物料名称 + /// + public string MaterialName { get; set; } + /// + /// 物料编码 + /// + public string MaterialNumber { get; set; } + /// + /// 物料规格型号 + /// + public string Specifications { get; set; } + /// + /// 数量 + /// + public decimal Qty { get; set; } + /// + /// 仓位 + /// + public string SubStock { get; set; } + + /// + /// 序列号集 + /// + public string SerialNumbers { get; set; } + } +} diff --git a/src/WMS.Web.Domain/Infrastructure/IBackRecordRepositories.cs b/src/WMS.Web.Domain/Infrastructure/IBackRecordRepositories.cs new file mode 100644 index 00000000..67067323 --- /dev/null +++ b/src/WMS.Web.Domain/Infrastructure/IBackRecordRepositories.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Threading.Tasks; +using WMS.Web.Core.Dto; +using WMS.Web.Core.Internal.Results; + +namespace WMS.Web.Domain.Infrastructure +{ + /// + /// 出入库回退记录-仓储接口 + /// + public interface IBackRecordRepositories + { + /// + /// 列表-分页 + /// + /// + /// + Task> GetPagedList(BackRecordQueryRequest dto); + } +} diff --git a/src/WMS.Web.Repositories/BackRecordRepositories.cs b/src/WMS.Web.Repositories/BackRecordRepositories.cs new file mode 100644 index 00000000..4fd40e0a --- /dev/null +++ b/src/WMS.Web.Repositories/BackRecordRepositories.cs @@ -0,0 +1,92 @@ +using AutoMapper; +using Microsoft.EntityFrameworkCore; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using WMS.Web.Core; +using WMS.Web.Core.Dto; +using WMS.Web.Core.Internal.Results; +using WMS.Web.Domain.Infrastructure; +using WMS.Web.Domain.IService.Public; +using WMS.Web.Repositories.Configuration; + +namespace WMS.Web.Repositories +{ + /// + /// 出入库回退记录-仓储 + /// + public class BackRecordRepositories: IBackRecordRepositories + { + private readonly IMapper _mapper; + private readonly IServiceProvider _serviceProvider; + private readonly ILoginRepositories _loginRepositories; + private readonly RepositoryDbContext _context; + private readonly ISingleDataService _singleDataService; + + + public BackRecordRepositories(RepositoryDbContext context, + IMapper mapper, + ILoginRepositories loginRepositories, + IServiceProvider serviceProvider, + ISingleDataService singleDataService) + { + _context = context; + _mapper = mapper; + _serviceProvider = serviceProvider; + _loginRepositories = loginRepositories; + _singleDataService = singleDataService; + } + + /// + /// 列表-分页 + /// + /// + /// + public async Task> GetPagedList(BackRecordQueryRequest dto) + { + var query = _context.BackRecordDetails + .GroupJoin(_context.BackRecord, detail => detail.Fid, order => order.Id, (detail, orders) => new { detail, orders }) + .SelectMany(x => x.orders.DefaultIfEmpty(), (p, order) => new { p.detail, order }) + .Where(adv => 1 == 1); + + //if (!string.IsNullOrEmpty(dto.BoxBillNo)) + // query = query.Where(w => EF.Functions.Like(w.order.BoxBillNo, "%" + dto.BoxBillNo + "%")); + + //if (!string.IsNullOrEmpty(dto.MaterialNumber)) + // query = query.Where(w => EF.Functions.Like(w.detail.BillNo, "%" + dto.BillNo + "%")); + + if (dto.SubStockId.HasValue) + query = query.Where(w => w.detail.SubStockId == dto.SubStockId.Value); + + if (dto.CreateBeginDate != null) + query = query.Where(w => w.order.CreateTime >= dto.CreateBeginDate.Value); + 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, + DetailsId = s.detail.Id, + BoxBillNo = "", + Type = s.order.Type.GetRemark(), + Creator = "", + CreateTime =s.order.CreateTime, + MaterialName = "", + MaterialNumber = "", + Specifications = "", + Qty = s.detail.Qty, + SubStock = "", + SerialNumbers = s.detail.SerialNumbers + }).OrderByDescending(x => x.Id).Skip((dto.PageNo - 1) * dto.PageSize).Take(dto.PageSize).ToListAsync(); + + response.Data = list; + return response; + } + } +} diff --git a/src/WMS.Web.Repositories/DependencyInjection/AppBuilderExtensions.cs b/src/WMS.Web.Repositories/DependencyInjection/AppBuilderExtensions.cs index 4c75ff7d..3fc1d8ad 100644 --- a/src/WMS.Web.Repositories/DependencyInjection/AppBuilderExtensions.cs +++ b/src/WMS.Web.Repositories/DependencyInjection/AppBuilderExtensions.cs @@ -38,6 +38,8 @@ namespace Microsoft.Extensions.DependencyInjection services.AddTransient(); services.AddTransient(); + services.AddTransient(); + services.AddTransient(); services.AddTransient(); diff --git a/src/WMS.Web.Repositories/InStockRepositories.cs b/src/WMS.Web.Repositories/InStockRepositories.cs index 5f298e6f..c0f8c258 100644 --- a/src/WMS.Web.Repositories/InStockRepositories.cs +++ b/src/WMS.Web.Repositories/InStockRepositories.cs @@ -29,7 +29,11 @@ namespace WMS.Web.Repositories private readonly ISingleDataService _singleDataService; - public InStockRepositories(RepositoryDbContext context, IMapper mapper, ILoginRepositories loginRepositories, IServiceProvider serviceProvider, ISingleDataService singleDataService) + public InStockRepositories(RepositoryDbContext context, + IMapper mapper, + ILoginRepositories loginRepositories, + IServiceProvider serviceProvider, + ISingleDataService singleDataService) { _context = context; _mapper = mapper;