|
|
@@ -46,6 +46,8 @@ import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.Objects;
|
|
|
import java.util.UUID;
|
|
|
+import java.util.regex.Matcher;
|
|
|
+import java.util.regex.Pattern;
|
|
|
|
|
|
/**
|
|
|
* 人保车险爬虫服务实现 *
|
|
|
@@ -63,6 +65,8 @@ public class RenBaoNewCrawlerRequestImpl implements RenBaoNewCrawlerRequest {
|
|
|
private final RenBaoNewCrawlerCacheComponent cacheComponent;
|
|
|
private final RenBaoNewCrawlerProperties properties;
|
|
|
private final RenBaoNewCrawlerRequestBuilder requestBuilder;
|
|
|
+ // 匹配PDAA、PDZA保单号正则
|
|
|
+ private static final Pattern POLICY_NO_PATTERN = Pattern.compile("(PDAA|PDZA)\\d+");
|
|
|
|
|
|
/**
|
|
|
* 登录方法
|
|
|
@@ -169,8 +173,8 @@ public class RenBaoNewCrawlerRequestImpl implements RenBaoNewCrawlerRequest {
|
|
|
String validate0 = response.getStatusText();
|
|
|
String validate1 = "/bizSave/caculatePremium";
|
|
|
log.error("检测到滑块: statusText={}, {}", validate0, JSONUtil.toJsonStr(response));
|
|
|
- if (hkcs < 2) {
|
|
|
- while (hkcs < 2) {
|
|
|
+ if (hkcs < 3) {
|
|
|
+ while (hkcs < 3) {
|
|
|
hkcs++;
|
|
|
passSpilderMainRes = passSpilderMain(headers, username, validate0, validate1);
|
|
|
if (passSpilderMainRes) {
|
|
|
@@ -758,9 +762,20 @@ public class RenBaoNewCrawlerRequestImpl implements RenBaoNewCrawlerRequest {
|
|
|
resultsVo.setBiRiskInfoVo(biRisk);
|
|
|
|
|
|
//获取转续保标识
|
|
|
- resultsVo.getScoreVo().setJqRenewal("3");
|
|
|
+ String error = quoteResponse.getData().getError();
|
|
|
resultsVo.getScoreVo().setSyRenewal("3");
|
|
|
+ resultsVo.getScoreVo().setJqRenewal("3");
|
|
|
+ if(error.contains("此单符合续保条件,已按照续保流程处理")){
|
|
|
+ List<String> policyNoList = extractPolicyNos(error);
|
|
|
+ for (String policyNo : policyNoList) {
|
|
|
+ if (policyNo.startsWith("PDAA")) {
|
|
|
+ resultsVo.getScoreVo().setSyRenewal("2");
|
|
|
+ } else if (policyNo.startsWith("PDZA")) {
|
|
|
+ resultsVo.getScoreVo().setJqRenewal("2");
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
+ }
|
|
|
|
|
|
String proposalNoDAA = "";
|
|
|
String proposalNoDZA = "";
|
|
|
@@ -922,6 +937,21 @@ public class RenBaoNewCrawlerRequestImpl implements RenBaoNewCrawlerRequest {
|
|
|
return resultsVo;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 提取所有上年保单号
|
|
|
+ */
|
|
|
+ public static List<String> extractPolicyNos(String text) {
|
|
|
+ List<String> list = new ArrayList<>();
|
|
|
+ if (text == null || text.isBlank()) {
|
|
|
+ return list;
|
|
|
+ }
|
|
|
+ Matcher matcher = POLICY_NO_PATTERN.matcher(text);
|
|
|
+ while (matcher.find()) {
|
|
|
+ list.add(matcher.group());
|
|
|
+ }
|
|
|
+ return list;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 核保方法
|
|
|
*
|