EvalGroupRewardRankLogVO.java 2.39 KB
package cn.fw.morax.domain.vo.eval;

import cn.fw.morax.common.constant.Constant;
import cn.fw.morax.common.utils.PublicUtil;
import cn.fw.morax.domain.enums.DataTypeEnum;
import cn.fw.morax.domain.enums.EvalScopeEnum;
import cn.fw.morax.domain.enums.RankIndicatorTypeEnum;
import cn.fw.morax.domain.enums.TargetTypeEnum;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.time.LocalDate;

/**
 * <p>
 * 奖惩排名日志
 * </p>
 *
 * @author jiangchao
 * @since 2022-12-13
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class EvalGroupRewardRankLogVO {

    private static final long serialVersionUID = 1L;
    /**
     * id
     */
    private Long id;

    /**
     * 名称
     */
    private String name;

    /**
     * 员工id
     */
    private Long poolId;

    /**
     * 考评范围; 1:门店考评 2:人员考评
     */
    private EvalScopeEnum scopeType;

    /**
     * 考评奖惩 前置条件 配置id
     */
    private Long referId;
    /**
     * 指标类型 1.奖惩提成  2.前置条件指标
     */
    private RankIndicatorTypeEnum targetType;
    /**
     * 原始值
     */
    private BigDecimal value;
    /**
     * 达成目标
     */
    private BigDecimal reachValue;
    /**
     * 排名
     */
    private Integer rank;
    /**
     * 命中
     */
    private Boolean hit;

    /**
     * 数据日期
     */
    private LocalDate dataDate;

    /**
     * 集团
     */
    private Long groupId;

    /**
     * 转换为百分数展示(条件使用)
     */
    public void convertPercentForCond(DataTypeEnum dataType, TargetTypeEnum targetType){
        if (DataTypeEnum.RATIO.equals(dataType)) {
            this.setValue(this.getValue().multiply(Constant.ONE_HUNDRED));
        }
        //有目标
        if (! TargetTypeEnum.NO.equals(targetType)) {
            this.setReachValue(this.getReachValue().multiply(Constant.ONE_HUNDRED));
        }
    }

    /**
     * 转换为百分数展示(条件使用)
     */
    public void convertPercentForCommission(DataTypeEnum dataType, TargetTypeEnum targetType){
        if (DataTypeEnum.RATIO.equals(dataType)) {
            this.setValue(this.getValue().multiply(Constant.ONE_HUNDRED));
        }
        //有目标
        if (! TargetTypeEnum.NO.equals(targetType)) {
            this.setReachValue(this.getReachValue().multiply(Constant.ONE_HUNDRED));
        }
    }

}