|
@@ -8,6 +8,7 @@ import cn.hutool.core.map.MapUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import cn.hutool.crypto.digest.DigestUtil;
|
|
import cn.hutool.crypto.digest.DigestUtil;
|
|
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
|
|
import com.jzg.commons.constants.ProductsType;
|
|
import com.jzg.commons.constants.ProductsType;
|
|
|
import com.jzg.commons.constants.dict.InsOrderStatusEnum;
|
|
import com.jzg.commons.constants.dict.InsOrderStatusEnum;
|
|
@@ -64,6 +65,7 @@ public class HengBangCrawlerRequestImpl implements HengBangCrawlerRequest {
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 登录
|
|
* 登录
|
|
|
|
|
+ *
|
|
|
* @param loginBase 登录信息
|
|
* @param loginBase 登录信息
|
|
|
*/
|
|
*/
|
|
|
@Override
|
|
@Override
|
|
@@ -73,6 +75,7 @@ public class HengBangCrawlerRequestImpl implements HengBangCrawlerRequest {
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 报价
|
|
* 报价
|
|
|
|
|
+ *
|
|
|
* @param quoteVo 报价实体
|
|
* @param quoteVo 报价实体
|
|
|
* @return 报价信息
|
|
* @return 报价信息
|
|
|
*/
|
|
*/
|
|
@@ -90,7 +93,7 @@ public class HengBangCrawlerRequestImpl implements HengBangCrawlerRequest {
|
|
|
CarInfoVo carInfoVo = quoteVo.getCarInfoVo();
|
|
CarInfoVo carInfoVo = quoteVo.getCarInfoVo();
|
|
|
// 2.2 获取行业车型信息
|
|
// 2.2 获取行业车型信息
|
|
|
HbCrawlerQueryCarInfoRequest queryCarInfoRequest = new HbCrawlerQueryCarInfoRequest(carInfoVo, userInfoResponse);
|
|
HbCrawlerQueryCarInfoRequest queryCarInfoRequest = new HbCrawlerQueryCarInfoRequest(carInfoVo, userInfoResponse);
|
|
|
- HbCrawlerQueryCarRequest.CbitDataDTO cbitDataDTO = hbCrawlerRequestComponent.queryCarInfo(queryCarInfoRequest,headers);
|
|
|
|
|
|
|
+ HbCrawlerQueryCarRequest.CbitDataDTO cbitDataDTO = hbCrawlerRequestComponent.queryCarInfo(queryCarInfoRequest, headers);
|
|
|
// 2.3 车型查询
|
|
// 2.3 车型查询
|
|
|
HbCrawlerQueryCarRequest hbCrawlerQueryCarRequest = new HbCrawlerQueryCarRequest(cbitDataDTO);
|
|
HbCrawlerQueryCarRequest hbCrawlerQueryCarRequest = new HbCrawlerQueryCarRequest(cbitDataDTO);
|
|
|
List<HbCrawlerQueryCarResponse.ContentDTO> contentDTOS = hbCrawlerRequestComponent.queryCar(hbCrawlerQueryCarRequest, headers);
|
|
List<HbCrawlerQueryCarResponse.ContentDTO> contentDTOS = hbCrawlerRequestComponent.queryCar(hbCrawlerQueryCarRequest, headers);
|
|
@@ -106,7 +109,7 @@ public class HengBangCrawlerRequestImpl implements HengBangCrawlerRequest {
|
|
|
throw new SystemException(e.getMessage());
|
|
throw new SystemException(e.getMessage());
|
|
|
}
|
|
}
|
|
|
// 4.0 获取折旧价
|
|
// 4.0 获取折旧价
|
|
|
- HbCrawlerDepreciationRequest depreciationRequest = new HbCrawlerDepreciationRequest(quoteVo,contentDTO);
|
|
|
|
|
|
|
+ HbCrawlerDepreciationRequest depreciationRequest = new HbCrawlerDepreciationRequest(quoteVo, contentDTO);
|
|
|
String depreciationPrice = hbCrawlerRequestComponent.getDepreciationPrice(depreciationRequest, headers);
|
|
String depreciationPrice = hbCrawlerRequestComponent.getDepreciationPrice(depreciationRequest, headers);
|
|
|
|
|
|
|
|
// 5.0 报价第一步,提交基础数据,返回订单号
|
|
// 5.0 报价第一步,提交基础数据,返回订单号
|
|
@@ -116,22 +119,45 @@ public class HengBangCrawlerRequestImpl implements HengBangCrawlerRequest {
|
|
|
HbCrawlerCalculationRequest calculationRequest = new HbCrawlerCalculationRequest(quoteVo, plyappno);
|
|
HbCrawlerCalculationRequest calculationRequest = new HbCrawlerCalculationRequest(quoteVo, plyappno);
|
|
|
// 非车信息匹配核心
|
|
// 非车信息匹配核心
|
|
|
matchingAccident(quoteVo, headers, plyappno, calculationRequest);
|
|
matchingAccident(quoteVo, headers, plyappno, calculationRequest);
|
|
|
- String calculationResult = hbCrawlerRequestComponent.getCalculationResult(calculationRequest, headers);
|
|
|
|
|
|
|
+ String resJson = hbCrawlerRequestComponent.getCalculationResult(calculationRequest, headers);
|
|
|
|
|
+ String errorMsg = JSONObject.parseObject(resJson).getString("message");
|
|
|
|
|
+ String status = JSONObject.parseObject(resJson).getString("status");
|
|
|
|
|
+
|
|
|
HbCrawlerProposalResponse proposalResponse = null;
|
|
HbCrawlerProposalResponse proposalResponse = null;
|
|
|
// 脱保情况 重新赋值核心建议起保时间 二次报价
|
|
// 脱保情况 重新赋值核心建议起保时间 二次报价
|
|
|
- if(calculationResult.contains("脱保")){
|
|
|
|
|
|
|
+ if (errorMsg.contains("脱保")) {
|
|
|
|
|
+ calculationRequest.setOutofwarrantytype("N");
|
|
|
|
|
+ resJson = hbCrawlerRequestComponent.getCalculationResult(calculationRequest, headers);
|
|
|
|
|
+ errorMsg = JSONObject.parseObject(resJson).getString("message");
|
|
|
|
|
+ status = JSONObject.parseObject(resJson).getString("status");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if (errorMsg.contains("该车是转保车,请输入对应的转保验证码")) {
|
|
|
|
|
+ JSONObject resJsonObj = JSONObject.parseObject(resJson);
|
|
|
|
|
+ String responseBody = resJsonObj.getString("responseBody");
|
|
|
|
|
+ HbCrawlerRecordResponse recordResponse = JSONObject.parseObject(responseBody, HbCrawlerRecordResponse.class);
|
|
|
calculationRequest.setOutofwarrantytype("N");
|
|
calculationRequest.setOutofwarrantytype("N");
|
|
|
- calculationResult = hbCrawlerRequestComponent.getCalculationResult(calculationRequest, headers);
|
|
|
|
|
- // 重复投保 重新赋值核心建议起保时间 二次报价
|
|
|
|
|
- } else if(calculationResult.contains("重复投保")){
|
|
|
|
|
- String time = extractDuplicateEndTime(calculationResult);
|
|
|
|
|
|
|
+ calculationRequest.setTransferVehicle(recordResponse);
|
|
|
|
|
+
|
|
|
|
|
+ resJson = hbCrawlerRequestComponent.getCalculationResult(calculationRequest, headers);
|
|
|
|
|
+ errorMsg = JSONObject.parseObject(resJson).getString("message");
|
|
|
|
|
+ status = JSONObject.parseObject(resJson).getString("status");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if (errorMsg.contains("重复投保")) {
|
|
|
|
|
+ String time = extractDuplicateEndTime(errorMsg);
|
|
|
if (time != null) {
|
|
if (time != null) {
|
|
|
calculationRequest.setBegintimeCi(time);
|
|
calculationRequest.setBegintimeCi(time);
|
|
|
calculationRequest.setBegintimeBi(time);
|
|
calculationRequest.setBegintimeBi(time);
|
|
|
}
|
|
}
|
|
|
- calculationResult = hbCrawlerRequestComponent.getCalculationResult(calculationRequest, headers);
|
|
|
|
|
|
|
+
|
|
|
|
|
+ resJson = hbCrawlerRequestComponent.getCalculationResult(calculationRequest, headers);
|
|
|
|
|
+ errorMsg = JSONObject.parseObject(resJson).getString("message");
|
|
|
|
|
+ status = JSONObject.parseObject(resJson).getString("status");
|
|
|
}
|
|
}
|
|
|
- if(calculationResult.equals("成功")){
|
|
|
|
|
|
|
+
|
|
|
|
|
+ if (errorMsg.equals("成功") || status.equals("9")) {
|
|
|
|
|
+ errorMsg = "成功";
|
|
|
// 5.2 报价第三步,获取报价数据
|
|
// 5.2 报价第三步,获取报价数据
|
|
|
proposalResponse = hbCrawlerRequestComponent.proposal(plyappno, headers);
|
|
proposalResponse = hbCrawlerRequestComponent.proposal(plyappno, headers);
|
|
|
HbCrawlerOrder hbCrawlerOrder = new HbCrawlerOrder();
|
|
HbCrawlerOrder hbCrawlerOrder = new HbCrawlerOrder();
|
|
@@ -139,18 +165,18 @@ public class HengBangCrawlerRequestImpl implements HengBangCrawlerRequest {
|
|
|
hbCrawlerOrder.setPlyappno(plyappno);
|
|
hbCrawlerOrder.setPlyappno(plyappno);
|
|
|
hbCrawlerOrderService.save(hbCrawlerOrder);
|
|
hbCrawlerOrderService.save(hbCrawlerOrder);
|
|
|
}
|
|
}
|
|
|
- return HbCrawlerQuoteResultVoBuild.build(quoteVo, proposalResponse, calculationResult);
|
|
|
|
|
|
|
+ return HbCrawlerQuoteResultVoBuild.build(quoteVo, proposalResponse, errorMsg);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 注释
|
|
* 注释
|
|
|
|
|
+ *
|
|
|
* @param quoteVo
|
|
* @param quoteVo
|
|
|
* @param headers
|
|
* @param headers
|
|
|
* @param plyappno
|
|
* @param plyappno
|
|
|
* @param calculationRequest
|
|
* @param calculationRequest
|
|
|
*/
|
|
*/
|
|
|
- private void matchingAccident(final QuoteVo quoteVo, final HttpHeaders headers,
|
|
|
|
|
- final String plyappno, final HbCrawlerCalculationRequest calculationRequest) {
|
|
|
|
|
|
|
+ private void matchingAccident(final QuoteVo quoteVo, final HttpHeaders headers, final String plyappno, final HbCrawlerCalculationRequest calculationRequest) {
|
|
|
if (quoteVo.getAccidentalDrivings() == null) {
|
|
if (quoteVo.getAccidentalDrivings() == null) {
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
@@ -164,17 +190,16 @@ public class HengBangCrawlerRequestImpl implements HengBangCrawlerRequest {
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
List<Object> accidnentList = new ArrayList<>();
|
|
List<Object> accidnentList = new ArrayList<>();
|
|
|
- quoteVo.getAccidentalDrivings().stream()
|
|
|
|
|
- .filter(e -> StrUtil.isNotEmpty(e.getProductCode()))
|
|
|
|
|
- .filter(e -> ObjectUtil.isNull(contentMap.get(e.getProductCode().trim())))
|
|
|
|
|
- .forEach(accidnentList::add);
|
|
|
|
|
|
|
+ quoteVo.getAccidentalDrivings().stream().filter(e -> StrUtil.isNotEmpty(e.getProductCode())).filter(e -> ObjectUtil.isNull(contentMap.get(e.getProductCode().trim()))).forEach(accidnentList::add);
|
|
|
calculationRequest.setAccidentInsuranceList(accidnentList);
|
|
calculationRequest.setAccidentInsuranceList(accidnentList);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// 重复投保提取时间
|
|
// 重复投保提取时间
|
|
|
private static final Pattern DUPLICATE_END_TIME_PATTERN = Pattern.compile("终保日期 (\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2})");
|
|
private static final Pattern DUPLICATE_END_TIME_PATTERN = Pattern.compile("终保日期 (\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2})");
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 提取系统自动分配的起保时间
|
|
* 提取系统自动分配的起保时间
|
|
|
|
|
+ *
|
|
|
* @param calculationResult 核心提示
|
|
* @param calculationResult 核心提示
|
|
|
* @return 提取到的时间字符串,未提取到返回 null
|
|
* @return 提取到的时间字符串,未提取到返回 null
|
|
|
*/
|
|
*/
|
|
@@ -187,9 +212,19 @@ public class HengBangCrawlerRequestImpl implements HengBangCrawlerRequest {
|
|
|
return null;
|
|
return null;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 获取当前时间2小时以后的时间
|
|
|
|
|
+ *
|
|
|
|
|
+ * @return 2小时后的时间字符串,格式为 yyyy-MM-dd HH:mm:ss
|
|
|
|
|
+ */
|
|
|
|
|
+ private String getTimeTwoHoursLater() {
|
|
|
|
|
+ return LocalDateTime.now().plusHours(2).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 提交核保 子订单
|
|
* 提交核保 子订单
|
|
|
|
|
+ *
|
|
|
* @param underwritingVo
|
|
* @param underwritingVo
|
|
|
*/
|
|
*/
|
|
|
@Override
|
|
@Override
|
|
@@ -199,38 +234,38 @@ public class HengBangCrawlerRequestImpl implements HengBangCrawlerRequest {
|
|
|
HbCrawlerOrder hbCrawlerOrder = hbCrawlerOrderService.findByOrdersNo(underwritingVo.getOrder().getOrdersNo());
|
|
HbCrawlerOrder hbCrawlerOrder = hbCrawlerOrderService.findByOrdersNo(underwritingVo.getOrder().getOrdersNo());
|
|
|
String productCode = underwritingVo.getInsOrders().getProductId();
|
|
String productCode = underwritingVo.getInsOrders().getProductId();
|
|
|
List<Map<String, String>> paramList = new ArrayList<>();
|
|
List<Map<String, String>> paramList = new ArrayList<>();
|
|
|
- if(productCode.equals(ProductsType.PT_0330.getCode())){
|
|
|
|
|
|
|
+ if (productCode.equals(ProductsType.PT_0330.getCode())) {
|
|
|
Map<String, String> params = new HashMap<>();
|
|
Map<String, String> params = new HashMap<>();
|
|
|
- params.put("clauseCode","T001_1");
|
|
|
|
|
- params.put("clauseContext","为更好地保障您的权益,请您在发生保险事故后保留出险第一现场,并立即致电24小时服务电话:956079。");
|
|
|
|
|
- params.put("clauseName","第一现场报案");
|
|
|
|
|
- params.put("riskCode","0801");
|
|
|
|
|
|
|
+ params.put("clauseCode", "T001_1");
|
|
|
|
|
+ params.put("clauseContext", "为更好地保障您的权益,请您在发生保险事故后保留出险第一现场,并立即致电24小时服务电话:956079。");
|
|
|
|
|
+ params.put("clauseName", "第一现场报案");
|
|
|
|
|
+ params.put("riskCode", "0801");
|
|
|
paramList.add(params);
|
|
paramList.add(params);
|
|
|
- } else if(productCode.equals(ProductsType.PT_034001.getCode())){
|
|
|
|
|
|
|
+ } else if (productCode.equals(ProductsType.PT_034001.getCode())) {
|
|
|
Map<String, String> params = new HashMap<>();
|
|
Map<String, String> params = new HashMap<>();
|
|
|
- params.put("clauseCode","T001_1");
|
|
|
|
|
- params.put("clauseContext","为更好地保障您的权益,请您在发生保险事故后保留出险第一现场,并立即致电24小时服务电话:956079。");
|
|
|
|
|
- params.put("clauseName","第一现场报案");
|
|
|
|
|
- params.put("riskCode","0808");
|
|
|
|
|
|
|
+ params.put("clauseCode", "T001_1");
|
|
|
|
|
+ params.put("clauseContext", "为更好地保障您的权益,请您在发生保险事故后保留出险第一现场,并立即致电24小时服务电话:956079。");
|
|
|
|
|
+ params.put("clauseName", "第一现场报案");
|
|
|
|
|
+ params.put("riskCode", "0808");
|
|
|
paramList.add(params);
|
|
paramList.add(params);
|
|
|
- } else{
|
|
|
|
|
|
|
+ } else {
|
|
|
Map<String, String> params1 = new HashMap<>();
|
|
Map<String, String> params1 = new HashMap<>();
|
|
|
- params1.put("clauseCode","T001_1");
|
|
|
|
|
- params1.put("clauseContext","为更好地保障您的权益,请您在发生保险事故后保留出险第一现场,并立即致电24小时服务电话:956079。");
|
|
|
|
|
- params1.put("clauseName","第一现场报案");
|
|
|
|
|
- params1.put("riskCode","0801");
|
|
|
|
|
|
|
+ params1.put("clauseCode", "T001_1");
|
|
|
|
|
+ params1.put("clauseContext", "为更好地保障您的权益,请您在发生保险事故后保留出险第一现场,并立即致电24小时服务电话:956079。");
|
|
|
|
|
+ params1.put("clauseName", "第一现场报案");
|
|
|
|
|
+ params1.put("riskCode", "0801");
|
|
|
paramList.add(params1);
|
|
paramList.add(params1);
|
|
|
Map<String, String> params2 = new HashMap<>();
|
|
Map<String, String> params2 = new HashMap<>();
|
|
|
- params2.put("clauseCode","T001_1");
|
|
|
|
|
- params2.put("clauseContext","为更好地保障您的权益,请您在发生保险事故后保留出险第一现场,并立即致电24小时服务电话:956079。");
|
|
|
|
|
- params2.put("clauseName","第一现场报案");
|
|
|
|
|
- params2.put("riskCode","0808");
|
|
|
|
|
|
|
+ params2.put("clauseCode", "T001_1");
|
|
|
|
|
+ params2.put("clauseContext", "为更好地保障您的权益,请您在发生保险事故后保留出险第一现场,并立即致电24小时服务电话:956079。");
|
|
|
|
|
+ params2.put("clauseName", "第一现场报案");
|
|
|
|
|
+ params2.put("riskCode", "0808");
|
|
|
paramList.add(params2);
|
|
paramList.add(params2);
|
|
|
}
|
|
}
|
|
|
UnderwritingResultsVo underwritingResultsVo = new UnderwritingResultsVo();
|
|
UnderwritingResultsVo underwritingResultsVo = new UnderwritingResultsVo();
|
|
|
|
|
|
|
|
- String message = hbCrawlerRequestComponent.coreProposal(hbCrawlerOrder.getPlyappno(), headers,paramList);
|
|
|
|
|
- if("成功".equals(message)){
|
|
|
|
|
|
|
+ String message = hbCrawlerRequestComponent.coreProposal(hbCrawlerOrder.getPlyappno(), headers, paramList);
|
|
|
|
|
+ if ("成功".equals(message)) {
|
|
|
// 获取核保信息
|
|
// 获取核保信息
|
|
|
HbCrawlerCoreProposalResponse response = hbCrawlerRequestComponent.coreProposalResult(hbCrawlerOrder.getPlyappno(), headers);
|
|
HbCrawlerCoreProposalResponse response = hbCrawlerRequestComponent.coreProposalResult(hbCrawlerOrder.getPlyappno(), headers);
|
|
|
hbCrawlerOrder.setCiProposalNo(response.getEfcProposalNo());
|
|
hbCrawlerOrder.setCiProposalNo(response.getEfcProposalNo());
|
|
@@ -238,7 +273,12 @@ public class HengBangCrawlerRequestImpl implements HengBangCrawlerRequest {
|
|
|
hbCrawlerOrderService.update(hbCrawlerOrder);
|
|
hbCrawlerOrderService.update(hbCrawlerOrder);
|
|
|
underwritingResultsVo.setJyApplyNo(response.getEfcProposalNo());
|
|
underwritingResultsVo.setJyApplyNo(response.getEfcProposalNo());
|
|
|
underwritingResultsVo.setSyApplyNo(response.getBizProposalNo());
|
|
underwritingResultsVo.setSyApplyNo(response.getBizProposalNo());
|
|
|
- underwritingResultsVo.setUnderwritingStatus(InsOrderStatusEnum.PAY_PENDING);
|
|
|
|
|
|
|
+ if (response.getStatus().equals("2")) {
|
|
|
|
|
+ underwritingResultsVo.setUnderwritingResult("核保失败:" + response.getDesCription());
|
|
|
|
|
+ underwritingResultsVo.setUnderwritingStatus(InsOrderStatusEnum.AUDIT_FAIL);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ underwritingResultsVo.setUnderwritingStatus(InsOrderStatusEnum.PAY_PENDING);
|
|
|
|
|
+ }
|
|
|
return underwritingResultsVo;
|
|
return underwritingResultsVo;
|
|
|
} else {
|
|
} else {
|
|
|
underwritingResultsVo.setUnderwritingStatus(InsOrderStatusEnum.AUDIT_FAIL);
|
|
underwritingResultsVo.setUnderwritingStatus(InsOrderStatusEnum.AUDIT_FAIL);
|
|
@@ -249,6 +289,7 @@ public class HengBangCrawlerRequestImpl implements HengBangCrawlerRequest {
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 获取支付链接
|
|
* 获取支付链接
|
|
|
|
|
+ *
|
|
|
* @param paymentLinkVo
|
|
* @param paymentLinkVo
|
|
|
*/
|
|
*/
|
|
|
@Override
|
|
@Override
|
|
@@ -267,27 +308,20 @@ public class HengBangCrawlerRequestImpl implements HengBangCrawlerRequest {
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 上传影像
|
|
* 上传影像
|
|
|
|
|
+ *
|
|
|
* @param insuranceUploadImageVo
|
|
* @param insuranceUploadImageVo
|
|
|
*/
|
|
*/
|
|
|
@Override
|
|
@Override
|
|
|
public void uploadImage(InsuranceUploadImageVo insuranceUploadImageVo) {
|
|
public void uploadImage(InsuranceUploadImageVo insuranceUploadImageVo) {
|
|
|
- AttributionInformationVo attributionInformationVo = insuranceUploadImageVo.getOrder()
|
|
|
|
|
- .getAttributionInformationVo();
|
|
|
|
|
|
|
+ AttributionInformationVo attributionInformationVo = insuranceUploadImageVo.getOrder().getAttributionInformationVo();
|
|
|
HttpHeaders headers = hbCrawlerRequestComponent.getHeaders(attributionInformationVo.getUsername(), attributionInformationVo.getPassword());
|
|
HttpHeaders headers = hbCrawlerRequestComponent.getHeaders(attributionInformationVo.getUsername(), attributionInformationVo.getPassword());
|
|
|
- HbCrawlerOrder hbCrawlerOrder = hbCrawlerOrderService.findByOrdersNo(insuranceUploadImageVo.getOrder()
|
|
|
|
|
- .getOrdersNo());
|
|
|
|
|
|
|
+ HbCrawlerOrder hbCrawlerOrder = hbCrawlerOrderService.findByOrdersNo(insuranceUploadImageVo.getOrder().getOrdersNo());
|
|
|
|
|
|
|
|
// 获取车主/投保人/被保人信息
|
|
// 获取车主/投保人/被保人信息
|
|
|
List<InsOrdersCarUserInfo> userInfos = insuranceUploadImageVo.getInsOrdersCarUserInfoList();
|
|
List<InsOrdersCarUserInfo> userInfos = insuranceUploadImageVo.getInsOrdersCarUserInfoList();
|
|
|
- InsOrdersCarUserInfo ownerInfo = userInfos.stream()
|
|
|
|
|
- .filter(insOrdersCarUserInfo -> insOrdersCarUserInfo.getPolicyPersonType().equals(1))
|
|
|
|
|
- .findFirst().orElse(null);
|
|
|
|
|
- InsOrdersCarUserInfo policyHolderInfo = userInfos.stream()
|
|
|
|
|
- .filter(insOrdersCarUserInfo -> insOrdersCarUserInfo.getPolicyPersonType().equals(2))
|
|
|
|
|
- .findFirst().orElse(null);
|
|
|
|
|
- InsOrdersCarUserInfo insuredHolder = userInfos.stream()
|
|
|
|
|
- .filter(insOrdersCarUserInfo -> insOrdersCarUserInfo.getPolicyPersonType().equals(3))
|
|
|
|
|
- .findFirst().orElse(null);
|
|
|
|
|
|
|
+ InsOrdersCarUserInfo ownerInfo = userInfos.stream().filter(insOrdersCarUserInfo -> insOrdersCarUserInfo.getPolicyPersonType().equals(1)).findFirst().orElse(null);
|
|
|
|
|
+ InsOrdersCarUserInfo policyHolderInfo = userInfos.stream().filter(insOrdersCarUserInfo -> insOrdersCarUserInfo.getPolicyPersonType().equals(2)).findFirst().orElse(null);
|
|
|
|
|
+ InsOrdersCarUserInfo insuredHolder = userInfos.stream().filter(insOrdersCarUserInfo -> insOrdersCarUserInfo.getPolicyPersonType().equals(3)).findFirst().orElse(null);
|
|
|
CarInfoVo carInfo = insuranceUploadImageVo.getCarInfo();
|
|
CarInfoVo carInfo = insuranceUploadImageVo.getCarInfo();
|
|
|
//暂时将图片默认为01,06,09,投保业务-旧车-其他资料
|
|
//暂时将图片默认为01,06,09,投保业务-旧车-其他资料
|
|
|
Integer fileNum = 0;
|
|
Integer fileNum = 0;
|
|
@@ -301,9 +335,9 @@ public class HengBangCrawlerRequestImpl implements HengBangCrawlerRequest {
|
|
|
if (CollUtil.isNotEmpty(imageVoList)) {
|
|
if (CollUtil.isNotEmpty(imageVoList)) {
|
|
|
for (InsuranceImageVo insuranceImageVo : imageVoList) {
|
|
for (InsuranceImageVo insuranceImageVo : imageVoList) {
|
|
|
List<InsuranceImageVo.ImageDTO> imageBase64List = insuranceImageVo.getImageBase64List();
|
|
List<InsuranceImageVo.ImageDTO> imageBase64List = insuranceImageVo.getImageBase64List();
|
|
|
- if(CollUtil.isNotEmpty(imageBase64List)){
|
|
|
|
|
|
|
+ if (CollUtil.isNotEmpty(imageBase64List)) {
|
|
|
fileBuff.add("data:image/jpeg;base64," + imageBase64List.get(0).getImageBase64Str());
|
|
fileBuff.add("data:image/jpeg;base64," + imageBase64List.get(0).getImageBase64Str());
|
|
|
- if(InsuranceImageEnum.C02.getCode().equals(insuranceImageVo.getImageCode())){
|
|
|
|
|
|
|
+ if (InsuranceImageEnum.C02.getCode().equals(insuranceImageVo.getImageCode())) {
|
|
|
fileType.add("01,06,03,投保业务-旧车-证件");
|
|
fileType.add("01,06,03,投保业务-旧车-证件");
|
|
|
mark3.add("6");
|
|
mark3.add("6");
|
|
|
HbCrawlerFileUploadRequest.ExtJsonDTO.ExtArrDTO extArrDTO = new HbCrawlerFileUploadRequest.ExtJsonDTO.ExtArrDTO();
|
|
HbCrawlerFileUploadRequest.ExtJsonDTO.ExtArrDTO extArrDTO = new HbCrawlerFileUploadRequest.ExtJsonDTO.ExtArrDTO();
|
|
@@ -311,7 +345,7 @@ public class HengBangCrawlerRequestImpl implements HengBangCrawlerRequest {
|
|
|
extArrDTO.setName(ownerInfo.getName());
|
|
extArrDTO.setName(ownerInfo.getName());
|
|
|
extArrDTO.setId_number(ownerInfo.getIdentifyNumber());
|
|
extArrDTO.setId_number(ownerInfo.getIdentifyNumber());
|
|
|
extArrDTOS.add(extArrDTO);
|
|
extArrDTOS.add(extArrDTO);
|
|
|
- } else if(InsuranceImageEnum.C01.getCode().equals(insuranceImageVo.getImageCode())){
|
|
|
|
|
|
|
+ } else if (InsuranceImageEnum.C01.getCode().equals(insuranceImageVo.getImageCode())) {
|
|
|
fileType.add("01,06,02,投保业务-旧车-行驶证");
|
|
fileType.add("01,06,02,投保业务-旧车-行驶证");
|
|
|
mark3.add("8");
|
|
mark3.add("8");
|
|
|
HbCrawlerFileUploadRequest.ExtJsonDTO.ExtArrDTO extArrDTO = new HbCrawlerFileUploadRequest.ExtJsonDTO.ExtArrDTO();
|
|
HbCrawlerFileUploadRequest.ExtJsonDTO.ExtArrDTO extArrDTO = new HbCrawlerFileUploadRequest.ExtJsonDTO.ExtArrDTO();
|
|
@@ -323,15 +357,15 @@ public class HengBangCrawlerRequestImpl implements HengBangCrawlerRequest {
|
|
|
extArrDTO.setIssue_date(carInfo.getIssueDate());
|
|
extArrDTO.setIssue_date(carInfo.getIssueDate());
|
|
|
extArrDTO.setRegister_date(carInfo.getRegisterDate());
|
|
extArrDTO.setRegister_date(carInfo.getRegisterDate());
|
|
|
extArrDTOS.add(extArrDTO);
|
|
extArrDTOS.add(extArrDTO);
|
|
|
- } else if(InsuranceImageEnum.D02.getCode().equals(insuranceImageVo.getImageCode())){
|
|
|
|
|
|
|
+ } else if (InsuranceImageEnum.D02.getCode().equals(insuranceImageVo.getImageCode())) {
|
|
|
fileType.add("01,06,03,投保业务-旧车-证件");
|
|
fileType.add("01,06,03,投保业务-旧车-证件");
|
|
|
mark3.add("7");
|
|
mark3.add("7");
|
|
|
extArrDTOS.add(new HbCrawlerFileUploadRequest.ExtJsonDTO.ExtArrDTO());
|
|
extArrDTOS.add(new HbCrawlerFileUploadRequest.ExtJsonDTO.ExtArrDTO());
|
|
|
- } else if(InsuranceImageEnum.D01.getCode().equals(insuranceImageVo.getImageCode())){
|
|
|
|
|
|
|
+ } else if (InsuranceImageEnum.D01.getCode().equals(insuranceImageVo.getImageCode())) {
|
|
|
fileType.add("01,06,02,投保业务-旧车-行驶证");
|
|
fileType.add("01,06,02,投保业务-旧车-行驶证");
|
|
|
mark3.add("9");
|
|
mark3.add("9");
|
|
|
extArrDTOS.add(new HbCrawlerFileUploadRequest.ExtJsonDTO.ExtArrDTO());
|
|
extArrDTOS.add(new HbCrawlerFileUploadRequest.ExtJsonDTO.ExtArrDTO());
|
|
|
- } else if(InsuranceImageEnum.C03.getCode().equals(insuranceImageVo.getImageCode())){
|
|
|
|
|
|
|
+ } else if (InsuranceImageEnum.C03.getCode().equals(insuranceImageVo.getImageCode())) {
|
|
|
fileType.add("01,06,03,投保业务-旧车-证件");
|
|
fileType.add("01,06,03,投保业务-旧车-证件");
|
|
|
mark3.add("11");
|
|
mark3.add("11");
|
|
|
HbCrawlerFileUploadRequest.ExtJsonDTO.ExtArrDTO extArrDTO = new HbCrawlerFileUploadRequest.ExtJsonDTO.ExtArrDTO();
|
|
HbCrawlerFileUploadRequest.ExtJsonDTO.ExtArrDTO extArrDTO = new HbCrawlerFileUploadRequest.ExtJsonDTO.ExtArrDTO();
|
|
@@ -339,7 +373,7 @@ public class HengBangCrawlerRequestImpl implements HengBangCrawlerRequest {
|
|
|
extArrDTO.setName(policyHolderInfo.getName());
|
|
extArrDTO.setName(policyHolderInfo.getName());
|
|
|
extArrDTO.setId_number(policyHolderInfo.getIdentifyNumber());
|
|
extArrDTO.setId_number(policyHolderInfo.getIdentifyNumber());
|
|
|
extArrDTOS.add(extArrDTO);
|
|
extArrDTOS.add(extArrDTO);
|
|
|
- } else if(InsuranceImageEnum.D03.getCode().equals(insuranceImageVo.getImageCode())){
|
|
|
|
|
|
|
+ } else if (InsuranceImageEnum.D03.getCode().equals(insuranceImageVo.getImageCode())) {
|
|
|
fileType.add("01,06,03,投保业务-旧车-证件");
|
|
fileType.add("01,06,03,投保业务-旧车-证件");
|
|
|
mark3.add("12");
|
|
mark3.add("12");
|
|
|
HbCrawlerFileUploadRequest.ExtJsonDTO.ExtArrDTO extArrDTO = new HbCrawlerFileUploadRequest.ExtJsonDTO.ExtArrDTO();
|
|
HbCrawlerFileUploadRequest.ExtJsonDTO.ExtArrDTO extArrDTO = new HbCrawlerFileUploadRequest.ExtJsonDTO.ExtArrDTO();
|
|
@@ -347,7 +381,7 @@ public class HengBangCrawlerRequestImpl implements HengBangCrawlerRequest {
|
|
|
extArrDTO.setName(policyHolderInfo.getName());
|
|
extArrDTO.setName(policyHolderInfo.getName());
|
|
|
extArrDTO.setId_number(policyHolderInfo.getIdentifyNumber());
|
|
extArrDTO.setId_number(policyHolderInfo.getIdentifyNumber());
|
|
|
extArrDTOS.add(extArrDTO);
|
|
extArrDTOS.add(extArrDTO);
|
|
|
- } else if(InsuranceImageEnum.C04.getCode().equals(insuranceImageVo.getImageCode())){
|
|
|
|
|
|
|
+ } else if (InsuranceImageEnum.C04.getCode().equals(insuranceImageVo.getImageCode())) {
|
|
|
fileType.add("01,06,03,投保业务-旧车-证件");
|
|
fileType.add("01,06,03,投保业务-旧车-证件");
|
|
|
mark3.add("13");
|
|
mark3.add("13");
|
|
|
HbCrawlerFileUploadRequest.ExtJsonDTO.ExtArrDTO extArrDTO = new HbCrawlerFileUploadRequest.ExtJsonDTO.ExtArrDTO();
|
|
HbCrawlerFileUploadRequest.ExtJsonDTO.ExtArrDTO extArrDTO = new HbCrawlerFileUploadRequest.ExtJsonDTO.ExtArrDTO();
|
|
@@ -355,7 +389,7 @@ public class HengBangCrawlerRequestImpl implements HengBangCrawlerRequest {
|
|
|
extArrDTO.setName(insuredHolder.getName());
|
|
extArrDTO.setName(insuredHolder.getName());
|
|
|
extArrDTO.setId_number(insuredHolder.getIdentifyNumber());
|
|
extArrDTO.setId_number(insuredHolder.getIdentifyNumber());
|
|
|
extArrDTOS.add(extArrDTO);
|
|
extArrDTOS.add(extArrDTO);
|
|
|
- } else if(InsuranceImageEnum.D04.getCode().equals(insuranceImageVo.getImageCode())){
|
|
|
|
|
|
|
+ } else if (InsuranceImageEnum.D04.getCode().equals(insuranceImageVo.getImageCode())) {
|
|
|
fileType.add("01,06,03,投保业务-旧车-证件");
|
|
fileType.add("01,06,03,投保业务-旧车-证件");
|
|
|
mark3.add("14");
|
|
mark3.add("14");
|
|
|
HbCrawlerFileUploadRequest.ExtJsonDTO.ExtArrDTO extArrDTO = new HbCrawlerFileUploadRequest.ExtJsonDTO.ExtArrDTO();
|
|
HbCrawlerFileUploadRequest.ExtJsonDTO.ExtArrDTO extArrDTO = new HbCrawlerFileUploadRequest.ExtJsonDTO.ExtArrDTO();
|
|
@@ -378,12 +412,12 @@ public class HengBangCrawlerRequestImpl implements HengBangCrawlerRequest {
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 下载保单
|
|
* 下载保单
|
|
|
- * @param downloadPolicyVo
|
|
|
|
|
- * sign参数:
|
|
|
|
|
- * 商业险:下载日期+policy+syx+H070104080820210005632 md5加密
|
|
|
|
|
- * 交强先:下载日期+policy+jqx+H070104080820210005632 md5加密
|
|
|
|
|
- * 示例:20250414policysyxH070104080820210005632
|
|
|
|
|
- * https://car.hbins.com.cn/interflow/api/sftp/v3/download/policy/syx/H070104080820210005632?sign=c03d2c533722ff8c3d722d35664e9fa1
|
|
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param downloadPolicyVo sign参数:
|
|
|
|
|
+ * 商业险:下载日期+policy+syx+H070104080820210005632 md5加密
|
|
|
|
|
+ * 交强先:下载日期+policy+jqx+H070104080820210005632 md5加密
|
|
|
|
|
+ * 示例:20250414policysyxH070104080820210005632
|
|
|
|
|
+ * https://car.hbins.com.cn/interflow/api/sftp/v3/download/policy/syx/H070104080820210005632?sign=c03d2c533722ff8c3d722d35664e9fa1
|
|
|
*/
|
|
*/
|
|
|
@Override
|
|
@Override
|
|
|
public DownloadPolicyResultVo downloadPolicy(DownloadPolicyVo downloadPolicyVo) {
|
|
public DownloadPolicyResultVo downloadPolicy(DownloadPolicyVo downloadPolicyVo) {
|
|
@@ -396,18 +430,13 @@ public class HengBangCrawlerRequestImpl implements HengBangCrawlerRequest {
|
|
|
getPolicyRequest.setCarMark(parameters.getLicenseNo());
|
|
getPolicyRequest.setCarMark(parameters.getLicenseNo());
|
|
|
HbCrawlerGetPolicyResponse policyResponse = hbCrawlerRequestComponent.getPolicy(getPolicyRequest, headers);
|
|
HbCrawlerGetPolicyResponse policyResponse = hbCrawlerRequestComponent.getPolicy(getPolicyRequest, headers);
|
|
|
List<String> downloadUrls = new ArrayList<>();
|
|
List<String> downloadUrls = new ArrayList<>();
|
|
|
- List<HbCrawlerGetPolicyResponse.ResponseBodyDTO.ContentDTO> contentDTOList = policyResponse.getResponseBody()
|
|
|
|
|
- .getContent();
|
|
|
|
|
|
|
+ List<HbCrawlerGetPolicyResponse.ResponseBodyDTO.ContentDTO> contentDTOList = policyResponse.getResponseBody().getContent();
|
|
|
if (contentDTOList != null && !contentDTOList.isEmpty()) {
|
|
if (contentDTOList != null && !contentDTOList.isEmpty()) {
|
|
|
contentDTOList.forEach(contentDTO -> {
|
|
contentDTOList.forEach(contentDTO -> {
|
|
|
//获取参数sign的值
|
|
//获取参数sign的值
|
|
|
String sign = getSign(contentDTO.getPOLICY_CATEGORY(), contentDTO.getBUSINESS_NO());
|
|
String sign = getSign(contentDTO.getPOLICY_CATEGORY(), contentDTO.getBUSINESS_NO());
|
|
|
StringBuilder downloadUrl = new StringBuilder(RequestUrl.DOWNLOAD_POLICY.getRequestUrl(hbCrawlerProperties.getBaseUrl()));
|
|
StringBuilder downloadUrl = new StringBuilder(RequestUrl.DOWNLOAD_POLICY.getRequestUrl(hbCrawlerProperties.getBaseUrl()));
|
|
|
- downloadUrl.append(contentDTO.getPOLICY_CATEGORY())
|
|
|
|
|
- .append("/")
|
|
|
|
|
- .append(contentDTO.getBUSINESS_NO())
|
|
|
|
|
- .append("?sign=")
|
|
|
|
|
- .append(sign);
|
|
|
|
|
|
|
+ downloadUrl.append(contentDTO.getPOLICY_CATEGORY()).append("/").append(contentDTO.getBUSINESS_NO()).append("?sign=").append(sign);
|
|
|
downloadUrls.add(downloadUrl.toString());
|
|
downloadUrls.add(downloadUrl.toString());
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
@@ -416,6 +445,7 @@ public class HengBangCrawlerRequestImpl implements HengBangCrawlerRequest {
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 获取sign参数
|
|
* 获取sign参数
|
|
|
|
|
+ *
|
|
|
* @param riskType
|
|
* @param riskType
|
|
|
* @param businessNo
|
|
* @param businessNo
|
|
|
* @return
|
|
* @return
|
|
@@ -428,8 +458,8 @@ public class HengBangCrawlerRequestImpl implements HengBangCrawlerRequest {
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 查询订单状态
|
|
* 查询订单状态
|
|
|
- * @param orderStatusVo
|
|
|
|
|
- * 恒邦订单状态代码:待提核:-1;审核通过:1,3,5;下发修改:2;拒保:4;承保确认:6;初始状态:0
|
|
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param orderStatusVo 恒邦订单状态代码:待提核:-1;审核通过:1,3,5;下发修改:2;拒保:4;承保确认:6;初始状态:0
|
|
|
*/
|
|
*/
|
|
|
@Override
|
|
@Override
|
|
|
public OrderStatusResultVo queryOrderState(OrderStatusVo orderStatusVo) {
|
|
public OrderStatusResultVo queryOrderState(OrderStatusVo orderStatusVo) {
|