Commit f945186c3da5569f02f4ef4c3402aab4cdbf7d34

Authored by 姜超
1 parent 687a3a0a

feature(*): 修改个人考评

修改个人考评
doc/2023-05-18_update.sql
@@ -9,3 +9,26 @@ ALTER TABLE `fw_morax`.`eval_group_user` @@ -9,3 +9,26 @@ ALTER TABLE `fw_morax`.`eval_group_user`
9 ALTER TABLE `fw_morax`.`eval_group_indicator_target_hit_log` 9 ALTER TABLE `fw_morax`.`eval_group_indicator_target_hit_log`
10 ADD COLUMN `extra_reach_value` decimal(18, 4) NULL COMMENT '额外达成目标' AFTER `reach_value`, 10 ADD COLUMN `extra_reach_value` decimal(18, 4) NULL COMMENT '额外达成目标' AFTER `reach_value`,
11 ADD COLUMN `use_target` tinyint(4) NULL DEFAULT 1 COMMENT '考评使用目标; 1:无目标 2:第一目标 3:额外目标值' AFTER `extra_reach_value`; 11 ADD COLUMN `use_target` tinyint(4) NULL DEFAULT 1 COMMENT '考评使用目标; 1:无目标 2:第一目标 3:额外目标值' AFTER `extra_reach_value`;
  12 +
  13 +
  14 +CREATE TABLE `eval_reward_dist` (
  15 +`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  16 +`user_id` bigint(20) NOT NULL COMMENT '用户id',
  17 +`eval_group_rank_id` bigint(20) NOT NULL COMMENT '考评排名组id',
  18 +`eval_group_rank_stage_id` bigint(20) NOT NULL COMMENT '考评排名组阶段id',
  19 +`eval_group_id` bigint(20) NOT NULL COMMENT '考评组id',
  20 +`eval_group_rank_name` varchar(255) DEFAULT NULL COMMENT '考评排名组名称',
  21 +`eval_group_rank_stage_name` varchar(255) DEFAULT NULL COMMENT '考评排名组阶段名称',
  22 +`begin_time` date DEFAULT NULL COMMENT '阶段开始时间',
  23 +`over_time` date DEFAULT NULL COMMENT '阶段结束时间',
  24 +`eval_shop_pool_ids` varchar(512) NOT NULL COMMENT '门店考评池id',
  25 +`shop_ids` varchar(512) NOT NULL COMMENT '门店id',
  26 +`reward` decimal(18,2) NOT NULL COMMENT '考评奖惩',
  27 +`status` tinyint(4) DEFAULT NULL COMMENT '状态',
  28 +`group_id` bigint(20) NOT NULL COMMENT '集团id',
  29 +`yn` tinyint(1) DEFAULT '1' COMMENT '逻辑删除',
  30 +`create_time` datetime DEFAULT NULL COMMENT '创建时间',
  31 +`update_time` datetime DEFAULT NULL COMMENT '更新时间',
  32 +PRIMARY KEY (`id`),
  33 +KEY `eval_pool_salary_group_id_index` (`eval_shop_pool_ids`)
  34 +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='考评门店奖惩分配';
12 \ No newline at end of file 35 \ No newline at end of file
fw-morax-common/src/main/java/cn/fw/morax/common/constant/Constant.java
@@ -54,7 +54,7 @@ public class Constant { @@ -54,7 +54,7 @@ public class Constant {
54 /** 54 /**
55 * 时间分隔符 55 * 时间分隔符
56 */ 56 */
57 - public final static String TIME_SEPARATOR = "—"; 57 + public final static String TIME_SEPARATOR = "—";
58 58
59 /** 59 /**
60 * 薪酬报表车系名称 60 * 薪酬报表车系名称
fw-morax-domain/src/main/java/cn/fw/morax/domain/db/eval/EvalRewardDist.java
@@ -50,10 +50,10 @@ public class EvalRewardDist extends BaseAuditableTimeEntity<EvalRewardDist, Long @@ -50,10 +50,10 @@ public class EvalRewardDist extends BaseAuditableTimeEntity<EvalRewardDist, Long
50 */ 50 */
51 private Long evalGroupRankStageId; 51 private Long evalGroupRankStageId;
52 52
53 - /**  
54 - * 考评组名称  
55 - */  
56 - private String evalGroupName; 53 +// /**
  54 +// * 考评组名称
  55 +// */
  56 +// private String evalGroupName;
57 /** 57 /**
58 * 考评排名组名称 58 * 考评排名组名称
59 */ 59 */
fw-morax-domain/src/main/java/cn/fw/morax/domain/vo/eval/EvalShopPoolVO.java
@@ -29,6 +29,10 @@ public class EvalShopPoolVO { @@ -29,6 +29,10 @@ public class EvalShopPoolVO {
29 29
30 private static final long serialVersionUID = 1L; 30 private static final long serialVersionUID = 1L;
31 /** 31 /**
  32 + * id
  33 + */
  34 + private Long id;
  35 + /**
32 * 考评组编码 36 * 考评组编码
33 */ 37 */
34 private String egc; 38 private String egc;
@@ -71,6 +75,16 @@ public class EvalShopPoolVO { @@ -71,6 +75,16 @@ public class EvalShopPoolVO {
71 private BigDecimal scoreRatio; 75 private BigDecimal scoreRatio;
72 76
73 /** 77 /**
  78 + * 绩效总分
  79 + */
  80 + private BigDecimal totalScore;
  81 +
  82 + /**
  83 + * 考评得分率(格式化)
  84 + */
  85 + private String scoreRatioFormat;
  86 +
  87 + /**
74 * 排名 88 * 排名
75 */ 89 */
76 private Integer rank; 90 private Integer rank;
fw-morax-service/src/main/java/cn/fw/morax/service/biz/ApprovalBizService.java
@@ -525,9 +525,8 @@ public class ApprovalBizService { @@ -525,9 +525,8 @@ public class ApprovalBizService {
525 .approvalNo(flowVal.getEvalShopReward()) 525 .approvalNo(flowVal.getEvalShopReward())
526 .briefContent(Lists.newArrayList( 526 .briefContent(Lists.newArrayList(
527 "申请人:" + user.getUserName(), 527 "申请人:" + user.getUserName(),
528 - "考评/活动名称:" + user.getUserName(),  
529 - "考评类型:" + rewardDist.getEvalType().getName(),  
530 - "考评组:" + rewardDist.getEvalGroupName(), 528 + "考评排名组:" + rewardDist.getEvalGroupRankName(),
  529 + "考评排名组阶段:" + rewardDist.getEvalGroupRankStageName(),
531 "门店奖惩金额:" + rewardDist.getReward(), 530 "门店奖惩金额:" + rewardDist.getReward(),
532 "申请时间:" + DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm").format(LocalDateTime.now()) 531 "申请时间:" + DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm").format(LocalDateTime.now())
533 )) 532 ))
fw-morax-service/src/main/java/cn/fw/morax/service/biz/eval/EvalGroupPoolService.java
@@ -94,10 +94,6 @@ public class EvalGroupPoolService { @@ -94,10 +94,6 @@ public class EvalGroupPoolService {
94 this.setShopRewardDetails(evalShopPoolVO, dataDate); 94 this.setShopRewardDetails(evalShopPoolVO, dataDate);
95 evalShopPoolVO.setDataDate(dataDate); 95 evalShopPoolVO.setDataDate(dataDate);
96 96
97 - Eval eval = evalService.getById(pool.getEvalId());  
98 - BV.notNull(pool, "考评池不存在");  
99 - evalShopPoolVO.setEvalType(eval.getType());  
100 -  
101 return evalShopPoolVO; 97 return evalShopPoolVO;
102 } 98 }
103 99
fw-morax-service/src/main/java/cn/fw/morax/service/biz/eval/EvalRewardService.java
@@ -183,13 +183,6 @@ public class EvalRewardService { @@ -183,13 +183,6 @@ public class EvalRewardService {
183 @Transactional(rollbackFor = Exception.class) 183 @Transactional(rollbackFor = Exception.class)
184 public void sendDistRewardTodo(List<EvalGroupRewardDim> shopRewardDims, EvalGroup evalGroup, 184 public void sendDistRewardTodo(List<EvalGroupRewardDim> shopRewardDims, EvalGroup evalGroup,
185 EvalGroupRank evalGroupRank, EvalGroupRankStage evalGroupRankStage) { 185 EvalGroupRank evalGroupRank, EvalGroupRankStage evalGroupRankStage) {
186 - String evalGroupRankName = evalGroupRank.getName();  
187 - DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd");  
188 - String beginTimeStr = dtf.format(evalGroupRankStage.getBeginTime());  
189 - String endTimeStr = dtf.format(evalGroupRankStage.getOverTime());  
190 - String timeStr = beginTimeStr + Constant.TIME_SEPARATOR + endTimeStr;  
191 - String evalGroupRankStageName = (evalGroupRank.getMultiStage()) ? evalGroupRankStage.getName() : "---";  
192 -  
193 List<BacklogBatchPlanItemReqDTO> itemList = new ArrayList<>(); 186 List<BacklogBatchPlanItemReqDTO> itemList = new ArrayList<>();
194 List<Long> distPoolIds = new ArrayList<>(); 187 List<Long> distPoolIds = new ArrayList<>();
195 for (EvalGroupRewardDim rewardDim : shopRewardDims) { 188 for (EvalGroupRewardDim rewardDim : shopRewardDims) {
@@ -232,7 +225,7 @@ public class EvalRewardService { @@ -232,7 +225,7 @@ public class EvalRewardService {
232 rewardDist.setReward(reward); 225 rewardDist.setReward(reward);
233 evalRewardDistService.save(rewardDist); 226 evalRewardDistService.save(rewardDist);
234 BacklogBatchPlanItemReqDTO planItemReq = this.createBacklog(rewardDist, user.getUserId()); 227 BacklogBatchPlanItemReqDTO planItemReq = this.createBacklog(rewardDist, user.getUserId());
235 - planItemReq.setDynamicMap(rewardDistDynamicMap(rewardDist, evalGroupRankName, evalGroupRankStageName, timeStr)); 228 + planItemReq.setDynamicMap(rewardDistDynamicMap(rewardDist, evalGroupRank, evalGroupRankStage));
236 itemList.add(planItemReq); 229 itemList.add(planItemReq);
237 } 230 }
238 } 231 }
@@ -268,10 +261,16 @@ public class EvalRewardService { @@ -268,10 +261,16 @@ public class EvalRewardService {
268 return planItemReq; 261 return planItemReq;
269 } 262 }
270 263
271 - public Map<String, String> rewardDistDynamicMap(EvalRewardDist rewardDist, String evalGroupRankName, String evalGroupRankStageName, String timeStr) { 264 + public Map<String, String> rewardDistDynamicMap(EvalRewardDist rewardDist, EvalGroupRank evalGroupRank, EvalGroupRankStage evalGroupRankStage) {
  265 + DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd");
  266 + String beginTimeStr = dtf.format(rewardDist.getBeginTime());
  267 + String endTimeStr = dtf.format(rewardDist.getOverTime());
  268 + String timeStr = beginTimeStr + Constant.TIME_SEPARATOR + endTimeStr;
  269 + String evalGroupRankStageName = (evalGroupRank.getMultiStage()) ? evalGroupRankStage.getName() : "---";
  270 +
272 DecimalFormat decimalFormat = new DecimalFormat("##########.##"); 271 DecimalFormat decimalFormat = new DecimalFormat("##########.##");
273 Map<String, String> dynamicMap = new HashMap<>(8); 272 Map<String, String> dynamicMap = new HashMap<>(8);
274 - dynamicMap.put("evalGroupRankName", evalGroupRankName); 273 + dynamicMap.put("evalGroupRankName", evalGroupRank.getName());
275 dynamicMap.put("evalGroupRankStageName", evalGroupRankStageName); 274 dynamicMap.put("evalGroupRankStageName", evalGroupRankStageName);
276 dynamicMap.put("evalGroupRankStageTime", timeStr); 275 dynamicMap.put("evalGroupRankStageTime", timeStr);
277 dynamicMap.put("amount", decimalFormat.format(rewardDist.getReward())); 276 dynamicMap.put("amount", decimalFormat.format(rewardDist.getReward()));