Jelajahi Sumber

性能验证-报告归档树-优化:第三层“实验项目”按照名字分组

ZhuJiaHao 4 bulan lalu
induk
melakukan
0098473cf1

+ 14 - 1
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/pv/persistence/entity/ExperimentalDataDTO.java

@@ -18,10 +18,15 @@ public class ExperimentalDataDTO {
     private String bianZhiBuMen;
 
     /**
-     * 实验项目
+     * 实验项目(id编号)
      */
     private String shiYanXiangMu;
 
+    /**
+     * 实验项目(名字)
+     */
+    private String shiYanXiangMuName;
+
     /**
      * 实验仪器
      */
@@ -82,6 +87,14 @@ public class ExperimentalDataDTO {
         this.shiYanXiangMu = shiYanXiangMu;
     }
 
+    public String getShiYanXiangMuName() {
+        return shiYanXiangMuName;
+    }
+
+    public void setShiYanXiangMuName(String shiYanXiangMuName) {
+        this.shiYanXiangMuName = shiYanXiangMuName;
+    }
+
     public String getShiYanYiQi() {
         return shiYanYiQi;
     }

+ 10 - 8
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/pv/provider/ExperimentalProvider.java

@@ -306,22 +306,24 @@ public class ExperimentalProvider extends GenericProvider implements IExperiment
 						"dept_" + year + "_" + deptId, deptName, 2);
 				deptNode.setChildren(new ArrayList<>());
 
-				// 第三层:按实验项目分组
+				// 第三层:按实验项目分组(注意:按名字,不是id)
+				for(ExperimentalDataDTO dto:deptDataList){
+					//获取实验项目名称,如果找不到则使用实验项目ID
+					dto.setShiYanXiangMuName(shiYanXiangMuIdToNameMap.getOrDefault(dto.getShiYanXiangMu(), "未知实验项目(" + dto.getShiYanXiangMu() + ")"));
+				}
 				Map<String, List<ExperimentalDataDTO>> projectGroup = deptDataList.stream()
-						.filter(data -> StringUtils.hasText(data.getShiYanXiangMu()))
-						.collect(Collectors.groupingBy(ExperimentalDataDTO::getShiYanXiangMu));
+						.filter(data -> StringUtils.hasText(data.getShiYanXiangMuName()))
+						.collect(Collectors.groupingBy(ExperimentalDataDTO::getShiYanXiangMuName));
 
 				// 遍历实验项目分组
 				for (Map.Entry<String, List<ExperimentalDataDTO>> projectEntry : projectGroup.entrySet()) {
-					String projecId = projectEntry.getKey();
 					List<ExperimentalDataDTO> projectDataList = projectEntry.getValue();
 
-					// 获取部门名称,如果找不到则使用部门ID
-					String projectName = shiYanXiangMuIdToNameMap.getOrDefault(projecId, "未知实验项目(" + projecId + ")");
+					String projectName = projectEntry.getKey();
 
 					// 创建实验项目节点
 					ExperimentalTreeNode projectNode = new ExperimentalTreeNode(
-							"project_" + year + "_" + deptId + "_" + projecId,
+							"project_" + year + "_" + deptId + "_" + projectName,
 							projectName, 3);
 					projectNode.setChildren(new ArrayList<>());
 
@@ -337,7 +339,7 @@ public class ExperimentalProvider extends GenericProvider implements IExperiment
 
 						// 创建实验仪器节点
 						ExperimentalTreeNode instrumentNode = new ExperimentalTreeNode(
-								"instrument_" + year + "_" + deptId + "_" + projecId + "_" + instrumentName,
+								"instrument_" + year + "_" + deptId + "_" + projectName + "_" + instrumentName,
 								instrumentName, 4);
 						instrumentNode.setChildren(new ArrayList<>());