package com.sundot.airport.personnel.domain;

import java.math.BigDecimal;
import java.util.List;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
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;

/**
 * 非干部月度考核对象 personnel_non_cadre_monthly_assessment
 *
 * @author ruoyi
 * @date 2026-05-07
 */
@TableName("personnel_non_cadre_monthly_assessment")
public class PersonnelNonCadreMonthlyAssessment extends BaseEntity {
    private static final long serialVersionUID = 1L;

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

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

    /** 主键 */
    @TableId(type = IdType.AUTO)
    private Long id;

    /** 考核月份（格式:YYYYMM） */
    @Excel(name = "考核月份")
    private String assessmentMonth;

    /** 用户ID */
    @Excel(name = "用户ID")
    private Long userId;

    /** 用户名称 */
    @Excel(name = "用户名称")
    private String userName;

    /** 大队ID */
    @Excel(name = "大队ID")
    private Long brigadeId;

    /** 大队名称 */
    @Excel(name = "大队名称")
    private String brigadeName;

    /** 角色ID */
    @Excel(name = "角色ID")
    private Long roleId;

    /** 角色权限字符串 */
    @Excel(name = "角色权限字符串")
    private String roleKey;

    /** 角色名称 */
    @Excel(name = "角色名称")
    private String roleName;

    /** 用工形式 */
    @Excel(name = "用工形式")
    private String employmentType;

    /** 考核组 */
    @Excel(name = "考核组")
    private String assessmentTeam;

    /** 岗位 */
    @Excel(name = "岗位")
    private String post;

    /** 分管班组长id */
    @Excel(name = "分管班组长id")
    private Long deputyTeamLeaderId;

    /** 分管班组长名称 */
    @Excel(name = "分管班组长名称")
    private String deputyTeamLeaderName;

    /** 分管主管id */
    @Excel(name = "分管主管id")
    private Long deputySupervisorId;

    /** 分管主管 */
    @Excel(name = "分管主管")
    private String deputySupervisorName;

    /** 分管经理id */
    @Excel(name = "分管经理id")
    private Long deputyManagerId;

    /** 分管经理 */
    @Excel(name = "分管经理")
    private String deputyManagerName;

    /** 红线指标触发次数 */
    @Excel(name = "红线指标触发次数")
    private Integer redLineIndexTriggerCount;

    /** 核心指标分值 */
    @Excel(name = "核心指标分值")
    private BigDecimal coreIndexScore;

    /** 其他指标分值 */
    @Excel(name = "其他指标分值")
    private BigDecimal otherIndexScore;

    /** 其他指标中的安全指标（仅含soc/站品控检查扣分）分值 */
    @Excel(name = "其他指标中的安全指标（仅含soc/站品控检查扣分）分值")
    private BigDecimal otherIndexSafetyScoreWithSocStationQcDeduction;

    /** 其他指标中的安全指标（不含soc/站品控检查扣分）分值 */
    @Excel(name = "其他指标中的安全指标（不含soc/站品控检查扣分）分值")
    private BigDecimal otherIndexSafetyScoreWithoutSocStationQcDeduction;

    /** 其他指标中的非安全指标扣分 */
    @Excel(name = "其他指标中的非安全指标扣分")
    private BigDecimal otherIndexNonSafetyDeduction;

    /** 非核心安全+核心扣分 */
    @Excel(name = "非核心安全+核心扣分")
    private BigDecimal nonCoreSafetyPlusCoreDeduction;

    /** soc/站品控检查的涉及核心、安全指标扣分 */
    @Excel(name = "soc/站品控检查的涉及核心、安全指标扣分")
    private BigDecimal socStationQcInvolvedCoreSafetyDeduction;

    /** 分管员工数量 */
    @Excel(name = "分管员工数量")
    private Integer inChargeEmployeeCount;

    /** 扣分平均值 */
    @Excel(name = "扣分平均值")
    private BigDecimal deductionAverage;

    /** 总分 */
    @Excel(name = "总分")
    private BigDecimal totalScore;

    /** 奖励（元） */
    @Excel(name = "奖励（元）")
    private BigDecimal rewardAmount;

    /** 扣罚（元） */
    @Excel(name = "扣罚（元）")
    private BigDecimal punishmentAmount;

    /** 考核结果 */
    @Excel(name = "考核结果")
    private String assessmentResult;

    /** 考核结果备注 */
    @Excel(name = "考核结果备注")
    private String assessmentResultRemark;

    /** 应用方式 */
    @Excel(name = "应用方式")
    private String applicationMethod;

    /** 应用方式备注 */
    @Excel(name = "应用方式备注")
    private String applicationMethodRemark;

