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

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.HeadFontStyle;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmpContractAlert;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttributeConstants;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.hibernate.validator.constraints.Length;

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

/**
 * @Author fxj
 * @Date 2022/7/1
 * @Description
 * @Version 1.0
 */
@Data
public class ContractAlertAutoVo extends TEmpContractAlert implements Serializable {

	/**
	 * 主键
	 */
	@TableId(type = IdType.ASSIGN_ID)
	@ExcelAttribute(name = "主键" )
	@Schema(description ="主键")
	@ExcelIgnore
	private String id;

	/**
	 * 员工名称
	 */
	@ExcelAttribute(name = "员工名称" )
	@Schema(description ="员工名称")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("员工名称")
	private String empName;

	/**
	 * 员工ID
	 */
	@ExcelAttribute(name = "员工ID" )
	@Schema(description ="员工ID")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("员工ID")
	private String empId;
	/**
	 * 项目id
	 */
	@ExcelAttribute(name = "项目id" )
	@Schema(description ="项目id")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("项目id")
	private String deptId;
	/**
	 * 项目名称
	 */
	@ExcelAttribute(name = "项目名称" )
	@Schema(description ="项目名称")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("项目名称")
	private String project;

	/**
	 * 项目编码
	 */
	@ExcelAttribute(name = "项目编码" )
	@Schema(description ="项目编码")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("项目编码")
	private String projectNo;

	/**
	 * 身份证号
	 */
	@ExcelAttribute(name = "身份证号" )
	@Schema(description ="身份证号")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("身份证号")
	private String empIdcard;

	/**
	 * 员工编码
	 */
	@ExcelAttribute(name = "员工编码" )
	@Schema(description ="员工编码")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("员工编码")
	private String empCode;

	/**
	 * 合同开始日期
	 */
	@ExcelAttribute(name = "合同开始日期" )
	@Schema(description ="合同开始日期")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("合同开始日期")
	private Date contractStart;

	/**
	 * 合同截止日期
	 */
	@ExcelAttribute(name = "合同截止日期" )
	@Schema(description ="合同截止日期")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("合同截止日期")
	private Date contractEnd;

	/**
	 * 档案地-省
	 */
	@ExcelAttribute(name = "档案地-省" )
	@Schema(description ="档案地-省")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("档案地-省")
	private String fileProvince;

	/**
	 * 档案地-市
	 */
	@ExcelAttribute(name = "档案地-市" )
	@Schema(description ="档案地-市")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("档案地-市")
	private String fileCity;

	/**
	 * 档案地-县
	 */
	@ExcelAttribute(name = "档案地-县" )
	@Schema(description ="档案地-县")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("档案地-县")
	private String fileTown;

	/**
	 * 员工类型
	 */
	@ExcelAttribute(name = "员工类型" )
	@Schema(description ="员工类型")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("员工类型")
	private String empType;

	/**
	 * 合同类型
	 */
	@ExcelAttribute(name = "合同类型" )
	@Schema(description ="合同类型")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("合同类型")
	private String contractType;

	/**
	 * 合同期限
	 */
	@ExcelAttribute(name = "合同期限" )
	@Schema(description ="合同期限")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("合同期限")
	private String contractTerm;

	/**
	 * 到期天数
	 */
	@ExcelAttribute(name = "到期天数" )
	@Schema(description ="到期天数")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("到期天数")
	private Integer daysDue;

	/**
	 * 是否过期：0 未过期 1 过期
	 */
	@ExcelAttribute(name = "是否过期：0 未过期 1 过期" )
	@Schema(description ="是否过期：0 未过期 1 过期")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("是否过期：0 未过期 1 过期")
	private String dueFlag;

	/**
	 * 过期天数
	 */
	@ExcelAttribute(name = "过期天数" )
	@Schema(description ="过期天数")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("过期天数")
	private Integer daysOver;

	/**
	 * 首次提醒时间
	 */
	@ExcelAttribute(name = "首次提醒时间" )
	@Schema(description ="首次提醒时间")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("首次提醒时间")
	private Date firstAlertTime;

	/**
	 * 提醒人
	 */
	@ExcelAttribute(name = "提醒人" )
	@Schema(description ="提醒人")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("提醒人")
	private String alertPerson;

	/**
	 * 处理状态 0 待处理  1  处理中
	 */
	@ExcelAttribute(name = "处理状态" )
	@Schema(description ="处理状态")
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("处理状态")
	private String handleStatus;

	/**
	 * 合同ID
	 */
	@ExcelAttribute(name = "合同ID" , isExport = false)
	@Schema(description ="合同ID")
	@ExcelIgnore
	private String contractId;

