# 京东订单统计控制功能实现说明

## 功能概述
为京东订单系统添加了统计控制功能，允许用户通过开关控制订单是否参与"慢单"统计。

## 实现内容

### 1. 数据库层面
- **文件**: `sql/add_count_enabled_field.sql`
- **操作**: 为 `jd_order` 表添加 `is_count_enabled` 字段
- **字段说明**: 
  - 类型: `TINYINT(1)`
  - 默认值: `1` (参与统计)
  - 含义: `0`=不参与统计，`1`=参与统计

### 2. 后端实体类更新
- **文件**: `ruoyi-system/src/main/java/com/ruoyi/jarvis/domain/JDOrder.java`
- **新增字段**: `isCountEnabled` (Integer类型)
- **注解**: 添加了 `@Excel` 注解支持导出

### 3. 数据库映射更新
- **文件**: `ruoyi-system/src/main/resources/mapper/jarvis/JDOrderMapper.xml`
- **更新内容**:
  - 在 `resultMap` 中添加新字段映射
  - 在 `selectJDOrderBase` SQL中添加新字段查询
  - 在 `insert` 和 `update` 语句中添加新字段处理

### 4. 统计逻辑修改
- **文件**: `ruoyi-system/src/main/java/com/ruoyi/jarvis/service/impl/InstructionServiceImpl.java`
- **修改位置**: 
  - `慢单` 统计逻辑 (第244行)
  - `录单` 导出逻辑 (第221行)
- **过滤条件**: 添加 `(o.getIsCountEnabled() == null || o.getIsCountEnabled() == 1)` 过滤条件
- **说明**: 只有 `isCountEnabled` 为 `null` 或 `1` 的订单才会参与统计

### 5. 前端界面更新
- **文件**: `ruoyi-vue/src/views/system/jdorder/orderList.vue`
- **新增功能**:
  - 在订单列表中添加"参与统计"列
  - 使用 `el-switch` 组件提供开关控制
  - 添加 `handleCountEnabledChange` 方法处理状态变化
  - 调用后端API实时更新数据库

### 6. API接口
- **文件**: `ruoyi-vue/src/api/system/jdorder.js`
- **新增方法**: `updateJDOrder` 用于更新订单信息
- **后端接口**: 使用现有的 `PUT /system/jdorder` 接口

## 使用说明

### 操作步骤
1. 在京东订单列表页面，找到"参与统计"列
2. 点击开关可以切换订单的统计状态
3. 状态变化会实时保存到数据库
4. 在指令台发送"慢单"指令时，只会统计标记为"参与统计"的订单

### 状态说明
- **开关开启** (绿色): 订单参与统计，`is_count_enabled = 1`
- **开关关闭** (灰色): 订单不参与统计，`is_count_enabled = 0`

### 统计影响
- 当订单的 `is_count_enabled` 设置为 `0` 时，该订单将不会出现在"慢单"统计结果中
- 其他查询功能（如"慢搜"、"慢查"）不受影响，仍可查询所有订单
- 录单导出功能也会过滤掉不参与统计的订单

## 技术细节

### 默认值处理
- 新订单默认 `is_count_enabled = 1` (参与统计)
- 现有订单通过SQL脚本统一设置为 `1`
- 前端显示时，`null` 值被视为参与统计

### 兼容性
- 向后兼容：现有订单默认参与统计
- 数据库字段有默认值，确保数据完整性
- 前端组件使用Element UI的Switch组件，用户体验良好

## 部署说明

### 数据库更新
1. 执行 `sql/add_count_enabled_field.sql` 脚本
2. 确认字段添加成功：`DESCRIBE jd_order;`

### 代码部署
1. 重新编译后端项目
2. 重新构建前端项目
3. 重启应用服务

### 验证步骤
1. 访问京东订单列表页面
2. 确认"参与统计"列显示正常
3. 测试开关功能是否正常
4. 在指令台测试"慢单"指令，确认过滤功能生效
