/*
 *    Copyright (c) 2018-2025, lengleng All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 * Redistributions of source code must retain the above copyright notice,
 * this list of conditions and the following disclaimer.
 * Redistributions in binary form must reproduce the above copyright
 * notice, this list of conditions and the following disclaimer in the
 * documentation and/or other materials provided with the distribution.
 * Neither the name of the yifu4cloud.com developer nor the names of its
 * contributors may be used to endorse or promote products derived from
 * this software without specific prior written permission.
 * Author: lengleng (wangiegie@gmail.com)
 */
package com.yifu.cloud.plus.v1.yifu.archives.entity;

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.baomidou.mybatisplus.annotation.TableName;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttributeConstants;
import com.yifu.cloud.plus.v1.yifu.common.mybatis.base.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;

import java.util.Date;

/**
 * 员工合同续签待办
 *
 * @author fxj
 * @date 2022-07-01 14:15:05
 */
@Data
@TableName("t_emp_contract_alert")
@EqualsAndHashCode(callSuper = true)
@Schema(description = "员工合同续签待办")
public class TEmpContractAlert extends BaseEntity {

    /**
     * 主键
     */
    @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;

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

	/**
	 * 前端客服
	 */
	@TableField(exist = false)
	@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;

}
