package org.dromara.personnel.domain.vo;

import java.util.Date;

import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.personnel.domain.OpsUser;

import java.io.Serial;
import java.io.Serializable;


/**
 * 运维人员视图对象 sub_construction_user
 *
 * @author LionLi
 * @date 2025-09-16
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = OpsUser.class)
public class OpsUserVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     *
     */
    @ExcelProperty(value = "")
    private Long id;

    /**
     * 人脸照
     */
    @ExcelProperty(value = "人脸照")
    private String facePic;

    /**
     * 系统用户id
     */
    @ExcelProperty(value = "系统用户id")
    private Long sysUserId;

    /**
     * 人员姓名
     */
    @ExcelProperty(value = "人员姓名")
    private String userName;

    /**
     * 项目id
     */
    @ExcelProperty(value = "项目id")
    private Long projectId;



    /**
     * 班组id
     */
    @ExcelProperty(value = "班组id")
    private Long teamId;

    /**
     * 班组名称
     */
    @ExcelProperty(value = "班组名称")
    private String teamName;

    /**
     * 状态（0在职 1离职）
     */
    @ExcelProperty(value = "状态", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=在职,1=离职")
    private String status;

    /**
     * 联系电话
     */
    @ExcelProperty(value = "联系电话")
    private String phone;

    /**
     * 性别(0:保密 1:男 2女)
     */
    @ExcelProperty(value = "性别(0:保密 1:男 2女)")
    private String sex;

    /**
     * 民族
     */
    @ExcelProperty(value = "民族")
    private String nation;

    /**
     * 身份证正面图片
     */
    @ExcelProperty(value = "身份证正面图片")
    private String sfzFrontPic;

    /**
     * 身份证背面图片
     */
    @ExcelProperty(value = "身份证背面图片")
    private String sfzBackPic;

    /**
     * 身份证号码
     */
    @ExcelProperty(value = "身份证号码")
    private String sfzNumber;

    /**
     * 身份证有效开始期
     */
    @ExcelProperty(value = "身份证有效开始期")
    private Date sfzStart;

    /**
     * 身份证有效结束期
     */
    @ExcelProperty(value = "身份证有效结束期")
    private Date sfzEnd;

    /**
     * 身份证地址
     */
    @ExcelProperty(value = "身份证地址")
    private String sfzSite;

    /**
     * 身份证出生日期
     */
    @ExcelProperty(value = "身份证出生日期")
    private Date sfzBirth;

    /**
     * 籍贯
     */
    @ExcelProperty(value = "籍贯")
    private String nativePlace;

    /**
     * 银行卡图片
     */
    @ExcelProperty(value = "银行卡图片")
    private String yhkPic;

    /**
     * 银行卡号
     */
    @ExcelProperty(value = "银行卡号")
    private String yhkNumber;

    /**
     * 开户行
     */
    @ExcelProperty(value = "开户行")
    private String yhkOpeningBank;

    /**
     * 持卡人
     */
    @ExcelProperty(value = "持卡人")
    private String yhkCardholder;

    /**
     * 工种(字典type_of_work)
     */
    @ExcelProperty(value = "工种(字典type_of_work)")
    private String typeOfWork;

    /**
     * 工资计量单位
     */
    @ExcelProperty(value = "工资计量单位")
    private String wageMeasureUnit;

    /**
     * 特种作业证图片
     */
    @ExcelProperty(value = "特种作业证图片")
    private String specialWorkPic;

    /**
     * 打卡(0启用打卡 1禁止打卡)
     */
    @ExcelProperty(value = "打卡(0启用打卡 1禁止打卡)")
    private String clock;

    /**
     * 入场时间
     */
    @ExcelProperty(value = "入场时间")
    private String entryDate;

    /**
     * 离场时间
     */
    @ExcelProperty(value = "离场时间")
    private String leaveDate;

    /**
     * 薪水
     */
    @ExcelProperty(value = "薪水")
    private Long salary;

    /**
     * 用户角色(1=普通用户,2=管理员)
     */
    @ExcelProperty(value = "用户角色(1=普通用户,2=管理员)")
    private String userRole;

    /**
     * 退场状态(0未退场 1退场未提交材料 2已退场)
     */
    @ExcelProperty(value = "退场状态(0未退场 1退场未提交材料 2已退场)")
    private String exitStatus;

    /**
     * 首次进入项目的时间
     */
    @ExcelProperty(value = "首次进入项目的时间")
    private Date firstDate;

    /**
     * 备注
     */
    @ExcelProperty(value = "备注")
    private String remark;


}
