Explorar el Código

中煤新增非车产品查询接口对接部分代码

cuixinpeng hace 2 años
padre
commit
b9efbf2cef

+ 10 - 0
src/main/java/com/ydtech/modules/order/components/ZhongmeiRequestApiComponents.java

@@ -172,6 +172,16 @@ public class ZhongmeiRequestApiComponents {
         return routineRequest(request, tClass, true, TransCode.SUBMIT_STATUS);
     }
 
+    /**
+     * 非车可投保产品查询
+     * @param request
+     * @param tClass
+     * @return
+     */
+    public RideAccidentQueryResponse rideAccidentQuery(RideAccidentQueryRequest request, Class<RideAccidentQueryResponse> tClass) {
+        return routineRequest(request, tClass, true, TransCode.Ride_Accident_Query);
+    }
+
     /**
      * 电子保单下载 传入单号相关信息下载电子保单
      */

+ 7 - 4
src/main/java/com/ydtech/modules/order/controller/ZhongMeiOrderApiController.java

@@ -12,10 +12,7 @@ import com.ydtech.modules.order.aop.QuoteVerification;
 import com.ydtech.modules.order.components.InsOrdersComponents;
 import com.ydtech.modules.order.entity.api.zhongmei.request.ApprovedRequest;
 import com.ydtech.modules.order.entity.api.zhongmei.request.CoverageRequest;
-import com.ydtech.modules.order.entity.vo.AccidentalDrivingVo;
-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.*;
 import com.ydtech.modules.order.service.ZhongMeiOrderApiService;
 import com.ydtech.modules.order.utils.AESUtilsWithDataBase;
 import io.swagger.annotations.Api;
@@ -23,6 +20,7 @@ import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.web.bind.annotation.*;
 
+import javax.validation.Valid;
 import java.util.List;
 
 
@@ -107,4 +105,9 @@ public class ZhongMeiOrderApiController {
     public HttpResult<List<GeneralNonCarProductResVo>> getDrivingInsurance(@RequestBody GeneralNonCarProductReqVo reqVo) {
         return this.zhongMeiOrderApiService.getDrivingInsurance(reqVo);
     }
+    @PostMapping("/rideAccidentQuery")
+    @ApiOperation(value = "核保状态查询")
+    public HttpResult<Object> rideAccidentQuery(@RequestBody @Valid AccidentalDrivingQueryVo accidentalDrivingVo) {
+        return this.zhongMeiOrderApiService.rideAccidentQuery(accidentalDrivingVo);
+    }
 }

+ 3 - 0
src/main/java/com/ydtech/modules/order/entity/api/zhongmei/constants/TransCode.java

@@ -45,4 +45,7 @@ public class TransCode {
     //续保查询
     public static final String RENEWAL_QUERY = "RenewalQuery";
 
+    // 非车可投保产品查询
+    public static final String Ride_Accident_Query = "RideAccidentQuery";
+
 }

+ 62 - 0
src/main/java/com/ydtech/modules/order/entity/api/zhongmei/request/RideAccidentQueryRequest.java

@@ -0,0 +1,62 @@
+package com.ydtech.modules.order.entity.api.zhongmei.request;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.ydtech.modules.order.entity.api.zhongmei.BaseRequest;
+import com.ydtech.modules.order.entity.api.zhongmei.BaseRequestHead;
+import com.ydtech.modules.order.entity.api.zhongmei.constants.TransCode;
+import com.ydtech.modules.order.entity.config.ZmConfigureParameters;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @Author: CXP
+ * @Date: 2023/10/18 23:13
+ */
+@NoArgsConstructor
+@Data
+public class RideAccidentQueryRequest extends BaseRequest {
+
+    private static final long serialVersionUID = 6817013086083441523L;
+    //车辆大类
+    @JsonProperty("motorMainType")
+    private String motorMainType;
+    //车辆用途
+    @JsonProperty("carUseType")
+    private String carUseType;
+    //使用性质
+    @JsonProperty("motorUsageTypeCode")
+    private String motorUsageTypeCode;
+    //保单归属地省
+    @JsonProperty("province")
+    private String province;
+    //核定载客
+    @JsonProperty("seats")
+    private int seats;
+    //被保人证件类型
+    @JsonProperty("insuredIdentifyType")
+    private String insuredIdentifyType;
+    //被保人证件号
+    @JsonProperty("identifyNumber")
+    private String identifyNumber;
+    //是否有社保
+    @JsonProperty("isSocial")
+    private String isSocial;
+
+    public RideAccidentQueryRequest(ZmConfigureParameters zmConfigureParameters) {
+        this.motorMainType = "100";//客车
+        this.carUseType = "01";//家庭自用
+        this.motorUsageTypeCode = "02";//非营业
+        this.province = zmConfigureParameters.getProvince();
+    }
+    @Override
+    public void setHead(BaseRequestHead head) {
+        super.setHead(head);
+        super.getHead().setTransCode(TransCode.SUBMIT_STATUS_QUERY);
+    }
+
+    @Override
+    public BaseRequestHead getHead() {
+        super.getHead().setTransCode(TransCode.SUBMIT_STATUS_QUERY);
+        return super.getHead();
+    }
+}

