- 后端:将 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
71 lines
3.1 KiB
Python
71 lines
3.1 KiB
Python
"""
|
|
数据库初始化 API
|
|
"""
|
|
from flask import jsonify
|
|
from lib.db import execute_update
|
|
from . import init_bp
|
|
|
|
|
|
@init_bp.route('/init-tables', methods=['POST'])
|
|
def init_tables():
|
|
"""初始化数据库表"""
|
|
try:
|
|
# 创建配置表
|
|
create_config_table = """
|
|
CREATE TABLE IF NOT EXISTS t_daily_report_config (
|
|
id BIGINT NOT NULL COMMENT '配置 ID',
|
|
config_name VARCHAR(100) NOT NULL COMMENT '配置名称',
|
|
split_type VARCHAR(20) NOT NULL COMMENT '拆分方式',
|
|
split_value VARCHAR(100) NOT NULL COMMENT '拆分值',
|
|
split_name VARCHAR(200) NULL COMMENT '拆分显示名称',
|
|
selected_fields VARCHAR(3000) NOT NULL COMMENT '选择的字段列表',
|
|
sum_fields VARCHAR(3000) NULL COMMENT '求和字段列表',
|
|
is_active TINYINT NULL COMMENT '是否启用',
|
|
sort_order INT NULL COMMENT '排序顺序',
|
|
create_time DATETIME NULL COMMENT '创建时间',
|
|
update_time DATETIME NULL COMMENT '更新时间'
|
|
)
|
|
UNIQUE KEY(id)
|
|
DISTRIBUTED BY HASH(id) BUCKETS 1
|
|
PROPERTIES("replication_num" = "1")
|
|
"""
|
|
execute_update(create_config_table)
|
|
|
|
# 创建历史表
|
|
create_history_table = """
|
|
CREATE TABLE IF NOT EXISTS t_daily_report_history (
|
|
id BIGINT NOT NULL COMMENT '历史 ID',
|
|
report_date VARCHAR(20) NULL COMMENT '报表日期',
|
|
start_time VARCHAR(50) NULL COMMENT '开始时间',
|
|
end_time VARCHAR(50) NULL COMMENT '结束时间',
|
|
split_type VARCHAR(20) NULL COMMENT '拆分方式',
|
|
split_value VARCHAR(100) NULL COMMENT '拆分值',
|
|
split_name VARCHAR(200) NULL COMMENT '拆分显示名称',
|
|
config_id BIGINT NULL COMMENT '配置 ID',
|
|
config_name VARCHAR(200) NULL COMMENT '配置名称',
|
|
total_orders INT NULL COMMENT '订单总数',
|
|
total_amount DECIMAL(10,2) NULL COMMENT '总金额',
|
|
sum_results VARCHAR(2000) NULL COMMENT '求和结果',
|
|
file_path VARCHAR(500) NULL COMMENT '文件路径',
|
|
status TINYINT NULL COMMENT '状态',
|
|
create_time DATETIME NULL COMMENT '创建时间'
|
|
)
|
|
UNIQUE KEY(id)
|
|
DISTRIBUTED BY HASH(id) BUCKETS 1
|
|
PROPERTIES("replication_num" = "1")
|
|
"""
|
|
execute_update(create_history_table)
|
|
|
|
# 为已存在的表添加 config_name 字段(如果不存在)
|
|
try:
|
|
execute_update("""
|
|
ALTER TABLE t_daily_report_history
|
|
ADD COLUMN IF NOT EXISTS config_name VARCHAR(200) NULL COMMENT '配置名称'
|
|
""")
|
|
except Exception as e:
|
|
print(f"[数据库] 添加 config_name 字段时出错(可能已存在): {e}")
|
|
|
|
return jsonify({'success': True, 'message': '数据库表初始化成功'})
|
|
except Exception as e:
|
|
return jsonify({'success': False, 'message': str(e)}), 500
|