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
This commit is contained in:
@@ -65,18 +65,38 @@ def generate_daily_report(config_id, start_time=None, end_time=None):
|
||||
|
||||
# 构建查询SQL
|
||||
fields_str = ', '.join(selected_fields)
|
||||
sql = f"""
|
||||
SELECT {fields_str}
|
||||
FROM t_equipment_charge_order
|
||||
WHERE state = 3
|
||||
AND report_time >= %s
|
||||
AND report_time < %s
|
||||
AND {config['split_type']} = %s
|
||||
ORDER BY report_time DESC
|
||||
"""
|
||||
|
||||
# 检查是否为多选值(逗号分隔)
|
||||
split_values = [v.strip() for v in config['split_value'].split(',') if v.strip()]
|
||||
|
||||
if len(split_values) > 1:
|
||||
# 多选:使用 IN 查询
|
||||
placeholders = ', '.join(['%s'] * len(split_values))
|
||||
sql = f"""
|
||||
SELECT {fields_str}
|
||||
FROM t_equipment_charge_order
|
||||
WHERE state = 3
|
||||
AND report_time >= %s
|
||||
AND report_time < %s
|
||||
AND {config['split_type']} IN ({placeholders})
|
||||
ORDER BY report_time DESC
|
||||
"""
|
||||
params = [start_time_str, end_time_str] + split_values
|
||||
else:
|
||||
# 单选:使用 = 查询
|
||||
sql = f"""
|
||||
SELECT {fields_str}
|
||||
FROM t_equipment_charge_order
|
||||
WHERE state = 3
|
||||
AND report_time >= %s
|
||||
AND report_time < %s
|
||||
AND {config['split_type']} = %s
|
||||
ORDER BY report_time DESC
|
||||
"""
|
||||
params = [start_time_str, end_time_str, config['split_value']]
|
||||
|
||||
# 执行查询
|
||||
orders = execute_query(sql, (start_time_str, end_time_str, config['split_value']))
|
||||
orders = execute_query(sql, tuple(params))
|
||||
|
||||
print(f"[日报生成] 查询到 {len(orders)} 条订单")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user