Commit 2b355f2285342f41140ff1aeab7fe15043fde746
1 parent
09a231ee
feature(*): 考评报表抽取修改
考评报表抽取修改
Showing
1 changed file
with
30 additions
and
12 deletions
fw-morax-server/src/main/java/cn/fw/morax/server/task/EvalUserReportTask.java
... | ... | @@ -144,14 +144,16 @@ public class EvalUserReportTask { |
144 | 144 | if (PublicUtil.isEmpty(stages)) { |
145 | 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 | 151 | final Long evalUserRankReportId = reportRank.getId(); |
150 | 152 | for (EvalGroupRankStage rankStage : stages) { |
151 | 153 | //如果当前时间 大于 考评阶段结束时间,使用考评结束时间进行查询 |
152 | 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 | 157 | if (PublicUtil.isEmpty(evalGroupIds)) { |
156 | 158 | continue; |
157 | 159 | } |
... | ... | @@ -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 | 178 | final Long evalUserRankStageReportId = rankStageReport.getId(); |
177 | 179 | //排名组指标编码、人员、门店 |
178 | 180 | List<EvalUserRankCodeReport> rankCodes = this.saveRankCodeReports(evalGroupIndicators, evalUserRankReportId, evalUserRankStageReportId, dataDate); |
... | ... | @@ -182,7 +184,7 @@ public class EvalUserReportTask { |
182 | 184 | List<EvalUserValueReport> reportUserValues = calcUser(userPools, evalGroupIndicators, evalUserReports, dataDate); |
183 | 185 | //门店维度 |
184 | 186 | calcShop(shopPools, evalGroupIndicators, evalShopReports, dataDate); |
185 | - //门店维度 | |
187 | + //管理者维度 | |
186 | 188 | calcManager(userPools, reportUserValues, rankCodes, evalUserReports, rankStageReport, dataDate); |
187 | 189 | } |
188 | 190 | |
... | ... | @@ -196,7 +198,6 @@ public class EvalUserReportTask { |
196 | 198 | return new ArrayList<>(); |
197 | 199 | } |
198 | 200 | List<EvalUserValueReport> reportUserValues = new ArrayList<>(); |
199 | - List<Long> userIds = pools.stream().map(EvalUserPool::getUserId).distinct().collect(Collectors.toList()); | |
200 | 201 | List<Long> poolIds = pools.stream().map(EvalUserPool::getId).collect(Collectors.toList()); |
201 | 202 | List<Long> evalGroupIndicatorIds = evalGroupIndicators.stream().map(EvalGroupIndicator::getId).collect(Collectors.toList()); |
202 | 203 | List<EvalGroupIndicatorHitLog> hitLogs = evalGroupIndicatorHitLogService.getHitLogs(evalGroupIndicatorIds, poolIds, EvalScopeEnum.STAFF, date); |
... | ... | @@ -252,12 +253,14 @@ public class EvalUserReportTask { |
252 | 253 | return reportUserValues; |
253 | 254 | } |
254 | 255 | |
255 | - public List<EvalUserValueReport> calcShop(List<EvalShopPool> pools, | |
256 | + public void calcShop(List<EvalShopPool> pools, | |
256 | 257 | List<EvalGroupIndicator> evalGroupIndicators, |
257 | 258 | List<EvalUserReport> evalShopReports, |
258 | 259 | LocalDate date) { |
260 | + if (PublicUtil.isEmpty(pools)) { | |
261 | + return ; | |
262 | + } | |
259 | 263 | List<EvalUserValueReport> reportUserValues = new ArrayList<>(); |
260 | - List<Long> shopIds = pools.stream().map(EvalShopPool::getShopId).distinct().collect(Collectors.toList()); | |
261 | 264 | List<Long> poolIds = pools.stream().map(EvalShopPool::getId).collect(Collectors.toList()); |
262 | 265 | List<Long> evalGroupIndicatorIds = evalGroupIndicators.stream().map(EvalGroupIndicator::getId).collect(Collectors.toList()); |
263 | 266 | List<EvalGroupIndicatorHitLog> hitLogs = evalGroupIndicatorHitLogService.getHitLogs(evalGroupIndicatorIds, poolIds, EvalScopeEnum.SHOP, date); |
... | ... | @@ -305,7 +308,6 @@ public class EvalUserReportTask { |
305 | 308 | if (PublicUtil.isNotEmpty(reportUserValues)) { |
306 | 309 | evalUserValueReportService.saveBatch(reportUserValues); |
307 | 310 | } |
308 | - return reportUserValues; | |
309 | 311 | } |
310 | 312 | |
311 | 313 | public void calcManager(List<EvalUserPool> pools, |
... | ... | @@ -317,7 +319,7 @@ public class EvalUserReportTask { |
317 | 319 | if (PublicUtil.isEmpty(pools)) { |
318 | 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 | 323 | List<ManagerDTO> managerDTOS = ehrRpcService.getRealTimeShopManager(new ArrayList<>(shopIds)); |
322 | 324 | log.info("查询门店实时管理者:{},{}", JSON.toJSONString(shopIds), JSON.toJSONString(managerDTOS)); |
323 | 325 | if (PublicUtil.isEmpty(managerDTOS)) { |
... | ... | @@ -381,12 +383,18 @@ public class EvalUserReportTask { |
381 | 383 | } |
382 | 384 | |
383 | 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 | 389 | List<EvalUserReport> evalUserReports = new ArrayList<>(); |
385 | 390 | for (EvalUserPool userPool : pools) { |
386 | 391 | EvalUserReport report = new EvalUserReport(); |
387 | 392 | report.setEvalUserRankReportId(evalUserRankReportId); |
388 | 393 | report.setEvalUserRankStageReportId(evalUserRankStageReportId); |
389 | 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 | 398 | report.setUserId(userPool.getUserId()); |
391 | 399 | report.setUserName(userPool.getUserName()); |
392 | 400 | report.setPostId(userPool.getPostId()); |
... | ... | @@ -403,11 +411,17 @@ public class EvalUserReportTask { |
403 | 411 | } |
404 | 412 | |
405 | 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 | 417 | List<EvalUserReport> evalShopReports = new ArrayList<>(); |
407 | 418 | for (EvalShopPool shopPool : shopPools) { |
408 | 419 | EvalUserReport report = new EvalUserReport(); |
409 | 420 | report.setDimension(ReportDimensionEnum.SHOP); |
410 | 421 | report.setEvalUserRankReportId(evalUserRankReportId); |
422 | + report.setReward(shopPool.getReward()); | |
423 | + report.setScore(shopPool.getScore()); | |
424 | + report.setScoreRatio(shopPool.getScoreRatio().multiply(Constant.ONE_HUNDRED)); | |
411 | 425 | report.setEvalUserRankStageReportId(evalUserRankStageReportId); |
412 | 426 | report.setShopId(shopPool.getShopId()); |
413 | 427 | report.setShopName(shopPool.getShopName()); |
... | ... | @@ -498,6 +512,9 @@ public class EvalUserReportTask { |
498 | 512 | } |
499 | 513 | List<Long> rankReportIds = rankReports.stream().map(EvalUserRankReport::getId).collect(Collectors.toList()); |
500 | 514 | evalUserRankReportService.removeByIds(rankReportIds); |
515 | + evalUserRankStageReportService.remove(Wrappers.<EvalUserRankStageReport>lambdaUpdate() | |
516 | + .in(EvalUserRankStageReport::getEvalUserRankReportId, rankReportIds) | |
517 | + ); | |
501 | 518 | evalUserRankCodeReportService.remove(Wrappers.<EvalUserRankCodeReport>lambdaUpdate() |
502 | 519 | .in(EvalUserRankCodeReport::getEvalUserRankReportId, rankReportIds) |
503 | 520 | ); |
... | ... | @@ -558,14 +575,15 @@ public class EvalUserReportTask { |
558 | 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 | 580 | EvalUserRankReport reportRank = new EvalUserRankReport(); |
564 | 581 | reportRank.setRankId(rank.getId()); |
565 | 582 | reportRank.setRankName(rank.getName()); |
566 | 583 | reportRank.setMultiStage(rank.getMultiStage()); |
567 | 584 | reportRank.setDataDate(date); |
568 | 585 | reportRank.setMonthly(YearMonth.from(date)); |
586 | + reportRank.setShopIds(shopIds); | |
569 | 587 | reportRank.setGroupId(groupId); |
570 | 588 | evalUserRankReportService.save(reportRank); |
571 | 589 | return reportRank; | ... | ... |