    /** 是否豁免 */
    @Excel(name = "是否豁免")
    private String exemption;

    /** 豁免原因备注 */
    @Excel(name = "豁免原因备注")
    private String exemptionReasonRemark;

    /** 指标明细列表 */
    @TableField(exist = false)
    private List<PersonnelMonthlyAssessmentIndicatorDetail> personnelMonthlyAssessmentIndicatorDetailList;

    /** 红线指标依据 */
    @TableField(exist = false)
    private List<PersonnelMonthlyAssessmentIndicatorDetail> redLineIndexAccordList;

    /** 核心指标依据 */
    @TableField(exist = false)
    private List<PersonnelMonthlyAssessmentIndicatorDetail> coreIndexAccordList;

    /** 其他指标依据  */
    @TableField(exist = false)
    private List<PersonnelMonthlyAssessmentIndicatorDetail> otherIndexAccordList;

    /** 其他指标中的安全指标（仅含SOC/站品控检查扣分）依据 */
    @TableField(exist = false)
    private List<PersonnelMonthlyAssessmentIndicatorDetail> otherIndexSafetyScoreWithSocStationQcAccordList;

    /** 其他指标中的安全指标（不含SOC/站品控检查扣分）依据 */
    @TableField(exist = false)
    private List<PersonnelMonthlyAssessmentIndicatorDetail> otherIndexSafetyScoreWithoutSocStationQcAccordList;

    /** 其他指标中的非安全指标扣分依据 */
    @TableField(exist = false)
    private List<PersonnelMonthlyAssessmentIndicatorDetail> otherIndexNonSafetyAccordList;

    /** SOC/站品控检查的涉及核心、安全指标扣分依据 */
    @TableField(exist = false)
    private List<PersonnelMonthlyAssessmentIndicatorDetail> socStationQcInvolvedCoreSafetyAccordList;

    /** 奖励明细 */
    @TableField(exist = false)
    private List<PersonnelMonthlyAssessmentIndicatorDetail> rewardAccordList;

    /** 惩罚明细 */
    @TableField(exist = false)
    private List<PersonnelMonthlyAssessmentIndicatorDetail> punishmentAccordList;

    /** 查询开始考核月份（格式:YYYYMM） */
    @TableField(exist = false)
    private String assessmentMonthStart;

    /** 查询结束考核月份（格式:YYYYMM） */
    @TableField(exist = false)
    private String assessmentMonthEnd;

    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 void setAssessmentMonth(String assessmentMonth) {
        this.assessmentMonth = assessmentMonth;
    }

    public String getAssessmentMonth() {
        return assessmentMonth;
    }

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

