# 腾讯文档操作日志查看功能说明

## 📊 功能概览

新增了一个**操作日志查看页面**，可以方便地查看所有腾讯文档的同步操作记录，包括成功、失败、跳过的记录。

## 🎯 功能特性

### 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

