package com.steerinfo.auth.shiro.realm;

import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.steerinfo.framework.model.IBasePO;
import com.steerinfo.framework.model.ICreatePO;
import com.steerinfo.framework.model.IUpdatePO;
import com.steerinfo.framework.user.IUser;

import io.swagger.annotations.ApiModelProperty;

public class SysUser implements IBasePO<String>, IUpdatePO, ICreatePO, IUser {
	@ApiModelProperty(value = "用户ID")
	private String userId;

	@ApiModelProperty(value = "用户编码", required = true)
	private String userCode;

	@ApiModelProperty(value = "用户姓名")
	private String userName;

	@ApiModelProperty(value = "登录密码")
	private String password;

	@ApiModelProperty(value = "二维码")
	private String qrCode;

	@ApiModelProperty(value = "性别：1-男 0-女")
	private String sex;

	@ApiModelProperty(value = "年龄")
	private Short age;

	@ApiModelProperty(value = "身份证号")
	private String cardNo;

	@ApiModelProperty(value = "出生日期")
	private String birthDate;

	@ApiModelProperty(value = "籍贯")
	private String nativePlace;

	@ApiModelProperty(value = "所属机构")
	private String orgCode;

	@ApiModelProperty(value = "所在科室")
	private String dep;

	@ApiModelProperty(value = "班次")
	private String workClass;

	@ApiModelProperty(value = "班组")
	private String workTeam;

	@ApiModelProperty(value = "头像")
	private String profilePhoto;

	@ApiModelProperty(value = "联系手机")
	private String mobile;

	@ApiModelProperty(value = "QQ号")
	private String qq;

	@ApiModelProperty(value = "微信号")
	private String wechat;

	@ApiModelProperty(value = "联系电话")
	private String tel;

	@ApiModelProperty(value = "联系邮箱")
	private String email;

	@ApiModelProperty(value = "家庭住址")
	private String homeAddr;

	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@ApiModelProperty(value = "入职日期")
	private Date entryDate;

	@ApiModelProperty(value = "参加工作时间")
	private String workDate;

	@ApiModelProperty(value = "政治面貌")
	private String political;

	@ApiModelProperty(value = "职务")
	private String duty;

	@ApiModelProperty(value = "职称")
	private String title;

	@ApiModelProperty(value = "文化程度")
	private String degree;

	@ApiModelProperty(value = "专业")
	private String major;

	@ApiModelProperty(value = "毕业院校")
	private String gradSchool;

	@ApiModelProperty(value = "任职能力")
	private String ability;

	@ApiModelProperty(value = "培训记录")
	private String tranHis;

	@ApiModelProperty(value = "资质证书")
	private String certificate;

	@ApiModelProperty(value = "特长")
	private String special;

	@ApiModelProperty(value = "考核评价")
	private String assessment;

	@ApiModelProperty(value = "离职状态")
	private String leaveStatus;

	@ApiModelProperty(value = "在线状态：1-在线 0-离线")
	private String onlineStatus;

	@ApiModelProperty(value = "状态：1-启用 0-停用")
	private String status;

	@ApiModelProperty(value = "备注")
	private String remark;

	@ApiModelProperty(value = "创建人")
	private String crtUserCode;

	@ApiModelProperty(value = "创建机构")
	private String crtOrgCode;

//	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@ApiModelProperty(value = "创建时间")
	private Date crtDate;

	@ApiModelProperty(value = "修改人")
	private String updUserCode;

	@ApiModelProperty(value = "修改机构")
	private String updOrgCode;

//	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@ApiModelProperty(value = "修改日期")
	private Date updDate;
	
	@ApiModelProperty(value = "有效期天数")
	private Integer expireDays;
	
	@ApiModelProperty(value = "权限控制")
	private String ip;
	
	private String leave;
	
	private byte[] photo;

	private static final long serialVersionUID = 1L;
	
	@Override
	public String getId() {
		return this.userId;
	}

	@Override
	public void setId(String userId) {
		this.userId = userId == null ? null : userId.trim();
	}

	public String getUserId() {
		return userId;
	}

	public void setUserId(String userId) {
		this.userId = userId == null ? null : userId.trim();
	}

	public String getUserCode() {
		return userCode;
	}

	public void setUserCode(String userCode) {
		this.userCode = userCode == null ? null : userCode.trim();
	}

	public String getUserName() {
		return userName;
	}

	public void setUserName(String userName) {
		this.userName = userName == null ? null : userName.trim();
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password == null ? null : password.trim();
	}

	public String getQrCode() {
		return qrCode;
	}

