Commit 56b2e55f67a230c417bad4515ab15f16e87fd7e5
1 parent
b64bfc45
feature(*): 考评报表抽取修改
考评报表抽取修改
Showing
3 changed files
with
48 additions
and
16 deletions
fw-morax-domain/src/main/java/cn/fw/morax/domain/db/eval/EvalUserRankReport.java
@@ -44,6 +44,10 @@ public class EvalUserRankReport extends BaseEntity<EvalUserRankReport, Long> { | @@ -44,6 +44,10 @@ public class EvalUserRankReport extends BaseEntity<EvalUserRankReport, Long> { | ||
44 | private Boolean multiStage; | 44 | private Boolean multiStage; |
45 | 45 | ||
46 | /** | 46 | /** |
47 | + * 门店 | ||
48 | + */ | ||
49 | + private List<Long> shopIds; | ||
50 | + /** | ||
47 | * 集团id | 51 | * 集团id |
48 | */ | 52 | */ |
49 | private Long groupId; | 53 | private Long groupId; |
fw-morax-domain/src/main/java/cn/fw/morax/domain/db/eval/EvalUserReport.java
@@ -83,10 +83,20 @@ public class EvalUserReport extends BaseEntity<EvalUserReport, Long> { | @@ -83,10 +83,20 @@ public class EvalUserReport extends BaseEntity<EvalUserReport, Long> { | ||
83 | */ | 83 | */ |
84 | private LocalDate dataDate; | 84 | private LocalDate dataDate; |
85 | 85 | ||
86 | -// /** | ||
87 | -// * 月份 | ||
88 | -// */ | ||
89 | -// private YearMonth monthly; | 86 | + /** |
87 | + * 考评奖惩 | ||
88 | + */ | ||
89 | + private BigDecimal reward; | ||
90 | + | ||
91 | + /** | ||
92 | + * 考评得分 | ||
93 | + */ | ||
94 | + private BigDecimal score; | ||
95 | + | ||
96 | + /** | ||
97 | + * 考评得分率 | ||
98 | + */ | ||
99 | + private BigDecimal scoreRatio; | ||
90 | 100 | ||
91 | /** | 101 | /** |
92 | * 绩效池id | 102 | * 绩效池id |
fw-morax-server/src/main/java/cn/fw/morax/server/task/EvalUserReportTask.java
@@ -144,14 +144,16 @@ public class EvalUserReportTask { | @@ -144,14 +144,16 @@ public class EvalUserReportTask { | ||
144 | if (PublicUtil.isEmpty(stages)) { | 144 | if (PublicUtil.isEmpty(stages)) { |
145 | return; | 145 | return; |
146 | } | 146 | } |
147 | + List<EvalGroup> evalGroups = evalGroupService.getEvalGroups(rank.getId()); | ||
148 | + Map<Long, List<EvalGroup>> stageEvalGroupMap = evalGroups.stream().collect(Collectors.groupingBy(EvalGroup::getEvalGroupRankStageId)); | ||
147 | //排名组 | 149 | //排名组 |
148 | - EvalUserRankReport reportRank = this.saveRankReport(rank, date, groupId); | 150 | + EvalUserRankReport reportRank = this.saveRankReport(rank, evalGroups, date, groupId); |
149 | final Long evalUserRankReportId = reportRank.getId(); | 151 | final Long evalUserRankReportId = reportRank.getId(); |
150 | for (EvalGroupRankStage rankStage : stages) { | 152 | for (EvalGroupRankStage rankStage : stages) { |
151 | //如果当前时间 大于 考评阶段结束时间,使用考评结束时间进行查询 | 153 | //如果当前时间 大于 考评阶段结束时间,使用考评结束时间进行查询 |
152 | LocalDate dataDate = (date.compareTo(rankStage.getOverTime()) > 0) ? rankStage.getOverTime() : date; | 154 | LocalDate dataDate = (date.compareTo(rankStage.getOverTime()) > 0) ? rankStage.getOverTime() : date; |
153 | - List<EvalGroup> evalGroups = evalGroupService.getEvalGroups(rank.getId()); | ||
154 | - List<Long> evalGroupIds = evalGroups.stream().map(EvalGroup::getId).collect(Collectors.toList()); | 155 | + List<EvalGroup> stageEvalGroups = stageEvalGroupMap.get(rankStage.getId()); |
156 | + List<Long> evalGroupIds = stageEvalGroups.stream().map(EvalGroup::getId).collect(Collectors.toList()); | ||
155 | if (PublicUtil.isEmpty(evalGroupIds)) { | 157 | if (PublicUtil.isEmpty(evalGroupIds)) { |
156 | continue; | 158 | continue; |
157 | } | 159 | } |
@@ -172,7 +174,7 @@ public class EvalUserReportTask { | @@ -172,7 +174,7 @@ public class EvalUserReportTask { | ||
172 | ); | 174 | ); |
173 | 175 | ||
174 | //排名组阶段 | 176 | //排名组阶段 |
175 | - EvalUserRankStageReport rankStageReport = this.saveRankStageReport(reportRank, rank, rankStage, evalGroups); | 177 | + EvalUserRankStageReport rankStageReport = this.saveRankStageReport(reportRank, rank, rankStage, stageEvalGroups); |
176 | final Long evalUserRankStageReportId = rankStageReport.getId(); | 178 | final Long evalUserRankStageReportId = rankStageReport.getId(); |
177 | //排名组指标编码、人员、门店 | 179 | //排名组指标编码、人员、门店 |
178 | List<EvalUserRankCodeReport> rankCodes = this.saveRankCodeReports(evalGroupIndicators, evalUserRankReportId, evalUserRankStageReportId, dataDate); | 180 | List<EvalUserRankCodeReport> rankCodes = this.saveRankCodeReports(evalGroupIndicators, evalUserRankReportId, evalUserRankStageReportId, dataDate); |
@@ -182,7 +184,7 @@ public class EvalUserReportTask { | @@ -182,7 +184,7 @@ public class EvalUserReportTask { | ||
182 | List<EvalUserValueReport> reportUserValues = calcUser(userPools, evalGroupIndicators, evalUserReports, dataDate); | 184 | List<EvalUserValueReport> reportUserValues = calcUser(userPools, evalGroupIndicators, evalUserReports, dataDate); |
183 | //门店维度 | 185 | //门店维度 |
184 | calcShop(shopPools, evalGroupIndicators, evalShopReports, dataDate); | 186 | calcShop(shopPools, evalGroupIndicators, evalShopReports, dataDate); |
185 | - //门店维度 | 187 | + //管理者维度 |
186 | calcManager(userPools, reportUserValues, rankCodes, evalUserReports, rankStageReport, dataDate); | 188 | calcManager(userPools, reportUserValues, rankCodes, evalUserReports, rankStageReport, dataDate); |
187 | } | 189 | } |
188 | 190 | ||
@@ -196,7 +198,6 @@ public class EvalUserReportTask { | @@ -196,7 +198,6 @@ public class EvalUserReportTask { | ||
196 | return new ArrayList<>(); | 198 | return new ArrayList<>(); |
197 | } | 199 | } |
198 | List<EvalUserValueReport> reportUserValues = new ArrayList<>(); | 200 | List<EvalUserValueReport> reportUserValues = new ArrayList<>(); |
199 | - List<Long> userIds = pools.stream().map(EvalUserPool::getUserId).distinct().collect(Collectors.toList()); | ||
200 | List<Long> poolIds = pools.stream().map(EvalUserPool::getId).collect(Collectors.toList()); | 201 | List<Long> poolIds = pools.stream().map(EvalUserPool::getId).collect(Collectors.toList()); |
201 | List<Long> evalGroupIndicatorIds = evalGroupIndicators.stream().map(EvalGroupIndicator::getId).collect(Collectors.toList()); | 202 | List<Long> evalGroupIndicatorIds = evalGroupIndicators.stream().map(EvalGroupIndicator::getId).collect(Collectors.toList()); |
202 | List<EvalGroupIndicatorHitLog> hitLogs = evalGroupIndicatorHitLogService.getHitLogs(evalGroupIndicatorIds, poolIds, EvalScopeEnum.STAFF, date); | 203 | List<EvalGroupIndicatorHitLog> hitLogs = evalGroupIndicatorHitLogService.getHitLogs(evalGroupIndicatorIds, poolIds, EvalScopeEnum.STAFF, date); |
@@ -252,12 +253,14 @@ public class EvalUserReportTask { | @@ -252,12 +253,14 @@ public class EvalUserReportTask { | ||
252 | return reportUserValues; | 253 | return reportUserValues; |
253 | } | 254 | } |
254 | 255 | ||
255 | - public List<EvalUserValueReport> calcShop(List<EvalShopPool> pools, | 256 | + public void calcShop(List<EvalShopPool> pools, |
256 | List<EvalGroupIndicator> evalGroupIndicators, | 257 | List<EvalGroupIndicator> evalGroupIndicators, |
257 | List<EvalUserReport> evalShopReports, | 258 | List<EvalUserReport> evalShopReports, |
258 | LocalDate date) { | 259 | LocalDate date) { |
260 | + if (PublicUtil.isEmpty(pools)) { | ||
261 | + return ; | ||
262 | + } | ||
259 | List<EvalUserValueReport> reportUserValues = new ArrayList<>(); | 263 | List<EvalUserValueReport> reportUserValues = new ArrayList<>(); |
260 | - List<Long> shopIds = pools.stream().map(EvalShopPool::getShopId).distinct().collect(Collectors.toList()); | ||
261 | List<Long> poolIds = pools.stream().map(EvalShopPool::getId).collect(Collectors.toList()); | 264 | List<Long> poolIds = pools.stream().map(EvalShopPool::getId).collect(Collectors.toList()); |
262 | List<Long> evalGroupIndicatorIds = evalGroupIndicators.stream().map(EvalGroupIndicator::getId).collect(Collectors.toList()); | 265 | List<Long> evalGroupIndicatorIds = evalGroupIndicators.stream().map(EvalGroupIndicator::getId).collect(Collectors.toList()); |
263 | List<EvalGroupIndicatorHitLog> hitLogs = evalGroupIndicatorHitLogService.getHitLogs(evalGroupIndicatorIds, poolIds, EvalScopeEnum.SHOP, date); | 266 | List<EvalGroupIndicatorHitLog> hitLogs = evalGroupIndicatorHitLogService.getHitLogs(evalGroupIndicatorIds, poolIds, EvalScopeEnum.SHOP, date); |
@@ -305,7 +308,6 @@ public class EvalUserReportTask { | @@ -305,7 +308,6 @@ public class EvalUserReportTask { | ||
305 | if (PublicUtil.isNotEmpty(reportUserValues)) { | 308 | if (PublicUtil.isNotEmpty(reportUserValues)) { |
306 | evalUserValueReportService.saveBatch(reportUserValues); | 309 | evalUserValueReportService.saveBatch(reportUserValues); |
307 | } | 310 | } |
308 | - return reportUserValues; | ||
309 | } | 311 | } |
310 | 312 | ||
311 | public void calcManager(List<EvalUserPool> pools, | 313 | public void calcManager(List<EvalUserPool> pools, |
@@ -317,7 +319,7 @@ public class EvalUserReportTask { | @@ -317,7 +319,7 @@ public class EvalUserReportTask { | ||
317 | if (PublicUtil.isEmpty(pools)) { | 319 | if (PublicUtil.isEmpty(pools)) { |
318 | return; | 320 | return; |
319 | } | 321 | } |
320 | - List<Long> shopIds = pools.stream().map(EvalUserPool::getShopId).collect(Collectors.toList()); | 322 | + List<Long> shopIds = pools.stream().map(EvalUserPool::getShopId).distinct().collect(Collectors.toList()); |
321 | List<ManagerDTO> managerDTOS = ehrRpcService.getRealTimeShopManager(new ArrayList<>(shopIds)); | 323 | List<ManagerDTO> managerDTOS = ehrRpcService.getRealTimeShopManager(new ArrayList<>(shopIds)); |
322 | log.info("查询门店实时管理者:{},{}", JSON.toJSONString(shopIds), JSON.toJSONString(managerDTOS)); | 324 | log.info("查询门店实时管理者:{},{}", JSON.toJSONString(shopIds), JSON.toJSONString(managerDTOS)); |
323 | if (PublicUtil.isEmpty(managerDTOS)) { | 325 | if (PublicUtil.isEmpty(managerDTOS)) { |
@@ -381,12 +383,18 @@ public class EvalUserReportTask { | @@ -381,12 +383,18 @@ public class EvalUserReportTask { | ||
381 | } | 383 | } |
382 | 384 | ||
383 | public List<EvalUserReport> saveStaffReports(List<EvalUserPool> pools, LocalDate date, Long evalUserRankReportId, Long evalUserRankStageReportId) { | 385 | public List<EvalUserReport> saveStaffReports(List<EvalUserPool> pools, LocalDate date, Long evalUserRankReportId, Long evalUserRankStageReportId) { |
386 | + if (PublicUtil.isEmpty(pools)) { | ||
387 | + return new ArrayList<>(); | ||
388 | + } | ||
384 | List<EvalUserReport> evalUserReports = new ArrayList<>(); | 389 | List<EvalUserReport> evalUserReports = new ArrayList<>(); |
385 | for (EvalUserPool userPool : pools) { | 390 | for (EvalUserPool userPool : pools) { |
386 | EvalUserReport report = new EvalUserReport(); | 391 | EvalUserReport report = new EvalUserReport(); |
387 | report.setEvalUserRankReportId(evalUserRankReportId); | 392 | report.setEvalUserRankReportId(evalUserRankReportId); |
388 | report.setEvalUserRankStageReportId(evalUserRankStageReportId); | 393 | report.setEvalUserRankStageReportId(evalUserRankStageReportId); |
389 | report.setDimension(ReportDimensionEnum.STAFF); | 394 | report.setDimension(ReportDimensionEnum.STAFF); |
395 | + report.setReward(userPool.getReward()); | ||
396 | + report.setScore(userPool.getScore()); | ||
397 | + report.setScoreRatio(userPool.getScoreRatio().multiply(Constant.ONE_HUNDRED)); | ||
390 | report.setUserId(userPool.getUserId()); | 398 | report.setUserId(userPool.getUserId()); |
391 | report.setUserName(userPool.getUserName()); | 399 | report.setUserName(userPool.getUserName()); |
392 | report.setPostId(userPool.getPostId()); | 400 | report.setPostId(userPool.getPostId()); |
@@ -403,11 +411,17 @@ public class EvalUserReportTask { | @@ -403,11 +411,17 @@ public class EvalUserReportTask { | ||
403 | } | 411 | } |
404 | 412 | ||
405 | public List<EvalUserReport> saveShopReports(List<EvalShopPool> shopPools, LocalDate date, Long evalUserRankReportId, Long evalUserRankStageReportId) { | 413 | public List<EvalUserReport> saveShopReports(List<EvalShopPool> shopPools, LocalDate date, Long evalUserRankReportId, Long evalUserRankStageReportId) { |
414 | + if (PublicUtil.isEmpty(shopPools)) { | ||
415 | + return new ArrayList<>(); | ||
416 | + } | ||
406 | List<EvalUserReport> evalShopReports = new ArrayList<>(); | 417 | List<EvalUserReport> evalShopReports = new ArrayList<>(); |
407 | for (EvalShopPool shopPool : shopPools) { | 418 | for (EvalShopPool shopPool : shopPools) { |
408 | EvalUserReport report = new EvalUserReport(); | 419 | EvalUserReport report = new EvalUserReport(); |
409 | report.setDimension(ReportDimensionEnum.SHOP); | 420 | report.setDimension(ReportDimensionEnum.SHOP); |
410 | report.setEvalUserRankReportId(evalUserRankReportId); | 421 | report.setEvalUserRankReportId(evalUserRankReportId); |
422 | + report.setReward(shopPool.getReward()); | ||
423 | + report.setScore(shopPool.getScore()); | ||
424 | + report.setScoreRatio(shopPool.getScoreRatio().multiply(Constant.ONE_HUNDRED)); | ||
411 | report.setEvalUserRankStageReportId(evalUserRankStageReportId); | 425 | report.setEvalUserRankStageReportId(evalUserRankStageReportId); |
412 | report.setShopId(shopPool.getShopId()); | 426 | report.setShopId(shopPool.getShopId()); |
413 | report.setShopName(shopPool.getShopName()); | 427 | report.setShopName(shopPool.getShopName()); |
@@ -498,6 +512,9 @@ public class EvalUserReportTask { | @@ -498,6 +512,9 @@ public class EvalUserReportTask { | ||
498 | } | 512 | } |
499 | List<Long> rankReportIds = rankReports.stream().map(EvalUserRankReport::getId).collect(Collectors.toList()); | 513 | List<Long> rankReportIds = rankReports.stream().map(EvalUserRankReport::getId).collect(Collectors.toList()); |
500 | evalUserRankReportService.removeByIds(rankReportIds); | 514 | evalUserRankReportService.removeByIds(rankReportIds); |
515 | + evalUserRankStageReportService.remove(Wrappers.<EvalUserRankStageReport>lambdaUpdate() | ||
516 | + .in(EvalUserRankStageReport::getEvalUserRankReportId, rankReportIds) | ||
517 | + ); | ||
501 | evalUserRankCodeReportService.remove(Wrappers.<EvalUserRankCodeReport>lambdaUpdate() | 518 | evalUserRankCodeReportService.remove(Wrappers.<EvalUserRankCodeReport>lambdaUpdate() |
502 | .in(EvalUserRankCodeReport::getEvalUserRankReportId, rankReportIds) | 519 | .in(EvalUserRankCodeReport::getEvalUserRankReportId, rankReportIds) |
503 | ); | 520 | ); |
@@ -558,14 +575,15 @@ public class EvalUserReportTask { | @@ -558,14 +575,15 @@ public class EvalUserReportTask { | ||
558 | return evalGroupRanks.stream().collect(Collectors.groupingBy(EvalGroupRank::getGroupId)); | 575 | return evalGroupRanks.stream().collect(Collectors.groupingBy(EvalGroupRank::getGroupId)); |
559 | } | 576 | } |
560 | 577 | ||
561 | - public EvalUserRankReport saveRankReport(EvalGroupRank rank, LocalDate date, Long groupId) { | ||
562 | -// List<Long> shopIds = evalGroups.stream().map(EvalGroup::getShopIds).distinct().collect(ArrayList::new, List::addAll, List::addAll); | 578 | + public EvalUserRankReport saveRankReport(EvalGroupRank rank, List<EvalGroup> evalGroups, LocalDate date, Long groupId) { |
579 | + List<Long> shopIds = evalGroups.stream().map(EvalGroup::getShopIds).distinct().collect(ArrayList::new, List::addAll, List::addAll); | ||
563 | EvalUserRankReport reportRank = new EvalUserRankReport(); | 580 | EvalUserRankReport reportRank = new EvalUserRankReport(); |
564 | reportRank.setRankId(rank.getId()); | 581 | reportRank.setRankId(rank.getId()); |
565 | reportRank.setRankName(rank.getName()); | 582 | reportRank.setRankName(rank.getName()); |
566 | reportRank.setMultiStage(rank.getMultiStage()); | 583 | reportRank.setMultiStage(rank.getMultiStage()); |
567 | reportRank.setDataDate(date); | 584 | reportRank.setDataDate(date); |
568 | reportRank.setMonthly(YearMonth.from(date)); | 585 | reportRank.setMonthly(YearMonth.from(date)); |
586 | + reportRank.setShopIds(shopIds); | ||
569 | reportRank.setGroupId(groupId); | 587 | reportRank.setGroupId(groupId); |
570 | evalUserRankReportService.save(reportRank); | 588 | evalUserRankReportService.save(reportRank); |
571 | return reportRank; | 589 | return reportRank; |