Преглед изворни кода

fix(report): dan报告维度映射支持类型编码(a1/b2/b4等),前端dan_*前缀统一跳转DAN报告页

Xiaogang Liao пре 4 дана
родитељ
комит
c970957343

+ 20 - 7
cfc-backend/src/main/java/com/etotem/cfc/service/ReportCollectService.java

@@ -302,15 +302,28 @@ public class ReportCollectService {
         }
     }
 
-    /** dan 家族 typeId → 测评维度:dan_a2 → mind;已知 dan_<dim> 直接映射,否则默认 mind */
+    /** dan 家族 typeId → 测评维度:dan_a2 → mind、dan_b4 → wisdom 等;兼容 dan_<dim> 语义名,否则默认 mind */
     private String resolveDanDimension(String typeId) {
         if (typeId != null && typeId.startsWith("dan_")) {
-            String dim = typeId.substring(4);
-            if (DanReportUpload.DIM_MIND.equals(dim) || DanReportUpload.DIM_WISDOM.equals(dim)
-                    || DanReportUpload.DIM_COGNITION.equals(dim) || DanReportUpload.DIM_LEARNING.equals(dim)
-                    || DanReportUpload.DIM_BEHAVIOR.equals(dim) || DanReportUpload.DIM_CAREER.equals(dim)
-                    || DanReportUpload.DIM_CAMPUS.equals(dim) || DanReportUpload.DIM_ADOLESCENT.equals(dim)) {
-                return dim;
+            String code = typeId.substring(4);
+            // 兼容语义维度名(如 dan_mind / dan_wisdom)
+            if (DanReportUpload.DIM_MIND.equals(code) || DanReportUpload.DIM_WISDOM.equals(code)
+                    || DanReportUpload.DIM_COGNITION.equals(code) || DanReportUpload.DIM_LEARNING.equals(code)
+                    || DanReportUpload.DIM_BEHAVIOR.equals(code) || DanReportUpload.DIM_CAREER.equals(code)
+                    || DanReportUpload.DIM_CAMPUS.equals(code) || DanReportUpload.DIM_ADOLESCENT.equals(code)) {
+                return code;
+            }
+            // report_type_registry.typeId 编码 → 测评维度
+            switch (code) {
+                case "a1": return DanReportUpload.DIM_COGNITION;
+                case "a2": return DanReportUpload.DIM_MIND;
+                case "b2": return DanReportUpload.DIM_BEHAVIOR;
+                case "b3": return DanReportUpload.DIM_LEARNING;
+                case "b4": return DanReportUpload.DIM_WISDOM;
+                case "b5": return DanReportUpload.DIM_ADOLESCENT;
+                case "b6": return DanReportUpload.DIM_CAREER;
+                case "c1": return DanReportUpload.DIM_CAMPUS;
+                default: break;
             }
         }
         return DanReportUpload.DIM_MIND;

+ 2 - 2
cfc-frontend/pages/health/report-upload.vue

@@ -425,8 +425,8 @@ if (options.type === 'a2' || options.reportKind === 'a2') {
           var reportType = data.reportType || 'gut_flora'
           setTimeout(function() {
             if (reportId) {
-              // 后端指纹识别后统一入库:dan_a2 → DAN 报告页,其余 → 健康报告详情页
-              if (reportType === 'dan_a2') {
+              // 后端指纹识别后统一入库:dan_* → DAN 报告页,其余 → 健康报告详情页
+              if (reportType && reportType.indexOf('dan_') === 0) {
                 uni.redirectTo({ url: '/pages/dan-assessment/report-result?reportId=' + reportId })
               } else if (reportType === 'gut_flora') {
                 uni.redirectTo({ url: '/pages/health/gut-flora-detail?reportId=' + reportId })