package com.mortals.xhx.module.check.model;
import java.util.Date;
import java.util.List;
import java.util.ArrayList;
import java.math.BigDecimal;
import cn.hutool.core.date.DateUtil;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mortals.framework.annotation.Excel;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.check.model.vo.CheckWindowWorkmanPerformVo;
import lombok.Data;
/**
 * 窗口人员考核汇总核查实体对象
 *
 * @author zxfei
 * @date 2024-01-17
 */
@Data
public class CheckWindowWorkmanPerformEntity extends CheckWindowWorkmanPerformVo {
    private static final long serialVersionUID = 1L;

    /**
     * 记录ID
     */
    private Long recordId;
    /**
     * 考核年度
     */
    private Integer year;
    /**
     * 考核月份
     */
    private Integer month;
    /**
     * 窗口ID
     */
    private Long windowId;
    /**
     * 窗口名称
     */
    private String windowName;
    /**
     * 窗口负责人id
     */
    private Long ownerId;
    /**
     * 窗口负责人名称
     */
    private String ownerName;
    /**
     * 所属部门id
     */
    private Long deptId;
    /**
     * 所属部门名称
     */
    private String deptName;
    /**
     * 所属大厅
     */
    private Long salaId;
    /**
     * 所属大厅名称
     */
    private String salaName;
    /**
     * 考核表单名称
     */
    private String fromName;
    /**
     * 提交时间
     */
    private Date submitDate;
    /**
     * 管理组核查人员
     */
    @Excel(name = "管理组核查人员")
    private String manageCheckPerson;
    /**
     * 管理组核查时间
     */
    private Date manageCheckTime;
    /**
     * 管理组核查说明
     */
    @Excel(name = "管理组核查说明")
    private String manageCheckDesc;
    /**
     * 管理组核查结果(1.通过,2.不通过)
     */
    @Excel(name = "管理组核查结果", readConverterExp = "1=通过,2=不通过")
    private String manageCheckResult;
    /**
     * 备注
     */
    private String remark;
    /**
     * 处理状态(1.未处理,2.已处理)
     */
    private Integer checkStatus;
    /**
     * 考核季度
     */
    private Integer season;
    /**
     * 时间类型(0,按月,1按季度,2按年)
     */
    private Integer timeType;
    @Override
    public int hashCode() {
        return this.getId().hashCode();
    }
    @Override
    public boolean equals(Object obj) {
        if (obj == null) return false;
        if (obj instanceof CheckWindowWorkmanPerformEntity) {
            CheckWindowWorkmanPerformEntity tmp = (CheckWindowWorkmanPerformEntity) obj;
            if (this.getId() == tmp.getId()) {
                return true;
            }
        }
        return false;
    }

    public void initAttrValue(){
        this.recordId = null;
        this.year = DateUtil.year(new Date());
        this.month = DateUtil.month(new Date())+1;
        this.windowId = null;
        this.windowName = "";
        this.ownerId = null;
        this.ownerName = "";
        this.deptId = null;
        this.deptName = "";
        this.salaId = null;
        this.salaName = "";
        this.fromName = "";
        this.submitDate = new Date();
        this.manageCheckPerson = "";
        this.manageCheckTime = new Date();
        this.manageCheckDesc = "";
        this.manageCheckResult = "";
        this.remark = "";
        this.checkStatus = 1;
        this.season = null;
        this.timeType = 0;
    }
}