# 订单日报系统 变更日志

## 版本记录

### v1.0.0 (2026-07-28)

**新增功能**：

1. **求和数据全局配置功能**
   - 在"求和数据"页面添加"全局配置"按钮
   - 创建全局配置表 `t_daily_report_global_config`
   - 支持配置求和数据采集和显示的字段范围
   - 充电电量（charge_degree）始终采集和显示
   - 未配置时显示所有字段（向后兼容）

2. **新增全局配置API**
   - `GET /api/global-config/sum-data-fields` - 获取配置
   - `POST /api/global-config/sum-data-fields` - 保存配置

**修复问题**：

1. **配置加载失败**
   - 修复编辑配置时 `selectedFields is not defined` 错误
   - 将 `refreshSumDataFieldsList(selectedFields, sumDataFields)` 改为 `refreshSumDataFieldsList(config.selected_fields, sumDataFields)`

2. **求和数据显示字段过滤**
   - 修改渲染逻辑，按全局配置过滤显示字段
   - 在加载数据前先获取全局配置
   - 页面加载时初始化全局配置

**重构优化**：

1. **移除配置管理页面中的求和数据采集字段配置**
   - 从 `index.html` 中移除相关UI
   - 从 `config.js` 中移除相关逻辑
   - 从 `config_api.py` 中移除 `sum_data_fields` 参数处理

2. **修改求和数据采集逻辑**
   - 从全局配置表读取字段配置
   - 过滤采集字段，只采集配置的字段

**文件变更**：

| 文件路径 | 变更类型 | 说明 |
|----------|----------|------|
| `lib/db_init.py` | 修改 | 新增全局配置表 `t_daily_report_global_config` |
| `lib/api/global_config_api.py` | 新增 | 全局配置API |
| `lib/api/__init__.py` | 修改 | 注册全局配置蓝图 |
| `lib/api/config_api.py` | 修改 | 移除 `sum_data_fields` 参数处理 |
| `lib/sum_data_collector.py` | 修改 | 从全局配置读取字段配置 |
| `templates/index.html` | 修改 | 移除配置管理页面的求和数据采集字段UI，添加全局配置按钮和模态框 |
| `public/static/js/config.js` | 修改 | 移除求和数据采集字段相关逻辑 |
| `public/static/js/sum_data.js` | 修改 | 添加全局配置功能和字段过滤逻辑 |

### v0.9.0 (2026-07-27)

**新增功能**：

1. **自定义服务费功能**
   - 支持配置自定义服务费单价
   - 支持配置自定义服务费表头名称
   - 支持在报表中显示自定义服务费字段

2. **自定义实收总金额功能**
   - 支持配置是否显示实收总金额字段
   - 支持配置实收总金额表头名称
   - 计算逻辑：实收电费 + 自定义服务费

3. **月度总计功能**
   - 支持在报表底部显示当月充电量累计总计
   - 数据来源于求和采集表

**文件变更**：

| 文件路径 | 变更类型 | 说明 |
|----------|----------|------|
| `lib/db_init.py` | 修改 | 新增 `show_monthly_total`, `custom_service_fee_price`, `custom_service_fee_name`, `show_custom_service_fee`, `show_total_amount`, `total_amount_name` 字段 |
| `lib/api/config_api.py` | 修改 | 添加自定义服务费和实收总金额配置处理 |
| `lib/report_generator.py` | 修改 | 添加自定义服务费和实收总金额计算逻辑 |
| `templates/index.html` | 修改 | 添加自定义服务费和实收总金额配置UI |
| `public/static/js/config.js` | 修改 | 添加自定义服务费和实收总金额配置逻辑 |

### v0.8.0 (2026-07-20)

**新增功能**：

1. **特来电数据合并**
   - 支持合并特来电平台数据
   - 支持配置特来电车量自编号

2. **分时段电量统计**
   - 支持尖峰平谷分时段电量统计
   - 支持自定义时段配置

3. **求和数据管理**
   - 支持从历史记录采集求和数据
   - 支持手动添加和编辑求和数据
   - 支持导出求和数据

**文件变更**：

| 文件路径 | 变更类型 | 说明 |
|----------|----------|------|
| `lib/db_init.py` | 修改 | 创建求和数据表 `t_daily_report_sum_data` |
| `lib/sum_data_collector.py` | 新增 | 求和数据采集和管理逻辑 |
| `lib/api/sum_data_api.py` | 新增 | 求和数据API |
| `templates/index.html` | 修改 | 添加求和数据页面和相关模态框 |
| `public/static/js/sum_data.js` | 新增 | 求和数据前端逻辑 |

### v0.7.0 (2026-07-15)

**新增功能**：

1. **配置管理**
   - 支持创建、编辑、删除配置
   - 支持配置复制
   - 支持启用/禁用配置
   - 支持配置排序

2. **实体管理**
   - 支持企业、用户、场站列表查询
   - 支持分页和搜索

3. **日报生成**
   - 支持手动生成日报
   - 支持定时任务自动生成

4. **历史记录**
   - 支持查看生成历史
   - 支持下载报表文件
   - 支持批量删除

**文件变更**：

| 文件路径 | 变更类型 | 说明 |
|----------|----------|------|
| `app.py` | 新增 | Flask 主应用 |
| `lib/db.py` | 新增 | 数据库连接配置 |
| `lib/db_init.py` | 新增 | 数据库初始化 |
| `lib/field_mapping.py` | 新增 | 字段映射定义 |
| `lib/report_generator.py` | 新增 | 日报生成核心逻辑 |
| `lib/api/config_api.py` | 新增 | 配置管理API |
| `lib/api/entity_api.py` | 新增 | 实体管理API |
| `lib/api/field_api.py` | 新增 | 字段列表API |
| `lib/api/report_api.py` | 新增 | 日报生成和历史记录API |
| `lib/api/download_api.py` | 新增 | 文件下载API |
| `lib/api/auth_api.py` | 新增 | 认证API |
| `templates/index.html` | 新增 | 主页面 |
| `public/static/css/style.css` | 新增 | 全局样式 |
| `public/static/js/common.js` | 新增 | 通用工具函数 |
| `public/static/js/config.js` | 新增 | 配置管理逻辑 |
| `public/static/js/entity.js` | 新增 | 实体管理逻辑 |
| `public/static/js/report.js` | 新增 | 日报生成逻辑 |
| `public/static/js/history.js` | 新增 | 历史记录逻辑 |

## 版本说明

### 版本号规则

- **主版本号**：重大功能变更或架构调整
- **次版本号**：新增功能或修复问题
- **修订号**：小修复和优化

### 向后兼容性

- v1.0.0 与 v0.9.0 完全兼容
- v0.9.0 与 v0.8.0 完全兼容
- v0.8.0 与 v0.7.0 完全兼容

### 数据库迁移

系统启动时会自动执行数据库迁移，无需手动操作：

1. 创建缺失的表
2. 添加缺失的字段
3. 初始化全局配置记录（如果不存在）