选装售后
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

AflVehicleTransferInfoFindPageHandler.java 4.4KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. package com.qtzl.alterSales.manager.handler;
  2. import cn.com.taiji.common.manager.net.http.ServiceHandleException;
  3. import com.google.common.collect.Lists;
  4. import com.qtzl.alterSales.dao.entity.second.AflVehicleTransferInfo;
  5. import com.qtzl.alterSales.dao.repo.jpa.second.AflVehicleTransferInfoRepo;
  6. import com.qtzl.alterSales.manager.abstracts.AbstractAfterSalesManager;
  7. import com.qtzl.alterSales.manager.model.protocol.UcServiceError;
  8. import com.qtzl.alterSales.manager.model.protocol.sales.AflVehicleScrapInfoPageRequest;
  9. import com.qtzl.alterSales.manager.model.protocol.sales.AflVehicleTransferInfoPageResponse;
  10. import com.qtzl.alterSales.manager.service.AfterSalesCmd;
  11. import com.txffp.api.core.manager.comm.annotation.ApiHandler;
  12. import org.apache.commons.lang3.StringUtils;
  13. import org.springframework.data.domain.Page;
  14. import org.springframework.data.domain.PageRequest;
  15. import org.springframework.data.domain.Sort;
  16. import org.springframework.stereotype.Service;
  17. import javax.annotation.Resource;
  18. import javax.persistence.criteria.Predicate;
  19. import java.time.LocalDateTime;
  20. import java.util.List;
  21. import java.util.stream.Collectors;
  22. /**
  23. * 车辆过户管理分页查询;
  24. * @author : zhangxin
  25. * @date : 2024-6-12
  26. */
  27. @Service
  28. @ApiHandler
  29. public class AflVehicleTransferInfoFindPageHandler extends AbstractAfterSalesManager<AflVehicleScrapInfoPageRequest> {
  30. @Resource
  31. AflVehicleTransferInfoRepo aflVehicleTransferInfoRepo;
  32. public AflVehicleTransferInfoFindPageHandler() {
  33. super(AfterSalesCmd.FINDPAGEVEHICLETRANSFER, AflVehicleScrapInfoPageRequest.class);
  34. }
  35. @Override
  36. public String handleInternal(String filename, AflVehicleScrapInfoPageRequest request) throws ServiceHandleException {
  37. try {
  38. Page<AflVehicleTransferInfo> page = select(request);
  39. return toResponse(page, request).toJson();
  40. } catch (Exception e) {
  41. if (e instanceof ServiceHandleException) {
  42. throw e;
  43. }
  44. logger.error("选装-查询车辆过户管理失败:{}", e.getMessage());
  45. throw UcServiceError.BUSINESS_VALIDATE_ERR.toHandleException("查询车辆过户管理失败");
  46. }
  47. }
  48. private AflVehicleTransferInfoPageResponse toResponse(Page<AflVehicleTransferInfo> page, AflVehicleScrapInfoPageRequest request) {
  49. final AflVehicleTransferInfoPageResponse response = new AflVehicleTransferInfoPageResponse();
  50. response.setCurrentPage(request.getPageNo());
  51. response.setPageSize(request.getPageSize());
  52. response.setPageCount(page.getTotalPages());
  53. response.setTotalCount(page.getTotalElements());
  54. if (isEmpty(page.getContent())) {
  55. response.setData(Lists.newArrayList());
  56. return response;
  57. }
  58. List<AflVehicleTransferInfo> formVoList = page.getContent().stream().collect(Collectors.toList());
  59. response.setData(formVoList);
  60. return response;
  61. }
  62. private Page<AflVehicleTransferInfo> select(AflVehicleScrapInfoPageRequest request) throws ServiceHandleException {
  63. if (request.getPageSize() > 100) {
  64. throw UcServiceError.BUSINESS_VALIDATE_ERR.toHandleException("请求每页数量过大 " + request.getPageSize());
  65. }
  66. return aflVehicleTransferInfoRepo.findAll(((root, query, cb) -> {
  67. List<Predicate> list = Lists.newArrayList();
  68. if (!StringUtils.isEmpty(request.getAccountId())) {
  69. list.add(cb.equal(root.<String>get("accountId"), request.getAccountId()));
  70. }
  71. if (!StringUtils.isEmpty(request.getPlateNum())) {
  72. list.add(cb.equal(root.get("plateNum"), request.getPlateNum()));
  73. }
  74. if (request.getPlateColor()!=null) {
  75. list.add(cb.equal(root.<Integer>get("plateColor"), request.getPlateColor()));
  76. }
  77. if (request.getInsertTimeEnd()!=null) {
  78. list.add(cb.lessThanOrEqualTo(root.<LocalDateTime>get("insertTime"), request.getInsertTimeEnd()));
  79. }
  80. if (request.getInsertTimeStart()!=null) {
  81. list.add(cb.greaterThanOrEqualTo(root.<LocalDateTime>get("insertTime"), request.getInsertTimeStart()));
  82. }
  83. Predicate[] p = new Predicate[list.size()];
  84. return cb.and(list.toArray(p));
  85. }), PageRequest.of(request.getPageNo() - 1, request.getPageSize(),
  86. Sort.by(Sort.Direction.DESC, "insertTime")));
  87. }
  88. }