BillInventoryReportService.cs 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. using Mapster;
  2. using SqlSugar;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. using wms.sqlsugar.model.cp;
  9. using WMS.BZModels;
  10. using WMS.BZModels.Dto.CP.BillInventoryReportDtos;
  11. using WMS.BZSqlSugar;
  12. using WMS.Info;
  13. namespace WMS.BZServices.CP
  14. {
  15. public class BillInventoryReportService
  16. {
  17. private readonly Repository<BillInventoryReport> _billInventoryReportRepository;
  18. public BillInventoryReportService(Repository<BillInventoryReport> billInventoryReportRepository)
  19. {
  20. _billInventoryReportRepository = billInventoryReportRepository;
  21. }
  22. public PagedInfo<BillInventoryReportDto> GetPageList(Pagination pagination, BillInventoryReportQueryDto billInvNowQueryDto)
  23. {
  24. ISugarQueryable<BillInventoryReport> sugarQueryable = GetQueryable(billInvNowQueryDto);
  25. var list = sugarQueryable. ToPage<BillInventoryReport, BillInventoryReportDto>(pagination);
  26. return list;
  27. }
  28. public IList<BillInventoryReportDto> GetList(BillInventoryReportQueryDto billInvNowQueryDto)
  29. {
  30. ISugarQueryable<BillInventoryReport> sugarQueryable = GetQueryable(billInvNowQueryDto);
  31. var list = sugarQueryable.ToList().Adapt<List<BillInventoryReportDto>>();
  32. return list;
  33. }
  34. private ISugarQueryable<BillInventoryReport> GetQueryable(BillInventoryReportQueryDto billInventoryReportQueryDto)
  35. {
  36. var predicate = Expressionable.Create<BillInventoryReport>();
  37. predicate = predicate.AndIF(!string.IsNullOrEmpty(billInventoryReportQueryDto?.KeyWord), m => m.DateMonth.Contains(billInventoryReportQueryDto.KeyWord));
  38. predicate = predicate.AndIF(!string.IsNullOrEmpty(billInventoryReportQueryDto?.DateMonth), m => m.DateMonth.Contains(billInventoryReportQueryDto.DateMonth));
  39. predicate = predicate.AndIF(billInventoryReportQueryDto != null && billInventoryReportQueryDto.StartTimeBegin.HasValue, m => m.StartTime >= billInventoryReportQueryDto.StartTimeBegin);
  40. predicate = predicate.AndIF(billInventoryReportQueryDto != null && billInventoryReportQueryDto.StartTimeEnd.HasValue, m => m.StartTime <= billInventoryReportQueryDto.StartTimeEnd);
  41. predicate = predicate.AndIF(billInventoryReportQueryDto != null && billInventoryReportQueryDto.EndTimeBegin.HasValue, m => m.EndTime >= billInventoryReportQueryDto.EndTimeBegin);
  42. predicate = predicate.AndIF(billInventoryReportQueryDto != null && billInventoryReportQueryDto.EndTimeEnd.HasValue, m => m.EndTime <= billInventoryReportQueryDto.EndTimeEnd);
  43. var sugarQueryable = _billInventoryReportRepository.Queryable().Where(predicate.ToExpression());
  44. return sugarQueryable;
  45. }
  46. }
  47. }