|
|
@@ -1,9 +1,11 @@
|
|
|
package com.jzg.quotation.ansheng.crawler.service.impl;
|
|
|
|
|
|
+import com.alibaba.fastjson2.JSONObject;
|
|
|
import com.jzg.commons.constants.dict.InsOrderStatusEnum;
|
|
|
import com.jzg.commons.entity.quote.vo.QuoteVo;
|
|
|
import com.jzg.commons.entity.quote.vo.aggregated.*;
|
|
|
import com.jzg.commons.entity.quote.vo.base.LoginBase;
|
|
|
+import com.jzg.commons.util.StringUtils;
|
|
|
import com.jzg.quotation.ansheng.crawler.build.AnShengCrawlerApplyApplicationRequestBuild;
|
|
|
import com.jzg.quotation.ansheng.crawler.build.AnShengCrawlerQuoteResultsVoBuild;
|
|
|
import com.jzg.quotation.ansheng.crawler.component.AnShengCrawlerCacheComponent;
|
|
|
@@ -22,8 +24,8 @@ import com.jzg.quotation.commons.constant.InsuranceCode;
|
|
|
import com.jzg.quotation.commons.filter.CarModelsFilterUtils;
|
|
|
import com.jzg.quotation.commons.utils.TimeProcessing;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.http.HttpHeaders;
|
|
|
-import org.springframework.util.StringUtils;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
@@ -33,6 +35,8 @@ import java.util.regex.Matcher;
|
|
|
import java.util.regex.Pattern;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
+
|
|
|
+@Slf4j
|
|
|
@QuoteCrawlerService(value = InsuranceCode.INSURANCE_TPBX)
|
|
|
@RequiredArgsConstructor
|
|
|
public class AnShengCrawlerRequestImpl implements AnShengCrawlerRequest {
|
|
|
@@ -81,6 +85,7 @@ public class AnShengCrawlerRequestImpl implements AnShengCrawlerRequest {
|
|
|
AnShengCrawlerSearchVehicleByVinResponse.DataDTO dataDTO = CarModelsFilterUtils.to(dataDTOS, quoteVo.getCarInfoVo());
|
|
|
// 报价
|
|
|
AnShengCrawlerCalculatePremiumApplyMessage crawlerCalculatePremiumApply = new AnShengCrawlerCalculatePremiumApplyMessage(quoteVo, dataDTO, userDetailResponse, departmentPlanCode, checkVehicleCodeSecretGenerate);
|
|
|
+ log.info("安盛报价参数:{}",JSONObject.toJSONString(crawlerCalculatePremiumApply));
|
|
|
AnShengCrawlerCalculatePremiumApplyResponse calculatePremiumApply = anShengCrawlerRequestComponent.calculatePremiumApply(crawlerCalculatePremiumApply, httpHeaders);
|
|
|
// 处理重复投保
|
|
|
if (calculatePremiumApply.getMessage().contains("重复投保")) {
|
|
|
@@ -88,10 +93,22 @@ public class AnShengCrawlerRequestImpl implements AnShengCrawlerRequest {
|
|
|
String endTime = TimeProcessing.minusOneSecondAfterYear(startTime);
|
|
|
crawlerCalculatePremiumApply.getContracts().get(0).getPolicyBase().setInsuranceBeginTime(startTime);
|
|
|
crawlerCalculatePremiumApply.getContracts().get(0).getPolicyBase().setInsuranceEndTime(endTime);
|
|
|
+ log.info("安盛报价重复投保参数:{}",JSONObject.toJSONString(crawlerCalculatePremiumApply));
|
|
|
calculatePremiumApply = anShengCrawlerRequestComponent.calculatePremiumApply(crawlerCalculatePremiumApply, httpHeaders);
|
|
|
}
|
|
|
if (calculatePremiumApply.getCode() == 200) {
|
|
|
// 缓存报价信息
|
|
|
+ // 处理报价返回起止时间
|
|
|
+ calculatePremiumApply.getData().getContracts().forEach(v ->{
|
|
|
+ crawlerCalculatePremiumApply.getContracts().forEach(va ->{
|
|
|
+ AnShengCrawlerCalculatePremiumApplyMessage.ContractsDTO.PolicyBaseDTO policyBase = va.getPolicyBase();
|
|
|
+ if (StringUtils.equals(v.getPlanCode(),policyBase.getPlanCode())){
|
|
|
+ policyBase.setInsuranceBeginTime(v.getInsuranceBeginTime());
|
|
|
+ policyBase.setInsuranceEndTime(v.getInsuranceEndTime());
|
|
|
+ }
|
|
|
+ });
|
|
|
+ });
|
|
|
+ log.info("安盛报价返回数据:{}",JSONObject.toJSONString(calculatePremiumApply));
|
|
|
AnShengCrawlerApplyApplicationRequest autoSpecialPromiseRequest = AnShengCrawlerApplyApplicationRequestBuild.build(crawlerCalculatePremiumApply, calculatePremiumApply, userDetailResponse, compulsoryVersionNo);
|
|
|
// 缓存数据
|
|
|
anShengCrawlerCacheComponent.cacheQuoteRequest(ordersNo, autoSpecialPromiseRequest);
|
|
|
@@ -149,9 +166,11 @@ public class AnShengCrawlerRequestImpl implements AnShengCrawlerRequest {
|
|
|
AnShengCrawlerRuleCheckForSimpleResponse.DataDTO simpleData = ruleCheckForSimpleData.get(contract.getPolicyBase()
|
|
|
.getPlanCode());
|
|
|
contract.getPolicyBase().setAlterableSpecialPromise(promiseData.getAlterableSpecialPromise());
|
|
|
- contract.setPolicyAttachments(imagesInfo);
|
|
|
+ contract.setPolicyAttachments(new ArrayList<>());
|
|
|
contract.getPolicyBase().setFirstTrialTaskNo(simpleData.getFirstTrialTaskNo());
|
|
|
+ contract.getTargetList().get(0).setVehicleTax(applicationRequest.getContracts().get(0).getTargetList().get(0).getVehicleTax());
|
|
|
});
|
|
|
+ log.info("安盛核保参数:{}",JSONObject.toJSONString(applicationRequest));
|
|
|
// 核保
|
|
|
AnShengCrawlerApplyApplicationResponse applyApplicationResponse = anShengCrawlerRequestComponent.applyApplication(applicationRequest, httpHeaders);
|
|
|
// 投保订单号保存
|
|
|
@@ -179,6 +198,7 @@ public class AnShengCrawlerRequestImpl implements AnShengCrawlerRequest {
|
|
|
* @param applyApplicationResponse 核保信息
|
|
|
*/
|
|
|
private void saveThePolicyNumber(String ordersNo, AnShengCrawlerApplyApplicationResponse applyApplicationResponse) {
|
|
|
+ log.info("安盛核保返回参数:{}", JSONObject.toJSONString(applyApplicationResponse));
|
|
|
AnShengCrawlerOrder anShengCrawlerOrder = anShengCrawlerOrderService.getById(ordersNo);
|
|
|
List<AnShengCrawlerOrder.NiInfo> niInfoList = new ArrayList<>();
|
|
|
Optional.ofNullable(applyApplicationResponse.getData())
|
|
|
@@ -192,15 +212,18 @@ public class AnShengCrawlerRequestImpl implements AnShengCrawlerRequest {
|
|
|
.equals(dataDTO.getPlanCode()) || DepartmentPlanCode.PLAN_113.getCode()
|
|
|
.equals(dataDTO.getPlanCode())) {
|
|
|
anShengCrawlerOrder.setBiPolicyNo(dataDTO.getApplyPolicyNo());
|
|
|
+ }else {
|
|
|
+ String jy = com.jzg.commons.util.StringUtils.isEmpty(dataDTO.getProductCode()) ? "" : dataDTO.getProductCode();
|
|
|
+ AnShengCrawlerOrder.NiInfo niInfo = new AnShengCrawlerOrder.NiInfo();
|
|
|
+ niInfo.setNiPolicyNo(jy);
|
|
|
+ niInfoList.add(niInfo);
|
|
|
}
|
|
|
- AnShengCrawlerOrder.NiInfo niInfo = new AnShengCrawlerOrder.NiInfo();
|
|
|
- niInfo.setNiPolicyNo(dataDTO.getApplyPolicyNo());
|
|
|
- niInfoList.add(niInfo);
|
|
|
});
|
|
|
anShengCrawlerOrder.setNiInfos(niInfoList);
|
|
|
anShengCrawlerOrderService.saveAnShengCrawlerOrder(anShengCrawlerOrder);
|
|
|
}
|
|
|
|
|
|
+
|
|
|
@Override
|
|
|
public PaymentLinkResultsVo getPaymentLink(PaymentLinkVo paymentLinkVo) {
|
|
|
// 请求头
|
|
|
@@ -211,18 +234,10 @@ public class AnShengCrawlerRequestImpl implements AnShengCrawlerRequest {
|
|
|
.getAgreementId(), httpHeaders);
|
|
|
AnShengCrawlerOrder anShengCrawlerOrder = anShengCrawlerOrderService.getById(paymentLinkVo.getOrder()
|
|
|
.getOrdersNo());
|
|
|
- // 获取投保单号
|
|
|
- List<String> ciPolicyNo = new ArrayList<>(List.of(anShengCrawlerOrder.getCiPolicyNumber(), anShengCrawlerOrder.getBiPolicyNumber()));
|
|
|
- List<String> collect = Optional.ofNullable(anShengCrawlerOrder.getNiInfos())
|
|
|
- .orElse(new ArrayList<>())
|
|
|
- .stream()
|
|
|
- .map(AnShengCrawlerOrder.NiInfo::getNiPolicyNumber)
|
|
|
- .toList();
|
|
|
- ciPolicyNo.addAll(collect);
|
|
|
- List<String> list = ciPolicyNo.stream().filter(StringUtils::hasText).toList();
|
|
|
// 获取支付链接
|
|
|
- AnShengCrawlerPaymentRequest anShengCrawlerPaymentRequest = new AnShengCrawlerPaymentRequest(list, userDetailResponse.getDepartmentCode(), anShengCrawlerOrder.getTotalPremium());
|
|
|
+ AnShengCrawlerPaymentRequest anShengCrawlerPaymentRequest = new AnShengCrawlerPaymentRequest(anShengCrawlerOrder, userDetailResponse.getDepartmentCode(), anShengCrawlerOrder.getTotalPremium());
|
|
|
String paymentUrl = anShengCrawlerRequestComponent.payment(anShengCrawlerPaymentRequest, httpHeaders);
|
|
|
+ log.info("获取安盛支付二维码地址长度:{}",StringUtils.isNotEmpty(paymentUrl) ? paymentUrl.length() : "无法获取支付链接");
|
|
|
return new PaymentLinkResultsVo(true, paymentUrl, "");
|
|
|
}
|
|
|
|
|
|
@@ -286,7 +301,7 @@ public class AnShengCrawlerRequestImpl implements AnShengCrawlerRequest {
|
|
|
anShengCrawlerRequestComponent.downloadPdf(policyNo, httpHeaders);
|
|
|
});
|
|
|
});
|
|
|
- return null;
|
|
|
+ return downloadPolicyResultVo;
|
|
|
}
|
|
|
|
|
|
@Override
|