+ 65 - 0
src/main/java/com/ydtech/modules/order/entity/api/zhongmei/response/RideAccidentQueryResponse.java

@@ -0,0 +1,65 @@
+package com.ydtech.modules.order.entity.api.zhongmei.response;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.ydtech.modules.order.entity.api.zhongmei.BaseResponse;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+/**
+ * @Author: CXP
+ * @Date: 2023/10/19 22:28
+ */
+@NoArgsConstructor
+@Data
+public class RideAccidentQueryResponse extends BaseResponse {
+
+
+    private static final long serialVersionUID = 823665625721938302L;
+
+    //非车可投保产品信息
+    @JsonProperty("rideAccident")
+    private List<RideAccident> rideAccidents;
+
+    @NoArgsConstructor
+    @Data
+    public static class RideAccident {
+
+        //方案代码
+        @JsonProperty("rideRiskCode")
+        private String rideRiskCode;
+        //方案名称
+        @JsonProperty("rideRiskName")
+        private String rideRiskName;
+        //最大投保份数
+        @JsonProperty("maxQuantity")
+        private String maxQuantity;
+        //单位保费
+        @JsonProperty("unitPremium")
+        private String unitPremium;
+        //单位保额
+        @JsonProperty("unitAmount")
+        private String unitAmount;
+        //产品保险责任信息展示
+        @JsonProperty("accAmountView")
+        private List<AccAmountView> accAmountView;
+        //特别约定
+        @JsonProperty("engage")
+        private List<String> engage;
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class AccAmountView {
+
+        @JsonProperty("insurName")
+        private String insurName;
+        @JsonProperty("amountName")
+        private String amountName;
+        @JsonProperty("userToCalcAmount")
+        private String userToCalcAmount;
+        @JsonProperty("unitFlag")
+        private String unitFlag;
+    }
+}

+ 8 - 0
src/main/java/com/ydtech/modules/order/service/ZhongMeiOrderApiService.java

@@ -6,6 +6,7 @@ import com.ydtech.modules.ins.model.vo.GeneralNonCarProductResVo;
 import com.ydtech.modules.ins.model.ya.CarModelDTO;
 import com.ydtech.modules.order.entity.api.zhongmei.request.ApprovedRequest;
 import com.ydtech.modules.order.entity.api.zhongmei.request.CoverageRequest;
+import com.ydtech.modules.order.entity.vo.AccidentalDrivingQueryVo;
 import com.ydtech.modules.order.entity.vo.AccidentalDrivingVo;
 import com.ydtech.modules.order.entity.vo.PolicyPrintVo;
 
@@ -73,4 +74,11 @@ public interface ZhongMeiOrderApiService extends BaseOrderService<AccidentalDriv
      * @return
      */
     HttpResult<List<GeneralNonCarProductResVo>> getDrivingInsurance(GeneralNonCarProductReqVo reqVo);
+
+    /**
+     * 非车可投保产品查询
+     * @param accidentalDrivingVo
+     * @return
+     */
+    HttpResult<Object> rideAccidentQuery(AccidentalDrivingQueryVo accidentalDrivingVo);
 }

+ 15 - 4
src/main/java/com/ydtech/modules/order/service/impl/ZhongMeiOrderApiServiceImpl.java

@@ -31,10 +31,7 @@ import com.ydtech.modules.order.entity.api.zhongmei.response.*;
 import com.ydtech.modules.order.entity.config.ZmConfigureParameters;
 import com.ydtech.modules.order.entity.filter.CarModelsFilterUtils;
 import com.ydtech.modules.order.entity.po.InsTaskImagesBase64;
-import com.ydtech.modules.order.entity.vo.AccidentalDrivingVo;
-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.*;
 import com.ydtech.modules.order.service.*;
 import com.ydtech.modules.protocol.entity.po.PtlAgreementAttribution;
 import com.ydtech.modules.protocol.entity.po.PtlAgreementNonCarProductCosts;
@@ -537,6 +534,20 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
             return HttpResult.ok(underWriteInd);
         }
     }
+    @Override
+    public HttpResult<Object> rideAccidentQuery(AccidentalDrivingQueryVo accidentalDrivingVo) {
+        // 1. 协议id获取配置实体
+        ZmConfigureParameters zmConfigureParameters = configureParametersComponents.toEntity(ZmConfigureParameters.class, accidentalDrivingVo.getAgreementId());
+
+        // 2. 组装请求体
+        RideAccidentQueryRequest rideAccidentQueryRequest = new RideAccidentQueryRequest(zmConfigureParameters);
+        rideAccidentQueryRequest.setSeats(accidentalDrivingVo.getSeatNum());
+        rideAccidentQueryRequest.setHead(new BaseRequestHead(zmConfigureParameters));
+
+        RideAccidentQueryResponse rideAccidentQueryResponse = zhongmeiRequestApiComponents.rideAccidentQuery(rideAccidentQueryRequest, RideAccidentQueryResponse.class);
+
+        return HttpResult.ok("");
+    }
 
     /**
      * 根据协议代码获取可选非车险产品方案信息