This commit is contained in:
2025-11-07 01:23:45 +08:00
parent a897cdcae9
commit a284047b48
6 changed files with 904 additions and 11 deletions

View File

@@ -0,0 +1,301 @@
# 操作日志查看功能 - 快速上手指南
## 🚀 快速部署
### 1⃣ 重新编译前端
```bash
cd d:\code\ruoyi-vue
npm run build:prod
```
或者开发模式:
```bash
npm run dev
```
### 2⃣ 重新编译后端(如果还没编译)
```bash
cd d:\code\RuoYi-Vue-master\ruoyi-java
mvn clean package -DskipTests
```
### 3⃣ 重启服务
重启前端和后端服务。
### 4⃣ 清除浏览器缓存
`Ctrl + F5` 强制刷新页面。
---
## 📍 如何打开日志页面
### 方法:从配置对话框打开
1. 打开**订单列表**页面
2. 点击顶部的 **"H-TF自动写入配置"** 按钮(绿色)
3. 在弹出的配置对话框底部,找到 **"查看操作日志"** 按钮(蓝色,带文档图标)
4. 点击后即可查看操作日志
---
## 📊 功能演示
### 界面布局
```
┌─────────────────────────────────────────────────────────────────┐
│ 腾讯文档操作日志 [X] │
├─────────────────────────────────────────────────────────────────┤
│ 搜索框: [订单号] [操作类型▼] [操作状态▼] [搜索] [重置] │
├─────────────────────────────────────────────────────────────────┤
│ ┌───────┐ ┌───────┐ ┌───────┐ ┌───────┐ │
│ │ 成功 │ │ 跳过 │ │ 失败 │ │ 总计 │ │
│ │ 150 │ │ 500 │ │ 10 │ │ 660 │ │
│ └───────┘ └───────┘ └───────┘ └───────┘ │
├─────────────────────────────────────────────────────────────────┤
│ 序号 | 操作类型 | 订单号 | 行号 | 物流链接 | 状态 | 时间 │
│ ────┼──────────┼────────┼──────┼──────────┼──────┼──────── │
│ 1 | 批量同步 | JY123 | 2575 | https... | 成功 | 22:03:30 │
│ 2 | 批量同步 | JY124 | 2576 | https... | 跳过 | 22:03:31 │
│ 3 | 批量同步 | JY125 | 2577 | https... | 失败 | 22:03:32 │
├─────────────────────────────────────────────────────────────────┤
│ 总计 660 条 [10▼] [<] [1] [2] [3] ... [66] [>] │
├─────────────────────────────────────────────────────────────────┤
│ [关闭] [刷新] │
└─────────────────────────────────────────────────────────────────┘
```
---
## 🔍 使用场景
### 场景1查看今天的同步情况
1. 打开日志页面
2. 查看顶部统计卡片
3. 成功数 = 今天成功同步的订单数
4. 跳过数 = 今天跳过的订单数(如已有数据)
5. 失败数 = 今天失败的订单数
### 场景2查找为什么某个订单没有同步
1. 在"订单号"输入框输入订单号,例如:`JY202511061595`
2. 点击"搜索"
3. 查看该订单的操作记录:
- **成功** ✅ - 已经同步
- **跳过** ⚠️ - 被跳过(查看原因)
- **失败** ❌ - 同步失败(查看错误信息)
- **无记录** - 没有尝试同步该订单
### 场景3查看所有失败的订单
1. 在"操作状态"下拉框选择"失败"
2. 点击"搜索"
3. 查看所有失败记录的"错误信息"列
4. 根据错误信息进行处理:
- "未找到订单" → 检查订单是否存在
- "订单物流链接为空" → 补充物流信息
- "API调用失败" → 检查网络或API
### 场景4检查某个订单是否重复推送
1. 在"订单号"输入框输入订单号
2. 点击"搜索"
3. 查看记录数量:
- 只有1条"成功"记录 ✅ - 正常
- 有多条"成功"记录 ❌ - 可能重复推送
- 有"跳过"记录 ✅ - 防重机制生效
---
## 💡 快速技巧
### 技巧1快速刷新
点击底部的 **"刷新"** 按钮即可重新加载最新数据。
### 技巧2查看物流链接
点击"物流链接"列的链接,会在新标签页打开物流链接。
### 技巧3分页查看
- 默认每页显示20条
- 可以选择10/20/50/100条每页
- 使用页码快速跳转
### 技巧4重置筛选
点击 **"重置"** 按钮清除所有搜索条件,显示所有日志。
---
## 🎯 数据解读
### 操作类型
- **批量同步**:通过"批量同步物流"按钮触发的同步
- **单个写入**:单个订单的写入操作(如果有)
### 操作状态
- **成功** (绿色)
- 物流链接已写入腾讯文档
- 订单推送状态已更新为"已推送"
- 操作完全成功
- **跳过** (橙色)
- 订单已推送(数据库标记为已推送)
- 腾讯文档中该行已有物流链接
- 分布式锁获取失败(其他请求正在处理)
- 这是**正常现象**,防止重复推送
- **失败** (红色)
- 未找到订单
- 订单物流链接为空
- 腾讯文档API调用失败
- 其他异常
- 需要**人工处理**
### 统计数字含义
假设统计卡片显示:
```
成功: 150 跳过: 500 失败: 10 总计: 660
```
解读:
- 今天尝试同步了660个订单
- 成功同步150个22.7%
- 跳过500个75.8%- 这些订单可能已经同步过了
- 失败10个1.5%- 需要检查这些订单
**正常情况下:**
- 首次同步成功比例较高60-80%
- 二次同步跳过比例较高80-95%
- 失败比例:应该很低(<5%
---
## 🔧 故障排查
### 问题1看不到日志
**检查步骤:**
1. 是否已经执行过批量同步
2. 后端是否正常运行
3. 数据库表 `tencent_doc_operation_log` 是否有数据
**验证SQL**
```sql
SELECT COUNT(*) FROM tencent_doc_operation_log;
```
### 问题2日志不完整
**可能原因:**
- 后端日志记录失败
- 数据库连接异常
**检查方法:**
查看后端日志中是否有 "记录操作日志失败" 的错误
### 问题3"查看操作日志"按钮点击无反应
**解决方法:**
1. F12 打开浏览器控制台
2. 查看是否有JavaScript错误
3. 清除浏览器缓存后重试
4. 确保前端已重新编译
---
## 📊 数据库直接查询(备用方案)
如果前端页面有问题可以直接查询数据库
### 查看最近50条日志
```sql
SELECT
id,
operation_type AS 操作类型,
order_no AS 订单号,
target_row AS 目标行,
operation_status AS 状态,
error_message AS 错误信息,
operator AS 操作人,
create_time AS 时间
FROM tencent_doc_operation_log
WHERE file_id = 'DTUFydU9FTkRLbEN6' -- 替换为您的fileId
ORDER BY create_time DESC
LIMIT 50;
```
### 查看今天的统计
```sql
SELECT
operation_status AS 状态,
COUNT(*) AS 数量
FROM tencent_doc_operation_log
WHERE file_id = 'DTUFydU9FTkRLbEN6'
AND DATE(create_time) = CURDATE()
GROUP BY operation_status;
```
### 查找某个订单的记录
```sql
SELECT *
FROM tencent_doc_operation_log
WHERE order_no = 'JY202511061595'
ORDER BY create_time DESC;
```
---
## 🎉 使用效果
使用日志查看功能后您可以
**实时监控**随时查看同步状态
**快速定位**找出问题订单
**追溯历史**查看操作记录
**错误诊断**分析失败原因
**效率统计**评估同步效率
---
## 📱 界面按钮位置
```
订单列表页面
顶部操作栏
[搜索] [重置] [导出] [H-TF自动写入配置] [批量同步物流]
配置对话框
底部操作按钮
[查看操作日志] [测试配置] [清除配置] [取消] [保存配置]
日志查看页面 ✨
```
---
**完成!** 🎊
如有问题请查看
- `操作日志查看功能说明.md` - 完整功能文档
- `如何查看同步进度和操作日志.md` - 技术细节
祝使用愉快 😊

View File

@@ -0,0 +1,251 @@
# 腾讯文档操作日志查看功能说明
## 📊 功能概览
新增了一个**操作日志查看页面**,可以方便地查看所有腾讯文档的同步操作记录,包括成功、失败、跳过的记录。
## 🎯 功能特性
### 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