package com.hzya.frame.sys.user.entity;

import java.util.Date;
import cn.dev33.satoken.stp.StpUtil;
import com.hzya.frame.sys.module.entity.Module;
import com.hzya.frame.sys.org.entity.Org;
import com.hzya.frame.sys.userModule.entity.UserModule;
import com.hzya.frame.sys.userOrg.entity.UserOrg;
import com.hzya.frame.sys.userRole.entity.UserRole;
import com.hzya.frame.sys.viewFiled.entity.ViewFiled;
import com.hzya.frame.uuid.UUIDUtils;
import com.hzya.frame.web.entity.BaseEntity;
import org.springframework.format.annotation.DateTimeFormat;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.math.BigDecimal;
import java.util.List;

/**
 * @description: 用户管理
 * @tableName:   sys_user
 * @entityName:  User
 * @author: 	 llg
 * @history:	 1.0
 */
public class  User  extends BaseEntity {

	/** 主键ID */
	private String id;
	/** 显示名称 */
	private String viewName;
	/** 登录名 */
	private String loginName;
	/** 密码 */
	private String password;
	/** 加密策略 */
	private String encryptionPolicy;
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private Date expirationDate;
	/** 密码次数 */
	private Long pawFrequency;
	/** 员工ID(人员编号) */
	private String staffId;
	/** 头像路径 */
	private String iconUrl;
	/** 是否启用 1:启用 0停用 */
	private String state;
	/** 是否是内部 1:是 0:否 */
	private String builtIn;
	/** 用户级别 */
	private String level;
	/** 电子邮件 */
	private String email;
	/** 手机号码 */
	private String phone;
	/** 职务级别 */
	private String userLvl;
	/** 性别（0:男，1：女） */
	private String sex;
	/** 锁定状态（0:锁定，1：未锁定） */
	private String lockState;
	/** 在职/离职 1：在职 2：离职 */
	private String useState;
	/** 微信tocken */
	private String wechatToken;
	/** 是否可以登录 1:是 0:否 */
	private String isLoginable;
	/** 是否是虚拟账号 1:是 0:否 */
	private String isVirtual;
	/** 是否是管理员 1:是 0:否 */
	private String isAdmin;
	/** 是否被分配 1:是 0:否 */
	private String isAssigned;
	/** 枚举：1：正式 2：非正式 */
	private String memberType;
	/** 是否被删除 1:删除  0:未删除 */
	private String isDeleted;
	/** 内外标识 0：内部1:  外部人员  */
	private String externalType;
	/** 编号 */
	private String memberCode;
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private Date birthDate;
	/** 办公电话 */
	private String officeTel;
	/** 备注 */
	private String remarks;
	/** 人员照片地址 */
	private String photoAddress;
	/** 所属部门 */
	private String department;
	/** 排序 */
	private Long sorts;
	/** 主岗 */
	private String majorPosition;
	/** 副岗 */
	private String deputyPost;
	/** 人员类型 */
	private String userType;
	/** 人员状态 */
	private String personnelStatus;
	/** 工作地 */
	private String workplace;
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private Date entryTime;
	/** 汇报人 */
	private String reporter;
	/** 创建人id */
	private String createUserId;
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private Date createTime;
	/** 修改人id */
	private String modifyUserId;
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private Date modifyTime;
	/** 状态(Y正常N删除) */
	private String sts;
	/** 组织机构ID */
	private String orgId;
	private String sort;
	private String order;
	private List<Module> modules;
	private List<Org> orgs;
	//页数 利用pageHelper
	private Integer pageNum;
	//数量 利用pageHelper
	private Integer pageSize;
	private List<ViewFiled> viewFiledList;

