Files
ruoyi-vue/doc/操作日志查看功能说明.md
2025-11-07 01:23:45 +08:00

252 lines
6.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 腾讯文档操作日志查看功能说明
## 📊 功能概览
新增了一个**操作日志查看页面**,可以方便地查看所有腾讯文档的同步操作记录,包括成功、失败、跳过的记录。
## 🎯 功能特性
### 1. **可视化统计卡片**
- ✅ 成功数量(绿色)
- ⚠️ 跳过数量(橙色)
- ❌ 失败数量(红色)
- 📊 总计数量(蓝色)
### 2. **强大的搜索功能**
- 按订单号搜索
- 按操作类型筛选(批量同步/单个写入)
- 按操作状态筛选(成功/失败/跳过)
### 3. **详细的日志展示**
- 操作类型(带标签)
- 订单号
- 目标行号
- 物流链接(可点击)
- 操作状态(带标签)
- 错误信息
- 操作人
- 操作时间
### 4. **分页功能**
- 支持10/20/50/100条每页
- 总计显示
- 页码跳转
## 📍 如何使用
### 方法1从配置页面打开推荐
1. 打开订单列表页面
2. 点击 **"H-TF自动写入配置"** 按钮
3. 在配置对话框底部,点击 **"查看操作日志"** 按钮(蓝色)
4. 即可查看当前文档的所有操作日志
### 方法2直接在列表页面添加按钮可选
如果需要,也可以在订单列表页面添加一个独立的"查看日志"按钮。
## 🔍 日志搜索示例
### 示例1查看某个订单的操作记录
1. 在"订单号"输入框输入:`JY202511061595`
2. 点击"搜索"
3. 查看该订单的所有操作历史
### 示例2查看今天失败的操作
1. 在"操作状态"下拉框选择:`失败`
2. 点击"搜索"
3. 查看所有失败的记录和错误信息
### 示例3查看批量同步的记录
1. 在"操作类型"下拉框选择:`批量同步`
2. 点击"搜索"
3. 查看所有批量同步的操作
## 📊 统计卡片说明
页面顶部的统计卡片会**实时计算**当前筛选条件下的数据:
- **成功**:操作成功完成的数量
- **跳过**:因为各种原因跳过的数量(如已有数据、已推送等)
- **失败**:操作失败的数量
- **总计**:所有记录的总数
## 🎨 界面截图说明
### 统计卡片区域
```
┌─────────────┬─────────────┬─────────────┬─────────────┐
│ 成功 │ 跳过 │ 失败 │ 总计 │
│ 150 │ 500 │ 10 │ 660 │
│ (绿色) │ (橙色) │ (红色) │ (蓝色) │
└─────────────┴─────────────┴─────────────┴─────────────┘
```
### 日志表格
```
序号 | 操作类型 | 订单号 | 目标行 | 物流链接 | 状态 | 错误信息 | 操作人 | 操作时间
-----|----------|--------|--------|----------|------|----------|--------|----------
1 | 批量同步 | JY123 | 2575 | https... | 成功 | - | admin | 22:03:30
2 | 批量同步 | JY124 | 2576 | https... | 跳过 | 已有数据 | admin | 22:03:30
```
## 🔧 技术实现
### 后端接口
**1. 查询操作日志列表**
```
GET /jarvis-api/jarvis/tendoc/operationLogs
参数:
- fileId: 文件ID可选
- sheetId: 工作表ID可选
- orderNo: 订单号(可选)
- operationType: 操作类型(可选)
- operationStatus: 操作状态(可选)
```
**2. 查询最近的操作日志**
```
GET /jarvis-api/jarvis/tendoc/recentLogs
参数:
- fileId: 文件ID可选
- limit: 限制数量默认50
```
### 前端组件
- **组件位置**`src/views/system/jdorder/components/TencentDocOperationLogs.vue`
- **组件名称**`TencentDocOperationLogs`
- **依赖API**`@/api/jarvis/tendoc.js`
## 📝 操作状态说明
### SUCCESS成功
- 物流链接成功写入腾讯文档
- 订单状态已更新
- 操作日志已记录
### FAILED失败
可能的原因:
- 未找到订单
- 订单物流链接为空
- API调用失败
- 写入异常
### SKIPPED跳过
可能的原因:
- 订单已推送(`tencent_doc_pushed = 1`
- 腾讯文档中该行已有物流链接
- 分布式锁获取失败
## 🚀 性能优化建议
1. **定期清理历史日志**
```sql
-- 清理30天前的日志
DELETE FROM tencent_doc_operation_log
WHERE create_time < DATE_SUB(NOW(), INTERVAL 30 DAY);
```
2. **添加索引优化查询**
```sql
-- 已创建的索引
CREATE INDEX idx_file_id ON tencent_doc_operation_log(file_id);
CREATE INDEX idx_order_no ON tencent_doc_operation_log(order_no);
CREATE INDEX idx_create_time ON tencent_doc_operation_log(create_time);
```
## 🔒 权限控制
目前日志查看功能没有单独的权限控制,与腾讯文档配置功能共用权限。
如需单独控制,可以:
1. 在后端Controller添加权限注解
2. 在前端路由配置中添加权限判断
## 📱 响应式设计
日志查看对话框支持响应式设计:
- 宽度90%(自适应屏幕)
- 表格最大高度500px自动滚动
- 分页:右对齐,自适应
## ❓ 常见问题
### Q1: 为什么看不到日志?
**A:** 可能原因:
1. 还没有执行过批量同步
2. fileId或sheetId参数不正确
3. 后端接口异常
**解决方法:**
- 先执行一次批量同步
- 检查后端日志是否有错误
- 检查数据库表 `tencent_doc_operation_log` 是否有数据
### Q2: 统计数字不准确?
**A:** 统计是基于**当前筛选条件**计算的,不是所有数据的统计。
例如:
- 如果筛选了"失败"状态,统计卡片只会统计失败的记录
- 重置筛选条件后,统计会更新
### Q3: 能否导出日志?
**A:** 当前版本不支持导出,但可以直接从数据库导出:
```sql
-- 导出CSV格式
SELECT
operation_type,
order_no,
target_row,
logistics_link,
operation_status,
error_message,
operator,
create_time
INTO OUTFILE '/tmp/tendoc_logs.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM tencent_doc_operation_log
WHERE file_id = 'DTUFydU9FTkRLbEN6'
ORDER BY create_time DESC;
```
### Q4: 如何清空所有日志?
**A:** 谨慎操作执行以下SQL
```sql
-- 清空指定文档的日志
DELETE FROM tencent_doc_operation_log
WHERE file_id = 'DTUFydU9FTkRLbEN6';
-- 清空所有日志(慎用!)
TRUNCATE TABLE tencent_doc_operation_log;
```
## 🎉 使用效果
使用操作日志功能后,您可以:
1. ✅ **实时监控**同步状态
2. ✅ **快速定位**问题订单
3. ✅ **追溯历史**操作记录
4. ✅ **统计分析**同步效率
5. ✅ **错误诊断**失败原因
---
**最后更新**: 2025-11-06 22:50
**版本**: v1.0
**作者**: AI Assistant