Commit 09a231eecb726423e232cc397fb6b8f71d232da9

Authored by 姜超
1 parent 9995bc03

feature(*): 考评报表抽取修改

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