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