	private List<UserRole> userRoles;
	private List<UserOrg> userOrgs;
	private List<UserModule> userModules;
	/** 主键ID */
	public void setId(String id) {
		this.id = id;
	}
	/** 主键ID */
	public String getId() {
		return id;
	}
	/** 显示名称 */
	public void setViewName(String viewName) {
		this.viewName = viewName;
	}
	/** 显示名称 */
	public String getViewName() {
		return viewName;
	}
	/** 登录名 */
	public void setLoginName(String loginName) {
		this.loginName = loginName;
	}
	/** 登录名 */
	public String getLoginName() {
		return loginName;
	}
	/** 密码 */
	public void setPassword(String password) {
		this.password = password;
	}
	/** 密码 */
	public String getPassword() {
		return password;
	}
	/** 加密策略 */
	public void setEncryptionPolicy(String encryptionPolicy) {
		this.encryptionPolicy = encryptionPolicy;
	}
	/** 加密策略 */
	public String getEncryptionPolicy() {
		return encryptionPolicy;
	}
	/** 密码超期时间 */
	public void setExpirationDate(Date expirationDate) {
		this.expirationDate = expirationDate;
	}
	/** 密码超期时间 */
	public Date getExpirationDate() {
		return expirationDate;
	}
	/** 密码次数 */
	public void setPawFrequency(Long pawFrequency) {
		this.pawFrequency = pawFrequency;
	}
	/** 密码次数 */
	public Long getPawFrequency() {
		return pawFrequency;
	}
	/** 员工ID(人员编号) */
	public void setStaffId(String staffId) {
		this.staffId = staffId;
	}
	/** 员工ID(人员编号) */
	public String getStaffId() {
		return staffId;
	}
	/** 头像路径 */
	public void setIconUrl(String iconUrl) {
		this.iconUrl = iconUrl;
	}
	/** 头像路径 */
	public String getIconUrl() {
		return iconUrl;
	}
	/** 是否启用 1:启用 0停用 */
	public void setState(String state) {
		this.state = state;
	}
	/** 是否启用 1:启用 0停用 */
	public String getState() {
		return state;
	}
	/** 是否是内部 1:是 0:否 */
	public void setBuiltIn(String builtIn) {
		this.builtIn = builtIn;
	}
	/** 是否是内部 1:是 0:否 */
	public String getBuiltIn() {
		return builtIn;
	}
	/** 用户级别 */
	public void setLevel(String level) {
		this.level = level;
	}
	/** 用户级别 */
	public String getLevel() {
		return level;
	}
	/** 电子邮件 */
	public void setEmail(String email) {
		this.email = email;
	}
	/** 电子邮件 */
	public String getEmail() {
		return email;
	}
	/** 手机号码 */
	public void setPhone(String phone) {
		this.phone = phone;
	}
	/** 手机号码 */
	public String getPhone() {
		return phone;
	}
	/** 职务级别 */
	public void setUserLvl(String userLvl) {
		this.userLvl = userLvl;
	}
	/** 职务级别 */
	public String getUserLvl() {
		return userLvl;
	}
	/** 性别（0:男，1：女） */
	public void setSex(String sex) {
		this.sex = sex;
	}
	/** 性别（0:男，1：女） */
	public String getSex() {
		return sex;
	}
	/** 锁定状态（0:锁定，1：未锁定） */
	public void setLockState(String lockState) {
		this.lockState = lockState;
	}
	/** 锁定状态（0:锁定，1：未锁定） */
	public String getLockState() {
		return lockState;
	}
	/** 在职/离职 1：在职 2：离职 */
	public void setUseState(String useState) {
		this.useState = useState;
	}
	/** 在职/离职 1：在职 2：离职 */
	public String getUseState() {
		return useState;
	}
	/** 微信tocken */
	public void setWechatToken(String wechatToken) {
		this.wechatToken = wechatToken;
	}
	/** 微信tocken */
	public String getWechatToken() {
		return wechatToken;
	}
	/** 是否可以登录 1:是 0:否 */
	public void setIsLoginable(String isLoginable) {
		this.isLoginable = isLoginable;
	}
	/** 是否可以登录 1:是 0:否 */
	public String getIsLoginable() {
		return isLoginable;
	}
	/** 是否是虚拟账号 1:是 0:否 */
	public void setIsVirtual(String isVirtual) {
		this.isVirtual = isVirtual;
	}
	/** 是否是虚拟账号 1:是 0:否 */
	public String getIsVirtual() {
		return isVirtual;
	}
	/** 是否是管理员 1:是 0:否 */
	public void setIsAdmin(String isAdmin) {
		this.isAdmin = isAdmin;
	}
	/** 是否是管理员 1:是 0:否 */
	public String getIsAdmin() {
		return isAdmin;
	}
	/** 是否被分配 1:是 0:否 */
	public void setIsAssigned(String isAssigned) {
		this.isAssigned = isAssigned;
	}
	/** 是否被分配 1:是 0:否 */
	public String getIsAssigned() {
		return isAssigned;
	}
	/** 枚举：1：正式 2：非正式 */
	public void setMemberType(String memberType) {
		this.memberType = memberType;
	}
	/** 枚举：1：正式 2：非正式 */
	public String getMemberType() {
		return memberType;
	}
	/** 是否被删除 1:删除  0:未删除 */
	public void setIsDeleted(String isDeleted) {
		this.isDeleted = isDeleted;
	}
	/** 是否被删除 1:删除  0:未删除 */
	public String getIsDeleted() {
		return isDeleted;
	}
	/** 内外标识 0：内部1:  外部人员  */
	public void setExternalType(String externalType) {
		this.externalType = externalType;
	}
	/** 内外标识 0：内部1:  外部人员  */
	public String getExternalType() {
		return externalType;
	}
	/** 编号 */
	public void setMemberCode(String memberCode) {
		this.memberCode = memberCode;
	}
	/** 编号 */
	public String getMemberCode() {
		return memberCode;
	}
	/** 出生日期 */
	public void setBirthDate(Date birthDate) {
		this.birthDate = birthDate;
	}
	/** 出生日期 */
	public Date getBirthDate() {
		return birthDate;
	}
	/** 办公电话 */
	public void setOfficeTel(String officeTel) {
		this.officeTel = officeTel;
	}
	/** 办公电话 */
	public String getOfficeTel() {
		return officeTel;
	}
	/** 备注 */
	public void setRemarks(String remarks) {
		this.remarks = remarks;
	}
	/** 备注 */
	public String getRemarks() {
		return remarks;
	}
	/** 人员照片地址 */
	public void setPhotoAddress(String photoAddress) {
		this.photoAddress = photoAddress;
	}
	/** 人员照片地址 */
	public String getPhotoAddress() {
		return photoAddress;
	}
	/** 所属部门 */
	public void setDepartment(String department) {
		this.department = department;
	}
	/** 所属部门 */
	public String getDepartment() {
		return department;
	}
	/** 排序 */
	public void setSorts(Long sorts) {
		this.sorts = sorts;
	}
	/** 排序 */
	public Long getSorts() {
		return sorts;
	}
	/** 主岗 */
	public void setMajorPosition(String majorPosition) {
		this.majorPosition = majorPosition;
	}
	/** 主岗 */
	public String getMajorPosition() {
		return majorPosition;
	}
	/** 副岗 */
	public void setDeputyPost(String deputyPost) {
		this.deputyPost = deputyPost;
	}
	/** 副岗 */
	public String getDeputyPost() {
		return deputyPost;
	}
	/** 人员类型 */
	public void setUserType(String userType) {
		this.userType = userType;
	}
	/** 人员类型 */
	public String getUserType() {
		return userType;
	}
	/** 人员状态 */
	public void setPersonnelStatus(String personnelStatus) {
		this.personnelStatus = personnelStatus;
	}
	/** 人员状态 */
	public String getPersonnelStatus() {
		return personnelStatus;
	}
	/** 工作地 */
	public void setWorkplace(String workplace) {
		this.workplace = workplace;
	}
	/** 工作地 */
	public String getWorkplace() {
		return workplace;
	}
	/** 入职时间 */
	public void setEntryTime(Date entryTime) {
		this.entryTime = entryTime;
	}
	/** 入职时间 */
	public Date getEntryTime() {
		return entryTime;
	}
	/** 汇报人 */
	public void setReporter(String reporter) {
		this.reporter = reporter;
	}
	/** 汇报人 */
	public String getReporter() {
		return reporter;
	}
	/** 创建人id */
	public void setCreateUserId(String createUserId) {
		this.createUserId = createUserId;
	}
	/** 创建人id */
	public String getCreateUserId() {
		return createUserId;
	}
	/** 创建时间 */
	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}
	/** 创建时间 */
	public Date getCreateTime() {
		return createTime;
	}
	/** 修改人id */
	public void setModifyUserId(String modifyUserId) {
		this.modifyUserId = modifyUserId;
	}
	/** 修改人id */
	public String getModifyUserId() {
		return modifyUserId;
	}
	/** 修改时间 */
	public void setModifyTime(Date modifyTime) {
		this.modifyTime = modifyTime;
	}
	/** 修改时间 */
	public Date getModifyTime() {
		return modifyTime;
	}
	/** 状态(Y正常N删除) */
	public void setSts(String sts) {
		this.sts = sts;
	}
	/** 状态(Y正常N删除) */
	public String getSts() {
		return sts;
	}
	/** 组织机构ID */
	public void setOrgId(String orgId) {
		this.orgId = orgId;
	}
	/** 组织机构ID */
	public String getOrgId() {
		return orgId;
	}
	public String getSort() {
		return sort;
	}

	public void setSort(String sort) {
		this.sort = sort;
	}

	public String getOrder() {
		return order;
	}

	public void setOrder(String order) {
		this.order = order;
	}


	public List<Module> getModules() {
		return modules;
	}

	public void setModules(List<Module> modules) {
		this.modules = modules;
	}


	public List<Org> getOrgs() {
		return orgs;
	}

	public void setOrgs(List<Org> orgs) {
		this.orgs = orgs;
	}

	public List<ViewFiled> getViewFiledList() {
		return viewFiledList;
	}

	public void setViewFiledList(List<ViewFiled> viewFiledList) {
		this.viewFiledList = viewFiledList;
	}

	public Integer getPageNum() {
		return pageNum;
	}

	public void setPageNum(Integer pageNum) {
		this.pageNum = pageNum;
	}

	public Integer getPageSize() {
		return pageSize;
	}

	@Override
    public void setPageSize(Integer pageSize) {
		this.pageSize = pageSize;
	}

	public List<UserRole> getUserRoles() {
		return userRoles;
	}

	public void setUserRoles(List<UserRole> userRoles) {
		this.userRoles = userRoles;
	}

	public List<UserOrg> getUserOrgs() {
		return userOrgs;
	}

	public void setUserOrgs(List<UserOrg> userOrgs) {
		this.userOrgs = userOrgs;
	}

	public List<UserModule> getUserModules() {
		return userModules;
	}

	public void setUserModules(List<UserModule> userModules) {
		this.userModules = userModules;
	}

}
