All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.zhbiaocloud.carbon.model.Policy Maven / Gradle / Ivy

Go to download

智保云数据平台开发 SDK。定义数据模型以及数据交互所支持的加解密方法

There is a newer version: 1.4.0
Show newest version
/*
 * Copyright (c) 2018-2023. Chengdu WeiSiFan Technology Co., Ltd.
 * Carbon Integration SDK is licensed under Mulan PSL v2.
 *
 * You can use this software according to the terms and conditions of the Mulan PSL v2.
 * You may obtain a copy of Mulan PSL v2 at: http://license.coscl.org.cn/MulanPSL2
 *
 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
 * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
 * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
 * See the Mulan PSL v2 for more details.
 */

package com.zhbiaocloud.carbon.model;

import com.zhbiaocloud.carbon.model.common.Agent;
import com.zhbiaocloud.carbon.model.common.Applicant;
import com.zhbiaocloud.carbon.model.common.Beneficiary;
import com.zhbiaocloud.carbon.model.common.Insured;
import com.zhbiaocloud.carbon.model.common.Risk;
import com.zhbiaocloud.carbon.model.type.CompanyType;
import com.zhbiaocloud.carbon.model.type.PayIntv;
import com.zhbiaocloud.carbon.model.type.PayType;
import com.zhbiaocloud.carbon.model.type.PolicyStatus;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.media.Schema.RequiredMode;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
import lombok.Data;

/**
 * 承保保单数据模型
 *
 * @author jun
 */
@Data
@Schema(title = "承保保单数据模型")
public class Policy {

  @Schema(title = "保险公司", description = "保险公司编码/名称", requiredMode = RequiredMode.REQUIRED)
  private CompanyType company;

  @Schema(title = "保单号", description = "保单唯一标识符,可用于去重判断", requiredMode = RequiredMode.REQUIRED)
  private String policyNo;

  @Schema(title = "投保单号")
  private String proposalNo;

  @Schema(title = "印刷号")
  private String prtNo;

  @Schema(title = "订单号")
  private String orderNo;

  @Schema(title = "外部订单号", description = "用于中介公司自行开发的投保订单标识符,回传数据进行匹配更新状态")
  private String extOrderNo;

  @Schema(title = "原保单号", description = "转保/续保且保单号不同的情况下传递")
  private String previousPolicyNo;

  @Schema(title = "原投保单号", description = "转保/续保且投保单号不同的情况下传递")
  private String previousProposalNo;

  @Schema(title = "管理机构", description = "保险公司分公司管理机构、或接单机构编码")
  private String manageCom;

  @Schema(title = "管理机构名称", description = "保险公司分公司管理机构、或接单机构名称")
  private String manageComName;

  @Schema(title = "中介机构编码", description = "一般指中介机构在保险公司销管系统中的编码")
  private String agentCom;

  @Schema(title = "中介机构名称", description = "一般指中介机构在保险公司销管系统中的机构名称")
  private String agentComName;

  @Schema(title = "产品编码", description = "有些保险产品趸交、期交的险种编码不同,在这里需要使用固定的产品编码", requiredMode = RequiredMode.REQUIRED)
  private String productNo;

  @Schema(title = "产品名称", description = "主险产品名称,需要和在条款中使用的名称保持一致", requiredMode = RequiredMode.REQUIRED)
  private String productName;

  @Schema(title = "保费", description = "首期合同保费", requiredMode = RequiredMode.REQUIRED)
  private BigDecimal premium;

  @Schema(title = "保额", description = "首期合同保额", requiredMode = RequiredMode.REQUIRED)
  private BigDecimal amount;

  @Schema(title = "电子保单下载地址")
  private String ePolicyUrl;

  @Schema(title = "交费间隔", description = "同交费频率")
  private PayIntv payIntv;

  @Schema(title = "支付方式")
  private PayType payType;

  @Schema(title = "投保时间", requiredMode = RequiredMode.REQUIRED)
  private LocalDateTime applyTime;

  @Schema(title = "首期交费时间", description = "同支付时间", requiredMode = RequiredMode.REQUIRED)
  private LocalDateTime payTime;

  @Schema(title = "签单时间", description = "同承保时间", requiredMode = RequiredMode.REQUIRED)
  private LocalDateTime signTime;

  @Schema(title = "生效时间", requiredMode = RequiredMode.REQUIRED)
  private LocalDateTime effectiveTime;

  @Schema(title = "失效时间", description = "保终身时不需要传递")
  private LocalDateTime expirationTime;

  @Schema(title = "回执签收时间", description = "客户(投保人)签收时间")
  private LocalDateTime receiptSignTime;

  @Schema(title = "回执录入时间", description = "回执回销日期,或保险公司收到回执日期")
  private LocalDateTime receiptEnteredTime;

  @Schema(title = "回访时间", description = "一般指回访成功日期")
  private LocalDateTime rtnCallTime;

  @Schema(title = "回访成功标识", description = "只有在有回访时间时才会判断回访成功标识")
  private Boolean rtnCallSuccess;

  @Schema(title = "回访失败原因", description = "只有在有回访成功标识为false时才会使用次字段")
  private String rtnCallFailedReason;

  @Schema(title = "保单状态")
  private PolicyStatus status;

  @Schema(title = "扩展字段", description = "在投保时传递额外的参数,数据推送时会将这些扩展参数原样返回")
  private Map ext;

  @Schema(title = "代理人信息", requiredMode = RequiredMode.REQUIRED)
  private Agent agent;

  @Schema(title = "投保人信息", requiredMode = RequiredMode.REQUIRED)
  private Applicant applicant;

  @Schema(title = "被保人信息", requiredMode = RequiredMode.REQUIRED)
  private List insureds;

  @Schema(title = "受益人信息", description = "如果没有受益人信息,表示法定受益人")
  private List bnfs;

  @Schema(title = "险种信息", requiredMode = RequiredMode.REQUIRED)
  private List risks;
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy