feat(core): 添加SVN日志查询工具和DeepSeek AI处理功能

- 实现SVN日志查询工具,支持版本范围和用户过滤
- 添加DeepSeek API集成,用于AI分析日志内容
- 创建Excel生成器,输出工作量统计报表
- 添加日志实体类和项目配置管理功能
- 集成POI库支持Excel文件操作
- 实现Markdown格式日志导出功能
This commit is contained in:
liumangmang
2026-02-05 09:11:17 +08:00
parent 25248a0275
commit a6817fd9bf
10 changed files with 1556 additions and 1 deletions

121
docs/README_DeepSeek.md Normal file
View File

@@ -0,0 +1,121 @@
# SVN日志工作量统计工具DeepSeek版
## 功能说明
这个工具可以根据SVN日志的markdown文件调用DeepSeek API分析日志内容并生成符合格式要求的工作量统计Excel文件。
## 使用步骤
### 1. 准备SVN日志markdown文件
使用原有的SVN日志工具生成markdown文件
```bash
java -jar svn-log-tool-1.0.0-jar-with-dependencies.jar
```
按照提示输入SVN仓库地址、账号、密码等信息生成markdown格式的日志文件。
### 2. 运行DeepSeek日志处理工具
```bash
java -cp target/svn-log-tool-1.0.0-jar-with-dependencies.jar com.svnlog.DeepSeekLogProcessor
```
或者使用Maven运行
```bash
mvn exec:java -Dexec.mainClass="com.svnlog.DeepSeekLogProcessor"
```
### 3. 按照提示输入信息
程序会依次提示输入:
- **markdown日志文件路径**:可以直接回车使用当前目录下最新的`svn_log_*.md`文件
- **DeepSeek API Key**请提供有效的DeepSeek API Key也可以直接在代码中修改`API_KEY`常量)
- **输出Excel文件名**:可以直接回车使用默认文件名(格式:`YYYYMM工作量统计.xlsx`
### 4. 等待处理完成
程序会自动:
1. 读取markdown日志文件
2. 调用DeepSeek API分析日志内容
3. 根据分析结果生成Excel文件
生成的Excel文件格式与`202512工作量统计_刘靖.xlsx`保持一致。
## Excel文件格式说明
生成的Excel文件包含以下列
- 序号
- 所属班组
- 技术对接
- 开发人员
- 工作周期
- 开发项目名称
- 具体工作内容
- 空列4个
## DeepSeek API配置
`DeepSeekLogProcessor.java`中,可以修改以下配置:
```java
private static final String DEEPSEEK_API_URL = "https://api.deepseek.com/chat/completions";
private static final String API_KEY = "YOUR_DEEPSEEK_API_KEY"; // 请替换为实际的API Key
```
## 提示词说明
工具会向DeepSeek发送以下提示词要求AI以JSON格式返回工作量统计
```json
{
"team": "所属班组",
"contact": "技术对接人",
"developer": "开发人员",
"period": "工作周期 (例如: 2025年12月)",
"records": [
{
"sequence": 1,
"project": "项目名称",
"content": "具体工作内容"
}
]
}
```
## 注意事项
1. **API Key安全**请妥善保管您的DeepSeek API Key不要将其提交到代码仓库中
2. **网络连接**需要能够访问DeepSeek API服务器
3. **日志格式**markdown文件需要由SVN日志工具生成包含完整的日志信息
4. **成本控制**DeepSeek API可能产生费用请注意控制使用频率
## 故障排查
### 编译错误
```bash
mvn clean package -DskipTests
```
### 运行时找不到主类
确保使用正确的jar文件
```bash
java -cp target/svn-log-tool-1.0.0-jar-with-dependencies.jar com.svnlog.DeepSeekLogProcessor
```
### API调用失败
- 检查API Key是否正确
- 检查网络连接是否正常
- 检查DeepSeek API服务是否可用
## 依赖说明
项目使用以下主要依赖:
- SVNKit 1.10.11SVN操作
- Apache POI 5.2.5Excel文件读写
- OkHttp 4.12.0HTTP客户端
- Gson 2.10.1JSON处理
## 许可证
本工具仅供内部使用。

164
docs/example_log.md Normal file
View File

@@ -0,0 +1,164 @@
# SVN 日志报告
## 查询条件
- **SVN地址**: `https://svn.example.com/project`
- **账号**: `testuser`
- **版本范围**: r1000 - r1050
- **生成时间**: 2025-01-30 10:00:00
## 统计信息
- **总记录数**: 5 条
### 按作者统计
| 作者 | 提交次数 |
|------|----------|
| `zhangsan` | 3 |
| `lisi` | 2 |
## 日志详情
### r1050
**作者**: `zhangsan`
**时间**: 2025-01-30 09:30:00
**版本**: r1050
**变更文件**:
```
/src/main/java/com/example/Service.java
/src/test/java/com/example/ServiceTest.java
```
**提交信息**:
```
修复用户登录时的空指针异常问题
1. 修复用户服务中的空指针检查
2. 添加单元测试验证修复
3. 更新相关文档
```
---
### r1049
**作者**: `zhangsan`
**时间**: 2025-01-29 16:45:00
**版本**: r1049
**变更文件**:
```
/src/main/java/com/example/Controller.java
```
**提交信息**:
```
优化API接口响应速度
# 性能优化
1. 添加数据库查询缓存
2. 优化SQL查询语句
3. 减少不必要的对象创建
# 测试验证
- 响应时间从500ms降低到200ms
- 通过所有单元测试
```
---
### r1048
**作者**: `lisi`
**时间**: 2025-01-29 14:20:00
**版本**: r1048
**变更文件**:
```
/src/main/java/com/example/Dao.java
/src/main/resources/mapper/UserMapper.xml
```
**提交信息**:
```
实现用户数据批量导入功能
# 核心功能
1. 支持Excel文件上传
2. 数据验证和错误处理
3. 批量插入数据库
# 配置变更
- 添加文件上传大小限制
- 配置批量插入批次大小
```
---
### r1047
**作者**: `zhangsan`
**时间**: 2025-01-28 11:00:00
**版本**: r1047
**变更文件**:
```
/src/main/java/com/example/Util.java
/src/main/resources/application.yml
```
**提交信息**:
```
添加日志记录功能
# 新增功能
1. 集成Log4j2日志框架
2. 配置日志输出格式
3. 添加关键操作日志记录
# 配置更新
- 设置日志级别为INFO
- 配置日志文件滚动策略
```
---
### r1046
**作者**: `lisi`
**时间**: 2025-01-27 15:30:00
**版本**: r1046
**变更文件**:
```
/src/main/java/com/example/Model.java
```
**提交信息**:
```
重构数据模型类
# 重构内容
1. 优化字段命名规范
2. 添加数据验证注解
3. 实现序列化接口
# 兼容性
- 保持向后兼容
- 更新相关测试用例
```
---