Bladeren bron

紫金财险
1.特约查询
2.核保加特约

wks 3 jaren geleden
bovenliggende
commit
736aeb6305

+ 11 - 2
src/main/java/com/ydtech/modules/order/controller/ZijinOrderApiController.java

@@ -8,9 +8,12 @@ import com.ydtech.modules.order.aop.QuoteVerification;
 import com.ydtech.modules.order.components.InsOrdersComponents;
 import com.ydtech.modules.order.entity.api.zj.request.CalculatePremiumRequest;
 import com.ydtech.modules.order.entity.api.zj.request.PaymentCallbacksRequest;
+import com.ydtech.modules.order.entity.api.zj.request.SubmitVerifyRequest;
+import com.ydtech.modules.order.entity.api.zj.response.QueryClauseDataResponse;
 import com.ydtech.modules.order.entity.vo.BaseQuoteInfoVo;
 import com.ydtech.modules.order.entity.vo.BaseQuoteVo;
 import com.ydtech.modules.order.entity.vo.PolicyPrintVo;
+import com.ydtech.modules.order.entity.vo.SpecialAuditVo;
 import com.ydtech.modules.order.entity.vo.zj.ZjVehicleProductsQueryVo;
 import com.ydtech.modules.order.entity.vo.zj.ZjVehicleProductsVo;
 import com.ydtech.modules.order.service.ZijinOrderApiService;
@@ -57,10 +60,16 @@ public class ZijinOrderApiController {
         return this.zijinOrderApiService.submitImage(companyId);
     }
 
+    @PostMapping(value = "/queryClauseData")
+    @ApiOperation(value = "特约查询")
+    public HttpResult<List<QueryClauseDataResponse.ClauseInfoDtoListDTO>> queryClauseData(@RequestSingleParam(value = "companyId") String companyId) {
+        return this.zijinOrderApiService.queryClauseData(companyId);
+    }
+
     @PostMapping(value = "/audit")
     @ApiOperation(value = "提交核保")
