入库单创建人条件查询优化

This commit is contained in:
tongfei
2024-01-27 09:12:26 +08:00
parent e5c725ae20
commit 99d7364b13

View File

@@ -27,7 +27,7 @@ namespace WMS.Web.Repositories
/// <summary> /// <summary>
/// wms入库单-仓储 /// wms入库单-仓储
/// </summary> /// </summary>
public class InStockRepositories: IAllFielRepositories<InStockQueryRequest>, IInStockRepositories public class InStockRepositories : IAllFielRepositories<InStockQueryRequest>, IInStockRepositories
{ {
private readonly IMapper _mapper; private readonly IMapper _mapper;
private readonly IServiceProvider _serviceProvider; private readonly IServiceProvider _serviceProvider;
@@ -36,25 +36,28 @@ namespace WMS.Web.Repositories
private readonly ISingleDataService _singleDataService; private readonly ISingleDataService _singleDataService;
private readonly IErpService _erpService; private readonly IErpService _erpService;
private readonly IErpBasicDataExtendService _erpBasicDataExtendService; private readonly IErpBasicDataExtendService _erpBasicDataExtendService;
private readonly IBasicsRepositories _basicsRepositories;
public InStockRepositories(RepositoryDbContext context, public InStockRepositories(RepositoryDbContext context,
IMapper mapper, IMapper mapper,
IErpService erpService, IErpService erpService,
ILoginRepositories loginRepositories, ILoginRepositories loginRepositories,
IServiceProvider serviceProvider, IServiceProvider serviceProvider,
ISingleDataService singleDataService, ISingleDataService singleDataService,
IErpBasicDataExtendService erpBasicDataExtendService) IBasicsRepositories basicsRepositories,
IErpBasicDataExtendService erpBasicDataExtendService)
{ {
_context = context; _context = context;
_mapper = mapper; _mapper = mapper;
_erpService = erpService; _erpService = erpService;
_basicsRepositories = basicsRepositories;
_serviceProvider = serviceProvider; _serviceProvider = serviceProvider;
_loginRepositories = loginRepositories; _loginRepositories = loginRepositories;
_singleDataService = singleDataService; _singleDataService = singleDataService;
_erpBasicDataExtendService = erpBasicDataExtendService; _erpBasicDataExtendService = erpBasicDataExtendService;
} }
/// <summary> /// <summary>
/// 箱是否存在于入库单明细中;(箱是否被上架了) /// 箱是否存在于入库单明细中;(箱是否被上架了)
@@ -176,7 +179,7 @@ namespace WMS.Web.Repositories
{ {
var model = await _context.Instock var model = await _context.Instock
.Include(s => s.Details) .Include(s => s.Details)
.Include(s=>s.ErpDetails) .Include(s => s.ErpDetails)
.FirstOrDefaultAsync(f => f.Id == entity.Id); .FirstOrDefaultAsync(f => f.Id == entity.Id);
if (model == null) if (model == null)
return null; return null;
@@ -282,6 +285,16 @@ namespace WMS.Web.Repositories
if (!string.IsNullOrEmpty(dto.MaterialNumber)) if (!string.IsNullOrEmpty(dto.MaterialNumber))
materials = materials.Where(w => w.MaterialNumber.Contains(dto.MaterialNumber)).ToList(); materials = materials.Where(w => w.MaterialNumber.Contains(dto.MaterialNumber)).ToList();
if (companyId == 0)
companyId = _loginRepositories.CompanyId;
List<int> cr_ids = new List<int>();
if (!string.IsNullOrEmpty(dto.Creator))
{
var staffList = await _basicsRepositories.GetStaffListAsync(companyId);
if (staffList != null)
cr_ids = staffList.Where(w => w.Name.Contains(dto.Creator)).Select(s => s.Id).ToList();
}
var query = _context.InStockTotalDetails var query = _context.InStockTotalDetails
.GroupJoin(_context.Instock, detail => detail.InStockId, order => order.Id, (detail, orders) => new { detail, orders }) .GroupJoin(_context.Instock, detail => detail.InStockId, order => order.Id, (detail, orders) => new { detail, orders })
.SelectMany(x => x.orders.DefaultIfEmpty(), (p, order) => new { p.detail, order }) .SelectMany(x => x.orders.DefaultIfEmpty(), (p, order) => new { p.detail, order })
@@ -302,6 +315,9 @@ namespace WMS.Web.Repositories
query = query.Where(w => w.detail.MaterialId == 0); query = query.Where(w => w.detail.MaterialId == 0);
} }
if (cr_ids.Count!=0)
query = query.Where(w => cr_ids.Contains(w.order.CreatorId));
if (dto.SupplierId.HasValue) if (dto.SupplierId.HasValue)
query = query.Where(w => w.detail.SupplierId == dto.SupplierId.Value); query = query.Where(w => w.detail.SupplierId == dto.SupplierId.Value);
@@ -351,8 +367,8 @@ namespace WMS.Web.Repositories
Qty = s.detail.Qty, Qty = s.detail.Qty,
Creator = _singleDataService.GetSingleData(SingleAction.Staffs, companyId, s.order.CreatorId), Creator = _singleDataService.GetSingleData(SingleAction.Staffs, companyId, s.order.CreatorId),
CreateTime = s.order.CreateTime.ToString("yyyy-MM-dd HH:mm:ss"), CreateTime = s.order.CreateTime.ToString("yyyy-MM-dd HH:mm:ss"),
SuccessSync = s.order.Type!= InstockType.Purchase?"--":(s.order.SuccessSync == SyncStatus.Success ? "成功" : (s.order.SuccessSync == SyncStatus.SyncIng ? "同步中" : "失败")), SuccessSync = s.order.Type != InstockType.Purchase ? "--" : (s.order.SuccessSync == SyncStatus.Success ? "成功" : (s.order.SuccessSync == SyncStatus.SyncIng ? "同步中" : "失败")),
Remark=s.order.Remark Remark = s.order.Remark
}).OrderByDescending(x => x.Id).Skip((dto.PageNo - 1) * dto.PageSize).Take(dto.PageSize).ToListAsync(); }).OrderByDescending(x => x.Id).Skip((dto.PageNo - 1) * dto.PageSize).Take(dto.PageSize).ToListAsync();
return (list, total); return (list, total);