/**
 * Copyright &copy; 2015-2020 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
 */
package com.jeeplus.modules.workattendance.entity;

import com.jeeplus.modules.sys.entity.Office;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;

import com.jeeplus.common.persistence.DataEntity;
import com.jeeplus.common.utils.excel.annotation.ExcelField;
import com.jeeplus.modules.sys.entity.Workattachment;
import com.jeeplus.modules.workstaff.entity.WorkStaffBasicInfo;

/**
 * 考勤详情Entity
 * @author 杨帆
 * @version 2018-09-10
 */
public class WorkAttendanceInfo extends DataEntity<WorkAttendanceInfo> {
	
	private static final long serialVersionUID = 1L;
	private String companyId;		// 公司
	private Office office;		// 部门id
	private String staffId;		// 员工档案id
	private Date attendanceDate;		// 考勤日期
	private String attendanceType;		// attendance_type
	private String type;		// 考勤方式
	private String isOvertime;		// 是否加班
	private String dateType;		// 日期类型
	private Integer overtimeTime;		// 加班时长
	private String holidayType;		// 假期类型
	private String leaveTypeName;		// 假期类型
	private String isCalculateAttendance;		// 是否计算出勤
	private String isCalculateSubsidies;		// 是否计算补助
	private String attendancePlace;		// attendance_place
	private Date attendanceTime;		// 考勤时间
	private String photo;		// photo
	private String lateEarly;		// 迟到-早退
	private Integer lateEarlyTime;		// 迟到-早退时长
	private String isValid;		// 是否有效
	private String morningAfternoon; //上午/下午
	private Date startDate;
	private Date endDate;
	private String isHolidays;
	private String userId;
	private WorkAttendanceRule workAttendanceRule;
	private String lnt;
	private String lat;
	private String wifi;
	private String status;
	private String home;
	private String flag;
	private String ids;
	private String wid;
	private String month;
	private WorkStaffBasicInfo workStaffBasicInfo;
	private List<Workattachment> workAttachments = new ArrayList<>();

	public WorkAttendanceInfo() {
		super();
	}

	public WorkAttendanceInfo(String id){
		super(id);
	}

	@ExcelField(title="公司", align=2, sort=1)
	public String getCompanyId() {
		return companyId;
	}

	public void setCompanyId(String companyId) {
		this.companyId = companyId;
	}
	
	@ExcelField(title="部门id", fieldType=Office.class, value="office.name", align=2, sort=2)
	public Office getOffice() {
		return office;
	}

	public void setOffice(Office office) {
		this.office = office;
	}
	
	@ExcelField(title="员工档案id", align=2, sort=9)
	public String getStaffId() {
		return staffId;
	}

