package com.sundot.airport.system.domain;

import java.math.BigDecimal;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.sundot.airport.common.annotation.Excel;
import com.sundot.airport.common.core.domain.BaseEntity;

/**
 * 考核指标对象 base_performance_indicator
 *
 * @author ruoyi
 * @date 2026-04-28
 */
public class BasePerformanceIndicator extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** 租户号 */
    private String tenantId;

    /** 乐观锁 */
    private Integer revision;

    /** 主键 */
    private Long id;

    /** 所属一级分类编码 */
    @Excel(name = "所属一级分类编码", type = Excel.Type.EXPORT)
    private String categoryCodeOne;

    /** 所属一级分类名称 */
    @Excel(name = "所属一级分类名称")
    private String categoryNameOne;

    /** 所属二级分类编码 */
    @Excel(name = "所属二级分类编码", type = Excel.Type.EXPORT)
    private String categoryCode;

    /** 所属二级分类名称 */
    @Excel(name = "所属二级分类名称")
    private String categoryName;

    /** 编码 */
    @Excel(name = "编码", type = Excel.Type.EXPORT)
    private String code;

    /** 序号 */
    private String serialNumber;

    /** 指标名称 */
    @Excel(name = "指标名称")
    private String name;

    /** 分值 */
    @Excel(name = "分值")
    private BigDecimal score;

    /** 单位 */
    @Excel(name = "单位")
    private String unit;

    /** 事/病假 */
    @Excel(name = "事/病假",
            readConverterExp = "PERSONAL_LEAVE=事假," +
                    "SICK_LEAVE=病假,",
            combo = "事假,病假",
            type = Excel.Type.EXPORT)
    private String leaveType;

    /** 事/病假描述  */
    @Excel(name = "事/病假", type = Excel.Type.IMPORT)
    private String leaveTypeDesc;

    /** 奖罚类型 */
    @Excel(name = "奖罚类型",
            readConverterExp = "PUNISHMENT=惩罚," +
                    "REWARD=奖励," +
                    "OTHER=其他,",
            combo = "惩罚,奖励,其他",
            type = Excel.Type.EXPORT)
    private String rewardPunishmentType;

    public void setTenantId(String tenantId) {
        this.tenantId = tenantId;
    }

    public String getTenantId() {
        return tenantId;
    }

    public void setRevision(Integer revision) {
        this.revision = revision;
    }

    public Integer getRevision() {
        return revision;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public String getCategoryCodeOne() {
        return categoryCodeOne;
    }

    public void setCategoryCodeOne(String categoryCodeOne) {
        this.categoryCodeOne = categoryCodeOne;
    }

    public String getCategoryNameOne() {
        return categoryNameOne;
    }

    public void setCategoryNameOne(String categoryNameOne) {
        this.categoryNameOne = categoryNameOne;
    }

    public void setCategoryCode(String categoryCode) {
        this.categoryCode = categoryCode;
    }

    public String getCategoryCode() {
        return categoryCode;
    }

    public void setCategoryName(String categoryName) {
        this.categoryName = categoryName;
    }

    public String getCategoryName() {
        return categoryName;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getCode() {
        return code;
    }

    public void setSerialNumber(String serialNumber) {
        this.serialNumber = serialNumber;
    }

    public String getSerialNumber() {
        return serialNumber;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setScore(BigDecimal score) {
        this.score = score;
    }

    public BigDecimal getScore() {
        return score;
    }

    public void setUnit(String unit) {
        this.unit = unit;
    }

    public String getUnit() {
        return unit;
    }

    public void setLeaveType(String leaveType) {
        this.leaveType = leaveType;
    }

    public String getLeaveType() {
        return leaveType;
    }

    public String getLeaveTypeDesc() {
        return leaveTypeDesc;
    }

    public void setLeaveTypeDesc(String leaveTypeDesc) {
        this.leaveTypeDesc = leaveTypeDesc;
    }

    public String getRewardPunishmentType() {
        return rewardPunishmentType;
    }

    public void setRewardPunishmentType(String rewardPunishmentType) {
        this.rewardPunishmentType = rewardPunishmentType;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("tenantId", getTenantId())
                .append("revision", getRevision())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("remark", getRemark())
                .append("id", getId())
                .append("categoryCodeOne", getCategoryCodeOne())
                .append("categoryNameOne", getCategoryNameOne())
                .append("categoryCode", getCategoryCode())
                .append("categoryName", getCategoryName())
                .append("code", getCode())
                .append("serialNumber", getSerialNumber())
                .append("name", getName())
                .append("score", getScore())
                .append("unit", getUnit())
                .append("leaveType", getLeaveType())
                .append("rewardPunishmentType", getRewardPunishmentType())
                .toString();
    }
}