	/**
	 * 客户id
	 */
	@Schema(description = "客户id")
	private String unitId;
	/**
	 * 客户名称
	 */
	@Schema(description = "客户名称")
	private String unitName;
	/**
	 * 客户编码
	 */
	@Schema(description = "客户编码")
	private String unitNo;
	/**
	 * 手机号码
	 */
	@Schema(description = "手机号码")
	private String empPhone;


	/**
	 * 是否反馈
	 */
	@ExcelAttribute(name = "是否反馈" )
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("是否反馈")
	@Schema(description = "是否反馈")
	private Integer isFeedback;

	/**
	 * 反馈原因
	 */
	@ExcelAttribute(name = "未续签原因" )
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("未续签原因")
	@Schema(description = "未续签原因")
	private String feedbackReason;

	/**
	 * 详情
	 */
	@ExcelAttribute(name = "具体描述信息" )
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("具体描述信息")
	@Schema(description = "具体描述信息")
	private String feedbackDetail;


	/**
	 * 反馈人
	 */
	@ExcelAttribute(name = "反馈人" )
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("反馈人")
	@Schema(description = "反馈人")
	private String feedbackPerson;

	/**
	 * 反馈时间
	 */
	@ExcelAttribute(name = "反馈时间" )
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("反馈时间")
	@Schema(description = "反馈时间")
	private Date feedbackTime;


	/**
	 * 预计合同发起时间
	 */
	@TableField(exist = false)
	@ExcelAttribute(name = "预计合同发起时间" )
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("预计合同发起时间")
	@Schema(description = "预计合同发起时间")
	private Date expectedCollectionTime;
	/**
	 * 签署方式:1线下签0电子签
	 */
	@TableField(exist = false)
	@ExcelAttribute(name = "签署方式" )
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("签署方式")
	@Schema(description = "签署方式:1线下签0电子签")
	private Integer signType;

	/**
	 * 续签状态：0待确认,1待发起,2线下签待审核,3线下签审核不通过4线下签待归档5发起失败6签署中7签署失败8电子待归档9（已归档-电子签+线下签）已完结10撤销签署
	 */
	@TableField(exist = false)
	@ExcelAttribute(name = "续签状态" )
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("续签状态")
	@Schema(description = "签署方式:0待确认,1待发起,2线下签待审核,3线下签审核不通过4线下签待归档5发起失败6签署中7签署失败8电子待归档9（已归档-电子签+线下签）已完结10撤销签署-客服撤销 11撤销签署-系统自动撤销")
	private Integer processStatus;

	/**
	 * 前端客服
	 */
	@ExcelAttribute(name = "前端客服" )
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("前端客服")
	@Schema(description = "前端客服")
	private String csName;

	/**
	 * 前端客服
	 */
	@ExcelAttribute(name = "前端客服" )
	@HeadFontStyle(fontHeightInPoints = 11)
	@ExcelProperty("前端客服")
	@Schema(description = "前端客服")
	private String csLoginName;

	/**
	 * 合同截止日期
	 */
	@TableField(exist = false)
	private Date auditTime;

	@Schema(description = "申请编码")
	private String applyNo;

	/**
	 * 工时制（数据字典） 1标准工时 2 综合工时 3不定时工时制
	 */
	@Length(max = 32, message = "工时制不能超过32个字符")
	@ExcelAttribute(name = "工时制", maxLength = 32, isDataId = true, dataType = ExcelAttributeConstants.WORKING_HOURS)
	@Schema(description = "工时制（数据字典） 1标准工时 2 综合工时 3不定时工时制", name = "workingHours")
	private String workingHours;

	/**
	 * 合同岗位
	 */
	@Length(max = 32, message = "合同岗位不能超过32个字符")
	@ExcelAttribute(name = "合同岗位", maxLength = 32, needExport = true)
	@Schema(description = "合同岗位", name = "post")
	private String post;

	/**
	 * 是否自动化： 0 是  1 否  默认1
	 */
	@Length(max = 1, message = "工是否自动化不能超过1个字符")
	@ExcelAttribute(name = "是否自动化", maxLength = 32)
	@Schema(description = "是否自动化： 0 是  1 否  默认1", name = "autoFlag")
	private String autoFlag;

	/**
	 * 发起失败时间
	 */
	@ExcelAttribute(name = "发起失败时间", isDate = true)
	@ExcelProperty("发起失败时间")
	@Schema(description = "发起失败时间")
	private LocalDateTime errorTime;

	/**
	 * 异常原因说明
	 */
	@ExcelAttribute(name = "异常原因说明", maxLength = 200)
	@Length(max = 200, message = "异常原因说明不能超过200个字符")
	@ExcelProperty("异常原因说明")
	@Schema(description = "异常原因说明")
	private String errorInfo;


	/**
	 * 续签确认ID
	 */
	@Schema(description = "续签确认ID")
	private String preId;
}
