Преглед изворни кода

Merge remote-tracking branch 'origin/master'

wks пре 1 година
родитељ
комит
7c1ad972ef
11 измењених фајлова са 331 додато и 74 уклоњено
  1. 107 14
      tenant/insurance/quotation-bohai/src/main/java/com/jzg/quotation/bohai/api/service/impl/BoHaiApiRequestImpl.java
  2. 1 1
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/entity/vo/aggregated/DownloadPolicyResultVo.java
  3. 11 0
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/entity/vo/aggregated/DownloadPolicyVo.java
  4. 1 1
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/service/QuotationBaseService.java
  5. 3 4
      tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/api/component/GuoRenRequestApiComponent.java
  6. 4 0
      tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/api/entity/GuoRenApiOrder.java
  7. 137 40
      tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/api/service/Impl/GuoRenApiRequestImpl.java
  8. 2 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/factory/CompanyFactory.java
  9. 1 1
      tenant/insurance/quotation-yangguang/src/main/java/com/jzg/quotation/yangguang/api/service/impl/YangGuangApiRequestImpl.java
  10. 8 0
      tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/api/entity/request/InsurancePolicyPrintRequest.java
  11. 56 13
      tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/api/service/impl/ZhongMeiApiRequestImpl.java

+ 107 - 14
tenant/insurance/quotation-bohai/src/main/java/com/jzg/quotation/bohai/api/service/impl/BoHaiApiRequestImpl.java

@@ -1,12 +1,15 @@
 package com.jzg.quotation.bohai.api.service.impl;
 
 import com.jzg.commons.constants.InsuranceRisk;
+import com.jzg.commons.constants.dict.InsOrderStatusEnum;
+import com.jzg.commons.entity.orders.po.InsOrdersPolicy;
 import com.jzg.commons.entity.quote.vo.*;
 import com.jzg.commons.exception.SystemException;
 import com.jzg.commons.util.StringUtils;
 import com.jzg.quotation.bohai.api.build.BoHaiApiQuoteResultsVoBuild;
 import com.jzg.quotation.bohai.api.component.BoHaiRequestApiComponent;
 import com.jzg.quotation.bohai.api.constant.enums.ResponseCode;
+import com.jzg.quotation.bohai.api.constant.enums.ResultCode;
 import com.jzg.quotation.bohai.api.entity.BoHaiConfigureParameters;
 import com.jzg.quotation.bohai.api.entity.po.BoHaiApiOrder;
 import com.jzg.quotation.bohai.api.entity.request.*;
