Commit Graph

42 Commits

Author SHA1 Message Date
user9994793890
8c6e6d7137 fix: 修复静态文件路径,使用正确的 /public/static/ 路径
Coze-Commit-Type: user
Coze-User-ID: 3722323274763196
Coze-Conversation-ID: 9894087
2026-07-13 15:46:08 +08:00
user9994793890
4b95a94d12 fix: 修复静态文件路径问题,将 static 目录移动到 public 下
Coze-Commit-Type: user
Coze-User-ID: 3722323274763196
Coze-Conversation-ID: 9894087
2026-07-13 15:44:22 +08:00
user9994793890
f84aa8a4a9 refactor: 重构项目结构,按功能模块拆分文件
- 后端:将 app.py 拆分为 lib/api/ 目录下的多个蓝图模块
  - config_api.py: 配置管理 API
  - entity_api.py: 实体管理 API
  - field_api.py: 字段列表 API
  - report_api.py: 日报生成和历史记录 API
  - init_api.py: 数据库初始化 API
  - download_api.py: 文件下载 API
- 前端:将 index.html 拆分为多个文件
  - static/css/style.css: CSS 样式
  - static/js/common.js: 通用工具函数
  - static/js/config.js: 配置管理
  - static/js/entity.js: 实体管理
  - static/js/report.js: 日报生成
  - static/js/history.js: 历史记录
- 更新 app.py 使用蓝图注册 API
- 创建 AGENTS.md 项目文档

