فهرست منبع

添加泰康 preciseInit 接口

wlq 1 سال پیش
والد
کامیت
a352515771

+ 37 - 2
tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/entity/PreciseInitParam.java

@@ -4,9 +4,7 @@ import lombok.Getter;
 import lombok.Setter;
 
 /**
- *
  * {"channelCode":"OffWeb","orderID":"WBPC202503061106595800000","initFlag":"init","tplatformId":"feda77e829d4dedbbd8b4e236bacfac5","tplatLoginKey":"5fb6bdba974e17ec0db8c8ad4faab1ba1"}
- *
  */
 @Setter
 @Getter
@@ -35,4 +33,41 @@ public class PreciseInitParam {
      * t平台登录密钥,用于登录t平台的认证信息
      */
     private String tplatLoginKey;
+    /**
+     * 过户信息
+     */
+    private ChgOwnerInfo chgOwnerInfo;
+
+    @Getter
+    @Setter
+    public static class ChgOwnerInfo {
+        /**
+         * 交强险开始日期
+         */
+        private String startDateBZ;
+        /**
+         * 商业险开始日期
+         */
+        private String startDateCIP;
+        /**
+         * 交强险过户标志
+         */
+        private String chgOwnerFlagBZ;
+        /**
+         * 商业险过户标志
+         */
+        private String chgOwnerFlagCIP;
+        /**
+         * 即时投保商业险标志
+         */
+        private String InstantInureFlagCI;
+        /**
+         * 即时投保交强险标志
+         */
+        private String InstantInureFlagBI;
+        /**
+         * 过户日期
+         */
+        private String transferDate;
+    }
 }

+ 496 - 42
tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/entity/PreciseInitResult.java

@@ -4,76 +4,522 @@ import com.jzg.quotation.taikang.client.BaseResponse;
 import lombok.Getter;
 import lombok.Setter;
 
