package com.mortals.xhx.module.staff.model;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.ArrayList;

import cn.hutool.core.date.DateUtil;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mortals.framework.annotation.Excel;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.staff.model.vo.StaffPerformSummaryVo;
import lombok.Data;
/**
 * 员工绩效统计实体对象
 *
 * @author zxfei
 * @date 2023-07-18
 */
@Data
public class StaffPerformSummaryEntity extends StaffPerformSummaryVo {
    private static final long serialVersionUID = 1L;

    /**
     * 人员id
     */
    private Long staffId;
    /**
     * 工号
     */
    @Excel(name = "工号")
    private String workNum;
    /**
     * 人员名称
     */
    @Excel(name = "人员名称")
    private String staffName;
    /**
     * 部门id号
     */
    private Long deptId;
    /**
     * 部门名称
     */
    @Excel(name = "部门名称")
    private String deptName;
    /**
     * 考勤绩效指标分数
     */
    @Excel(name = "考勤绩效指标分数")
    private BigDecimal attendScore;
    /**
     * 评价绩效指标分数
     */
    @Excel(name = "评价绩效指标分数")
    private BigDecimal reviewScore;
    /**
     * 投诉绩效指标分数
     */
    @Excel(name = "投诉绩效指标分数")
    private BigDecimal complainScore;
    /**
     * 办件绩效分数
     */
    @Excel(name = "办件绩效分数")
    private BigDecimal goworkScore;
    /**
     * 效能绩效分数
     */
    @Excel(name = "效能绩效分数")
    private BigDecimal effectScore;
    /**
     * 其它绩效分数
     */
    @Excel(name = "其它绩效分数")
    private BigDecimal otherScore;
    /**
     * 累计异常分数
     */
    @Excel(name = "累计异常分数")
    private BigDecimal errorScore;
    /**
     * 当月得分数
     */
    @Excel(name = "当月得分数")
    private BigDecimal totalScore;
    /**
     * 备注
     */
    private String remark;
    /**
     * 年
     */
    @Excel(name = "年")
    private Integer year;
    /**
     * 月
     */
    @Excel(name = "月")
    private Integer month;
    @Override
    public int hashCode() {
        return this.getId().hashCode();
    }
    @Override
    public boolean equals(Object obj) {
        if (obj == null) return false;
        if (obj instanceof StaffPerformSummaryEntity) {
            StaffPerformSummaryEntity tmp = (StaffPerformSummaryEntity) obj;
            if (this.getId() == tmp.getId()) {
                return true;
            }
        }
        return false;
    }

    public void initAttrValue(){

        this.staffId = 0L;

        this.workNum = "";

        this.staffName = "";

        this.deptId = 0L;

        this.deptName = "";

        this.attendScore = new BigDecimal(0);

        this.reviewScore = new BigDecimal(0);

        this.complainScore = new BigDecimal(0);

        this.goworkScore = new BigDecimal(0);

        this.effectScore = new BigDecimal(0);

        this.otherScore = new BigDecimal(0);

        this.errorScore = new BigDecimal(0);

        this.totalScore = new BigDecimal(0);

        this.remark = "";

        this.year = DateUtil.year(new Date());

        this.month = DateUtil.month(new Date())+1;
    }
}