|
|
@@ -33,6 +33,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
+import java.util.Optional;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
@@ -115,7 +116,7 @@ public class BoHaiApiRequestImpl implements BoHaiApiRequest {
|
|
|
OrderBase order = quoteVo.getOrder();
|
|
|
AttributionInformationVo attributionInformationVo = order.getAttributionInformationVo();
|
|
|
//配置信息
|
|
|
- String url = getApiUrl(order.getInsuranceCompanyId());
|
|
|
+ String url = getApiUrl(order.getInsuranceCompanyCode());
|
|
|
BoHaiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(BoHaiConfigureParameters.class, attributionInformationVo.getConfigInfo());
|
|
|
// 生成订单号
|
|
|
GenerateOrderNoRequest generateOrderNoRequest = new GenerateOrderNoRequest(parameters);
|
|
|
@@ -216,14 +217,19 @@ public class BoHaiApiRequestImpl implements BoHaiApiRequest {
|
|
|
} else if ("A0".equals(jqStatus) || "A0".equals(syStatus)) {
|
|
|
// 自动核保成功
|
|
|
underwritingResultsVo.setUnderwritingStatus(InsOrderStatusEnum.PAY_PENDING);
|
|
|
- String jq = underwritingResponse.getData().getTrafficPolicy().getApplicationNo(); // 交强险投保单号
|
|
|
- String sy = underwritingResponse.getData().getBusinessPolicy().getApplicationNo(); // 商业险投保单号
|
|
|
- underwritingResultsVo.setJqApplyNo(jq);
|
|
|
- underwritingResultsVo.setSyApplyNo(sy);
|
|
|
+ if (underwritingResponse.getData().getTrafficPolicy() != null) {
|
|
|
+ String jq = underwritingResponse.getData().getTrafficPolicy().getApplicationNo(); // 交强险投保单号
|
|
|
+ underwritingResultsVo.setJqApplyNo(jq);
|
|
|
+ }
|
|
|
+ if (underwritingResponse.getData().getBusinessPolicy() != null) {
|
|
|
+ String sy = underwritingResponse.getData().getBusinessPolicy().getApplicationNo(); // 商业险投保单号
|
|
|
+ underwritingResultsVo.setSyApplyNo(sy);
|
|
|
+ }
|
|
|
// 获取缴费地址
|
|
|
PaymentLinkVo paymentLinkVo = new PaymentLinkVo();
|
|
|
paymentLinkVo.setOrder(underwritingVo.getOrder());
|
|
|
- getPaymentLink(paymentLinkVo);
|
|
|
+ PaymentLinkResultsVo paymentLinkResultsVo = getPaymentLink(paymentLinkVo);
|
|
|
+ underwritingResultsVo.setPaymentLink(paymentLinkResultsVo.getPaymentLink());
|
|
|
// 如果有驾意险 获取驾意险投保单号
|
|
|
if (underwritingResponse.getData().getCasualtyPolicies().size() > 0) {
|
|
|
String jyApplyNo = underwritingResponse.getData().getCasualtyPolicies().get(0).getApplicationNo(); // 驾意险投保单号
|
|
|
@@ -317,12 +323,18 @@ public class BoHaiApiRequestImpl implements BoHaiApiRequest {
|
|
|
List<StatusDocumentsResponse.DataDTO.DocumentListDTO> documentList = getDocumentListDTO(orderStatusVo,url);
|
|
|
OrderStatusResultVo orderStatusResultVo = new OrderStatusResultVo();
|
|
|
List<StatusDocumentsResponse.DataDTO.DocumentListDTO> documentListDTOS =
|
|
|
- documentList.stream().filter(x -> ResultCode.RC_A0.getCode().equals(x.getStatus())).collect(Collectors.toList());
|
|
|
+ documentList.stream().filter(x -> ResultCode.RC_A0.getCode().equals(x.getStatus())).toList();
|
|
|
documentList = documentList.stream().filter(doc -> !doc.getInsuranceType().equals("2")).collect(Collectors.toList());
|
|
|
- StatusDocumentsResponse.DataDTO.DocumentListDTO jqDocumentListDTO = (StatusDocumentsResponse.DataDTO.DocumentListDTO) documentList.stream().filter(doc -> doc.getInsuranceType().equals("1"));
|
|
|
- StatusDocumentsResponse.DataDTO.DocumentListDTO syDocumentListDTO = (StatusDocumentsResponse.DataDTO.DocumentListDTO) documentList.stream().filter(doc -> doc.getInsuranceType().equals("2"));
|
|
|
- String jqStatus = jqDocumentListDTO.getStatus();
|
|
|
- String syStatus = syDocumentListDTO.getStatus();
|
|
|
+ Optional<StatusDocumentsResponse.DataDTO.DocumentListDTO> jqDocOpt = documentList.stream()
|
|
|
+ .filter(doc -> "1".equals(doc.getInsuranceType()))
|
|
|
+ .findFirst();
|
|
|
+ Optional<StatusDocumentsResponse.DataDTO.DocumentListDTO> syDocOpt = documentList.stream()
|
|
|
+ .filter(doc -> "2".equals(doc.getInsuranceType()))
|
|
|
+ .findFirst();
|
|
|
+ String jqStatus = jqDocOpt.map(StatusDocumentsResponse.DataDTO.DocumentListDTO::getStatus)
|
|
|
+ .orElse("");
|
|
|
+ String syStatus = syDocOpt.map(StatusDocumentsResponse.DataDTO.DocumentListDTO::getStatus)
|
|
|
+ .orElse("");
|
|
|
// 核保通过
|
|
|
if (jqStatus.equals(ResultCode.RC_A0.getCode()) || syStatus.equals(ResultCode.RC_A0.getCode())) {
|
|
|
orderStatusResultVo.setOrderStatus(InsOrderStatusEnum.PAY_PENDING);
|
|
|
@@ -338,12 +350,18 @@ public class BoHaiApiRequestImpl implements BoHaiApiRequest {
|
|
|
// 核保失败
|
|
|
orderStatusResultVo.setOrderStatus(InsOrderStatusEnum.AUDIT_FAIL);
|
|
|
StringBuilder sb = new StringBuilder();
|
|
|
- if (null != jqDocumentListDTO.getAuditOpinion()) {
|
|
|
- sb.append(String.format("交强险提示信息:s%", jqDocumentListDTO.getAuditOpinion()));
|
|
|
- }
|
|
|
- if (null != syDocumentListDTO.getAuditOpinion()) {
|
|
|
- sb.append(String.format("商业险提示信息:s%", syDocumentListDTO.getAuditOpinion()));
|
|
|
- }
|
|
|
+ jqDocOpt.ifPresent(doc -> {
|
|
|
+ String auditOpinion = doc.getAuditOpinion();
|
|
|
+ if (auditOpinion != null && !auditOpinion.isEmpty()) {
|
|
|
+ sb.append(String.format("交强险提示信息:%s", auditOpinion));
|
|
|
+ }
|
|
|
+ });
|
|
|
+ syDocOpt.ifPresent(doc -> {
|
|
|
+ String auditOpinion = doc.getAuditOpinion();
|
|
|
+ if (auditOpinion != null && !auditOpinion.isEmpty()) {
|
|
|
+ sb.append(String.format("商业险提示信息:%s", auditOpinion));
|
|
|
+ }
|
|
|
+ });
|
|
|
orderStatusResultVo.setErrorMsg(sb.toString());
|
|
|
// 已承保
|
|
|
} else if (jqStatus.equals(ResultCode.RC_B5.getCode()) || syStatus.equals(ResultCode.RC_B5.getCode())) {
|