修复求和数据统计的问题
This commit is contained in:
@@ -57,6 +57,10 @@ def create_config():
|
||||
|
||||
custom_service_fee_name = data.get('custom_service_fee_name')
|
||||
|
||||
show_custom_service_fee = 1 if data.get('show_custom_service_fee') else 0
|
||||
show_total_amount = 1 if data.get('show_total_amount') else 0
|
||||
total_amount_name = data.get('total_amount_name')
|
||||
|
||||
if not config_name or not split_type or not split_value:
|
||||
log_warning('[配置API] 创建配置失败:缺少必填字段', 'api')
|
||||
return jsonify({'success': False, 'message': '缺少必填字段'}), 400
|
||||
@@ -76,8 +80,10 @@ def create_config():
|
||||
INSERT INTO t_daily_report_config
|
||||
(id, config_name, split_type, split_value, split_name, selected_fields,
|
||||
sum_fields, time_periods, merge_telecom, telecom_vehicle_no, field_custom_names,
|
||||
show_monthly_total, custom_service_fee_price, custom_service_fee_name, is_active, sort_order, create_time, update_time)
|
||||
VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, 1, %s, NOW(), NOW())
|
||||
show_monthly_total, custom_service_fee_price, custom_service_fee_name,
|
||||
show_custom_service_fee, show_total_amount, total_amount_name,
|
||||
is_active, sort_order, create_time, update_time)
|
||||
VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, 1, %s, NOW(), NOW())
|
||||
"""
|
||||
|
||||
params = (
|
||||
@@ -95,6 +101,9 @@ def create_config():
|
||||
show_monthly_total,
|
||||
custom_service_fee_price,
|
||||
custom_service_fee_name if custom_service_fee_name else None,
|
||||
show_custom_service_fee,
|
||||
show_total_amount,
|
||||
total_amount_name if total_amount_name else None,
|
||||
sort_order
|
||||
)
|
||||
|
||||
@@ -136,6 +145,10 @@ def update_config(config_id):
|
||||
|
||||
custom_service_fee_name = data.get('custom_service_fee_name')
|
||||
|
||||
show_custom_service_fee = 1 if data.get('show_custom_service_fee') else 0
|
||||
show_total_amount = 1 if data.get('show_total_amount') else 0
|
||||
total_amount_name = data.get('total_amount_name')
|
||||
|
||||
# 查询原配置,检查拆分是否变化
|
||||
old_configs = execute_query('SELECT * FROM t_daily_report_config WHERE id = %s', (config_id,))
|
||||
if not old_configs:
|
||||
@@ -148,6 +161,7 @@ def update_config(config_id):
|
||||
selected_fields = %s, sum_fields = %s, time_periods = %s,
|
||||
merge_telecom = %s, telecom_vehicle_no = %s, field_custom_names = %s,
|
||||
show_monthly_total = %s, custom_service_fee_price = %s, custom_service_fee_name = %s,
|
||||
show_custom_service_fee = %s, show_total_amount = %s, total_amount_name = %s,
|
||||
update_time = NOW()
|
||||
WHERE id = %s
|
||||
"""
|
||||
@@ -166,6 +180,9 @@ def update_config(config_id):
|
||||
show_monthly_total,
|
||||
custom_service_fee_price,
|
||||
custom_service_fee_name if custom_service_fee_name else None,
|
||||
show_custom_service_fee,
|
||||
show_total_amount,
|
||||
total_amount_name if total_amount_name else None,
|
||||
config_id
|
||||
)
|
||||
|
||||
@@ -240,8 +257,8 @@ def copy_config(config_id):
|
||||
# 插入新配置
|
||||
execute_insert(
|
||||
'''INSERT INTO t_daily_report_config
|
||||
(id, config_name, split_type, split_value, split_name, selected_fields, sum_fields, time_periods, merge_telecom, telecom_vehicle_no, field_custom_names, show_monthly_total, custom_service_fee_price, custom_service_fee_name, is_active, sort_order, create_time, update_time)
|
||||
VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, NOW(), NOW())''',
|
||||
(id, config_name, split_type, split_value, split_name, selected_fields, sum_fields, time_periods, merge_telecom, telecom_vehicle_no, field_custom_names, show_monthly_total, custom_service_fee_price, custom_service_fee_name, show_custom_service_fee, show_total_amount, total_amount_name, is_active, sort_order, create_time, update_time)
|
||||
VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, NOW(), NOW())''',
|
||||
(
|
||||
new_id,
|
||||
new_name,
|
||||
@@ -257,6 +274,9 @@ def copy_config(config_id):
|
||||
original.get('show_monthly_total', 0),
|
||||
original.get('custom_service_fee_price'),
|
||||
original.get('custom_service_fee_name'),
|
||||
original.get('show_custom_service_fee', 0),
|
||||
original.get('show_total_amount', 0),
|
||||
original.get('total_amount_name'),
|
||||
original['is_active'],
|
||||
sort_order
|
||||
)
|
||||
|
||||
@@ -93,12 +93,13 @@ def update_sum_data_api(sum_data_id):
|
||||
"""更新求和数据"""
|
||||
try:
|
||||
data = request.json
|
||||
log_info(f'[求和数据API] 更新求和数据,ID: {sum_data_id}', 'api')
|
||||
log_info(f'[求和数据API] 更新求和数据,ID: {sum_data_id}, 请求数据: {data}', 'api')
|
||||
result = update_sum_data(sum_data_id, data)
|
||||
if result['success']:
|
||||
log_info(f'[求和数据API] 更新成功,ID: {sum_data_id}', 'api')
|
||||
return jsonify(result)
|
||||
else:
|
||||
log_warning(f'[求和数据API] 更新失败,ID: {sum_data_id}, 原因: {result["message"]}', 'api')
|
||||
return jsonify(result), 400
|
||||
except Exception as e:
|
||||
log_error(f'[求和数据API] 更新求和数据失败: {e}', 'api')
|
||||
@@ -143,6 +144,57 @@ def batch_delete_sum_data_api():
|
||||
return jsonify({'success': False, 'message': str(e)}), 500
|
||||
|
||||
|
||||
@sum_data_bp.route('/sum-data/batch-query', methods=['POST'])
|
||||
def batch_query_sum_data():
|
||||
"""根据ID列表批量查询求和数据"""
|
||||
try:
|
||||
data = request.json
|
||||
ids = data.get('ids', [])
|
||||
log_info(f'[求和数据API] 批量查询求和数据,ID数量: {len(ids)}', 'api')
|
||||
|
||||
if not ids:
|
||||
return jsonify({'success': False, 'message': '请提供ID列表'}), 400
|
||||
|
||||
from lib.db import execute_query
|
||||
|
||||
placeholders = ','.join(['%s'] * len(ids))
|
||||
sql = f'SELECT * FROM t_daily_report_sum_data WHERE id IN ({placeholders})'
|
||||
|
||||
result = execute_query(sql, tuple(ids))
|
||||
|
||||
return jsonify({
|
||||
'success': True,
|
||||
'data': result
|
||||
})
|
||||
except Exception as e:
|
||||
log_error(f'[求和数据API] 批量查询求和数据失败: {e}', 'api')
|
||||
return jsonify({'success': False, 'message': str(e)}), 500
|
||||
|
||||
|
||||
@sum_data_bp.route('/sum-data/batch-add', methods=['POST'])
|
||||
def batch_add_sum_data():
|
||||
"""批量添加求和数据"""
|
||||
try:
|
||||
data = request.json
|
||||
fields = data.get('fields', [])
|
||||
log_info(f'[求和数据API] 批量添加求和数据,字段数量: {len(fields)}', 'api')
|
||||
|
||||
if not fields:
|
||||
return jsonify({'success': False, 'message': '请至少添加一个字段'}), 400
|
||||
|
||||
from lib.sum_data_collector import batch_add_sum_data
|
||||
|
||||
result = batch_add_sum_data(data)
|
||||
if result['success']:
|
||||
log_info(f'[求和数据API] 批量添加成功,添加{result["count"]}条记录', 'api')
|
||||
return jsonify(result)
|
||||
else:
|
||||
return jsonify(result), 400
|
||||
except Exception as e:
|
||||
log_error(f'[求和数据API] 批量添加求和数据失败: {e}', 'api')
|
||||
return jsonify({'success': False, 'message': str(e)}), 500
|
||||
|
||||
|
||||
@sum_data_bp.route('/sum-data/monthly-total', methods=['GET'])
|
||||
def monthly_charge_degree_total():
|
||||
"""获取指定配置当月充电电量累计(从sum_data表查询,对账后的数据)
|
||||
|
||||
Reference in New Issue
Block a user