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

import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.HeadFontStyle;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import com.alibaba.excel.annotation.write.style.HeadStyle;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import io.swagger.v3.oas.annotations.headers.Header;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

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

/**
 * 公积金待购买表
 *
 * @author huych
 * @date 2025-09-30 16:40:07
 */
@Data
public class TDispatchInfoPreFundExportVo implements Serializable {
	/**
	 * 项目名称
	 */
	@ExcelAttribute(name = "项目名称")
	@Schema(description = "项目名称")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("项目名称")
	private String deptName;
	/**
	 * 项目编码
	 */
	@ExcelAttribute(name = "项目编码")
	@Schema(description = "项目编码")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("项目编码")
	private String deptNo;
	/**
	 * 员工姓名
	 */
	@ExcelAttribute(name = "员工姓名")
	@Schema(description = "员工姓名")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("员工姓名")
	private String empName;
	/**
	 * 员工身份证
	 */
	@ExcelAttribute(name = "身份证号")
	@Schema(description = "身份证号")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("身份证号")
	private String empIdcard;
	/**
	 * 公积金户
	 */
	@ExcelAttribute(name = "公积金户")
	@Schema(description = "公积金户")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("公积金户")
	private String fundHouseholdName;
	/**
	 * 公积金基数
	 */
	@ExcelAttribute(name = "公积金基数")
	@Schema(description = "公积金基数")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ColumnWidth(15)
	@ExcelProperty("公积金基数")
	private String providentCardinal;

	/**
	 * 单位公积金缴纳比例
	 */
	@ExcelAttribute(name = "单位公积金缴纳比例")
	@Schema(description = "单位公积金缴纳比例")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ColumnWidth(20)
	@ExcelProperty("单位公积金缴纳比例")
	private BigDecimal unitProvidentPer;
	/**
	 * 个人公积金比例
	 */
	@ExcelAttribute(name = "个人公积金缴纳比例")
	@Schema(description = "个人公积金缴纳比例")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ColumnWidth(20)
	@ExcelProperty("个人公积金缴纳比例")
	private BigDecimal personalProvidentPer;
	/**
	 * 入职日期
	 */
	@ExcelAttribute(name = "入职日期")
	@Schema(description = "入职日期")
	@ExcelProperty("入职日期")
	private String joinLeaveDate;
	/**
	 * 合同签署状态 0已签署 1未签署
	 */
	@ExcelAttribute(name = "合同签署状态")
	@Schema(description = "合同签署状态 0已签署 1未签署")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ColumnWidth(15)
	@ExcelProperty("合同签署状态")
	private String contractStatus;

	/**
	 * 公积金购买状态，0待确认，1待派单，2派单失败，3待审核，4审核不通过，5待办理，6办理中，7办理成功，8办理失败，9部分办理失败
	 */
	@ExcelAttribute(name = "公积金购买状态")
	@Schema(description = "公积金购买状态，0待确认，1待派单，2派单失败，3待审核，4审核不通过，5待办理，6办理中，7办理成功，8办理失败，9部分办理失败")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ColumnWidth(18)
	@ExcelProperty("公积金购买状态")
	private String processStatus;
	/**
	 * 预计派单时间
	 */
	@ExcelAttribute(name = "预计派单时间")
	@Schema(description = "预计派单时间")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ColumnWidth(18)
	@ExcelProperty("预计派单时间")
	private LocalDateTime expectedCollectionTime;
	/**
	 * 前端客服姓名
	 */
	@ExcelAttribute(name = "前端客服")
	@Schema(description = "前端客服")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("前端客服")
	private String customerUsername;

	/**
	 * 起缴日期 (公积金起缴日期)
	 */
	@ExcelAttribute(name = "公积金起缴日期", isDate = true)
	@Schema(description = "起缴日期 (公积金起缴日期)")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ColumnWidth(15)
	@ExcelProperty("公积金起缴日期")
	private String fundStartDate;

	/**
	 * 发起失败原因
	 */
	@ExcelAttribute(name = "派单失败原因", maxLength = 500)
	@Schema(description = "派单失败原因")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ColumnWidth(25)
	@ExcelProperty("派单失败原因")
	private String errorInfo;

}