	public void setQrCode(String qrCode) {
		this.qrCode = qrCode == null ? null : qrCode.trim();
	}

	public String getSex() {
		return sex;
	}

	public void setSex(String sex) {
		this.sex = sex == null ? null : sex.trim();
	}

	

	public Short getAge() {
		return age;
	}

	public void setAge(Short age) {
		this.age = age;
	}

	public Date getEntryDate() {
		return entryDate;
	}

	public void setEntryDate(Date entryDate) {
		this.entryDate = entryDate;
	}

	public String getDuty() {
		return duty;
	}

	public void setDuty(String duty) {
		this.duty = duty;
	}

	public String getTitle() {
		return title;
	}

	public void setTitle(String title) {
		this.title = title;
	}

	public String getDegree() {
		return degree;
	}

	public void setDegree(String degree) {
		this.degree = degree;
	}

	public String getMajor() {
		return major;
	}

	public void setMajor(String major) {
		this.major = major;
	}

	public String getGradSchool() {
		return gradSchool;
	}

	public void setGradSchool(String gradSchool) {
		this.gradSchool = gradSchool;
	}

	public String getCardNo() {
		return cardNo;
	}

	public void setCardNo(String cardNo) {
		this.cardNo = cardNo == null ? null : cardNo.trim();
	}

	public String getBirthDate() {
		return birthDate;
	}

	public void setBirthDate(String birthDate) {
		this.birthDate = birthDate == null ? null : birthDate.trim();
	}

	public String getNativePlace() {
		return nativePlace;
	}

	public void setNativePlace(String nativePlace) {
		this.nativePlace = nativePlace == null ? null : nativePlace.trim();
	}

	public String getOrgCode() {
		return orgCode;
	}

	public void setOrgCode(String orgCode) {
		this.orgCode = orgCode == null ? null : orgCode.trim();
	}

	public String getDep() {
		return dep;
	}

	public void setDep(String dep) {
		this.dep = dep == null ? null : dep.trim();
	}

	public String getWorkClass() {
		return workClass;
	}

	public void setWorkClass(String workClass) {
		this.workClass = workClass == null ? null : workClass.trim();
	}

	public String getWorkTeam() {
		return workTeam;
	}

	public void setWorkTeam(String workTeam) {
		this.workTeam = workTeam == null ? null : workTeam.trim();
	}

	public String getProfilePhoto() {
		return profilePhoto;
	}

	public void setProfilePhoto(String profilePhoto) {
		this.profilePhoto = profilePhoto == null ? null : profilePhoto.trim();
	}

	public String getMobile() {
		return mobile;
	}

	public void setMobile(String mobile) {
		this.mobile = mobile == null ? null : mobile.trim();
	}

	public String getQq() {
		return qq;
	}

	public void setQq(String qq) {
		this.qq = qq == null ? null : qq.trim();
	}

	public String getWechat() {
		return wechat;
	}

	public void setWechat(String wechat) {
		this.wechat = wechat == null ? null : wechat.trim();
	}

	public String getTel() {
		return tel;
	}

	public void setTel(String tel) {
		this.tel = tel == null ? null : tel.trim();
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email == null ? null : email.trim();
	}

	public String getHomeAddr() {
		return homeAddr;
	}

	public void setHomeAddr(String homeAddr) {
		this.homeAddr = homeAddr == null ? null : homeAddr.trim();
	}

	public String getWorkDate() {
		return workDate;
	}

	public void setWorkDate(String workDate) {
		this.workDate = workDate == null ? null : workDate.trim();
	}

	public String getPolitical() {
		return political;
	}

	public void setPolitical(String political) {
		this.political = political == null ? null : political.trim();
	}

	public String getAbility() {
		return ability;
	}

	public void setAbility(String ability) {
		this.ability = ability == null ? null : ability.trim();
	}

	public String getTranHis() {
		return tranHis;
	}

	public void setTranHis(String tranHis) {
		this.tranHis = tranHis == null ? null : tranHis.trim();
	}

	public String getCertificate() {
		return certificate;
	}

	public void setCertificate(String certificate) {
		this.certificate = certificate == null ? null : certificate.trim();
	}

	public String getSpecial() {
		return special;
	}

	public void setSpecial(String special) {
		this.special = special == null ? null : special.trim();
	}

	public String getAssessment() {
		return assessment;
	}

	public void setAssessment(String assessment) {
		this.assessment = assessment == null ? null : assessment.trim();
	}

	public String getLeaveStatus() {
		return leaveStatus;
	}

	public void setLeaveStatus(String leaveStatus) {
		this.leaveStatus = leaveStatus;
	}

	public String getOnlineStatus() {
		return onlineStatus;
	}

