diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml index ab32c894..b235486a 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml @@ -95,6 +95,11 @@ 箱号 + + + 操作类型:1为入库回退下架,2为出库回退上架 + + 仓位ID diff --git a/src/WMS.Web.Core/Dto/BackRecord/BackRecordQueryRequest.cs b/src/WMS.Web.Core/Dto/BackRecord/BackRecordQueryRequest.cs index 90f3c022..a85608dc 100644 --- a/src/WMS.Web.Core/Dto/BackRecord/BackRecordQueryRequest.cs +++ b/src/WMS.Web.Core/Dto/BackRecord/BackRecordQueryRequest.cs @@ -14,6 +14,11 @@ namespace WMS.Web.Core.Dto /// public string BoxBillNo { get; set; } + /// + /// 操作类型:1为入库回退下架,2为出库回退上架 + /// + public int? Type { get; set; } + /// /// 仓位ID /// diff --git a/src/WMS.Web.Repositories/BackRecordRepositories.cs b/src/WMS.Web.Repositories/BackRecordRepositories.cs index 39c1f86d..fb74292d 100644 --- a/src/WMS.Web.Repositories/BackRecordRepositories.cs +++ b/src/WMS.Web.Repositories/BackRecordRepositories.cs @@ -26,6 +26,7 @@ namespace WMS.Web.Repositories private readonly IMapper _mapper; private readonly IServiceProvider _serviceProvider; private readonly ILoginRepositories _loginRepositories; + private readonly IBasicsRepositories _basicsRepositories; private readonly RepositoryDbContext _context; private readonly IErpService _erpService; private readonly ISingleDataService _singleDataService; @@ -35,6 +36,7 @@ namespace WMS.Web.Repositories public BackRecordRepositories(RepositoryDbContext context, IMapper mapper, IErpService erpService, + IBasicsRepositories basicsRepositories, ILoginRepositories loginRepositories, IServiceProvider serviceProvider, ISingleDataService singleDataService, @@ -43,6 +45,7 @@ namespace WMS.Web.Repositories _erpService = erpService; _context = context; _mapper = mapper; + _basicsRepositories = basicsRepositories; _serviceProvider = serviceProvider; _loginRepositories = loginRepositories; _singleDataService = singleDataService; @@ -68,6 +71,13 @@ namespace WMS.Web.Repositories return (new List(), 0); var orgs = orgs_result.Data.ToList(); + List ids = new List(); + if (!string.IsNullOrEmpty(dto.Creator)) + { + var staffList = await _basicsRepositories.GetStaffListAsync(_loginRepositories.CompanyId); + ids = staffList.Where(w =>w.Name.Contains(dto.Creator)).Select(s => s.Id).ToList(); + } + 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 }) @@ -77,7 +87,13 @@ namespace WMS.Web.Repositories if (dto.SubStockId.HasValue) query = query.Where(w => w.detail.SubStockId == dto.SubStockId.Value); - + + if(dto.Type.HasValue) + query = query.Where(w => (int)w.order.Type == dto.Type.Value); + + if (ids.Count() > 0) + query = query.Where(w => ids.Contains(w.order.CreatorId)); + if (dto.CreateBeginDate != null) query = query.Where(w => w.order.CreateTime >= dto.CreateBeginDate.Value); if (dto.CreateEndDate != null) diff --git a/src/WMS.Web.Repositories/InStockTaskRepositories.cs b/src/WMS.Web.Repositories/InStockTaskRepositories.cs index 9c4c5b5e..54d98a43 100644 --- a/src/WMS.Web.Repositories/InStockTaskRepositories.cs +++ b/src/WMS.Web.Repositories/InStockTaskRepositories.cs @@ -31,6 +31,7 @@ namespace WMS.Web.Repositories private readonly IServiceProvider _serviceProvider; private readonly RepositoryDbContext _context; private readonly ISingleDataService _singleDataService; + private readonly IBasicsRepositories _basicsRepositories; private readonly ILoginRepositories _loginRepositories; private readonly IErpService _erpService; private readonly IErpBasicDataExtendService _erpBasicDataExtendService; @@ -39,6 +40,7 @@ namespace WMS.Web.Repositories public InStockTaskRepositories(RepositoryDbContext context, IMapper mapper, IErpService erpService, + IBasicsRepositories basicsRepositories, IServiceProvider serviceProvider, ISingleDataService singleDataService, ILoginRepositories loginRepositories, @@ -47,6 +49,7 @@ namespace WMS.Web.Repositories _context = context; _mapper = mapper; _erpService = erpService; + _basicsRepositories = basicsRepositories; _serviceProvider = serviceProvider; _singleDataService = singleDataService; _loginRepositories = loginRepositories; @@ -77,6 +80,15 @@ namespace WMS.Web.Repositories return (new List(), 0); var suppliers = suppliers_result.Data.ToList(); + List ids_Receiver = new List(); + List ids_Operator = new List(); + if (!string.IsNullOrEmpty(dto.Receiver) || !string.IsNullOrEmpty(dto.Operator)) + { + var staffList = await _basicsRepositories.GetStaffListAsync(_loginRepositories.CompanyId); + ids_Receiver = staffList.Where(w => w.Name.Contains(dto.Receiver)).Select(s => s.Id).ToList(); + ids_Operator = staffList.Where(w => w.Name.Contains(dto.Operator)).Select(s => s.Id).ToList(); + } + //物料集合;模糊查询后的物料集合 if (!string.IsNullOrEmpty(dto.MaterialNumber)) materials = materials.Where(w => w.MaterialNumber.Contains(dto.MaterialNumber)).ToList(); @@ -96,6 +108,10 @@ namespace WMS.Web.Repositories query = query.Where(w => mids.Contains(w.detail.MaterialId)); } + if (ids_Receiver.Count() > 0) + query = query.Where(w => ids_Receiver.Contains(w.order.ReceiverId??0)); + if (ids_Operator.Count() > 0) + query = query.Where(w => ids_Operator.Contains(w.order.ShelferId??0)); if (dto.SupplierId.HasValue) query = query.Where(w => w.detail.SupplierId == dto.SupplierId.Value); @@ -142,6 +158,7 @@ namespace WMS.Web.Repositories Shelfer = s.order.ShelferId.HasValue ? _singleDataService.GetSingleData(SingleAction.Staffs, _loginRepositories.CompanyId, s.order.ShelferId.Value) : "", ShelfTime = s.order.ShelfTime.HasValue ? s.order.ShelfTime.Value.ToString("yyyy-MM-dd HH:mm:ss") : "", CreateTime = s.order.CreateTime.ToString("yyyy-MM-dd HH:mm:ss"), + Remark=s.detail.Remark, }).OrderByDescending(x => x.Id).Skip((dto.PageNo - 1) * dto.PageSize).Take(dto.PageSize).ToListAsync(); return (list, total);