Coze-Commit-Type: user
Coze-User-ID: 3722323274763196
Coze-Conversation-ID: 9894087
2026-07-13 15:43:03 +08:00
user9994793890
b3f5918dff fix: 修复历史记录日期格式和配置名称显示问题
Coze-Commit-Type: user
Coze-User-ID: 3722323274763196
Coze-Conversation-ID: 9894087
2026-07-13 14:55:08 +08:00
user9994793890
aaa5ba887a fix: 修复历史记录页面显示问题 - 报表日期中文化、时间范围格式修正、配置名称显示
Coze-Commit-Type: user
Coze-User-ID: 3722323274763196
Coze-Conversation-ID: 9894087
2026-07-13 14:51:40 +08:00
user9994793890
bce03557dd fix: 修复历史记录页面 renderPagination 未定义错误
Coze-Commit-Type: user
Coze-User-ID: 3722323274763196
Coze-Conversation-ID: 9894087
2026-07-13 14:34:11 +08:00
user9994793890
d57776e11d fix: 修复 total_amount 类型转换问题
Coze-Commit-Type: user
Coze-User-ID: 3722323274763196
Coze-Conversation-ID: 9894087
2026-07-13 14:31:13 +08:00
user9994793890
ce5431c753 fix: 添加缺失的 renderHistory 函数,修复历史记录渲染问题
Coze-Commit-Type: user
Coze-User-ID: 3722323274763196
Coze-Conversation-ID: 9894087
2026-07-13 14:30:05 +08:00
user9994793890
e1b3bf95e0 fix: 添加缺失的 loadHistory 函数,修复历史记录加载问题
Coze-Commit-Type: user
Coze-User-ID: 3722323274763196
Coze-Conversation-ID: 9894087
2026-07-13 14:28:13 +08:00
user9994793890
f02648a9b5 fix: 修复配置管理页面一直显示加载中的问题
Coze-Commit-Type: user
Coze-User-ID: 3722323274763196
Coze-Conversation-ID: 9894087
2026-07-13 14:22:12 +08:00
user9994793890
29390043b2 fix: 修复生成日报 configId 未定义错误
Coze-Commit-Type: user
Coze-User-ID: 3722323274763196
Coze-Conversation-ID: 9894087
2026-07-13 14:16:47 +08:00
user9994793890
8e5657aeee fix: 修复生成日报按钮无响应问题,支持批量生成
Coze-Commit-Type: user
Coze-User-ID: 3722323274763196
Coze-Conversation-ID: 9894087
2026-07-13 14:14:05 +08:00
user9994793890
a525544ad3 feat: 添加生成日报多选功能,支持批量生成多个配置
Coze-Commit-Type: user
Coze-User-ID: 3722323274763196
Coze-Conversation-ID: 9894087
2026-07-13 14:09:38 +08:00
user9994793890
c104b56add feat: 规范报表名称格式,添加补单检测,设置充电量为必选字段
Coze-Commit-Type: user
Coze-User-ID: 3722323274763196
Coze-Conversation-ID: 9894087
2026-07-13 13:39:58 +08:00
user9994793890
d7a3e3fa9a feat: 添加字段自定义报表名头功能
Coze-Commit-Type: user
Coze-User-ID: 3722323274763196
Coze-Conversation-ID: 9894087
2026-07-13 11:27:11 +08:00
user9994793890
81945f467a feat: 添加合并特来电平台数据功能
Coze-Commit-Type: user
Coze-User-ID: 3722323274763196
Coze-Conversation-ID: 9894087
2026-07-13 11:11:10 +08:00
user9994793890
2a6abd5fd6 fix: 修复字段顺序区域不显示的问题
Coze-Commit-Type: user
Coze-User-ID: 3722323274763196
Coze-Conversation-ID: 9894087
2026-07-10 16:12:59 +08:00
user9994793890
1f6f2fef80 fix: 用按钮排序替代拖拽,修复求和字段被清空的问题
Coze-Commit-Type: user
Coze-User-ID: 3722323274763196
Coze-Conversation-ID: 9894087
2026-07-10 16:02:13 +08:00
user9994793890
fe6a3dad00 fix: 修复字段拖拽排序功能
Coze-Commit-Type: user
Coze-User-ID: 3722323274763196
Coze-Conversation-ID: 9894087
2026-07-10 15:56:19 +08:00
user9994793890
8f380c24ed fix: 修复字段顺序加载函数未定义的错误
Coze-Commit-Type: user
Coze-User-ID: 3722323274763196
Coze-Conversation-ID: 9894087
2026-07-10 15:51:51 +08:00
user9994793890
7ee6127f94 feat: 添加字段顺序调整功能,支持拖拽排序
Coze-Commit-Type: user
Coze-User-ID: 3722323274763196
Coze-Conversation-ID: 9894087
2026-07-10 15:50:34 +08:00
user9994793890
c44ae11e52 feat: 用户选择增加手机号搜索功能
Coze-Commit-Type: user
Coze-User-ID: 3722323274763196
Coze-Conversation-ID: 9894087
2026-07-10 15:40:39 +08:00
user9994793890
f1e74b3713 fix: 修复时段编辑器显示bug,确保所有时段的选中状态正确显示
Coze-Commit-Type: user
Coze-User-ID: 3722323274763196
Coze-Conversation-ID: 9894087
2026-07-10 15:21:52 +08:00
user9994793890
58b90a3ad7 debug: 添加时段编辑器调试日志
Coze-Commit-Type: user
Coze-User-ID: 3722323274763196
Coze-Conversation-ID: 9894087
2026-07-10 15:10:24 +08:00
user9994793890
619e628501 feat: 添加分时段电量统计功能(尖/峰/平/谷)
Coze-Commit-Type: user
Coze-User-ID: 3722323274763196
Coze-Conversation-ID: 9894087
2026-07-10 15:00:18 +08:00
user9994793890
d756ecd044 feat: 优化配置编辑页面UI,添加分步引导和美化样式
Coze-Commit-Type: user
Coze-User-ID: 3722323274763196
Coze-Conversation-ID: 9894087
2026-07-10 14:41:33 +08:00
user9994793890
a8dbd881ee fix: 修复字段和求和字段复选框回显问题,优化求和字段逻辑
Coze-Commit-Type: user
Coze-User-ID: 3722323274763196
Coze-Conversation-ID: 9894087
2026-07-10 14:30:45 +08:00
user9994793890
96e58202be fix: 修复编辑配置时字段和求和字段复选框未回显的问题
Coze-Commit-Type: user
Coze-User-ID: 3722323274763196
Coze-Conversation-ID: 9894087
2026-07-10 14:20:09 +08:00
user9994793890
cdab7b905a fix: 修复编辑配置时已选内容未回显的问题
Coze-Commit-Type: user
Coze-User-ID: 3722323274763196
Coze-Conversation-ID: 9894087
2026-07-10 14:18:19 +08:00
user9994793890
babca759e4 fix: 修复配置复制功能失败的问题
Coze-Commit-Type: user
Coze-User-ID: 3722323274763196
Coze-Conversation-ID: 9894087
2026-07-10 13:10:15 +08:00
user9994793890
0ebc35398d fix: 修复JavaScript变量名冲突导致页面无法加载的问题
Coze-Commit-Type: user
Coze-User-ID: 3722323274763196
Coze-Conversation-ID: 9894087
2026-07-10 13:07:58 +08:00
user9994793890
2d9951de59 feat: 优化实体加载,添加分页和搜索功能
Coze-Commit-Type: user
Coze-User-ID: 3722323274763196
Coze-Conversation-ID: 9894087
2026-07-10 13:04:04 +08:00
user9994793890
1e0136f497 feat: 完成配置管理增强功能
## 修复问题

