1. 如图所以,完成以下内容对应
2. 代码示例如下, 动态生成树形结构列名称,并将表格中存在的值与其对应起来
@Overridepublic Map<String, Object> selectResourcePlanList(ResourcePlan resourcePlan) {List<ResourceDictTreeResponse> levelTreeByTwo = relationService.getLevelTreeByTwo();List<ResourcePlan> resourcePlans = resourcePlanMapper.selectResourcePlanList(resourcePlan);Map<String, String> columnMap = new HashMap<>(); AtomicInteger columnIndex = new AtomicInteger(1); generateColumnMappings(levelTreeByTwo, columnMap, columnIndex);Map<String, Object> result = new HashMap<>();result.put("treeData", levelTreeByTwo); result.put("planList", processPlansToRows(resourcePlans, columnMap)); return result;}private void generateColumnMappings(List<ResourceDictTreeResponse> treeData, Map<String, String> columnMap, AtomicInteger columnIndex) {for (ResourceDictTreeResponse node : treeData) {String columnName = "column" + columnIndex.getAndIncrement();columnMap.put(node.getDictLabel(), columnName); node.setKey(columnName); if (node.getChild() != null && !node.getChild().isEmpty()) {generateColumnMappings(node.getChild(), columnMap, columnIndex);}}}private List<Map<String, Object>> processPlansToRows(List<ResourcePlan> resourcePlans, Map<String, String> columnMap) {List<Map<String, Object>> rows = new ArrayList<>();for (ResourcePlan plan : resourcePlans) {Map<String, Object> row = new HashMap<>();row.put("id", plan.getId()); row.put("planStartTime", plan.getPlanStartTime()); row.put("planEndTime", plan.getPlanEndTime()); row.put("projectId", plan.getProjectId()); row.put("projectName", plan.getProjectName()); row.put("taskId", plan.getTaskId()); row.put("taskName", plan.getTaskName()); row.put("workContent", plan.getWorkContent()); String dictLabel = plan.getDictLabel();if (dictLabel != null && columnMap.containsKey(dictLabel)) {String column = columnMap.get(dictLabel); row.put(column, plan.getPlanPersonDay()); }rows.add(row);}return rows;}