Ver Fonte

渤海财险代码修改

wks há 2 anos atrás
pai
commit
4407ed9652

+ 57 - 42
src/main/java/com/ydtech/modules/fee/dto/vo/RuleAttrMappingVo.java

@@ -18,10 +18,10 @@ import java.util.Objects;
 import java.util.regex.Pattern;
 
 /**
-*@author: tz
-*@description: 规则属性映射费用因子Vo
-*@create: 2024-2-28 08:35:57
-*/
+ * @author: tz
+ * @description: 规则属性映射费用因子Vo
+ * @create: 2024-2-28 08:35:57
+ */
 @Data
 public class RuleAttrMappingVo {
     @ApiModelProperty(value = "因子属性Code")
@@ -35,7 +35,7 @@ public class RuleAttrMappingVo {
         this.value = value;
     }
 
-    public static List<RuleAttrMappingVo> getRuleAttrMappingVoList(InsAreaCompany insAreaCompany,InsOrders insOrders) {
+    public static List<RuleAttrMappingVo> getRuleAttrMappingVoList(InsAreaCompany insAreaCompany, InsOrders insOrders) {
         List<RuleAttrMappingVo> ruleAttrMappingVoList = new ArrayList<>();
         CarInfoVo carInfo = insOrders.getCarinfo().toJavaObject(CarInfoVo.class);
         //车牌号
@@ -100,60 +100,73 @@ public class RuleAttrMappingVo {
         //险别信息
         kindInfoVos.forEach(kindInfoVo -> {
             //机动车损失险
-            if(InsurKind.A.getCode().equals(kindInfoVo.getKindCode()))
+            if (InsurKind.A.getCode().equals(kindInfoVo.getKindCode()))
                 ruleAttrMappingVoList.add(new RuleAttrMappingVo("MotorVehicleDamageInsurance", String.valueOf(kindInfoVo.getAmount())));
             //第三者责任险
-            if(InsurKind.B.getCode().equals(kindInfoVo.getKindCode()))
+            if (InsurKind.B.getCode().equals(kindInfoVo.getKindCode()))
                 ruleAttrMappingVoList.add(new RuleAttrMappingVo("ThirdPartyLiabilityInsurance", String.valueOf(kindInfoVo.getAmount())));
             //司机责任险
-            if(InsurKind.D3.getCode().equals(kindInfoVo.getKindCode()))
+            if (InsurKind.D3.getCode().equals(kindInfoVo.getKindCode()))
                 ruleAttrMappingVoList.add(new RuleAttrMappingVo("DriverLiabilityInsurance", String.valueOf(kindInfoVo.getAmount())));
             //乘客责任险
-            if(InsurKind.D4.getCode().equals(kindInfoVo.getKindCode()))
+            if (InsurKind.D4.getCode().equals(kindInfoVo.getKindCode()))
                 ruleAttrMappingVoList.add(new RuleAttrMappingVo("PassengerLiabilityInsurance", String.valueOf(kindInfoVo.getUnitAmount())));
             //车身划痕险
-            if(InsurKind.L.getCode().equals(kindInfoVo.getKindCode()))
+            if (InsurKind.L.getCode().equals(kindInfoVo.getKindCode()))
                 ruleAttrMappingVoList.add(new RuleAttrMappingVo("CarScratchInsurance", String.valueOf(kindInfoVo.getAmount())));
             //绝对免赔率特约险(车损)
-            if(InsurKind.MJ1.getCode().equals(kindInfoVo.getKindCode()))
-                ruleAttrMappingVoList.add(new RuleAttrMappingVo("VehicleDamageAbsoluteDeductibleSpecialInsurance", String.valueOf(kindInfoVo.getAmount())));
+            if (InsurKind.MJ1.getCode().equals(kindInfoVo.getKindCode()))
+                ruleAttrMappingVoList.add(new RuleAttrMappingVo("VehicleDamageAbsoluteDeductibleSpecialInsurance",
+                        String.valueOf(kindInfoVo.getAmount())));
             //绝对免赔率特约险(三者)
-            if(InsurKind.MJ2.getCode().equals(kindInfoVo.getKindCode()))
-                ruleAttrMappingVoList.add(new RuleAttrMappingVo("ThirdAbsoluteDeductibleSpecialInsurance", String.valueOf(kindInfoVo.getAmount())));
+            if (InsurKind.MJ2.getCode().equals(kindInfoVo.getKindCode()))
+                ruleAttrMappingVoList.add(new RuleAttrMappingVo("ThirdAbsoluteDeductibleSpecialInsurance",
+                        String.valueOf(kindInfoVo.getAmount())));
             //绝对免赔率特约险(司机)
-            if(InsurKind.MJ3.getCode().equals(kindInfoVo.getKindCode()))
-                ruleAttrMappingVoList.add(new RuleAttrMappingVo("DriverAbsoluteDeductibleSpecialInsurance", String.valueOf(kindInfoVo.getAmount())));
+            if (InsurKind.MJ3.getCode().equals(kindInfoVo.getKindCode()))
+                ruleAttrMappingVoList.add(new RuleAttrMappingVo("DriverAbsoluteDeductibleSpecialInsurance",
+                        String.valueOf(kindInfoVo.getAmount())));
             //绝对免赔率特约险(乘客)
-            if(InsurKind.MJ4.getCode().equals(kindInfoVo.getKindCode()))
-                ruleAttrMappingVoList.add(new RuleAttrMappingVo("PassengerAbsoluteDeductibleSpecialInsurance", String.valueOf(kindInfoVo.getAmount())));
+            if (InsurKind.MJ4.getCode().equals(kindInfoVo.getKindCode()))
+                ruleAttrMappingVoList.add(new RuleAttrMappingVo("PassengerAbsoluteDeductibleSpecialInsurance",
+                        String.valueOf(kindInfoVo.getAmount())));
             //附加医保-三者
-            if(InsurKind.SY_FJ_YBW1.getCode().equals(kindInfoVo.getKindCode()))
-                ruleAttrMappingVoList.add(new RuleAttrMappingVo("ThirdPartyAdditionalMedicalInsurance", String.valueOf(kindInfoVo.getAmount())));
+            if (InsurKind.SY_FJ_YBW1.getCode().equals(kindInfoVo.getKindCode()))
+                ruleAttrMappingVoList.add(new RuleAttrMappingVo("ThirdPartyAdditionalMedicalInsurance",
+                        String.valueOf(kindInfoVo.getAmount())));
             //附加医保-座位险(乘客)
-            if(InsurKind.SY_FJ_YBW2.getCode().equals(kindInfoVo.getKindCode()))
-                ruleAttrMappingVoList.add(new RuleAttrMappingVo("PassengerAdditionalMedicalInsurance", String.valueOf(kindInfoVo.getAmount())));
+            if (InsurKind.SY_FJ_YBW2.getCode().equals(kindInfoVo.getKindCode()))
+                ruleAttrMappingVoList.add(new RuleAttrMappingVo("PassengerAdditionalMedicalInsurance",
+                        String.valueOf(kindInfoVo.getAmount())));
             //附加医保-座位险(司机)
-            if(InsurKind.SY_FJ_YBW3.getCode().equals(kindInfoVo.getKindCode()))
-                ruleAttrMappingVoList.add(new RuleAttrMappingVo("DriverAdditionalMedicalInsurance", String.valueOf(kindInfoVo.getAmount())));
+            if (InsurKind.SY_FJ_YBW3.getCode().equals(kindInfoVo.getKindCode()))
+                ruleAttrMappingVoList.add(new RuleAttrMappingVo("DriverAdditionalMedicalInsurance",
+                        String.valueOf(kindInfoVo.getAmount())));
             //法定节假日限额翻倍险
-            if(InsurKind.BD.getCode().equals(kindInfoVo.getKindCode()))
-                ruleAttrMappingVoList.add(new RuleAttrMappingVo("LegalHolidayLimitDoublingInsurance", String.valueOf(kindInfoVo.getAmount())));
+            if (InsurKind.BD.getCode().equals(kindInfoVo.getKindCode()))
+                ruleAttrMappingVoList.add(new RuleAttrMappingVo("LegalHolidayLimitDoublingInsurance",
+                        String.valueOf(kindInfoVo.getAmount())));
             //道路救援服务特约条款
-            if(InsurKind.TY1.getCode().equals(kindInfoVo.getKindCode()))
-                ruleAttrMappingVoList.add(new RuleAttrMappingVo("RoadsideAssistanceServiceSpecialClause", String.valueOf(kindInfoVo.getServiceTimes())));
+            if (InsurKind.TY1.getCode().equals(kindInfoVo.getKindCode()))
+                ruleAttrMappingVoList.add(new RuleAttrMappingVo("RoadsideAssistanceServiceSpecialClause",
+                        String.valueOf(kindInfoVo.getServiceTimes())));
             //车辆安全检测特约条款
-            if(InsurKind.TY2.getCode().equals(kindInfoVo.getKindCode()))
-                ruleAttrMappingVoList.add(new RuleAttrMappingVo("VehicleSafetyInspectionSpecialClause", String.valueOf(kindInfoVo.getServiceTimes())));
+            if (InsurKind.TY2.getCode().equals(kindInfoVo.getKindCode()))
+                ruleAttrMappingVoList.add(new RuleAttrMappingVo("VehicleSafetyInspectionSpecialClause",
+                        String.valueOf(kindInfoVo.getServiceTimes())));
             //代为驾驶服务特约条款
-            if(InsurKind.TY3.getCode().equals(kindInfoVo.getKindCode()))
-                ruleAttrMappingVoList.add(new RuleAttrMappingVo("SubstituteDrivingServiceSpecialClause", String.valueOf(kindInfoVo.getServiceTimes())));
+            if (InsurKind.TY3.getCode().equals(kindInfoVo.getKindCode()))
+                ruleAttrMappingVoList.add(new RuleAttrMappingVo("SubstituteDrivingServiceSpecialClause",
+                        String.valueOf(kindInfoVo.getServiceTimes())));
             //代为送检服务特约条款
-            if(InsurKind.TY4.getCode().equals(kindInfoVo.getKindCode()))
-                ruleAttrMappingVoList.add(new RuleAttrMappingVo("SubstituteInspectionServiceSpecialClause", String.valueOf(kindInfoVo.getServiceTimes())));
+            if (InsurKind.TY4.getCode().equals(kindInfoVo.getKindCode()))
+                ruleAttrMappingVoList.add(new RuleAttrMappingVo("SubstituteInspectionServiceSpecialClause",
+                        String.valueOf(kindInfoVo.getServiceTimes())));
         });
 
         //交强保费
-        ruleAttrMappingVoList.add(new RuleAttrMappingVo("CompulsoryTrafficAccidentLiabilityInsurancePremium", String.valueOf(insAreaCompany.getJqpremium())));
+        ruleAttrMappingVoList.add(new RuleAttrMappingVo("CompulsoryTrafficAccidentLiabilityInsurancePremium",
+                String.valueOf(insAreaCompany.getJqpremium())));
         //车船税
         ruleAttrMappingVoList.add(new RuleAttrMappingVo("VehicleandVesselTax", String.valueOf(insAreaCompany.getTaxamount())));
         //非车险
@@ -166,7 +179,7 @@ public class RuleAttrMappingVo {
 //        ruleAttrMappingVoList.add(new RuleAttrMappingVo("CommercialDiscount", String.valueOf(quoteRespVo.getSyAdjustRate())));
         //数值型总评分
         Pattern pattern = Pattern.compile("[0-9]*");
-        if(insAreaCompany.getScore() != null) {
+        if (insAreaCompany.getScore() != null) {
             if (pattern.matcher(insAreaCompany.getScore()).matches()) {
                 //数值型评分
                 ruleAttrMappingVoList.add(new RuleAttrMappingVo("NumericalOverallRating", String.valueOf(insAreaCompany.getScore())));
@@ -176,24 +189,26 @@ public class RuleAttrMappingVo {
             }
         }
         //交强评分
-        if(insAreaCompany.getJqScore() != null){
-            if(pattern.matcher(insAreaCompany.getJqScore()).matches()) {
+        if (insAreaCompany.getJqScore() != null) {
+            if (pattern.matcher(insAreaCompany.getJqScore()).matches()) {
                 //数值型评分
                 ruleAttrMappingVoList.add(new RuleAttrMappingVo("CompulsoryInsuranceRating", String.valueOf(insAreaCompany.getJqScore())));
             } else {
                 //字母型评分
-                ruleAttrMappingVoList.add(new RuleAttrMappingVo("CharacterBasedCompulsoryInsuranceRating", String.valueOf(insAreaCompany.getJqScore())));
+                ruleAttrMappingVoList.add(new RuleAttrMappingVo("CharacterBasedCompulsoryInsuranceRating",
+                        String.valueOf(insAreaCompany.getJqScore())));
             }
         }
 //        ruleAttrMappingVoList.add(new RuleAttrMappingVo("CompulsoryInsuranceRating", String.valueOf(insAreaCompany.getJqScore())));
         //商业评分
-        if(insAreaCompany.getSyScore() != null){
-            if(pattern.matcher(insAreaCompany.getSyScore()).matches()) {
+        if (insAreaCompany.getSyScore() != null) {
+            if (pattern.matcher(insAreaCompany.getSyScore()).matches()) {
                 //数值型评分
                 ruleAttrMappingVoList.add(new RuleAttrMappingVo("CommercialRating", String.valueOf(insAreaCompany.getSyScore())));
             } else {
                 //字母型评分
-                ruleAttrMappingVoList.add(new RuleAttrMappingVo("CharacterBasedCommercialRating", String.valueOf(insAreaCompany.getSyScore())));
+                ruleAttrMappingVoList.add(new RuleAttrMappingVo("CharacterBasedCommercialRating",
+                        String.valueOf(insAreaCompany.getSyScore())));
             }
         }
         //交强赔付率

+ 10 - 0
src/main/java/com/ydtech/modules/order/controller/BoHaiOrderApiController.java

@@ -10,6 +10,7 @@ import com.ydtech.modules.order.components.InsOrdersComponents;
 import com.ydtech.modules.order.entity.api.bohai.BoHaiEncrypted;
 import com.ydtech.modules.order.entity.api.bohai.request.ManualReviewRequest;
 import com.ydtech.modules.order.entity.api.bohai.request.PaymentCallbackRequest;
+import com.ydtech.modules.order.entity.api.bohai.request.PolicyResultCallbackRequest;
 import com.ydtech.modules.order.entity.api.bohai.response.NonAutomotiveProductsDetailsResponse;
 import com.ydtech.modules.order.entity.api.bohai.response.NonAutomotiveProductsResponse;
 import com.ydtech.modules.order.entity.crawler.vo.CrawlerPolicyPrintVo;
@@ -112,4 +113,13 @@ public class BoHaiOrderApiController {
     }
 
 
+    @PostMapping("/policyResultCallback")
+    @ApiOperation(value = "保单回调")
+    public String policyResultCallback(@RequestBody BoHaiEncrypted s) throws Exception {
+        PolicyResultCallbackRequest policyResultCallbackRequest = SignatureUtils.decryptMessage(s.getBizContent(), PolicyResultCallbackRequest.class, "保单结果回调",
+                properties.getSelfPrivateKey());
+        return this.boHaiOrderApiService.policyResultCallback(policyResultCallbackRequest);
+    }
+
+
 }

+ 0 - 3
src/main/java/com/ydtech/modules/order/entity/InsAreaCompany.java

@@ -367,9 +367,6 @@ public class InsAreaCompany implements Serializable {
         this.lossRation = quoteRespVo.getLossRation();
         this.jqLossRation = quoteRespVo.getJqLossRation();
         this.syLossRation = quoteRespVo.getSyLossRation();
-
-        this.jqapplyno = quoteRespVo.getJqApplyNo();
-        this.syapplyno = quoteRespVo.getSyApplyNo();
     }
 
     public void setPaymentLink(String paymentLink) {

+ 18 - 0
src/main/java/com/ydtech/modules/order/entity/api/bohai/constants/InsuranceType.java

@@ -0,0 +1,18 @@
+package com.ydtech.modules.order.entity.api.bohai.constants;
+
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+@AllArgsConstructor
+@Getter
+public enum InsuranceType {
+
+    IT_0("0", "商业"),
+    IT_1("1", "交强");
+
+    private final String code;
+
+    private final String desc;
+
+}

+ 0 - 4
src/main/java/com/ydtech/modules/order/entity/api/bohai/constants/RequestType.java

@@ -25,11 +25,7 @@ public enum RequestType {
     Z00009("Z00009", "撤销核保"),
     Z00010("Z00010", "获取短信验证码"),
     Z00011("Z00011", "回收短信验证码"),
-    Z00012("Z00012", "客户信息审核"),
-    Z00013("Z00013", "电子签名支付"),
     Z00014("Z00014", "公共影像上传"),
-    Z00015("Z00015", "人工审核"),
-    Z00016("Z00016", "投保单继续支付"),
     Z00017("Z00017", "续保查询"),
     Z00018("Z00018", "车+X产品查询"),
     Z00019("Z00019", "车+X产品详情查询"),

+ 6 - 1
src/main/java/com/ydtech/modules/order/entity/api/bohai/request/PaymentRequest.java

@@ -23,9 +23,14 @@ public class PaymentRequest extends BoHaiBaseRequest{
     @JsonProperty("busUniqueId")
     private String busUniqueId;
 
+    @JsonProperty("payWay")
+    private String payWay;
+
+
     public PaymentRequest(BoHaiConfigureParameters parameters, String orderNo, String insOrderNo) {
-        this.setBaseParam(parameters, RequestType.Z00013.getCode(), orderNo);
+        this.setBaseParam(parameters, RequestType.Z00008.getCode(), orderNo);
         this.busUniqueId = insOrderNo;
+        this.payWay = "82";
     }
 
 }

+ 36 - 0
src/main/java/com/ydtech/modules/order/entity/api/bohai/request/PolicyResultCallbackRequest.java

@@ -0,0 +1,36 @@
+package com.ydtech.modules.order.entity.api.bohai.request;
+
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+@EqualsAndHashCode(callSuper = true)
+@NoArgsConstructor
+@Data
+public class PolicyResultCallbackRequest extends BoHaiBaseRequest {
+
+    private static final long serialVersionUID = -5610907874268772164L;
+
+    @JsonProperty("busUniqueId")
+    private String busUniqueId;
+
+    @JsonProperty("businessStatus")
+    private String businessStatus;
+
+    @JsonProperty("businessApplicationNo")
+    private String businessApplicationNo;
+
+    @JsonProperty("businessPolicyNo")
+    private String businessPolicyNo;
+
+    @JsonProperty("trafficStatus")
+    private String trafficStatus;
+
+    @JsonProperty("trafficApplicationNo")
+    private String trafficApplicationNo;
+
+    @JsonProperty("trafficPolicyNo")
+    private String trafficPolicyNo;
+}

+ 3 - 0
src/main/java/com/ydtech/modules/order/entity/api/bohai/response/ElectronicPolicyResponse.java

@@ -23,6 +23,9 @@ public class ElectronicPolicyResponse extends BoHaiBaseResponse {
         @JsonProperty("trafficEPolicyUrl")
         private String trafficEPolicyUrl;
 
+        @JsonProperty("trafficEFlagUrl")
+        private String trafficEFlagUrl;
+
         @JsonProperty("businessEPolicyUrl")
         private String businessEPolicyUrl;
 

+ 2 - 2
src/main/java/com/ydtech/modules/order/entity/crawler/vo/CrawlerPolicyPrintVo.java

@@ -23,10 +23,10 @@ public class CrawlerPolicyPrintVo implements Serializable {
     @ApiModelProperty("交强险保单地址")
     private String jqxPolicyUrl;
 
-    @ApiModelProperty("交强险标志地址")
+    @ApiModelProperty("商业险保单地址")
     private String syxPolicyUrl;
 
-    @ApiModelProperty("商业险保单地址")
+    @ApiModelProperty("交强险标志地址")
     private String jqxFlagUrl;
 
     @ApiModelProperty("驾意险列表")

+ 13 - 2
src/main/java/com/ydtech/modules/order/service/BoHaiOrderApiService.java

@@ -4,6 +4,7 @@ import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.ins.model.vo.QuoteRespVo;
 import com.ydtech.modules.order.entity.api.bohai.request.ManualReviewRequest;
 import com.ydtech.modules.order.entity.api.bohai.request.PaymentCallbackRequest;
+import com.ydtech.modules.order.entity.api.bohai.request.PolicyResultCallbackRequest;
 import com.ydtech.modules.order.entity.api.bohai.response.NonAutomotiveProductsDetailsResponse;
 import com.ydtech.modules.order.entity.api.bohai.response.NonAutomotiveProductsResponse;
 import com.ydtech.modules.order.entity.crawler.vo.CrawlerPolicyPrintVo;
@@ -80,14 +81,24 @@ public interface BoHaiOrderApiService {
     HttpResult<Object> auditStatusQuery(String subOrderNo) throws Exception;
 
     /**
-     * @param coverageRequest
+     * 支付回调
+     * @param coverageRequest 支付回调参数
      * @return
      */
     String underwritingCallback(PaymentCallbackRequest coverageRequest) throws Exception;
 
     /**
-     * @param approvedRequest
+     * 核保回调
+     * @param approvedRequest 支付回调参数
      * @return
      */
     String auditCallback(ManualReviewRequest approvedRequest) throws Exception;
+
+    /**
+     * 保单结果
+     * @param policyResultCallbackRequest 保单结果回调参数
+     * @return
+     */
+    String policyResultCallback(PolicyResultCallbackRequest policyResultCallbackRequest)  throws Exception;
+
 }

+ 50 - 17
src/main/java/com/ydtech/modules/order/service/impl/BoHaiOrderApiServiceImpl.java

@@ -175,6 +175,16 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
         UnderwritingRequest underwritingRequest = new UnderwritingRequest(parameters, insAreaCompany.getId());
         UnderwritingResponse underwritingResponse = boHaiRequestApiComponent.underwriting(underwritingRequest);
         int i = underwritingResponse.getData().verificationUnderwriting();
+        // 交强
+        UnderwritingResponse.DataDTO.TrafficPolicyDTO trafficPolicy = underwritingResponse.getData().getTrafficPolicy();
+        if (!ObjectUtils.isEmpty(trafficPolicy)) {
+            insAreaCompany.setJqapplyno(trafficPolicy.getApplicationNo());
+        }
+        // 商业
+        UnderwritingResponse.DataDTO.BusinessPolicyDTO businessPolicy = underwritingResponse.getData().getBusinessPolicy();
+        if (!ObjectUtils.isEmpty(businessPolicy)) {
+            insAreaCompany.setSyapplyno(businessPolicy.getApplicationNo());
+        }
 
         if (i == 1) {
             insAreaCompany.setOrderstatus(InsOrderStatusEnum.WAIT_PAY.getCode());
@@ -186,10 +196,12 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
             insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);
             return HttpResult.ok("核保通过");
         } else if (i == 2) {
+
             insAreaCompany.setOrderstatus(InsOrderStatusEnum.WAIT_AUDIT.getCode());
         } else {
             insAreaCompany.setOrderstatus(InsOrderStatusEnum.TO_BACK.getCode());
         }
+
         String trafficResultMsg = underwritingResponse.getData().getTrafficResultMsg();
         String businessResultMsg = underwritingResponse.getData().getBusinessResultMsg();
         insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);
@@ -216,13 +228,15 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
         String licenseno = insOrders.getLicenseno();
 
         if (StringUtils.isNotEmpty(data.getTrafficEPolicyUrl())) {
+            crawlerPolicyPrintVo.setJqxPolicyUrl(fileComponents.gainCarInsPolicy(data.getTrafficEPolicyUrl(),
+                    licenseno + insAreaCompany.getJqpolicyno() + "-交强险保单.pdf", licenseno));
             crawlerPolicyPrintVo.setJqxFlagUrl(fileComponents.gainCarInsPolicy(data.getTrafficEPolicyUrl(),
                     licenseno + insAreaCompany.getJqpolicyno() + "-交强险标志.pdf", licenseno));
         }
 
         if (StringUtils.isNotEmpty(data.getBusinessEPolicyUrl())) {
             crawlerPolicyPrintVo.setSyxPolicyUrl(fileComponents.gainCarInsPolicy(data.getBusinessEPolicyUrl(),
-                    licenseno + insAreaCompany.getSypolicyno() + "-交强险保单.pdf", licenseno));
+                    licenseno + insAreaCompany.getSypolicyno() + "-商业险保单.pdf", licenseno));
         }
 
         return HttpResult.ok(crawlerPolicyPrintVo);
@@ -234,7 +248,16 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
         List<StatusDocumentsResponse.DataDTO.DocumentListDTO> documentList = getDocumentListDTO(insAreaCompany);
         List<StatusDocumentsResponse.DataDTO.DocumentListDTO> documentListDTOS =
                 documentList.stream().filter(x -> ResultCode.RC_B5.getCode().equals(x.getStatus())).collect(Collectors.toList());
+
         if (documentListDTOS.size() == documentList.size()) {
+            for (StatusDocumentsResponse.DataDTO.DocumentListDTO documentListDTO : documentListDTOS) {
+                if (InsuranceType.IT_0.getCode().equals(documentListDTO.getInsuranceType())) {
+                    insAreaCompany.setSypolicyno(documentListDTO.getPolicyNo());
+                } else if (InsuranceType.IT_1.getCode().equals(documentListDTO.getInsuranceType())) {
+                    insAreaCompany.setJqpolicyno(documentListDTO.getPolicyNo());
+                }
+            }
+
             insAreaCompany.setOrderstatus(InsOrderStatusEnum.ACCEPT_INSURANCE.getCode());
             insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);
             return HttpResult.ok("承保成功");
@@ -303,6 +326,24 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
         return boHaiRequestApiComponent.encryptionCallbackResponse(responseCode, requestNo);
     }
 
+    @Override
+    public String policyResultCallback(PolicyResultCallbackRequest policyResultCallbackRequest) throws Exception {
+        String requestNo = policyResultCallbackRequest.getBaseParam().getRequestNo();
+        ResponseCode responseCode;
+        try {
+            String busUniqueId = policyResultCallbackRequest.getBusUniqueId();
+            InsAreaCompany insAreaCompany = insAreaCompanyService.getByInsOrderNo(busUniqueId);
+            insAreaCompany.setJqapplyno(policyResultCallbackRequest.getTrafficApplicationNo());
+            insAreaCompany.setJqpolicyno(policyResultCallbackRequest.getTrafficPolicyNo());
+            insAreaCompany.setSyapplyno(policyResultCallbackRequest.getBusinessApplicationNo());
+            insAreaCompany.setSypolicyno(policyResultCallbackRequest.getBusinessPolicyNo());
+            responseCode = ResponseCode.R_Z00001;
+        } catch (Exception e) {
+            responseCode = ResponseCode.R_Z00002;
+        }
+        return boHaiRequestApiComponent.encryptionCallbackResponse(responseCode, requestNo);
+    }
+
     private String getQrCodeUrl(InsAreaCompany insAreaCompany) throws Exception {
         // 账号信息
         PtlAgreementAttribution ptlAgreementAttribution = ptlAgreementAttributionService.getById(insAreaCompany.getAgreementId());
@@ -322,33 +363,30 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
         BoHaiConfigureParameters parameters = configureParametersComponents.toEntity(BoHaiConfigureParameters.class,
                 ptlAgreementAttribution);
 
-        String applyno = !StringUtils.isEmpty(insAreaCompany.getJqapplyno()) ? insAreaCompany.getJqapplyno() : insAreaCompany.getSyapplyno();
+        String applyno = !StringUtils.isEmpty(insAreaCompany.getJqapplyno()) ? insAreaCompany.getJqapplyno() :
+                insAreaCompany.getSyapplyno();
         StatusDocumentsRequest statusDocumentsRequest = new StatusDocumentsRequest(parameters, insAreaCompany.getId(), applyno);
         StatusDocumentsResponse response = boHaiRequestApiComponent.statusDocuments(statusDocumentsRequest);
         return response.getData().getDocumentList();
     }
 
     public HttpResult<QuoteRespVo> getQuoteRespVo(QuotationResponse response,
-                                      BaseQuoteInfoVo yaQuoteInfoVo,
-                                      VehicleTypeQueryResponse.DataDTO.VehicleModelsDTO vehicleModelsDTO,
-                                      PtlAgreementAttribution ptlAgreementAttribution,
-                                      String orderNo
+                                                  BaseQuoteInfoVo yaQuoteInfoVo,
+                                                  VehicleTypeQueryResponse.DataDTO.VehicleModelsDTO vehicleModelsDTO,
+                                                  PtlAgreementAttribution ptlAgreementAttribution,
+                                                  String orderNo
     ) {
 
         double sumPayTax = 0;
         double jqPremium = 0;
         double syPremium = 0;
         double jyPremium = 0;
-        String jqPolicyNo = null;
-        String syPolicyNo = null;
-
         QuoteRespVo quoteRespVo = new QuoteRespVo();
         // 交强险
         QuotationResponse.DataDTO.TrafficPolicyDTO trafficPolicy = response.getData().getTrafficPolicy();
         if (!ObjectUtils.isEmpty(trafficPolicy)) {
             sumPayTax = Double.parseDouble(trafficPolicy.getVehicleTax().getTotalAmount());
             jqPremium = Double.parseDouble(trafficPolicy.getPremium());
-            jqPolicyNo = trafficPolicy.getPolicyNo();
             quoteRespVo.setJqApplyNo(trafficPolicy.getApplicationNo());
         }
         // 交强
@@ -361,7 +399,6 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
 
         if (!ObjectUtils.isEmpty(businessPolicy)) {
             syPremium = Double.parseDouble(businessPolicy.getPremium());
-            syPolicyNo = businessPolicy.getPolicyNo();
             quoteRespVo.setSyApplyNo(businessPolicy.getApplicationNo());
             // 商业
             quoteRespVo.setStartDateSy(businessPolicy.getStartDate());
@@ -413,19 +450,15 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
         quoteRespVo.setTotalAdjustRate(0);
         quoteRespVo.setOrderno(yaQuoteInfoVo.getOrderNo()); //订单号
         quoteRespVo.setCoreModels(vehicleModelsDTO.toCoreModelsVo());
-        return responseOrder(response, quoteRespVo, ptlAgreementAttribution, orderNo, jqPolicyNo, syPolicyNo);
+        return responseOrder(response, quoteRespVo, ptlAgreementAttribution, orderNo);
     }
 
     public HttpResult<QuoteRespVo> responseOrder(QuotationResponse response,
                                                  QuoteRespVo quoteRespVo,
                                                  PtlAgreementAttribution ptlAgreementAttribution,
-                                                 String orderId,
-                                                 String jqPolicyNo,
-                                                 String syPolicyNo) {
+                                                 String orderId) {
         // 保存订单信息
         InsAreaCompany insAreaCompany = new InsAreaCompany(quoteRespVo, ptlAgreementAttribution);
-        insAreaCompany.setJqpolicyno(jqPolicyNo);
-        insAreaCompany.setSypolicyno(syPolicyNo);
 
         // 渤海业务id
         String busUniqueId = response.getData().getBusUniqueId();