update 准备企业主页数据接口重写
This commit is contained in:
parent
5fdc08e843
commit
62f3f22bae
|
@ -1,9 +1,12 @@
|
|||
import json
|
||||
import time
|
||||
|
||||
import requests
|
||||
|
||||
from DBHelper.MongoHelper import MongoHelper
|
||||
from Utils.ErrorUtil import LogConditionCheckFailed
|
||||
from CompanyData.CompanyDataObj import CompanyData, BasicInfo, ShareHolder, MainMember
|
||||
from CompanyData.CompanyDataObj import CompanyData, BasicInfo, ShareHolder, MainMember, ComprehensiveCreditAnalysis, \
|
||||
CreditPerformance, MaxScore, IndicatorRadar, IndexScore, CreditAnalysis
|
||||
|
||||
|
||||
class CompanyDataImpl(CompanyData):
|
||||
|
@ -170,3 +173,134 @@ class CompanyDataImpl(CompanyData):
|
|||
prepare_industry_l1()
|
||||
|
||||
__main__()
|
||||
|
||||
|
||||
class CompanyIndexImpl(ComprehensiveCreditAnalysis):
|
||||
"""企业主页数据实现类"""
|
||||
db = MongoHelper("tfse_v0.21")
|
||||
|
||||
def cc_rating_etl(self):
|
||||
"""准备综合评价信息数据"""
|
||||
rating_record = self.db.find_single_data(
|
||||
'企业数据',
|
||||
'评价记录',
|
||||
{"评价ID": self.rid},
|
||||
["报告fid"]
|
||||
)
|
||||
rating_result = self.db.find_single_data(
|
||||
'综信评价数据',
|
||||
'评价结果',
|
||||
{"评价ID": self.rid},
|
||||
["企业ID", "企业名称", "经营评分", "财务评分", "风险评分", "评价年度"]
|
||||
)
|
||||
text_model = self.db.find_single_data(
|
||||
'综信评价数据',
|
||||
'报告数据',
|
||||
{"评价ID": self.rid},
|
||||
["行业选择", "报告内容"]
|
||||
)
|
||||
|
||||
def result_head():
|
||||
"""结果数据"""
|
||||
self.cid = rating_result['企业ID']
|
||||
self.name = rating_result['企业名称']
|
||||
self.update_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
|
||||
|
||||
def make_radar_chart():
|
||||
"""综合信用指标表现雷达图数据"""
|
||||
max_score = MaxScore()
|
||||
max_score.environment = 10
|
||||
max_score.social_responsibility = 10
|
||||
max_score.corporate_governance = 16
|
||||
max_score.profitability = 18
|
||||
max_score.asset_quality = 18
|
||||
max_score.debt_risk = 18
|
||||
max_score.operational_growth = 18
|
||||
max_score.compliance_risk = 43
|
||||
max_score.cperational_risk = 10
|
||||
max_score.associated_risk = 10
|
||||
|
||||
index_score = IndexScore()
|
||||
index_score.environment = rating_result['经营评分']["环境"]
|
||||
index_score.social_responsibility = rating_result['经营评分']["社会责任"]
|
||||
index_score.corporate_governance = rating_result['经营评分']["公司治理"]
|
||||
index_score.profitability = rating_result['财务评分']["盈利能力"]['合计']
|
||||
index_score.asset_quality = rating_result['财务评分']["资产质量"]['合计']
|
||||
index_score.debt_risk = rating_result['财务评分']["债务风险"]['合计']
|
||||
index_score.operational_growth = rating_result['财务评分']["经营增长"]['合计']
|
||||
index_score.compliance_risk = round(43 - rating_result['风险评分']["合规风险"], 2)
|
||||
index_score.cperational_risk = round(10 - rating_result['风险评分']["经营风险"]['合计'], 2)
|
||||
index_score.associated_risk = round(10 - rating_result['风险评分']["关联风险"]['合计'], 2)
|
||||
|
||||
indicator_radar = IndicatorRadar()
|
||||
indicator_radar.max_score = index_score.dict_to_save()
|
||||
indicator_radar.max_score = max_score.dict_to_save()
|
||||
credit_performence = CreditPerformance()
|
||||
credit_performence.indicator_radar = indicator_radar.dict_to_save()
|
||||
self.performance = credit_performence.dict_to_save()
|
||||
|
||||
def credit_analysis_content():
|
||||
"""综合评价分析中信用分析数据"""
|
||||
def business_analysis_content():
|
||||
"""经营分析"""
|
||||
describe = text_model['报告内容'][1]['章节内容'][0]['小节内容'][1]['段落']
|
||||
return describe
|
||||
|
||||
def financial_analysis_content():
|
||||
"""财务分析"""
|
||||
if text_model['行业选择'][0] == '制造业':
|
||||
describe = list()
|
||||
describe.append(text_model['报告内容'][3]['章节内容'][0]['小节内容'][1]['段落'])
|
||||
describe.append(text_model['报告内容'][3]['章节内容'][1]['小节内容'][2]['段落'])
|
||||
describe = ''.join(describe)
|
||||
else:
|
||||
describe = text_model['报告内容'][3]['章节内容'][0]['小节内容'][2]['段落']
|
||||
return describe
|
||||
|
||||
def risk_analysis_content():
|
||||
"""风险分析"""
|
||||
risk_01 = text_model['报告内容'][4]['章节内容'][0]['小节内容'][0]['段落']
|
||||
list_01 = risk_01.split(',')
|
||||
risk_02 = text_model['报告内容'][4]['章节内容'][1]['小节内容'][0]['段落']
|
||||
list_02 = risk_02.split(',')
|
||||
risk_03 = text_model['报告内容'][4]['章节内容'][2]['小节内容'][0]['段落']
|
||||
list_03 = risk_03.split(',')
|
||||
describe = list()
|
||||
describe.append(list_01[::-1][0])
|
||||
describe.append(list_02[::-1][0])
|
||||
describe.append(list_03[::-1][0])
|
||||
describe = ','.join(describe)
|
||||
res = describe.replace('。', '', 2)
|
||||
return res
|
||||
|
||||
def evaluation_comments_content():
|
||||
"""评价意见"""
|
||||
describe = list()
|
||||
eva_01 = text_model['报告内容'][5]['章节内容'][0]['小节内容'][0]['段落']
|
||||
eva_02 = text_model['报告内容'][5]['章节内容'][0]['小节内容'][1]['段落']
|
||||
eva_03 = text_model['报告内容'][5]['章节内容'][0]['小节内容'][2]['段落']
|
||||
describe.append(eva_01)
|
||||
describe.append(eva_02)
|
||||
describe.append(eva_03)
|
||||
describe = ''.join(describe)
|
||||
return describe
|
||||
|
||||
credit_analysis = CreditAnalysis()
|
||||
credit_analysis.management_analysis = business_analysis_content()
|
||||
credit_analysis.finance_analysis = financial_analysis_content()
|
||||
credit_analysis.risk_analysis = risk_analysis_content()
|
||||
credit_analysis.evaluation_opinion = evaluation_comments_content()
|
||||
credit_analysis.view_report = '/file/get_company_report?file_id={}'.format(rating_record['报告fid'])
|
||||
self.credit_analysis = credit_analysis.dict_to_save()
|
||||
|
||||
def rating_history():
|
||||
"""历史级别"""
|
||||
|
||||
|
||||
def financial_analysis(self):
|
||||
"""准备财务要素信息"""
|
||||
pass
|
||||
|
||||
def risk_analysis_etl(self):
|
||||
"""准备风险要素信息"""
|
||||
pass
|
||||
|
|
|
@ -198,3 +198,188 @@ class CompanyData(SpecObject):
|
|||
|
||||
def prepare_company_init_data(self):
|
||||
"""准备企业初始化数据"""
|
||||
|
||||
|
||||
class IndexScore(SpecObject):
|
||||
"""指标得分"""
|
||||
environment = ValidateAttr(field='environment', type=(int, float))
|
||||
social_responsibility = ValidateAttr(field='social_responsibility', type=(int, float))
|
||||
corporate_governance = ValidateAttr(field='corporate_governance', type=(int, float))
|
||||
profitability = ValidateAttr(field='profitability', type=(int, float))
|
||||
asset_quality = ValidateAttr(field='asset_quality', type=(int, float))
|
||||
debt_risk = ValidateAttr(field='debt_risk', type=(int, float))
|
||||
operational_growth = ValidateAttr(field='operational_growth', type=(int, float))
|
||||
compliance_risk = ValidateAttr(field='compliance_risk', type=(int, float))
|
||||
cperational_risk = ValidateAttr(field='cperational_risk', type=(int, float))
|
||||
associated_risk = ValidateAttr(field='associated_risk', type=(int, float))
|
||||
|
||||
fields_map = {
|
||||
"environment": "环境",
|
||||
"social_responsibility": "社会责任",
|
||||
"corporate_governance": "公司治理",
|
||||
"profitability": "盈利能力",
|
||||
"asset_quality": "资产质量",
|
||||
"debt_risk": "债务风险",
|
||||
"operational_growth": "经营增长",
|
||||
"compliance_risk": "合规风险",
|
||||
"cperational_risk": "经营风险",
|
||||
"associated_risk": "关联风险"
|
||||
}
|
||||
|
||||
|
||||
class MaxScore(SpecObject):
|
||||
"""最大分数"""
|
||||
environment = ValidateAttr(field='environment', type=int)
|
||||
social_responsibility = ValidateAttr(field='social_responsibility', type=int)
|
||||
corporate_governance = ValidateAttr(field='corporate_governance', type=int)
|
||||
profitability = ValidateAttr(field='profitability', type=int)
|
||||
asset_quality = ValidateAttr(field='asset_quality', type=int)
|
||||
debt_risk = ValidateAttr(field='debt_risk', type=int)
|
||||
operational_growth = ValidateAttr(field='operational_growth', type=int)
|
||||
compliance_risk = ValidateAttr(field='compliance_risk', type=int)
|
||||
cperational_risk = ValidateAttr(field='cperational_risk', type=int)
|
||||
associated_risk = ValidateAttr(field='associated_risk', type=int)
|
||||
|
||||
fields_map = {
|
||||
"environment": "环境",
|
||||
"social_responsibility": "社会责任",
|
||||
"corporate_governance": "公司治理",
|
||||
"profitability": "盈利能力",
|
||||
"asset_quality": "资产质量",
|
||||
"debt_risk": "债务风险",
|
||||
"operational_growth": "经营增长",
|
||||
"compliance_risk": "合规风险",
|
||||
"cperational_risk": "经营风险",
|
||||
"associated_risk": "关联风险"
|
||||
}
|
||||
|
||||
|
||||
class IndicatorRadar(SpecObject):
|
||||
"""指标雷达"""
|
||||
index_score = ValidateAttr(field='index_score', type=IndexScore)
|
||||
max_score = ValidateAttr(field='max_score', type=MaxScore)
|
||||
|
||||
fields_map = {
|
||||
"index_score": "指标得分",
|
||||
"max_score": "最大分数"
|
||||
}
|
||||
|
||||
|
||||
class CreditPerformance(SpecObject):
|
||||
"""综合信用表现"""
|
||||
indicator_radar = ValidateAttr(field='indicator_radar', type=IndicatorRadar)
|
||||
|
||||
fields_map = {
|
||||
"indicator_radar": "指标雷达"
|
||||
}
|
||||
|
||||
|
||||
class CreditAnalysis(SpecObject):
|
||||
"""信用分析"""
|
||||
management_analysis = ValidateAttr(field='management_analysis', type=str)
|
||||
finance_analysis = ValidateAttr(field='finance_analysis', type=str)
|
||||
risk_analysis = ValidateAttr(field='risk_analysis', type=str)
|
||||
evaluation_opinion = ValidateAttr(field='evaluation_opinion', type=str)
|
||||
view_report = ValidateAttr(field='view_report', type=str)
|
||||
|
||||
fields_map = {
|
||||
"management_analysis": "经营分析",
|
||||
"finance_analysis": "财务分析",
|
||||
"risk_analysis": "风险分析",
|
||||
"evaluation_opinion": "评价意见",
|
||||
"view_report": "查看报告"
|
||||
}
|
||||
|
||||
|
||||
class FinancialIndicators(SpecObject):
|
||||
"""财务指标"""
|
||||
profitability = ValidateAttr(field='financial_indicators', in_list=['高', '中', '低', '差'])
|
||||
asset_quality = ValidateAttr(field='asset_quality', in_list=['高', '中', '低', '差'])
|
||||
debt_risk = ValidateAttr(field='debt_risk', in_list=['高', '中', '低', '差'])
|
||||
operating_growth = ValidateAttr(field='operating_growth', in_list=['高', '中', '低', '差'])
|
||||
|
||||
fields_map = {
|
||||
"profitability": "盈利能力",
|
||||
"asset_quality": "资产质量",
|
||||
"debt_risk": "债务风险",
|
||||
"operating_growth": "经营增长"
|
||||
}
|
||||
|
||||
|
||||
class RiskIndicators(SpecObject):
|
||||
"""风险指标"""
|
||||
compliance_risk = ValidateAttr(field='compliance_risk', in_list=['高', '中', '低', '差'])
|
||||
operational_risk = ValidateAttr(field='operational_risk', in_list=['高', '中', '低', '差'])
|
||||
associated_risk = ValidateAttr(field='associated_risk', in_list=['高', '中', '低', '差'])
|
||||
|
||||
fields_map = {
|
||||
"compliance_risk": "合规风险",
|
||||
"operational_risk": "经营风险",
|
||||
"associated_risk": "关联风险"
|
||||
}
|
||||
|
||||
|
||||
class OperatingIndicators(SpecObject):
|
||||
"""经营指标"""
|
||||
environmental = ValidateAttr(field='environmental', in_list=['高', '中', '低', '差'])
|
||||
social_responsibility = ValidateAttr(field='social_responsibility', in_list=['高', '中', '低', '差'])
|
||||
corporate_governance = ValidateAttr(field='corporate_governance', in_list=['高', '中', '低', '差'])
|
||||
|
||||
fields_map = {
|
||||
"environmental": "环境",
|
||||
"social_responsibility": "社会责任",
|
||||
"corporate_governance": "公司治理"
|
||||
}
|
||||
|
||||
|
||||
class IndexTable(SpecObject):
|
||||
"""指标表格"""
|
||||
financial_indicators = ValidateAttr(field='financial_indicators', type=FinancialIndicators)
|
||||
risk_indicators = ValidateAttr(field='risk_indicators', type=RiskIndicators)
|
||||
operating_indicators = ValidateAttr(field='operating_indicators', type=OperatingIndicators)
|
||||
|
||||
fields_map = {
|
||||
"financial_indicators": "财务指标",
|
||||
"risk_indicators": "风险指标",
|
||||
"operating_indicators": "经营指标"
|
||||
}
|
||||
|
||||
|
||||
class HistoryLevel(SpecObject):
|
||||
"""历史级别"""
|
||||
credit_rating = ValidateAttr(field='credit_rating', type=str)
|
||||
credit_score = ValidateAttr(field='credit_score', type=(float, int))
|
||||
evaluation_time = ValidateAttr(field='evaluation_time', type=str)
|
||||
evaluation_method = ValidateAttr(field='evaluation_method', type=str, in_list=['企业申报'])
|
||||
change_trend = ValidateAttr(field='change_trend', type=str)
|
||||
|
||||
fields_map = {
|
||||
"credit_rating": "信用等级",
|
||||
"credit_score": "信用评分",
|
||||
"evaluation_time": "评价时间",
|
||||
"evaluation_method": "评价方式",
|
||||
"change_trend": "变化趋势"
|
||||
}
|
||||
|
||||
|
||||
class ComprehensiveCreditAnalysis(SpecObject):
|
||||
"""综合信用分析"""
|
||||
cid = ValidateAttr(field='cid', type=str, length=8)
|
||||
rid = ValidateAttr(field='rid', type=str, length=8)
|
||||
name = ValidateAttr(field='name', type=str)
|
||||
update_time = ValidateAttr(field='update_time', type=str)
|
||||
performance = ValidateAttr(field='performance', type=CreditPerformance)
|
||||
credit_analysis = ValidateAttr(field='credit_analysis', type=CreditAnalysis)
|
||||
index_table = ValidateAttr(field='index_table', type=IndexTable)
|
||||
history_level = ValidateAttr(field='history_level', instance_list=HistoryLevel)
|
||||
|
||||
fields_map = {
|
||||
"cid": "企业ID",
|
||||
"rid": "评价ID",
|
||||
"name": "企业名称",
|
||||
"update_time": "更新时间",
|
||||
"performance": "综合信用表现",
|
||||
"analysis": "信用分析",
|
||||
"index_table": "指标表格",
|
||||
"history_level": "历史级别"
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
from flask import Blueprint, request
|
||||
|
||||
from CompanyData.CompanyDataImpl import CompanyDataImpl
|
||||
from CompanyData.CompanyDataImpl import CompanyDataImpl, CompanyIndexImpl
|
||||
from Utils.ErrorUtil import ReturnConditionCheckFailed
|
||||
from common.utils import verify_token
|
||||
from CompanyData.job_scripts import *
|
||||
|
@ -43,13 +43,18 @@ def general_rating():
|
|||
Returns:
|
||||
-
|
||||
"""
|
||||
rid = request.json['rid']
|
||||
|
||||
cc_rating_etl(rid)
|
||||
financial_analysis(rid)
|
||||
risk_analysis_etl(rid)
|
||||
|
||||
return {"info": "数据准备完成"}, 200
|
||||
try:
|
||||
company_index = CompanyIndexImpl()
|
||||
company_index.cid = request.json['rid']
|
||||
company_index.cc_rating_etl()
|
||||
company_index.financial_analysis()
|
||||
company_index.risk_analysis_etl()
|
||||
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'])
|
||||
|
|
Loading…
Reference in New Issue