|
|
@@ -43,6 +43,7 @@ import java.text.SimpleDateFormat;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
+import java.util.Objects;
|
|
|
|
|
|
@QuoteCrawlerService(value = InsuranceCode.INSURANCE_TKIC)
|
|
|
@RequiredArgsConstructor
|
|
|
@@ -187,24 +188,35 @@ public class TKQuotationBaseServiceImpl implements TKQuotationBaseService {
|
|
|
TKInsureInfo insureInfo = tkSimpleService.dataCreateInsureInfo(initProposalResult, insOrdersCarUserInfo);
|
|
|
log.info("车主信息:{}", new Gson().toJson(insureInfo));
|
|
|
// # 车险投保单报价下单
|
|
|
- TKEntranceFor000038Result tkEntranceFor000038Result = tkSimpleService.orderSubmit(session, preciseInitResult.getMainOrderId(), insureInfo);
|
|
|
+ TKEntranceFor000038Result.Response tkEntranceFor000038Result = tkSimpleService.orderSubmit(session, preciseInitResult.getMainOrderId(), insureInfo);
|
|
|
UnderwritingResultsVo underwritingResultsVo = new UnderwritingResultsVo();
|
|
|
- if (tkEntranceFor000038Result == null) {
|
|
|
- underwritingResultsVo.setUnderwritingResult("核保失败");
|
|
|
+ if (tkEntranceFor000038Result == null || tkEntranceFor000038Result.getStatus() == 0) {
|
|
|
+ underwritingResultsVo.setUnderwritingResult("核保失败: " + Objects.requireNonNull(tkEntranceFor000038Result).getMessage());
|
|
|
underwritingResultsVo.setUnderwritingStatus(InsOrderStatusEnum.AUDIT_FAIL);
|
|
|
tkCrawlerOrderService.save(underwritingVo, underwritingResultsVo, preciseInitResult.getMainOrderId(), false);
|
|
|
return underwritingResultsVo;
|
|
|
}
|
|
|
+
|
|
|
+ // 调用 entranceFor000021,为获取支付链接做预处理 TODO
|
|
|
+ log.info("orderSubmit 开始调用 entranceFor000021(支付链接预处理),mainOrderId={}", preciseInitResult.getMainOrderId());
|
|
|
+ TKEntranceFor000021Result tkEntranceFor000021Result = httpService.entranceFor000021(session.getToken(), session.getFromid(), preciseInitResult.getMainOrderId());
|
|
|
+ log.info("orderSubmit entranceFor000021 调用完成,tkEntranceFor000021Result={}", JSONObject.toJSONString(tkEntranceFor000021Result));
|
|
|
+
|
|
|
+ // 调用 entranceFor000052,基于核保结果做后续处理
|
|
|
+ log.info("orderSubmit 开始调用 entranceFor000052,mainOrderId={}", preciseInitResult.getMainOrderId());
|
|
|
+ TKEntranceFor000052Result tkEntranceFor000052Result = httpService.entranceFor000052(session.getToken(), tkEntranceFor000038Result.getData());
|
|
|
+ log.info("orderSubmit entranceFor000052 调用完成,tkEntranceFor000052Result={}", JSONObject.toJSONString(tkEntranceFor000052Result));
|
|
|
+
|
|
|
// 获取核保返回数据
|
|
|
- TKOrderData tkOrderData = tkEntranceFor000038Result.getData();
|
|
|
+ TKOrderData tkOrderData = tkEntranceFor000038Result.getData().getData();
|
|
|
|
|
|
// 检查 resultType 判断核保是否自核通过(与Python逻辑一致)
|
|
|
String resultType = tkOrderData.getResultType();
|
|
|
if (!"自核通过".equals(resultType)) {
|
|
|
// 非自核通过,判定为人工核保或其他状态
|
|
|
String spResMsg = tkOrderData.getSpResMsg();
|
|
|
- String checkReason = tkEntranceFor000038Result.getCheckReason() != null
|
|
|
- ? tkEntranceFor000038Result.getCheckReason().toString()
|
|
|
+ String checkReason = tkEntranceFor000038Result.getData().getCheckReason() != null
|
|
|
+ ? tkEntranceFor000038Result.getData().getCheckReason().toString()
|
|
|
: "";
|
|
|
String msg = (spResMsg != null && !spResMsg.isEmpty()) ? spResMsg : ("请联系运维人员处理" + checkReason);
|
|
|
underwritingResultsVo.setUnderwritingResult("人工审核返回:" + msg);
|
|
|
@@ -230,8 +242,8 @@ public class TKQuotationBaseServiceImpl implements TKQuotationBaseService {
|
|
|
// 核保状态
|
|
|
underwritingResultsVo.setUnderwritingStatus(InsOrderStatusEnum.PAY_PENDING);
|
|
|
// 验车标志,需要验车,需要上传影像(仅检查 checkCarFlag 是否为 1)
|
|
|
- if ("1".equals(tkEntranceFor000038Result.getCheckCarFlag())) {
|
|
|
- buildCheckCar(tkEntranceFor000038Result, underwritingVo, preciseInitResult, underwritingResultsVo);
|
|
|
+ if ("1".equals(tkEntranceFor000038Result.getData().getCheckCarFlag())) {
|
|
|
+ buildCheckCar(tkEntranceFor000038Result.getData(), underwritingVo, preciseInitResult, underwritingResultsVo);
|
|
|
}
|
|
|
tkCrawlerOrderService.save(underwritingVo, underwritingResultsVo, preciseInitResult.getMainOrderId(), true);
|
|
|
log.info("泰康核保流程结束,结果:{}", JSONObject.toJSONString(underwritingResultsVo));
|