package com.mortals.xhx.module.attendance.model;
import java.util.List;
import java.util.List;
import java.util.ArrayList;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mortals.framework.annotation.Excel;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.attendance.model.vo.AttendanceGroupVo;
import com.mortals.xhx.module.attendance.model.AttendanceGroupStaffEntity;
/**
* 考勤组信息实体对象
*
* @author zxfei
* @date 2023-04-08
*/

public class AttendanceGroupEntity extends AttendanceGroupVo {
    private static final long serialVersionUID = 1L;

    /**
    * 考勤组名称
    */
    private String groupName;
    /**
    * 参与考勤人数
    */
    private Integer personNum;
    /**
    * 类型(1.固定班制,2.排班制,3.自由工时)
    */
    private Integer type;
    /**
    * 备注
    */
    private String remark;
    /**
    * 未参与考勤人数
    */
    private Integer personNumNo;
    /**
    * 考勤方式(地点打卡. 地点打卡, Wi-Fi打卡. Wi-Fi打卡, 蓝牙打卡. 蓝牙打卡, 考勤机打卡. 考勤机打卡)
    */
    private String attendanceType;

    /**
    * 考勤组人员信息信息
    */
    private List<AttendanceGroupStaffEntity> attendanceGroupStaffList=new ArrayList<>();;


    public AttendanceGroupEntity(){}
    /**
    * 获取 考勤组名称
    * @return String
    */
    public String getGroupName(){
        return groupName;
    }
    /**
    * 设置 考勤组名称
    * @param groupName
    */
    public void setGroupName(String groupName){
        this.groupName = groupName;
    }
    /**
    * 获取 参与考勤人数
    * @return Integer
    */
    public Integer getPersonNum(){
        return personNum;
    }
    /**
    * 设置 参与考勤人数
    * @param personNum
    */
    public void setPersonNum(Integer personNum){
        this.personNum = personNum;
    }
    /**
    * 获取 类型(1.固定班制,2.排班制,3.自由工时)
    * @return Integer
    */
    public Integer getType(){
        return type;
    }
    /**
    * 设置 类型(1.固定班制,2.排班制,3.自由工时)
    * @param type
    */
    public void setType(Integer type){
        this.type = type;
    }
    /**
    * 获取 备注
    * @return String
    */
    public String getRemark(){
        return remark;
    }
    /**
    * 设置 备注
    * @param remark
    */
    public void setRemark(String remark){
        this.remark = remark;
    }
    /**
    * 获取 未参与考勤人数
    * @return Integer
    */
    public Integer getPersonNumNo(){
        return personNumNo;
    }
    /**
    * 设置 未参与考勤人数
    * @param personNumNo
    */
    public void setPersonNumNo(Integer personNumNo){
        this.personNumNo = personNumNo;
    }
    /**
    * 获取 考勤方式(地点打卡. 地点打卡, Wi-Fi打卡. Wi-Fi打卡, 蓝牙打卡. 蓝牙打卡, 考勤机打卡. 考勤机打卡)
    * @return String
    */
    public String getAttendanceType(){
        return attendanceType;
    }
    /**
    * 设置 考勤方式(地点打卡. 地点打卡, Wi-Fi打卡. Wi-Fi打卡, 蓝牙打卡. 蓝牙打卡, 考勤机打卡. 考勤机打卡)
    * @param attendanceType
    */
    public void setAttendanceType(String attendanceType){
        this.attendanceType = attendanceType;
    }


    public List<AttendanceGroupStaffEntity> getAttendanceGroupStaffList(){
      return attendanceGroupStaffList;
    }

    public void setAttendanceGroupStaffList(List<AttendanceGroupStaffEntity> attendanceGroupStaffList){
        this.attendanceGroupStaffList = attendanceGroupStaffList;
    }


    @Override
    public int hashCode() {
         return this.getId().hashCode();
    }
    @Override
    public boolean equals(Object obj) {
        if (obj == null) return false;
        if (obj instanceof AttendanceGroupEntity) {
            AttendanceGroupEntity tmp = (AttendanceGroupEntity) obj;
            if (this.getId() == tmp.getId()) {
                 return true;
            }
        }
        return false;
    }

    public String toString(){
        StringBuilder sb = new StringBuilder("");
        sb.append(",groupName:").append(getGroupName());
        sb.append(",personNum:").append(getPersonNum());
        sb.append(",type:").append(getType());
        sb.append(",remark:").append(getRemark());
        sb.append(",personNumNo:").append(getPersonNumNo());
        sb.append(",attendanceType:").append(getAttendanceType());
        return sb.toString();
    }

    public void initAttrValue(){

            this.groupName = "";

            this.personNum = null;

            this.type = null;

            this.remark = "";

            this.personNumNo = null;

            this.attendanceType = "";
    }
}