From 09a231eecb726423e232cc397fb6b8f71d232da9 Mon Sep 17 00:00:00 2001 From: jiangchao Date: Fri, 26 May 2023 14:25:26 +0800 Subject: [PATCH] feature(*): 考评报表抽取修改 --- fw-morax-server/src/main/java/cn/fw/morax/server/task/EvalUserReportTask.java | 42 ++++++++++++------------------------------ 1 file changed, 12 insertions(+), 30 deletions(-) diff --git a/fw-morax-server/src/main/java/cn/fw/morax/server/task/EvalUserReportTask.java b/fw-morax-server/src/main/java/cn/fw/morax/server/task/EvalUserReportTask.java index de236a1..400a366 100644 --- a/fw-morax-server/src/main/java/cn/fw/morax/server/task/EvalUserReportTask.java +++ b/fw-morax-server/src/main/java/cn/fw/morax/server/task/EvalUserReportTask.java @@ -144,16 +144,14 @@ public class EvalUserReportTask { if (PublicUtil.isEmpty(stages)) { return; } - List evalGroups = evalGroupService.getEvalGroups(rank.getId()); - Map> stageEvalGroupMap = evalGroups.stream().collect(Collectors.groupingBy(EvalGroup::getEvalGroupRankStageId)); //排名组 - EvalUserRankReport reportRank = this.saveRankReport(rank, evalGroups, date, groupId); + EvalUserRankReport reportRank = this.saveRankReport(rank, date, groupId); final Long evalUserRankReportId = reportRank.getId(); for (EvalGroupRankStage rankStage : stages) { //如果当前时间 大于 考评阶段结束时间,使用考评结束时间进行查询 LocalDate dataDate = (date.compareTo(rankStage.getOverTime()) > 0) ? rankStage.getOverTime() : date; - List stageEvalGroups = stageEvalGroupMap.get(rankStage.getId()); - List evalGroupIds = stageEvalGroups.stream().map(EvalGroup::getId).collect(Collectors.toList()); + List evalGroups = evalGroupService.getEvalGroups(rank.getId()); + List evalGroupIds = evalGroups.stream().map(EvalGroup::getId).collect(Collectors.toList()); if (PublicUtil.isEmpty(evalGroupIds)) { continue; } @@ -174,7 +172,7 @@ public class EvalUserReportTask { ); //排名组阶段 - EvalUserRankStageReport rankStageReport = this.saveRankStageReport(reportRank, rank, rankStage, stageEvalGroups); + EvalUserRankStageReport rankStageReport = this.saveRankStageReport(reportRank, rank, rankStage, evalGroups); final Long evalUserRankStageReportId = rankStageReport.getId(); //排名组指标编码、人员、门店 List rankCodes = this.saveRankCodeReports(evalGroupIndicators, evalUserRankReportId, evalUserRankStageReportId, dataDate); @@ -184,7 +182,7 @@ public class EvalUserReportTask { List reportUserValues = calcUser(userPools, evalGroupIndicators, evalUserReports, dataDate); //门店维度 calcShop(shopPools, evalGroupIndicators, evalShopReports, dataDate); - //管理者维度 + //门店维度 calcManager(userPools, reportUserValues, rankCodes, evalUserReports, rankStageReport, dataDate); } @@ -198,6 +196,7 @@ public class EvalUserReportTask { return new ArrayList<>(); } List reportUserValues = new ArrayList<>(); + List userIds = pools.stream().map(EvalUserPool::getUserId).distinct().collect(Collectors.toList()); List poolIds = pools.stream().map(EvalUserPool::getId).collect(Collectors.toList()); List evalGroupIndicatorIds = evalGroupIndicators.stream().map(EvalGroupIndicator::getId).collect(Collectors.toList()); List hitLogs = evalGroupIndicatorHitLogService.getHitLogs(evalGroupIndicatorIds, poolIds, EvalScopeEnum.STAFF, date); @@ -253,14 +252,12 @@ public class EvalUserReportTask { return reportUserValues; } - public void calcShop(List pools, + public List calcShop(List pools, List evalGroupIndicators, List evalShopReports, LocalDate date) { - if (PublicUtil.isEmpty(pools)) { - return ; - } List reportUserValues = new ArrayList<>(); + List shopIds = pools.stream().map(EvalShopPool::getShopId).distinct().collect(Collectors.toList()); List poolIds = pools.stream().map(EvalShopPool::getId).collect(Collectors.toList()); List evalGroupIndicatorIds = evalGroupIndicators.stream().map(EvalGroupIndicator::getId).collect(Collectors.toList()); List hitLogs = evalGroupIndicatorHitLogService.getHitLogs(evalGroupIndicatorIds, poolIds, EvalScopeEnum.SHOP, date); @@ -308,6 +305,7 @@ public class EvalUserReportTask { if (PublicUtil.isNotEmpty(reportUserValues)) { evalUserValueReportService.saveBatch(reportUserValues); } + return reportUserValues; } public void calcManager(List pools, @@ -319,7 +317,7 @@ public class EvalUserReportTask { if (PublicUtil.isEmpty(pools)) { return; } - List shopIds = pools.stream().map(EvalUserPool::getShopId).distinct().collect(Collectors.toList()); + List shopIds = pools.stream().map(EvalUserPool::getShopId).collect(Collectors.toList()); List managerDTOS = ehrRpcService.getRealTimeShopManager(new ArrayList<>(shopIds)); log.info("查询门店实时管理者:{},{}", JSON.toJSONString(shopIds), JSON.toJSONString(managerDTOS)); if (PublicUtil.isEmpty(managerDTOS)) { @@ -383,18 +381,12 @@ public class EvalUserReportTask { } public List saveStaffReports(List pools, LocalDate date, Long evalUserRankReportId, Long evalUserRankStageReportId) { - if (PublicUtil.isEmpty(pools)) { - return new ArrayList<>(); - } List evalUserReports = new ArrayList<>(); for (EvalUserPool userPool : pools) { EvalUserReport report = new EvalUserReport(); report.setEvalUserRankReportId(evalUserRankReportId); report.setEvalUserRankStageReportId(evalUserRankStageReportId); report.setDimension(ReportDimensionEnum.STAFF); - report.setReward(userPool.getReward()); - report.setScore(userPool.getScore()); - report.setScoreRatio(userPool.getScoreRatio().multiply(Constant.ONE_HUNDRED)); report.setUserId(userPool.getUserId()); report.setUserName(userPool.getUserName()); report.setPostId(userPool.getPostId()); @@ -411,17 +403,11 @@ public class EvalUserReportTask { } public List saveShopReports(List shopPools, LocalDate date, Long evalUserRankReportId, Long evalUserRankStageReportId) { - if (PublicUtil.isEmpty(shopPools)) { - return new ArrayList<>(); - } List evalShopReports = new ArrayList<>(); for (EvalShopPool shopPool : shopPools) { EvalUserReport report = new EvalUserReport(); report.setDimension(ReportDimensionEnum.SHOP); report.setEvalUserRankReportId(evalUserRankReportId); - report.setReward(shopPool.getReward()); - report.setScore(shopPool.getScore()); - report.setScoreRatio(shopPool.getScoreRatio().multiply(Constant.ONE_HUNDRED)); report.setEvalUserRankStageReportId(evalUserRankStageReportId); report.setShopId(shopPool.getShopId()); report.setShopName(shopPool.getShopName()); @@ -512,9 +498,6 @@ public class EvalUserReportTask { } List rankReportIds = rankReports.stream().map(EvalUserRankReport::getId).collect(Collectors.toList()); evalUserRankReportService.removeByIds(rankReportIds); - evalUserRankStageReportService.remove(Wrappers.lambdaUpdate() - .in(EvalUserRankStageReport::getEvalUserRankReportId, rankReportIds) - ); evalUserRankCodeReportService.remove(Wrappers.lambdaUpdate() .in(EvalUserRankCodeReport::getEvalUserRankReportId, rankReportIds) ); @@ -575,15 +558,14 @@ public class EvalUserReportTask { return evalGroupRanks.stream().collect(Collectors.groupingBy(EvalGroupRank::getGroupId)); } - public EvalUserRankReport saveRankReport(EvalGroupRank rank, List evalGroups, LocalDate date, Long groupId) { - List shopIds = evalGroups.stream().map(EvalGroup::getShopIds).distinct().collect(ArrayList::new, List::addAll, List::addAll); + public EvalUserRankReport saveRankReport(EvalGroupRank rank, LocalDate date, Long groupId) { +// List shopIds = evalGroups.stream().map(EvalGroup::getShopIds).distinct().collect(ArrayList::new, List::addAll, List::addAll); EvalUserRankReport reportRank = new EvalUserRankReport(); reportRank.setRankId(rank.getId()); reportRank.setRankName(rank.getName()); reportRank.setMultiStage(rank.getMultiStage()); reportRank.setDataDate(date); reportRank.setMonthly(YearMonth.from(date)); - reportRank.setShopIds(shopIds); reportRank.setGroupId(groupId); evalUserRankReportService.save(reportRank); return reportRank; -- libgit2 0.22.2