EvalGroupIndicatorParamVO.java 3.18 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.*;
import com.baomidou.mybatisplus.annotation.TableLogic;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.swing.plaf.PanelUI;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;

/**
 * <p>
 * 考评组指标参数
 * </p>
 *
 * @author jiangchao
 * @since 2022-12-09
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class EvalGroupIndicatorParamVO {

    /**
     * id
     */
    private Long id;
    /**
     * 考评组配置id
     */
    private Long evalGroupId;

    /**
     * 考评组指标id
     */
    private Long evalGroupIndicatorId;

    /**
     * 条件类型(1.台阶条件,2,提成条件)
     */
    private ParamTypeEnum paramType;

    /**
     * 数据类型;1:台数 2:百分比 3:金额
     */
    private DataTypeEnum dataType;

    /**
     * 指标类型(1.指标,2,考评指标)
     */
    private IndicatorCodeTypeEnum codeType;

    /**
     * 指标编码
     */
    private String code;

    /**
     * 指标库名称
     */
    private String name;

    /**
     * 占比
     */
    private BigDecimal proportion;

    /**
     * 是否封顶
     */
    private Boolean cap;

    /**
     * 目标计算类型;1: 目标值计算 2:最低要求计算
     */
    private TargetCalcTypeEnum targetCalcType;

    /**
     * 绩效目标值类型; 1:无 2:百分比 3:金额 4:台数
     */
    private TargetTypeEnum targetType;

    /**
     * 目标值
     */
    private BigDecimal targetValue;

    /**
     * 指标值
     */
    private BigDecimal indicatorValue;

    /**
     * 达成目标
     */
    private BigDecimal reachValue;

    /**
     * 额外达成目标
     */
    private BigDecimal extraReachValue;

    /**
     * 考评使用目标; 1:无目标 2:第一目标 3:额外目标值
     */
    private EvalUseTargetEnum useTarget;

    /**
     * 时间进度目标值
     */
//    private BigDecimal timeScheduleTargetValue;

    /**
     * 目标计算类型;1: 目标值计算 2:最低要求计算 3:阶段目标 4:时间进度
     */
    private TargetCalcTypeEnum extraTargetCalcType;

    /**
     * 绩效目标值类型; 1:无 2:百分比 3:金额 4:台数
     */
    private TargetTypeEnum extraTargetType;

    /**
     * 目标值
     */
    private BigDecimal extraTargetValue;

    /**
     * 处理百分数
     */
    public void processPercent() {
        this.setProportion(this.getProportion().multiply(Constant.ONE_HUNDRED));
        if (PublicUtil.isNotEmpty(this.getTargetValue()) &&
                PublicUtil.isNotEmpty(this.getTargetType()) &&
                TargetTypeEnum.RATIO.equals(this.getTargetType())) {
            this.setTargetValue(this.getTargetValue().multiply(Constant.ONE_HUNDRED));
        }
        if (PublicUtil.isNotEmpty(this.getExtraTargetValue()) &&
                PublicUtil.isNotEmpty(this.getExtraTargetType()) &&
                TargetTypeEnum.RATIO.equals(this.getExtraTargetType())) {
            this.setExtraTargetValue(this.getExtraTargetValue().multiply(Constant.ONE_HUNDRED));
        }
    }

}