选装售后
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.

VehicleInfoServiceImpl.java 8.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. package com.qtzl.alterSales.manager.service;
  2. import cn.com.taiji.common.manager.ManagerException;
  3. import cn.com.taiji.common.manager.net.http.ServiceHandleException;
  4. import cn.hutool.core.bean.BeanUtil;
  5. import com.alibaba.fastjson.JSONObject;
  6. import com.qtzl.alterSales.dao.entity.primary.AflBindVehicleInfo;
  7. import com.qtzl.alterSales.dao.entity.second.AflCenterObuInfo;
  8. import com.qtzl.alterSales.dao.entity.second.AflCenterVehicleInfo;
  9. import com.qtzl.alterSales.dao.entity.second.AflDeviceCallback;
  10. import com.qtzl.alterSales.dao.repo.jpa.primary.AflBindVehicleInfoRepo;
  11. import com.qtzl.alterSales.dao.repo.jpa.second.AflCenterCardInfoRepo;
  12. import com.qtzl.alterSales.dao.repo.jpa.second.AflCenterObuInfoRepo;
  13. import com.qtzl.alterSales.dao.repo.jpa.second.AflCenterVehicleInfoRepo;
  14. import com.qtzl.alterSales.dao.repo.jpa.second.AflDeviceCallbackRepo;
  15. import com.qtzl.alterSales.manager.model.protocol.UcServiceError;
  16. import com.qtzl.alterSales.manager.model.protocol.sales.VehicleInfoFindByVehicleRequest;
  17. import com.qtzl.alterSales.manager.vo.AflCenterBlackInfoImplVo;
  18. import com.qtzl.alterSales.manager.vo.FindByVehicleVo;
  19. import com.qtzl.alterSales.zt.enums.ZttxInterfaceCode;
  20. import com.qtzl.alterSales.zt.utils.ZtHttpResponse;
  21. import com.qtzl.alterSales.zt.utils.ZtHttpUtil;
  22. import com.qtzl.alterSales.zt.vo.FindByVehicleIdRequestVo;
  23. import com.qtzl.alterSales.zt.vo.FindByVehicleIdResponse;
  24. import org.apache.commons.lang3.StringUtils;
  25. import org.springframework.beans.factory.annotation.Autowired;
  26. import org.springframework.stereotype.Service;
  27. import javax.annotation.Resource;
  28. import java.util.Map;
  29. @Service
  30. public class VehicleInfoServiceImpl implements VehicleInfoService {
  31. @Resource
  32. AflBindVehicleInfoRepo aflBindVehicleInfoRepo;
  33. @Resource
  34. AflCenterCardInfoRepo aflCenterCardInfoRepo;
  35. @Resource
  36. AflCenterObuInfoRepo aflCenterObuInfoRepo;
  37. @Resource
  38. AflDeviceCallbackRepo aflDeviceCallbackRepo;
  39. @Resource
  40. AflCenterVehicleInfoRepo aflCenterVehicleInfoRepo;
  41. @Autowired
  42. private ZtHttpUtil httpUtil;
  43. @Resource
  44. private AflCenterBlackInfoService aflCenterBlackInfoService;
  45. @Override
  46. public FindByVehicleVo findByVehicle(VehicleInfoFindByVehicleRequest request) throws ServiceHandleException {
  47. FindByVehicleVo findByVehicleVo = new FindByVehicleVo();
  48. AflBindVehicleInfo aflBindVehicleInfo = aflBindVehicleInfoRepo.findByPlateNumAndPlateColor(request.getPlateNum(), request.getPlateColor());
  49. if (aflBindVehicleInfo == null) {
  50. AflCenterVehicleInfo aflCenterVehicleInfo = aflCenterVehicleInfoRepo.findByPlateNumAndPlateColor(request.getPlateNum(), request.getPlateColor());
  51. if (aflCenterVehicleInfo != null) {
  52. BeanUtil.copyProperties(aflCenterVehicleInfo, findByVehicleVo);
  53. findByVehicleVo.setDriverName(aflCenterVehicleInfo.getOwnerName());
  54. } else {
  55. findByVehicleVo = null;
  56. }
  57. } else {
  58. BeanUtil.copyProperties(aflBindVehicleInfo, findByVehicleVo);
  59. }
  60. if (findByVehicleVo != null && findByVehicleVo.getVehicleId() != null) {
  61. AflDeviceCallback aflDeviceCallback = aflDeviceCallbackRepo.findByVehicleId(findByVehicleVo.getVehicleId());
  62. if (aflDeviceCallback == null) {
  63. String cardId = aflCenterCardInfoRepo.findByVehicleId(findByVehicleVo.getVehicleId());
  64. if (!StringUtils.isEmpty(cardId)) {
  65. findByVehicleVo.setCardId(cardId);
  66. }
  67. AflCenterObuInfo aflCenterObuInfo = aflCenterObuInfoRepo.findByVehicleId(findByVehicleVo.getVehicleId());
  68. if (aflCenterObuInfo != null) {
  69. findByVehicleVo.setObuId(aflCenterObuInfo.getObuId());
  70. // findByVehicleVo.setEnableTime(aflCenterObuInfo.getEnableTime());
  71. if (aflCenterObuInfo.getEnableTime().indexOf('T') != -1) {
  72. findByVehicleVo.setEnableTime(aflCenterObuInfo.getEnableTime().substring(0, aflCenterObuInfo.getEnableTime().indexOf('T')));
  73. } else {
  74. findByVehicleVo.setEnableTime(aflCenterObuInfo.getEnableTime());
  75. }
  76. findByVehicleVo.setExpireTime(aflCenterObuInfo.getExpireTime());
  77. }
  78. } else if (StringUtils.isEmpty(aflDeviceCallback.getCpuId())) {
  79. String cardId = aflCenterCardInfoRepo.findByVehicleId(findByVehicleVo.getVehicleId());
  80. if (!StringUtils.isEmpty(cardId)) {
  81. findByVehicleVo.setCardId(cardId);
  82. }
  83. } else if (StringUtils.isEmpty(aflDeviceCallback.getObuId())) {
  84. AflCenterObuInfo aflCenterObuInfo = aflCenterObuInfoRepo.findByVehicleId(findByVehicleVo.getVehicleId());
  85. if (aflCenterObuInfo != null) {
  86. findByVehicleVo.setObuId(aflCenterObuInfo.getObuId());
  87. if (aflCenterObuInfo.getEnableTime().indexOf('T') != -1) {
  88. findByVehicleVo.setEnableTime(aflCenterObuInfo.getEnableTime().substring(0, aflCenterObuInfo.getEnableTime().indexOf('T')));
  89. } else {
  90. findByVehicleVo.setEnableTime(aflCenterObuInfo.getEnableTime());
  91. }
  92. // findByVehicleVo.setEnableTime(aflCenterObuInfo.getEnableTime());
  93. findByVehicleVo.setExpireTime(aflCenterObuInfo.getExpireTime());
  94. }
  95. } else {
  96. findByVehicleVo.setCardId(aflDeviceCallback.getCpuId());
  97. findByVehicleVo.setObuId(aflDeviceCallback.getObuId());
  98. if (!StringUtils.isEmpty(aflDeviceCallback.getEnableTime())) {
  99. if (aflDeviceCallback.getEnableTime().indexOf('T') != -1) {
  100. findByVehicleVo.setEnableTime(aflDeviceCallback.getEnableTime().substring(0, aflDeviceCallback.getEnableTime().indexOf('T')));
  101. } else {
  102. findByVehicleVo.setEnableTime(aflDeviceCallback.getEnableTime());
  103. }
  104. }
  105. findByVehicleVo.setExpireTime(aflDeviceCallback.getExpireTime());
  106. }
  107. if (!StringUtils.isEmpty(findByVehicleVo.getCardId()) && !StringUtils.isEmpty(findByVehicleVo.getObuId())) {
  108. AflCenterBlackInfoImplVo aflCenterBlackInfoImplVo = null;
  109. try {
  110. aflCenterBlackInfoImplVo = aflCenterBlackInfoService.queryDeviceStatus(findByVehicleVo.getObuId(), findByVehicleVo.getCardId());
  111. } catch (ServiceHandleException e) {
  112. throw UcServiceError.BUSINESS_VALIDATE_ERR.toHandleException(e.getMessage());
  113. }
  114. if (aflCenterBlackInfoImplVo != null) {
  115. findByVehicleVo.setBlack(aflCenterBlackInfoImplVo.getBlack());
  116. }
  117. }
  118. if (findByVehicleVo != null && !StringUtils.isEmpty(findByVehicleVo.getVehicleId())) {
  119. if (StringUtils.isEmpty(findByVehicleVo.getCardId()) || StringUtils.isEmpty(findByVehicleVo.getObuId())) {
  120. FindByVehicleIdRequestVo findByVehicleRequestVo = new FindByVehicleIdRequestVo();
  121. BeanUtil.copyProperties(findByVehicleVo, findByVehicleRequestVo);
  122. if (StringUtils.isEmpty(findByVehicleRequestVo.getVehicleId())){
  123. throw UcServiceError.BUSINESS_VALIDATE_ERR.toHandleException("根据车辆编号查询卡签信息失败,请求参数车辆编号不能为空");
  124. }
  125. Map<String, String> requestParam = findByVehicleRequestVo.getRequestParam();
  126. ZtHttpResponse response = null;
  127. try {
  128. response = httpUtil.doPost(ZttxInterfaceCode.XZ_FINDBYVEHICLEID_VEHICLE_INFO, requestParam);
  129. } catch (ManagerException e) {
  130. throw UcServiceError.BUSINESS_VALIDATE_ERR.toHandleException(e.getMessage());
  131. }
  132. if (response != null && response.getRcode() == 0) {
  133. try {
  134. FindByVehicleIdResponse res = JSONObject.parseObject(response.getData(), FindByVehicleIdResponse.class);
  135. findByVehicleVo.setObuId(res.getObuId());
  136. findByVehicleVo.setEnableTime(res.getEnableTime());
  137. findByVehicleVo.setExpireTime(res.getExpireTime());
  138. findByVehicleVo.setCardId(res.getCpuId());
  139. } catch (Exception e) {
  140. throw UcServiceError.BUSINESS_VALIDATE_ERR.toHandleException("返回数据解析异常");
  141. }
  142. }
  143. }
  144. }
  145. }
  146. return findByVehicleVo;
  147. }
  148. }