# cognos-resolve-tool **Repository Path**: anning233/cognos-resolve-tool ## Basic Information - **Project Name**: cognos-resolve-tool - **Description**: 自用cognos解析工具 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-03-20 - **Last Updated**: 2025-04-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Cognos 报表解析工具 ## 项目介绍 Cognos 报表解析工具是一个用于管理和解析 Cognos 报表的完整解决方案,包含前端和后端两个部分。该工具允许用户查看、编辑和管理报表信息,包括报表组、报表名称、查询依赖关系等,并提供报表技术口径、SQL 语句和字段项的查看功能。项目采用前后端分离架构,具有良好的可扩展性和维护性。 ## 项目架构 项目分为前端和后端两个部分: ### 前端 (cognos-web-shadcn) - 基于 Next.js 和 Shadcn UI 构建的现代化 Web 应用 - 提供直观的用户界面,支持报表的查看、编辑和管理 - 使用 React Hooks 进行状态管理 - 采用 TanStack Table 实现数据表格功能 - 使用 Tailwind CSS 进行样式设计 ### 后端 (cognos-tool-server) - 基于 Spring Boot 3 的 Java 应用程序 - 提供 RESTful API 接口,支持报表的 CRUD 操作 - 使用 MyBatis Plus 进行数据库操作 - 支持多数据源(MySQL、DB2) - 集成 Knife4j 提供 API 文档 - 包含代码生成器,提高开发效率 ## 技术栈 ### 前端技术栈 - **框架**: Next.js - **UI 组件库**: Shadcn UI - **状态管理**: React Hooks - **HTTP 客户端**: Axios - **表格组件**: TanStack Table - **样式**: Tailwind CSS - **图标**: Heroicons ### 后端技术栈 - **框架**: Spring Boot 3.0.5 - **ORM**: MyBatis Plus 3.5.3.1 - **数据库**: MySQL, DB2 (多数据源支持) - **API 文档**: Knife4j 4.1.0 - **工具库**: Hutool 5.8.26, Lombok 1.18.26, MapStruct 1.5.3.Final - **代码生成**: MyBatis Plus Generator - **XML 解析**: Dom4j, Jaxen ## 功能特点 - 报表列表展示与搜索 - 报表详情查看 - 报表信息编辑 - 报表删除 - 报表技术口径查看 - SQL 语句查看 - 字段项查看 - 多数据源支持 - RESTful API 接口 - 响应式设计,适配不同设备 ## 安装说明 ### 前提条件 - JDK 17 或更高版本 - Node.js 16.x 或更高版本 - Maven 3.6 或更高版本 - npm 或 yarn 包管理器 - MySQL 5.7+ / DB2 数据库 ### 后端安装步骤 1. 克隆项目仓库 ```bash git clone cd cognos-resolve-tool/cognos-tool-server ``` 2. 配置数据库 - 创建数据库 - 执行 `src/main/resources/sql_init_mysql.sql` 或 `src/main/resources/sql_init.sql` 初始化数据库表结构 3. 配置数据源 - 修改 `src/main/resources/application.yml` 文件中的数据源配置 4. 编译项目 ```bash mvn clean package ``` 5. 运行项目 ```bash java -jar target/cognos-tool-server-1.0.0.jar ``` ### 前端安装步骤 1. 进入前端项目目录 ```bash cd cognos-resolve-tool/cognos-web-shadcn ``` 2. 安装依赖 ```bash npm install # 或 yarn install ``` 3. 启动开发服务器 ```bash npm run dev # 或 yarn dev ``` 4. 在浏览器中访问 `http://localhost:3000` ## 项目结构 ``` cognos-resolve-tool/ ├── cognos-tool-server/ # 后端项目 │ ├── src/ # 源代码 │ │ ├── main/ │ │ │ ├── java/ # Java 代码 │ │ │ └── resources/ # 资源文件 │ │ └── test/ # 测试代码 │ ├── pom.xml # Maven 配置文件 │ └── README.md # 后端项目说明文档 ├── cognos-web-shadcn/ # 前端项目 │ ├── components/ # 可复用组件 │ ├── pages/ # 页面组件 │ ├── public/ # 静态资源 │ ├── styles/ # 全局样式 │ └── README.md # 前端项目说明文档 └── README.md # 项目说明文档 ``` ## API 接口 后端提供以下主要 API 接口: - `GET /api/reports` - 获取报表列表 - `GET /api/reports/{id}` - 获取报表详情 - `PUT /api/reports` - 更新报表信息 - `DELETE /api/reports/{id}` - 删除报表 - `GET /api/queryModel/query/{reportId}` - 获取报表的查询列表 - `GET /api/queryModel/{queryId}` - 获取查询详情 - `GET /api/queryColumn?queryId={queryId}` - 获取查询的字段项 - `GET /api/reportInfo/{reportId}` - 获取报表信息详情 - `PUT /api/reportInfo/{reportId}` - 更新报表信息 ## 使用说明 ### 报表管理 1. **查看报表列表**:首页显示所有报表,可以通过搜索框筛选报表 2. **查看报表详情**:点击报表行中的"查看"按钮 3. **编辑报表**:点击报表行中的"编辑"按钮 4. **删除报表**:点击报表行中的"删除"按钮 5. **查看报表技术口径**:点击报表行中的"查看报表技术口径"按钮 6. **查看报表信息详情**:点击报表行中的"查看报表信息详情"按钮 ### 查询管理 1. **查看查询列表**:在报表技术口径页面中查看 2. **查看 SQL 语句**:点击查询行中的"查看详细 SQL"按钮 3. **查看字段项**:点击查询行中的"查看字段项"按钮 ## 开发指南 ### 前端开发 1. 在 `components` 目录下创建可复用组件 2. 在 `pages` 目录下创建页面组件 3. 在 `styles` 目录下添加必要的样式 ### 后端开发 1. 在 `src/main/java/cn/cognos` 目录下创建新的模块包 2. 创建实体类、Mapper、Service 和 Controller 3. 在 `src/main/resources/mapper` 目录下创建对应的 XML 映射文件 ### 使用代码生成器 后端集成了 MyBatis Plus Generator,可以通过以下步骤生成代码: 1. 配置数据库连接信息,配置要生成的表 2. 运行代码生成器 3. 生成实体类、Mapper、Service 和 Controller ## 部署 ### 后端部署 1. 构建生产版本 ```bash cd cognos-tool-server mvn clean package -Dmaven.test.skip=true ``` 2. 启动生产服务器 ```bash java -jar target/cognos-tool-server-1.0.0.jar ``` ### 前端部署 1. 构建生产版本 ```bash cd cognos-web-shadcn npm run build # 或 yarn build ``` 2. 启动生产服务器 ```bash npm run start # 或 yarn start ``` ## 贡献指南 1. Fork 项目 2. 创建功能分支 (`git checkout -b feature/amazing-feature`) 3. 提交更改 (`git commit -m 'Add some amazing feature'`) 4. 推送到分支 (`git push origin feature/amazing-feature`) 5. 创建 Pull Request ## 许可证 [MIT License](LICENSE)