Files
ylt_diy/修复下载问题.md
user9994793890 487a26e704 fix: 创建数据库表结构修复工具,解决下载按钮不显示的问题
问题:日报生成成功后,历史记录中显示"可下载为空",没有下载按钮。

原因:数据库表结构可能缺少 file_path 字段,或者表结构不完整。

解决方案:

1. 新增 fixDatabase.py 修复脚本:
   - 自动检查表结构是否完整
   - 检查是否缺少 file_path 等必要字段
   - 询问用户是否删除旧表重建
   - 重建 t_daily_report_history 和 t_daily_report_config 表
   - 显示最近的历史记录状态

2. 新增 修复下载问题.md 文档:
   - 详细的问题分析
   - 4种解决方案
   - 常见问题解答
   - 验证修复的方法

使用步骤:
1. 停止当前服务(Ctrl+C)
2. 运行 python fixDatabase.py
3. 输入 y 确认删除旧表重建
4. 重启服务 python app.py
5. 重新创建配置
6. 生成日报
7. 历史记录中应该能看到下载按钮

注意:修复会删除所有配置和历史记录,需要重新创建配置。

Coze-Commit-Type: user
Coze-User-ID: 3722323274763196
Coze-Conversation-ID: 9894087
2026-07-09 13:08:39 +08:00

3.8 KiB
Raw Blame History

修复下载按钮不显示的问题

问题描述

日报生成成功后,历史记录中显示"可下载为空",没有下载按钮。

原因分析

可能是数据库表结构问题:

  1. 旧版本的表缺少 file_path 字段
  2. 或者表结构不完整
  3. 或者数据没有正确保存

解决方案

方案1:运行修复脚本(推荐)

步骤1:停止服务

# 按 Ctrl+C 停止当前运行的服务

步骤2:运行修复脚本

python fixDatabase.py

脚本会:

  1. 检查表结构是否完整
  2. 如果缺少字段,询问是否删除旧表重建
  3. 输入 y 确认删除并重建
  4. 等待修复完成

步骤3:重启服务

python app.py

步骤4:重新创建配置

由于旧表被删除,需要重新创建配置:

  1. 访问 http://localhost:5000
  2. 切换到"配置管理"标签
  3. 创建新的配置
  4. 选择企业/用户、字段、求和等

步骤5:生成日报

  1. 切换到"日报生成"标签
  2. 选择配置和时间范围
  3. 点击"生成日报"
  4. 生成成功后,切换到"历史记录"标签
  5. 应该能看到下载按钮了

方案2:手动检查和修复

如果修复脚本无法运行,可以手动检查:

1. 检查表结构

# 连接数据库(需要安装MySQL客户端)
mysql -h haoslm2.xicp.net -P 10216 -u root -p

# 输入密码:DsideaL147258369

# 查看表结构
DESCRIBE t_daily_report_history;

应该看到包含 file_path 字段。如果没有,需要重建表。

2. 删除旧表

DROP TABLE IF EXISTS t_daily_report_history;
DROP TABLE IF EXISTS t_daily_report_config;

3. 重新初始化

访问 http://localhost:5000/api/init-tables 或重启服务

方案3:检查服务器日志

1. 查看生成日志

在运行 python app.py 的窗口中,查看生成日报时的日志:

[日报生成] Excel文件已生成: /reports/daily_report_xxx.xlsx
[日报生成] 准备保存历史记录,file_path=/reports/daily_report_xxx.xlsx
[保存历史] 准备保存历史记录
  ID: 1234567890123
  file_path: '/reports/daily_report_xxx.xlsx'
  status: 1

如果 file_path 为空,说明Excel生成失败。

2. 查看历史记录日志

切换到"历史记录"标签时,查看日志:

[历史记录] ID: 1234567890123, status: 1, file_path: '/reports/daily_report_xxx.xlsx'

如果 file_path 为空,说明数据库中保存的数据有问题。

方案4:检查文件是否存在

# Windows
dir public\reports\*.xlsx

# 查看是否有生成的Excel文件

如果文件不存在,说明Excel生成失败。检查:

  1. public/reports/ 目录是否存在
  2. 是否有写入权限
  3. 查看服务器控制台的错误信息

验证修复

修复后,应该能够:

  1. ✓ 生成日报成功
  2. ✓ 历史记录中显示"可下载"
  3. ✓ 点击下载按钮,Excel文件开始下载
  4. ✓ 打开Excel文件,内容正确

常见问题

Q1: 修复脚本运行失败

A: 检查数据库连接是否正常,确认数据库地址、用户名、密码正确。

Q2: 修复后仍然没有下载按钮

A:

  1. 清除浏览器缓存(Ctrl+F5)
  2. 重启服务
  3. 查看服务器控制台日志
  4. 查看浏览器控制台(F12)错误

Q3: 下载按钮显示但下载失败

A:

  1. 检查 public/reports/ 目录中是否有文件
  2. 检查文件权限
  3. 查看服务器控制台错误

Q4: 修复脚本删除了配置数据

A: 这是正常的,因为旧表结构有问题。修复后需要重新创建配置。

联系支持

如果以上方案都无法解决问题,请提供:

  1. 修复脚本的输出结果
  2. 服务器控制台的完整日志
  3. 浏览器控制台的错误信息
  4. 数据库表结构的截图(DESCRIBE t_daily_report_history)

最后更新: 2025-01-08