### 1. 企业加载不出来
**问题**:`Unknown column 'company_id' in 'table list'`
**原因**:`t_company` 表中字段名是 `id` 而不是 `company_id`
**修复**:修改 `/api/entities` API 中的SQL查询,使用正确的字段名

### 2. 用户加载不出来
**问题**:`Unknown column 'name' in 'field list'`
**原因**:`t_user` 表中字段名是 `user_name` 而不是 `name`
**修复**:修改SQL查询,使用正确的字段名 `user_name`

## 新增功能

### 3. 拆分方式增加"按场站"
- 在拆分方式下拉框中添加"按场站"选项
- 支持从 `t_station` 表加载场站列表
- 场站显示名称格式:`station_id - name`

### 4. 企业/用户/场站多选功能
- 将选择框改为多选(`multiple` 属性)
- 保存时将多个值用逗号分隔存储
- 编辑时自动解析逗号分隔的值并选中对应选项
- 日报生成时支持多选值查询(使用 IN 语句)

### 5. 配置复制功能
- 在配置列表中添加"复制"按钮
- 复制配置时自动添加"_副本"后缀
- 后端API:`POST /api/config/<id>/copy`

### 6. 后端查询优化
- 修改 `report_generator.py` 中的查询逻辑
- 支持多选值查询(逗号分隔的值使用 IN 语句)

## 重启应用测试

```bash
# Ctrl+C 停止
python app.py
```

然后刷新页面,测试:
1.  企业/用户/场站列表是否正常加载
2.  多选功能是否正常工作
3.  配置复制功能是否正常
4.  生成日报时多选值是否正确查询

Coze-Commit-Type: user
Coze-User-ID: 3722323274763196
Coze-Conversation-ID: 9894087
2026-07-10 12:49:57 +08:00
user9994793890
a1431e421d feat: 配置管理增加复制功能,修复企业加载问题
## 修复问题

### 1. 企业加载不出来
**问题**:`Unknown column 'company_id' in 'table list'`
**原因**:`t_company` 表中字段名是 `id` 而不是 `company_id`
**修复**:修改 `/api/entities` API 中的SQL查询,使用正确的字段名 `id`

## 新增功能

### 2. 配置复制功能
- 在配置列表中每个配置添加"复制"按钮
- 点击复制按钮,复制整个配置(包括所有字段设置)
- 新配置名称自动添加"_副本"后缀
- 后端API:`POST /api/config/<id>/copy`

## 功能说明

### 复制配置
1. 在配置管理标签页
2. 找到要复制的配置
3. 点击"复制"按钮
4. 系统会创建一个新配置,名称为"原名称_副本"
5. 新配置包含原配置的所有设置(拆分方式、字段、求和等)

### 企业加载
现在企业列表可以正常加载了,显示企业ID和名称。

## 重启应用测试

```bash
# Ctrl+C 停止
python app.py
```

然后刷新页面,测试:
1. 企业列表是否正常显示
2. 配置复制功能是否正常工作

Coze-Commit-Type: user
Coze-User-ID: 3722323274763196
Coze-Conversation-ID: 9894087
2026-07-10 12:44:30 +08:00
user9994793890
ac93eb4c98 feat: 历史记录增加删除、批量删除、批量下载和日期查询功能
新增功能:

1. 报表日期格式改为数字显示
   - 修改 formatDateDisplay 函数
   - 格式:YYYY-MM-DD(如"2026-07-09")

