Browse Source

永城修改车型搜索不出来的问题

bifrons 2 years ago
parent
commit
106e09a468

+ 69 - 35
src/main/java/com/ydtech/modules/order/service/impl/YongchengOrderApiServiceImpl.java

@@ -148,11 +148,24 @@ public class YongchengOrderApiServiceImpl implements YongchengOrderApiService {
         carModelReq.setEngineNo(carInfo.getEngineNo());
         carModelReq.setEnrollDate(carInfo.getRegisterDate().replace("-", ""));
         ModelsQueryXml m = buildModelsQueryParam(carModelReq, ycConfigureParameters);
-        ModelsQueryResponse rd;
+        ModelsQueryResponse rd = null;
+
+        boolean isUserModelName = false;
+
         try {
             rd = yongchengRequestApiComponents.newQueryVehicleTypes(m);
         } catch (IOException e) {
-            throw new SystemException("车型查询接口异常,请联系管理。");
+            isUserModelName = true;
+        }
+
+        // 使用ModelName 查询车型
+        if (isUserModelName) {
+            try {
+                m.getRequestLabel().setSearchKeyword(carInfo.getModelcname());
+                rd = yongchengRequestApiComponents.newQueryVehicleTypes(m);
+            } catch (IOException e) {
+                throw new SystemException("车型查询接口异常,请联系管理。");
+            }
         }
 
         if (CollUtil.isEmpty(rd.getVehicleInfoList())) {
@@ -161,7 +174,8 @@ public class YongchengOrderApiServiceImpl implements YongchengOrderApiService {
 
         //车辆年款不能超过注册日期
         List<ModelsQueryResponse.VehicleInfo> vehicleInfoList =
-                rd.getVehicleInfoList().stream().filter(a -> DateTimeUtil.dateIsAfter(carInfo.getRegisterDate(), a.getVehicleYear())).sorted(Comparator.comparing(ModelsQueryResponse.VehicleInfo::getVehiclePrice)).collect(Collectors.toList());
+                rd.getVehicleInfoList().stream().filter(a -> DateTimeUtil.dateIsAfter(carInfo.getRegisterDate(),
+                        a.getVehicleYear())).sorted(Comparator.comparing(ModelsQueryResponse.VehicleInfo::getVehiclePrice)).collect(Collectors.toList());
 
         //匹配的车辆信息数据  为空
         if (CollUtil.isEmpty(vehicleInfoList)) {
@@ -358,7 +372,8 @@ public class YongchengOrderApiServiceImpl implements YongchengOrderApiService {
     public boolean ciRepetitionInsure(RuoteResponse rr, Ruote m, List<String> requestInfoList) {
         String errorMsg = rr.getHead().getErrorMessage();
 
-        if (rr.getHead().getErrorCode().equals("009999") && errorMsg.contains("重复投保") && errorMsg.contains("机动车交通事故强制险")) {
+        if (rr.getHead().getErrorCode().equals("009999") && errorMsg.contains("重复投保") && errorMsg.contains(
+                "机动车交通事故强制险")) {
             requestInfoList.add(errorMsg);
             log.info("永诚API方式 - xml请求 ------------报价 ->   交强重复投保----------------");
 
@@ -366,7 +381,8 @@ public class YongchengOrderApiServiceImpl implements YongchengOrderApiService {
             if (!errorMsg.contains("终保日期")) {
                 throw new SystemException(errorMsg);
             }
-            String coverageEndDate = errorMsg.substring(errorMsg.indexOf("终保日期") + 5, errorMsg.indexOf("终保日期") + 5 + 16);
+            String coverageEndDate = errorMsg.substring(errorMsg.indexOf("终保日期") + 5,
+                    errorMsg.indexOf("终保日期") + 5 + 16);
 
             LocalDateTime start = DateTimeUtil.parseLocalDateTime(coverageEndDate, DateTimeUtil.DATETIME_PATTERN_EXT1);
             LocalDateTime end = start.plusYears(1L).minusDays(1L);
@@ -399,7 +415,8 @@ public class YongchengOrderApiServiceImpl implements YongchengOrderApiService {
      */
     public boolean commerceRepetitionInsure(RuoteResponse rr, Ruote m, List<String> requestInfoList) {
         String errorMsg = rr.getHead().getErrorMessage();
-        if (rr.getHead().getErrorCode().equals("009999") && errorMsg.contains("重复投保") && errorMsg.contains("机动车综合商业保险")) {
+        if (rr.getHead().getErrorCode().equals("009999") && errorMsg.contains("重复投保") && errorMsg.contains(
+                "机动车综合商业保险")) {
             requestInfoList.add(errorMsg);
             log.info("永诚API方式 - xml请求 ------------报价 ->   商业险重复投保----------------");
 
@@ -407,7 +424,8 @@ public class YongchengOrderApiServiceImpl implements YongchengOrderApiService {
             if (!errorMsg.contains("保险止期")) {
                 throw new SystemException(errorMsg);
             }
-            String coverageEndDate = errorMsg.substring(errorMsg.indexOf("保险止期") + 6, errorMsg.indexOf("保险止期") + 6 + 19);
+            String coverageEndDate = errorMsg.substring(errorMsg.indexOf("保险止期") + 6,
+                    errorMsg.indexOf("保险止期") + 6 + 19);
             LocalDateTime start;
 
             if (coverageEndDate.contains("23:59:59")) {
@@ -456,7 +474,8 @@ public class YongchengOrderApiServiceImpl implements YongchengOrderApiService {
             //终保日期
             String coverageEndDate = ciMsg.substring(ciMsg.indexOf("终保日期") + 5, ciMsg.indexOf("终保日期") + 5 + 12);
 
-            LocalDateTime start = DateTimeUtil.parseLocalDateTime(coverageEndDate, DateTimeUtil.UNSIGNED_DATETIME_PATTERN_EXT1);
+            LocalDateTime start = DateTimeUtil.parseLocalDateTime(coverageEndDate,
+                    DateTimeUtil.UNSIGNED_DATETIME_PATTERN_EXT1);
             LocalDateTime end = start.plusYears(1L).minusDays(1L);
 
             String newStartDate = DateTimeUtil.getStartTimeOfDayStr(start, DateTimeUtil.DATETIME_PATTERN);
@@ -639,7 +658,8 @@ public class YongchengOrderApiServiceImpl implements YongchengOrderApiService {
         insTaskImages.forEach(a -> {
             //组装参数
             //接口请求
-            ImageUp iUp = ImageUp.buildImageUpParam(order, ycConfigureParameters, a.getBase64String(), a.getImageType());
+            ImageUp iUp = ImageUp.buildImageUpParam(order, ycConfigureParameters, a.getBase64String(),
+                    a.getImageType());
             try {
                 ImageUpResponse imageUpResponse = yongchengRequestApiComponents.newImageUp(iUp);
             } catch (JsonProcessingException e) {
@@ -664,7 +684,8 @@ public class YongchengOrderApiServiceImpl implements YongchengOrderApiService {
             // 获取协议配置信息
             YcConfigureParameters ycConfigureParameters = gainYcConfigParams(iac.getAgreementId());
             //组装参数
-            Pay pay = Pay.buildPayParam(iac, ycConfigureParameters.gainAuthorityDataXml(), apiComponents.getPayCallBack());
+            Pay pay = Pay.buildPayParam(iac, ycConfigureParameters.gainAuthorityDataXml(),
+                    apiComponents.getPayCallBack());
             //接口请求
             PayResponse payResp = yongchengRequestApiComponents.newGetPayNo(pay);
 
@@ -700,7 +721,8 @@ public class YongchengOrderApiServiceImpl implements YongchengOrderApiService {
         //0 支付回调 1核保回调 5直接返回字符串信息
         String type = "5";
         //组装参数
-        CallbackAnOrder o = CallbackAnOrder.buildCallbackAnOrderParam(iac, ycConfigureParameters.gainAuthorityDataXml(), type);
+        CallbackAnOrder o = CallbackAnOrder.buildCallbackAnOrderParam(iac,
+                ycConfigureParameters.gainAuthorityDataXml(), type);
 
         //接口请求
         try {
@@ -725,7 +747,8 @@ public class YongchengOrderApiServiceImpl implements YongchengOrderApiService {
                         DrivingInsuranceDto drivingInsuranceDto = new DrivingInsuranceDto();
                         drivingInsuranceDto.setPolicyNumber(param.getYwPolicyNo());
                         drivingInsuranceDto.setApplicationNumber(param.getYwPolicyAppNo());
-                        JSONArray objects = JSON.parseArray(JSON.toJSONString(Collections.singletonList(drivingInsuranceDto)));
+                        JSONArray objects =
+                                JSON.parseArray(JSON.toJSONString(Collections.singletonList(drivingInsuranceDto)));
                         iac.setCrossInsurance(objects);
                     }
 
@@ -747,7 +770,8 @@ public class YongchengOrderApiServiceImpl implements YongchengOrderApiService {
 
             } else {
                 //失败原因
-                log.info(String.format("永诚API方式 - 补传回调 - 失败,交强保单号:{} ,商业保单号:{},类型:{}", param.getCiPolicyNo(), param.getBizPolicyNo(),
+                log.info(String.format("永诚API方式 - 补传回调 - 失败,交强保单号:{} ,商业保单号:{},类型:{}", param.getCiPolicyNo(),
+                        param.getBizPolicyNo(),
                         param.getType()));
                 return HttpResult.error(param.getMessage());
             }
@@ -850,7 +874,8 @@ public class YongchengOrderApiServiceImpl implements YongchengOrderApiService {
                     cipDto.setJyUrl(jyUrl);
                 }
 
-                return HttpResult.ok(pResp.getHead().getResponseCompleteMessageStatus().getMessageStatusDescription(), cipDto);
+                return HttpResult.ok(pResp.getHead().getResponseCompleteMessageStatus().getMessageStatusDescription()
+                        , cipDto);
 
             } else {
                 throw new SystemException(pResp.getHead().getResponseCompleteMessageStatus().getMessageStatusDescription());
@@ -954,7 +979,8 @@ public class YongchengOrderApiServiceImpl implements YongchengOrderApiService {
 
         //将insAttachInsureList存入redis
         if (!insAttachInsureList.isEmpty()) {
-            redisTemplate.opsForValue().set(redisKey.toString(), JSON.toJSONString(insAttachInsureList), YC_ACCIDENTAL_DRIVING_TIME,
+            redisTemplate.opsForValue().set(redisKey.toString(), JSON.toJSONString(insAttachInsureList),
+                    YC_ACCIDENTAL_DRIVING_TIME,
                     TimeUnit.DAYS);
         }
 
@@ -977,7 +1003,8 @@ public class YongchengOrderApiServiceImpl implements YongchengOrderApiService {
         if (!Objects.isNull(redisTemplate.opsForValue().get(redisKey.toString()))) {
             String redisValue = String.valueOf(redisTemplate.opsForValue().get(redisKey.toString()));
             if (StringUtils.isNotEmpty(redisValue)) {
-                List<EsmInsAttachInsureDetails> esmInsAttachInsureDetails = JSON.parseArray(redisValue, EsmInsAttachInsureDetails.class);
+                List<EsmInsAttachInsureDetails> esmInsAttachInsureDetails = JSON.parseArray(redisValue,
+                        EsmInsAttachInsureDetails.class);
                 return HttpResult.ok(esmInsAttachInsureDetails);
             }
         }
@@ -1000,7 +1027,8 @@ public class YongchengOrderApiServiceImpl implements YongchengOrderApiService {
 
         //将esmInsAttachInsureDetails存入redis
         if (!esmInsAttachInsureDetails.isEmpty()) {
-            redisTemplate.opsForValue().set(redisKey.toString(), JSON.toJSONString(esmInsAttachInsureDetails), YC_ACCIDENTAL_DRIVING_TIME
+            redisTemplate.opsForValue().set(redisKey.toString(), JSON.toJSONString(esmInsAttachInsureDetails),
+                    YC_ACCIDENTAL_DRIVING_TIME
                     , TimeUnit.DAYS);
         }
         return HttpResult.ok(esmInsAttachInsureDetails);
@@ -1106,9 +1134,11 @@ public class YongchengOrderApiServiceImpl implements YongchengOrderApiService {
         if (param.getResult().equals("0")) {
             LambdaQueryWrapper<InsAreaCompany> lqw = new LambdaQueryWrapper<>();
             //交强投保单号查询
-            lqw.eq(StringUtils.isNotEmpty(param.getCiPolicyAppNo()), InsAreaCompany::getJqapplyno, param.getCiPolicyAppNo());
+            lqw.eq(StringUtils.isNotEmpty(param.getCiPolicyAppNo()), InsAreaCompany::getJqapplyno,
+                    param.getCiPolicyAppNo());
             //商业投保单号查询
-            lqw.eq(StringUtils.isNotEmpty(param.getBizPolicyAppNo()), InsAreaCompany::getSyapplyno, param.getBizPolicyAppNo());
+            lqw.eq(StringUtils.isNotEmpty(param.getBizPolicyAppNo()), InsAreaCompany::getSyapplyno,
+                    param.getBizPolicyAppNo());
             InsAreaCompany iac = insAreaCompanyService.getOne(lqw);
 
             if (null != iac) {
@@ -1130,13 +1160,15 @@ public class YongchengOrderApiServiceImpl implements YongchengOrderApiService {
 
                 //支付后 手工确认意外险
             } else {
-                log.info(String.format("永诚API方式 - 回调 - 信息,订单不存在,交强保单号:{} ,商业保单号:{}", param.getCiPolicyNo(), param.getBizPolicyNo()));
+                log.info(String.format("永诚API方式 - 回调 - 信息,订单不存在,交强保单号:{} ,商业保单号:{}", param.getCiPolicyNo(),
+                        param.getBizPolicyNo()));
             }
 
         } else {
             //失败原因
             param.getMessage();
-            log.info(String.format("永诚API方式 - 回调 - 失败,交强保单号:{} ,商业保单号:{},类型:{}", param.getCiPolicyNo(), param.getBizPolicyNo(),
+            log.info(String.format("永诚API方式 - 回调 - 失败,交强保单号:{} ,商业保单号:{},类型:{}", param.getCiPolicyNo(),
+                    param.getBizPolicyNo(),
                     param.getType()));
         }
         return HttpResult.ok(param);
@@ -1148,7 +1180,8 @@ public class YongchengOrderApiServiceImpl implements YongchengOrderApiService {
      * @author: lig
      * @date: 2023年02月08日 0008
      */
-    private ModelsQueryXml buildModelsQueryParam(CarModel_Req carModelReq, YcConfigureParameters ycConfigureParameters) {
+    private ModelsQueryXml buildModelsQueryParam(CarModel_Req carModelReq,
+                                                 YcConfigureParameters ycConfigureParameters) {
         ModelsQueryXml m = new ModelsQueryXml();
         ModelsQueryXml.RequestLabel requestLabel = new ModelsQueryXml.RequestLabel();
         requestLabel.setSearchKeyword(carModelReq.getFrameNo().substring(0, 8));
@@ -1333,25 +1366,25 @@ public class YongchengOrderApiServiceImpl implements YongchengOrderApiService {
         }
 
         //如果地区查不到 用城市当地区查
-        if (null == areaList || areaList.size() < 1) {
+        if (null == areaList || areaList.isEmpty()) {
             LambdaQueryWrapper<InsAlltrustRegion> cityLqw = new LambdaQueryWrapper<>();
             cityLqw.eq(InsAlltrustRegion::getArea, city);
             areaList = insAlltrustRegionMapper.selectList(cityLqw);
         }
         //如果地区查不到 用城市当地区查
-        if (null == areaList || areaList.size() < 1) {
+        if (null == areaList || areaList.isEmpty()) {
             LambdaQueryWrapper<InsAlltrustRegion> cityLqw = new LambdaQueryWrapper<>();
             cityLqw.eq(InsAlltrustRegion::getArea, city);
             areaList = insAlltrustRegionMapper.selectList(cityLqw);
         }
         //如果地区查不到 查市
-        if (null == areaList || areaList.size() < 1) {
+        if (null == areaList || areaList.isEmpty()) {
             LambdaQueryWrapper<InsAlltrustRegion> cityLqw = new LambdaQueryWrapper<>();
             cityLqw.eq(InsAlltrustRegion::getCity, city);
             areaList = insAlltrustRegionMapper.selectList(cityLqw);
         }
 
-        if (null != areaList && areaList.size() > 0) {
+        if (null != areaList && !areaList.isEmpty()) {
             rMap.put("provinceCode", areaList.get(0).getProvinceCode());
             rMap.put("cityCode", areaList.get(0).getCityCode());
             rMap.put("areaCode", areaList.get(0).getAreaCode());
@@ -1389,22 +1422,23 @@ public class YongchengOrderApiServiceImpl implements YongchengOrderApiService {
         PersonAreaVo applicantPersonAreaVo;
 
         //车主是否与投保人相同
-        if(owner.getIdentifyNumber().equals(insured.getIdentifyNumber())){
+        if (owner.getIdentifyNumber().equals(insured.getIdentifyNumber())) {
             insuredPersonAreaVo = ownerPersonAreaVo;
-        }else{
+        } else {
             //投保人地区信息
             insuredPersonAreaVo = sysAreaService.queryByAddress(insured.getAddr(), insured.getIdentifyNumber());
         }
 
         //车主是否与被保人相同
-        if(owner.getIdentifyNumber().equals(applicant.getIdentifyNumber())) {
+        if (owner.getIdentifyNumber().equals(applicant.getIdentifyNumber())) {
             applicantPersonAreaVo = ownerPersonAreaVo;
-        }else  //投保人是否与被保人相同
-        if(insured.getIdentifyNumber().equals(applicant.getIdentifyNumber())) {
-            applicantPersonAreaVo = insuredPersonAreaVo;
-        }else{
-            applicantPersonAreaVo = sysAreaService.queryByAddress(applicant.getAddr(), applicant.getIdentifyNumber());
-        }
+        } else  //投保人是否与被保人相同
+            if (insured.getIdentifyNumber().equals(applicant.getIdentifyNumber())) {
+                applicantPersonAreaVo = insuredPersonAreaVo;
+            } else {
+                applicantPersonAreaVo = sysAreaService.queryByAddress(applicant.getAddr(),
+                        applicant.getIdentifyNumber());
+            }
 
         if (!Objects.isNull(ownerPersonAreaVo)) {
             ownerProvinceData.add(ownerPersonAreaVo.getCountyCode().toString());