@@ -23,9 +26,11 @@ import com.jzg.quotation.commons.standard.conversion.ConfigureParametersConversi
 import com.jzg.quotation.commons.utils.DateUtil;
 import lombok.RequiredArgsConstructor;
 
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * @description:
@@ -169,13 +174,48 @@ public class BoHaiApiRequestImpl implements BoHaiApiRequest {
         OrderBase order = underwritingVo.getOrder();
         //获取配置信息
         BoHaiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(BoHaiConfigureParameters.class, order.getAttributionInformationVo().getConfigInfo());
-
         //核保请求
         BoHaiApiOrder apiOrder = boHaiApiOrderService.findByOrdersNo(order.getOrdersNo());
         UnderwritingRequest underwritingRequest = new UnderwritingRequest(parameters, apiOrder.getOrderNo());
         UnderwritingResponse underwritingResponse;
         UnderwritingResultsVo underwritingResultsVo = new UnderwritingResultsVo();
         underwritingResponse = boHaiRequestApiComponent.underwriting(underwritingRequest, parameters.getSysSourceCode());
+        if (ResponseCode.R_Z00001.getCode().equals(underwritingResponse.getResponseCode())) {
+            String jqStatus = underwritingResponse.getData().getTrafficResultCode();
+            String syStatus = underwritingResponse.getData().getBusinessResultCode();
+            if ("A4".equals(jqStatus) || "A4".equals(syStatus)) {
+                //人工核保
+                underwritingResultsVo.setUnderwritingStatus(InsOrderStatusEnum.STAFF_PROCESS);
+                underwritingResultsVo.setUnderwritingResult("人工处理");
+            } else if ("A6".equals(jqStatus) || "A6".equals(syStatus)) {
+                // 核保失败
+                underwritingResultsVo.setUnderwritingStatus(InsOrderStatusEnum.AUDIT_FAIL);
+                StringBuilder sb = new StringBuilder();
+                if (null != underwritingResponse.getData().getTrafficResultMsg()) {
+                    sb.append(String.format("交强险提示信息:s%", underwritingResponse.getData().getTrafficResultMsg()));
+                }
+                if (null != underwritingResponse.getData().getBusinessResultMsg()) {
+                    sb.append(String.format("商业险提示信息:s%", underwritingResponse.getData().getBusinessResultMsg()));
+                }
+                underwritingResultsVo.setUnderwritingResult(sb.toString());
+            } 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);
+                // 获取缴费地址
+                PaymentLinkVo paymentLinkVo = new PaymentLinkVo();
+                paymentLinkVo.setOrder(underwritingVo.getOrder());
+                getPaymentLink(paymentLinkVo);
+                // 如果有驾意险 获取驾意险投保单号
+                if (underwritingResponse.getData().getCasualtyPolicies().size() > 0) {
+                    String jyApplyNo = underwritingResponse.getData().getCasualtyPolicies().get(0).getApplicationNo(); // 驾意险投保单号
+                    underwritingResultsVo.setJyApplyNo(jyApplyNo);
+                }
+            }
+        }
 
         return underwritingResultsVo;
     }
@@ -222,34 +262,87 @@ public class BoHaiApiRequestImpl implements BoHaiApiRequest {
         //获取配置信息
         BoHaiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(BoHaiConfigureParameters.class, downloadPolicyVo.getOrder().getAttributionInformationVo().getConfigInfo());
         BoHaiApiOrder apiOrder = boHaiApiOrderService.findByOrdersNo(downloadPolicyVo.getOrder().getOrdersNo());
+        // 保单号
+        InsOrdersPolicy policie = downloadPolicyVo.getPolicie();
+        String jqPolicyNo = policie.getJqPolicyNo();
+        String syPolicyNo = policie.getSyPolicyNo();
         // 如何获取交强险保单号,商业险保单号 待补充
-        ElectronicPolicyRequest electronicPolicyRequest = new ElectronicPolicyRequest(parameters, apiOrder.getOrderNo(), "", "");
+        ElectronicPolicyRequest electronicPolicyRequest = new ElectronicPolicyRequest(parameters, apiOrder.getOrderNo(), jqPolicyNo, syPolicyNo);
         ElectronicPolicyResponse electronicPolicyResponse;
+        DownloadPolicyResultVo downloadPolicyResultVo = new DownloadPolicyResultVo();
         try {
             electronicPolicyResponse = boHaiRequestApiComponent.electronicPolicy(electronicPolicyRequest, parameters.getSysSourceCode());
+            ElectronicPolicyResponse.DataDTO data = electronicPolicyResponse.getData();
+            if (StringUtils.isNotEmpty(data.getTrafficEPolicyUrl())) {
+                downloadPolicyResultVo.setJqUrl(data.getTrafficEPolicyUrl());
+                downloadPolicyResultVo.setJqFlagUrl(data.getTrafficEFlagUrl());
+            }
+            if (StringUtils.isNotEmpty(data.getBusinessEPolicyUrl())) {
+                downloadPolicyResultVo.setSyUrl(data.getBusinessEPolicyUrl());
+            }
+            if (StringUtils.isNotEmpty(data.getAcciEPolicyUrl())) {
+                downloadPolicyResultVo.setJyUrl(data.getAcciEPolicyUrl());
+            }
         } catch (Exception e) {
             throw new RuntimeException(e);
         }
-        return null;
+        return downloadPolicyResultVo;
     }
 
     /**
-     * 后续需补充如何获取投保单号
+     * 查询订单状态
      * @param orderStatusVo
      */
     @Override
