|
|
@@ -5,6 +5,10 @@ import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
|
|
import com.jzg.commons.constants.InsuranceRisk;
|
|
|
+import com.jzg.commons.constants.dict.InsOrderStatusEnum;
|
|
|
+import com.jzg.commons.core.page.HttpResult;
|
|
|
+import com.jzg.commons.entity.orders.po.InsOrders;
|
|
|
+import com.jzg.commons.entity.orders.po.InsOrdersPolicy;
|
|
|
import com.jzg.commons.entity.quote.vo.AccidentalDrivingVo;
|
|
|
import com.jzg.commons.entity.quote.vo.CarInfoVo;
|
|
|
import com.jzg.commons.exception.SystemException;
|
|
|
@@ -29,6 +33,7 @@ import com.jzg.quotation.guoren.api.entity.GuoRenApiOrder;
|
|
|
import com.jzg.quotation.guoren.api.entity.GuoRenConfigureParameters;
|
|
|
import com.jzg.quotation.guoren.api.entity.Request.*;
|
|
|
import com.jzg.quotation.guoren.api.entity.Response.*;
|
|
|
+import com.jzg.quotation.guoren.api.entity.dto.DrivingInsuranceDTO;
|
|
|
import com.jzg.quotation.guoren.api.entity.vo.GuoRenAccidentalDrivingVo;
|
|
|
import com.jzg.quotation.guoren.api.entity.vo.GuoRenSpecialAgreementVo;
|
|
|
import com.jzg.quotation.guoren.api.properties.GuoRenApiConfigurationProperties;
|
|
|
@@ -140,6 +145,7 @@ public class GuoRenApiRequestImpl implements GuoRenApiRequest {
|
|
|
guoRenApiOrder.setProductsCode(orderBase.getProductsCode());
|
|
|
guoRenApiOrder.setJqApplyNo(insuranceSlipResponse.getData().getProposalNoDetailVo().getProposalNoCI());
|
|
|
guoRenApiOrder.setSyApplyNo(insuranceSlipResponse.getData().getProposalNoDetailVo().getProposalNoBI());
|
|
|
+ guoRenApiOrder.setOthBusinessNo(carPriceQuery.getInputvo());
|
|
|
return handleSuccessQuote(guoRenApiOrder,quoteVo, premiumResponse);
|
|
|
}
|
|
|
}
|
|
|
@@ -170,6 +176,57 @@ public class GuoRenApiRequestImpl implements GuoRenApiRequest {
|
|
|
|
|
|
SubmitAuditResponse auditResponse = guoRenRequestApiComponent.submitAudit(guoRenApiOrder, parameters);
|
|
|
UnderwritingResultsVo underwritingResultsVo = new UnderwritingResultsVo();
|
|
|
+ String jqStatus = auditResponse.getData().get(0).getUnderWriteFlagCI();
|
|
|
+ String syStatus = auditResponse.getData().get(0).getUnderWriteFlagBI();
|
|
|
+ String message = auditResponse.getData().get(0).getMessage();
|
|
|
+ // 0初始值/1通过/2不通过/3无需核保/9人工核保
|
|
|
+ if (StringUtils.isEmpty(jqStatus) && StringUtils.isEmpty(syStatus)) {
|
|
|
+ underwritingResultsVo.setUnderwritingStatus(InsOrderStatusEnum.AUDIT_FAIL);
|
|
|
+ underwritingResultsVo.setUnderwritingResult("核保失败:"+ message);
|
|
|
+ return underwritingResultsVo;
|
|
|
+ }
|
|
|
+ // 单交核保状态
|
|
|
+ if (StringUtils.isNotEmpty(jqStatus) && StringUtils.isEmpty(syStatus)) {
|
|
|
+ if (jqStatus.equals("1") || jqStatus.equals("3")) {
|
|
|
+ underwritingResultsVo.setUnderwritingStatus(InsOrderStatusEnum.PAY_PENDING);
|
|
|
+ PaymentLinkVo paymentLinkVo = new PaymentLinkVo();
|
|
|
+ paymentLinkVo.setOrder(underwritingVo.getOrder());
|
|
|
+ getPaymentLink(paymentLinkVo);
|
|
|
+ } else if (jqStatus.equals("2")) {
|
|
|
+ underwritingResultsVo.setUnderwritingStatus(InsOrderStatusEnum.AUDIT_FAIL);
|
|
|
+ underwritingResultsVo.setUnderwritingResult(message);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //单商核保状态
|
|
|
+ if (StringUtils.isEmpty(syStatus) && StringUtils.isNotEmpty(syStatus)) {
|
|
|
+ if (syStatus.equals("1") || syStatus.equals("3")) {
|
|
|
+ underwritingResultsVo.setUnderwritingStatus(InsOrderStatusEnum.PAY_PENDING);
|
|
|
+ PaymentLinkVo paymentLinkVo = new PaymentLinkVo();
|
|
|
+ paymentLinkVo.setOrder(underwritingVo.getOrder());
|
|
|
+ getPaymentLink(paymentLinkVo);
|
|
|
+ } else if (syStatus.equals("2")) {
|
|
|
+ underwritingResultsVo.setUnderwritingStatus(InsOrderStatusEnum.AUDIT_FAIL);
|
|
|
+ underwritingResultsVo.setUnderwritingResult(message);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //交商
|
|
|
+ if (StringUtils.isNotEmpty(jqStatus) && StringUtils.isNotEmpty(syStatus)) {
|
|
|
+ if (jqStatus.equals("2") || syStatus.equals("2")) {
|
|
|
+ underwritingResultsVo.setUnderwritingStatus(InsOrderStatusEnum.AUDIT_FAIL);
|
|
|
+ underwritingResultsVo.setUnderwritingResult(message);
|
|
|
+ } else if (jqStatus.equals("1") && syStatus.equals("1")) {
|
|
|
+ underwritingResultsVo.setUnderwritingStatus(InsOrderStatusEnum.PAY_PENDING);
|
|
|
+ PaymentLinkVo paymentLinkVo = new PaymentLinkVo();
|
|
|
+ paymentLinkVo.setOrder(underwritingVo.getOrder());
|
|
|
+ getPaymentLink(paymentLinkVo);
|
|
|
+ } else if (jqStatus.equals("3") && syStatus.equals("3")) {
|
|
|
+ underwritingResultsVo.setUnderwritingStatus(InsOrderStatusEnum.PAY_PENDING);
|
|
|
+ PaymentLinkVo paymentLinkVo = new PaymentLinkVo();
|
|
|
+ paymentLinkVo.setOrder(underwritingVo.getOrder());
|
|
|
+ getPaymentLink(paymentLinkVo);
|
|
|
+ }
|
|
|
+ }
|
|
|
return underwritingResultsVo;
|
|
|
}
|
|
|
|
|
|
@@ -178,7 +235,7 @@ public class GuoRenApiRequestImpl implements GuoRenApiRequest {
|
|
|
* @param paymentLinkVo
|
|
|
*/
|
|
|
@Override
|
|
|
- public PaymentLinkResultsVo getPaymentLink(PaymentLinkVo paymentLinkVo) throws JsonProcessingException {
|
|
|
+ public PaymentLinkResultsVo getPaymentLink(PaymentLinkVo paymentLinkVo) {
|
|
|
//配置信息
|
|
|
GuoRenConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(GuoRenConfigureParameters.class, paymentLinkVo.getOrder().getAttributionInformationVo().getConfigInfo());
|
|
|
GuoRenApiOrder guoRenApiOrder = guoRenApiOrderService.findByOrdersNo(paymentLinkVo.getOrder().getOrdersNo());
|
|
|
@@ -205,43 +262,31 @@ public class GuoRenApiRequestImpl implements GuoRenApiRequest {
|
|
|
|
|
|
/**
|
|
|
* 下载保单
|
|
|
- * @param orderBase
|
|
|
+ * @param downloadPolicyVo
|
|
|
*/
|
|
|
@Override
|
|
|
public DownloadPolicyResultVo downloadPolicy(DownloadPolicyVo downloadPolicyVo) {
|
|
|
- //配置信息
|
|
|
- GuoRenConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(GuoRenConfigureParameters.class, downloadPolicyVo.getOrder().getAttributionInformationVo().getConfigInfo());
|
|
|
-
|
|
|
- String policyPrintType = "";//以后增加赋值
|
|
|
+ InsOrdersPolicy policie = downloadPolicyVo.getPolicie();
|
|
|
+ DownloadPolicyResultVo downloadPolicyResultVo = new DownloadPolicyResultVo();
|
|
|
GuoRenApiOrder guoRenApiOrder = guoRenApiOrderService.findByOrdersNo(downloadPolicyVo.getOrder().getOrdersNo());
|
|
|
- String riskCode = "";
|
|
|
- String templateName;
|
|
|
- String busNo = "";
|
|
|
- String url;
|
|
|
-
|
|
|
- if (InsuranceRisk.TRAFFIC.getCode().equals(riskCode)) {
|
|
|
- PolicyResponse ciResponse = guoRenRequestApiComponent.policyPrint(guoRenApiOrder.getJqPolicyNo());
|
|
|
- if (PolicyPrintType.PPT_1.getCode().equals(policyPrintType)) {
|
|
|
- templateName = "-交强险标志.pdf";
|
|
|
- //交强险标志
|
|
|
- url = properties.getPolicyFlagUrl() + ciResponse.getData();
|
|
|
- } else {
|
|
|
- templateName = "-交强险保单.pdf";
|
|
|
- url = properties.getPolicyUrl() + ciResponse.getData();
|
|
|
- }
|
|
|
- } else if (InsuranceRisk.BUSINESS.getCode().equals(riskCode)) {
|
|
|
- templateName = "-商业险保单.pdf";
|
|
|
- PolicyResponse biResponse = guoRenRequestApiComponent.policyPrint(guoRenApiOrder.getSyPolicyNo());
|
|
|
- url = properties.getPolicyUrl() + biResponse.getData();
|
|
|
- } else if (InsuranceRisk.ACCIDENT.getCode().equals(riskCode)) {
|
|
|
- //busNo = policyPrintVo.getPolicyNumber();
|
|
|
- url = guoRenRequestApiComponent.noCarElectronicPolicy(properties.getChannelCode(),
|
|
|
- downloadPolicyVo.getOrder().getOrdersNo(), busNo);//以后需观察参数是否正确
|
|
|
- templateName = busNo + "-非车险保单.pdf";
|
|
|
- } else {
|
|
|
- throw new SystemException("保险编号异常");
|
|
|
+ // 获取保单号
|
|
|
+ String jqPolicyNo = policie.getJqPolicyNo();
|
|
|
+ String syPolicyNo = policie.getSyPolicyNo();
|
|
|
+ String jyPolicyNo = policie.getJyPolicyNo();
|
|
|
+ if (jqPolicyNo != null) {
|
|
|
+ PolicyResponse jqResponse = guoRenRequestApiComponent.policyPrint(jqPolicyNo);
|
|
|
+ downloadPolicyResultVo.setJqFlagUrl(properties.getPolicyFlagUrl() + jqResponse.getData());
|
|
|
+ downloadPolicyResultVo.setJqUrl(properties.getPolicyUrl() + jqResponse.getData());
|
|
|
}
|
|
|
- return null;
|
|
|
+ if (syPolicyNo != null) {
|
|
|
+ PolicyResponse syResponse = guoRenRequestApiComponent.policyPrint(syPolicyNo);
|
|
|
+ downloadPolicyResultVo.setSyUrl(properties.getPolicyUrl() + syResponse.getData());
|
|
|
+ }
|
|
|
+ if (jyPolicyNo != null) {
|
|
|
+ String jyResponse = guoRenRequestApiComponent.noCarElectronicPolicy(properties.getChannelCode(),guoRenApiOrder.getOthBusinessNo(),jyPolicyNo);
|
|
|
+ downloadPolicyResultVo.setJyUrl(jyResponse);
|
|
|
+ }
|
|
|
+ return downloadPolicyResultVo;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -251,17 +296,69 @@ public class GuoRenApiRequestImpl implements GuoRenApiRequest {
|
|
|
*/
|
|
|
@Override
|
|
|
public OrderStatusResultVo queryOrderState(OrderStatusVo orderBase) {
|
|
|
- //配置信息
|
|
|
- GuoRenConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(GuoRenConfigureParameters.class, orderBase.getOrder().getAttributionInformationVo().getConfigInfo());
|
|
|
+ //查询投保单信息
|
|
|
+ InsOrdersPolicy insOrdersPolicy = orderBase.getInsOrdersPolicy();
|
|
|
+ InsOrders insOrders = orderBase.getInsOrders();
|
|
|
+ // 获取保司订单状态
|
|
|
+ OrderStateResponse orderStateResponse = insOrderStatus(insOrdersPolicy);
|
|
|
GuoRenApiOrder guoRenApiOrder = guoRenApiOrderService.findByOrdersNo(orderBase.getOrder().getOrdersNo());
|
|
|
+ OrderStatusResultVo orderStatusResultVo = new OrderStatusResultVo();
|
|
|
+ if (null != orderStateResponse && CollUtil.isNotEmpty(orderStateResponse.getData())) {
|
|
|
+ OrderStateResponse.DataDTO jqDataDTO =
|
|
|
+ orderStateResponse.getData().stream().filter(a -> a.getProposalNo().equals(insOrdersPolicy.getJqApplyNo())).findFirst().orElse(null);
|
|
|
+ OrderStateResponse.DataDTO syDataDTO =
|
|
|
+ orderStateResponse.getData().stream().filter(b -> b.getProposalNo().equals(insOrdersPolicy.getSyApplyNo())).findFirst().orElse(null);
|
|
|
+
|
|
|
+ //待核保订单处理
|
|
|
+ if (insOrders.getOrderStatus().equals(InsOrderStatusEnum.WAIT_AUDIT.getCode())) {
|
|
|
+ //单交
|
|
|
+ boolean jqBoo = null != jqDataDTO && null == syDataDTO && jqDataDTO.getUnderwriteFlag().equals("1");
|
|
|
+ //单商
|
|
|
+ boolean syBoo = null != syDataDTO && null == jqDataDTO && syDataDTO.getUnderwriteFlag().equals("1");
|
|
|
+ //交商
|
|
|
+ boolean jqSyBoo =
|
|
|
+ null != syDataDTO && null != jqDataDTO && syDataDTO.getUnderwriteFlag().equals("1") && jqDataDTO.getUnderwriteFlag().equals("1");
|
|
|
+ if (jqBoo || syBoo || jqSyBoo) {
|
|
|
+ orderStatusResultVo.setOrderStatus(InsOrderStatusEnum.PAY_PENDING);
|
|
|
+ PaymentLinkVo paymentLinkVo = new PaymentLinkVo();
|
|
|
+ paymentLinkVo.setOrder(orderBase.getOrder());
|
|
|
+ PaymentLinkResultsVo paymentLinkResultsVo = getPaymentLink(paymentLinkVo);
|
|
|
+ orderStatusResultVo.setPaymentLink(paymentLinkResultsVo.getPaymentLink());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ boolean updateFlag = false;
|
|
|
+ if (null != jqDataDTO && StringUtils.isNotEmpty(jqDataDTO.getPolicyNo())) {
|
|
|
+ orderStatusResultVo.setJqPolicyno(jqDataDTO.getPolicyNo());
|
|
|
+ updateFlag = true;
|
|
|
+ }
|
|
|
+ if (null != syDataDTO && StringUtils.isNotEmpty(syDataDTO.getPolicyNo())) {
|
|
|
+ orderStatusResultVo.setSyPolicyno(syDataDTO.getPolicyNo());
|
|
|
+ updateFlag = true;
|
|
|
+ }
|
|
|
|
|
|
- OrderStateRequest orderStateRequest = new OrderStateRequest();
|
|
|
- orderStateRequest.addProposalNos(guoRenApiOrder.getJqApplyNo());
|
|
|
- orderStateRequest.addProposalNos(guoRenApiOrder.getSyApplyNo());
|
|
|
+ // 支付
|
|
|
+ if (updateFlag) {
|
|
|
+ orderStatusResultVo.setOrderStatus(InsOrderStatusEnum.UNDERWRITED);
|
|
|
+ List<DrivingInsuranceDTO> drivingInsuranceDTOList = guoRenRequestApiComponent.queryNoCarPolicyNo(guoRenApiOrder);
|
|
|
+ drivingInsuranceDTOList.forEach(drivingInsuranceDTO -> {
|
|
|
+ orderStatusResultVo.setJyPolicyno(drivingInsuranceDTO.getPolicyNumber());
|
|
|
+ orderStatusResultVo.setJyApplyNo(drivingInsuranceDTO.getApplicationNumber());
|
|
|
+ });
|
|
|
+ return orderStatusResultVo;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }
|
|
|
|
|
|
- OrderStateResponse orderStateResponse = guoRenRequestApiComponent.request(orderStateRequest, PlatformInterfaceCode.API_IIRBT00010,
|
|
|
+ public OrderStateResponse insOrderStatus(InsOrdersPolicy insOrdersPolicy) {
|
|
|
+ OrderStateRequest orderStateRequest = new OrderStateRequest();
|
|
|
+ // 交强投保单号
|
|
|
+ orderStateRequest.addProposalNos(insOrdersPolicy.getJqApplyNo());
|
|
|
+ // 商业投保单号
|
|
|
+ orderStateRequest.addProposalNos(insOrdersPolicy.getSyApplyNo());
|
|
|
+ //投保单状态查询
|
|
|
+ return guoRenRequestApiComponent.request(orderStateRequest, PlatformInterfaceCode.API_IIRBT00010,
|
|
|
OrderStateResponse.class);
|
|
|
- return null;
|
|
|
}
|
|
|
|
|
|
/**
|