diff --git a/fw-morax-domain/src/main/java/cn/fw/morax/domain/dto/eval/EvalUserRankDTO.java b/fw-morax-domain/src/main/java/cn/fw/morax/domain/dto/eval/EvalUserRankDTO.java
new file mode 100644
index 0000000..8e4351a
--- /dev/null
+++ b/fw-morax-domain/src/main/java/cn/fw/morax/domain/dto/eval/EvalUserRankDTO.java
@@ -0,0 +1,62 @@
+package cn.fw.morax.domain.dto.eval;
+
+import cn.fw.morax.common.utils.PublicUtil;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.validation.constraints.NotNull;
+import java.time.LocalDate;
+import java.time.YearMonth;
+
+/**
+ *
+ * 绩效组排名配置
+ *
+ *
+ * @author jiangchao
+ * @since 2022-09-26
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class EvalUserRankDTO {
+
+ /**
+ * 用户id
+ */
+// @NotNull(message = "用户id不能为空")
+ private Long userId;
+
+ /**
+ * 门店
+ */
+ @NotNull(message = "门店")
+ private Long shopId;
+
+ /**
+ * 岗位
+ */
+ @NotNull(message = "岗位")
+ private Long postId;
+
+ /**
+ * 考评排名组id
+ */
+ @NotNull(message = "考评排名组id")
+ private Long evalGroupRankId;
+
+ /**
+ * 月份
+ */
+ private YearMonth monthly;
+
+ public void initMonthly() {
+ if (PublicUtil.isEmpty(this.monthly)) {
+ this.monthly = YearMonth.now();
+ }
+ }
+
+}
diff --git a/fw-morax-domain/src/main/java/cn/fw/morax/domain/vo/EvalSelectorVO.java b/fw-morax-domain/src/main/java/cn/fw/morax/domain/vo/EvalSelectorVO.java
index 1c82322..f403c2e 100644
--- a/fw-morax-domain/src/main/java/cn/fw/morax/domain/vo/EvalSelectorVO.java
+++ b/fw-morax-domain/src/main/java/cn/fw/morax/domain/vo/EvalSelectorVO.java
@@ -17,17 +17,8 @@ import java.util.List;
*/
@Data
@EqualsAndHashCode
-@Builder
public class EvalSelectorVO {
/**
- * 岗位id
- */
- private Long postId;
- /**
- * 门店id
- */
- private Long shopId;
- /**
* 名称
*/
private String name;
@@ -37,17 +28,6 @@ public class EvalSelectorVO {
*/
private List ranks;
- public static EvalSelectorVO whit(Long postId, Long shopId, String shopName, String postName) {
- String name = shopName +
- " (" +
- postName +
- ") ";
- EvalSelectorVO vo = new EvalSelectorVO();
- vo.setShopId(shopId);
- vo.setPostId(postId);
- vo.setName(name);
- return vo;
- }
public EvalSelectorVO() {
}
diff --git a/fw-morax-server/src/main/java/cn/fw/morax/server/controller/app/EvalPoolController.java b/fw-morax-server/src/main/java/cn/fw/morax/server/controller/app/EvalPoolController.java
index cae77ce..7f6d67b 100644
--- a/fw-morax-server/src/main/java/cn/fw/morax/server/controller/app/EvalPoolController.java
+++ b/fw-morax-server/src/main/java/cn/fw/morax/server/controller/app/EvalPoolController.java
@@ -9,6 +9,7 @@ import cn.fw.common.web.auth.annotation.CurrentUser;
import cn.fw.data.base.domain.common.Message;
import cn.fw.morax.common.utils.PublicUtil;
import cn.fw.morax.domain.dto.eval.EvalGroupIndicatorRankDTO;
+import cn.fw.morax.domain.dto.eval.EvalUserRankDTO;
import cn.fw.morax.domain.dto.query.EvalPoolQueryDTO;
import cn.fw.morax.domain.enums.EvalScopeEnum;
import cn.fw.morax.domain.vo.EvalSelectorVO;
@@ -24,6 +25,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
+import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import java.time.LocalDate;
import java.time.YearMonth;
@@ -79,7 +81,8 @@ public class EvalPoolController {
@GetMapping("/staff-selector")
@IgnoreUserToken
@ControllerMethod("本月可查看的其他考评池选项")
- public Message> evalPoolSelector(@CurrentUser LoginAuthBean user, Long userId, @RequestParam(required = false) YearMonth monthly) {
+ public Message> evalPoolSelector(@CurrentUser LoginAuthBean user, Long userId,
+ @RequestParam(required = false) YearMonth monthly) {
if (Objects.isNull(monthly)) {
monthly = YearMonth.now();
}
@@ -91,33 +94,28 @@ public class EvalPoolController {
/**
* 考评详情查询 (查看自己考评详情)
- *
- * @param userId 用户id
- * @param monthly 月度
- * @return 绩效池详情
- * @ignoreParams userId
*/
@GetMapping("/own-detail")
@ControllerMethod("考评详情查询")
public Message> evalPoolOwnDetail(@CurrentUser Long userId,
- @RequestParam(required = false) YearMonth monthly) {
- if (Objects.isNull(monthly)) {
- monthly = YearMonth.now();
- }
- return success(evalGroupPoolService.queryUserPoolDetail(userId, monthly));
+ @Valid EvalUserRankDTO dto) {
+ dto.initMonthly();
+ dto.setUserId(userId);
+ return success(evalGroupPoolService.queryRankStagePools(dto));
}
/**
* 考评详情查询 (查看他人考评详情)
*
- * @param evalPoolId 用户id
- * @return 绩效池详情
- * @ignoreParams userId
*/
- @GetMapping("/staff")
+ @GetMapping("/detail")
@ControllerMethod("考评详情查询")
- public Message evalPoolDetail(@NotNull(message = "考评池id不能为空") Long evalPoolId) {
- return success(evalGroupPoolService.queryRankStagePools(evalPoolId));
+ public Message> evalPoolDetail(@Valid EvalUserRankDTO dto) {
+ dto.initMonthly();
+ if (PublicUtil.isEmpty(dto.getUserId())) {
+ throw new BusinessException("人员信息不能为空");
+ }
+ return success(evalGroupPoolService.queryRankStagePools(dto));
}
/**
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 684a0c3..d68ecc4 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
@@ -7,6 +7,7 @@ import cn.fw.morax.common.utils.PublicUtil;
import cn.fw.morax.domain.db.eval.*;
import cn.fw.morax.domain.db.kpi.*;
import cn.fw.morax.domain.dto.eval.EvalGroupIndicatorRankDTO;
+import cn.fw.morax.domain.dto.eval.EvalUserRankDTO;
import cn.fw.morax.domain.enums.*;
import cn.fw.morax.domain.vo.EvalSelectorVO;
import cn.fw.morax.domain.vo.SelectorVO;
@@ -104,29 +105,38 @@ public class EvalGroupPoolService {
*
* @return
*/
- public List queryRankStagePools(final Long userId, final Long evalGroupRankId) {
-
+ public List queryRankStagePools(EvalUserRankDTO dto) {
+ final Long userId = dto.getUserId();
+ final Long postId = dto.getPostId();
+ final Long shopId = dto.getShopId();
+ final Long evalGroupRankId = dto.getEvalGroupRankId();
List pools = evalUserPoolService.list(Wrappers.lambdaQuery()
+ .eq(EvalUserPool::getPostId, postId)
+ .eq(EvalUserPool::getShopId, shopId)
.eq(EvalUserPool::getUserId, userId)
.eq(EvalUserPool::getEvalGroupRankId, evalGroupRankId)
.eq(EvalUserPool::getYn, Boolean.TRUE)
.orderByDesc(EvalUserPool::getScoreRatio)
);
- pools.stream().map(EvalUserPool::getE)
-
+ Map> stagePoolMap = pools.stream().collect(Collectors.groupingBy(EvalUserPool::getEvalGroupRankStageId));
+ List evalGroupRankStageIds = pools.stream().map(EvalUserPool::getEvalGroupRankStageId).collect(Collectors.toList());
List stages = evalGroupRankStageService.list(Wrappers.lambdaQuery()
- .in(EvalGroupRankStage::getEvalGroupRankId, evalGroupRankId)
+ .in(EvalGroupRankStage::getId, evalGroupRankStageIds)
.eq(EvalGroupRankStage::getYn, Boolean.TRUE)
+ .orderByAsc(EvalGroupRankStage::getBeginTime)
);
-
-
- EvalUserPool evalUserPool = evalUserPoolService.getById(poolId);
- if (PublicUtil.isEmpty(evalUserPool)) {
- return null;
+ List stageVos = PublicUtil.copyList(stages, EvalUserRankStageVO.class);
+ for (EvalUserRankStageVO stageVO : stageVos) {
+ List rankPools = stagePoolMap.get(stageVO.getId());
+ if (PublicUtil.isNotEmpty(rankPools)) {
+ EvalUserPool stagePool = rankPools.get(0);
+ EvalUserPoolVO evalUserPoolVO = PublicUtil.copy(stagePool, EvalUserPoolVO.class);
+ stageVO.setPool(evalUserPoolVO);
+ }
}
- return poolDetail(evalUserPool);
+ return stageVos;
}
// /**
@@ -376,7 +386,6 @@ public class EvalGroupPoolService {
if (PublicUtil.isEmpty(pool)) {
return null;
}
-// BV.notNull(pool, "考评池不存在");
Long userId = pool.getUserId();
return getHitIndicatorDetail(evalPoolId, EvalScopeEnum.STAFF, userId, evalGroupIndicatorId, dataDate);
}