package nckd.jxccl.hr.psms.helper.data;

import kd.bos.dataentity.entity.DynamicObject;

/**
* 获取升保降级条件配置
* @author W.Y.C
* @date 2025/11/2 21:39
* @version 1.0
*/
public class JobLevelRuleConfig {
    private String name;
    private String description;
    /**职位序列编码*/
    private String jobSeqNumber;
    /**最小职级*/
    private Integer minJobLevelSeq;
    /**最小职级*/
    private DynamicObject minJobLevel;
    /**最大职级*/
    private Integer maxJobLevelSeq;
    /**最大职级*/
    private DynamicObject maxJobLevel;
    /**升级百分比阈值*/
    private Integer upGradeThreshold;
    /**降级百分比阈值*/
    private Integer downGradeThreshold;

    /**
     * 判断给定的职级是否在该规则的适用范围内
     * @param jobLevelIndex 职级
     * @return: boolean
     * @author W.Y.C
     * @date: 2025/11/02 21:54
     */
    public boolean isMatchJobLevel(int jobLevelIndex) {
        if (minJobLevelSeq == null || maxJobLevelSeq == null) {
            return false;
        }
        return jobLevelIndex >= minJobLevelSeq && jobLevelIndex <= maxJobLevelSeq;
    }


    /**
     * 判断给定的职位序列是否匹配该规则
     * @param jobSeqNumber 职位序列编码
     * @return: boolean
     * @author W.Y.C
     * @date: 2025/11/02 21:54
     */
    public boolean isMatchJobSeq(String jobSeqNumber) {
        return this.jobSeqNumber != null && this.jobSeqNumber.equals(jobSeqNumber);
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public String getName() {
        return name;
    }

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

    public Integer getDownGradeThreshold() {
            return downGradeThreshold;
        }

        public void setDownGradeThreshold(Integer downGradeThreshold) {
            this.downGradeThreshold = downGradeThreshold;
        }

        public String getJobSeqNumber() {
            return jobSeqNumber;
        }

        public void setJobSeqNumber(String jobSeqNumber) {
            this.jobSeqNumber = jobSeqNumber;
        }

        public DynamicObject getMaxJobLevel() {
            return maxJobLevel;
        }

        public void setMaxJobLevel(DynamicObject maxJobLevel) {
            this.maxJobLevel = maxJobLevel;
        }

        public Integer getMaxJobLevelSeq() {
            return maxJobLevelSeq;
        }

        public void setMaxJobLevelSeq(Integer maxJobLevelSeq) {
            this.maxJobLevelSeq = maxJobLevelSeq;
        }

        public DynamicObject getMinJobLevel() {
            return minJobLevel;
        }

        public void setMinJobLevel(DynamicObject minJobLevel) {
            this.minJobLevel = minJobLevel;
        }

        public Integer getMinJobLevelSeq() {
            return minJobLevelSeq;
        }

        public void setMinJobLevelSeq(Integer minJobLevelSeq) {
            this.minJobLevelSeq = minJobLevelSeq;
        }

        public Integer getUpGradeThreshold() {
            return upGradeThreshold;
        }

        public void setUpGradeThreshold(Integer upGradeThreshold) {
            this.upGradeThreshold = upGradeThreshold;
        }
    }