-    public HttpResult<Object> audit(@RequestSingleParam(value = "companyId") String companyId) {
-        return this.zijinOrderApiService.audit(companyId);
+    public HttpResult<Object> audit(@RequestBody SpecialAuditVo<SubmitVerifyRequest.EngageListDTO> specialAudit) {
+        return this.zijinOrderApiService.audit(specialAudit);
     }
 
     @PostMapping(value = "/cancel")

+ 15 - 2
src/main/java/com/ydtech/modules/order/entity/api/zj/request/SubmitVerifyRequest.java

@@ -3,6 +3,8 @@ package com.ydtech.modules.order.entity.api.zj.request;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.ydtech.constants.enums.dict.agreement.ProductsType;
 import com.ydtech.modules.order.entity.api.zj.constants.enums.CarCheckReasonEnum;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
@@ -33,10 +35,10 @@ public class SubmitVerifyRequest implements Serializable {
     @JsonProperty("orderNo")
     private String orderNo;
 
-    public SubmitVerifyRequest(String orderId, String orderNo, String productId) {
+    public SubmitVerifyRequest(String orderId, String orderNo, String productId, List<EngageListDTO> engageList) {
         this.orderId = orderId;
         this.orderNo = orderNo;
-        this.engageList = Collections.emptyList();
+        this.engageList = engageList;
         String code;
         if (productId.equals(ProductsType.PT_034002.getCode())) {
             code = CarCheckReasonEnum.CCR_3.getCode();
@@ -52,17 +54,28 @@ public class SubmitVerifyRequest implements Serializable {
 
         private static final long serialVersionUID = -2637644323393860328L;
 
+        @ApiModelProperty("特约代码")
         @JsonProperty("clauseCode")
         private String clauseCode;
 
+        @ApiModelProperty("特约名称")
         @JsonProperty("clauseName")
         private String clauseName;
 
+        @ApiModelProperty("特约内容")
         @JsonProperty("clauses")
         private String clauses;
 
+        @ApiModelProperty("险种代码")
         @JsonProperty("riskCode")
         private String riskCode;
+
+        public EngageListDTO(String clauseCode, String clauseName, String clauses, String riskCode) {
+            this.clauseCode = clauseCode;
+            this.clauseName = clauseName;
+            this.clauses = clauses;
+            this.riskCode = riskCode;
+        }
     }
 
     @NoArgsConstructor

+ 16 - 0
src/main/java/com/ydtech/modules/order/entity/api/zj/response/QueryClauseDataResponse.java

@@ -1,6 +1,8 @@
 package com.ydtech.modules.order.entity.api.zj.response;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.NoArgsConstructor;
@@ -8,6 +10,12 @@ import lombok.NoArgsConstructor;
 import java.io.Serializable;
 import java.util.List;
 
+
+/**
+ * @description: 紫金财险  特约查询 出参实体
+ * @author: wenks
+ * @date: 2023/9/6 11:43
+ **/
 @EqualsAndHashCode(callSuper = true)
 @NoArgsConstructor
 @Data
@@ -19,30 +27,38 @@ public class QueryClauseDataResponse extends BaseResponse implements Serializabl
     @JsonProperty("clauseInfoDtoList")
     private List<ClauseInfoDtoListDTO> clauseInfoDtoList;
 
+    @ApiModel("特别约定")
     @NoArgsConstructor
     @Data
     public static class ClauseInfoDtoListDTO implements Serializable {
 
         private static final long serialVersionUID = 2486640047109521788L;
 
+        @ApiModelProperty("特约代码")
         @JsonProperty("clauseCode")
         private String clauseCode;
 
+        @ApiModelProperty("特约内容")
         @JsonProperty("clauseContent")
         private String clauseContent;
 
+        @ApiModelProperty("特约名称")
         @JsonProperty("clauseName")
         private String clauseName;
 
+        @ApiModelProperty("特约类型")
         @JsonProperty("clauseType")
         private String clauseType;
 
+        @ApiModelProperty("是否可修改")
         @JsonProperty("modifyFlag")
         private String modifyFlag;
 
+        @ApiModelProperty("选择类型")
         @JsonProperty("optType")
         private String optType;
 
+        @ApiModelProperty("险种代码")
         @JsonProperty("riskCode")
         private String riskCode;
     }

+ 28 - 0
src/main/java/com/ydtech/modules/order/entity/vo/SpecialAuditVo.java

@@ -0,0 +1,28 @@
+package com.ydtech.modules.order.entity.vo;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @description: 紫金核保参数
+ * @author: wenks
+ * @date: 2023/9/6 11:46
+ **/
+@ApiModel("紫金核保参数")
+@Data
+public class SpecialAuditVo<T extends Serializable> implements Serializable {
+
+    private static final long serialVersionUID = -7086470435218363548L;
+
+    @ApiModelProperty("子订单id")
+    private String companyId;
+
+    @ApiModelProperty("特别约定")
+    private List<T> engageList;
+
+}

+ 36 - 1
src/main/java/com/ydtech/modules/order/service/ZijinOrderApiService.java

@@ -1,16 +1,51 @@
 package com.ydtech.modules.order.service;
 
 import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.ins.model.vo.QuoteRespVo;
 import com.ydtech.modules.order.entity.api.zj.request.CalculatePremiumRequest;
 import com.ydtech.modules.order.entity.api.zj.request.PaymentCallbacksRequest;
+import com.ydtech.modules.order.entity.api.zj.request.SubmitVerifyRequest;
+import com.ydtech.modules.order.entity.api.zj.response.QueryClauseDataResponse;
+import com.ydtech.modules.order.entity.vo.BaseQuoteInfoVo;
+import com.ydtech.modules.order.entity.vo.BaseQuoteVo;
 import com.ydtech.modules.order.entity.vo.PolicyPrintVo;
+import com.ydtech.modules.order.entity.vo.SpecialAuditVo;
 import com.ydtech.modules.order.entity.vo.zj.ZjVehicleProductsQueryVo;
 import com.ydtech.modules.order.entity.vo.zj.ZjVehicleProductsVo;
 
 import java.util.List;
 
-public interface ZijinOrderApiService extends BaseOrderService<List<CalculatePremiumRequest.CarPolicySubInfoListDTO>> {
+public interface ZijinOrderApiService{
 
+    /**
+     * 报价
+     *
+     * @param quoteInfoVo 报价实体
+     * @return
+     */
+    HttpResult<QuoteRespVo> quote(BaseQuoteInfoVo quoteInfoVo, BaseQuoteVo<List<CalculatePremiumRequest.CarPolicySubInfoListDTO>> t);
+
+    /**
+     * 提交影像信息
+     *
+     * @param subOrderNo 子订单好
+     * @return HttpResult
+     */
+    HttpResult<Object> submitImage(String subOrderNo);
+    /**
+     * 特约查询
+     *
+     * @param companyId 子订单号
+     */
+    HttpResult<List<QueryClauseDataResponse.ClauseInfoDtoListDTO>> queryClauseData(String companyId);
+
+    /**
+     * 提交核保
+     *
+     * @param specialAudit 核保特约
+     * @return
+     */
+    HttpResult<Object> audit(SpecialAuditVo<SubmitVerifyRequest.EngageListDTO> specialAudit);
 
     /**
      * 获取驾意险

+ 27 - 16
src/main/java/com/ydtech/modules/order/service/impl/ZijinOrderApiServiceImpl.java

@@ -26,6 +26,7 @@ import com.ydtech.modules.order.entity.po.InsTaskImagesBase64;
 import com.ydtech.modules.order.entity.vo.BaseQuoteInfoVo;
 import com.ydtech.modules.order.entity.vo.BaseQuoteVo;
 import com.ydtech.modules.order.entity.vo.PolicyPrintVo;
+import com.ydtech.modules.order.entity.vo.SpecialAuditVo;
 import com.ydtech.modules.order.entity.vo.zj.ZjVehicleProductsQueryVo;
 import com.ydtech.modules.order.entity.vo.zj.ZjVehicleProductsVo;
 import com.ydtech.modules.order.service.InsAreaCompanyService;
@@ -39,6 +40,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.http.HttpHeaders;
 import org.springframework.stereotype.Service;
 
+import java.io.Serializable;
 import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.List;
@@ -81,7 +83,6 @@ public class ZijinOrderApiServiceImpl implements ZijinOrderApiService {
         QueryVehicProductsRequest queryVehicProductsRequest = new QueryVehicProductsRequest(zjVehicleProductsQueryVo.getSeatCount(), zjConfigureParameters.getAppKey(), zjConfigureParameters.getProposalCityCode());
         QueryVehicProductsResponse queryVehicProductsResponse = zijinRequestApiComponents.queryVehicleProducts(queryVehicProductsRequest, httpHeaders);
         return HttpResult.ok(ZjVehicleProductsVo.toZjVehicleProductsVoList(queryVehicProductsResponse.getProductDtoList()));
-
     }
 
 
@@ -128,45 +129,55 @@ public class ZijinOrderApiServiceImpl implements ZijinOrderApiService {
     }
 
     @Override
-    public HttpResult<Object> audit(String companyId) {
-
+    public HttpResult<List<QueryClauseDataResponse.ClauseInfoDtoListDTO>> queryClauseData(String companyId) {
         InsAreaCompany insAreaCompany = insAreaCompanyService.getByIdIsExist(companyId);
-        InsOrders insOrders = insOrdersService.getById(insAreaCompany.getOrderno());
-
-        // 1 通过 协议id获取配置实体
-        PtlAgreementAttribution ptlAgreementAttribution = ptlAgreementAttributionService.getById(insAreaCompany.getAgreementId());
-        ZjConfigureParameters zjConfigureParameters = configureParametersComponents.toEntity(ZjConfigureParameters.class, ptlAgreementAttribution);
-        HttpHeaders httpHeaders = zijinRequestApiComponents.getHttpHeaders(zjConfigureParameters, ZijinRequestApiComponents.RECURSIVE_HIERARCHY);
+        HttpHeaders httpHeaders = zijinRequestApiComponents.getHttpHeaders(insAreaCompany.getAgreementId());
+        List<QueryClauseDataResponse.ClauseInfoDtoListDTO> clauseInfoDtoList = new ArrayList<>();
 
         // 2 查询特约
         QueryClauseDataRequest queryClauseDataRequest = new QueryClauseDataRequest();
         queryClauseDataRequest.setOrderId(insAreaCompany.getInsOrderNo());
         if (insAreaCompany.getJqpremium().intValue() != 0) {
             queryClauseDataRequest.setRiskCode(RiskCodeEnum.RC_0590.getCode());
-            zijinRequestApiComponents.queryClauseData(queryClauseDataRequest, httpHeaders);
+            QueryClauseDataResponse queryClauseDataResponse = zijinRequestApiComponents.queryClauseData(queryClauseDataRequest, httpHeaders);
+            clauseInfoDtoList.addAll(queryClauseDataResponse.getClauseInfoDtoList());
         }
 
         if (insAreaCompany.getSypremium().intValue() != 0) {
             queryClauseDataRequest.setRiskCode(RiskCodeEnum.RC_050A.getCode());
-            zijinRequestApiComponents.queryClauseData(queryClauseDataRequest, httpHeaders);
+            QueryClauseDataResponse queryClauseDataResponse = zijinRequestApiComponents.queryClauseData(queryClauseDataRequest, httpHeaders);
+            clauseInfoDtoList.addAll(queryClauseDataResponse.getClauseInfoDtoList());
         }
+        return HttpResult.ok(clauseInfoDtoList);
+    }
+
+    @Override
+    public HttpResult<Object> audit(SpecialAuditVo<SubmitVerifyRequest.EngageListDTO> specialAudit ) {
+
+        InsAreaCompany insAreaCompany = insAreaCompanyService.getByIdIsExist(specialAudit.getCompanyId());
+        InsOrders insOrders = insOrdersService.getById(insAreaCompany.getOrderno());
+
+        // 1 通过 协议id获取配置实体
+        PtlAgreementAttribution ptlAgreementAttribution = ptlAgreementAttributionService.getById(insAreaCompany.getAgreementId());
+        ZjConfigureParameters zjConfigureParameters = configureParametersComponents.toEntity(ZjConfigureParameters.class, ptlAgreementAttribution);
+        HttpHeaders httpHeaders = zijinRequestApiComponents.getHttpHeaders(zjConfigureParameters, ZijinRequestApiComponents.RECURSIVE_HIERARCHY);
 
-        // 3 提交核保
+        // 2 提交核保
         String productid = insOrders.getProductid();
 
-        SubmitVerifyRequest submitVerifyRequest = new SubmitVerifyRequest(insAreaCompany.getInsOrderNo(), insAreaCompany.getId(), productid);
+        SubmitVerifyRequest submitVerifyRequest = new SubmitVerifyRequest(insAreaCompany.getInsOrderNo(), insAreaCompany.getId(), productid, specialAudit.getEngageList());
         SubmitVerifyResponse submitVerifyResponse = zijinRequestApiComponents.submitVerify(submitVerifyRequest, httpHeaders);
         SubmitVerifyResponse.SubmitVerifyInfoDTO submitVerifyInfo = submitVerifyResponse.getSubmitVerifyInfo();
 
-        // 3.1 保单号
+        // 2.1 保单号
         insAreaCompany.setJqpolicyno(submitVerifyInfo.getPolicyNoCI());
         insAreaCompany.setSypolicyno(submitVerifyInfo.getPolicyNo());
-        // 3.2 投保单号
+        // 2.2 投保单号
         insAreaCompany.setJqapplyno(submitVerifyInfo.getProposalNoCI());
         insAreaCompany.setSyapplyno(submitVerifyInfo.getProposalNo());
         insAreaCompany.setOrderstatus(InsOrderStatus.S_2.getCode());
 
-        // 3. 聚合支付服务
+        // 2. 聚合支付服务
         BigDecimal multiply = insAreaCompany.getSumpremium().multiply(new BigDecimal(100));
         ZbfAggregatePayRequest zbfAggregatePayRequest = new ZbfAggregatePayRequest(String.valueOf(multiply.intValue()), zjConfigureParameters.getAppKey(), insAreaCompany.getId());
         ZbfAggregatePayResponse zbfAggregatePayResponse = zijinRequestApiComponents.zbfAggregatePay(zbfAggregatePayRequest, httpHeaders);