    public Long getUserId() {
        return userId;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getUserName() {
        return userName;
    }

    public Long getBrigadeId() {
        return brigadeId;
    }

    public void setBrigadeId(Long brigadeId) {
        this.brigadeId = brigadeId;
    }

    public String getBrigadeName() {
        return brigadeName;
    }

    public void setBrigadeName(String brigadeName) {
        this.brigadeName = brigadeName;
    }

    public Long getRoleId() {
        return roleId;
    }

    public void setRoleId(Long roleId) {
        this.roleId = roleId;
    }

    public String getRoleKey() {
        return roleKey;
    }

    public void setRoleKey(String roleKey) {
        this.roleKey = roleKey;
    }

    public String getRoleName() {
        return roleName;
    }

    public void setRoleName(String roleName) {
        this.roleName = roleName;
    }

    public void setEmploymentType(String employmentType) {
        this.employmentType = employmentType;
    }

    public String getEmploymentType() {
        return employmentType;
    }

    public void setAssessmentTeam(String assessmentTeam) {
        this.assessmentTeam = assessmentTeam;
    }

    public String getAssessmentTeam() {
        return assessmentTeam;
    }

    public void setPost(String post) {
        this.post = post;
    }

    public String getPost() {
        return post;
    }

    public void setDeputyTeamLeaderId(Long deputyTeamLeaderId) {
        this.deputyTeamLeaderId = deputyTeamLeaderId;
    }

    public Long getDeputyTeamLeaderId() {
        return deputyTeamLeaderId;
    }

    public void setDeputyTeamLeaderName(String deputyTeamLeaderName) {
        this.deputyTeamLeaderName = deputyTeamLeaderName;
    }

    public String getDeputyTeamLeaderName() {
        return deputyTeamLeaderName;
    }

    public void setDeputySupervisorId(Long deputySupervisorId) {
        this.deputySupervisorId = deputySupervisorId;
    }

    public Long getDeputySupervisorId() {
        return deputySupervisorId;
    }

    public void setDeputySupervisorName(String deputySupervisorName) {
        this.deputySupervisorName = deputySupervisorName;
    }

    public String getDeputySupervisorName() {
        return deputySupervisorName;
    }

    public void setDeputyManagerId(Long deputyManagerId) {
        this.deputyManagerId = deputyManagerId;
    }

    public Long getDeputyManagerId() {
        return deputyManagerId;
    }

    public void setDeputyManagerName(String deputyManagerName) {
        this.deputyManagerName = deputyManagerName;
    }

    public String getDeputyManagerName() {
        return deputyManagerName;
    }

    public void setRedLineIndexTriggerCount(Integer redLineIndexTriggerCount) {
        this.redLineIndexTriggerCount = redLineIndexTriggerCount;
    }

    public Integer getRedLineIndexTriggerCount() {
        return redLineIndexTriggerCount;
    }

    public void setCoreIndexScore(BigDecimal coreIndexScore) {
        this.coreIndexScore = coreIndexScore;
    }

    public BigDecimal getCoreIndexScore() {
        return coreIndexScore;
    }

    public void setOtherIndexScore(BigDecimal otherIndexScore) {
        this.otherIndexScore = otherIndexScore;
    }

    public BigDecimal getOtherIndexScore() {
        return otherIndexScore;
    }

    public void setOtherIndexSafetyScoreWithSocStationQcDeduction(BigDecimal otherIndexSafetyScoreWithSocStationQcDeduction) {
        this.otherIndexSafetyScoreWithSocStationQcDeduction = otherIndexSafetyScoreWithSocStationQcDeduction;
    }

    public BigDecimal getOtherIndexSafetyScoreWithSocStationQcDeduction() {
        return otherIndexSafetyScoreWithSocStationQcDeduction;
    }

    public void setOtherIndexSafetyScoreWithoutSocStationQcDeduction(BigDecimal otherIndexSafetyScoreWithoutSocStationQcDeduction) {
        this.otherIndexSafetyScoreWithoutSocStationQcDeduction = otherIndexSafetyScoreWithoutSocStationQcDeduction;
    }

    public BigDecimal getOtherIndexSafetyScoreWithoutSocStationQcDeduction() {
        return otherIndexSafetyScoreWithoutSocStationQcDeduction;
    }

    public void setOtherIndexNonSafetyDeduction(BigDecimal otherIndexNonSafetyDeduction) {
        this.otherIndexNonSafetyDeduction = otherIndexNonSafetyDeduction;
    }

    public BigDecimal getOtherIndexNonSafetyDeduction() {
        return otherIndexNonSafetyDeduction;
    }

    public void setNonCoreSafetyPlusCoreDeduction(BigDecimal nonCoreSafetyPlusCoreDeduction) {
        this.nonCoreSafetyPlusCoreDeduction = nonCoreSafetyPlusCoreDeduction;
    }

    public BigDecimal getNonCoreSafetyPlusCoreDeduction() {
        return nonCoreSafetyPlusCoreDeduction;
    }

    public void setSocStationQcInvolvedCoreSafetyDeduction(BigDecimal socStationQcInvolvedCoreSafetyDeduction) {
        this.socStationQcInvolvedCoreSafetyDeduction = socStationQcInvolvedCoreSafetyDeduction;
    }

    public BigDecimal getSocStationQcInvolvedCoreSafetyDeduction() {
        return socStationQcInvolvedCoreSafetyDeduction;
    }

    public void setInChargeEmployeeCount(Integer inChargeEmployeeCount) {
        this.inChargeEmployeeCount = inChargeEmployeeCount;
    }

    public Integer getInChargeEmployeeCount() {
        return inChargeEmployeeCount;
    }

    public void setDeductionAverage(BigDecimal deductionAverage) {
        this.deductionAverage = deductionAverage;
    }

    public BigDecimal getDeductionAverage() {
        return deductionAverage;
    }

    public void setTotalScore(BigDecimal totalScore) {
        this.totalScore = totalScore;
    }

    public BigDecimal getTotalScore() {
        return totalScore;
    }

    public void setRewardAmount(BigDecimal rewardAmount) {
        this.rewardAmount = rewardAmount;
    }

    public BigDecimal getRewardAmount() {
        return rewardAmount;
    }

    public void setPunishmentAmount(BigDecimal punishmentAmount) {
        this.punishmentAmount = punishmentAmount;
    }

    public BigDecimal getPunishmentAmount() {
        return punishmentAmount;
    }

    public void setAssessmentResult(String assessmentResult) {
        this.assessmentResult = assessmentResult;
    }

    public String getAssessmentResult() {
        return assessmentResult;
    }

    public void setAssessmentResultRemark(String assessmentResultRemark) {
        this.assessmentResultRemark = assessmentResultRemark;
    }

    public String getAssessmentResultRemark() {
        return assessmentResultRemark;
    }

    public void setApplicationMethod(String applicationMethod) {
        this.applicationMethod = applicationMethod;
    }

    public String getApplicationMethod() {
        return applicationMethod;
    }

    public void setApplicationMethodRemark(String applicationMethodRemark) {
        this.applicationMethodRemark = applicationMethodRemark;
    }

    public String getApplicationMethodRemark() {
        return applicationMethodRemark;
    }

    public void setExemption(String exemption) {
        this.exemption = exemption;
    }

    public String getExemption() {
        return exemption;
    }

    public void setExemptionReasonRemark(String exemptionReasonRemark) {
        this.exemptionReasonRemark = exemptionReasonRemark;
    }

    public String getExemptionReasonRemark() {
        return exemptionReasonRemark;
    }

    public List<PersonnelMonthlyAssessmentIndicatorDetail> getPersonnelMonthlyAssessmentIndicatorDetailList() {
        return personnelMonthlyAssessmentIndicatorDetailList;
    }

    public void setPersonnelMonthlyAssessmentIndicatorDetailList(List<PersonnelMonthlyAssessmentIndicatorDetail> personnelMonthlyAssessmentIndicatorDetailList) {
        this.personnelMonthlyAssessmentIndicatorDetailList = personnelMonthlyAssessmentIndicatorDetailList;
    }

    public List<PersonnelMonthlyAssessmentIndicatorDetail> getRedLineIndexAccordList() {
        return redLineIndexAccordList;
    }

    public void setRedLineIndexAccordList(List<PersonnelMonthlyAssessmentIndicatorDetail> redLineIndexAccordList) {
        this.redLineIndexAccordList = redLineIndexAccordList;
    }

    public List<PersonnelMonthlyAssessmentIndicatorDetail> getCoreIndexAccordList() {
        return coreIndexAccordList;
    }

    public void setCoreIndexAccordList(List<PersonnelMonthlyAssessmentIndicatorDetail> coreIndexAccordList) {
        this.coreIndexAccordList = coreIndexAccordList;
    }

    public List<PersonnelMonthlyAssessmentIndicatorDetail> getOtherIndexAccordList() {
        return otherIndexAccordList;
    }

    public void setOtherIndexAccordList(List<PersonnelMonthlyAssessmentIndicatorDetail> otherIndexAccordList) {
        this.otherIndexAccordList = otherIndexAccordList;
    }

    public List<PersonnelMonthlyAssessmentIndicatorDetail> getOtherIndexSafetyScoreWithSocStationQcAccordList() {
        return otherIndexSafetyScoreWithSocStationQcAccordList;
    }

    public void setOtherIndexSafetyScoreWithSocStationQcAccordList(List<PersonnelMonthlyAssessmentIndicatorDetail> otherIndexSafetyScoreWithSocStationQcAccordList) {
        this.otherIndexSafetyScoreWithSocStationQcAccordList = otherIndexSafetyScoreWithSocStationQcAccordList;
    }

    public List<PersonnelMonthlyAssessmentIndicatorDetail> getOtherIndexSafetyScoreWithoutSocStationQcAccordList() {
        return otherIndexSafetyScoreWithoutSocStationQcAccordList;
    }

    public void setOtherIndexSafetyScoreWithoutSocStationQcAccordList(List<PersonnelMonthlyAssessmentIndicatorDetail> otherIndexSafetyScoreWithoutSocStationQcAccordList) {
        this.otherIndexSafetyScoreWithoutSocStationQcAccordList = otherIndexSafetyScoreWithoutSocStationQcAccordList;
    }

    public List<PersonnelMonthlyAssessmentIndicatorDetail> getOtherIndexNonSafetyAccordList() {
        return otherIndexNonSafetyAccordList;
    }

    public void setOtherIndexNonSafetyAccordList(List<PersonnelMonthlyAssessmentIndicatorDetail> otherIndexNonSafetyAccordList) {
        this.otherIndexNonSafetyAccordList = otherIndexNonSafetyAccordList;
    }

    public List<PersonnelMonthlyAssessmentIndicatorDetail> getSocStationQcInvolvedCoreSafetyAccordList() {
        return socStationQcInvolvedCoreSafetyAccordList;
    }

    public void setSocStationQcInvolvedCoreSafetyAccordList(List<PersonnelMonthlyAssessmentIndicatorDetail> socStationQcInvolvedCoreSafetyAccordList) {
        this.socStationQcInvolvedCoreSafetyAccordList = socStationQcInvolvedCoreSafetyAccordList;
    }

    public List<PersonnelMonthlyAssessmentIndicatorDetail> getRewardAccordList() {
        return rewardAccordList;
    }

    public void setRewardAccordList(List<PersonnelMonthlyAssessmentIndicatorDetail> rewardAccordList) {
        this.rewardAccordList = rewardAccordList;
    }

    public List<PersonnelMonthlyAssessmentIndicatorDetail> getPunishmentAccordList() {
        return punishmentAccordList;
    }

    public void setPunishmentAccordList(List<PersonnelMonthlyAssessmentIndicatorDetail> punishmentAccordList) {
        this.punishmentAccordList = punishmentAccordList;
    }

    public String getAssessmentMonthStart() {
        return assessmentMonthStart;
    }

    public void setAssessmentMonthStart(String assessmentMonthStart) {
        this.assessmentMonthStart = assessmentMonthStart;
    }

    public String getAssessmentMonthEnd() {
        return assessmentMonthEnd;
    }

    public void setAssessmentMonthEnd(String assessmentMonthEnd) {
        this.assessmentMonthEnd = assessmentMonthEnd;
    }

    @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("assessmentMonth", getAssessmentMonth())
                .append("userId", getUserId())
                .append("userName", getUserName())
                .append("brigadeId", getBrigadeId())
                .append("brigadeName", getBrigadeName())
                .append("roleId", getRoleId())
                .append("roleKey", getRoleKey())
                .append("roleName", getRoleName())
                .append("employmentType", getEmploymentType())
                .append("assessmentTeam", getAssessmentTeam())
                .append("post", getPost())
                .append("deputyTeamLeaderId", getDeputyTeamLeaderId())
                .append("deputyTeamLeaderName", getDeputyTeamLeaderName())
                .append("deputySupervisorId", getDeputySupervisorId())
                .append("deputySupervisorName", getDeputySupervisorName())
                .append("deputyManagerId", getDeputyManagerId())
                .append("deputyManagerName", getDeputyManagerName())
                .append("redLineIndexTriggerCount", getRedLineIndexTriggerCount())
                .append("coreIndexScore", getCoreIndexScore())
                .append("otherIndexScore", getOtherIndexScore())
                .append("otherIndexSafetyScoreWithSocStationQcDeduction", getOtherIndexSafetyScoreWithSocStationQcDeduction())
                .append("otherIndexSafetyScoreWithoutSocStationQcDeduction", getOtherIndexSafetyScoreWithoutSocStationQcDeduction())
                .append("otherIndexNonSafetyDeduction", getOtherIndexNonSafetyDeduction())
                .append("nonCoreSafetyPlusCoreDeduction", getNonCoreSafetyPlusCoreDeduction())
                .append("socStationQcInvolvedCoreSafetyDeduction", getSocStationQcInvolvedCoreSafetyDeduction())
                .append("inChargeEmployeeCount", getInChargeEmployeeCount())
                .append("deductionAverage", getDeductionAverage())
                .append("totalScore", getTotalScore())
                .append("rewardAmount", getRewardAmount())
                .append("punishmentAmount", getPunishmentAmount())
                .append("assessmentResult", getAssessmentResult())
                .append("assessmentResultRemark", getAssessmentResultRemark())
                .append("applicationMethod", getApplicationMethod())
                .append("applicationMethodRemark", getApplicationMethodRemark())
                .append("exemption", getExemption())
                .append("exemptionReasonRemark", getExemptionReasonRemark())
                .append("personnelMonthlyAssessmentIndicatorDetailList", getPersonnelMonthlyAssessmentIndicatorDetailList())
                .append("redLineIndexAccordList", getRedLineIndexAccordList())
                .append("coreIndexAccordList", getCoreIndexAccordList())
                .append("otherIndexAccordList", getOtherIndexAccordList())
                .append("otherIndexSafetyScoreWithSocStationQcAccordList", getOtherIndexSafetyScoreWithSocStationQcAccordList())
                .append("otherIndexSafetyScoreWithoutSocStationQcAccordList", getOtherIndexSafetyScoreWithoutSocStationQcAccordList())
                .append("otherIndexNonSafetyAccordList", getOtherIndexNonSafetyAccordList())
                .append("socStationQcInvolvedCoreSafetyAccordList", getSocStationQcInvolvedCoreSafetyAccordList())
                .append("rewardAccordList", getRewardAccordList())
                .append("punishmentAccordList", getPunishmentAccordList())
                .toString();
    }
}
