EvalGroupRewardLaddersVO.java 2.06 KB
package cn.fw.morax.domain.vo.eval;

import cn.fw.common.data.entity.BaseAuditableTimeEntity;
import cn.fw.morax.common.constant.Constant;
import cn.fw.morax.common.utils.PublicUtil;
import cn.fw.morax.domain.enums.*;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;

/**
 * <p>
 * 考评奖惩阶梯
 * </p>
 *
 * @author jiangchao
 * @since 2022-12-09
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class EvalGroupRewardLaddersVO {

    /**
     * id
     */
    private Long id;
    /**
     * 考评组指标条件id
     */
    private Long evalGroupId;

    /**
     * 考评组奖励id
     */
    private Long evalGroupRewardId;

    /**
     * 阶梯下限;大于等于
     */
    private BigDecimal lower;

    /**
     * 阶梯上限;小于; 无上限的情况值为 2<<15
     */
    private BigDecimal upper;

    /**
     * 金额
     */
    private BigDecimal money;

    /**
     * 封顶金额/台
     */
    private BigDecimal capMoney;
    /**
     * 命中
     */
    private Boolean hit;

    /**
     * 排名顺序类型 1:正  2:负
     */
    private RankOrderTypeEnum rankOrderType;

    /**
     * 转换为百分数展示
     */
    public void processPercent(EvalRewardCalMethodEnum calMethod, RankTypeEnum rankType, DataTypeEnum laddersType){
        if (EvalRewardCalMethodEnum.RANK.equals(calMethod) && RankTypeEnum.PERCENT.equals(rankType)) {
            this.setUpper(this.getUpper().multiply(Constant.ONE_HUNDRED));
            this.setLower(this.getLower().multiply(Constant.ONE_HUNDRED));
        }
        if (EvalRewardCalMethodEnum.LADDER.equals(calMethod) || EvalRewardCalMethodEnum.LADDER_DOUBLE.equals(calMethod) ) {
            if (PublicUtil.isNotEmpty(laddersType) && DataTypeEnum.RATIO.equals(laddersType)) {
                this.setUpper(this.getUpper().multiply(Constant.ONE_HUNDRED));
                this.setLower(this.getLower().multiply(Constant.ONE_HUNDRED));
            }
        }
    }

}