-import java.math.BigDecimal;
+import java.util.List;
 
 @Setter
 @Getter
 public class PreciseInitResult {
-    public static final class Response extends BaseResponse<PreciseInitResult> {}
+    public static final class Response extends BaseResponse<PreciseInitResult> {
+    }
 
+    /**
+     * 交强险折扣
+     */
+    private Double bzDisCount;
+    /**
+     * 交强险信息
+     */
+    private BzKindVo bzKindVo;
     /**
      * 商业险折扣
      */
-    private BigDecimal bzDisCount;
-
+    private Double ciDisCount;
     /**
-     * 交强险折扣
+     * 商业险种类列表
      */
-    private BigDecimal ciDisCount;
-
+    private List<Object> ciKindsVo; // 根据 JSON 数据,这里为空列表
     /**
-     * 费率调整系数
+     * 日期信息
      */
-    private BigDecimal elr;
-
+    private DateInfo date;
     /**
-     * 整单优惠金额
+     * 驾意险信息
      */
-    private BigDecimal entireExpDiscount;
-
+    private DriverAccidentVo driverAccidentVo;
     /**
-     * 整单推荐优惠金额
+     * 预期损失率 费率调整系数
      */
-    private BigDecimal entireRecommenDiscount;
-
+    private Double elr;
+    /**
+     * 整体经验折扣  整单优惠金额
+     */
+    private Double entireExpDiscount;
+    /**
+     * 整体推荐折扣 整单推荐优惠金额
+     */
+    private Double entireRecommenDiscount;
     /**
-     * 标志对象
+     * 标志信息 标志对象
      */
     private Flag flag;
-
     /**
-     * 新车优惠比例
+     * 良好起步折扣 新车优惠比例
      */
-    private BigDecimal goodStartDiscount;
-
+    private Double goodStartDiscount;
     /**
-     * 其他信息对象
+     * 其他信息
      */
     private Other other;
-
     /**
      * 风险评分
      */
-    private BigDecimal riskScore;
+    private Double riskScore;
+
+
+    @Getter
+    @Setter
+    public class BzKindVo {
+        /**
+         * 基准保费
+         */
+        private Double benchmarkPremium;
+        /**
+         * 不计免赔保费
+         */
+        private Double bjPremium;
+        /**
+         * 免赔额
+         */
+        private Double deductibleAmount;
+        /**
+         * 是否不计免赔标志
+         */
+        private String isBjKindFlag;
+        /**
+         * 是否选择
+         */
+        private String isSelect;
+        /**
+         * 险种中文名称
+         */
+        private String kindCName;
+        /**
+         * 险种代码
+         */
+        private String kindCode;
+        /**
+         * 保费
+         */
+        private Double premium;
+        /**
+         * 数量
+         */
+        private Integer quantity;
+        /**
+         * 报价金额
+         */
+        private Double quoteAmount;
+        /**
+         * 报价金额中文
+         */
+        private String quoteAmountCN;
+        /**
+         * 序列号
+         */
+        private Integer serialNo;
+        /**
+         * 总保费
+         */
+        private Double totalPremium;
+        /**
+         * 单位金额
+         */
+        private Double unitAmount;
+        /**
+         * 单位金额中文
+         */
+        private String unitAmountCN;
+        /**
+         * 上级险种代码
+         */
+        private String upKindCode;
+    }
+
+    @Getter
+    @Setter
+    public class DateInfo {
+        /**
+         * 交强险结束日期
+         */
+        private String endDateBZ;
+        /**
+         * 商业险结束日期
+         */
+        private String endDateCI;
+        /**
+         * 注册日期
+         */
+        private String enrollDate;
+        /**
+         * 交强险初始开始日期
+         */
+        private String initStartDateBZ;
+        /**
+         * 商业险初始开始日期
+         */
+        private String initStartDateCI;
+        /**
+         * 驾意险结束日期
+         */
+        private String jcbEndDate;
+        /**
+         * 驾意险结束小时
+         */
+        private String jcbEndHour;
+        /**
+         * 驾意险结束分钟
+         */
+        private String jcbEndMinute;
+        /**
+         * 驾意险开始日期
+         */
+        private String jcbStartDate;
+        /**
+         * 驾意险开始小时
+         */
+        private String jcbStartHour;
+        /**
+         * 驾意险开始分钟
+         */
+        private String jcbStartMinute;
+        /**
+         * 交强险结束日期
+         */
+        private String jqEndDate;
+        /**
+         * 交强险结束小时
+         */
+        private String jqEndHour;
+        /**
+         * 交强险结束分钟
+         */
+        private String jqEndMinute;
+        /**
+         * 交强险开始日期
+         */
+        private String jqStartDate;
+        /**
+         * 交强险开始日期小限制
+         */
+        private String jqStartDateLittleLimit;
+        /**
+         * 交强险开始小时
+         */
+        private String jqStartHour;
+        /**
+         * 交强险开始分钟
+         */
+        private String jqStartMinute;
+        /**
+         * 商业险延期次数
+         */
+        private Integer postponeCountCIP;
+        /**
+         * 交强险开始日期
+         */
+        private String startDateBZ;
+        /**
+         * 商业险开始日期
+         */
+        private String startDateCI;
+        /**
+         * 商业险结束日期
+         */
+        private String syEndDate;
+        /**
+         * 商业险结束小时
+         */
+        private String syEndHour;
+        /**
+         * 商业险结束分钟
+         */
+        private String syEndMinute;
+        /**
+         * 商业险开始日期
+         */
+        private String syStartDate;
+        /**
+         * 商业险开始日期小限制
+         */
+        private String syStartDateLittleLimit;
+        /**
+         * 商业险开始小时
+         */
+        private String syStartHour;
+        /**
+         * 商业险开始分钟
+         */
+        private String syStartMinute;
+    }
+
+    @Getter
+    @Setter
+    public class DriverAccidentVo {
+        /**
+         * 车险计划列表
+         */
+        private List<CarPlanInfo> carPlanInfoList;
+        /**
+         * 是否高端客户标志
+         */
+        private Boolean highGuestFlag;
+        /**
+         * 是否选择
+         */
+        private String isSelect;
+        /**
+         * 险种中文名称
+         */
+        private String kindCName;
+        /**
+         * 险种代码
+         */
+        private String kindCode;
+        /**
+         * 非车险结束日期
+         */
+        private String nonCarEndDate;
+        /**
+         * 非车险开始日期
+         */
+        private String nonCarStartDate;
+        /**
+         * 保费
+         */
+        private Double premium;
+        /**
+         * 数量
+         */
+        private Integer quantity;
+        /**
+         * 数量中文名称
+         */
+        private String quantityCname;
+        /**
+         * 数量列表
+         */
+        private List<Quantity> quantityList;
+        /**
+         * 选择的计划代码
+         */
+        private String selectPlanCode;
+    }
+
+    @Getter
+    @Setter
+    public class CarPlanInfo {
+        /**
+         * 险种列表
+         */
+        private List<ItemKind> itemKindList;
+        /**
+         * 新能源险种列表
+         */
+        private List<ItemKind> newEnergyItemKindList;
+        /**
+         * 计划代码
+         */
+        private String planCode;
+        /**
+         * 计划名称
+         */
+        private String planName;
+        /**
+         * 计划类型
+         */
+        private String planType;
+        /**
+         * 总金额
+         */
+        private String sumAmount;
+        /**
+         * 总保费
+         */
+        private String sumPremium;
+    }
 
-    // 内部类 Flag
+    @Getter
     @Setter
+    public class ItemKind {
+        /**
+         * 金额
+         */
+        private Double amount;
+        /**
+         * 金额中文
+         */
+        private String amountCN;
+        /**
+         * 免赔额
+         */
+        private Double deductibleAmount;
+        /**
+         * 免赔率
+         */
+        private Double deductibleRate;
+        /**
+         * 险种代码
+         */
+        private String kindCode;
+        /**
+         * 险种标志
+         */
+        private String kindInd;
+        /**
+         * 险种名称
+         */
+        private String kindName;
+        /**
+         * 模式代码
+         */
+        private Integer modeCode;
+        /**
+         * 保费
+         */
+        private Double premium;
+        /**
+         * 标准保费
+         */
+        private Double stantardPremium;
+        /**
+         * 非假日保额
+         */
+        private Double unholidaySumInsured;
+        /**
+         * 单位类型
+         */
+        private String unitType;
+    }
+
     @Getter
-    public static class Flag {
+    @Setter
+    public class Quantity {
+        /**
+         * 金额中文名称
+         */
+        private String amountCname;
+        /**
+         * 金额英文名称
+         */
+        private String amountEname;
+        /**
+         * 金额显示名称
+         */
+        private String amountShowName;
+        /**
+         * 客户端类型
+         */
+        private String clientType;
+        /**
+         * 公司代码
+         */
+        private String comCode;
+        /**
+         * 险种代码
+         */
+        private String kindCode;
+        /**
+         * 是否选中
+         */
+        private String selected;
+        /**
+         * 序列号
+         */
+        private Integer serialNo;
+    }
+
+    @Getter
+    @Setter
+    public class Flag {
+        /**
+         * 交强险标志
+         */
+        private String bzFlag;
+        /**
+         * 商业险标志
+         */
+        private String ciFlag;
+        /**
+         * 预期折扣标志
+         */
+        private String expectDiscountFlag;
         /**
          * 预期显示标志
          */
         private Boolean expectShowFlag;
+        /**
+         * 禁止交强险标志
+         */
+        private String forbidBzFlag;
+        /**
+         * 禁止商业险标志
+         */
+        private String forbidCiFlag;
+        /**
+         * 即时投保交强险允许标志
+         */
+        private String instantInsureBZAllowed;
+        /**
+         * 即时投保商业险允许标志
+         */
+        private String instantInsureCIAllowed;
+        /**
+         * 即时投保交强险标志
+         */
+        private String instantInsureFlagBZ;
+        /**
+         * 即时投保商业险标志
+         */
+        private String instantInsureFlagCI;
+        /**
+         * 是否意外险标志
+         */
+        private String isAccidentInsureFlag;
+        /**
+         * 是否转为保护标志
+         */
+        private String isTurnToProtect;
+        /**
+         * 通知标志
+         */
+        private String noticeFlag;
+        /**
+         * 新旧商业险标志
+         */
+        private String oldNewCIFlag;
+        /**
+         * 报价标志
+         */
+        private String quoteFlag;
+        /**
+         * 续保交强险标志
+         */
+        private String renewalBZFlag;
+        /**
+         * 续保商业险标志
+         */
+        private String renewalCIFlag;
     }
 
-    // 内部类 Other
-    @Setter
     @Getter
-    public static class Other {
+    @Setter
+    public class Other {
         /**
          * 实际价值
          */
-        private BigDecimal actualValue;
+        private Double actualValue;
+        /**
+         * 车辆类型
+         */
+        private String carType;
+        /**
+         * 公司代码
+         */
+        private String comCode;
+        /**
+         * 折扣月数
+         */
+        private Integer discountMonths;
 
         /**
          * 车主变更标志
@@ -81,35 +527,44 @@ public class PreciseInitResult {
         private String chgOwnerFlag;
 
         /**
-         * 折扣月数
+         * 是否切割车
          */
-        private Integer discountMonths;
-
+        private String isCutCar;
+        /**
+         * 是否新车
+         */
+        private String isNewCar;
+        /**
+         * 通知信息
+         */
+        private String notice;
         /**
-         * 购车价格
+         * 购买价格
          */
-        private BigDecimal purchasePrice;
+        private Double purchasePrice;
 
         /**
          * 报价类型
          */
         private String quotationType;
-
         /**
          * 座位数
          */
         private Integer seats;
-
         /**
-         * 特殊车辆标志
+         * 使用性质代码
          */
-        private String specialCarFlag;
-
+        private String useNatureCodeCode;
         /**
          * 使用年限
          */
         private Integer useYear;
 
+        /**
+         * 特殊车辆标志
+         */
+        private String specialCarFlag;
+
         /**
          * 车主信息提示
          */
@@ -120,5 +575,4 @@ public class PreciseInitResult {
          */
         private String vehicleOwnerMessageType;
     }
-
-}
+}

+ 2 - 1
tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/service/TaiKangHttpService.java

@@ -336,13 +336,14 @@ public class TaiKangHttpService {
      *
      * @return
      */
-    public PreciseInitResult preciseInit(String tplatformId, String orderId) {
+    public PreciseInitResult preciseInit(String tplatformId, String orderId, PreciseInitParam.ChgOwnerInfo chgOwnerInfo) {
         PreciseInitParam param = new PreciseInitParam();
         param.setChannelCode("OffWeb");
         param.setOrderID(orderId);
         param.setTplatformId(tplatformId);
         param.setInitFlag("init");
         param.setTplatLoginKey("5fb6bdba974e17ec0db8c8ad4faab1ba1");
+        param.setChgOwnerInfo(chgOwnerInfo);
 
         HttpHeaders httpHeaders = new HttpHeaders();
         httpHeaders.add("tkCarRequestToken", token());

+ 23 - 2
tenant/insurance/quotation-taikang/src/test/java/com/jzg/quotation/taikang/service/TaiKangHttpServiceTest.java

@@ -547,8 +547,29 @@ public class TaiKangHttpServiceTest {
 
     @Test
     @Order(13)
-    public void preciseInit() {
-        PreciseInitResult preciseInitResult = taiKangHttpService.preciseInit("feda77e829d4dedbbd8b4e236bacfac5", "WBPC202503061106595800000");
+    public void preciseInit1() {
+        PreciseInitResult preciseInitResult = taiKangHttpService.preciseInit("feda77e829d4dedbbd8b4e236bacfac5", "WBPC202503061106595800000", null);
+
+        assertNotNull(preciseInitResult);
+
+        System.out.println();
+        System.out.println(JSON.toJSONString(preciseInitResult));
+    }
+
+
+    @Test
+    @Order(13)
+    public void preciseInit2() {
+        PreciseInitParam.ChgOwnerInfo chgOwnerInfo = new PreciseInitParam.ChgOwnerInfo();
+        chgOwnerInfo.setStartDateBZ("");
+        chgOwnerInfo.setStartDateCIP("");
+        chgOwnerInfo.setChgOwnerFlagBZ("1");
+        chgOwnerInfo.setChgOwnerFlagCIP("");
+        chgOwnerInfo.setInstantInureFlagCI("0");
+        chgOwnerInfo.setInstantInureFlagBI("0");
+        chgOwnerInfo.setTransferDate("2025-03-04");
+
+        PreciseInitResult preciseInitResult = taiKangHttpService.preciseInit("feda77e829d4dedbbd8b4e236bacfac5", "WBPC202503061106595800000", chgOwnerInfo);
 
         assertNotNull(preciseInitResult);