Commit f2ed69d70d34cf1376af264763b81587e285e7ed
1 parent
2a32e29a
feature(*): 人员质量评测接口
人员质量评测接口
Showing
6 changed files
with
24 additions
and
4 deletions
fw-morax-dao/src/main/resources/mapper/kpi/KpiAssessDao.xml
@@ -3,7 +3,7 @@ | @@ -3,7 +3,7 @@ | ||
3 | <mapper namespace="cn.fw.morax.dao.kpi.KpiAssessDao"> | 3 | <mapper namespace="cn.fw.morax.dao.kpi.KpiAssessDao"> |
4 | 4 | ||
5 | <sql id="all_columns"> | 5 | <sql id="all_columns"> |
6 | - id,name,post_id,post_name,shop_ids,shop_names,rank,group_id,yn,create_by,create_time,update_by,update_time | 6 | + id,post_id,post_name,shop_ids,shop_names,rank,group_id,yn,create_by,create_time,update_by,update_time |
7 | </sql> | 7 | </sql> |
8 | 8 | ||
9 | <select id="getConfigs" resultType="cn.fw.morax.domain.db.kpi.KpiAssess"> | 9 | <select id="getConfigs" resultType="cn.fw.morax.domain.db.kpi.KpiAssess"> |
fw-morax-domain/src/main/java/cn/fw/morax/domain/db/kpi/KpiAssess.java
@@ -6,6 +6,7 @@ import cn.fw.common.data.mybatis.handler.LongListTypeHandler; | @@ -6,6 +6,7 @@ import cn.fw.common.data.mybatis.handler.LongListTypeHandler; | ||
6 | import cn.fw.common.data.mybatis.handler.StringListTypeHandler; | 6 | import cn.fw.common.data.mybatis.handler.StringListTypeHandler; |
7 | import cn.fw.morax.domain.enums.KpiAssessTypeEnum; | 7 | import cn.fw.morax.domain.enums.KpiAssessTypeEnum; |
8 | import com.baomidou.mybatisplus.annotation.TableField; | 8 | import com.baomidou.mybatisplus.annotation.TableField; |
9 | +import com.baomidou.mybatisplus.annotation.TableLogic; | ||
9 | import com.baomidou.mybatisplus.annotation.TableName; | 10 | import com.baomidou.mybatisplus.annotation.TableName; |
10 | import lombok.Data; | 11 | import lombok.Data; |
11 | import lombok.EqualsAndHashCode; | 12 | import lombok.EqualsAndHashCode; |
@@ -67,6 +68,7 @@ public class KpiAssess extends BaseAuditableEntity<KpiAssess, Long> { | @@ -67,6 +68,7 @@ public class KpiAssess extends BaseAuditableEntity<KpiAssess, Long> { | ||
67 | /** | 68 | /** |
68 | * 逻辑删除 | 69 | * 逻辑删除 |
69 | */ | 70 | */ |
71 | + @TableLogic | ||
70 | private Boolean yn; | 72 | private Boolean yn; |
71 | 73 | ||
72 | /** | 74 | /** |
fw-morax-domain/src/main/java/cn/fw/morax/domain/db/kpi/KpiAssessDetail.java
@@ -4,6 +4,7 @@ import cn.fw.common.data.entity.BaseAuditableEntity; | @@ -4,6 +4,7 @@ import cn.fw.common.data.entity.BaseAuditableEntity; | ||
4 | import cn.fw.common.data.entity.BaseAuditableTimeEntity; | 4 | import cn.fw.common.data.entity.BaseAuditableTimeEntity; |
5 | import cn.fw.common.data.mybatis.handler.StringListTypeHandler; | 5 | import cn.fw.common.data.mybatis.handler.StringListTypeHandler; |
6 | import com.baomidou.mybatisplus.annotation.TableField; | 6 | import com.baomidou.mybatisplus.annotation.TableField; |
7 | +import com.baomidou.mybatisplus.annotation.TableLogic; | ||
7 | import com.baomidou.mybatisplus.annotation.TableName; | 8 | import com.baomidou.mybatisplus.annotation.TableName; |
8 | import lombok.Data; | 9 | import lombok.Data; |
9 | import lombok.EqualsAndHashCode; | 10 | import lombok.EqualsAndHashCode; |
@@ -109,6 +110,7 @@ public class KpiAssessDetail extends BaseAuditableTimeEntity<KpiAssessDetail, Lo | @@ -109,6 +110,7 @@ public class KpiAssessDetail extends BaseAuditableTimeEntity<KpiAssessDetail, Lo | ||
109 | /** | 110 | /** |
110 | * 逻辑删除 | 111 | * 逻辑删除 |
111 | */ | 112 | */ |
113 | + @TableLogic | ||
112 | private Boolean yn; | 114 | private Boolean yn; |
113 | 115 | ||
114 | 116 |
fw-morax-domain/src/main/java/cn/fw/morax/domain/db/kpi/KpiAssessPenalty.java
1 | package cn.fw.morax.domain.db.kpi; | 1 | package cn.fw.morax.domain.db.kpi; |
2 | 2 | ||
3 | import cn.fw.common.data.entity.BaseAuditableTimeEntity; | 3 | import cn.fw.common.data.entity.BaseAuditableTimeEntity; |
4 | +import com.baomidou.mybatisplus.annotation.TableLogic; | ||
4 | import com.baomidou.mybatisplus.annotation.TableName; | 5 | import com.baomidou.mybatisplus.annotation.TableName; |
5 | import lombok.*; | 6 | import lombok.*; |
6 | import lombok.experimental.Accessors; | 7 | import lombok.experimental.Accessors; |
@@ -119,6 +120,7 @@ public class KpiAssessPenalty extends BaseAuditableTimeEntity<KpiAssessPenalty, | @@ -119,6 +120,7 @@ public class KpiAssessPenalty extends BaseAuditableTimeEntity<KpiAssessPenalty, | ||
119 | /** | 120 | /** |
120 | * 逻辑删除 | 121 | * 逻辑删除 |
121 | */ | 122 | */ |
123 | + @TableLogic | ||
122 | private Boolean yn; | 124 | private Boolean yn; |
123 | 125 | ||
124 | } | 126 | } |
fw-morax-service/src/main/java/cn/fw/morax/service/biz/kpi/KpiAssessBizService.java
@@ -269,15 +269,24 @@ public class KpiAssessBizService { | @@ -269,15 +269,24 @@ public class KpiAssessBizService { | ||
269 | KpiAssess kpiAssess = new KpiAssess(); | 269 | KpiAssess kpiAssess = new KpiAssess(); |
270 | if (PublicUtil.isNotEmpty(dto.getId())) { | 270 | if (PublicUtil.isNotEmpty(dto.getId())) { |
271 | kpiAssess.setId(dto.getId()); | 271 | kpiAssess.setId(dto.getId()); |
272 | + } else { | ||
273 | + kpiAssess.setCreateBy(dto.getUserId()); | ||
272 | } | 274 | } |
273 | kpiAssess.setType(dto.getType()); | 275 | kpiAssess.setType(dto.getType()); |
274 | kpiAssess.setPostId(dto.getPostId()); | 276 | kpiAssess.setPostId(dto.getPostId()); |
275 | kpiAssess.setPostName(dto.getPostName()); | 277 | kpiAssess.setPostName(dto.getPostName()); |
276 | kpiAssess.setShopIds(dto.getShopIds()); | 278 | kpiAssess.setShopIds(dto.getShopIds()); |
277 | kpiAssess.setShopNames(dto.getShopNames()); | 279 | kpiAssess.setShopNames(dto.getShopNames()); |
280 | + if (KpiAssessTypeEnum.STAR_D.equals(dto.getType())) { | ||
281 | + kpiAssess.setRank(0); | ||
282 | + } else { | ||
283 | + kpiAssess.setRank(dto.getRank()); | ||
284 | + } | ||
278 | kpiAssess.setRank(dto.getRank()); | 285 | kpiAssess.setRank(dto.getRank()); |
279 | kpiAssess.setGroupId(dto.getGroupId()); | 286 | kpiAssess.setGroupId(dto.getGroupId()); |
280 | kpiAssess.setYn(Boolean.TRUE); | 287 | kpiAssess.setYn(Boolean.TRUE); |
288 | + kpiAssess.setBackup(Boolean.FALSE); | ||
289 | + kpiAssess.setUpdateBy(dto.getUserId()); | ||
281 | return kpiAssess; | 290 | return kpiAssess; |
282 | } | 291 | } |
283 | 292 |
fw-morax-service/src/main/java/cn/fw/morax/service/biz/kpi/KpiCalculateAssessService.java
@@ -28,6 +28,7 @@ import com.google.common.collect.Lists; | @@ -28,6 +28,7 @@ import com.google.common.collect.Lists; | ||
28 | import lombok.Getter; | 28 | import lombok.Getter; |
29 | import lombok.RequiredArgsConstructor; | 29 | import lombok.RequiredArgsConstructor; |
30 | import lombok.extern.slf4j.Slf4j; | 30 | import lombok.extern.slf4j.Slf4j; |
31 | +import org.apache.rocketmq.common.filter.impl.Op; | ||
31 | import org.springframework.beans.factory.annotation.Value; | 32 | import org.springframework.beans.factory.annotation.Value; |
32 | import org.springframework.data.redis.core.BoundSetOperations; | 33 | import org.springframework.data.redis.core.BoundSetOperations; |
33 | import org.springframework.data.redis.core.StringRedisTemplate; | 34 | import org.springframework.data.redis.core.StringRedisTemplate; |
@@ -339,7 +340,11 @@ public class KpiCalculateAssessService { | @@ -339,7 +340,11 @@ public class KpiCalculateAssessService { | ||
339 | return Boolean.FALSE; | 340 | return Boolean.FALSE; |
340 | } | 341 | } |
341 | for (KpiPool pool : pools) { | 342 | for (KpiPool pool : pools) { |
342 | - BigDecimal rankDiff = new BigDecimal(rank - pool.getAssessRank()).abs(); | 343 | + Optional<Integer> assessRank = Optional.ofNullable(pool.getAssessRank()); |
344 | + BigDecimal rankDiff = BigDecimal.ZERO; | ||
345 | + if (assessRank.isPresent()) { | ||
346 | + rankDiff = new BigDecimal(rank - assessRank.get()); | ||
347 | + } | ||
343 | log.info("人员质量评测计算排名差,目标排名:{},绩效池:{},结果:{}", rank, JSON.toJSONString(pool), rankDiff); | 348 | log.info("人员质量评测计算排名差,目标排名:{},绩效池:{},结果:{}", rank, JSON.toJSONString(pool), rankDiff); |
344 | //奖励 | 349 | //奖励 |
345 | if (rankDiff.compareTo(BigDecimal.ZERO) > 0) { | 350 | if (rankDiff.compareTo(BigDecimal.ZERO) > 0) { |
@@ -352,10 +357,10 @@ public class KpiCalculateAssessService { | @@ -352,10 +357,10 @@ public class KpiCalculateAssessService { | ||
352 | } | 357 | } |
353 | //处罚 | 358 | //处罚 |
354 | if (rankDiff.compareTo(BigDecimal.ZERO) < 0) { | 359 | if (rankDiff.compareTo(BigDecimal.ZERO) < 0) { |
355 | - BigDecimal poolPenaltyScore = rankDiff.multiply(penaltyScore); | 360 | + BigDecimal poolPenaltyScore = rankDiff.multiply(penaltyScore).abs(); |
356 | poolPenaltyScore = (poolPenaltyScore.compareTo(capPersonPenaltyScore) > 0) ? poolPenaltyScore : capPersonPenaltyScore; | 361 | poolPenaltyScore = (poolPenaltyScore.compareTo(capPersonPenaltyScore) > 0) ? poolPenaltyScore : capPersonPenaltyScore; |
357 | 362 | ||
358 | - BigDecimal poolPenaltyMoney = rankDiff.multiply(penaltyMoney); | 363 | + BigDecimal poolPenaltyMoney = rankDiff.multiply(penaltyMoney).abs(); |
359 | poolPenaltyMoney = (poolPenaltyMoney.compareTo(capPersonPenaltyMoney) > 0) ? poolPenaltyMoney : capPersonPenaltyMoney; | 364 | poolPenaltyMoney = (poolPenaltyMoney.compareTo(capPersonPenaltyMoney) > 0) ? poolPenaltyMoney : capPersonPenaltyMoney; |
360 | penaltyDetails.add(new KpiAssessPenaltyDetailVO(Boolean.TRUE, pool.getId(), rankDiff, poolPenaltyScore, poolPenaltyMoney)); | 365 | penaltyDetails.add(new KpiAssessPenaltyDetailVO(Boolean.TRUE, pool.getId(), rankDiff, poolPenaltyScore, poolPenaltyMoney)); |
361 | } | 366 | } |