	public void setStaffId(String staffId) {
		this.staffId = staffId;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@ExcelField(title="考勤日期", align=2, sort=10)
	public Date getAttendanceDate() {
		return attendanceDate;
	}

	public void setAttendanceDate(Date attendanceDate) {
		this.attendanceDate = attendanceDate;
	}
	
	@ExcelField(title="attendance_type", align=2, sort=11)
	public String getAttendanceType() {
		return attendanceType;
	}

	public void setAttendanceType(String attendanceType) {
		this.attendanceType = attendanceType;
	}
	
	@ExcelField(title="考勤方式", align=2, sort=12)
	public String getType() {
		return type;
	}

	public void setType(String type) {
		this.type = type;
	}
	
	@ExcelField(title="是否加班", align=2, sort=13)
	public String getIsOvertime() {
		return isOvertime;
	}

	public void setIsOvertime(String isOvertime) {
		this.isOvertime = isOvertime;
	}
	
	@ExcelField(title="日期类型", align=2, sort=14)
	public String getDateType() {
		return dateType;
	}

	public void setDateType(String dateType) {
		this.dateType = dateType;
	}
	
	@ExcelField(title="加班时长", align=2, sort=15)
	public Integer getOvertimeTime() {
		return overtimeTime;
	}

	public void setOvertimeTime(Integer overtimeTime) {
		this.overtimeTime = overtimeTime;
	}
	
	@ExcelField(title="假期类型", align=2, sort=16)
	public String getHolidayType() {
		return holidayType;
	}

	public void setHolidayType(String holidayType) {
		this.holidayType = holidayType;
	}
	
	@ExcelField(title="是否计算出勤", align=2, sort=17)
	public String getIsCalculateAttendance() {
		return isCalculateAttendance;
	}

	public void setIsCalculateAttendance(String isCalculateAttendance) {
		this.isCalculateAttendance = isCalculateAttendance;
	}
	
	@ExcelField(title="是否计算补助", align=2, sort=18)
	public String getIsCalculateSubsidies() {
		return isCalculateSubsidies;
	}

	public void setIsCalculateSubsidies(String isCalculateSubsidies) {
		this.isCalculateSubsidies = isCalculateSubsidies;
	}
	
	@ExcelField(title="attendance_place", align=2, sort=19)
	public String getAttendancePlace() {
		return attendancePlace;
	}

	public void setAttendancePlace(String attendancePlace) {
		this.attendancePlace = attendancePlace;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@ExcelField(title="考勤时间", align=2, sort=20)
	public Date getAttendanceTime() {
		return attendanceTime;
	}

	public void setAttendanceTime(Date attendanceTime) {
		this.attendanceTime = attendanceTime;
	}
	
	@ExcelField(title="photo", align=2, sort=21)
	public String getPhoto() {
		return photo;
	}

	public void setPhoto(String photo) {
		this.photo = photo;
	}
	
	@ExcelField(title="迟到-早退", align=2, sort=22)
	public String getLateEarly() {
		return lateEarly;
	}

	public void setLateEarly(String lateEarly) {
		this.lateEarly = lateEarly;
	}
	
	@ExcelField(title="迟到-早退时长", align=2, sort=23)
	public Integer getLateEarlyTime() {
		return lateEarlyTime;
	}

	public void setLateEarlyTime(Integer lateEarlyTime) {
		this.lateEarlyTime = lateEarlyTime;
	}
	
	@ExcelField(title="是否有效", align=2, sort=24)
	public String getIsValid() {
		return isValid;
	}

	public void setIsValid(String isValid) {
		this.isValid = isValid;
	}

	public String getMorningAfternoon() {
		return morningAfternoon;
	}

	public void setMorningAfternoon(String morningAfternoon) {
		this.morningAfternoon = morningAfternoon;
	}

	public Date getStartDate() {
		return startDate;
	}

	public void setStartDate(Date startDate) {
		this.startDate = startDate;
	}

	public Date getEndDate() {
		return endDate;
	}

	public void setEndDate(Date endDate) {
		this.endDate = endDate;
	}

	public String getIsHolidays() {
		return isHolidays;
	}

	public void setIsHolidays(String isHolidays) {
		this.isHolidays = isHolidays;
	}

	public String getUserId() {
		return userId;
	}

	public void setUserId(String userId) {
		this.userId = userId;
	}

	public WorkAttendanceRule getWorkAttendanceRule() {
		return workAttendanceRule;
	}

	public void setWorkAttendanceRule(WorkAttendanceRule workAttendanceRule) {
		this.workAttendanceRule = workAttendanceRule;
	}

	public String getLnt() {
		return lnt;
	}

	public void setLnt(String lnt) {
		this.lnt = lnt;
	}

	public String getLat() {
		return lat;
	}

	public void setLat(String lat) {
		this.lat = lat;
	}

	public String getWifi() {
		return wifi;
	}

	public void setWifi(String wifi) {
		this.wifi = wifi;
	}

	public String getStatus() {
		return status;
	}

	public void setStatus(String status) {
		this.status = status;
	}

	public String getHome() {
		return home;
	}

	public void setHome(String home) {
		this.home = home;
	}

	public List<Workattachment> getWorkAttachments() {
		return workAttachments;
	}

	public void setWorkAttachments(List<Workattachment> workAttachments) {
		this.workAttachments = workAttachments;
	}

	public String getFlag() {
		return flag;
	}

	public void setFlag(String flag) {
		this.flag = flag;
	}

	public String getIds() {
		return ids;
	}

	public void setIds(String ids) {
		this.ids = ids;
	}

	public String getWid() {
		return wid;
	}

	public void setWid(String wid) {
		this.wid = wid;
	}

	public String getMonth() {
		return month;
	}

	public void setMonth(String month) {
		this.month = month;
	}

	public String getLeaveTypeName() {
		return leaveTypeName;
	}

	public void setLeaveTypeName(String leaveTypeName) {
		this.leaveTypeName = leaveTypeName;
	}

	public WorkStaffBasicInfo getWorkStaffBasicInfo() {
		return workStaffBasicInfo;
	}

	public void setWorkStaffBasicInfo(WorkStaffBasicInfo workStaffBasicInfo) {
		this.workStaffBasicInfo = workStaffBasicInfo;
	}

}