	public void setOnlineStatus(String onlineStatus) {
		this.onlineStatus = onlineStatus == null ? null : onlineStatus.trim();
	}

	public String getStatus() {
		return status;
	}

	public void setStatus(String status) {
		this.status = status == null ? null : status.trim();
	}

	public String getRemark() {
		return remark;
	}

	public void setRemark(String remark) {
		this.remark = remark == null ? null : remark.trim();
	}

	public String getCrtUserCode() {
		return crtUserCode;
	}

	public void setCrtUserCode(String crtUserCode) {
		this.crtUserCode = crtUserCode == null ? null : crtUserCode.trim();
	}

	public String getCrtOrgCode() {
		return crtOrgCode;
	}

	public void setCrtOrgCode(String crtOrgCode) {
		this.crtOrgCode = crtOrgCode == null ? null : crtOrgCode.trim();
	}

	public Date getCrtDate() {
		return crtDate;
	}

	public void setCrtDate(Date crtDate) {
		this.crtDate = crtDate;
	}

	public String getUpdUserCode() {
		return updUserCode;
	}

	public void setUpdUserCode(String updUserCode) {
		this.updUserCode = updUserCode == null ? null : updUserCode.trim();
	}

	public String getUpdOrgCode() {
		return updOrgCode;
	}

	public void setUpdOrgCode(String updOrgCode) {
		this.updOrgCode = updOrgCode == null ? null : updOrgCode.trim();
	}

	public Date getUpdDate() {
		return updDate;
	}

	public void setUpdDate(Date updDate) {
		this.updDate = updDate;
	}

	@Override
	public String toString() {
		StringBuilder sb = new StringBuilder();
		sb.append(getClass().getSimpleName());
		sb.append(" [");
		sb.append("Hash = ").append(hashCode());
		sb.append(", userId=").append(userId);
		sb.append(", userCode=").append(userCode);
		sb.append(", userName=").append(userName);
		sb.append(", password=").append(password);
		sb.append(", qrCode=").append(qrCode);
		sb.append(", sex=").append(sex);
		sb.append(", age=").append(age);
		sb.append(", cardNo=").append(cardNo);
		sb.append(", birthDate=").append(birthDate);
		sb.append(", nativePlace=").append(nativePlace);
		sb.append(", orgCode=").append(orgCode);
		sb.append(", dep=").append(dep);
		sb.append(", workClass=").append(workClass);
		sb.append(", workTeam=").append(workTeam);
		sb.append(", profilePhoto=").append(profilePhoto);
		sb.append(", mobile=").append(mobile);
		sb.append(", qq=").append(qq);
		sb.append(", wechat=").append(wechat);
		sb.append(", tel=").append(tel);
		sb.append(", email=").append(email);
		sb.append(", homeAddr=").append(homeAddr);
		sb.append(", entryDate=").append(entryDate);
		sb.append(", workDate=").append(workDate);
		sb.append(", political=").append(political);
		sb.append(", duty=").append(duty);
		sb.append(", title=").append(title);
		sb.append(", degree=").append(degree);
		sb.append(", major=").append(major);
		sb.append(", gradSchool=").append(gradSchool);
		sb.append(", ability=").append(ability);
		sb.append(", tranHis=").append(tranHis);
		sb.append(", certificate=").append(certificate);
		sb.append(", special=").append(special);
		sb.append(", assessment=").append(assessment);
		sb.append(", leaveStatus=").append(leaveStatus);
		sb.append(", onlineStatus=").append(onlineStatus);
		sb.append(", status=").append(status);
		sb.append(", remark=").append(remark);
		sb.append(", crtUserCode=").append(crtUserCode);
		sb.append(", crtOrgCode=").append(crtOrgCode);
		sb.append(", crtDate=").append(crtDate);
		sb.append(", updUserCode=").append(updUserCode);
		sb.append(", updOrgCode=").append(updOrgCode);
		sb.append(", updDate=").append(updDate);
		sb.append(", serialVersionUID=").append(serialVersionUID);
		sb.append("]");
		return sb.toString();
	}

	public Integer getExpireDays() {
		return expireDays;
	}

	public void setExpireDays(Integer expireDays) {
		this.expireDays = expireDays;
	}

	public String getIp() {
		return ip;
	}

	public void setIp(String ip) {
		this.ip = ip;
	}

	public byte[] getPhoto() {
		return photo;
	}

	public void setPhoto(byte[] photo) {
		this.photo = photo;
	}

	public String getLeave() {
		return leave;
	}

	public void setLeave(String leave) {
		this.leave = leave;
	}
}