Commit 347b9a76110e4b7eb917c5b3dc3b24cd27f25ea2
1 parent
c1b3c16f
feature(*): 考评审批
考评审批
Showing
13 changed files
with
359 additions
and
88 deletions
fw-morax-dao/src/main/resources/mapper/eval/EvalShopPoolDao.xml
... | ... | @@ -46,28 +46,26 @@ |
46 | 46 | |
47 | 47 | <select id="queryPagePool" resultType="cn.fw.morax.domain.vo.eval.EvalShopPoolVO"> |
48 | 48 | SELECT |
49 | - t1.id, | |
50 | - t1.eval_id, | |
51 | - t1.egc, | |
52 | - t1.eval_group_id, | |
53 | - t1.shop_id, | |
54 | - t1.shop_name, | |
55 | - t1.reward, | |
56 | - t1.status, | |
57 | - t1.score, | |
58 | - t1.score_ratio, | |
59 | - t1.monthly, | |
60 | - t1.group_id, | |
61 | - t2.name as evalGroupName | |
62 | - from eval_shop_pool t1 | |
63 | - left join eval_group t2 on t1.eval_group_id = t2.id | |
64 | - where t1.yn = 1 | |
65 | - and t1.group_id = #{condition.groupId} | |
49 | + id, | |
50 | + eval_id, | |
51 | + egc, | |
52 | + eval_group_id, | |
53 | + shop_id, | |
54 | + shop_name, | |
55 | + reward, | |
56 | + status, | |
57 | + score, | |
58 | + score_ratio, | |
59 | + monthly, | |
60 | + group_id | |
61 | + from eval_shop_pool | |
62 | + where yn = 1 | |
63 | + and group_id = #{condition.groupId} | |
66 | 64 | <if test="condition.monthly !=null"> |
67 | - and t1.monthly = #{condition.monthly} | |
65 | + and monthly = #{condition.monthly} | |
68 | 66 | </if> |
69 | 67 | <if test="condition.managerShopIds !=null and condition.managerShopIds.size() > 0"> |
70 | - and t1.shop_id in | |
68 | + and shop_id in | |
71 | 69 | <foreach collection="condition.managerShopIds" item="id" index="index" open="(" close=")" separator=","> |
72 | 70 | #{id} |
73 | 71 | </foreach> | ... | ... |
fw-morax-domain/src/main/java/cn/fw/morax/domain/db/eval/EvalRewardDist.java
... | ... | @@ -2,6 +2,8 @@ package cn.fw.morax.domain.db.eval; |
2 | 2 | |
3 | 3 | import cn.fw.common.data.entity.BaseAuditableTimeEntity; |
4 | 4 | import cn.fw.common.data.mybatis.handler.LongListTypeHandler; |
5 | +import cn.fw.morax.domain.enums.EvalRewardDistStatusEnum; | |
6 | +import cn.fw.morax.domain.enums.EvalTypeEnum; | |
5 | 7 | import com.baomidou.mybatisplus.annotation.TableField; |
6 | 8 | import com.baomidou.mybatisplus.annotation.TableLogic; |
7 | 9 | import com.baomidou.mybatisplus.annotation.TableName; |
... | ... | @@ -45,6 +47,22 @@ public class EvalRewardDist extends BaseAuditableTimeEntity<EvalRewardDist, Long |
45 | 47 | */ |
46 | 48 | private Long evalGroupId; |
47 | 49 | |
50 | + | |
51 | + /** | |
52 | + * 考评类型; 1:活动考评 2:其他考评 | |
53 | + */ | |
54 | + private EvalTypeEnum evalType; | |
55 | + | |
56 | + /** | |
57 | + * 考评 | |
58 | + */ | |
59 | + private String evalName; | |
60 | + | |
61 | + /** | |
62 | + * 考评组 | |
63 | + */ | |
64 | + private String evalGroupName; | |
65 | + | |
48 | 66 | /** |
49 | 67 | * 考评组id |
50 | 68 | */ |
... | ... | @@ -65,7 +83,7 @@ public class EvalRewardDist extends BaseAuditableTimeEntity<EvalRewardDist, Long |
65 | 83 | /** |
66 | 84 | * 状态 |
67 | 85 | */ |
68 | - private Integer status; | |
86 | + private EvalRewardDistStatusEnum status; | |
69 | 87 | |
70 | 88 | /** |
71 | 89 | * 集团id | ... | ... |
fw-morax-domain/src/main/java/cn/fw/morax/domain/enums/ApprovalTypeEnum.java
fw-morax-domain/src/main/java/cn/fw/morax/domain/enums/EvalRewardDistStatusEnum.java
0 → 100644
1 | +package cn.fw.morax.domain.enums; | |
2 | + | |
3 | +import com.baomidou.mybatisplus.core.enums.IEnum; | |
4 | +import com.fasterxml.jackson.annotation.JsonCreator; | |
5 | +import com.fasterxml.jackson.annotation.JsonValue; | |
6 | +import lombok.Getter; | |
7 | + | |
8 | +/** | |
9 | + * 考评奖惩分配枚举 | |
10 | + * | |
11 | + * @author kurisu | |
12 | + */ | |
13 | +public enum EvalRewardDistStatusEnum implements IEnum<Integer> { | |
14 | + /** | |
15 | + * 考评奖惩分配枚举 1.未发布 2.发布待审批 3.审批拒绝 4.审批同意 5.撤销审批 | |
16 | + */ | |
17 | + NO_DIST(1, "未发布"), | |
18 | + APPROVAL(2, "发布待审批"), | |
19 | + APPROVAL_REJECT(3, "审批拒绝"), | |
20 | + APPROVAL_AGREE(4, "审批同意"), | |
21 | + APPROVAL_CANCEL(5, "撤销审批"), | |
22 | + ; | |
23 | + | |
24 | + /** | |
25 | + * 值 | |
26 | + */ | |
27 | + private final Integer value; | |
28 | + /** | |
29 | + * 名称 | |
30 | + */ | |
31 | + @Getter | |
32 | + private final String name; | |
33 | + | |
34 | + EvalRewardDistStatusEnum(final Integer value, final String name) { | |
35 | + this.value = value; | |
36 | + this.name = name; | |
37 | + } | |
38 | + | |
39 | + /** | |
40 | + * 根据枚举值获取枚举对象 | |
41 | + */ | |
42 | + @JsonCreator | |
43 | + public static EvalRewardDistStatusEnum ofValue(final Integer value) { | |
44 | + for (final EvalRewardDistStatusEnum _enum : EvalRewardDistStatusEnum.values()) { | |
45 | + if (_enum.value.equals(value)) { | |
46 | + return _enum; | |
47 | + } | |
48 | + } | |
49 | + return null; | |
50 | + } | |
51 | + | |
52 | + /** | |
53 | + * 获取值 | |
54 | + * | |
55 | + * @return 值 | |
56 | + */ | |
57 | + @JsonValue | |
58 | + @Override | |
59 | + public Integer getValue() { | |
60 | + return value; | |
61 | + } | |
62 | + | |
63 | + /** | |
64 | + * 获取描述 | |
65 | + * | |
66 | + * @return 值 | |
67 | + */ | |
68 | + @JsonCreator | |
69 | + public static String getNameByVale(final Integer value) { | |
70 | + for (final EvalRewardDistStatusEnum _enum : EvalRewardDistStatusEnum.values()) { | |
71 | + if (_enum.value.equals(value)) { | |
72 | + return _enum.getName(); | |
73 | + } | |
74 | + } | |
75 | + return ""; | |
76 | + } | |
77 | +} | ... | ... |
fw-morax-rpc/src/main/java/cn/fw/morax/rpc/erp/ErpRpcService.java
... | ... | @@ -7,6 +7,7 @@ import cn.fw.ehr.sdk.api.StaffApi; |
7 | 7 | import cn.fw.ehr.sdk.api.result.*; |
8 | 8 | import cn.fw.erp.sdk.api.UserRoleApi; |
9 | 9 | import cn.fw.erp.sdk.api.enums.AuthStatusEnum; |
10 | +import cn.fw.erp.sdk.api.enums.RoleUseTypeEnum; | |
10 | 11 | import cn.fw.erp.sdk.api.result.UserRoleDataRange; |
11 | 12 | import cn.fw.erp.sdk.api.result.UserRoleInfo; |
12 | 13 | import cn.fw.morax.common.utils.PublicUtil; |
... | ... | @@ -186,4 +187,32 @@ public class ErpRpcService { |
186 | 187 | return Boolean.FALSE; |
187 | 188 | } |
188 | 189 | |
190 | + /** | |
191 | + * 查询人员是否拥有某个角色 | |
192 | + * | |
193 | + * @param userId | |
194 | + * @return | |
195 | + */ | |
196 | + public List<Long> manageShopIds(Long userId) { | |
197 | + try { | |
198 | + Message<List<UserRoleInfo>> msg = userRoleApi.queryUserRoleDetailList(userId); | |
199 | + log.info("获取人员所有角色信息 userRoleApi.queryUserRoleDetailList 传入参数:userId:{} 返回结果:{}", userId, JSON.toJSONString(msg)); | |
200 | + if (msg.isSuccess() && !Objects.isNull(msg.getData())) { | |
201 | + Integer manageRoleType = RoleUseTypeEnum.MANAGE.getValue(); | |
202 | + Integer enableStatus = AuthStatusEnum.ENABLED.getValue(); | |
203 | + | |
204 | + List<Long> manageShopIds = msg.getData().stream() | |
205 | + .filter(userRole -> manageRoleType.equals(userRole.getUseType())) | |
206 | + .flatMap(userRole -> userRole.getDataRangeList().stream()) | |
207 | + .filter(range -> enableStatus.equals(range.getStatus())) | |
208 | + .map(UserRoleDataRange::getRangeValue).distinct() | |
209 | + .collect(Collectors.toList()); | |
210 | + return manageShopIds; | |
211 | + } | |
212 | + } catch (Exception e) { | |
213 | + e.printStackTrace(); | |
214 | + } | |
215 | + return new ArrayList<>(); | |
216 | + } | |
217 | + | |
189 | 218 | } | ... | ... |
fw-morax-server/src/main/java/cn/fw/morax/server/consumer/FlowConsumer.java
... | ... | @@ -7,11 +7,11 @@ import cn.fw.morax.domain.db.ApprovalRecord; |
7 | 7 | import cn.fw.morax.service.biz.ApprovalBizService; |
8 | 8 | import cn.fw.morax.service.biz.eval.EvalGroupBizService; |
9 | 9 | import cn.fw.morax.service.biz.eval.EvalGroupDataService; |
10 | +import cn.fw.morax.service.biz.eval.EvalRewardService; | |
10 | 11 | import cn.fw.morax.service.biz.kpi.KpiGroupBizService; |
11 | 12 | import cn.fw.morax.service.biz.kpi.KpiStarSpecialRuleBizService; |
12 | 13 | import cn.fw.morax.service.biz.salary.IncomeCompensationBizService; |
13 | 14 | import cn.fw.morax.service.biz.salary.SalaryGroupBizService; |
14 | -import cn.fw.morax.service.data.eval.EvalGroupService; | |
15 | 15 | import com.alibaba.fastjson.JSONObject; |
16 | 16 | import lombok.RequiredArgsConstructor; |
17 | 17 | import lombok.extern.slf4j.Slf4j; |
... | ... | @@ -39,6 +39,7 @@ public class FlowConsumer implements RocketMQListener<ApprovalResult> { |
39 | 39 | private final EvalGroupBizService evalGroupBizService; |
40 | 40 | private final KpiGroupBizService kpiGroupBizService; |
41 | 41 | private final ApprovalBizService approvalBizService; |
42 | + private final EvalRewardService evalRewardService; | |
42 | 43 | |
43 | 44 | @Override |
44 | 45 | @Transactional(rollbackFor = Exception.class) |
... | ... | @@ -84,6 +85,10 @@ public class FlowConsumer implements RocketMQListener<ApprovalResult> { |
84 | 85 | evalGroupBizService.approvalEvalConfig(approvalRecord, result); |
85 | 86 | break; |
86 | 87 | } |
88 | + case EVAL_REWARD_DIST: { | |
89 | + evalRewardService.approvalEvalRewardDist(approvalRecord, result); | |
90 | + break; | |
91 | + } | |
87 | 92 | } |
88 | 93 | } |
89 | 94 | ... | ... |
fw-morax-server/src/main/java/cn/fw/morax/server/controller/app/EvalController.java
... | ... | @@ -12,11 +12,9 @@ import cn.fw.morax.domain.dto.eval.EvalDTO; |
12 | 12 | import cn.fw.morax.domain.dto.eval.EvalGroupIndicatorRankDTO; |
13 | 13 | import cn.fw.morax.domain.dto.eval.EvalRewardDistDTO; |
14 | 14 | import cn.fw.morax.domain.dto.query.EvalPoolQueryDTO; |
15 | -import cn.fw.morax.domain.dto.query.KpiPoolQueryDTO; | |
16 | 15 | import cn.fw.morax.domain.vo.SelectorVO; |
17 | 16 | import cn.fw.morax.domain.vo.eval.*; |
18 | 17 | import cn.fw.morax.domain.vo.kpi.KpiIndicatorRankVO; |
19 | -import cn.fw.morax.domain.vo.kpi.KpiPoolVO; | |
20 | 18 | import cn.fw.morax.service.biz.SettingDraftBizService; |
21 | 19 | import cn.fw.morax.service.biz.eval.*; |
22 | 20 | import cn.fw.security.auth.client.annotation.Authorization; |
... | ... | @@ -163,7 +161,7 @@ public class EvalController { |
163 | 161 | public Message<EvalPoolIndicatorDetailVO> getStaffHitIndicatorDetail(@NotNull(message = "考评池id不能为空") Long evalPoolId, |
164 | 162 | @NotNull(message = "指标id不能为空") Long evalGroupIndicatorId, |
165 | 163 | @NotNull(message = "日期不能为空") @RequestParam("dataDate") LocalDate dataDate) { |
166 | - return success(evalGroupPoolService.getHitIndicatorDetail(evalPoolId, evalGroupIndicatorId, dataDate)); | |
164 | + return success(evalGroupPoolService.staffHitIndicatorDetail(evalPoolId, evalGroupIndicatorId, dataDate)); | |
167 | 165 | } |
168 | 166 | |
169 | 167 | /** |
... | ... | @@ -179,20 +177,7 @@ public class EvalController { |
179 | 177 | public Message<EvalPoolRewardDetailVO> getStaffRewardDetail(@NotNull(message = "考评池id不能为空") Long evalPoolId, |
180 | 178 | @NotNull(message = "指标id不能为空") Long evalGroupRewardId, |
181 | 179 | @NotNull(message = "日期不能为空") @RequestParam("dataDate") LocalDate dataDate) { |
182 | - return success(evalGroupPoolService.getStaffRewardDetail(evalPoolId, evalGroupRewardId, dataDate)); | |
183 | - } | |
184 | - | |
185 | - /** | |
186 | - * 门店考评详情查询 | |
187 | - * | |
188 | - * @param evalPoolId 用户id | |
189 | - * @return 绩效池详情 | |
190 | - * @ignoreParams userId | |
191 | - */ | |
192 | - @GetMapping("/shop-pool") | |
193 | - @ControllerMethod("门店考评详情查询") | |
194 | - public Message<EvalShopPoolVO> queryShopPoolDetail(@NotNull(message = "考评池id不能为空") Long evalPoolId) { | |
195 | - return success(evalGroupPoolService.queryShopPoolDetail(evalPoolId)); | |
180 | + return success(evalGroupPoolService.staffHitRewardDetail(evalPoolId, evalGroupRewardId, dataDate)); | |
196 | 181 | } |
197 | 182 | |
198 | 183 | /** |
... | ... | @@ -223,7 +208,7 @@ public class EvalController { |
223 | 208 | * @return |
224 | 209 | * @ignoreParams currentUser |
225 | 210 | */ |
226 | - @GetMapping("/staffs-pool") | |
211 | + @GetMapping("/staff-pools") | |
227 | 212 | @ControllerMethod("人员考评池列表") |
228 | 213 | public Message<AppPage<EvalUserPoolVO>> queryUserPool(@Validated EvalPoolQueryDTO dto) { |
229 | 214 | if (PublicUtil.isEmpty(dto.getMonthly())) { |
... | ... | @@ -249,6 +234,51 @@ public class EvalController { |
249 | 234 | } |
250 | 235 | |
251 | 236 | /** |
237 | + * 门店考评详情查询 | |
238 | + * | |
239 | + * @param evalPoolId 用户id | |
240 | + * @return 绩效池详情 | |
241 | + * @ignoreParams userId | |
242 | + */ | |
243 | + @GetMapping("/shop-pool") | |
244 | + @ControllerMethod("门店考评详情查询") | |
245 | + public Message<EvalShopPoolVO> queryShopPoolDetail(@NotNull(message = "考评池id不能为空") Long evalPoolId) { | |
246 | + return success(evalGroupPoolService.queryShopPoolDetail(evalPoolId)); | |
247 | + } | |
248 | + | |
249 | + /** | |
250 | + * 门店考评得分详情 | |
251 | + * | |
252 | + * @param evalPoolId | |
253 | + * @param evalGroupIndicatorId | |
254 | + * @return | |
255 | + */ | |
256 | + @GetMapping("/shop/score-detail") | |
257 | + @IgnoreAuth | |
258 | + @ControllerMethod("门店考评得分详情") | |
259 | + public Message<EvalPoolIndicatorDetailVO> getShopHitIndicatorDetail(@NotNull(message = "考评池id不能为空") Long evalPoolId, | |
260 | + @NotNull(message = "指标id不能为空") Long evalGroupIndicatorId, | |
261 | + @NotNull(message = "日期不能为空") @RequestParam("dataDate") LocalDate dataDate) { | |
262 | + return success(evalGroupPoolService.shopHitIndicatorDetail(evalPoolId, evalGroupIndicatorId, dataDate)); | |
263 | + } | |
264 | + | |
265 | + /** | |
266 | + * 门店奖惩详情 | |
267 | + * | |
268 | + * @param evalPoolId | |
269 | + * @param evalGroupRewardId | |
270 | + * @return | |
271 | + */ | |
272 | + @GetMapping("/shop/reward-detail") | |
273 | + @IgnoreAuth | |
274 | + @ControllerMethod("门店奖惩详情") | |
275 | + public Message<EvalPoolRewardDetailVO> getShopRewardDetail(@NotNull(message = "考评池id不能为空") Long evalPoolId, | |
276 | + @NotNull(message = "指标id不能为空") Long evalGroupRewardId, | |
277 | + @NotNull(message = "日期不能为空") @RequestParam("dataDate") LocalDate dataDate) { | |
278 | + return success(evalGroupPoolService.shopHitRewardDetail(evalPoolId, evalGroupRewardId, dataDate)); | |
279 | + } | |
280 | + | |
281 | + /** | |
252 | 282 | * 奖惩分配详情 |
253 | 283 | * |
254 | 284 | */ |
... | ... | @@ -264,8 +294,9 @@ public class EvalController { |
264 | 294 | */ |
265 | 295 | @PostMapping("/reward-dist") |
266 | 296 | @ControllerMethod("奖惩分配") |
267 | - public Message<Void> rewardDist(@Validated @RequestBody EvalRewardDistDTO rewardDist) { | |
268 | - evalRewardService.rewardDist(rewardDist); | |
297 | + public Message<Void> rewardDist(@Validated @RequestBody EvalRewardDistDTO rewardDist, | |
298 | + @CurrentUser LoginAuthBean currentUser) { | |
299 | + evalRewardService.rewardDist(rewardDist, currentUser); | |
269 | 300 | return success(); |
270 | 301 | } |
271 | 302 | ... | ... |
fw-morax-service/src/main/java/cn/fw/morax/service/biz/ApprovalBizService.java
... | ... | @@ -3,10 +3,12 @@ package cn.fw.morax.service.biz; |
3 | 3 | import cn.fw.approval.sdk.param.InitiateApprovalParam; |
4 | 4 | import cn.fw.common.web.auth.LoginAuthBean; |
5 | 5 | import cn.fw.morax.common.config.FlowVal; |
6 | +import cn.fw.morax.common.utils.DateUtil; | |
6 | 7 | import cn.fw.morax.common.utils.PublicUtil; |
7 | 8 | import cn.fw.morax.domain.db.ApprovalRecord; |
8 | 9 | import cn.fw.morax.domain.db.SettingDraft; |
9 | 10 | import cn.fw.morax.domain.db.eval.Eval; |
11 | +import cn.fw.morax.domain.db.eval.EvalRewardDist; | |
10 | 12 | import cn.fw.morax.domain.db.kpi.KpiGroup; |
11 | 13 | import cn.fw.morax.domain.db.kpi.KpiStarSpecialRule; |
12 | 14 | import cn.fw.morax.domain.db.salary.SalaryGroup; |
... | ... | @@ -444,4 +446,49 @@ public class ApprovalBizService { |
444 | 446 | approvalRecordService.save(approvalRecord); |
445 | 447 | } |
446 | 448 | |
449 | + /** | |
450 | + * 提交审批 | |
451 | + * | |
452 | + */ | |
453 | + @Transactional(rollbackFor = Exception.class) | |
454 | + public void applyApproveDistReward(EvalRewardDist rewardDist, LoginAuthBean user) { | |
455 | + Date expTime = DateUtil.localDateTime2Date(LocalDate.now().atTime(23, 59, 59).plusDays(3)); | |
456 | + //提交审批 | |
457 | + List<InitiateApprovalParam.Condition> conditions = Lists.newArrayList(); | |
458 | + InitiateApprovalParam.Condition shopCondition = new InitiateApprovalParam.Condition(); | |
459 | + shopCondition.setParamName("shopId"); | |
460 | + List<String> shopIdsStr = rewardDist.getShopIds().stream().map(s -> s.toString()).collect(Collectors.toList()); | |
461 | + shopCondition.setValue(String.join(",", shopIdsStr)); | |
462 | + conditions.add(shopCondition); | |
463 | + Map extDataMap = new HashMap<String, Object>() {{ | |
464 | + put("id", rewardDist.getId().toString()); | |
465 | + }}; | |
466 | + FlowDto flowDto = FlowDto.builder() | |
467 | + .groupId(rewardDist.getGroupId()) | |
468 | + .approvalNo(flowVal.getEvalShopReward()) | |
469 | + .briefContent(Lists.newArrayList( | |
470 | + "申请人:" + user.getUserName(), | |
471 | + "考评/活动名称:" + user.getUserName(), | |
472 | + "考评类型:" + rewardDist.getEvalType().getName(), | |
473 | + "考评组:" + rewardDist.getEvalGroupName(), | |
474 | + "门店奖惩金额:" + rewardDist.getReward(), | |
475 | + "申请时间:" + DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm").format(LocalDateTime.now()) | |
476 | + )) | |
477 | + .initiatorId(user.getUserId()) | |
478 | + .expTime(expTime) | |
479 | + .shopIds(rewardDist.getShopIds()) | |
480 | + .conditions(conditions) | |
481 | + .extData(extDataMap) | |
482 | + .build(); | |
483 | + String approvalNo = flowApproveRpc.initiate(flowDto); | |
484 | + ApprovalRecord approvalRecord = ApprovalRecord.builder() | |
485 | + .approvalNo(approvalNo) | |
486 | + .approvalStatus(ApprovalStatusEnum.IN_APPROVAL) | |
487 | + .approvalType(ApprovalTypeEnum.EVAL_REWARD_DIST) | |
488 | + .dataId(rewardDist.getId()) | |
489 | + .groupId(rewardDist.getGroupId()) | |
490 | + .build(); | |
491 | + approvalRecordService.save(approvalRecord); | |
492 | + } | |
493 | + | |
447 | 494 | } | ... | ... |
fw-morax-service/src/main/java/cn/fw/morax/service/biz/eval/EvalGroupPoolService.java
... | ... | @@ -214,11 +214,8 @@ public class EvalGroupPoolService { |
214 | 214 | BigDecimal indicatorScoreRatio = indicatorValueVO.getScore().divide(baseScore, 2, RoundingMode.DOWN).multiply(Constant.ONE_HUNDRED); |
215 | 215 | indicatorValueVO.setScoreRatioFormat(decimalFormat.format(indicatorScoreRatio)); |
216 | 216 | } |
217 | - BigDecimal staffScoreRatio = (BigDecimal.ZERO.compareTo(totalScore) == 0) ? BigDecimal.ZERO : | |
218 | - staffScore.divide(totalScore, 2, RoundingMode.DOWN).multiply(Constant.ONE_HUNDRED); | |
219 | - pool.setScoreRatioFormat(decimalFormat.format(staffScoreRatio)); | |
217 | + pool.setScoreRatioFormat(decimalFormat.format(pool.getScoreRatio())); | |
220 | 218 | pool.setIndicators(indicatorDetails); |
221 | - pool.setScoreRatio(staffScoreRatio); | |
222 | 219 | pool.setTotalScore(totalScore); |
223 | 220 | } |
224 | 221 | |
... | ... | @@ -309,6 +306,19 @@ public class EvalGroupPoolService { |
309 | 306 | return users.stream().findFirst().get().getDataDate(); |
310 | 307 | } |
311 | 308 | |
309 | + public EvalPoolIndicatorDetailVO staffHitIndicatorDetail(Long evalPoolId, Long evalGroupIndicatorId, LocalDate dataDate) { | |
310 | + EvalUserPool pool = evalUserPoolService.getById(evalPoolId); | |
311 | + BV.notNull(pool, "考评池不存在"); | |
312 | + Long userId = pool.getUserId(); | |
313 | + return getHitIndicatorDetail(evalPoolId, EvalScopeEnum.STAFF, userId, evalGroupIndicatorId, dataDate); | |
314 | + } | |
315 | + | |
316 | + public EvalPoolIndicatorDetailVO shopHitIndicatorDetail(Long evalPoolId, Long evalGroupIndicatorId, LocalDate dataDate) { | |
317 | + EvalShopPool pool = evalShopPoolService.getById(evalPoolId); | |
318 | + BV.notNull(pool, "考评池不存在"); | |
319 | + Long userId = pool.getShopId(); | |
320 | + return getHitIndicatorDetail(evalPoolId, EvalScopeEnum.SHOP, userId, evalGroupIndicatorId, dataDate); | |
321 | + } | |
312 | 322 | |
313 | 323 | /** |
314 | 324 | * 员工考评得分详情 |
... | ... | @@ -317,12 +327,12 @@ public class EvalGroupPoolService { |
317 | 327 | * @param evalGroupIndicatorId |
318 | 328 | * @return |
319 | 329 | */ |
320 | - public EvalPoolIndicatorDetailVO getHitIndicatorDetail(Long evalPoolId, Long evalGroupIndicatorId, LocalDate dataDate) { | |
321 | - EvalUserPool pool = evalUserPoolService.getById(evalPoolId); | |
322 | - Long userId = pool.getUserId(); | |
323 | - EvalScopeEnum scopeType = EvalScopeEnum.STAFF; | |
324 | - BV.notNull(pool, "考评池不存在"); | |
325 | - EvalPoolIndicatorDetailVO indicatorDetail = evalPoolIndicatorDetailService.getStaffIndicatorValue(evalPoolId, evalGroupIndicatorId, dataDate); | |
330 | + public EvalPoolIndicatorDetailVO getHitIndicatorDetail(Long evalPoolId, EvalScopeEnum scopeType, Long referId, Long evalGroupIndicatorId, LocalDate dataDate) { | |
331 | +// EvalUserPool pool = evalUserPoolService.getById(evalPoolId); | |
332 | +// Long userId = pool.getUserId(); | |
333 | +// EvalScopeEnum scopeType = EvalScopeEnum.STAFF; | |
334 | +// BV.notNull(pool, "考评池不存在"); | |
335 | + EvalPoolIndicatorDetailVO indicatorDetail = evalPoolIndicatorDetailService.getStaffIndicatorValue(evalPoolId, scopeType, evalGroupIndicatorId, dataDate); | |
326 | 336 | BV.notNull(indicatorDetail, "考评指标明细不存在"); |
327 | 337 | |
328 | 338 | //命中记录 |
... | ... | @@ -339,14 +349,14 @@ public class EvalGroupPoolService { |
339 | 349 | |
340 | 350 | //参数 |
341 | 351 | Map<ParamTypeEnum, List<EvalGroupIndicatorParamVO>> paramMap = this.getEvalGroupIndicatorParamMap(evalGroupIndicatorId, |
342 | - userId, evalPoolId, scopeType, dataDate); | |
352 | + referId, evalPoolId, scopeType, dataDate); | |
343 | 353 | indicatorDetail.setLadderParams(paramMap.getOrDefault(ParamTypeEnum.LADDER, new ArrayList<>())); |
344 | 354 | indicatorDetail.setCommissionParams(paramMap.getOrDefault(ParamTypeEnum.COMMISSION, new ArrayList<>())); |
345 | 355 | |
346 | 356 | |
347 | 357 | //条件 |
348 | 358 | List<EvalGroupIndicatorPreconditionVO> preconditionVOS = this.getHitPreconditionVo(evalGroupIndicatorId, |
349 | - userId, evalPoolId, scopeType, dataDate); | |
359 | + referId, evalPoolId, scopeType, dataDate); | |
350 | 360 | indicatorDetail.setConds(preconditionVOS); |
351 | 361 | |
352 | 362 | //处理百分数 |
... | ... | @@ -527,31 +537,42 @@ public class EvalGroupPoolService { |
527 | 537 | } |
528 | 538 | } |
529 | 539 | |
540 | + public EvalPoolRewardDetailVO staffHitRewardDetail(Long evalPoolId, Long evalGroupRewardId, LocalDate dataDate) { | |
541 | + EvalUserPool pool = evalUserPoolService.getById(evalPoolId); | |
542 | + BV.notNull(pool, "考评池不存在"); | |
543 | + Long userId = pool.getUserId(); | |
544 | + return getHitRewardDetail(evalPoolId, EvalScopeEnum.STAFF, userId, evalGroupRewardId, dataDate); | |
545 | + } | |
546 | + | |
547 | + public EvalPoolRewardDetailVO shopHitRewardDetail(Long evalPoolId, Long evalGroupRewardId, LocalDate dataDate) { | |
548 | + EvalShopPool pool = evalShopPoolService.getById(evalPoolId); | |
549 | + BV.notNull(pool, "考评池不存在"); | |
550 | + Long referId = pool.getShopId(); | |
551 | + return getHitRewardDetail(evalPoolId, EvalScopeEnum.SHOP, referId, evalGroupRewardId, dataDate); | |
552 | + } | |
553 | + | |
530 | 554 | /** |
531 | - * 员工奖惩详情 | |
555 | + * 奖惩详情 | |
532 | 556 | * |
533 | 557 | * @param evalPoolId |
534 | 558 | * @param evalGroupRewardId |
535 | 559 | * @param dataDate |
536 | 560 | * @return |
537 | 561 | */ |
538 | - public EvalPoolRewardDetailVO getStaffRewardDetail(Long evalPoolId, Long evalGroupRewardId, LocalDate dataDate) { | |
539 | - EvalUserPool pool = evalUserPoolService.getById(evalPoolId); | |
540 | - BV.notNull(pool, "考评池不存在"); | |
541 | - Long userId = pool.getUserId(); | |
562 | + public EvalPoolRewardDetailVO getHitRewardDetail(Long evalPoolId, EvalScopeEnum scopeType, Long referId, Long evalGroupRewardId, LocalDate dataDate) { | |
542 | 563 | |
543 | 564 | EvalPoolRewardDetailVO reward = evalPoolRewardDetailService.getStaffRewardValue(evalPoolId, evalGroupRewardId, dataDate); |
544 | 565 | BV.notNull(reward, "考评奖惩明细不存在"); |
545 | 566 | |
546 | 567 | //命中记录 |
547 | - Optional<EvalGroupRewardHitLog> hitLog = this.getRewardHitLog(evalGroupRewardId, evalPoolId, EvalScopeEnum.STAFF, dataDate); | |
568 | + Optional<EvalGroupRewardHitLog> hitLog = this.getRewardHitLog(evalGroupRewardId, evalPoolId, scopeType, dataDate); | |
548 | 569 | reward.setHitLadderValue(hitLog.map(EvalGroupRewardHitLog::getHitLadderValue).orElse(BigDecimal.ZERO)); |
549 | 570 | reward.setHitCommissionValue(hitLog.map(EvalGroupRewardHitLog::getHitCommissionValue).orElse(BigDecimal.ZERO)); |
550 | 571 | Long hitLadderId = hitLog.map(EvalGroupRewardHitLog::getEvalGroupRewardLaddersId).orElse(0L); |
551 | 572 | |
552 | 573 | //参数 |
553 | 574 | Map<ParamTypeEnum, List<EvalGroupRewardParamVO>> rewardParamMap = this.getEvalGroupRewardParamMap(evalGroupRewardId, |
554 | - evalPoolId, EvalScopeEnum.STAFF, userId, dataDate); | |
575 | + evalPoolId, scopeType, referId, dataDate); | |
555 | 576 | reward.setLadderParams(rewardParamMap.getOrDefault(ParamTypeEnum.LADDER, new ArrayList<>())); |
556 | 577 | reward.setCommissionParams(rewardParamMap.getOrDefault(ParamTypeEnum.COMMISSION, new ArrayList<>())); |
557 | 578 | |
... | ... | @@ -559,7 +580,7 @@ public class EvalGroupPoolService { |
559 | 580 | reward.setLadders(this.getLadderVos(reward, hitLadderId)); |
560 | 581 | |
561 | 582 | //条件 |
562 | - reward.setConds(getConds(evalPoolId, userId, evalGroupRewardId, dataDate)); | |
583 | + reward.setConds(getConds(evalPoolId, referId, evalGroupRewardId, dataDate)); | |
563 | 584 | |
564 | 585 | //处理百分数 |
565 | 586 | processRewardPercent(reward); |
... | ... | @@ -832,7 +853,6 @@ public class EvalGroupPoolService { |
832 | 853 | if (indicatorUserValueMap.containsKey(kpiPool.getUserId())) { |
833 | 854 | IndicatorUserValueVO indicatorUserValueVO = indicatorUserValueMap.get(kpiPool.getUserId()); |
834 | 855 | rankStaffVO.setOriginValue(commonService.queryIndicatorValueVO(indicatorCode, indicatorUserValueVO)); |
835 | - | |
836 | 856 | } |
837 | 857 | staffRanks.add(rankStaffVO); |
838 | 858 | } |
... | ... | @@ -1002,7 +1022,6 @@ public class EvalGroupPoolService { |
1002 | 1022 | * @return |
1003 | 1023 | */ |
1004 | 1024 | public void calcRank(List<KpiIndicatorRankStaffVO> staffs) { |
1005 | - | |
1006 | 1025 | int rank = 1; |
1007 | 1026 | BigDecimal lastIndicatorValue = null; |
1008 | 1027 | for (KpiIndicatorRankStaffVO staff : staffs) { |
... | ... | @@ -1020,7 +1039,6 @@ public class EvalGroupPoolService { |
1020 | 1039 | staff.setIndicatorRank(rank); |
1021 | 1040 | lastIndicatorValue = staff.getOriginValue(); |
1022 | 1041 | } |
1023 | - | |
1024 | 1042 | } |
1025 | 1043 | |
1026 | 1044 | } | ... | ... |
fw-morax-service/src/main/java/cn/fw/morax/service/biz/eval/EvalPoolService.java
... | ... | @@ -4,15 +4,19 @@ import cn.fw.common.page.AppPage; |
4 | 4 | import cn.fw.morax.common.constant.Constant; |
5 | 5 | import cn.fw.morax.common.utils.PublicUtil; |
6 | 6 | import cn.fw.morax.common.utils.StringUtils; |
7 | +import cn.fw.morax.domain.db.eval.EvalGroup; | |
7 | 8 | import cn.fw.morax.domain.dto.query.EvalPoolQueryDTO; |
8 | 9 | import cn.fw.morax.domain.vo.eval.EvalShopPoolVO; |
9 | 10 | import cn.fw.morax.domain.vo.eval.EvalUserPoolVO; |
10 | 11 | import cn.fw.morax.rpc.ehr.EhrRpcService; |
12 | +import cn.fw.morax.rpc.erp.ErpRpcService; | |
11 | 13 | import cn.fw.morax.service.biz.CommonService; |
14 | +import cn.fw.morax.service.data.eval.EvalGroupService; | |
12 | 15 | import cn.fw.morax.service.data.eval.EvalGroupUserService; |
13 | 16 | import cn.fw.morax.service.data.eval.EvalShopPoolService; |
14 | 17 | import cn.fw.morax.service.data.eval.EvalUserPoolService; |
15 | 18 | import com.alibaba.fastjson.JSON; |
19 | +import com.baomidou.mybatisplus.core.toolkit.Wrappers; | |
16 | 20 | import lombok.RequiredArgsConstructor; |
17 | 21 | import lombok.extern.slf4j.Slf4j; |
18 | 22 | import org.springframework.stereotype.Service; |
... | ... | @@ -22,6 +26,7 @@ import java.math.RoundingMode; |
22 | 26 | import java.time.YearMonth; |
23 | 27 | import java.util.Arrays; |
24 | 28 | import java.util.List; |
29 | +import java.util.Map; | |
25 | 30 | import java.util.Objects; |
26 | 31 | import java.util.stream.Collectors; |
27 | 32 | |
... | ... | @@ -36,9 +41,11 @@ import java.util.stream.Collectors; |
36 | 41 | public class EvalPoolService { |
37 | 42 | |
38 | 43 | private final EvalGroupUserService evalGroupUserService; |
44 | + private final EvalGroupService evalGroupService; | |
39 | 45 | private final EvalUserPoolService evalUserPoolService; |
40 | 46 | private final EvalShopPoolService evalShopPoolService; |
41 | 47 | private final CommonService commonService; |
48 | + private final ErpRpcService erpRpcService; | |
42 | 49 | private final EhrRpcService ehrRpcService; |
43 | 50 | |
44 | 51 | |
... | ... | @@ -64,13 +71,16 @@ public class EvalPoolService { |
64 | 71 | long total = evalUserPoolService.queryPagePoolTotal(dto); |
65 | 72 | if (total > 0) { |
66 | 73 | page.setTotal(total); |
67 | - List<EvalUserPoolVO> userPoolVOS = evalUserPoolService.queryPagePool(dto); | |
68 | - for (EvalUserPoolVO poolVO : userPoolVOS) { | |
69 | - BigDecimal staffScoreRatio = (BigDecimal.ZERO.compareTo(poolVO.getTotalScore()) == 0) ? BigDecimal.ZERO : | |
70 | - poolVO.getScore().divide(poolVO.getTotalScore(), 2, RoundingMode.DOWN).multiply(Constant.ONE_HUNDRED); | |
71 | - poolVO.setScoreRatio(staffScoreRatio); | |
74 | + List<EvalUserPoolVO> userPools = evalUserPoolService.queryPagePool(dto); | |
75 | + List<EvalGroup> evalGroups = evalGroupService.list(Wrappers.<EvalGroup>lambdaQuery() | |
76 | + .in(EvalGroup::getId, userPools.stream().map(EvalUserPoolVO::getEvalGroupId).collect(Collectors.toSet())) | |
77 | + .eq(EvalGroup::getYn, Boolean.TRUE) | |
78 | + ); | |
79 | + Map<Long, String> evalGroupNameMap = evalGroups.stream().collect(Collectors.toMap(EvalGroup::getId, EvalGroup::getName)); | |
80 | + for (EvalUserPoolVO userPool : userPools) { | |
81 | + userPool.setEvalGroupName(evalGroupNameMap.getOrDefault(userPool.getEvalGroupId(), "")); | |
72 | 82 | } |
73 | - page.setData(userPoolVOS); | |
83 | + page.setData(userPools); | |
74 | 84 | } |
75 | 85 | return page; |
76 | 86 | } |
... | ... | @@ -83,9 +93,9 @@ public class EvalPoolService { |
83 | 93 | */ |
84 | 94 | public AppPage<EvalShopPoolVO> queryShopPool(EvalPoolQueryDTO dto) { |
85 | 95 | if (PublicUtil.isNotEmpty(dto.getManagerUserId())) { |
86 | - dto.setManagerShopIds(ehrRpcService.queryManageShops(dto.getManagerUserId())); | |
96 | + dto.setManagerShopIds(erpRpcService.manageShopIds(dto.getManagerUserId())); | |
87 | 97 | } else { |
88 | - dto.setManagerShopIds(ehrRpcService.queryManageShops(dto.getCurrentUserId())); | |
98 | + dto.setManagerShopIds(erpRpcService.manageShopIds(dto.getCurrentUserId())); | |
89 | 99 | } |
90 | 100 | if (PublicUtil.isEmpty(dto.getManagerShopIds())) { |
91 | 101 | return AppPage.empty(dto); |
... | ... | @@ -97,11 +107,22 @@ public class EvalPoolService { |
97 | 107 | long total = evalShopPoolService.queryPagePoolTotal(dto); |
98 | 108 | if (total > 0) { |
99 | 109 | page.setTotal(total); |
100 | - page.setData(evalShopPoolService.queryPagePool(dto)); | |
110 | + List<EvalShopPoolVO> shopPools = evalShopPoolService.queryPagePool(dto); | |
111 | + List<EvalGroup> evalGroups = evalGroupService.list(Wrappers.<EvalGroup>lambdaQuery() | |
112 | + .in(EvalGroup::getId, shopPools.stream().map(EvalShopPoolVO::getEvalGroupId).collect(Collectors.toSet())) | |
113 | + .eq(EvalGroup::getYn, Boolean.TRUE) | |
114 | + ); | |
115 | + Map<Long, String> evalGroupNameMap = evalGroups.stream().collect(Collectors.toMap(EvalGroup::getId, EvalGroup::getName)); | |
116 | + for (EvalShopPoolVO shopPool : shopPools) { | |
117 | + shopPool.setEvalGroupName(evalGroupNameMap.getOrDefault(shopPool.getEvalGroupId(), "")); | |
118 | + } | |
119 | + page.setData(shopPools); | |
101 | 120 | } |
102 | 121 | return page; |
103 | 122 | } |
104 | 123 | |
124 | + | |
125 | + | |
105 | 126 | /** |
106 | 127 | * 参数赋值 |
107 | 128 | * | ... | ... |
fw-morax-service/src/main/java/cn/fw/morax/service/biz/eval/EvalRewardService.java
... | ... | @@ -3,13 +3,15 @@ package cn.fw.morax.service.biz.eval; |
3 | 3 | import cn.fw.backlog.sdk.api.result.FailBacklogItem; |
4 | 4 | import cn.fw.common.cache.locker.DistributedLocker; |
5 | 5 | import cn.fw.common.exception.BusinessException; |
6 | +import cn.fw.common.web.auth.LoginAuthBean; | |
6 | 7 | import cn.fw.morax.common.config.TodoVal; |
8 | +import cn.fw.morax.common.pojo.event.ApprovalResultEvent; | |
7 | 9 | import cn.fw.morax.common.utils.DateUtil; |
8 | 10 | import cn.fw.morax.common.utils.PublicUtil; |
9 | 11 | import cn.fw.morax.common.utils.ThreadPoolUtil; |
10 | 12 | import cn.fw.morax.domain.bo.eval.EvalGroupRewardDistributionBO; |
13 | +import cn.fw.morax.domain.db.ApprovalRecord; | |
11 | 14 | import cn.fw.morax.domain.db.eval.*; |
12 | -import cn.fw.morax.domain.db.salary.SalaryExtraProject; | |
13 | 15 | import cn.fw.morax.domain.dto.eval.EvalRewardDistDTO; |
14 | 16 | import cn.fw.morax.domain.dto.eval.EvalRewardDistDetailDTO; |
15 | 17 | import cn.fw.morax.domain.enums.*; |
... | ... | @@ -22,8 +24,7 @@ import cn.fw.morax.rpc.backlog.dto.BacklogBatchPlanReqDTO; |
22 | 24 | import cn.fw.morax.rpc.erp.ErpRpcService; |
23 | 25 | import cn.fw.morax.rpc.erp.dto.RpcUserRoleInfoDTO; |
24 | 26 | import cn.fw.morax.rpc.erp.dto.RpcUserRoleShopDTO; |
25 | -import cn.fw.morax.service.biz.calculator.eval.kpi.EvalKpiBaseCalculator; | |
26 | -import cn.fw.morax.service.biz.calculator.eval.reward.EvalRewardBaseCalculator; | |
27 | +import cn.fw.morax.service.biz.ApprovalBizService; | |
27 | 28 | import cn.fw.morax.service.data.eval.*; |
28 | 29 | import com.alibaba.fastjson.JSON; |
29 | 30 | import com.alibaba.fastjson.JSONObject; |
... | ... | @@ -63,6 +64,7 @@ import static cn.fw.common.businessvalidator.Validator.BV; |
63 | 64 | public class EvalRewardService { |
64 | 65 | |
65 | 66 | private final TodoVal todoVal; |
67 | + private final ApprovalBizService approvalBizService; | |
66 | 68 | private final TodoRpcService todoRpcService; |
67 | 69 | private final ErpRpcService erpRpcService; |
68 | 70 | private final EvalRewardDistService evalRewardDistService; |
... | ... | @@ -209,8 +211,11 @@ public class EvalRewardService { |
209 | 211 | rewardDist.setEvalGroupId(evalGroup.getId()); |
210 | 212 | rewardDist.setEvalShopPoolIds(poolIds); |
211 | 213 | rewardDist.setShopIds(manageShopIds); |
214 | + rewardDist.setEvalGroupName(evalGroupName); | |
215 | + rewardDist.setEvalName(evalName); | |
216 | + rewardDist.setEvalType(evalType); | |
212 | 217 | rewardDist.setReward(reward); |
213 | - rewardDist.setStatus(1); | |
218 | + rewardDist.setStatus(EvalRewardDistStatusEnum.NO_DIST); | |
214 | 219 | rewardDist.setGroupId(evalGroup.getGroupId()); |
215 | 220 | rewardDist.setYn(Boolean.TRUE); |
216 | 221 | evalRewardDistService.save(rewardDist); |
... | ... | @@ -290,7 +295,8 @@ public class EvalRewardService { |
290 | 295 | return rewardDistVO; |
291 | 296 | } |
292 | 297 | |
293 | - public void rewardDist(EvalRewardDistDTO rewardDistDTO) { | |
298 | + @Transactional(rollbackFor = Exception.class) | |
299 | + public void rewardDist(EvalRewardDistDTO rewardDistDTO, LoginAuthBean currentUser) { | |
294 | 300 | Long rewardDistId = rewardDistDTO.getEvalShopDistId(); |
295 | 301 | EvalRewardDist rewardDist = evalRewardDistService.getById(rewardDistId); |
296 | 302 | BV.notNull(rewardDist, "奖惩分配不存在,请重试"); |
... | ... | @@ -319,14 +325,32 @@ public class EvalRewardService { |
319 | 325 | evalRewardDistDetail.setYn(Boolean.TRUE); |
320 | 326 | } |
321 | 327 | |
322 | - BackLogItemDTO dto = new BackLogItemDTO(rewardDist.getUserId(), todoVal.getDistEvalReward(), | |
323 | - String.valueOf(rewardDist.getId()), new Date(), null); | |
324 | - if (todoRpcService.cancel(dto)) { | |
325 | - evalRewardDistDetailService.saveBatch(distDetails); | |
326 | - } else { | |
327 | - log.error("奖惩分配待办取消失败:{}", JSON.toJSONString(rewardDist)); | |
328 | - throw new BusinessException("奖惩分配失败,请重试"); | |
329 | - } | |
328 | + approvalBizService.applyApproveDistReward(rewardDist, currentUser); | |
329 | + evalRewardDistDetailService.saveBatch(distDetails); | |
330 | + rewardDist.setStatus(EvalRewardDistStatusEnum.APPROVAL); | |
331 | + evalRewardDistService.saveOrUpdate(rewardDist); | |
332 | + } | |
330 | 333 | |
334 | + @Transactional(rollbackFor = Exception.class) | |
335 | + public void approvalEvalRewardDist(ApprovalRecord approvalRecord, ApprovalResultEvent result) { | |
336 | + log.info("收到考评门店奖惩分配审批信息:{}", JSON.toJSONString(result)); | |
337 | + Boolean agree = result.getAgree(); | |
338 | + Long rewardDistId = approvalRecord.getDataId(); | |
339 | + EvalRewardDist rewardDist = evalRewardDistService.getById(rewardDistId); | |
340 | + BV.notNull(rewardDist, "奖惩分配不存在,请重试"); | |
341 | + rewardDist.setStatus(EvalRewardDistStatusEnum.APPROVAL_REJECT); | |
342 | + if (agree) { | |
343 | + BackLogItemDTO dto = new BackLogItemDTO(rewardDist.getUserId(), todoVal.getDistEvalReward(), | |
344 | + String.valueOf(rewardDist.getId()), new Date(), null); | |
345 | + if (todoRpcService.cancel(dto)) { | |
346 | + | |
347 | + } else { | |
348 | + log.error("奖惩分配待办取消失败:{}", JSON.toJSONString(rewardDist)); | |
349 | + throw new BusinessException("奖惩分配失败,请重试"); | |
350 | + } | |
351 | + rewardDist.setStatus(EvalRewardDistStatusEnum.APPROVAL_AGREE); | |
352 | + } | |
353 | + evalRewardDistService.saveOrUpdate(rewardDist); | |
331 | 354 | } |
355 | + | |
332 | 356 | } | ... | ... |
fw-morax-service/src/main/java/cn/fw/morax/service/data/eval/EvalPoolIndicatorDetailService.java
... | ... | @@ -2,6 +2,7 @@ package cn.fw.morax.service.data.eval; |
2 | 2 | |
3 | 3 | |
4 | 4 | import cn.fw.morax.domain.db.eval.EvalPoolIndicatorDetail; |
5 | +import cn.fw.morax.domain.enums.EvalScopeEnum; | |
5 | 6 | import cn.fw.morax.domain.vo.eval.EvalPoolIndicatorDetailVO; |
6 | 7 | import com.baomidou.mybatisplus.extension.service.IService; |
7 | 8 | import org.apache.ibatis.annotations.Param; |
... | ... | @@ -40,6 +41,7 @@ public interface EvalPoolIndicatorDetailService extends IService<EvalPoolIndicat |
40 | 41 | * @return |
41 | 42 | */ |
42 | 43 | EvalPoolIndicatorDetailVO getStaffIndicatorValue(Long evalPoolId, |
44 | + EvalScopeEnum scopeType, | |
43 | 45 | Long evalGroupIndicatorId, |
44 | 46 | LocalDate localDate); |
45 | 47 | } | ... | ... |
fw-morax-service/src/main/java/cn/fw/morax/service/data/eval/impl/EvalPoolIndicatorDetailServiceImpl.java
... | ... | @@ -30,7 +30,7 @@ public class EvalPoolIndicatorDetailServiceImpl extends ServiceImpl<EvalPoolIndi |
30 | 30 | } |
31 | 31 | |
32 | 32 | @Override |
33 | - public EvalPoolIndicatorDetailVO getStaffIndicatorValue(Long evalPoolId, Long evalGroupIndicatorId, LocalDate localDate) { | |
34 | - return this.baseMapper.getStaffIndicatorValue(evalPoolId, EvalScopeEnum.STAFF.getValue(), evalGroupIndicatorId, localDate); | |
33 | + public EvalPoolIndicatorDetailVO getStaffIndicatorValue(Long evalPoolId, EvalScopeEnum scopeType,Long evalGroupIndicatorId, LocalDate localDate) { | |
34 | + return this.baseMapper.getStaffIndicatorValue(evalPoolId, scopeType.getValue(), evalGroupIndicatorId, localDate); | |
35 | 35 | } |
36 | 36 | } | ... | ... |