-    public OrderStatusResultVo queryOrderState(OrderStatusVo orderStatusVo) {
-        //获取配置信息
+    public OrderStatusResultVo queryOrderState(OrderStatusVo orderStatusVo) throws Exception {
+        List<StatusDocumentsResponse.DataDTO.DocumentListDTO> documentList = getDocumentListDTO(orderStatusVo);
+        OrderStatusResultVo orderStatusResultVo = new OrderStatusResultVo();
+        List<StatusDocumentsResponse.DataDTO.DocumentListDTO> documentListDTOS =
+                documentList.stream().filter(x -> ResultCode.RC_A0.getCode().equals(x.getStatus())).collect(Collectors.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();
+        // 核保通过
+        if (jqStatus.equals(ResultCode.RC_A0.getCode()) || syStatus.equals(ResultCode.RC_A0.getCode())) {
+            orderStatusResultVo.setOrderStatus(InsOrderStatusEnum.PAY_PENDING);
+            // 获取缴费地址
+            PaymentLinkVo paymentLinkVo = new PaymentLinkVo();
+            paymentLinkVo.setOrder(orderStatusVo.getOrder());
+            PaymentLinkResultsVo paymentLinkResultsVo = getPaymentLink(paymentLinkVo);
+            orderStatusResultVo.setPaymentLink(paymentLinkResultsVo.getPaymentLink());
+        } else if (jqStatus.equals(ResultCode.RC_A4.getCode()) || syStatus.equals(ResultCode.RC_A4.getCode())) {
+            // 人工核保
+            orderStatusResultVo.setOrderStatus(InsOrderStatusEnum.STAFF_PROCESS);
+        } else if (jqStatus.equals(ResultCode.RC_A6.getCode()) || syStatus.equals(ResultCode.RC_A6.getCode())) {
+            // 核保失败
+            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()));
+            }
+            orderStatusResultVo.setErrorMsg(sb.toString());
+            // 已承保
+        } else if (jqStatus.equals(ResultCode.RC_B5.getCode()) || syStatus.equals(ResultCode.RC_B5.getCode())) {
+            orderStatusResultVo.setOrderStatus(InsOrderStatusEnum.UNDERWRITED);
+        }
+        return orderStatusResultVo;
+    }
+
+    private List<StatusDocumentsResponse.DataDTO.DocumentListDTO> getDocumentListDTO(OrderStatusVo orderStatusVo) throws Exception {
+        // 账号信息
         BoHaiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(BoHaiConfigureParameters.class, orderStatusVo.getOrder().getAttributionInformationVo().getConfigInfo());
         BoHaiApiOrder apiOrder = boHaiApiOrderService.findByOrdersNo(orderStatusVo.getOrder().getOrdersNo());
-        StatusDocumentsRequest statusDocumentsRequest = new StatusDocumentsRequest(parameters, apiOrder.getOrderNo(),  apiOrder.getProposalNo());
-        StatusDocumentsResponse statusDocumentsResponse;
-        try {
-            statusDocumentsResponse = boHaiRequestApiComponent.statusDocuments(statusDocumentsRequest, parameters.getSysSourceCode());
-        } catch (Exception e) {
-            throw new RuntimeException(e);
-        }
-        return null;
+        // 账号信息
+        String applyno = !StringUtils.isEmpty(orderStatusVo.getInsOrdersPolicy().getJqApplyNo()) ? orderStatusVo.getInsOrdersPolicy().getJqApplyNo() :
+                orderStatusVo.getInsOrdersPolicy().getSyApplyNo();
+        StatusDocumentsRequest statusDocumentsRequest = new StatusDocumentsRequest(parameters, apiOrder.getOrderNo(), applyno);
+        StatusDocumentsResponse response = boHaiRequestApiComponent.statusDocuments(statusDocumentsRequest, parameters.getSysSourceCode());
+        return response.getData().getDocumentList();
     }
 
     public Map<String, Object> getVehicleConfirmationResponse(QuoteVo quoteVo, BoHaiConfigureParameters parameters,

+ 1 - 1
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/entity/vo/aggregated/DownloadPolicyResultVo.java

@@ -19,6 +19,6 @@ public class DownloadPolicyResultVo {
     @Schema(description = "商业险保单地址")
     private String syUrl;
 
-    @Schema(description = "保单地址")
+    @Schema(description = "驾意险保单地址")
     private String jyUrl;
 }

+ 11 - 0
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/entity/vo/aggregated/DownloadPolicyVo.java

@@ -1,5 +1,7 @@
 package com.jzg.quotation.commons.entity.vo.aggregated;
 
+import com.jzg.commons.entity.orders.po.InsOrders;
+import com.jzg.commons.entity.orders.po.InsOrdersCarInfo;
 import com.jzg.commons.entity.orders.po.InsOrdersPolicy;
 import com.jzg.commons.entity.orders.po.InsOrdersRisk;
 import com.jzg.quotation.commons.entity.vo.base.OrderBase;
@@ -25,4 +27,13 @@ public class DownloadPolicyVo {
      * 投保单号信息
      */
     private InsOrdersPolicy policie;
+    /**
+     * 车辆信息
+     */
+    private InsOrdersCarInfo carInfo;
+
+    /**
+     * 类型 1 标志 2 保单
+     */
+    private String type;
 }

+ 1 - 1
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/service/QuotationBaseService.java

@@ -40,6 +40,6 @@ public interface QuotationBaseService {
     /**
      * 查询订单状态
      */
-    OrderStatusResultVo queryOrderState(OrderStatusVo orderStatusVo) throws JsonProcessingException;
+    OrderStatusResultVo queryOrderState(OrderStatusVo orderStatusVo) throws Exception;
 
 }

+ 3 - 4
tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/api/component/GuoRenRequestApiComponent.java

@@ -119,9 +119,9 @@ public class GuoRenRequestApiComponent {
     /**
      * 查询非车险保单号
      */
-    public void queryNoCarPolicyNo(GuoRenApiOrder guoRenApiOrder) {
+    public List<DrivingInsuranceDTO> queryNoCarPolicyNo(GuoRenApiOrder guoRenApiOrder) {
         if (guoRenApiOrder.getJyPremium() == null || guoRenApiOrder.getJyPremium().compareTo(new BigDecimal(0)) == 0) {
-            return;
+            return null;
         }
 
         //构造请求参数
@@ -142,8 +142,7 @@ public class GuoRenRequestApiComponent {
             drivingInsuranceDto.setApplicationNumber(noCarProposalNo.get(i));
             drivingInsuranceDtos.add(drivingInsuranceDto);
         }
-        JSONArray objects = JSON.parseArray(JSON.toJSONString(drivingInsuranceDtos));
-        //guoRenApiOrder.setCrossInsurance(objects);以后注意该数据应如何处理
+        return drivingInsuranceDtos;
     }
 
 

+ 4 - 0
tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/api/entity/GuoRenApiOrder.java

@@ -66,4 +66,8 @@ public class GuoRenApiOrder {
      * 产品代码
      */
     private String productsCode;
+    /**
+     * 外部订单号
+     */
+    private String othBusinessNo;
 }

+ 137 - 40
tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/api/service/Impl/GuoRenApiRequestImpl.java

@@ -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;
     }
 
     /**

+ 2 - 0
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/factory/CompanyFactory.java

@@ -249,6 +249,8 @@ public class CompanyFactory {
                 .eq(InsOrdersRisk::getOrderNo, insOrders.getId())));
         downloadPolicyVo.setPolicie(insOrdersPolicyService.getOne(new LambdaUpdateWrapper<InsOrdersPolicy>()
                 .eq(InsOrdersPolicy::getOrderNo, insOrders.getId())));
+        downloadPolicyVo.setCarInfo(insOrdersCarInfoService.getOne(new LambdaUpdateWrapper<InsOrdersCarInfo>()
+                .eq(InsOrdersCarInfo::getOrderNo, insOrders.getId())));
         HttpResult<PtlAgreementAttribution> agreementAttribution = platformClient.getAgreementAttribution(insOrders.getAgreementId(), token, systemCode);
         AssertionUtils.isFail(agreementAttribution.getCode() == 500, "获取协议属性失败");
         Map<String, String> fieldMap = agreementAttribution.getData().getFields().stream()

+ 1 - 1
tenant/insurance/quotation-yangguang/src/main/java/com/jzg/quotation/yangguang/api/service/impl/YangGuangApiRequestImpl.java

@@ -89,7 +89,7 @@ public class YangGuangApiRequestImpl implements YangGuangApiRequest {
             }
             return handleFailedQuote(response, quoteVo);
         } else {
-            // 商业险有重复投保提示时 设置商业险起保时间 重复递归报价 ps:商业险重复投保不会返回到errorMessage 只会返回到remarkBi 并且会报价成功
+            // 商业险有重复投保提示时 设置商业险起保时间 重复递归报价 ps:商业险重复投保不会返回到errorMessage 只会返回到remarkBi 并且会显示报价成功
             if (!response.getRemarkBi().equals("")) {
                 String remarkBi = response.getRemarkBi();
                 Pattern pattern = Pattern.compile("终保日期:(\\d{12})");

+ 8 - 0
tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/api/entity/request/InsurancePolicyPrintRequest.java

@@ -1,6 +1,8 @@
 package com.jzg.quotation.zhongmei.api.entity.request;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
+import com.jzg.commons.entity.orders.po.InsOrdersPolicy;
+import com.jzg.quotation.commons.entity.vo.aggregated.DownloadPolicyVo;
 import com.jzg.quotation.zhongmei.api.constant.TransCode;
 import com.jzg.quotation.zhongmei.api.entity.BaseRequestHead;
 import lombok.Data;
@@ -61,4 +63,10 @@ public class InsurancePolicyPrintRequest extends BaseRequest {
         super.getHead().setTransCode(TransCode.INSURANCE_POLICY_PRINT);
     }
 
+    public InsurancePolicyPrintRequest(String policyNo, String riskCode, String documentType) {
+        this.policyNo = policyNo;
+        this.riskCode = riskCode;
+        this.documentType = documentType;
+    }
+
 }

+ 56 - 13
tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quotation/zhongmei/api/service/impl/ZhongMeiApiRequestImpl.java

@@ -1,9 +1,13 @@
 package com.jzg.quotation.zhongmei.api.service.impl;
 
 
+import cn.hutool.core.util.ArrayUtil;
+import com.alibaba.fastjson.JSON;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.jzg.commons.constants.dict.InsOrderStatusEnum;
+import com.jzg.commons.entity.orders.po.InsOrdersCarInfo;
 import com.jzg.commons.entity.quote.vo.*;
+import com.jzg.commons.exception.SystemException;
 import com.jzg.commons.util.StringUtils;
 import com.jzg.quotation.commons.annotation.QuoteApiService;
 import com.jzg.quotation.commons.constant.InsuranceCode;
@@ -30,7 +34,9 @@ import org.springframework.transaction.annotation.Transactional;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
 import java.util.List;
+import java.util.Objects;
 
 @QuoteApiService(value = InsuranceCode.INSURANCE_ZMBX)
 @RequiredArgsConstructor
@@ -302,25 +308,62 @@ public class ZhongMeiApiRequestImpl implements ZhongMeiApiRequest {
         OrderBase orderBase = downloadPolicyVo.getOrder();
         AttributionInformationVo attributionInformationVo = orderBase.getAttributionInformationVo();
         ZmApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(ZmApiConfigureParameters.class, attributionInformationVo.getConfigInfo());
+        DownloadPolicyResultVo downloadPolicyResultVo = new DownloadPolicyResultVo();
+        InsOrdersCarInfo carInfo = downloadPolicyVo.getCarInfo();
+        String riskCode;
+        if (carInfo.getEnergyTypeCode().equals("0")) {
+            riskCode = "0361";
+        } else {
+            riskCode = "0365";
+        }
+        String jqPolicyNo = downloadPolicyVo.getPolicie().getJqPolicyNo();
+        if (Objects.nonNull(jqPolicyNo)) {
+            queryPolicy(jqPolicyNo, parameters,"0330",PolicyType.JQ,"2",downloadPolicyResultVo);
+            queryPolicy(jqPolicyNo, parameters,"0330",PolicyType.BZ,"1",downloadPolicyResultVo);
+        }
+        String syPolicyNo = downloadPolicyVo.getPolicie().getSyPolicyNo();
+        if (Objects.nonNull(syPolicyNo)) {
+            queryPolicy(syPolicyNo, parameters,riskCode,PolicyType.SY,"2",downloadPolicyResultVo);
+        }
+        String jyPolicyNo = downloadPolicyVo.getPolicie().getJyPolicyNo();
+        if (Objects.nonNull(jyPolicyNo)) {
+            queryPolicy(jyPolicyNo, parameters,riskCode,PolicyType.JY,"2",downloadPolicyResultVo);
+        }
+        return downloadPolicyResultVo;
+    }
 
-        //先调用缴费查询接口获取保单号
-        OrderStatusRequest orderStatusRequest = new OrderStatusRequest();
-        BaseRequestHead baseRequestHead = new BaseRequestHead(parameters);
-        orderStatusRequest.setHead(baseRequestHead);
-        ZmApiOrder zmApiOrder = zhongmeiApiOrderService.findByOrdersNo(orderBase.getOrdersNo());
-        orderStatusRequest.setBusinessNo(zmApiOrder.getBussinessNo());
-        OrderStatusResponse orderStatusResponse = zmApiRequestComponent.orderStatus(orderStatusRequest, OrderStatusResponse.class);
-
-        //获取保单号,然后调用下载保单接口
-        InsurancePolicyPrintRequest insurancePolicyPrintRequest = new InsurancePolicyPrintRequest();
+    private void queryPolicy(String policyNo,ZmApiConfigureParameters zmApiConfigureParameters,String riskCode,PolicyType policyType,String type,DownloadPolicyResultVo downloadPolicyResultVo) {
+        BaseRequestHead baseRequestHead = new BaseRequestHead(zmApiConfigureParameters);
+        InsurancePolicyPrintRequest insurancePolicyPrintRequest = new InsurancePolicyPrintRequest(policyNo,riskCode,type);
         insurancePolicyPrintRequest.setHead(baseRequestHead);
         // 需设置参数 保单号,险种编码,业务类型,单证类型
-
         InsurancePolicyPrintResponse printResponse = zmApiRequestComponent.insurancePolicyPrint(insurancePolicyPrintRequest, InsurancePolicyPrintResponse.class);
-
-        return null;
+        if ("0".equals(printResponse.getHead().getReturnCode())) {
+            if (ArrayUtil.isNotEmpty(printResponse.getDownloadUrl())) {
+                String url = printResponse.getDownloadUrl().get(0);
+                switch (policyType) {
+                    case JQ:
+                        downloadPolicyResultVo.setJqUrl(url);
+                        break;
+                    case SY:
+                        downloadPolicyResultVo.setSyUrl(url);
+                        break;
+                    case JY:
+                        downloadPolicyResultVo.setJyUrl(url);
+                        break;
+                    case BZ:
+                        downloadPolicyResultVo.setJqFlagUrl(url);
+                        break;
+                }
+            }
+        } else {
+            throw new SystemException(printResponse.getHead().getReturnMessage());
+        }
     }
 
+    private enum PolicyType {
+        JQ, SY, JY, BZ
+    }
 
     @Override
     public OrderStatusResultVo queryOrderState(OrderStatusVo orderStatusVo) {