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