diff --git a/fw-morax-dao/src/main/java/cn/fw/morax/dao/eval/EvalGroupRankStageDao.java b/fw-morax-dao/src/main/java/cn/fw/morax/dao/eval/EvalGroupRankStageDao.java index 79fd10a..36d15d0 100644 --- a/fw-morax-dao/src/main/java/cn/fw/morax/dao/eval/EvalGroupRankStageDao.java +++ b/fw-morax-dao/src/main/java/cn/fw/morax/dao/eval/EvalGroupRankStageDao.java @@ -18,6 +18,5 @@ import java.util.List; */ public interface EvalGroupRankStageDao extends BaseMapper { - List getEffects(@Param("dataDate") LocalDate dataDate); } diff --git a/fw-morax-dao/src/main/java/cn/fw/morax/dao/eval/EvalUserRankStageReportDao.java b/fw-morax-dao/src/main/java/cn/fw/morax/dao/eval/EvalUserRankStageReportDao.java new file mode 100644 index 0000000..b4bd5c6 --- /dev/null +++ b/fw-morax-dao/src/main/java/cn/fw/morax/dao/eval/EvalUserRankStageReportDao.java @@ -0,0 +1,17 @@ +package cn.fw.morax.dao.eval; + + +import cn.fw.morax.domain.db.eval.EvalUserRankStageReport; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 报表绩效排名组 Mapper 接口 + *

