Parcourir la source

feat(backend): 评分明细完整闭环—DTO字段+查询读取

wangkangyjy il y a 1 semaine
Parent
commit
db4afbe548

+ 4 - 0
backend/src/main/java/com/yimeng/okr/dto/ScoringDto.java

@@ -1,6 +1,7 @@
 package com.yimeng.okr.dto;
 
 import com.yimeng.okr.entity.PerformanceScore;
+import com.yimeng.okr.entity.PerformanceScoreItem;
 import com.yimeng.okr.entity.PerformanceFeedback;
 import lombok.Data;
 
@@ -15,6 +16,9 @@ public class ScoringDto {
     private PerformanceScore superiorScore;
     private PerformanceScore finalScore;
     private PerformanceFeedback feedback;
+    private List<PerformanceScoreItem> selfItems;
+    private List<PerformanceScoreItem> superiorItems;
+    private List<PerformanceScoreItem> finalItems;
 
     @Data
     public static class PeriodInfo {

+ 18 - 0
backend/src/main/java/com/yimeng/okr/service/PerformanceService.java

@@ -175,6 +175,16 @@ public class PerformanceService {
         dto.setSuperiorScore(findExisting(periodId, userId, ScoreType.SUPERIOR));
         dto.setFinalScore(findExisting(periodId, userId, ScoreType.FINAL));
 
+        if (dto.getSelfScore() != null) {
+            dto.setSelfItems(queryScoreItems(dto.getSelfScore().getId()));
+        }
+        if (dto.getSuperiorScore() != null) {
+            dto.setSuperiorItems(queryScoreItems(dto.getSuperiorScore().getId()));
+        }
+        if (dto.getFinalScore() != null) {
+            dto.setFinalItems(queryScoreItems(dto.getFinalScore().getId()));
+        }
+
         dto.setFeedback(feedbackMapper.selectOne(
                 new LambdaQueryWrapper<PerformanceFeedback>()
                         .eq(PerformanceFeedback::getPeriodId, periodId)
@@ -378,6 +388,14 @@ public class PerformanceService {
         }).toList();
     }
 
+
+    private List<PerformanceScoreItem> queryScoreItems(Long scoreId) {
+        return scoreItemMapper.selectList(
+            new com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper<PerformanceScoreItem>()
+                .eq(PerformanceScoreItem::getScoreId, scoreId)
+                .orderByAsc(PerformanceScoreItem::getSortOrder));
+    }
+
     private void writeScoreItems(Long scoreId, String commentsJson) {
         if (commentsJson == null || commentsJson.isBlank()) return;
         try {