2. 删除单个历史记录
   - 在每行添加删除按钮
   - 后端API:DELETE /api/report/history/<id>
   - 同时删除文件和数据库记录

3. 批量删除历史记录
   - 在每行添加复选框
   - 表头添加全选复选框
   - 添加"批量删除"按钮
   - 后端API:POST /api/report/history/batch-delete

4. 批量下载历史记录
   - 添加"批量下载"按钮
   - 后端API:POST /api/report/history/batch-download
   - 使用zipfile打包多个Excel文件

5. 按日期时间查询
   - 添加日期范围选择器(开始日期、结束日期)
   - 添加"查询"和"重置"按钮
   - 后端API:GET /api/report/history?start_date=xxx&end_date=xxx
   - 支持按start_time和end_time筛选

6. 根据ID下载历史记录
   - 后端API:GET /api/report/history/<id>/download
   - 直接下载对应的Excel文件

前端修改:
- 添加全选复选框和行复选框
- 添加批量操作按钮(批量删除、批量下载)
- 添加日期查询表单
- 添加相关JavaScript函数

后端修改:
- 修改历史记录查询API,支持日期筛选
- 添加删除单个记录API
- 添加批量删除API
- 添加批量下载API
- 添加根据ID下载API

Coze-Commit-Type: user
Coze-User-ID: 3722323274763196
Coze-Conversation-ID: 9894087
2026-07-10 11:04:50 +08:00
user9994793890
f6d8001891 fix: 日期时间改为数字格式显示
问题:日期时间显示为中文格式(如"2026年7月9日 上午10:55:11")

修复:
- 添加 formatDateTimeDisplay 函数,将日期时间转换为纯数字格式
- 在历史记录渲染中使用该函数
- 格式:YYYY-MM-DD HH:MM:SS(如"2026-07-09 10:55:11")

现在日期时间会显示为纯数字格式。

Coze-Commit-Type: user
Coze-User-ID: 3722323274763196
Coze-Conversation-ID: 9894087
2026-07-10 10:57:46 +08:00
user9994793890
40d06e3828 fix: 修复历史记录加载错误 - total_amount类型转换
问题:加载失败: (item.total_amount || 0).toFixed is not a function

原因:
- 数据库返回的 total_amount 是字符串类型(Decimal)
- JavaScript中字符串没有 toFixed 方法
- 导致渲染历史记录时出错

修复:
- 使用 parseFloat(item.total_amount || 0).toFixed(2)
- 先将字符串转换为数字,再调用 toFixed

现在历史记录应该能正常加载和显示了。

Coze-Commit-Type: user
Coze-User-ID: 3722323274763196
Coze-Conversation-ID: 9894087
2026-07-10 10:56:20 +08:00
user9994793890
f0297c61ef debug: 添加历史记录加载调试日志
问题:历史记录一直显示"加载中..."

修复:
- 在 loadHistory 函数中添加详细的 console.log 调试日志
- 显示请求发送、响应状态、响应数据等信息
- 添加错误处理和显示

请重启应用并测试,查看浏览器控制台的输出信息。

Coze-Commit-Type: user
Coze-User-ID: 3722323274763196
Coze-Conversation-ID: 9894087
2026-07-10 10:54:58 +08:00
user9994793890
9debeb12b5 fix: 修复历史记录加载问题
问题:历史记录一直显示"加载中..."

原因:
- switchTab 函数中使用了 event.target
- 在某些情况下 event 对象未定义
- 导致JavaScript错误,整个脚本停止执行

修复:
- 添加 event 参数到 switchTab 函数
- 检查 event 和 event.target 是否存在
- 避免JavaScript错误中断执行

现在历史记录应该能正常加载了。

Coze-Commit-Type: user
Coze-User-ID: 3722323274763196
Coze-Conversation-ID: 9894087
2026-07-10 10:37:33 +08:00
user9994793890
2ad6e27131 debug: 添加详细调试日志,诊断下载按钮不显示的问题
问题:日报生成成功后,历史记录中没有下载按钮。

改进内容:

1. lib/report_generator.py:
   - 在生成Excel文件后添加日志:显示文件路径
   - 在保存历史记录前添加日志:显示file_path值
   - 在save_report_history函数中添加详细日志:
     * 显示准备保存的信息
     * 显示file_path和status的值
     * 显示SQL执行结果