+ * + * @author jiangchao + * @since 2023-03-31 + */ +public interface EvalUserRankStageReportDao extends BaseMapper { + +} diff --git a/fw-morax-domain/src/main/java/cn/fw/morax/domain/db/eval/EvalUserRankCodeReport.java b/fw-morax-domain/src/main/java/cn/fw/morax/domain/db/eval/EvalUserRankCodeReport.java index 820c05b..ff767fd 100644 --- a/fw-morax-domain/src/main/java/cn/fw/morax/domain/db/eval/EvalUserRankCodeReport.java +++ b/fw-morax-domain/src/main/java/cn/fw/morax/domain/db/eval/EvalUserRankCodeReport.java @@ -31,6 +31,11 @@ public class EvalUserRankCodeReport extends BaseEntity { private String rankName; /** - * 考评组id + * 多阶段 */ - @TableField(typeHandler = LongListTypeHandler.class) - private List evalGroupIds; - - /** - * 考评所有门店id - */ - @TableField(typeHandler = LongListTypeHandler.class) - private List shopIds; + private Boolean multiStage; /** * 集团id diff --git a/fw-morax-domain/src/main/java/cn/fw/morax/domain/db/eval/EvalUserRankStageReport.java b/fw-morax-domain/src/main/java/cn/fw/morax/domain/db/eval/EvalUserRankStageReport.java new file mode 100644 index 0000000..6502910 --- /dev/null +++ b/fw-morax-domain/src/main/java/cn/fw/morax/domain/db/eval/EvalUserRankStageReport.java @@ -0,0 +1,67 @@ +package cn.fw.morax.domain.db.eval; + +import cn.fw.common.data.entity.BaseEntity; +import cn.fw.common.data.mybatis.handler.LongListTypeHandler; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.time.LocalDate; +import java.time.YearMonth; +import java.util.List; + +/** + *

+ * 报表绩效排名组 + *

+ * + * @author jiangchao + * @since 2023-03-31 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName(autoResultMap = true) +public class EvalUserRankStageReport extends BaseEntity { + + private static final long serialVersionUID = 1L; + + /** + * 报表考评排名组id + */ + private Long evalUserRankReportId; + + /** + * 考评排名组id + */ + private Long evalGroupRankId; + + /** + * 考评排名组阶段id + */ + private Long evalGroupRankStageId; + + /** + * 考评排名组阶段名称 + */ + private String stageName; + + /** + * 考评组id + */ + @TableField(typeHandler = LongListTypeHandler.class) + private List evalGroupIds; + + /** + * 生效时间 + */ + private LocalDate beginTime; + + /** + * 结束时间 + */ + private LocalDate overTime; + +} diff --git a/fw-morax-domain/src/main/java/cn/fw/morax/domain/db/eval/EvalUserReport.java b/fw-morax-domain/src/main/java/cn/fw/morax/domain/db/eval/EvalUserReport.java index 6fb3364..96ae2a9 100644 --- a/fw-morax-domain/src/main/java/cn/fw/morax/domain/db/eval/EvalUserReport.java +++ b/fw-morax-domain/src/main/java/cn/fw/morax/domain/db/eval/EvalUserReport.java @@ -34,6 +34,11 @@ public class EvalUserReport extends BaseEntity { private Long evalUserRankReportId; /** + * 报表考评排名组阶段id + */ + private Long evalUserRankStageReportId; + + /** * 维度 */ private ReportDimensionEnum dimension; @@ -88,6 +93,11 @@ public class EvalUserReport extends BaseEntity { */ private Long evalUserPoolId; + /** + * 绩效池id + */ + private Long evalShopPoolId; + public EvalUserReport() { } diff --git a/fw-morax-domain/src/main/java/cn/fw/morax/domain/enums/EvalUseTargetEnum.java b/fw-morax-domain/src/main/java/cn/fw/morax/domain/enums/EvalUseTargetEnum.java index 110c0ad..1f9daf9 100644 --- a/fw-morax-domain/src/main/java/cn/fw/morax/domain/enums/EvalUseTargetEnum.java +++ b/fw-morax-domain/src/main/java/cn/fw/morax/domain/enums/EvalUseTargetEnum.java @@ -16,7 +16,7 @@ public enum EvalUseTargetEnum implements IEnum { */ NO(1, "无目标"), FIRST_TARGET(2, "第一目标"), - EXTRA_TARGET(2, "额外目标值"), + EXTRA_TARGET(3, "额外目标值"), ; /** 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 534d2dc..6303ccb 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 @@ -15,6 +15,7 @@ import com.google.common.collect.Maps; import lombok.Getter; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.apache.rocketmq.common.filter.impl.Op; import org.redisson.api.RLock; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; @@ -51,15 +52,18 @@ public class EvalUserReportTask { private final EvalGroupIndicatorHitLogService evalGroupIndicatorHitLogService; private final EvalGroupIndicatorParamService evalGroupIndicatorParamService; private final EvalUserRankCodeReportService evalUserRankCodeReportService; + private final EvalUserRankStageReportService evalUserRankStageReportService; private final EvalUserValueReportService evalUserValueReportService; private final EvalGroupIndicatorService evalGroupIndicatorService; private final IndicatorUserValueService indicatorUserValueService; private final EvalIndicatorValueService evalIndicatorValueService; private final PlatformTransactionManager platformTransactionManager; private final EvalUserRankReportService evalUserRankReportService; + private final EvalGroupRankStageService evalGroupRankStageService; private final EvalUserReportService evalUserReportService; private final TransactionDefinition transactionDefinition; private final EvalUserPoolService evalUserPoolService; + private final EvalShopPoolService evalShopPoolService; private final EvalGroupRankService evalGroupRankService; private final EvalGroupService evalGroupService; private final DistributedLocker distributedLocker; @@ -121,36 +125,48 @@ public class EvalUserReportTask { * @param date */ public void createRankReport(EvalGroupRank rank, Long groupId, LocalDate date) { - List evalGroups = evalGroupService.getEffectsByRankId(rank.getId(), date); - List evalGroupIds = evalGroups.stream().map(EvalGroup::getId).collect(Collectors.toList()); - if (PublicUtil.isEmpty(evalGroupIds)) { + //查已经开始的考评阶段 + List stages = evalGroupRankStageService.getRankStartStages(rank.getId(), date); + if (PublicUtil.isEmpty(stages)) { return; } - List pools = evalUserPoolService.list(Wrappers.lambdaQuery() - .in(EvalUserPool::getEvalGroupId, evalGroupIds) - .eq(EvalUserPool::getMonthly, YearMonth.from(date)) - .eq(EvalUserPool::getYn, Boolean.TRUE) - ); - if (PublicUtil.isEmpty(pools)) { - return; - } - List evalGroupIndicators = evalGroupIndicatorService.list(Wrappers.lambdaQuery() - .in(EvalGroupIndicator::getEvalGroupId, evalGroupIds) - .eq(EvalGroupIndicator::getYn, Boolean.TRUE) - .orderByAsc(EvalGroupIndicator::getId) - ); - //排名组 - EvalUserRankReport reportRank = this.saveRankReport(rank, evalGroupIds, evalGroups, date, groupId); + EvalUserRankReport reportRank = this.saveRankReport(rank, date, groupId); final Long evalUserRankReportId = reportRank.getId(); - //排名组指标编码、人员、门店 - List rankCodes = this.saveRankCodeReports(evalGroupIndicators, evalUserRankReportId, date); - List evalUserReports = this.saveStaffReports(pools, date, evalUserRankReportId); - List evalShopReports = this.saveShopReports(pools, date, evalUserRankReportId); - //人员维度 - List reportUserValues = calcUser(pools, evalGroupIndicators, evalUserReports, date); - //门店维度 - calcShop(evalShopReports, rankCodes, reportUserValues, evalUserReports, date); + for (EvalGroupRankStage rankStage : stages) { + List evalGroups = evalGroupService.getEvalGroups(rank.getId()); + List evalGroupIds = evalGroups.stream().map(EvalGroup::getId).collect(Collectors.toList()); + if (PublicUtil.isEmpty(evalGroupIds)) { + continue; + } + List userPools = evalUserPoolService.list(Wrappers.lambdaQuery() + .in(EvalUserPool::getEvalGroupId, evalGroupIds) + .eq(EvalUserPool::getMonthly, YearMonth.from(date)) + .eq(EvalUserPool::getYn, Boolean.TRUE) + ); + List shopPools = evalShopPoolService.list(Wrappers.lambdaQuery() + .in(EvalShopPool::getEvalGroupId, evalGroupIds) + .eq(EvalShopPool::getMonthly, YearMonth.from(date)) + .eq(EvalShopPool::getYn, Boolean.TRUE) + ); + List evalGroupIndicators = evalGroupIndicatorService.list(Wrappers.lambdaQuery() + .in(EvalGroupIndicator::getEvalGroupId, evalGroupIds) + .eq(EvalGroupIndicator::getYn, Boolean.TRUE) + .orderByAsc(EvalGroupIndicator::getId) + ); + + EvalUserRankStageReport rankStageReport = this.saveRankStageReport(reportRank, rank, rankStage, evalGroups); + final Long evalUserRankStageReportId = rankStageReport.getId(); + //排名组指标编码、人员、门店 + List rankCodes = this.saveRankCodeReports(evalGroupIndicators, evalUserRankReportId, evalUserRankStageReportId, date); + List evalUserReports = this.saveStaffReports(userPools, date, evalUserRankReportId, evalUserRankStageReportId); + List evalShopReports = this.saveShopReports(shopPools, date, evalUserRankReportId, evalUserRankStageReportId); + //人员维度 + List reportUserValues = calcUser(userPools, evalGroupIndicators, evalUserReports, date); + //门店维度 + calcShop(evalShopReports, rankCodes, reportUserValues, evalUserReports, date); + } + } public List calcUser(List pools, @@ -200,7 +216,7 @@ public class EvalUserReportTask { reportUserValues.add(convertParamDB(evalUserReportId, param, value, date)); } } else { - Map hitLogMap = queryUserTargetValue(param.getId(), poolIds, date); + Map hitLogMap = queryTargetValue(param.getId(), poolIds, date); for (EvalUserPool userPool : pools) { EvalGroupIndicatorTargetHitLog hitLog = hitLogMap.get(userPool.getId()); BigDecimal value = Optional.ofNullable(hitLog) @@ -218,6 +234,86 @@ public class EvalUserReportTask { return reportUserValues; } + public List calcShop2(List pools, + List evalGroupIndicators, + List evalShopReports, + LocalDate date) { + 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); + Map> indicatorHitLogMap = hitLogs.stream().collect(Collectors.groupingBy(EvalGroupIndicatorHitLog::getEvalGroupIndicatorId)); + Map shopPoolReportIdMap = evalShopReports.stream().collect(Collectors.toMap(EvalUserReport::getEvalShopPoolId, EvalUserReport::getId, (v1, v2) -> v1)); + + for (EvalGroupIndicator groupIndicator : evalGroupIndicators) { + final ScoreWayEnum scoreWay = groupIndicator.getScoreWay(); + final IndicatorCodeTypeEnum codeType = groupIndicator.getCodeType(); + final Long evalGroupIndicatorId = groupIndicator.getId(); + List params = evalGroupIndicatorParamService.list(Wrappers.lambdaQuery() + .eq(EvalGroupIndicatorParam::getEvalGroupIndicatorId, evalGroupIndicatorId) + .eq(EvalGroupIndicatorParam::getYn, Boolean.TRUE) + ); + + List userHitLogs = indicatorHitLogMap.getOrDefault(evalGroupIndicatorId, new ArrayList<>()); + Map poolHitLogMap = userHitLogs.stream() + .collect(Collectors.toMap(EvalGroupIndicatorHitLog::getPoolId, Function.identity(), (v1, v2) -> v1)); + for (EvalShopPool shopPool : pools) { + if (! shopPool.getEvalGroupId().equals(groupIndicator.getEvalGroupId())) { + continue; + } + Optional hitLog = Optional.ofNullable(poolHitLogMap.get(shopPool.getId())); + BigDecimal value = (ScoreWayEnum.LADDER.equals(scoreWay)) ? + hitLog.map(EvalGroupIndicatorHitLog::getHitLadderValue).orElse(BigDecimal.ZERO) : + hitLog.map(EvalGroupIndicatorHitLog::getHitCommissionValue).orElse(BigDecimal.ZERO); + Long evalUserReportId = shopPoolReportIdMap.get(shopPool.getId()); + reportUserValues.add(convertDB(evalUserReportId, groupIndicator, value, date, params)); + } + + //是否有子指标 + if (IndicatorCodeTypeEnum.COMBINE_INDICATOR.equals(codeType)) { + for (EvalGroupIndicatorParam param : params) { + Map targetHitLogMap = queryTargetValue(param.getId(), poolIds, date, EvalScopeEnum.SHOP); + + for (EvalShopPool pool : pools) { + EvalGroupIndicatorTargetHitLog hitLog = targetHitLogMap.get(pool.getId()); + EvalUseTargetEnum useTarget = hitLog.getUseTarget(); + + BigDecimal value = Optional.ofNullable(hitLog.getValue()).orElse(BigDecimal.ZERO); + if (EvalUseTargetEnum.FIRST_TARGET.equals(useTarget)) { + value = Optional.ofNullable(hitLog.getReachValue()).orElse(BigDecimal.ZERO); + } else if (EvalUseTargetEnum.EXTRA_TARGET.equals(useTarget)) { + + } + + BigDecimal value = Optional.ofNullable(hitLog) + .map(EvalGroupIndicatorTargetHitLog::getReachValue).orElse(BigDecimal.ZERO).multiply(Constant.ONE_HUNDRED); + Long evalUserReportId = userPoolReportIdMap.get(userPool.getId()); + reportUserValues.add(convertParamDB(evalUserReportId, param, value, date)); + } + + + + if (TargetTypeEnum.NO.equals(param.getTargetType())) { + Map userValueMap = queryUserOriginValue(param, userIds, date); + for (EvalShopPool shopPool : pools) { + BigDecimal value = userValueMap.getOrDefault(shopPool.getUserId(), BigDecimal.ZERO); + Long evalUserReportId = userPoolReportIdMap.get(userPool.getId()); + reportUserValues.add(convertParamDB(evalUserReportId, param, value, date)); + } + } else { + + + } + } + } + } + if (PublicUtil.isNotEmpty(reportUserValues)) { + evalUserValueReportService.saveBatch(reportUserValues); + } + return reportUserValues; + } + public void calcShop(List evalShopReports, List rankCodes, List reportUserValues, @@ -250,11 +346,12 @@ public class EvalUserReportTask { } } - public List saveStaffReports(List pools, LocalDate date, Long evalUserRankReportId) { + public List saveStaffReports(List pools, LocalDate date, Long evalUserRankReportId, Long evalUserRankStageReportId) { List evalUserReports = new ArrayList<>(); for (EvalUserPool userPool : pools) { EvalUserReport report = new EvalUserReport(); report.setEvalUserRankReportId(evalUserRankReportId); + report.setEvalUserRankStageReportId(evalUserRankStageReportId); report.setDimension(ReportDimensionEnum.STAFF); report.setUserId(userPool.getUserId()); report.setUserName(userPool.getUserName()); @@ -271,15 +368,15 @@ public class EvalUserReportTask { return evalUserReports; } - public List saveShopReports(List pools, LocalDate date, Long evalUserRankReportId) { + public List saveShopReports(List shopPools, LocalDate date, Long evalUserRankReportId, Long evalUserRankStageReportId) { List evalShopReports = new ArrayList<>(); - Map shopMap = pools.stream().collect(Collectors.toMap(EvalUserPool::getShopId, EvalUserPool::getShopName, (v1, v2) -> v1)); - for (Long shopId : shopMap.keySet()) { + for (EvalShopPool shopPool : shopPools) { EvalUserReport report = new EvalUserReport(); report.setDimension(ReportDimensionEnum.SHOP); report.setEvalUserRankReportId(evalUserRankReportId); - report.setShopId(shopId); - report.setShopName(shopMap.get(shopId)); + report.setEvalUserRankStageReportId(evalUserRankStageReportId); + report.setShopId(shopPool.getShopId()); + report.setShopName(shopPool.getShopName()); report.setDataDate(date); evalShopReports.add(report); } @@ -314,13 +411,13 @@ public class EvalUserReportTask { return referValueMap; } - public Map queryUserTargetValue(Long referId, List poolIds, LocalDate dataDate) { + public Map queryTargetValue(Long referId, List poolIds, LocalDate dataDate, EvalScopeEnum scopeType) { List targetHitLogs = evalGroupIndicatorTargetHitLogService.list(Wrappers.lambdaQuery() .eq(EvalGroupIndicatorTargetHitLog::getReferId, referId) .eq(EvalGroupIndicatorTargetHitLog::getTargetType, IndicatorTypeEnum.EXAMINE) .eq(EvalGroupIndicatorTargetHitLog::getDataDate, dataDate) .in(EvalGroupIndicatorTargetHitLog::getPoolId, poolIds) - .eq(EvalGroupIndicatorTargetHitLog::getScopeType, EvalScopeEnum.STAFF) + .eq(EvalGroupIndicatorTargetHitLog::getScopeType, scopeType) .eq(EvalGroupIndicatorTargetHitLog::getYn, Boolean.TRUE) ); return targetHitLogs.stream() @@ -371,7 +468,8 @@ public class EvalUserReportTask { ); } - public List saveRankCodeReports(List evalGroupIndicators, Long reportRankId, LocalDate date) { + public List saveRankCodeReports(List evalGroupIndicators, Long reportRankId, + Long evalUserRankStageReportId, LocalDate date) { Set codes = new HashSet<>(); List rankCodes = new ArrayList<>(); AtomicInteger order = new AtomicInteger(); @@ -380,7 +478,7 @@ public class EvalUserReportTask { if (! codes.add(groupIndicator.getCode())) { continue; } - rankCodes.add(this.convertRankCodeDB(groupIndicator, date, reportRankId, order)); + rankCodes.add(this.convertRankCodeDB(groupIndicator, date, reportRankId, evalUserRankStageReportId, order)); //组合指标 if (PublicUtil.isNotEmpty(groupIndicator.getCodeType()) && @@ -413,13 +511,12 @@ public class EvalUserReportTask { return evalGroupRanks.stream().collect(Collectors.groupingBy(EvalGroupRank::getGroupId)); } - public EvalUserRankReport saveRankReport(EvalGroupRank rank, List evalGroupIds, 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.setEvalGroupIds(evalGroupIds); - reportRank.setShopIds(shopIds); + reportRank.setMultiStage(rank.getMultiStage()); reportRank.setDataDate(date); reportRank.setMonthly(YearMonth.from(date)); reportRank.setGroupId(groupId); @@ -427,6 +524,24 @@ public class EvalUserReportTask { return reportRank; } + public EvalUserRankStageReport saveRankStageReport(EvalUserRankReport rankReport, EvalGroupRank rank, + EvalGroupRankStage rankStage, List evalGroups) { + List shopIds = evalGroups.stream().map(EvalGroup::getShopIds).distinct().collect(ArrayList::new, List::addAll, List::addAll); + List evalGroupIds = evalGroups.stream().map(EvalGroup::getId).collect(Collectors.toList()); + EvalUserRankStageReport reportRankStage = new EvalUserRankStageReport(); + reportRankStage.setEvalUserRankReportId(rankReport.getId()); + reportRankStage.setEvalGroupRankId(rank.getId()); + reportRankStage.setEvalGroupRankStageId(rankStage.getId()); + if (PublicUtil.isNotEmpty(rankStage.getName())) { + reportRankStage.setStageName(rankStage.getName()); + } + reportRankStage.setEvalGroupIds(evalGroupIds); + reportRankStage.setBeginTime(rankStage.getBeginTime()); + reportRankStage.setOverTime(rankStage.getOverTime()); + evalUserRankStageReportService.save(reportRankStage); + return reportRankStage; + } + public EvalUserValueReport convertDB(Long evalUserReportId, EvalGroupIndicator groupIndicator, BigDecimal value, LocalDate date, List params) { EvalUserValueReport userValue = new EvalUserValueReport(); @@ -459,9 +574,11 @@ public class EvalUserReportTask { return userValue; } - public EvalUserRankCodeReport convertRankCodeDB(EvalGroupIndicator groupIndicator, LocalDate date, Long reportRankId, AtomicInteger order) { + public EvalUserRankCodeReport convertRankCodeDB(EvalGroupIndicator groupIndicator, LocalDate date, Long reportRankId, + Long evalUserRankStageReportId, AtomicInteger order) { EvalUserRankCodeReport rankCode = new EvalUserRankCodeReport(); rankCode.setEvalUserRankReportId(reportRankId); + rankCode.setEvalUserRankStageReportId(evalUserRankStageReportId); rankCode.setEvalGroupIndicatorId(groupIndicator.getId()); rankCode.setCode(groupIndicator.getCode()); rankCode.setCodeType(groupIndicator.getCodeType()); @@ -494,5 +611,4 @@ public class EvalUserReportTask { return rankCode; } - } diff --git a/fw-morax-service/src/main/java/cn/fw/morax/service/data/eval/EvalGroupRankStageService.java b/fw-morax-service/src/main/java/cn/fw/morax/service/data/eval/EvalGroupRankStageService.java index 240b7fa..818d1bc 100644 --- a/fw-morax-service/src/main/java/cn/fw/morax/service/data/eval/EvalGroupRankStageService.java +++ b/fw-morax-service/src/main/java/cn/fw/morax/service/data/eval/EvalGroupRankStageService.java @@ -17,5 +17,11 @@ import java.util.List; */ public interface EvalGroupRankStageService extends IService { - List getEffects(LocalDate dataDate); + /** + * 获取排名组开始的阶段 + * @param rankId + * @return + */ + List getRankStartStages(Long rankId, LocalDate date); + } diff --git a/fw-morax-service/src/main/java/cn/fw/morax/service/data/eval/EvalUserRankStageReportService.java b/fw-morax-service/src/main/java/cn/fw/morax/service/data/eval/EvalUserRankStageReportService.java new file mode 100644 index 0000000..dddd77d --- /dev/null +++ b/fw-morax-service/src/main/java/cn/fw/morax/service/data/eval/EvalUserRankStageReportService.java @@ -0,0 +1,17 @@ +package cn.fw.morax.service.data.eval; + + +import cn.fw.morax.domain.db.eval.EvalUserRankStageReport; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 报表绩效排名组 服务类 + *

+ * + * @author jiangchao + * @since 2023-03-31 + */ +public interface EvalUserRankStageReportService extends IService { + +} diff --git a/fw-morax-service/src/main/java/cn/fw/morax/service/data/eval/impl/EvalGroupRankStageServiceImpl.java b/fw-morax-service/src/main/java/cn/fw/morax/service/data/eval/impl/EvalGroupRankStageServiceImpl.java index 4224dc9..86f44ea 100644 --- a/fw-morax-service/src/main/java/cn/fw/morax/service/data/eval/impl/EvalGroupRankStageServiceImpl.java +++ b/fw-morax-service/src/main/java/cn/fw/morax/service/data/eval/impl/EvalGroupRankStageServiceImpl.java @@ -4,6 +4,7 @@ package cn.fw.morax.service.data.eval.impl; import cn.fw.morax.dao.eval.EvalGroupRankStageDao; import cn.fw.morax.domain.db.eval.EvalGroupRankStage; import cn.fw.morax.service.data.eval.EvalGroupRankStageService; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; @@ -22,7 +23,13 @@ import java.util.List; public class EvalGroupRankStageServiceImpl extends ServiceImpl implements EvalGroupRankStageService { @Override - public List getEffects(LocalDate dataDate) { - return this.baseMapper.getEffects(dataDate); + public List getRankStartStages(Long rankId, LocalDate date) { + List stages = this.baseMapper.selectList(Wrappers.lambdaQuery() + .eq(EvalGroupRankStage::getEvalGroupRankId, rankId) + .eq(EvalGroupRankStage::getYn, Boolean.TRUE) + .le(EvalGroupRankStage::getBeginTime, date) + .orderByAsc(EvalGroupRankStage::getBeginTime) + ); + return stages; } } diff --git a/fw-morax-service/src/main/java/cn/fw/morax/service/data/eval/impl/EvalUserRankStageServiceImplReport.java b/fw-morax-service/src/main/java/cn/fw/morax/service/data/eval/impl/EvalUserRankStageServiceImplReport.java new file mode 100644 index 0000000..b709c57 --- /dev/null +++ b/fw-morax-service/src/main/java/cn/fw/morax/service/data/eval/impl/EvalUserRankStageServiceImplReport.java @@ -0,0 +1,22 @@ +package cn.fw.morax.service.data.eval.impl; + + +import cn.fw.morax.dao.eval.EvalUserRankStageReportDao; +import cn.fw.morax.domain.db.eval.EvalUserRankStageReport; +import cn.fw.morax.service.data.eval.EvalUserRankStageReportService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 报表绩效排名组 服务实现类 + *

+ * + * @author jiangchao + * @since 2023-03-31 + */ +@Service +public class EvalUserRankStageServiceImplReport extends ServiceImpl + implements EvalUserRankStageReportService { + +}