|
|
@@ -1,8 +1,12 @@
|
|
|
package com.jzg.quotation.hengbang.crawler.service.Impl;
|
|
|
|
|
|
+import cn.hutool.core.collection.CollUtil;
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
import cn.hutool.crypto.digest.DigestUtil;
|
|
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
|
|
+import com.jzg.commons.constants.ProductsType;
|
|
|
+import com.jzg.commons.constants.quote.enums.base.InsuranceImageEnum;
|
|
|
+import com.jzg.commons.entity.orders.po.InsOrdersCarUserInfo;
|
|
|
import com.jzg.commons.entity.quote.vo.AttributionInformationVo;
|
|
|
import com.jzg.commons.entity.quote.vo.CarInfoVo;
|
|
|
import com.jzg.commons.entity.quote.vo.QuoteVo;
|
|
|
@@ -28,10 +32,12 @@ import com.jzg.quotation.hengbang.crawler.properties.HengBangCrawlerProperties;
|
|
|
import com.jzg.quotation.hengbang.crawler.service.HbCrawlerOrderService;
|
|
|
import com.jzg.quotation.hengbang.crawler.service.HengBangCrawlerRequest;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.http.HttpHeaders;
|
|
|
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
+import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
|
|
|
@@ -124,12 +130,46 @@ public class HengBangCrawlerRequestImpl implements HengBangCrawlerRequest {
|
|
|
AttributionInformationVo attributionInformationVo = underwritingVo.getOrder().getAttributionInformationVo();
|
|
|
HttpHeaders headers = hbCrawlerRequestComponent.getHeaders(attributionInformationVo.getUsername(), attributionInformationVo.getPassword());
|
|
|
HbCrawlerOrder hbCrawlerOrder = hbCrawlerOrderService.findByOrdersNo(underwritingVo.getOrder().getOrdersNo());
|
|
|
+ String productCode = underwritingVo.getInsOrders().getProductId();
|
|
|
+ List<Map<String, String>> paramList = new ArrayList<>();
|
|
|
+ if(productCode.equals(ProductsType.PT_0330.getCode())){
|
|
|
+ Map<String, String> params = new HashMap<>();
|
|
|
+ params.put("clauseCode","T001_1");
|
|
|
+ params.put("clauseContext","为更好地保障您的权益,请您在发生保险事故后保留出险第一现场,并立即致电24小时服务电话:956079。");
|
|
|
+ params.put("clauseName","第一现场报案");
|
|
|
+ params.put("riskCode","0801");
|
|
|
+ paramList.add(params);
|
|
|
+ } else if(productCode.equals(ProductsType.PT_034001.getCode())){
|
|
|
+ Map<String, String> params = new HashMap<>();
|
|
|
+ params.put("clauseCode","T001_1");
|
|
|
+ params.put("clauseContext","为更好地保障您的权益,请您在发生保险事故后保留出险第一现场,并立即致电24小时服务电话:956079。");
|
|
|
+ params.put("clauseName","第一现场报案");
|
|
|
+ params.put("riskCode","0808");
|
|
|
+ paramList.add(params);
|
|
|
+ } else{
|
|
|
+ Map<String, String> params1 = new HashMap<>();
|
|
|
+ params1.put("clauseCode","T001_1");
|
|
|
+ params1.put("clauseContext","为更好地保障您的权益,请您在发生保险事故后保留出险第一现场,并立即致电24小时服务电话:956079。");
|
|
|
+ params1.put("clauseName","第一现场报案");
|
|
|
+ params1.put("riskCode","0801");
|
|
|
+ paramList.add(params1);
|
|
|
+ Map<String, String> params2 = new HashMap<>();
|
|
|
+ params2.put("clauseCode","T001_1");
|
|
|
+ params2.put("clauseContext","为更好地保障您的权益,请您在发生保险事故后保留出险第一现场,并立即致电24小时服务电话:956079。");
|
|
|
+ params2.put("clauseName","第一现场报案");
|
|
|
+ params2.put("riskCode","0808");
|
|
|
+ paramList.add(params2);
|
|
|
+ }
|
|
|
|
|
|
- HbCrawlerCoreProposalResponse coreProposalResponse = hbCrawlerRequestComponent.coreProposal(hbCrawlerOrder.getPlyappno(), headers);
|
|
|
- hbCrawlerOrder.setCiProposalNo(coreProposalResponse.getEfcProposalNo());
|
|
|
- hbCrawlerOrder.setBiProposalNo(coreProposalResponse.getBizProposalNo());
|
|
|
- hbCrawlerOrderService.update(hbCrawlerOrder);
|
|
|
- return null;
|
|
|
+ String message = hbCrawlerRequestComponent.coreProposal(hbCrawlerOrder.getPlyappno(), headers,paramList);
|
|
|
+ if("成功".equals(message)){
|
|
|
+ // 获取核保信息
|
|
|
+ HbCrawlerCoreProposalResponse response = hbCrawlerRequestComponent.coreProposalResult(hbCrawlerOrder.getPlyappno(), headers);
|
|
|
+ hbCrawlerOrder.setCiProposalNo(response.getEfcProposalNo());
|
|
|
+ hbCrawlerOrder.setBiProposalNo(response.getBizProposalNo());
|
|
|
+ hbCrawlerOrderService.update(hbCrawlerOrder);
|
|
|
+ }
|
|
|
+ return new UnderwritingResultsVo();
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -161,36 +201,98 @@ public class HengBangCrawlerRequestImpl implements HengBangCrawlerRequest {
|
|
|
HttpHeaders headers = hbCrawlerRequestComponent.getHeaders(attributionInformationVo.getUsername(), attributionInformationVo.getPassword());
|
|
|
HbCrawlerOrder hbCrawlerOrder = hbCrawlerOrderService.findByOrdersNo(insuranceUploadImageVo.getOrder()
|
|
|
.getOrdersNo());
|
|
|
+
|
|
|
+ // 获取车主/投保人/被保人信息
|
|
|
+ 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);
|
|
|
+ CarInfoVo carInfo = insuranceUploadImageVo.getCarInfo();
|
|
|
//暂时将图片默认为01,06,09,投保业务-旧车-其他资料
|
|
|
Integer fileNum = 0;
|
|
|
- StringBuilder fileBuff = new StringBuilder();
|
|
|
- StringBuilder fileType = new StringBuilder();
|
|
|
- StringBuilder mark3 = new StringBuilder();
|
|
|
- Integer mark3Num = 100;//恒邦规定从100开始
|
|
|
+ List<String> fileBuff = new ArrayList<>();
|
|
|
+ List<String> fileType = new ArrayList<>();
|
|
|
+ List<String> mark3 = new ArrayList<>();
|
|
|
+ List<HbCrawlerFileUploadRequest.ExtJsonDTO.ExtArrDTO> extArrDTOS = new ArrayList<>();
|
|
|
+
|
|
|
+// Integer mark3Num = 100;//恒邦规定从100开始
|
|
|
List<InsuranceImageVo> imageVoList = insuranceUploadImageVo.getImageVoList();
|
|
|
- if (imageVoList != null && !imageVoList.isEmpty()) {
|
|
|
+ if (CollUtil.isNotEmpty(imageVoList)) {
|
|
|
for (InsuranceImageVo insuranceImageVo : imageVoList) {
|
|
|
List<InsuranceImageVo.ImageDTO> imageBase64List = insuranceImageVo.getImageBase64List();
|
|
|
- if (imageBase64List != null && !imageBase64List.isEmpty()) {
|
|
|
- for (InsuranceImageVo.ImageDTO imageBase64 : imageBase64List) {
|
|
|
- if (!fileBuff.isEmpty()) {
|
|
|
- fileBuff.append("||");
|
|
|
- }
|
|
|
- fileBuff.append(imageBase64.getImageBase64Str());
|
|
|
- if (!fileType.isEmpty()) {
|
|
|
- fileType.append("||");
|
|
|
- }
|
|
|
- fileType.append(RequestConstant.IMAGE_TYPE);
|
|
|
- if (!mark3.isEmpty()) {
|
|
|
- mark3.append(",");
|
|
|
- }
|
|
|
- mark3.append(mark3Num++);
|
|
|
- fileNum += 1;
|
|
|
+ if(CollUtil.isNotEmpty(imageBase64List)){
|
|
|
+ fileBuff.add("data:image/jpeg;base64," + imageBase64List.get(0).getImageBase64Str());
|
|
|
+ if(InsuranceImageEnum.C02.getCode().equals(insuranceImageVo.getImageCode())){
|
|
|
+ fileType.add("01,06,03,投保业务-旧车-证件");
|
|
|
+ mark3.add("6");
|
|
|
+ HbCrawlerFileUploadRequest.ExtJsonDTO.ExtArrDTO extArrDTO = new HbCrawlerFileUploadRequest.ExtJsonDTO.ExtArrDTO();
|
|
|
+ extArrDTO.setOcrFlag("1");
|
|
|
+ extArrDTO.setName(ownerInfo.getName());
|
|
|
+ extArrDTO.setId_number(ownerInfo.getIdentifyNumber());
|
|
|
+ extArrDTOS.add(extArrDTO);
|
|
|
+ } else if(InsuranceImageEnum.C01.getCode().equals(insuranceImageVo.getImageCode())){
|
|
|
+ fileType.add("01,06,02,投保业务-旧车-行驶证");
|
|
|
+ mark3.add("8");
|
|
|
+ HbCrawlerFileUploadRequest.ExtJsonDTO.ExtArrDTO extArrDTO = new HbCrawlerFileUploadRequest.ExtJsonDTO.ExtArrDTO();
|
|
|
+ extArrDTO.setOcrFlag("1");
|
|
|
+ extArrDTO.setPlate_no(carInfo.getLicenseNo());
|
|
|
+ extArrDTO.setEngine_no(carInfo.getEngineNo());
|
|
|
+ extArrDTO.setOwner(ownerInfo.getName());
|
|
|
+ extArrDTO.setVin_code(carInfo.getVinNo());
|
|
|
+ extArrDTO.setIssue_date(carInfo.getIssueDate());
|
|
|
+ extArrDTO.setRegister_date(carInfo.getRegisterDate());
|
|
|
+ extArrDTOS.add(extArrDTO);
|
|
|
+ } else if(InsuranceImageEnum.D02.getCode().equals(insuranceImageVo.getImageCode())){
|
|
|
+ fileType.add("01,06,03,投保业务-旧车-证件");
|
|
|
+ mark3.add("7");
|
|
|
+ extArrDTOS.add(new HbCrawlerFileUploadRequest.ExtJsonDTO.ExtArrDTO());
|
|
|
+ } else if(InsuranceImageEnum.D01.getCode().equals(insuranceImageVo.getImageCode())){
|
|
|
+ fileType.add("01,06,02,投保业务-旧车-行驶证");
|
|
|
+ mark3.add("9");
|
|
|
+ extArrDTOS.add(new HbCrawlerFileUploadRequest.ExtJsonDTO.ExtArrDTO());
|
|
|
+ } else if(InsuranceImageEnum.C03.getCode().equals(insuranceImageVo.getImageCode())){
|
|
|
+ fileType.add("01,06,03,投保业务-旧车-证件");
|
|
|
+ mark3.add("11");
|
|
|
+ HbCrawlerFileUploadRequest.ExtJsonDTO.ExtArrDTO extArrDTO = new HbCrawlerFileUploadRequest.ExtJsonDTO.ExtArrDTO();
|
|
|
+ extArrDTO.setOcrFlag("1");
|
|
|
+ extArrDTO.setName(policyHolderInfo.getName());
|
|
|
+ extArrDTO.setId_number(policyHolderInfo.getIdentifyNumber());
|
|
|
+ extArrDTOS.add(extArrDTO);
|
|
|
+ } else if(InsuranceImageEnum.D03.getCode().equals(insuranceImageVo.getImageCode())){
|
|
|
+ fileType.add("01,06,03,投保业务-旧车-证件");
|
|
|
+ mark3.add("12");
|
|
|
+ HbCrawlerFileUploadRequest.ExtJsonDTO.ExtArrDTO extArrDTO = new HbCrawlerFileUploadRequest.ExtJsonDTO.ExtArrDTO();
|
|
|
+ extArrDTO.setOcrFlag("1");
|
|
|
+ extArrDTO.setName(policyHolderInfo.getName());
|
|
|
+ extArrDTO.setId_number(policyHolderInfo.getIdentifyNumber());
|
|
|
+ extArrDTOS.add(extArrDTO);
|
|
|
+ } else if(InsuranceImageEnum.C04.getCode().equals(insuranceImageVo.getImageCode())){
|
|
|
+ fileType.add("01,06,03,投保业务-旧车-证件");
|
|
|
+ mark3.add("13");
|
|
|
+ HbCrawlerFileUploadRequest.ExtJsonDTO.ExtArrDTO extArrDTO = new HbCrawlerFileUploadRequest.ExtJsonDTO.ExtArrDTO();
|
|
|
+ extArrDTO.setOcrFlag("1");
|
|
|
+ extArrDTO.setName(insuredHolder.getName());
|
|
|
+ extArrDTO.setId_number(insuredHolder.getIdentifyNumber());
|
|
|
+ extArrDTOS.add(extArrDTO);
|
|
|
+ } else if(InsuranceImageEnum.D04.getCode().equals(insuranceImageVo.getImageCode())){
|
|
|
+ fileType.add("01,06,03,投保业务-旧车-证件");
|
|
|
+ mark3.add("14");
|
|
|
+ HbCrawlerFileUploadRequest.ExtJsonDTO.ExtArrDTO extArrDTO = new HbCrawlerFileUploadRequest.ExtJsonDTO.ExtArrDTO();
|
|
|
+ extArrDTO.setOcrFlag("1");
|
|
|
+ extArrDTO.setName(insuredHolder.getName());
|
|
|
+ extArrDTO.setId_number(insuredHolder.getIdentifyNumber());
|
|
|
+ extArrDTOS.add(extArrDTO);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- HbCrawlerFileUploadRequest fileUploadRequest = new HbCrawlerFileUploadRequest(fileBuff.toString(), fileType.toString(), mark3.toString(), fileNum);
|
|
|
+ HbCrawlerFileUploadRequest fileUploadRequest = new HbCrawlerFileUploadRequest(fileBuff, fileType, mark3, extArrDTOS);
|
|
|
hbCrawlerRequestComponent.uploadImage(fileUploadRequest, headers, hbCrawlerOrder.getPlyappno());
|
|
|
}
|
|
|
|