Files
ylt_diy/lib/api/sum_data_api.py

131 lines
3.8 KiB
Python

"""
求和数据管理 API
"""
from flask import request, jsonify
from lib.sum_data_collector import (
collect_sum_data_from_history,
get_sum_data_list,
add_sum_data,
update_sum_data,
delete_sum_data,
batch_delete_sum_data
)
from . import sum_data_bp
@sum_data_bp.route('/sum-data/collect', methods=['POST'])
def collect_sum_data():
"""从历史记录采集求和数据"""
try:
data = request.json or {}
history_id = data.get('history_id')
result = collect_sum_data_from_history(history_id)
if result['success']:
return jsonify(result)
else:
return jsonify(result), 400
except Exception as e:
import traceback
traceback.print_exc()
return jsonify({'success': False, 'message': str(e)}), 500
@sum_data_bp.route('/sum-data', methods=['GET'])
def list_sum_data():
"""查询求和数据列表"""
try:
page = int(request.args.get('page', 1))
page_size = int(request.args.get('page_size', 20))
report_date = request.args.get('report_date')
config_id = request.args.get('config_id')
config_name = request.args.get('config_name')
sum_field_key = request.args.get('sum_field_key')
data_source = request.args.get('data_source')
result = get_sum_data_list(
page=page,
page_size=page_size,
report_date=report_date,
config_id=config_id,
config_name=config_name,
sum_field_key=sum_field_key,
data_source=data_source
)
if result['success']:
return jsonify(result)
else:
return jsonify(result), 400
except Exception as e:
import traceback
traceback.print_exc()
return jsonify({'success': False, 'message': str(e)}), 500
@sum_data_bp.route('/sum-data', methods=['POST'])
def create_sum_data():
"""手动添加求和数据"""
try:
data = request.json
result = add_sum_data(data)
if result['success']:
return jsonify(result)
else:
return jsonify(result), 400
except Exception as e:
import traceback
traceback.print_exc()
return jsonify({'success': False, 'message': str(e)}), 500
@sum_data_bp.route('/sum-data/<int:sum_data_id>', methods=['PUT'])
def update_sum_data_api(sum_data_id):
"""更新求和数据"""
try:
data = request.json
result = update_sum_data(sum_data_id, data)
if result['success']:
return jsonify(result)
else:
return jsonify(result), 400
except Exception as e:
import traceback
traceback.print_exc()
return jsonify({'success': False, 'message': str(e)}), 500
@sum_data_bp.route('/sum-data/<int:sum_data_id>', methods=['DELETE'])
def delete_sum_data_api(sum_data_id):
"""删除求和数据"""
try:
result = delete_sum_data(sum_data_id)
if result['success']:
return jsonify(result)
else:
return jsonify(result), 400
except Exception as e:
import traceback
traceback.print_exc()
return jsonify({'success': False, 'message': str(e)}), 500
@sum_data_bp.route('/sum-data/batch-delete', methods=['POST'])
def batch_delete_sum_data_api():
"""批量删除求和数据"""
try:
data = request.json
ids = data.get('ids', [])
if not ids:
return jsonify({'success': False, 'message': '请选择要删除的记录'}), 400
result = batch_delete_sum_data(ids)
if result['success']:
return jsonify(result)
else:
return jsonify(result), 400
except Exception as e:
import traceback
traceback.print_exc()
return jsonify({'success': False, 'message': str(e)}), 500