PushInfoService.cs 3.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. using SqlSugar;
  2. using wms.sqlsugar.model.pt;
  3. using WMS.BZModels;
  4. using WMS.BZModels.Dto.PT.PushInfoDtos;
  5. using WMS.Info;
  6. using WMS.BZSqlSugar;
  7. namespace WMS.BZServices.PT
  8. {
  9. public class PushInfoService
  10. {
  11. private readonly Repository<BillPushinfo> _pushinforepository;
  12. public PushInfoService(Repository<BillPushinfo> pushinforepository)
  13. {
  14. _pushinforepository = pushinforepository;
  15. }
  16. public PagedInfo<PushInfoDto> GetPageList(Pagination pagination, PushInfoQueryDto pushinfoQueryDto)
  17. {
  18. var predicate = Expressionable.Create<BillPushinfo>();
  19. switch (pushinfoQueryDto.Type)
  20. {
  21. case 0:
  22. pushinfoQueryDto.Code = PtFackbeekType.InterfaceType_PT_PurchaseStockIn.ToString();
  23. break;
  24. case 1:
  25. pushinfoQueryDto.Code = PtFackbeekType.InterfaceType_PT_PurchaseBack.ToString();
  26. break;
  27. case 2:
  28. pushinfoQueryDto.Code = PtFackbeekType.InterfaceType_PT_AnewStockIn.ToString();
  29. break;
  30. case 3:
  31. pushinfoQueryDto.Code = PtFackbeekType.StateTrans.ToString();
  32. break;
  33. case 4:
  34. pushinfoQueryDto.Code = PtFackbeekType.PickMat.ToString();
  35. break;
  36. case 5:
  37. pushinfoQueryDto.Code = PtFackbeekType.ReturnMat.ToString();
  38. break;
  39. default:
  40. break;
  41. }
  42. predicate = predicate.AndIF(!string.IsNullOrEmpty(pushinfoQueryDto?.KeyWord), m => m.DocsNo.Contains(pushinfoQueryDto.KeyWord) || m.RFIDBarCode.Contains(pushinfoQueryDto.KeyWord)
  43. || m.WareCellCode.Contains(pushinfoQueryDto.KeyWord) || m.MatCode.Contains(pushinfoQueryDto.KeyWord) || m.MatName.Contains(pushinfoQueryDto.KeyWord) || m.CLBarCode.Contains(pushinfoQueryDto.KeyWord));
  44. predicate = predicate.AndIF(!string.IsNullOrEmpty(pushinfoQueryDto?.DocsNo), m => m.DocsNo.Contains(pushinfoQueryDto.DocsNo));
  45. predicate = predicate.AndIF(!string.IsNullOrEmpty(pushinfoQueryDto?.RFIDBarCode), m => m.RFIDBarCode.Contains(pushinfoQueryDto.RFIDBarCode));
  46. predicate = predicate.AndIF(!string.IsNullOrEmpty(pushinfoQueryDto?.WareCellCode), m => m.WareCellCode.Contains(pushinfoQueryDto.WareCellCode));
  47. predicate = predicate.AndIF(!string.IsNullOrEmpty(pushinfoQueryDto?.MatCode), m => m.MatCode.Contains(pushinfoQueryDto.MatCode));
  48. predicate = predicate.AndIF(!string.IsNullOrEmpty(pushinfoQueryDto?.MatName), m => m.MatName.Contains(pushinfoQueryDto.MatName));
  49. predicate = predicate.AndIF(!string.IsNullOrEmpty(pushinfoQueryDto?.CLBarCode), m => m.CLBarCode.Contains(pushinfoQueryDto.CLBarCode));
  50. predicate = predicate.AndIF(!string.IsNullOrEmpty(pushinfoQueryDto?.Code), m => m.TypeCode.Contains(pushinfoQueryDto.Code));
  51. predicate = predicate.AndIF(pushinfoQueryDto != null && pushinfoQueryDto.AddTimeFrom.HasValue, m => m.AddTime >= pushinfoQueryDto.AddTimeFrom);
  52. predicate = predicate.AndIF(pushinfoQueryDto != null && pushinfoQueryDto.AddTimeTo.HasValue, m => m.AddTime <= pushinfoQueryDto.AddTimeTo);
  53. predicate = predicate.AndIF(pushinfoQueryDto != null && pushinfoQueryDto.EndTimeBegin.HasValue, m => m.EditTime >= pushinfoQueryDto.EndTimeBegin);
  54. predicate = predicate.AndIF(pushinfoQueryDto != null && pushinfoQueryDto.EndTimeEnd.HasValue, m => m.EditTime <= pushinfoQueryDto.EndTimeEnd);
  55. var query = _pushinforepository.Queryable().Where(predicate.ToExpression())
  56. .ToPage<BillPushinfo, PushInfoDto>(pagination);
  57. return query;
  58. }
  59. }
  60. }