2. app.py:
   - 在历史记录API中添加调试日志
   - 显示每条记录的status和file_path
   - 确保file_path不为None(转换为空字符串)
   - 添加错误堆栈输出

3. templates/index.html:
   - 在渲染历史记录时添加console.log调试
   - 显示每条记录的详细信息
   - 显示status和file_path的类型
   - 改进下载按钮判断逻辑
   - 添加title提示显示文件路径

4. 新增文档:
   - 查看调试日志.md:详细的调试步骤和问题诊断方法

现在用户可以通过日志准确定位问题:
- 服务器控制台:查看后端日志
- 浏览器控制台:查看前端日志
- curl测试:直接查看API返回数据

Coze-Commit-Type: user
Coze-User-ID: 3722323274763196
Coze-Conversation-ID: 9894087
2026-07-09 12:59:40 +08:00
user9994793890
3ed22fec5d improve: 改进日报生成后的用户体验
1. 改进生成成功提示:
   - 添加更详细的统计信息展示
   - 显示求和结果
   - 添加醒目的"立即下载Excel文件"按钮
   - 添加"查看历史记录"快捷按钮
   - 添加提示说明日报也保存在历史记录中

2. 改进生成失败提示:
   - 显示详细错误信息
   - 列出可能的原因
   - 提供解决建议

3. 改进历史记录页面:
   - 下载按钮改为绿色,更醒目
   - 添加下载图标📥
   - 空状态提示更友好
   - 时间范围显示更清晰

4. 添加使用说明:
   - 在日报生成页面顶部添加使用流程说明
   - 告诉用户生成后如何找到和下载日报

5. 创建详细说明文档:
   - 如何找到生成的日报.md
   - 包含3种查找方法
   - 常见问题解答
   - 文件命名规则和存储位置说明

现在用户可以清楚地知道:
- 生成成功后如何立即下载
- 如何通过历史记录找到日报
- 如何直接访问文件目录
- 生成失败时如何排查问题

Coze-Commit-Type: user
Coze-User-ID: 3722323274763196
Coze-Conversation-ID: 9894087
2026-07-09 12:41:52 +08:00
user9994793890
9383612712 feat: 将项目从Next.js重构为Python Flask版本
完全重构为Python + Flask架构,包含:

1. 核心模块:
   - lib/db.py:数据库连接(PyMySQL)
   - lib/field_mapping.py:字段映射(100+字段英文→中文)
   - lib/report_generator.py:日报生成核心逻辑

2. Flask应用:
   - app.py:主应用,包含所有API路由
   - 配置管理API(CRUD、启用/禁用、排序)
   - 日报生成API(支持预设/自定义时间)
   - 历史记录API(分页查询)
   - 文件下载API
   - 定时任务(APScheduler,每天8:01)

3. 前端页面:
   - templates/index.html:完整的单页面应用
   - 三个标签页:配置管理、日报生成、历史记录
   - 原生HTML+CSS+JavaScript,无需构建

4. 依赖管理:
   - requirements.txt:Python依赖清单
   - Flask 3.0.0 + Flask-CORS 4.0.0
   - PyMySQL 1.1.0(数据库驱动)
   - openpyxl 3.1.2(Excel处理)
   - APScheduler 3.10.4(定时任务)

5. 启动脚本:
   - scripts/dev.bat:Windows开发环境启动
   - scripts/start.bat:Windows生产环境启动

6. 文档:
   - README.md:完整的安装、运行、使用指南
   - 包含API接口说明、数据库表结构、常见问题

Windows运行方式:
1. 安装Python 3.8+
2. pip install -r requirements.txt
3. scripts\dev.bat 或 python app.py
4. 访问 http://localhost:5000
5. 初始化数据库:POST /api/init-tables

所有功能完整保留:
 定时任务(每天8:01)
 配置管理(CRUD+启用/禁用+排序)
 日报生成(按配置+时间范围)
 历史记录(查看+下载)
 自定义字段(中文显示)
 求和功能(多字段求和)
 按企业/用户拆分
 Excel导出

Coze-Commit-Type: user
Coze-User-ID: 3722323274763196
Coze-Conversation-ID: 9894087
2026-07-09 11:26:23 +08:00