diff --git a/doc/2023_update.sql b/doc/2023_update.sql index ecce0a0..977c3a9 100644 --- a/doc/2023_update.sql +++ b/doc/2023_update.sql @@ -4,6 +4,7 @@ ALTER TABLE `fw_morax`.`eval_group_reward_ladders` CREATE TABLE `eval_group_reward_rank_log` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, + `name` varchar(512) NOT NULL COMMENT '名称', `pool_id` bigint(20) DEFAULT NULL COMMENT '人员id 、门店id', `scope_type` tinyint(4) NOT NULL COMMENT '考评范围; 1:门店考评 2:人员考评', `refer_id` bigint(20) DEFAULT NULL COMMENT '考评奖惩 前置条件 配置id', @@ -11,6 +12,7 @@ CREATE TABLE `eval_group_reward_rank_log` ( `value` decimal(18,4) DEFAULT NULL COMMENT '原始值', `reach_value` decimal(18,4) DEFAULT NULL COMMENT '达成目标', `rank` int(10) DEFAULT NULL COMMENT '排名', + `hit` tinyint(1) DEFAULT NULL COMMENT '是否命中', `data_date` date NOT NULL COMMENT '数据日期', `group_id` bigint(20) NOT NULL COMMENT '集团', `create_time` datetime DEFAULT NULL, diff --git a/fw-morax-dao/src/main/java/cn/fw/morax/dao/eval/EvalGroupRewardHitLogDao.java b/fw-morax-dao/src/main/java/cn/fw/morax/dao/eval/EvalGroupRewardHitLogDao.java index aee510b..9211ae9 100644 --- a/fw-morax-dao/src/main/java/cn/fw/morax/dao/eval/EvalGroupRewardHitLogDao.java +++ b/fw-morax-dao/src/main/java/cn/fw/morax/dao/eval/EvalGroupRewardHitLogDao.java @@ -2,7 +2,12 @@ package cn.fw.morax.dao.eval; import cn.fw.morax.domain.db.eval.EvalGroupRewardHitLog; +import cn.fw.morax.domain.vo.eval.EvalGroupRewardHitLogVO; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.time.LocalDate; +import java.util.List; /** *

@@ -14,4 +19,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; */ public interface EvalGroupRewardHitLogDao extends BaseMapper { + List getUserHitLogs(@Param("evalGroupRewardId")Long evalGroupRewardId, @Param("dataDate")LocalDate dataDate); + + List getShopHitLogs(@Param("evalGroupRewardId")Long evalGroupRewardId, @Param("dataDate")LocalDate dataDate); + } diff --git a/fw-morax-dao/src/main/resources/mapper/eval/EvalGroupRewardHitLogMapper.xml b/fw-morax-dao/src/main/resources/mapper/eval/EvalGroupRewardHitLogMapper.xml index 39f11cd..bbf8854 100644 --- a/fw-morax-dao/src/main/resources/mapper/eval/EvalGroupRewardHitLogMapper.xml +++ b/fw-morax-dao/src/main/resources/mapper/eval/EvalGroupRewardHitLogMapper.xml @@ -2,6 +2,50 @@ + + \ No newline at end of file diff --git a/fw-morax-domain/src/main/java/cn/fw/morax/domain/bo/eval/EvalGroupUserShop.java b/fw-morax-domain/src/main/java/cn/fw/morax/domain/bo/eval/EvalGroupUserShop.java index beb8e94..34805ac 100644 --- a/fw-morax-domain/src/main/java/cn/fw/morax/domain/bo/eval/EvalGroupUserShop.java +++ b/fw-morax-domain/src/main/java/cn/fw/morax/domain/bo/eval/EvalGroupUserShop.java @@ -48,6 +48,11 @@ public class EvalGroupUserShop { private Long poolId; /** + * 名称 + */ + private String name; + + /** * 用户id、门店id */ private Long referId; diff --git a/fw-morax-domain/src/main/java/cn/fw/morax/domain/db/eval/EvalGroupRewardRankLog.java b/fw-morax-domain/src/main/java/cn/fw/morax/domain/db/eval/EvalGroupRewardRankLog.java index b6a134d..bdd46f2 100644 --- a/fw-morax-domain/src/main/java/cn/fw/morax/domain/db/eval/EvalGroupRewardRankLog.java +++ b/fw-morax-domain/src/main/java/cn/fw/morax/domain/db/eval/EvalGroupRewardRankLog.java @@ -41,6 +41,11 @@ public class EvalGroupRewardRankLog extends BaseAuditableTimeEntity> queryRewardProportion(Long evalGroupRewardId, + public Message> queryUserRewardProportion(@NotNull(message = "奖惩id不能为空") Long evalGroupRewardId, + @NotNull(message = "类型不能为空") Integer scopeType, @NotNull(message = "日期不能为空") @RequestParam("dataDate") LocalDate dataDate) { - return success(evalGroupPoolService.queryRewardProportion(evalGroupRewardId, dataDate)); + EvalScopeEnum scopeTypeEnum = EvalScopeEnum.ofValue(scopeType); + BV.notNull(scopeTypeEnum, "参数错误"); + return success(evalGroupPoolService.queryRewardProportion(scopeTypeEnum, evalGroupRewardId, dataDate)); } + /** * 门店考评池列表 * diff --git a/fw-morax-service/src/main/java/cn/fw/morax/service/biz/calculator/eval/reward/EvalRewardBaseCalculator.java b/fw-morax-service/src/main/java/cn/fw/morax/service/biz/calculator/eval/reward/EvalRewardBaseCalculator.java index bc2a2c0..9f4fc6b 100644 --- a/fw-morax-service/src/main/java/cn/fw/morax/service/biz/calculator/eval/reward/EvalRewardBaseCalculator.java +++ b/fw-morax-service/src/main/java/cn/fw/morax/service/biz/calculator/eval/reward/EvalRewardBaseCalculator.java @@ -468,6 +468,7 @@ public abstract class EvalRewardBaseCalculator implements CalculatorlambdaUpdate() - .eq(EvalGroupRewardRankLog::getId, matchRankLogs.stream().map(EvalGroupRewardRankLog::getId).collect(Collectors.toList())) + .in(EvalGroupRewardRankLog::getId, matchRankLogs.stream().map(EvalGroupRewardRankLog::getId).collect(Collectors.toList())) .set(EvalGroupRewardRankLog::getHit, Boolean.TRUE) ); } diff --git a/fw-morax-service/src/main/java/cn/fw/morax/service/biz/eval/EvalCalculateService.java b/fw-morax-service/src/main/java/cn/fw/morax/service/biz/eval/EvalCalculateService.java index 3dd3626..b0da103 100644 --- a/fw-morax-service/src/main/java/cn/fw/morax/service/biz/eval/EvalCalculateService.java +++ b/fw-morax-service/src/main/java/cn/fw/morax/service/biz/eval/EvalCalculateService.java @@ -413,6 +413,7 @@ public class EvalCalculateService { public EvalGroupUserShop convertBO(EvalGroupUser user, EvalUserPool userPool) { EvalGroupUserShop userShop = new EvalGroupUserShop(); + userShop.setName(user.getUserName()); userShop.setScopeType(EvalScopeEnum.STAFF); userShop.setEvalGroupId(user.getEvalGroupId()); userShop.setPoolId(userPool.getId()); @@ -426,6 +427,7 @@ public class EvalCalculateService { public EvalGroupUserShop convertBO(EvalShopPool shopPool, EvalGroup evalGroup, LocalDate dataDate) { EvalGroupUserShop userShop = new EvalGroupUserShop(); + userShop.setName(shopPool.getShopName()); userShop.setReferId(shopPool.getShopId()); userShop.setPoolId(shopPool.getId()); userShop.setScopeType(EvalScopeEnum.SHOP); diff --git a/fw-morax-service/src/main/java/cn/fw/morax/service/biz/eval/EvalGroupPoolService.java b/fw-morax-service/src/main/java/cn/fw/morax/service/biz/eval/EvalGroupPoolService.java index 09e7499..c0640cc 100644 --- a/fw-morax-service/src/main/java/cn/fw/morax/service/biz/eval/EvalGroupPoolService.java +++ b/fw-morax-service/src/main/java/cn/fw/morax/service/biz/eval/EvalGroupPoolService.java @@ -65,6 +65,8 @@ public class EvalGroupPoolService { private final IndicatorUserValueService indicatorUserValueService; private final EvalIndicatorValueService evalIndicatorValueService; private final EvalGroupUserService evalGroupUserService; + private final EvalGroupRewardService evalGroupRewardService; + private final EvalGroupService evalGroupService; private final EvalUserPoolService evalUserPoolService; private final EvalShopPoolService evalShopPoolService; private final CommonService commonService; @@ -1258,12 +1260,14 @@ public class EvalGroupPoolService { return rankLogVOs; } - public List queryRewardProportion(Long evalGroupRewardId, LocalDate dataDate) { - List rewardHitLogs = evalGroupRewardHitLogService.list(Wrappers.lambdaQuery() - .eq(EvalGroupRewardHitLog::getEvalGroupRewardId, evalGroupRewardId) - .eq(EvalGroupRewardHitLog::getDataDate, dataDate) - ); - List hitLogVOS = PublicUtil.copyList(rewardHitLogs, EvalGroupRewardHitLogVO.class); + public List queryRewardProportion(EvalScopeEnum scopeType, Long evalGroupRewardId, LocalDate dataDate) { + List hitLogVOS = null; + if (EvalScopeEnum.STAFF.equals(scopeType)) { + hitLogVOS = evalGroupRewardHitLogService.getUserHitLogs(evalGroupRewardId, dataDate); + } else { + hitLogVOS = evalGroupRewardHitLogService.getShopHitLogs(evalGroupRewardId, dataDate); + } + hitLogVOS.stream().forEach(hitLog -> hitLog.convertValueToPercent()); return hitLogVOS; } } diff --git a/fw-morax-service/src/main/java/cn/fw/morax/service/data/eval/EvalGroupRewardHitLogService.java b/fw-morax-service/src/main/java/cn/fw/morax/service/data/eval/EvalGroupRewardHitLogService.java index d62c0c9..ade40e6 100644 --- a/fw-morax-service/src/main/java/cn/fw/morax/service/data/eval/EvalGroupRewardHitLogService.java +++ b/fw-morax-service/src/main/java/cn/fw/morax/service/data/eval/EvalGroupRewardHitLogService.java @@ -3,8 +3,12 @@ package cn.fw.morax.service.data.eval; import cn.fw.morax.domain.db.eval.EvalGroupReward; import cn.fw.morax.domain.db.eval.EvalGroupRewardHitLog; +import cn.fw.morax.domain.vo.eval.EvalGroupRewardHitLogVO; import com.baomidou.mybatisplus.extension.service.IService; +import java.time.LocalDate; +import java.util.List; + /** *

* 考评奖惩 服务类 @@ -15,4 +19,8 @@ import com.baomidou.mybatisplus.extension.service.IService; */ public interface EvalGroupRewardHitLogService extends IService { + List getUserHitLogs(Long evalGroupRewardId, LocalDate dataDate); + + List getShopHitLogs(Long evalGroupRewardId, LocalDate dataDate); + } diff --git a/fw-morax-service/src/main/java/cn/fw/morax/service/data/eval/impl/EvalGroupRewardHitLogServiceImpl.java b/fw-morax-service/src/main/java/cn/fw/morax/service/data/eval/impl/EvalGroupRewardHitLogServiceImpl.java index 8cd8889..a705f51 100644 --- a/fw-morax-service/src/main/java/cn/fw/morax/service/data/eval/impl/EvalGroupRewardHitLogServiceImpl.java +++ b/fw-morax-service/src/main/java/cn/fw/morax/service/data/eval/impl/EvalGroupRewardHitLogServiceImpl.java @@ -5,11 +5,15 @@ import cn.fw.morax.dao.eval.EvalGroupRewardHitLogDao; import cn.fw.morax.dao.eval.EvalGroupRewardTargetHitLogDao; import cn.fw.morax.domain.db.eval.EvalGroupRewardHitLog; import cn.fw.morax.domain.db.eval.EvalGroupRewardTargetHitLog; +import cn.fw.morax.domain.vo.eval.EvalGroupRewardHitLogVO; import cn.fw.morax.service.data.eval.EvalGroupRewardHitLogService; import cn.fw.morax.service.data.eval.EvalGroupRewardTargetHitLogService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; +import java.time.LocalDate; +import java.util.List; + /** *

* 考评指标达成目标记录 服务实现类 @@ -23,4 +27,13 @@ public class EvalGroupRewardHitLogServiceImpl extends ServiceImpl implements EvalGroupRewardHitLogService { + @Override + public List getUserHitLogs(Long evalGroupRewardId, LocalDate dataDate) { + return this.baseMapper.getUserHitLogs(evalGroupRewardId, dataDate); + } + + @Override + public List getShopHitLogs(Long evalGroupRewardId, LocalDate dataDate) { + return this.baseMapper.getShopHitLogs(evalGroupRewardId, dataDate); + } }