package com.evo.system.domain; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.evo.common.annotation.Excel; import com.evo.common.core.domain.BaseEntity; import com.evo.common.utils.Collections; import com.evo.common.utils.StringUtils; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import java.util.Date; import java.util.List; import java.util.Map; import java.util.stream.Collectors; /** * 员工管理对象 sys_staff * * @author evo * @date 2024-11-21 */ @Data public class SysStaff extends BaseEntity { private static final long serialVersionUID = 1L; /** 姓名 */ @Excel(name = "姓名") private String name; /** 编号 */ @Excel(name = "编号") private String code; /** 公司 */ @Excel(name = "公司") private String companyName; /** 主键ID */ @TableId(value = "user_id", type = IdType.AUTO) private Long userId; /** 部门ID */ private Long deptId; @Excel(name = "部门") @TableField(exist = false) private String deptName; private String jobCode; /** 身份证号 */ @Excel(name = "身份证号") private String idCard; /** 性别 */ @Excel(name = "性别") private String sex; /** 年龄 */ @Excel(name = "年龄") private Long age; /** 电话 */ @Excel(name = "电话") private String phone; /** 住址 */ @Excel(name = "住址") private String address; /** 毕业学校 */ @Excel(name = "毕业学校") private String school; /** 专业 */ @Excel(name = "专业") private String major; /** 学历 */ @Excel(name = "学历") private String level; /** 开户行 */ @Excel(name = "开户行") private String bank; /** 银行卡号 */ @Excel(name = "银行卡号") private String bankNumber; /** 入职时间 */ @JsonFormat(pattern = "yyyy-MM-dd") @Excel(name = "入职时间", width = 30, dateFormat = "yyyy-MM-dd") private Date employmentDate; /** 试用期限 */ @Excel(name = "试用期限") private Long workerTerm; /** 履历 */ @Excel(name = "履历") private String experience; /** 转正日期 */ @JsonFormat(pattern = "yyyy-MM-dd") @Excel(name = "转正日期", width = 30, dateFormat = "yyyy-MM-dd") private Date regularDate; /** 离职时间 */ @JsonFormat(pattern = "yyyy-MM-dd") @Excel(name = "离职时间", width = 30, dateFormat = "yyyy-MM-dd") private Date quitDate; /** 合同-起 */ @JsonFormat(pattern = "yyyy-MM-dd") @Excel(name = "合同-起", width = 30, dateFormat = "yyyy-MM-dd") private Date contractStart; /** 合同-止 */ @JsonFormat(pattern = "yyyy-MM-dd") @Excel(name = "合同-止", width = 30, dateFormat = "yyyy-MM-dd") private Date contractEnd; /** 合同类型 */ @Excel(name = "合同类型") private String contractType; /** 社保 */ @Excel(name = "社保") private String socialType; @Excel(name = "是否新农合") private String socialSubsidy; /** 工龄 */ @Excel(name = "工龄") private Long seniority; /** 是否有加班费 */ @Excel(name = "是否有加班费") private String isOvertimePay; /** 住宿标识 */ @Excel(name = "住宿标识") private String zsFlag; /** 保密合同 */ @Excel(name = "保密合同") private String secrecy; /** 工伤 */ @Excel(name = "工伤") private String injury; /** 雇主险 */ @Excel(name = "雇主险") private String insurance; /** 介绍人 */ @Excel(name = "介绍人") private String introducer; /** 是否打卡 */ @Excel(name = "是否打卡") private String clockIn; /** 在职状态 */ @Excel(name = "在职状态") private String status; /** 全额工资时间 */ @JsonFormat(pattern = "yyyy-MM-dd") @Excel(name = "全额工资时间", width = 30, dateFormat = "yyyy-MM-dd") private Date wagesRatioDate; /** 备注 */ @Excel(name = "备注") private String remarks; /** 删除标识 */ private String delFlag; private String isLeader; //是领导 /*** * 文件Id */ @TableField(exist = false) private Long fileId; /*** * 文件位置 */ private String imageUrl; /*** * 打卡位置 */ private String timeClock; /*** * 享有补贴 */ private String subsidys; @TableField(exist = false) private List subsidyList; private String extended; public List getSubsidyList() { if(Collections.isEmpty(subsidyList) && StringUtils.isNotEmpty(subsidys)){ subsidyList = Collections.asList(subsidys.split(",")).stream().map(Long::valueOf).collect(Collectors.toList()); } return subsidyList; } }