This commit is contained in:
2025-10-24 00:05:00 +08:00
parent 47c9e49212
commit b2cf27683f

View File

@@ -0,0 +1,93 @@
# 京东订单统计控制功能实现说明
## 功能概述
为京东订单系统添加了统计控制功能,允许用户通过开关控制订单是否参与"慢单"统计。
## 实现内容
### 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. 在指令台测试"慢单"指令,确认过滤功能生效