from flask import Blueprint, request from CompanyData.CompanyDataImpl import CompanyDataImpl, CreditAnalysisImpl, FinancialAnalysisImpl, \ BusinessAnalysisImpl, EsgAnalysisImpl from Utils.ErrorUtil import ReturnConditionCheckFailed from Utils.CommonUtil 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(): """ 初始化企业数据 """ 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