Просмотр исходного кода

feat(backend): DAN报告详情接口按类型重算blocks(历史数据生效)

E2E Test Bot 2 месяцев назад
Родитель
Сommit
edbea9ce62

+ 11 - 2
cfc-backend/src/main/java/com/etotem/cfc/service/DanReportUploadService.java

@@ -219,7 +219,7 @@ if (!DanReportUpload.DIM_MIND.equals(dimension) && !DanReportUpload.DIM_WISDOM.e
             String suggestions = upload.getEditedSuggestions() != null
                     ? upload.getEditedSuggestions() : upload.getParsedSuggestions();
             reportBlockService.save("dan", upload.getId(),
-                    reportBlockAssembler.assembleDanFromJson(itemsJson, summary, suggestions));
+                    reportBlockAssembler.assembleDanByType(itemsJson, summary, suggestions));
         } catch (Exception e) {
             log.warn("保存dan展示块失败 uploadId={}: {}", uploadId, e.getMessage());
         }
@@ -333,7 +333,16 @@ if (!DanReportUpload.DIM_MIND.equals(dimension) && !DanReportUpload.DIM_WISDOM.e
             return Result.error("记录不存在");
         }
         DanReportUploadVO vo = DanReportUploadVO.fromEntity(upload);
-        vo.setBlocks(reportBlockService.getBlocks("dan", upload.getId()));
+        // DAN 报告始终按类型重算 blocks(历史数据也生效),数据源 = edited_*/parsed_*
+        String itemsJson = upload.getEditedItems() != null ? upload.getEditedItems() : upload.getParsedItems();
+        if (itemsJson != null && !itemsJson.isEmpty()) {
+            String summary = upload.getEditedSummary() != null ? upload.getEditedSummary() : upload.getParsedSummary();
+            String suggestions = upload.getEditedSuggestions() != null
+                    ? upload.getEditedSuggestions() : upload.getParsedSuggestions();
+            vo.setBlocks(reportBlockAssembler.assembleDanByType(itemsJson, summary, suggestions));
+        } else {
+            vo.setBlocks(reportBlockService.getBlocks("dan", upload.getId()));
+        }
         if (upload.getLinkedResultId() != null) {
             DanAssessmentResult r = resultMapper.selectById(upload.getLinkedResultId());
             if (r != null) {