|
|
@@ -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());
|