|
|
@@ -555,13 +555,26 @@ public class HuaTaiCrawlerRequestImpl implements HuaTaiCrawlerRequest {
|
|
|
private QuoteVo handleQuoteErrors(String decryptData, QuoteVo q) {
|
|
|
boolean hasError = decryptData.contains("erroeInfo") || decryptData.contains("errrorFlag");
|
|
|
if (!hasError) return q;
|
|
|
+ if (decryptData.contains("本机构并未配置此险种") || decryptData.contains("重复投保的其它公司") ||
|
|
|
+ (decryptData.contains("发生重复投保") && !decryptData.contains("终保日期"))) {
|
|
|
+ try {
|
|
|
+ throw new SystemException(MAPPER.readValue(decryptData, Map.class).get("erroeInfo").toString());
|
|
|
+ } catch (JsonProcessingException e) {
|
|
|
+ throw new RuntimeException(e);
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- boolean dup = decryptData.contains("发生重复投保") && decryptData.contains("终保日期");
|
|
|
-
|
|
|
- if (dup) {
|
|
|
+ if (decryptData.contains("发生重复投保") && decryptData.contains("终保日期")) {
|
|
|
q = handleDuplicateInsurance(decryptData, q);
|
|
|
return q;
|
|
|
}
|
|
|
+ if (decryptData.contains("erroeInfo") || decryptData.contains("errrorFlag")) {
|
|
|
+ try {
|
|
|
+ throw new SystemException(MAPPER.readValue(decryptData, Map.class).get("erroeInfo").toString());
|
|
|
+ } catch (JsonProcessingException e) {
|
|
|
+ throw new RuntimeException(e);
|
|
|
+ }
|
|
|
+ }
|
|
|
return q;
|
|
|
}
|
|
|
|
|
|
@@ -586,6 +599,8 @@ public class HuaTaiCrawlerRequestImpl implements HuaTaiCrawlerRequest {
|
|
|
|
|
|
private HtCrawlerQuoteResponse.DataDTO resolveQuoteResponse(QuoteVo q, String decryptData, String mealid, String limitAmount,
|
|
|
HttpHeaders h, String personalInsuredJSON) throws Exception {
|
|
|
+ //单交不能重复投
|
|
|
+ if (decryptData.contains("存在有效交强险保单") || decryptData.contains("重复投保的其它公司")) throw new Exception(decryptData);
|
|
|
HtCrawlerQuoteResponse.DataDTO data = JSONObject.parseObject(decryptData, HtCrawlerQuoteResponse.DataDTO.class);
|
|
|
if (data.getApplicationdto() != null) return data;
|
|
|
|
|
|
@@ -681,6 +696,7 @@ public class HuaTaiCrawlerRequestImpl implements HuaTaiCrawlerRequest {
|
|
|
doLoginCookie(attr);
|
|
|
|
|
|
HtCrawlerOrder order = orderService.findByOrdersNo(vo.getOrder().getOrdersNo());
|
|
|
+ if("N".equals(order.getCiCategory()) || "6C".equals(order.getCiCategory())) throw new SystemException("核保失败-------强制下发修改意见,1.N类、6C类业务,请确认业务类别后再提交核保。");
|
|
|
vo.getOrder().setQuoteNo(order.getQuotationRelaNo());
|
|
|
|
|
|
HtCrawlerSubmitRequest submit = new HtCrawlerSubmitRequest(vo, params, order.getCiCategory(), order.getBiCategory());
|
|
|
@@ -693,7 +709,7 @@ public class HuaTaiCrawlerRequestImpl implements HuaTaiCrawlerRequest {
|
|
|
if (res.contains("起保时间不正确")) {
|
|
|
throw new SystemException("起保时间不正确-------即时起保分钟数必须为00/15/30/45\n请重新选择起保时间!");
|
|
|
}
|
|
|
- if (res.contains("需转人工核保")) return handleManualUnderwriting(order, params);
|
|
|
+ if (res.contains("转人工")) return handleManualUnderwriting(order, params);
|
|
|
if (res.contains("已通过核保未实收") || isPassHB(map)) return handlePassedUnderwriting(order, params, vo);
|
|
|
|
|
|
UnderwritingResultsVo r = new UnderwritingResultsVo();
|
|
|
@@ -741,10 +757,7 @@ public class HuaTaiCrawlerRequestImpl implements HuaTaiCrawlerRequest {
|
|
|
throw new SystemException("审核未通过:" + (s >= 0 && e > s ? html.substring(s, e) : "审核未通过"));
|
|
|
} catch (SystemException se) { throw se; }
|
|
|
catch (Exception e) {
|
|
|
- log.error("人工核保处理异常", e);
|
|
|
- UnderwritingResultsVo r = new UnderwritingResultsVo();
|
|
|
- r.setUnderwritingStatus(InsOrderStatusEnum.WAIT_AUDIT);
|
|
|
- return r;
|
|
|
+ throw new SystemException(e.getMessage());
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -1078,6 +1091,7 @@ public class HuaTaiCrawlerRequestImpl implements HuaTaiCrawlerRequest {
|
|
|
UriComponentsBuilder b = UriComponentsBuilder.fromHttpUrl(url);
|
|
|
if (queryParams != null) queryParams.forEach(b::queryParam);
|
|
|
String body = RT.exchange(b.toUriString(), HttpMethod.POST, new HttpEntity<>(data, headers), String.class).getBody();
|
|
|
+ log.info("转人工响应结果,{}", body);
|
|
|
return MAPPER.readValue(body, Map.class);
|
|
|
}
|
|
|
|