refactor: remove frontend and keep backend-only build

This commit is contained in:
liumangmang
2026-04-22 14:55:24 +08:00
parent 4ac755a7fe
commit e9a75c14dd
87 changed files with 4379 additions and 4533 deletions
-105
View File
@@ -1,105 +0,0 @@
# SVN 日志 Web 工作台
## 功能概览
Web 工作台将现有 CLI 能力封装为可视化页面与 REST API,支持以下流程:
1. SVN 参数录入与连接测试
2. 异步抓取日志并导出 Markdown
3. 使用 DeepSeek 分析 Markdown 并生成 Excel
4. 查看任务历史(状态、进度、错误、产物),支持筛选、分页与取消运行中任务
5. 下载输出文件、配置 API Key 与输出目录
6. 工作台展示系统健康状态(输出目录可写性、API Key 配置、任务统计)
批量抓取策略:多个项目按顺序执行(前一个项目完成后才开始下一个)。
## 启动方式
在仓库根目录执行:
```bash
# Docker 一键启动(推荐)
make up
```
备用方式(本机 Java + Maven):
```bash
mvn spring-boot:run -Dspring-boot.run.mainClass=com.svnlog.web.WebApplication
```
启动后访问:
```text
http://localhost:18088
```
## 页面说明
- 工作台:最近任务统计与最近产物
- SVN 日志抓取:SVN 地址、账号密码、版本区间、过滤用户(支持预置项目下拉与自定义地址)
- AI 工作量分析:选择 Markdown 文件、工作周期、输出文件名
- 任务历史:异步任务状态与产物列表,支持筛选、分页、取消任务
- 系统设置:DeepSeek API Key、输出目录、默认 SVN 预置项目
## 输出目录
- 默认输出目录:`outputs/`
- Markdown 输出:`outputs/md/*.md`
- Excel 输出:`outputs/excel/*.xlsx`
- 任务持久化:`outputs/task-history.json`(重启后可恢复历史)
## API Key 读取优先级
1. AI 分析请求中的临时 `apiKey`
2. 设置页保存的运行时 `apiKey`
3. 环境变量 `DEEPSEEK_API_KEY`
建议在生产环境优先使用环境变量,避免敏感信息暴露。
## SVN 预设来源与调用方式
- SVN 地址统一维护在 `application.properties``svn.presets[*]` 中。
- 前端不再传 SVN URL,业务接口统一传 `presetId`,后端按 `presetId` 解析地址。
- `GET /api/svn/presets` 仅返回 `id``name`(不返回 `url`)。
## 主要 API
- `POST /api/svn/test-connection`
- `POST /api/svn/fetch`
- `GET /api/svn/presets`
- `POST /api/ai/analyze`
- `GET /api/tasks`
- `GET /api/tasks/query?status=&type=&keyword=&page=1&size=10`
- `GET /api/tasks/{taskId}`
- `GET /api/tasks/{taskId}/stream`SSE 实时输出)
- `POST /api/tasks/{taskId}/cancel`
- `GET /api/health`
- `GET /api/health/details`
- `GET /api/files`
- `GET /api/files/download?path=...`
- `GET /api/settings`
- `PUT /api/settings`
## 验证建议
至少执行:
```bash
mvn clean compile
```
如需验证完整流程:
1. 启动 Web 服务
2. 在「SVN 日志抓取」创建任务并生成 `.md`
3. 在「AI 工作量分析」选择 `.md` 并生成 `.xlsx`
4. 在「任务历史」中下载产物并核验内容
## AI 输入校验
为避免误操作和资源滥用,AI 分析接口增加输入约束:
- 一次最多分析 20 个文件
- 仅允许 `.md` 文件
- 单文件大小不超过 2MB
+99
View File
@@ -0,0 +1,99 @@
# SVN 月报
## 报告信息
- **仓库**: `ERP-Backend`
- **周期**: 2025年05月 月报
- **来源**: SVN 远程仓库
- **生成时间**: 2025-06-01 09:00:00
## 统计信息
- **总提交数**: 45
- **涉及文件数**: 128
- **活跃作者数**: 4
- **作者提交分布**:
- `lisi`: 18 次
- `wangwu`: 12 次
- `zhangsan`: 10 次
- `zhaoliu`: 5 次
- **涉及模块**:
- `src`: 89 个文件
- `webapp`: 24 个文件
- `config`: 10 个文件
- `docs`: 5 个文件
## 工作摘要
- 完成采购审批流程模块开发,支持三级审批链路
- 库存预警功能上线,支持邮件和站内信双通道通知
- 报表导出模块重构,统一使用 Apache POI 模板引擎
- 修复财务对账模块金额精度丢失问题(BigDecimal 替换 double
- 前端表单校验增强,新增 15 个字段级校验规则
- 数据库慢查询优化 8 处,平均响应时间降低 40%
## 风险与说明
- 采购审批流程尚未覆盖退货场景,计划 6 月迭代补充
- 库存预警阈值目前为全局配置,后续需支持按品类自定义
## 提交明细
### r15230
**作者**: `lisi`
**时间**: 2025-05-30 16:45:00
**仓库**: `ERP-Backend`
**提交信息**:
```
feat: 采购审批流程 - 三级审批链路完整实现
```
**变更路径**:
- `src/main/java/com/erp/approval/ApprovalChainService.java`
- `src/main/java/com/erp/approval/ApprovalController.java`
- `src/main/java/com/erp/model/ApprovalRecord.java`
- `webapp/views/approval/list.jsp`
---
### r15218
**作者**: `wangwu`
**时间**: 2025-05-28 14:20:00
**仓库**: `ERP-Backend`
**提交信息**:
```
feat: 库存预警功能 - 支持邮件和站内信通知
```
**变更路径**:
- `src/main/java/com/erp/inventory/AlertService.java`
- `src/main/java/com/erp/notification/EmailSender.java`
- `src/main/java/com/erp/notification/InboxSender.java`
- `config/alert-rules.xml`
---
### r15205
**作者**: `zhangsan`
**时间**: 2025-05-25 10:30:00
**仓库**: `ERP-Backend`
**提交信息**:
```
fix: 修复财务对账金额精度丢失,double 替换为 BigDecimal
```
**变更路径**:
- `src/main/java/com/erp/finance/ReconciliationService.java`
- `src/main/java/com/erp/model/FinanceRecord.java`
- `src/test/java/com/erp/finance/ReconciliationServiceTest.java`
---
+115
View File
@@ -0,0 +1,115 @@
# Git 周报
## 报告信息
- **仓库**: `demo-web-app`
- **周期**: 2025-05-19 至 2025-05-25 周报
- **来源**: Git 本地仓库
- **作者过滤**: `zhangsan`
- **生成时间**: 2025-05-25 18:30:00
## 统计信息
- **总提交数**: 12
- **涉及文件数**: 37
- **活跃作者数**: 1
- **作者提交分布**:
- `zhangsan`: 12 次
- **涉及模块**:
- `src`: 28 个文件
- `docs`: 5 个文件
- `config`: 4 个文件
## 工作摘要
- 完成用户登录模块重构,统一使用 JWT 认证方案
- 优化首页加载性能,接口响应时间从 800ms 降至 200ms
- 修复订单列表分页查询在大数据量下的 SQL 慢查询问题
- 新增导出功能,支持 CSV 和 Excel 两种格式
- 补充单元测试 15 个,覆盖率从 62% 提升至 78%
## 风险与说明
- JWT 密钥目前硬编码在配置文件中,后续需迁移至密钥管理服务
## 提交明细
### abc1234
**作者**: `zhangsan`
**时间**: 2025-05-25 17:20:00
**仓库**: `demo-web-app`
**引用**: `develop`
**提交信息**:
```
feat: 新增订单导出 Excel 功能
```
**变更路径**:
- `src/main/java/com/demo/service/ExportService.java`
- `src/main/java/com/demo/controller/OrderController.java`
- `src/test/java/com/demo/service/ExportServiceTest.java`
---
### bcd2345
**作者**: `zhangsan`
**时间**: 2025-05-24 15:40:00
**仓库**: `demo-web-app`
**引用**: `develop`
**提交信息**:
```
perf: 优化首页接口查询,添加缓存层
```
**变更路径**:
- `src/main/java/com/demo/service/DashboardService.java`
- `src/main/java/com/demo/config/CacheConfig.java`
---
### cde3456
**作者**: `zhangsan`
**时间**: 2025-05-23 11:15:00
**仓库**: `demo-web-app`
**引用**: `develop`
**提交信息**:
```
fix: 修复订单分页查询慢查询问题,添加复合索引
```
**变更路径**:
- `src/main/resources/db/migration/V20250523__add_order_index.sql`
- `src/main/java/com/demo/mapper/OrderMapper.java`
---
### def4567
**作者**: `zhangsan`
**时间**: 2025-05-22 09:30:00
**仓库**: `demo-web-app`
**引用**: `develop`
**提交信息**:
```
refactor: 重构登录模块,统一使用 JWT 认证
```
**变更路径**:
- `src/main/java/com/demo/security/JwtTokenProvider.java`
- `src/main/java/com/demo/security/JwtAuthFilter.java`
- `src/main/java/com/demo/controller/AuthController.java`
- `src/main/java/com/demo/config/SecurityConfig.java`
- `docs/auth-design.md`
---
+78
View File
@@ -0,0 +1,78 @@
# 发行版打包指南
本文档说明当前纯 `backend/` 结构下的发行版打包方式。
## 一键打包
在项目根目录执行:
```bash
make release
```
该命令会自动:
1.`backend/` 执行 `mvn clean package -DskipTests`
2. 生成 `backend/target/svn-log-tool-1.0.0-jar-with-dependencies.jar`
3. 将 jar 复制到 `release/windows/``release/unix/`
4. 打包 Windows、Unix、Docker 三类发行包
## 手动打包步骤
### 1. 构建后端产物
```bash
cd backend
mvn clean package -DskipTests
```
### 2. 复制 jar 到发行目录
```bash
cp backend/target/svn-log-tool-1.0.0-jar-with-dependencies.jar release/windows/
cp backend/target/svn-log-tool-1.0.0-jar-with-dependencies.jar release/unix/
```
### 3. 打包 Windows 版本
```bash
cd release/windows
zip -r ../svn-log-tool-1.0.0-windows.zip *
cd ../..
```
### 4. 打包 Unix 版本
```bash
cd release/unix
tar czf ../svn-log-tool-1.0.0-unix.tar.gz *
cd ../..
```
### 5. 打包 Docker 版本
```bash
cd release/docker
cp ../../Dockerfile .
tar czf ../svn-log-tool-1.0.0-docker.tar.gz *
rm Dockerfile
cd ../..
```
## Docker 构建说明
根目录 `Dockerfile` 采用多阶段构建:
1. `maven:3.9.6-eclipse-temurin-8` 打包 `backend/`
2. `eclipse-temurin:8-jre` 作为最终运行镜像
## 发布清单
- [ ] Windows 发行包(.zip
- [ ] Unix 发行包(.tar.gz
- [ ] Docker 发行包(.tar.gz
- [ ] 用户手册
- [ ] 快速开始指南
- [ ] 样例报表
- [ ] 产品截图
- [ ] 演示视频(可选)
+90
View File
@@ -0,0 +1,90 @@
# 快速开始指南
3 步快速上手「SVN/Git 日报周报月报一键生成」
---
## 方式一:Docker(推荐)
### 第 1 步:启动服务
```bash
cd release/docker
docker compose up -d
```
### 第 2 步:打开浏览器
访问:http://localhost:18088
### 第 3 步:生成报表
1. 点击左侧「报表生成」
2. 选择仓库类型(SVN 或 Git
3. 填写仓库信息
4. 选择报表周期(日报/周报/月报)
5. 点击「生成 Markdown + Excel」
完成!报表在 `outputs/` 目录下。
---
## 方式二:Windows
### 第 1 步:安装 Java
如果尚未安装,访问 https://adoptium.net/ 下载 JRE 8 (LTS)。
### 第 2 步:启动服务
双击 `start.bat`
### 第 3 步:生成报表
浏览器打开 http://localhost:18088,按照界面提示操作。
---
## 方式三:macOS / Linux
### 第 1 步:启动服务
```bash
cd release/unix
./start.sh
```
### 第 2 步:生成报表
浏览器打开 http://localhost:18088,按照界面提示操作。
---
## 示例:生成本周周报
1. 打开 http://localhost:18088
2. 左侧点击「报表生成」
3. 选择「Git」仓库类型
4. 填写 Git 仓库路径:`/home/user/my-project`
5. 报表周期选择「周报」
6. 基准日期选择本周任意一天(默认今天)
7. 点击「生成 Markdown + Excel」
8. 等待完成,自动下载 Excel
---
## 可选:配置 AI 分析
如需 AI 自动生成工作摘要:
1. 访问 https://platform.deepseek.com 获取 API Key
2. 在 Web 工作台 → 系统设置 → 填入 API Key
3. 生成报表时勾选「启用 AI 摘要」
不配置也可正常使用基础功能。
---
## 需要帮助?
查看完整文档:`docs/用户手册.md`
+253
View File
@@ -0,0 +1,253 @@
# SVN/Git 日报周报月报一键生成 - 用户手册
## 目录
1. [产品简介](#1-产品简介)
2. [环境要求](#2-环境要求)
3. [安装与启动](#3-安装与启动)
4. [功能说明](#4-功能说明)
5. [AI 工作量分析](#5-ai-工作量分析)
6. [常见问题](#6-常见问题)
---
## 1. 产品简介
「SVN/Git 日报周报月报一键生成」是一款本地离线运行的代码仓库报表生成工具。
**核心能力:**
- 连接 SVN 远程仓库或 Git 本地仓库,自动抓取提交日志
- 支持日报、周报、月报三种统计周期
- 自动生成 Markdown 格式提交报表
- 可选集成 DeepSeek AI,自动分析工作量并导出 Excel
- Web 工作台操作,无需命令行
**适用场景:**
- 团队周报/月报编写,快速汇总代码提交记录
- 项目经理查看团队成员工作量
- 个人开发者整理工作日志
- 外包项目交付工作量证明
**数据安全:**
- 所有数据本地处理,不上传任何服务器
- AI 分析仅发送提交摘要(非源码),且可选关闭
---
## 2. 环境要求
### 方式一:Docker 部署(推荐)
- Docker 20.10+
- Docker Compose v2+
- 无需安装 Java
### 方式二:本机 Java 运行
- Java 8 或更高版本(JRE 即可)
- Windows 7+ / macOS 10.12+ / Linux
**Java 安装指引:**
| 系统 | 安装方式 |
|------|----------|
| Windows | 访问 https://adoptium.net/ 下载 JRE 8 (LTS) |
| macOS | `brew install openjdk@8` |
| Ubuntu/Debian | `sudo apt install openjdk-8-jre` |
| CentOS/RHEL | `sudo yum install java-1.8.0-openjdk` |
---
## 3. 安装与启动
### 3.1 Docker 方式
```bash
# 进入 docker 发行包目录
cd release/docker
# 一键启动
docker compose up -d
# 查看状态
docker compose ps
# 停止服务
docker compose down
```
启动后浏览器访问:**http://localhost:18088**
### 3.2 Windows 方式
1. 解压发行包到任意目录
2. 双击 `start.bat`
3. 等待控制台显示启动成功
4. 浏览器访问:**http://localhost:18088**
### 3.3 macOS / Linux 方式
```bash
# 进入 unix 发行包目录
cd release/unix
# 启动
./start.sh
```
浏览器访问:**http://localhost:18088**
---
## 4. 功能说明
### 4.1 工作台
首页展示系统概览:
- **任务统计**:总任务数、执行中、失败数
- **系统状态**:输出目录可写性、API Key 配置状态
- **报表模板**:可用的报表模板列表
- **最近文件**:最新生成的报表文件,可直接下载
### 4.2 报表生成
这是核心功能页面,操作步骤:
**第一步:选择仓库类型**
- **SVN**:需要填写 SVN 预设项目、用户名、密码
- **Git**:需要填写本地 Git 仓库路径(如 `/home/user/my-project`
**第二步:选择报表周期**
- **日报**:统计指定日期当天的提交
- **周报**:统计指定日期所在周(周一至周日)的提交
- **月报**:统计指定日期所在月的全部提交
**第三步:填写参数**
- **基准日期**:报表统计的参考日期(默认今天)
- **周期标签**:报表标题中的周期描述(自动生成,可修改)
- **作者过滤**:只统计包含指定关键词的作者(留空不过滤)
- **输出名称**:生成文件的名称前缀(自动生成,可修改)
**第四步:可选 AI 增强**
- 勾选「启用 AI 摘要」可让 DeepSeek 自动生成工作摘要
- 需要先在系统设置中配置 API Key
**第五步:点击生成**
- 点击「测试连接」验证仓库可访问
- 点击「生成 Markdown + Excel」开始生成
- 执行日志区域会实时显示进度
- 完成后自动下载 Excel 文件
### 4.3 任务历史
查看所有历史任务:
- 支持按状态(PENDING/RUNNING/SUCCESS/FAILED/CANCELLED)筛选
- 支持按类型筛选
- 支持关键词搜索
- 分页浏览
- 可直接下载任务产物
### 4.4 系统设置
- **DeepSeek API Key**:配置 AI 分析所需的密钥
- **默认 SVN 项目**:设置默认选中的 SVN 预设
- **输出目录**:自定义报表输出路径(默认 `outputs`
---
## 5. AI 工作量分析
### 5.1 获取 API Key
1. 访问 https://platform.deepseek.com
2. 注册账号并登录
3. 进入「API Keys」页面
4. 创建新的 API Key
5. 复制 Key(格式为 `sk-...`
### 5.2 配置 API Key
**方式一:Web 设置页**
在「系统设置」页面填入 API Key 并保存。
**方式二:环境变量**
```bash
export DEEPSEEK_API_KEY=sk-your-key-here
```
Docker 方式可在 `docker-compose.yml` 中配置:
```yaml
environment:
- DEEPSEEK_API_KEY=sk-your-key-here
```
### 5.3 使用说明
- AI 分析会将提交记录摘要发送给 DeepSeek API
- 不会发送源代码内容,仅发送提交信息
- 每次分析消耗少量 Token(通常 < 0.01 元)
- 不配置 API Key 也可正常使用基础报表功能
---
## 6. 常见问题
### Q: 启动后无法访问 http://localhost:18088
- 确认服务已启动(控制台无报错)
- 检查端口 18088 是否被其他程序占用
- 尝试使用 http://127.0.0.1:18088
### Q: SVN 连接失败?
- 检查 SVN 地址格式是否正确(以 `http://``https://` 开头)
- 确认用户名和密码正确
- 确认网络可以访问 SVN 服务器
- 如果是 HTTPS,可能存在证书问题
### Q: Git 仓库路径无效?
- 确认路径指向 `.git` 所在的目录(不是 `.git` 本身)
- 路径必须是本地绝对路径
- Docker 模式下需要将 Git 仓库目录挂载到容器中
### Q: AI 分析报错?
- 检查 API Key 是否正确
- 确认网络可以访问 api.deepseek.com
- 检查 DeepSeek 账户余额是否充足
### Q: 生成的报表在哪里?
- 默认在程序目录下的 `outputs/` 文件夹
- `outputs/md/` 存放 Markdown 报表
- `outputs/excel/` 存放 Excel 工作量统计
- 也可在 Web 工作台的「任务历史」页面直接下载
### Q: 如何修改端口?
在 jar 同目录下创建 `application.properties` 文件:
```properties
server.port=8080
```
Docker 方式修改 `docker-compose.yml` 中的端口映射:
```yaml
ports:
- "8080:18088"
```
+96
View File
@@ -0,0 +1,96 @@
# 闲鱼商品文案
## 商品标题(30字以内)
SVN/Git日报周报月报一键生成工具 本地离线 AI分析
---
## 商品描述
### 一句话介绍
程序员必备效率工具!连接 SVN 或 Git 仓库,一键生成日报、周报、月报,支持 AI 自动分析工作量,导出 Markdown + Excel。
### 痛点场景
- 每周写周报要翻半天 Git 提交记录?
- 项目经理要月度工作量统计,手动整理到崩溃?
- 外包项目交付,需要提供工作量证明?
- 团队成员多,汇总每个人的提交记录费时费力?
### 产品亮点
1. **一键生成**:选择仓库、选择周期、点击生成,3 步搞定
2. **双仓库支持**:SVN 远程仓库 + Git 本地仓库都能用
3. **三种周期**:日报 / 周报 / 月报,自动计算日期范围
4. **AI 智能分析**:接入 DeepSeek AI,自动提炼工作摘要(可选)
5. **Excel 导出**:直接生成工作量统计表,拿来就能用
6. **Web 操作界面**:浏览器打开就能用,不需要命令行
7. **本地离线运行**:数据不出你的电脑,安全放心
8. **Docker 一键部署**`make up` 一条命令启动
### 你会得到什么
- 完整源码(Java 8 + Spring Boot
- Windows 一键启动包(双击 start.bat 即可运行)
- macOS / Linux 启动脚本
- Docker 部署包
- 详细用户手册 + 快速开始指南
- 样例报表(周报 + 月报示例)
- 售后技术支持
### 技术栈
Java 8 / Spring Boot 2.7 / SVNKit / JGit / Apache POI / DeepSeek API
### 适合谁
- 需要写日报周报月报的开发者
- 需要统计团队工作量的项目经理
- 需要提供工作量证明的外包团队
- 想学习 Spring Boot + 前后端一体化项目的同学
### 运行环境
- Windows / macOS / Linux 均可
- 需要 Java 8+(或 Docker
- AI 功能需要 DeepSeek API Key(免费额度够用很久)
---
## 定价建议
- 基础版(源码 + 文档):¥149
- 标准版(+ 启动包 + 视频教程):¥299
- 专业版(+ 一对一部署支持 + 定制需求沟通):¥599
---
## 商品标签(搜索关键词)
SVN, Git, 日报, 周报, 月报, 工作量统计, 报表工具, 程序员工具,
AI分析, DeepSeek, Spring Boot, Java, 代码日志, 提交记录,
工作量证明, 项目管理, 效率工具
---
## 买家常见问题(FAQ
**Q: 需要什么技术基础?**
A: 不需要编程基础。Windows 用户双击 start.bat 即可启动,打开浏览器操作。
**Q: AI 功能收费吗?**
A: 工具本身不收费。AI 功能使用 DeepSeek API,新用户有免费额度,日常使用每月花费不到 1 元。不用 AI 也能正常生成报表。
**Q: 支持哪些 SVN/Git 服务器?**
A: SVN 支持所有标准 SVN 服务器(VisualSVN、CollabNet 等)。Git 支持本地仓库(GitHub、GitLab、Gitee 克隆到本地的都行)。
**Q: 数据安全吗?**
A: 完全本地运行,不上传任何数据。AI 分析只发送提交信息摘要(不含源码)。
**Q: 买了之后怎么获取更新?**
A: 提供售后群,有更新会在群里通知。
**Q: 可以定制功能吗?**
A: 专业版包含定制需求沟通,简单需求可免费实现。