选装售后
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

AflPlateChangeQueryHandler.java 4.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  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.AflPlateChange;
  5. import com.qtzl.alterSales.dao.repo.jpa.second.AflPlateChangeRepo;
  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.AflPlateChangeQueryRequest;
  9. import com.qtzl.alterSales.manager.model.protocol.sales.AflPlateChangeQueryResponse;
  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.util.ArrayList;
  20. import java.util.List;
  21. @Service
  22. @ApiHandler
  23. public class AflPlateChangeQueryHandler extends AbstractAfterSalesManager<AflPlateChangeQueryRequest> {
  24. @Resource
  25. AflPlateChangeRepo aflPlateChangeRepo;
  26. public AflPlateChangeQueryHandler() {
  27. super(AfterSalesCmd.PLATECHANGEQUERY, AflPlateChangeQueryRequest.class);
  28. }
  29. @Override
  30. public String handleInternal(String filename, AflPlateChangeQueryRequest request) throws Exception {
  31. try {
  32. Page<AflPlateChange> page = select(request);
  33. return toResponse(page, request).toJson();
  34. } catch (Exception e) {
  35. if (e instanceof ServiceHandleException) {
  36. throw e;
  37. }
  38. logger.error("选装-车辆变更信息查询失败:{}", e.getMessage());
  39. throw UcServiceError.BUSINESS_VALIDATE_ERR.toHandleException("车辆变更信息查询失败");
  40. }
  41. }
  42. private AflPlateChangeQueryResponse toResponse(Page<AflPlateChange> page, AflPlateChangeQueryRequest request) {
  43. final AflPlateChangeQueryResponse response = new AflPlateChangeQueryResponse();
  44. response.setCurrentPage(request.getPageNo());
  45. response.setPageSize(request.getPageSize());
  46. response.setPageCount(page.getTotalPages());
  47. response.setTotalCount(page.getTotalElements());
  48. if (isEmpty(page.getContent())) {
  49. response.setData(Lists.newArrayList());
  50. return response;
  51. }
  52. List<AflPlateChange> formVoList = new ArrayList<>(page.getContent());
  53. response.setData(formVoList);
  54. return response;
  55. }
  56. private Page<AflPlateChange> select(AflPlateChangeQueryRequest request) throws ServiceHandleException {
  57. if (request.getPageSize() > 100) {
  58. throw UcServiceError.BUSINESS_VALIDATE_ERR.toHandleException("请求每页数量过大 " + request.getPageSize());
  59. }
  60. return aflPlateChangeRepo.findAll(((root, query, cb) -> {
  61. List<Predicate> list = Lists.newArrayList();
  62. if (!StringUtils.isEmpty(request.getPlateNum())) {
  63. list.add(cb.equal(root.get("plateNum"), request.getPlateNum()));
  64. }
  65. if (request.getPlateColor() != null) {
  66. list.add(cb.equal(root.<Integer>get("plateColor"), request.getPlateColor()));
  67. }
  68. if (request.getAgentId() != null) {
  69. list.add(cb.equal(root.<Integer>get("agentId"), request.getAgentId()));
  70. }
  71. if (request.getAfterPlateNum() != null) {
  72. list.add(cb.equal(root.<Integer>get("afterPlateNum"), request.getAfterPlateNum()));
  73. }
  74. if (request.getAfterPlateColor() != null) {
  75. list.add(cb.equal(root.<Integer>get("afterPlateColor"), request.getAfterPlateColor()));
  76. }
  77. Predicate[] p = new Predicate[list.size()];
  78. return cb.and(list.toArray(p));
  79. }), PageRequest.of(request.getPageNo() - 1, request.getPageSize(),
  80. Sort.by(Sort.Direction.DESC, "insertTime")));
  81. }
  82. }