tfse-etl-api-v0.2/CompanyData/CompanyDataRoutes.py

115 lines
3.5 KiB
Python

from flask import Blueprint, request
from CompanyData.CompanyDataImpl import CompanyDataImpl, CreditAnalysisImpl, FinancialAnalysisImpl, \
BusinessAnalysisImpl, EsgAnalysisImpl
from Utils.ErrorUtil import ReturnConditionCheckFailed
from common.utils import verify_token
from CompanyData.job_scripts import update_process_scripts
company_route = Blueprint('company', __name__)
@company_route.route('/init_company_data', methods=['POST'])
@verify_token
def basic_info():
"""
初始化企业数据
"""
req = request.json
company_data = CompanyDataImpl()
company_data.cid = req['cid']
company_data.name = req['company_name']
company_data.drag_data_from_tyc_api()
company_data.prepare_company_init_data()
return {"info": "企业数据初始化成功"}, 200
# try:
# req = request.json
# company_data = CompanyDataImpl()
# company_data.cid = req['cid']
# company_data.name = req['company_name']
# company_data.drag_data_from_tyc_api()
# company_data.prepare_company_init_data()
# return {"info": "企业数据初始化成功"}, 200
# except ReturnConditionCheckFailed as e:
# e.log_error()
# return {"info": e.failed_info}, e.status_code
# except KeyError:
# return {"info": "参数错误"}, 400
@company_route.route('/company_index_etl', methods=['POST'])
@verify_token
def general_rating():
"""
1.准备综合评价信息数据
2.准备财务要素信息
3.准备风险要素信息
4.准备指标明细数据 (模型计算过程中已完成)
Parameters:
rid str 评价ID
cid str 企业ID
Returns:
-
"""
try:
rid = request.json['rid']
credit_analysis = CreditAnalysisImpl()
credit_analysis.rid = rid
credit_analysis.cc_rating_etl()
financial_analysis = FinancialAnalysisImpl()
financial_analysis.rid = rid
financial_analysis.financial_analysis_etl()
business_analysis = BusinessAnalysisImpl()
business_analysis.rid = rid
business_analysis.risk_analysis_etl()
company_data = CompanyDataImpl()
company_data.update_credit_data(rid)
return {"info": "数据准备完成"}, 200
except ReturnConditionCheckFailed as e:
e.log_error()
return {"info": e.failed_info}, e.status_code
except KeyError:
return {"info": "参数错误"}, 400
@company_route.route('/esg_index_etl', methods=['POST'])
@verify_token
def esg_rating():
"""
1.ESG打分结果数据
Parameters:
rid str 评价ID
cid str 企业ID
Returns:
-
"""
rid = request.json['rid']
esg_analysis = EsgAnalysisImpl()
esg_analysis.rid = rid
esg_analysis.egs_analysis_etl()
company_data = CompanyDataImpl()
company_data.update_esg_data(rid)
return {"info": "数据准备完成"}, 200
@company_route.route('/update_process_data', methods=['POST'])
@verify_token
def update_process():
"""
更新流程数据
Parameters:
rid str 评价ID
data dict 需要更新的数据
Returns:
-
"""
rid = request.json['rid']
renew_data = request.json['renew_data']
types = request.json['types']
db = "综信评价数据" if types == "综合评价流程" else "ESG评价数据"
info = update_process_scripts(db, rid, renew_data)
status = 200 if info else 210
result = '更新成功' if info else '更新失败'
return {"info": result}, status