package cn.fw.morax.domain.vo.kpi; 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.TargetTypeEnum; import lombok.Data; import java.math.BigDecimal; import java.util.Date; import java.util.Optional; /** * @author : kurisu * @date : 2022-4-6 * @desc : 绩效池 */ @Data public class KpiIndicatorRankStaffVO implements Comparable{ /** * 用户id */ private Long userId; /** * 用户名称 */ private String userName; /** * 岗位id */ private Long postId; /** * 岗位名称 */ private String postName; /** * 门店id */ private Long shopId; /** * 门店名称 */ private String shopName; /** * 是否纳入绩效计算 */ private Boolean inclusion; /** * 指标排名序号 */ private Integer indicatorRank; /** * 原始值 */ private BigDecimal originValue; /** * 达成值 */ private BigDecimal reachValue; /** * 转换为百分数展示 */ public void convertReportValueToPercent(DataTypeEnum dataType){ if (PublicUtil.isNotEmpty(dataType) && DataTypeEnum.RATIO.equals(dataType)) { this.setOriginValue(this.getOriginValue().multiply(Constant.ONE_HUNDRED)); } if (PublicUtil.isNotEmpty(this.getReachValue())) { this.setReachValue(this.getReachValue().multiply(Constant.ONE_HUNDRED)); } } /** * 转换为百分数展示 */ public void convertValueForTarget(DataTypeEnum dataType){ if (PublicUtil.isNotEmpty(dataType) && DataTypeEnum.RATIO.equals(dataType)) { this.setOriginValue(this.getOriginValue().multiply(Constant.ONE_HUNDRED)); } this.setReachValue(this.getReachValue().multiply(Constant.ONE_HUNDRED)); } @Override public int compareTo(KpiIndicatorRankStaffVO other) { if (Boolean.TRUE.equals(this.inclusion) && Boolean.FALSE.equals(other.inclusion)) { return -1; } if (Boolean.FALSE.equals(this.inclusion) && Boolean.TRUE.equals(other.inclusion)) { return 1; } return Optional.ofNullable(other.originValue).orElse(BigDecimal.ZERO) .compareTo(Optional.ofNullable(this.originValue).orElse(BigDecimal.ZERO)); } }