Commit 9161579f525cdadba9d0e47d37ef1f04ab1f7f4c
1 parent
c4a10f17
feature(*): 排名返回名称
排名返回名称
Showing
13 changed files
with
130 additions
and
16 deletions
doc/2023_update.sql
... | ... | @@ -4,6 +4,7 @@ ALTER TABLE `fw_morax`.`eval_group_reward_ladders` |
4 | 4 | |
5 | 5 | CREATE TABLE `eval_group_reward_rank_log` ( |
6 | 6 | `id` bigint(20) NOT NULL AUTO_INCREMENT, |
7 | + `name` varchar(512) NOT NULL COMMENT '名称', | |
7 | 8 | `pool_id` bigint(20) DEFAULT NULL COMMENT '人员id 、门店id', |
8 | 9 | `scope_type` tinyint(4) NOT NULL COMMENT '考评范围; 1:门店考评 2:人员考评', |
9 | 10 | `refer_id` bigint(20) DEFAULT NULL COMMENT '考评奖惩 前置条件 配置id', |
... | ... | @@ -11,6 +12,7 @@ CREATE TABLE `eval_group_reward_rank_log` ( |
11 | 12 | `value` decimal(18,4) DEFAULT NULL COMMENT '原始值', |
12 | 13 | `reach_value` decimal(18,4) DEFAULT NULL COMMENT '达成目标', |
13 | 14 | `rank` int(10) DEFAULT NULL COMMENT '排名', |
15 | + `hit` tinyint(1) DEFAULT NULL COMMENT '是否命中', | |
14 | 16 | `data_date` date NOT NULL COMMENT '数据日期', |
15 | 17 | `group_id` bigint(20) NOT NULL COMMENT '集团', |
16 | 18 | `create_time` datetime DEFAULT NULL, | ... | ... |
fw-morax-dao/src/main/java/cn/fw/morax/dao/eval/EvalGroupRewardHitLogDao.java
... | ... | @@ -2,7 +2,12 @@ package cn.fw.morax.dao.eval; |
2 | 2 | |
3 | 3 | |
4 | 4 | import cn.fw.morax.domain.db.eval.EvalGroupRewardHitLog; |
5 | +import cn.fw.morax.domain.vo.eval.EvalGroupRewardHitLogVO; | |
5 | 6 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
7 | +import org.apache.ibatis.annotations.Param; | |
8 | + | |
9 | +import java.time.LocalDate; | |
10 | +import java.util.List; | |
6 | 11 | |
7 | 12 | /** |
8 | 13 | * <p> |
... | ... | @@ -14,4 +19,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
14 | 19 | */ |
15 | 20 | public interface EvalGroupRewardHitLogDao extends BaseMapper<EvalGroupRewardHitLog> { |
16 | 21 | |
22 | + List<EvalGroupRewardHitLogVO> getUserHitLogs(@Param("evalGroupRewardId")Long evalGroupRewardId, @Param("dataDate")LocalDate dataDate); | |
23 | + | |
24 | + List<EvalGroupRewardHitLogVO> getShopHitLogs(@Param("evalGroupRewardId")Long evalGroupRewardId, @Param("dataDate")LocalDate dataDate); | |
25 | + | |
17 | 26 | } | ... | ... |
fw-morax-dao/src/main/resources/mapper/eval/EvalGroupRewardHitLogMapper.xml
... | ... | @@ -2,6 +2,50 @@ |
2 | 2 | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
3 | 3 | <mapper namespace="cn.fw.morax.dao.eval.EvalGroupRewardHitLogDao"> |
4 | 4 | |
5 | + <select id="getUserHitLogs" resultType="cn.fw.morax.domain.vo.eval.EvalGroupRewardHitLogVO"> | |
6 | + SELECT | |
7 | + t1.id, | |
8 | + t1.pool_id, | |
9 | + t1.eval_group_reward_id, | |
10 | + t1.eval_group_reward_ladders_id, | |
11 | + t1.scope_type, | |
12 | + t1.reward_value, | |
13 | + t1.hit_ladder_value, | |
14 | + t1.hit_commission_value, | |
15 | + t1.proportion_value, | |
16 | + t1.data_date, | |
17 | + t1.group_id, | |
18 | + t2.name | |
19 | + FROM | |
20 | + eval_group_reward_hit_log t1 | |
21 | + LEFT JOIN eval_user_pool t2 ON t1.pool_id = t2.id | |
22 | + WHERE | |
23 | + t1.eval_group_reward_id = #{evalGroupRewardId} | |
24 | + AND t1.data_date = #{dataDate} | |
25 | + AND t1.yn = 1 | |
26 | + </select> | |
5 | 27 | |
28 | + <select id="getShopHitLogs" resultType="cn.fw.morax.domain.vo.eval.EvalGroupRewardHitLogVO"> | |
29 | + SELECT | |
30 | + t1.id, | |
31 | + t1.pool_id, | |
32 | + t1.eval_group_reward_id, | |
33 | + t1.eval_group_reward_ladders_id, | |
34 | + t1.scope_type, | |
35 | + t1.reward_value, | |
36 | + t1.hit_ladder_value, | |
37 | + t1.hit_commission_value, | |
38 | + t1.proportion_value, | |
39 | + t1.data_date, | |
40 | + t1.group_id, | |
41 | + t2.name | |
42 | + FROM | |
43 | + eval_group_reward_hit_log t1 | |
44 | + LEFT JOIN eval_user_pool t2 ON t1.pool_id = t2.id | |
45 | + WHERE | |
46 | + t1.eval_group_reward_id = #{evalGroupRewardId} | |
47 | + AND t1.data_date = #{dataDate} | |
48 | + AND t1.yn = 1 | |
49 | + </select> | |
6 | 50 | |
7 | 51 | </mapper> |
8 | 52 | \ No newline at end of file | ... | ... |
fw-morax-domain/src/main/java/cn/fw/morax/domain/bo/eval/EvalGroupUserShop.java
fw-morax-domain/src/main/java/cn/fw/morax/domain/db/eval/EvalGroupRewardRankLog.java
fw-morax-domain/src/main/java/cn/fw/morax/domain/vo/eval/EvalGroupRewardHitLogVO.java
1 | 1 | package cn.fw.morax.domain.vo.eval; |
2 | 2 | |
3 | -import cn.fw.common.data.entity.BaseAuditableTimeEntity; | |
3 | +import cn.fw.morax.common.constant.Constant; | |
4 | +import cn.fw.morax.domain.enums.DataTypeEnum; | |
4 | 5 | import cn.fw.morax.domain.enums.EvalScopeEnum; |
5 | -import com.baomidou.mybatisplus.annotation.TableName; | |
6 | -import lombok.*; | |
6 | +import cn.fw.morax.domain.enums.TargetTypeEnum; | |
7 | +import lombok.Data; | |
7 | 8 | |
8 | 9 | import java.math.BigDecimal; |
9 | 10 | import java.time.LocalDate; |
... | ... | @@ -24,6 +25,10 @@ public class EvalGroupRewardHitLogVO { |
24 | 25 | */ |
25 | 26 | private Long id; |
26 | 27 | /** |
28 | + * 名称 | |
29 | + */ | |
30 | + private String name; | |
31 | + /** | |
27 | 32 | * 员工id |
28 | 33 | */ |
29 | 34 | private Long poolId; |
... | ... | @@ -68,4 +73,14 @@ public class EvalGroupRewardHitLogVO { |
68 | 73 | * 逻辑删除 |
69 | 74 | */ |
70 | 75 | private Boolean yn; |
76 | + | |
77 | + | |
78 | + /** | |
79 | + * 转换为百分数展示 | |
80 | + */ | |
81 | + public void convertValueToPercent(){ | |
82 | + this.setProportionValue(this.getProportionValue().multiply(Constant.ONE_HUNDRED)); | |
83 | + } | |
84 | + | |
85 | + | |
71 | 86 | } | ... | ... |
fw-morax-domain/src/main/java/cn/fw/morax/domain/vo/eval/EvalGroupRewardRankLogVO.java
fw-morax-server/src/main/java/cn/fw/morax/server/controller/app/EvalPoolController.java
... | ... | @@ -14,7 +14,6 @@ import cn.fw.morax.domain.enums.EvalScopeEnum; |
14 | 14 | import cn.fw.morax.domain.vo.SelectorVO; |
15 | 15 | import cn.fw.morax.domain.vo.eval.*; |
16 | 16 | import cn.fw.morax.domain.vo.kpi.KpiIndicatorRankVO; |
17 | -import cn.fw.morax.service.biz.SettingDraftBizService; | |
18 | 17 | import cn.fw.morax.service.biz.eval.*; |
19 | 18 | import cn.fw.security.auth.client.annotation.Authorization; |
20 | 19 | import cn.fw.security.auth.client.annotation.IgnoreAuth; |
... | ... | @@ -28,9 +27,6 @@ import org.springframework.web.bind.annotation.*; |
28 | 27 | import javax.validation.constraints.NotNull; |
29 | 28 | import java.time.LocalDate; |
30 | 29 | import java.time.YearMonth; |
31 | -import java.time.temporal.ChronoField; | |
32 | -import java.time.temporal.TemporalAdjuster; | |
33 | -import java.time.temporal.TemporalAdjusters; | |
34 | 30 | import java.util.List; |
35 | 31 | import java.util.Objects; |
36 | 32 | import java.util.Set; |
... | ... | @@ -234,12 +230,16 @@ public class EvalPoolController { |
234 | 230 | */ |
235 | 231 | @GetMapping("/reward-proportion") |
236 | 232 | @ControllerMethod("门店、人员考评奖惩占比") |
237 | - public Message<List<EvalGroupRewardHitLogVO>> queryRewardProportion(Long evalGroupRewardId, | |
233 | + public Message<List<EvalGroupRewardHitLogVO>> queryUserRewardProportion(@NotNull(message = "奖惩id不能为空") Long evalGroupRewardId, | |
234 | + @NotNull(message = "类型不能为空") Integer scopeType, | |
238 | 235 | @NotNull(message = "日期不能为空") @RequestParam("dataDate") LocalDate dataDate) { |
239 | - return success(evalGroupPoolService.queryRewardProportion(evalGroupRewardId, dataDate)); | |
236 | + EvalScopeEnum scopeTypeEnum = EvalScopeEnum.ofValue(scopeType); | |
237 | + BV.notNull(scopeTypeEnum, "参数错误"); | |
238 | + return success(evalGroupPoolService.queryRewardProportion(scopeTypeEnum, evalGroupRewardId, dataDate)); | |
240 | 239 | } |
241 | 240 | |
242 | 241 | |
242 | + | |
243 | 243 | /** |
244 | 244 | * 门店考评池列表 |
245 | 245 | * | ... | ... |
fw-morax-service/src/main/java/cn/fw/morax/service/biz/calculator/eval/reward/EvalRewardBaseCalculator.java
... | ... | @@ -468,6 +468,7 @@ public abstract class EvalRewardBaseCalculator implements Calculator<EvalGroupUs |
468 | 468 | } |
469 | 469 | EvalGroupRewardRankLog rankLog = EvalGroupRewardRankLog.builder() |
470 | 470 | .poolId(userShop.getPoolId()) |
471 | + .name(userShop.getName()) | |
471 | 472 | .scopeType(userShop.getScopeType()) |
472 | 473 | .referId(evalGroupRewardId) |
473 | 474 | .targetType(RankIndicatorTypeEnum.REWARD_COMMISSION) |
... | ... | @@ -505,6 +506,7 @@ public abstract class EvalRewardBaseCalculator implements Calculator<EvalGroupUs |
505 | 506 | } |
506 | 507 | |
507 | 508 | EvalGroupRewardRankLog rankLog = EvalGroupRewardRankLog.builder() |
509 | + .name(userShop.getName()) | |
508 | 510 | .poolId(userShop.getPoolId()) |
509 | 511 | .scopeType(userShop.getScopeType()) |
510 | 512 | .referId(preconditionId) |
... | ... | @@ -540,7 +542,7 @@ public abstract class EvalRewardBaseCalculator implements Calculator<EvalGroupUs |
540 | 542 | return; |
541 | 543 | } |
542 | 544 | evalGroupRewardRankLogService.update(Wrappers.<EvalGroupRewardRankLog>lambdaUpdate() |
543 | - .eq(EvalGroupRewardRankLog::getId, matchRankLogs.stream().map(EvalGroupRewardRankLog::getId).collect(Collectors.toList())) | |
545 | + .in(EvalGroupRewardRankLog::getId, matchRankLogs.stream().map(EvalGroupRewardRankLog::getId).collect(Collectors.toList())) | |
544 | 546 | .set(EvalGroupRewardRankLog::getHit, Boolean.TRUE) |
545 | 547 | ); |
546 | 548 | } | ... | ... |
fw-morax-service/src/main/java/cn/fw/morax/service/biz/eval/EvalCalculateService.java
... | ... | @@ -413,6 +413,7 @@ public class EvalCalculateService { |
413 | 413 | |
414 | 414 | public EvalGroupUserShop convertBO(EvalGroupUser user, EvalUserPool userPool) { |
415 | 415 | EvalGroupUserShop userShop = new EvalGroupUserShop(); |
416 | + userShop.setName(user.getUserName()); | |
416 | 417 | userShop.setScopeType(EvalScopeEnum.STAFF); |
417 | 418 | userShop.setEvalGroupId(user.getEvalGroupId()); |
418 | 419 | userShop.setPoolId(userPool.getId()); |
... | ... | @@ -426,6 +427,7 @@ public class EvalCalculateService { |
426 | 427 | |
427 | 428 | public EvalGroupUserShop convertBO(EvalShopPool shopPool, EvalGroup evalGroup, LocalDate dataDate) { |
428 | 429 | EvalGroupUserShop userShop = new EvalGroupUserShop(); |
430 | + userShop.setName(shopPool.getShopName()); | |
429 | 431 | userShop.setReferId(shopPool.getShopId()); |
430 | 432 | userShop.setPoolId(shopPool.getId()); |
431 | 433 | userShop.setScopeType(EvalScopeEnum.SHOP); | ... | ... |
fw-morax-service/src/main/java/cn/fw/morax/service/biz/eval/EvalGroupPoolService.java
... | ... | @@ -65,6 +65,8 @@ public class EvalGroupPoolService { |
65 | 65 | private final IndicatorUserValueService indicatorUserValueService; |
66 | 66 | private final EvalIndicatorValueService evalIndicatorValueService; |
67 | 67 | private final EvalGroupUserService evalGroupUserService; |
68 | + private final EvalGroupRewardService evalGroupRewardService; | |
69 | + private final EvalGroupService evalGroupService; | |
68 | 70 | private final EvalUserPoolService evalUserPoolService; |
69 | 71 | private final EvalShopPoolService evalShopPoolService; |
70 | 72 | private final CommonService commonService; |
... | ... | @@ -1258,12 +1260,14 @@ public class EvalGroupPoolService { |
1258 | 1260 | return rankLogVOs; |
1259 | 1261 | } |
1260 | 1262 | |
1261 | - public List<EvalGroupRewardHitLogVO> queryRewardProportion(Long evalGroupRewardId, LocalDate dataDate) { | |
1262 | - List<EvalGroupRewardHitLog> rewardHitLogs = evalGroupRewardHitLogService.list(Wrappers.<EvalGroupRewardHitLog>lambdaQuery() | |
1263 | - .eq(EvalGroupRewardHitLog::getEvalGroupRewardId, evalGroupRewardId) | |
1264 | - .eq(EvalGroupRewardHitLog::getDataDate, dataDate) | |
1265 | - ); | |
1266 | - List<EvalGroupRewardHitLogVO> hitLogVOS = PublicUtil.copyList(rewardHitLogs, EvalGroupRewardHitLogVO.class); | |
1263 | + public List<EvalGroupRewardHitLogVO> queryRewardProportion(EvalScopeEnum scopeType, Long evalGroupRewardId, LocalDate dataDate) { | |
1264 | + List<EvalGroupRewardHitLogVO> hitLogVOS = null; | |
1265 | + if (EvalScopeEnum.STAFF.equals(scopeType)) { | |
1266 | + hitLogVOS = evalGroupRewardHitLogService.getUserHitLogs(evalGroupRewardId, dataDate); | |
1267 | + } else { | |
1268 | + hitLogVOS = evalGroupRewardHitLogService.getShopHitLogs(evalGroupRewardId, dataDate); | |
1269 | + } | |
1270 | + hitLogVOS.stream().forEach(hitLog -> hitLog.convertValueToPercent()); | |
1267 | 1271 | return hitLogVOS; |
1268 | 1272 | } |
1269 | 1273 | } | ... | ... |
fw-morax-service/src/main/java/cn/fw/morax/service/data/eval/EvalGroupRewardHitLogService.java
... | ... | @@ -3,8 +3,12 @@ package cn.fw.morax.service.data.eval; |
3 | 3 | |
4 | 4 | import cn.fw.morax.domain.db.eval.EvalGroupReward; |
5 | 5 | import cn.fw.morax.domain.db.eval.EvalGroupRewardHitLog; |
6 | +import cn.fw.morax.domain.vo.eval.EvalGroupRewardHitLogVO; | |
6 | 7 | import com.baomidou.mybatisplus.extension.service.IService; |
7 | 8 | |
9 | +import java.time.LocalDate; | |
10 | +import java.util.List; | |
11 | + | |
8 | 12 | /** |
9 | 13 | * <p> |
10 | 14 | * 考评奖惩 服务类 |
... | ... | @@ -15,4 +19,8 @@ import com.baomidou.mybatisplus.extension.service.IService; |
15 | 19 | */ |
16 | 20 | public interface EvalGroupRewardHitLogService extends IService<EvalGroupRewardHitLog> { |
17 | 21 | |
22 | + List<EvalGroupRewardHitLogVO> getUserHitLogs(Long evalGroupRewardId, LocalDate dataDate); | |
23 | + | |
24 | + List<EvalGroupRewardHitLogVO> getShopHitLogs(Long evalGroupRewardId, LocalDate dataDate); | |
25 | + | |
18 | 26 | } | ... | ... |
fw-morax-service/src/main/java/cn/fw/morax/service/data/eval/impl/EvalGroupRewardHitLogServiceImpl.java
... | ... | @@ -5,11 +5,15 @@ import cn.fw.morax.dao.eval.EvalGroupRewardHitLogDao; |
5 | 5 | import cn.fw.morax.dao.eval.EvalGroupRewardTargetHitLogDao; |
6 | 6 | import cn.fw.morax.domain.db.eval.EvalGroupRewardHitLog; |
7 | 7 | import cn.fw.morax.domain.db.eval.EvalGroupRewardTargetHitLog; |
8 | +import cn.fw.morax.domain.vo.eval.EvalGroupRewardHitLogVO; | |
8 | 9 | import cn.fw.morax.service.data.eval.EvalGroupRewardHitLogService; |
9 | 10 | import cn.fw.morax.service.data.eval.EvalGroupRewardTargetHitLogService; |
10 | 11 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
11 | 12 | import org.springframework.stereotype.Service; |
12 | 13 | |
14 | +import java.time.LocalDate; | |
15 | +import java.util.List; | |
16 | + | |
13 | 17 | /** |
14 | 18 | * <p> |
15 | 19 | * 考评指标达成目标记录 服务实现类 |
... | ... | @@ -23,4 +27,13 @@ public class EvalGroupRewardHitLogServiceImpl |
23 | 27 | extends ServiceImpl<EvalGroupRewardHitLogDao, EvalGroupRewardHitLog> |
24 | 28 | implements EvalGroupRewardHitLogService { |
25 | 29 | |
30 | + @Override | |
31 | + public List<EvalGroupRewardHitLogVO> getUserHitLogs(Long evalGroupRewardId, LocalDate dataDate) { | |
32 | + return this.baseMapper.getUserHitLogs(evalGroupRewardId, dataDate); | |
33 | + } | |
34 | + | |
35 | + @Override | |
36 | + public List<EvalGroupRewardHitLogVO> getShopHitLogs(Long evalGroupRewardId, LocalDate dataDate) { | |
37 | + return this.baseMapper.getShopHitLogs(evalGroupRewardId, dataDate); | |
38 | + } | |
26 | 39 | } | ... | ... |