package com.yifu.cloud.plus.v1.yifu.archives.vo;

import com.alibaba.excel.annotation.ExcelProperty;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.RowIndex;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 社保待购买表
 *
 * @author huych
 * @date 2025-09-30 16:40:07
 */
@Data
public class TDispatchInfoPreVo extends RowIndex implements Serializable {

	/**
	 * ID
	 */
	@ExcelAttribute(name = "ID")
	@Schema(description = "ID")
	@ExcelProperty("ID")
	private String id;
	/**
	 * 员工姓名
	 */
	@ExcelAttribute(name = "员工姓名")
	@Schema(description = "员工姓名")
	@ExcelProperty("员工姓名")
	private String empName;
	/**
	 * 员工身份证
	 */
	@ExcelAttribute(name = "员工身份证")
	@Schema(description = "员工身份证")
	@ExcelProperty("员工身份证")
	private String empIdcard;
	/**
	 * 社保购买状态，0待确认，1待派单，2派单失败，3待审核，4审核不通过，5待办理，6办理中，7办理成功，8办理失败，9部分办理失败
	 */
	@ExcelAttribute(name = "社保购买状态")
	@Schema(description = "社保购买状态，0待确认，1待派单，2派单失败，3待审核，4审核不通过，5待办理，6办理中，7办理成功，8办理失败，9部分办理失败")
	@ExcelProperty("社保购买状态")
	private String processStatus;
	/**
	 * 项目id
	 */
	@ExcelAttribute(name = "项目id")
	@Schema(description = "项目id")
	@ExcelProperty("项目id")
	private String deptId;
	/**
	 * 社保缴纳地-省
	 */
	@ExcelAttribute(name = "社保缴纳地-省")
	@Schema(description = "社保缴纳地-省")
	@ExcelProperty("社保缴纳地-省")
	private String socialProvince;
	/**
	 * 社保缴纳地-市
	 */
	@ExcelAttribute(name = "社保缴纳地-市")
	@Schema(description = "社保缴纳地-市")
	@ExcelProperty("社保缴纳地-市")
	private String socialCity;
	/**
	 * 社保缴纳地-县
	 */
	@ExcelAttribute(name = "社保缴纳地-县")
	@Schema(description = "社保缴纳地-县")
	@ExcelProperty("社保缴纳地-县")
	private String socialTown;
	/**
	 * 公积金缴纳地-省
	 */
	@ExcelAttribute(name = "公积金缴纳地-省")
	@Schema(description = "公积金缴纳地-省")
	@ExcelProperty("公积金缴纳地-省")
	private String fundProvince;
	/**
	 * 公积金缴纳地-市
	 */
	@ExcelAttribute(name = "公积金缴纳地-市")
	@Schema(description = "公积金缴纳地-市")
	@ExcelProperty("公积金缴纳地-市")
	private String fundCity;
	/**
	 * 公积金缴纳地-县
	 */
	@ExcelAttribute(name = "公积金缴纳地-县")
	@Schema(description = "公积金缴纳地-县")
	@ExcelProperty("公积金缴纳地-县")
	private String fundTown;
	/**
	 * 派单项：如 养老、公积金
	 */
	@ExcelAttribute(name = "派单项")
	@Schema(description = "派单项：如 养老、公积金")
	@ExcelProperty("派单项")
	private String dispatchItem;
	/**
	 * 项目名称
	 */
	@ExcelAttribute(name = "项目名称")
	@Schema(description = "项目名称")
	@ExcelProperty("项目名称")
	private String deptName;
	/**
	 * 项目编码
	 */
	@ExcelAttribute(name = "项目编码")
	@Schema(description = "项目编码")
	@ExcelProperty("项目编码")
	private String deptNo;
	/**
	 * 公积金户名称
	 */
	@ExcelAttribute(name = "公积金户名称")
	@Schema(description = "公积金户名称")
	@ExcelProperty("公积金户名称")
	private String providentHouseholdName;
	/**
	 * 社保户名称
	 */
	@ExcelAttribute(name = "社保户名称")
	@Schema(description = "社保户名称")
	@ExcelProperty("社保户名称")
	private String socialHouseholdName;
	/**
	 * 0社保1公积金
	 */
	@ExcelAttribute(name = "0社保1公积金")
	@Schema(description = "0社保1公积金")
	@ExcelProperty("0社保1公积金")
	private String typeSub;
	/**
	 * 接收方式
	 */
	@Schema(description = "接收方式 0项目配置 1自定义")
	private String receiveType;
	/**
	 * 备案基数
	 */
	@ExcelAttribute(name = "备案基数")
	@Schema(description = "备案基数")
	@ExcelProperty("备案基数")
	private String recordBase;
	/**
	 * 备案基数类型 0固定值 1自定义
	 */
	@ExcelAttribute(name = "备案基数类型")
	@Schema(description = "备案基数类型 0固定值 1自定义")
	@ExcelProperty("备案基数类型")
	private String recordBaseType;
	/**
	 * 入职日期
	 */
	@ExcelAttribute(name = "入职日期", isDate = true)
	@Schema(description = "入职日期")
	@ExcelProperty("入职日期")
	private Date joinLeaveDate;
	/**
	 * 前端客服姓名
	 */
	@ExcelAttribute(name = "前端客服姓名")
	@Schema(description = "前端客服姓名")
	@ExcelProperty("前端客服姓名")
	private String customerUsername;
	/**
	 * 前端客服登录名
	 */
	@ExcelAttribute(name = "前端客服登录名")
	@Schema(description = "前端客服登录名")
	@ExcelProperty("前端客服登录名")
	private String customerUserLoginName;
	/**
	 * 预计派单时间
	 */
	@ExcelAttribute(name = "预计派单时间", isDate = true)
	@Schema(description = "预计派单时间")
	@ExcelProperty("预计派单时间")
	private Date expectedCollectionTime;
	/**
	 * 预计派单时间
	 */
	@Schema(description = "预计派单类型 入职日期当天 0 入职一个月 1 ...")
	private String expectedCollectionType;
	/**
	 * 派单确认时间
	 */
	@ExcelAttribute(name = "派单确认时间", isDate = true)
	@Schema(description = "派单确认时间")
	@ExcelProperty("派单确认时间")
	private Date expectedConfirmTime;
	/**
	 * 是否自动触发派增 0 是 1否
	 */
	@ExcelAttribute(name = "是否自动触发派增")
	@Schema(description = "是否自动触发派增 0 是 1否")
	@ExcelProperty("是否自动触发派增")
	private String isAutoDis;
	/**
	 * 起缴日期是否一致 0 是 1否
	 */
	@ExcelAttribute(name = "起缴日期是否一致")
	@Schema(description = "起缴日期是否一致 0 是 1否")
	@ExcelProperty("起缴日期是否一致")
	private String isCreateDate;
	/**
	 * 配置名称
	 */
	@ExcelAttribute(name = "配置名称")
	@Schema(description = "配置名称")
	@ExcelProperty("配置名称")
	private String configName;
	/**
	 * 配置id
	 */
	@ExcelAttribute(name = "配置id")
	@Schema(description = "配置id")
	@ExcelProperty("配置id")
	private String configId;
	/**
	 * 入职确认信息主表id
	 */
	@ExcelAttribute(name = "入职确认信息主表id")
	@Schema(description = "入职确认信息主表id")
	@ExcelProperty("入职确认信息主表id")
	private String registerId;
	/**
	 * 起缴日期
	 */
	@ExcelAttribute(name = "起缴日期", isDate = true)
	@Schema(description = "起缴日期")
	@ExcelProperty("起缴日期")
	private Date socialStartDate;
	/**
	 * 养老起缴日期
	 */
	@ExcelAttribute(name = "养老起缴日期", isDate = true)
	@Schema(description = "养老起缴日期")
	@ExcelProperty("养老起缴日期")
	private Date pensionStart;
	/**
	 * 医疗起缴日期
	 */
	@ExcelAttribute(name = "医疗起缴日期", isDate = true)
	@Schema(description = "医疗起缴日期")
	@ExcelProperty("医疗起缴日期")
	private Date medicalStart;
	/**
	 * 失业起缴日期
	 */
	@ExcelAttribute(name = "失业起缴日期", isDate = true)
	@Schema(description = "失业起缴日期")
	@ExcelProperty("失业起缴日期")
	private Date unemployStart;
	/**
	 * 工伤起缴日期
	 */
	@ExcelAttribute(name = "工伤起缴日期", isDate = true)
	@Schema(description = "工伤起缴日期")
	@ExcelProperty("工伤起缴日期")
	private Date workInjuryStart;
	/**
	 * 生育起缴日期
	 */
	@ExcelAttribute(name = "生育起缴日期", isDate = true)
	@Schema(description = "生育起缴日期")
	@ExcelProperty("生育起缴日期")
	private Date birthStart;
	/**
	 * 大病起缴日期
	 */
	@ExcelAttribute(name = "大病起缴日期", isDate = true)
	@Schema(description = "大病起缴日期")
	@ExcelProperty("大病起缴日期")
	private Date bigailmentStart;
	/**
	 * 委托备注
	 */
	@ExcelAttribute(name = "委托备注")
	@Schema(description = "委托备注")
	@ExcelProperty("委托备注")
	private String trustRemark;
	/**
	 * 养老基数
	 */
	@ExcelAttribute(name = "养老基数")
	@Schema(description = "养老基数")
	@ExcelProperty("养老基数")
	private BigDecimal pensionCardinal;
	/**
	 * 医疗基数
	 */
	@ExcelAttribute(name = "医疗基数")
	@Schema(description = "医疗基数")
	@ExcelProperty("医疗基数")
	private BigDecimal medicalCardinal;
	/**
	 * 失业基数
	 */
	@ExcelAttribute(name = "失业基数")
	@Schema(description = "失业基数")
	@ExcelProperty("失业基数")
	private BigDecimal unemploymentCardinal;
	/**
	 * 大病救助基数
	 */
	@ExcelAttribute(name = "大病救助基数")
	@Schema(description = "大病救助基数")
	@ExcelProperty("大病救助基数")
	private BigDecimal bigailmentCardinal;
	/**
	 * 工伤基数
	 */
	@ExcelAttribute(name = "工伤基数")
	@Schema(description = "工伤基数")
	@ExcelProperty("工伤基数")
	private BigDecimal workInjuryCardinal;
	/**
	 * 生育基数
	 */
	@ExcelAttribute(name = "生育基数")
	@Schema(description = "生育基数")
	@ExcelProperty("生育基数")
	private BigDecimal birthCardinal;
	/**
	 * 缴纳类型（0最低缴纳、1自定义缴纳、2最高缴纳）
	 */
	@ExcelAttribute(name = "缴纳类型")
	@Schema(description = "缴纳类型（0最低缴纳、1自定义缴纳、2最高缴纳）")
	@ExcelProperty("缴纳类型")
	private String paymentType;
	/**
	 * 合同签署状态 0已签署 1未签署
	 */
	@ExcelAttribute(name = "合同签署状态")
	@Schema(description = "合同签署状态 0已签署 1未签署")
	@ExcelProperty("合同签署状态")
	private String contractStatus;
	/**
	 * 合同id
	 */
	@ExcelAttribute(name = "合同id")
	@Schema(description = "合同id")
	@ExcelProperty("合同id")
	private String contractId;

	@Schema(description = "创建人-姓名")
	private String createName;

	@Schema(description = "创建人")
	private String createBy;

	@Schema(description = "更新人")
	private String updateBy;

}
