diff --git a/doc/京东订单统计控制功能说明.md b/doc/京东订单统计控制功能说明.md new file mode 100644 index 0000000..3b0e109 --- /dev/null +++ b/doc/京东订单统计控制功能说明.md @@ -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. 在指令台测试"慢单"指令,确认过滤功能生效