Merge branch 'ps_v5.12' into 'master'
Ps v5.12 See merge request root/tfse_admin!48
This commit is contained in:
commit
42113f5dad
|
@ -0,0 +1,611 @@
|
|||
import json
|
||||
|
||||
import requests
|
||||
|
||||
from DBHelper.MongoHelper import MongoHelper
|
||||
from Manage.Ratings.Objects.CreditObject import CreditRatingResult, OperatingScore, FinanceScore, RiskScore
|
||||
from Manage.Ratings.Objects.EsgObject import EsgRatingResult, SocialScore, EnvironmentalScore, GovernanceScore
|
||||
from Manage.Ratings.Objects.RatingSearch import SearchRatingApi, SearchRatingResult
|
||||
|
||||
RATING = ["企业ID", "评价ID", "企业名称", "评价项目", "评价方式", "进行状态", "评价结果", "评价完成日期", "报告fid", "证书fid"]
|
||||
|
||||
|
||||
class SearchRatingApiImpl(SearchRatingApi):
|
||||
"""评价查询请求接口"""
|
||||
db = MongoHelper("tfse_v0.21")
|
||||
|
||||
def conditions_search(self):
|
||||
"""根据条件查询"""
|
||||
|
||||
search_body = self.search.make_search_body()
|
||||
sort = self.sort.make_sort_body()
|
||||
page_size = 10 if self.page_size > 10 else self.page_size
|
||||
page_no = self.page_no
|
||||
|
||||
total = self.db.find_all_data_with_count(
|
||||
"企业数据",
|
||||
"评价记录",
|
||||
search_body
|
||||
)
|
||||
|
||||
records = self.db.find_data_by_page_with_sort(
|
||||
"企业数据",
|
||||
"评价记录",
|
||||
search_body,
|
||||
RATING,
|
||||
sort,
|
||||
page_size,
|
||||
page_no
|
||||
)
|
||||
|
||||
table_data = list()
|
||||
if records:
|
||||
for record in records:
|
||||
company = SearchRatingResult()
|
||||
company.cid = record['企业ID']
|
||||
company.rid = record['评价ID']
|
||||
company.name = record['企业名称']
|
||||
company.project = record['评价项目']
|
||||
company.method = record['评价方式']
|
||||
company.status = record['进行状态']
|
||||
company.result = record['评价结果']
|
||||
company.completion_date = record['评价完成日期']
|
||||
company.report_fid = record['报告fid']
|
||||
company.certificate_fid = record['证书fid']
|
||||
data = company.dict_to_show(columns=RATING)
|
||||
table_data.append(data)
|
||||
|
||||
result = {
|
||||
"records": table_data,
|
||||
"total": total
|
||||
}
|
||||
|
||||
return result
|
||||
|
||||
def rating_type(self):
|
||||
"""评价类型"""
|
||||
search_body = self.dict_to_show()['搜索体']
|
||||
|
||||
records = self.db.find_single_data(
|
||||
'企业数据',
|
||||
'评价记录',
|
||||
search_body,
|
||||
['评价项目']
|
||||
)
|
||||
return records
|
||||
|
||||
def result_search(self):
|
||||
"""评价结果查询"""
|
||||
search_body = self.dict_to_show()['搜索体']
|
||||
records = self.rating_type()
|
||||
|
||||
def credit_result():
|
||||
"""综信评价结果"""
|
||||
result = self.db.find_single_data(
|
||||
'综信评价数据',
|
||||
'评价结果',
|
||||
search_body,
|
||||
['企业ID', '评价ID', '企业名称', '评价年度', '评价方式', '评价时间', '信用等级', '信用评分', '经营评分', '财务评分', '风险评分']
|
||||
)
|
||||
rating_result = CreditRatingResult()
|
||||
rating_result.cid = result['企业ID']
|
||||
rating_result.rid = result['评价ID']
|
||||
rating_result.name = result['企业名称']
|
||||
rating_result.year = result['评价年度']
|
||||
rating_result.score = result['信用评分']
|
||||
rating_result.level = result['信用等级']
|
||||
rating_result.method = result['评价方式']
|
||||
rating_result.rating_date = result['评价时间']
|
||||
|
||||
def operating():
|
||||
"""经营评分"""
|
||||
operate = OperatingScore()
|
||||
operate.environment = result['经营评分']['环境']
|
||||
operate.social = result['经营评分']['社会责任']
|
||||
operate.governance = result['经营评分']['公司治理']
|
||||
operate.total = result['经营评分']['合计']
|
||||
rating_result.operating_score = operate
|
||||
|
||||
def finance():
|
||||
"""财务评分"""
|
||||
finance_score = FinanceScore()
|
||||
|
||||
def profit_about():
|
||||
"""盈利能力"""
|
||||
profit = finance_score.Profitability()
|
||||
profit.roa = result['财务评分']['盈利能力']['净资产收益率']
|
||||
profit.roe = result['财务评分']['盈利能力']['总资产报酬率']
|
||||
profit.total = result['财务评分']['盈利能力']['合计']
|
||||
return profit
|
||||
|
||||
def aseet_about():
|
||||
"""资产质量"""
|
||||
asset = finance_score.AssetQuality()
|
||||
asset.total_asset_turnover = result['财务评分']['资产质量']['总资产周转率']
|
||||
asset.inventory_turnover = result['财务评分']['资产质量']['存货周转率']
|
||||
asset.accounts_receivable_turnover = result['财务评分']['资产质量']['应收账款周转率']
|
||||
asset.total = result['财务评分']['资产质量']['合计']
|
||||
return asset
|
||||
|
||||
def debt_about():
|
||||
"""债务风险"""
|
||||
debt = finance_score.DebtRisk()
|
||||
debt.assets_liabilities = result['财务评分']['债务风险']['资产负债率']
|
||||
debt.earned_interest_multiple = result['财务评分']['债务风险']['已获利息倍数']
|
||||
debt.quick_ratio = result['财务评分']['债务风险']['速动比率']
|
||||
debt.total = result['财务评分']['债务风险']['合计']
|
||||
return debt
|
||||
|
||||
def business_about():
|
||||
"""经营增长"""
|
||||
business = finance_score.BusinessGrowth()
|
||||
business.operating_growth_rate = result['财务评分']['经营增长']['营业增长率']
|
||||
business.total_asset_growth_rate = result['财务评分']['经营增长']['总资产增长率']
|
||||
business.technology_investment_ratio = result['财务评分']['经营增长']['技术投入比率']
|
||||
business.total = result['财务评分']['经营增长']['合计']
|
||||
return business
|
||||
|
||||
finance_score.profitability = profit_about()
|
||||
finance_score.asset_quality = aseet_about()
|
||||
finance_score.debt_risk = debt_about()
|
||||
finance_score.business_growth = business_about()
|
||||
finance_score.total = result['财务评分']['合计']
|
||||
|
||||
rating_result.finance_score = finance_score
|
||||
|
||||
def risk():
|
||||
"""风险评分"""
|
||||
risk_score = RiskScore()
|
||||
risk_score.total = 0
|
||||
|
||||
def management():
|
||||
"""经营风险"""
|
||||
business = risk_score.BusinessRisk()
|
||||
business.case_filing_information = result['风险评分']['经营风险']['立案信息']
|
||||
business.court_announcement = result['风险评分']['经营风险']['开庭公告']
|
||||
business.executed = result['风险评分']['经营风险']['被执行人']
|
||||
business.court_notice = result['风险评分']['经营风险']['法院公告']
|
||||
business.litigation = result['风险评分']['经营风险']['诉讼']
|
||||
business.service_announcement = result['风险评分']['经营风险']['送达公告']
|
||||
business.equity_pledge = result['风险评分']['经营风险']['股权出质']
|
||||
business.legal_entity_change = result['风险评分']['经营风险']['法人变更']
|
||||
business.members_change = result['风险评分']['经营风险']['主要成员变更']
|
||||
business.total = result['风险评分']['经营风险']['合计']
|
||||
risk_score.total += result['风险评分']['经营风险']['合计']
|
||||
return business
|
||||
|
||||
def peripheral():
|
||||
"""关联风险"""
|
||||
associated = risk_score.AssociatedRisk()
|
||||
peripheral_ = associated.PeripheralRisk()
|
||||
peripheral_.high_risk = result['风险评分']['关联风险']['周边风险']['高风险']
|
||||
peripheral_.warning = result['风险评分']['关联风险']['周边风险']['警示']
|
||||
peripheral_.total = result['风险评分']['关联风险']['周边风险']['合计']
|
||||
associated.peripheral_risk = peripheral_
|
||||
associated.total = result['风险评分']['关联风险']['合计']
|
||||
risk_score.total += result['风险评分']['关联风险']['合计']
|
||||
return associated
|
||||
|
||||
risk_score.compliance_risk = result['风险评分']['合规风险']
|
||||
risk_score.business_risk = management()
|
||||
risk_score.associated_risk = peripheral()
|
||||
risk_score.total += risk_score.compliance_risk
|
||||
self.risk_score = risk_score
|
||||
|
||||
def __main__():
|
||||
operating()
|
||||
finance()
|
||||
risk()
|
||||
data = rating_result.dict_to_show()
|
||||
return data
|
||||
|
||||
return __main__()
|
||||
|
||||
def esg_result():
|
||||
"""esg评价结果"""
|
||||
result = self.db.find_single_data(
|
||||
'ESG评价数据',
|
||||
'评价结果',
|
||||
search_body,
|
||||
['企业ID', '评价ID', '企业名称', '评价年度', '评价时间', '评价等级', 'ESG得分', '环境得分', '社会得分', '公司治理得分']
|
||||
)
|
||||
rating_result = EsgRatingResult()
|
||||
rating_result.cid = result['企业ID']
|
||||
rating_result.rid = result['评价ID']
|
||||
rating_result.name = result['企业名称']
|
||||
rating_result.year = result['评价年度']
|
||||
rating_result.esg_score = result['ESG得分']
|
||||
rating_result.level = result['评价等级']
|
||||
rating_result.rating_date = result['评价时间']
|
||||
|
||||
def environment():
|
||||
"""环境得分"""
|
||||
score = EnvironmentalScore()
|
||||
score.carbon_dioxide = result['环境得分']['单位收入二氧化碳排放']
|
||||
score.energy_consumption = result['环境得分']['单位收入的能耗']
|
||||
score.water_consumption = result['环境得分']['单位收入的耗水']
|
||||
score.income_ratio = result['环境得分']['绿色业务收入占比(%)']
|
||||
score.greenhouse_gas = result['环境得分']['公司是否有温室气体减排目标']
|
||||
score.energy_saving = result['环境得分']['企业是否有节能目标']
|
||||
score.water_saving = result['环境得分']['企业是否有节约用水目标']
|
||||
score.green_business = result['环境得分']['是否有绿色业务']
|
||||
score.punish = result['环境得分']['近三年是否被环境或水务等监管部门处罚']
|
||||
score.negative_effects = result['环境得分']['国家双碳目标对企业业务是否有不利影响']
|
||||
score.beneficial_influence = result['环境得分']['国家双碳目标对企业业务是否有有利影响']
|
||||
score.clean_energy = result['环境得分']['企业是否使用风电、光电、水电等清洁能源,是否使用清洁交通工具']
|
||||
score.total = result['环境得分']['合计']
|
||||
rating_result.environmental_score = score
|
||||
|
||||
def social():
|
||||
"""社会得分"""
|
||||
score = SocialScore()
|
||||
score.resign = result['社会得分']['离职人数占比']
|
||||
score.salary_increase = result['社会得分']['人均薪酬涨幅']
|
||||
score.work_length = result['社会得分']['劳动合同中的工作时长(周)']
|
||||
score.labor_disputes = result['社会得分']['劳动纠纷']
|
||||
score.security_incident = result['社会得分']['安全事故']
|
||||
score.provide_training = result['社会得分']['提供培训']
|
||||
score.social_security = result['社会得分']['社保缴纳是否符合当地标准']
|
||||
score.provident_fund = result['社会得分']['公积金缴纳是否符合当地标准']
|
||||
score.physical_examination = result['社会得分']['是否提供员工体检']
|
||||
score.paid_leave = result['社会得分']['是否提供带薪假期']
|
||||
score.supplier = result['社会得分']['公司从前三大供货商拿货占比']
|
||||
score.customer_sales = result['社会得分']['公司前3大客户销量占比']
|
||||
score.repair_ratio = result['社会得分']['公司返修、退回、投诉产品比例(%)']
|
||||
score.poverty_alleviation = result['社会得分']['扶贫+捐赠规模(万元)']
|
||||
score.judicial_risk = result['社会得分']['司法风险']
|
||||
score.total = result['社会得分']['合计']
|
||||
rating_result.social_score = score
|
||||
|
||||
def governance():
|
||||
"""治理得分"""
|
||||
score = GovernanceScore()
|
||||
score.enterprise_nature = result['公司治理得分']['企业性质']
|
||||
score.directors_board = result['公司治理得分']['公司是否设有董事会']
|
||||
score.supervisory_board = result['公司治理得分']['公司是否设有监事会']
|
||||
score.experience_year = result['公司治理得分']['董监高平均拥有的行业经验年数']
|
||||
score.turnover_rate = result['公司治理得分']['董监高近三年离职率']
|
||||
score.information_disclosure = result['公司治理得分']['公司近三年信息披露及时、可靠、完备、审计质量']
|
||||
score.meetings_number = result['公司治理得分']['公司董事会近三年年均开会次数']
|
||||
score.roe = result['公司治理得分']['净资产收益率']
|
||||
score.audit_report = result['公司治理得分']['公司是否有审计报告']
|
||||
score.total = result['公司治理得分']['合计']
|
||||
rating_result.governance_score = score
|
||||
|
||||
def __main__():
|
||||
environment()
|
||||
social()
|
||||
governance()
|
||||
data = rating_result.dict_to_show()
|
||||
return data
|
||||
|
||||
return __main__()
|
||||
|
||||
if records['评价项目'] == '综合信用评价':
|
||||
res = credit_result()
|
||||
else:
|
||||
res = esg_result()
|
||||
|
||||
return res
|
||||
|
||||
def process_search(self):
|
||||
"""评价流程"""
|
||||
search_body = self.dict_to_show()['搜索体']
|
||||
records = self.rating_type()
|
||||
|
||||
def credit_process():
|
||||
"""综信评价流程"""
|
||||
process = self.db.find_single_data(
|
||||
'综信评价数据',
|
||||
'评价流程',
|
||||
search_body,
|
||||
['评价流程']
|
||||
)
|
||||
return process
|
||||
|
||||
def esg_process():
|
||||
"""esg评价流程"""
|
||||
process = self.db.find_single_data(
|
||||
'ESG评价数据',
|
||||
'评价流程',
|
||||
search_body,
|
||||
['评价流程']
|
||||
)
|
||||
return process
|
||||
|
||||
if records['评价项目'] == '综合信用评价':
|
||||
res = credit_process()
|
||||
else:
|
||||
res = esg_process()
|
||||
|
||||
return res
|
||||
|
||||
def detail_search(self):
|
||||
"""填报数据"""
|
||||
search_body = self.dict_to_show()['搜索体']
|
||||
records = self.rating_type()
|
||||
|
||||
def credit_detail():
|
||||
"""综信填报数据"""
|
||||
detail = self.db.find_single_data(
|
||||
'综信评价数据',
|
||||
'填报数据',
|
||||
search_body,
|
||||
['企业ID', '企业名称', '评价年度', '行业选择', '经营问卷', '财务填报']
|
||||
)
|
||||
|
||||
return detail
|
||||
|
||||
def esg_detail():
|
||||
"""esg填报数据"""
|
||||
detail = self.db.find_single_data(
|
||||
'ESG评价数据',
|
||||
'填报数据',
|
||||
search_body,
|
||||
['企业ID', '企业名称', '评价年度', '所属行业', '环境问卷', '社会问卷', '治理问卷']
|
||||
)
|
||||
|
||||
return detail
|
||||
|
||||
if records['评价项目'] == '综合信用评价':
|
||||
res = credit_detail()
|
||||
else:
|
||||
res = esg_detail()
|
||||
|
||||
return res
|
||||
|
||||
def risk_search(self):
|
||||
"""风险数据"""
|
||||
search_body = self.dict_to_show()['搜索体']
|
||||
records = self.rating_type()
|
||||
|
||||
def credit_risk():
|
||||
"""综信风险数据"""
|
||||
detail = self.db.find_single_data(
|
||||
'综信评价数据',
|
||||
'风险数据',
|
||||
search_body,
|
||||
['企业ID', '关联风险', '合规风险', '经营风险']
|
||||
)
|
||||
|
||||
return detail
|
||||
|
||||
def esg_risk():
|
||||
"""esg风险数据"""
|
||||
detail = self.db.find_single_data(
|
||||
'ESG评价数据',
|
||||
'风险数据',
|
||||
search_body,
|
||||
['企业ID', '更新日期', '严重违法', '失信人', '法律诉讼', '税收违法', '经营异常', '行政处罚', '被执行人']
|
||||
)
|
||||
|
||||
return detail
|
||||
|
||||
if records['评价项目'] == '综合信用评价':
|
||||
res = credit_risk()
|
||||
else:
|
||||
res = esg_risk()
|
||||
|
||||
return res
|
||||
|
||||
def financial_search(self):
|
||||
"""财指结果"""
|
||||
search_body = self.dict_to_show()['搜索体']
|
||||
|
||||
financial = self.db.find_all_data(
|
||||
'综信评价数据',
|
||||
'财指结果',
|
||||
search_body,
|
||||
['企业ID', '年报期', '企业名称', '净资产收益率', '存货周转率', '已获利息倍数', '应收账款周转率', '总资产周转率',
|
||||
'总资产增长率', '总资产报酬率', '技术投入比率', '营业增长率', '资产负债率', '速动比率']
|
||||
)
|
||||
|
||||
return financial
|
||||
|
||||
def report_search(self):
|
||||
"""报告数据"""
|
||||
search_body = self.dict_to_show()['搜索体']
|
||||
records = self.rating_type()
|
||||
|
||||
def credit_report():
|
||||
"""综信风险数据"""
|
||||
report_data = self.db.find_single_data(
|
||||
'综信评价数据',
|
||||
'报告数据',
|
||||
search_body,
|
||||
['企业ID', '企业名称', '评价年度', '行业选择', '生成日期', '报告内容']
|
||||
)
|
||||
|
||||
return report_data
|
||||
|
||||
def esg_report():
|
||||
"""esg风险数据"""
|
||||
report_data = self.db.find_single_data(
|
||||
'ESG评价数据',
|
||||
'报告数据',
|
||||
search_body,
|
||||
['企业ID', '企业名称', '评价年度', '生成日期', '报告内容']
|
||||
)
|
||||
|
||||
return report_data
|
||||
|
||||
if records['评价项目'] == '综合信用评价':
|
||||
res = credit_report()
|
||||
else:
|
||||
res = esg_report()
|
||||
|
||||
return res
|
||||
|
||||
def report_revise(self, text_model):
|
||||
"""报告修改"""
|
||||
search_body = self.dict_to_show()['搜索体']
|
||||
records = self.rating_type()
|
||||
|
||||
def revise_credit_report():
|
||||
"""综信报告修改"""
|
||||
def edit():
|
||||
"""更新报告数据"""
|
||||
insert_data = dict()
|
||||
insert_data['报告内容'] = text_model
|
||||
self.db.update_single_data(
|
||||
'综信评价数据',
|
||||
'报告数据',
|
||||
search_body,
|
||||
insert_data
|
||||
)
|
||||
return True
|
||||
|
||||
def delete():
|
||||
"""删除报告相关数据"""
|
||||
record = self.db.find_single_data(
|
||||
'企业数据',
|
||||
'评价记录',
|
||||
search_body,
|
||||
['报告fid']
|
||||
)
|
||||
if not record:
|
||||
return False
|
||||
else:
|
||||
fid = record['报告fid']
|
||||
# self.db.delete_file(
|
||||
# '文件',
|
||||
# '综信报告',
|
||||
# fid
|
||||
# )
|
||||
self.db.update_single_data(
|
||||
'企业数据',
|
||||
'评价记录',
|
||||
search_body,
|
||||
{'报告fid': None}
|
||||
)
|
||||
return True
|
||||
|
||||
def create():
|
||||
"""生成报告"""
|
||||
report_data = self.db.find_single_data(
|
||||
'综信评价数据',
|
||||
'报告数据',
|
||||
search_body,
|
||||
['评价ID', '企业ID', '企业名称', '报告内容', '生成日期', '行业选择', '评价年度']
|
||||
)
|
||||
report_text = dict()
|
||||
report_text['text_model'] = report_data
|
||||
|
||||
def generate_report():
|
||||
"""
|
||||
调用报告生成接口
|
||||
Parameters:
|
||||
-
|
||||
Returns:
|
||||
result: type 生成结果
|
||||
"""
|
||||
url = 'http://api.fecribd.com/tfse_rating/report/generate_pdf_report'
|
||||
token = 'X0gSlC!YE8jmr2jJr&ilcjS83j!tsoh5'
|
||||
headers = {'token': token, 'Content-Type': 'application/json;charset=UTF-8'}
|
||||
res_ = requests.post(url, headers=headers, data=json.dumps(report_text))
|
||||
return res_
|
||||
|
||||
r = generate_report()
|
||||
result = r.json()
|
||||
|
||||
if result['info'] == '生成报告成功':
|
||||
self.db.update_single_data('企业数据', '评价记录', search_body, {"报告fid": result['result']['FileID']})
|
||||
result['result']['FileID'] = '/file/get_company_report?file_id={}'.format(
|
||||
result['result']['FileID'])
|
||||
self.db.update_single_data('企业数据', '综合信用分析', search_body, {"信用分析.查看报告": result['result']['FileID']})
|
||||
return result
|
||||
|
||||
step_1 = edit()
|
||||
if step_1:
|
||||
step_2 = delete()
|
||||
if step_2:
|
||||
step_3 = create()
|
||||
return step_3
|
||||
else:
|
||||
return {"info": "删除失败"}
|
||||
else:
|
||||
return {"info": "此公司不存在报告数据"}
|
||||
|
||||
def revise_esg_report():
|
||||
"""esg报告修改"""
|
||||
return True
|
||||
|
||||
if records['评价项目'] == '综合信用评价':
|
||||
res = revise_credit_report()
|
||||
else:
|
||||
res = revise_esg_report()
|
||||
|
||||
return res
|
||||
|
||||
def comprehensive_credit_search(self):
|
||||
"""综合信用分析"""
|
||||
search_body = self.dict_to_show()['搜索体']
|
||||
|
||||
data = self.db.find_single_data(
|
||||
'企业数据',
|
||||
'综合信用分析',
|
||||
search_body,
|
||||
['企业ID', '企业名称', '更新时间', '综合信用表现', '信用分析', '指标表格', '历史级别']
|
||||
)
|
||||
return data
|
||||
|
||||
def business_risk_search(self):
|
||||
"""经营风险分析"""
|
||||
search_body = self.dict_to_show()['搜索体']
|
||||
|
||||
data = self.db.find_single_data(
|
||||
'企业数据',
|
||||
'经营风险分析',
|
||||
search_body,
|
||||
['企业ID', '更新时间', '风险分数', '风险级别', '风险数量', '列入失信名单', '合规风险', '经营风险', '周边风险', '变更记录']
|
||||
)
|
||||
return data
|
||||
|
||||
def financial_elements_search(self):
|
||||
"""财务要素分析"""
|
||||
search_body = self.dict_to_show()['搜索体']
|
||||
|
||||
data = self.db.find_single_data(
|
||||
'企业数据',
|
||||
'财务要素分析',
|
||||
search_body,
|
||||
['企业ID', '更新时间', '财报期', '指标详情', '财务得分年度比较', '财务得分同行比较', '财务得分较去年变化', '财务得分较同行差异']
|
||||
)
|
||||
return data
|
||||
|
||||
def esg_evaluation_search(self):
|
||||
"""esg评价分析"""
|
||||
search_body = self.dict_to_show()['搜索体']
|
||||
|
||||
data = self.db.find_single_data(
|
||||
'企业数据',
|
||||
'ESG评价分析',
|
||||
search_body,
|
||||
['企业ID', '更新日期', 'ESG评级', '维度得分情况']
|
||||
)
|
||||
return data
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
insert = dict()
|
||||
insert['企业ID'] = 'rh3XINDu'
|
||||
insert['评价ID'] = 'wEtHEscX'
|
||||
insert['评价流程'] = list()
|
||||
step_01 = {"数据准备": ['填报数据', '风险数据']}
|
||||
step_02 = {"模型打分": ['评价结果']}
|
||||
step_03 = {"文档生成": ['报告数据', '综信报告', '综信证书']}
|
||||
step_04 = {"数据清洗": ['ESG评价分析']}
|
||||
|
||||
insert['评价流程'].append(step_01)
|
||||
insert['评价流程'].append(step_02)
|
||||
insert['评价流程'].append(step_03)
|
||||
insert['评价流程'].append(step_04)
|
||||
|
||||
db = MongoHelper("tfse_v0.21")
|
||||
|
||||
db.upsert_single_data(
|
||||
'ESG评价数据',
|
||||
'评价流程',
|
||||
{'评价ID': 'wEtHEscX'},
|
||||
insert
|
||||
)
|
|
@ -0,0 +1,186 @@
|
|||
from Utils.ObjUtil import SpecObject
|
||||
from Utils.ValidateUtil import ValidateAttr, Validate
|
||||
|
||||
RATING_RESULT = ["AAA", "AA+", "AA", "AA-", "A+", "A", "A-", "BBB+", "BBB", "BBB-", "BB+", "BB", "BB-", "B+", "B", "B-",
|
||||
"CCC", "CC", None]
|
||||
RATING_METHOD = ["企业申报", "跟踪评价"]
|
||||
|
||||
|
||||
class OperatingScore(SpecObject):
|
||||
"""经营评分"""
|
||||
environment = ValidateAttr(field="environment", type=[float, int])
|
||||
social = ValidateAttr(field="social", type=[float, int])
|
||||
governance = ValidateAttr(field="governance", type=[float, int])
|
||||
total = ValidateAttr(field="total", type=[float, int])
|
||||
|
||||
fields_map = {
|
||||
"environment": "环境",
|
||||
"social": "社会责任",
|
||||
"governance": "公司治理",
|
||||
"total": "合计"
|
||||
}
|
||||
|
||||
|
||||
class FinanceScore(SpecObject):
|
||||
"""财务评分"""
|
||||
class Profitability(SpecObject):
|
||||
"""盈利能力"""
|
||||
roe = ValidateAttr(field="roe", type=[float, int])
|
||||
roa = ValidateAttr(field="roa", type=[float, int])
|
||||
total = ValidateAttr(field="total", type=[float, int])
|
||||
|
||||
fields_map = {
|
||||
"roe": "净资产收益率",
|
||||
"roa": "总资产报酬率",
|
||||
"total": "合计"
|
||||
}
|
||||
|
||||
class AssetQuality(SpecObject):
|
||||
"""资产质量"""
|
||||
total_asset_turnover = ValidateAttr(field="total_asset_turnover", type=[float, int])
|
||||
inventory_turnover = ValidateAttr(field="inventory_turnover", type=[float, int])
|
||||
accounts_receivable_turnover = ValidateAttr(field="accounts_receivable_turnover", type=[float, int])
|
||||
total = ValidateAttr(field="total", type=[float, int])
|
||||
|
||||
fields_map = {
|
||||
"total_asset_turnover": "总资产周转率",
|
||||
"inventory_turnover": "存货周转率",
|
||||
"accounts_receivable_turnover": "应收账款周转率",
|
||||
"total": "合计"
|
||||
}
|
||||
|
||||
class DebtRisk(SpecObject):
|
||||
"""债务风险"""
|
||||
assets_liabilities = ValidateAttr(field="assets_liabilities", type=[float, int])
|
||||
earned_interest_multiple = ValidateAttr(field="earned_interest_multiple", type=[float, int])
|
||||
quick_ratio = ValidateAttr(field="quick_ratio", type=[float, int])
|
||||
total = ValidateAttr(field="total", type=[float, int])
|
||||
|
||||
fields_map = {
|
||||
"assets_liabilities": "资产负债率",
|
||||
"earned_interest_multiple": "已获利息倍数",
|
||||
"quick_ratio": "速动比率",
|
||||
"total": "合计"
|
||||
}
|
||||
|
||||
class BusinessGrowth(SpecObject):
|
||||
"""经营增长"""
|
||||
operating_growth_rate = ValidateAttr(field="operating_growth_rate", type=[float, int])
|
||||
total_asset_growth_rate = ValidateAttr(field="total_asset_growth_rate", type=[float, int])
|
||||
technology_investment_ratio = ValidateAttr(field="technology_investment_ratio", type=[float, int])
|
||||
total = ValidateAttr(field="total", type=[float, int])
|
||||
|
||||
fields_map = {
|
||||
"operating_growth_rate": "营业增长率",
|
||||
"total_asset_growth_rate": "总资产增长率",
|
||||
"technology_investment_ratio": "技术投入比率",
|
||||
"total": "合计"
|
||||
}
|
||||
|
||||
profitability = ValidateAttr(field="profitability", type=Profitability)
|
||||
asset_quality = ValidateAttr(field="asset_quality", type=AssetQuality)
|
||||
debt_risk = ValidateAttr(field="debt_risk", type=DebtRisk)
|
||||
business_growth = ValidateAttr(field="business_growth", type=BusinessGrowth)
|
||||
total = ValidateAttr(field="total", type=[float, int])
|
||||
|
||||
fields_map = {
|
||||
"profitability": "盈利能力",
|
||||
"asset_quality": "资产质量",
|
||||
"debt_risk": "债务风险",
|
||||
"business_growth": "经营增长",
|
||||
"total": "合计"
|
||||
}
|
||||
|
||||
|
||||
class RiskScore(SpecObject):
|
||||
"""风险评分"""
|
||||
|
||||
class BusinessRisk(SpecObject):
|
||||
"""经营风险"""
|
||||
case_filing_information = ValidateAttr(field="case_filing_information", type=[float, int])
|
||||
court_announcement = ValidateAttr(field="court_announcement", type=[float, int])
|
||||
executed = ValidateAttr(field="executed", type=[float, int])
|
||||
court_notice = ValidateAttr(field="court_notice", type=[float, int])
|
||||
litigation = ValidateAttr(field="litigation", type=[float, int])
|
||||
service_announcement = ValidateAttr(field="service_announcement", type=[float, int])
|
||||
equity_pledge = ValidateAttr(field="equity_pledge", type=[float, int])
|
||||
legal_entity_change = ValidateAttr(field="legal_entity_change", type=[float, int])
|
||||
members_change = ValidateAttr(field="members_change", type=[float, int])
|
||||
total = ValidateAttr(field="total", type=[float, int])
|
||||
|
||||
fields_map = {
|
||||
"case_filing_information": "立案信息",
|
||||
"court_announcement": "开庭公告",
|
||||
"executed": "被执行人",
|
||||
"court_notice": "法院公告",
|
||||
"litigation": "诉讼",
|
||||
"service_announcement": "送达公告",
|
||||
"equity_pledge": "股权出质",
|
||||
"legal_entity_change": "法人变更",
|
||||
"members_change": "主要成员变更",
|
||||
"total": "合计"
|
||||
}
|
||||
|
||||
class AssociatedRisk(SpecObject):
|
||||
"""关联风险"""
|
||||
|
||||
class PeripheralRisk(SpecObject):
|
||||
"""周边风险"""
|
||||
high_risk = ValidateAttr(field="high_risk", type=[float, int])
|
||||
warning = ValidateAttr(field="warning", type=[float, int])
|
||||
total = ValidateAttr(field="total", type=[float, int])
|
||||
|
||||
fields_map = {
|
||||
"high_risk": "高风险",
|
||||
"warning": "警示",
|
||||
"total": "合计"
|
||||
}
|
||||
|
||||
peripheral_risk = ValidateAttr(field="peripheral_risk", type=PeripheralRisk)
|
||||
total = ValidateAttr(field="total", type=[float, int])
|
||||
|
||||
fields_map = {
|
||||
"peripheral_risk": "周边风险",
|
||||
"total": "合计"
|
||||
}
|
||||
|
||||
compliance_risk = ValidateAttr(field="compliance_risk", type=[float, int])
|
||||
business_risk = ValidateAttr(field="business_risk", type=BusinessRisk)
|
||||
associated_risk = ValidateAttr(field="associated_risk", type=AssociatedRisk)
|
||||
total = ValidateAttr(field="total", type=[float, int])
|
||||
|
||||
fields_map = {
|
||||
"compliance_risk": "合规风险",
|
||||
"business_risk": "经营风险",
|
||||
"associated_risk": "关联风险",
|
||||
"total": "合计"
|
||||
}
|
||||
|
||||
|
||||
class CreditRatingResult(SpecObject):
|
||||
"""综信填报数据"""
|
||||
cid = ValidateAttr(field='cid', type=str, length=8, default=None)
|
||||
rid = ValidateAttr(field="rid", type=str, length=8, default=None)
|
||||
name = ValidateAttr(field='name', type=str, default=None)
|
||||
year = ValidateAttr(field='year', type=str, default=None)
|
||||
score = ValidateAttr(field='score', type=[float, int], default=None)
|
||||
level = ValidateAttr(field='level', type=str, in_list=RATING_RESULT)
|
||||
method = ValidateAttr(field='method', type=str, in_list=RATING_METHOD)
|
||||
rating_date = ValidateAttr(field='rating_date', func=Validate.date_format)
|
||||
operating_score = ValidateAttr(field='operating_score', type=OperatingScore)
|
||||
finance_score = ValidateAttr(field='finance_score', type=FinanceScore)
|
||||
risk_score = ValidateAttr(field='risk_score', type=RiskScore)
|
||||
|
||||
fields_map = {
|
||||
"cid": "企业ID",
|
||||
"rid": "评价ID",
|
||||
"name": "企业名称",
|
||||
"year": "评价年度",
|
||||
"score": "信用评分",
|
||||
"level": "信用等级",
|
||||
"method": "评价方式",
|
||||
"rating_date": "评价时间",
|
||||
"operating_score": "经营评分",
|
||||
"finance_score": "财务评分",
|
||||
"risk_score": "风险评分"
|
||||
}
|
|
@ -0,0 +1,129 @@
|
|||
from Utils.ObjUtil import SpecObject
|
||||
from Utils.ValidateUtil import ValidateAttr, Validate
|
||||
RATING_RESULT = ["AAA", "AA+", "AA", "AA-", "A+", "A", "A-", "BBB+", "BBB", "BBB-", "BB+", "BB", "BB-", "B+", "B", "B-", "CCC", "CC", None]
|
||||
|
||||
|
||||
class EnvironmentalScore(SpecObject):
|
||||
"""环境得分"""
|
||||
carbon_dioxide = ValidateAttr(field='carbon_dioxide', type=[float, int])
|
||||
energy_consumption = ValidateAttr(field='energy_consumption', type=[float, int])
|
||||
water_consumption = ValidateAttr(field='water_consumption', type=[float, int])
|
||||
income_ratio = ValidateAttr(field='income_ratio', type=[float, int])
|
||||
greenhouse_gas = ValidateAttr(field='greenhouse_gas', type=[float, int])
|
||||
energy_saving = ValidateAttr(field='energy_saving', type=[float, int])
|
||||
water_saving = ValidateAttr(field='water_saving', type=[float, int])
|
||||
green_business = ValidateAttr(field='green_business', type=[float, int])
|
||||
punish = ValidateAttr(field='punish', type=[float, int, str])
|
||||
negative_effects = ValidateAttr(field='negative_effects', type=[float, int])
|
||||
beneficial_influence = ValidateAttr(field='beneficial_influence', type=[float, int])
|
||||
clean_energy = ValidateAttr(field='clean_energy', type=[float, int])
|
||||
total = ValidateAttr(field='total', type=[float, int])
|
||||
|
||||
fields_map = {
|
||||
"carbon_dioxide": "单位收入二氧化碳排放",
|
||||
"energy_consumption": "单位收入的能耗",
|
||||
"water_consumption": "单位收入的耗水",
|
||||
"income_ratio": "绿色业务收入占比(%)",
|
||||
"greenhouse_gas": "公司是否有温室气体减排目标",
|
||||
"energy_saving": "企业是否有节能目标",
|
||||
"water_saving": "企业是否有节约用水目标",
|
||||
"green_business": "是否有绿色业务",
|
||||
"punish": "近三年是否被环境或水务等监管部门处罚",
|
||||
"negative_effects": "国家双碳目标对企业业务是否有不利影响",
|
||||
"beneficial_influence": "国家双碳目标对企业业务是否有有利影响",
|
||||
"clean_energy": "企业是否使用风电、光电、水电等清洁能源,是否使用清洁交通工具",
|
||||
"total": "合计"
|
||||
}
|
||||
|
||||
|
||||
class SocialScore(SpecObject):
|
||||
"""社会得分"""
|
||||
resign = ValidateAttr(field="resign", type=[float, int])
|
||||
salary_increase = ValidateAttr(field="salary_increase", type=[float, int])
|
||||
work_length = ValidateAttr(field="work_length", type=[float, int])
|
||||
labor_disputes = ValidateAttr(field="labor_disputes", type=[float, int])
|
||||
security_incident = ValidateAttr(field="security_incident", type=[float, int])
|
||||
provide_training = ValidateAttr(field="provide_training", type=[float, int])
|
||||
social_security = ValidateAttr(field="social_security", type=[float, int])
|
||||
provident_fund = ValidateAttr(field="provident_fund", type=[float, int])
|
||||
physical_examination = ValidateAttr(field="physical_examination", type=[float, int])
|
||||
paid_leave = ValidateAttr(field="paid_leave", type=[float, int])
|
||||
supplier = ValidateAttr(field="supplier", type=[float, int])
|
||||
customer_sales = ValidateAttr(field="customer_sales", type=[float, int])
|
||||
repair_ratio = ValidateAttr(field="repair_ratio", type=[float, int])
|
||||
poverty_alleviation = ValidateAttr(field="poverty_alleviation", type=[float, int])
|
||||
judicial_risk = ValidateAttr(field="judicial_risk", type=[float, int, str])
|
||||
total = ValidateAttr(field="total", type=[float, int])
|
||||
|
||||
fields_map = {
|
||||
"resign": "离职人数占比",
|
||||
"salary_increase": "人均薪酬涨幅",
|
||||
"work_length": "劳动合同中的工作时长(周)",
|
||||
"labor_disputes": "劳动纠纷",
|
||||
"security_incident": "安全事故",
|
||||
"provide_training": "提供培训",
|
||||
"social_security": "社保缴纳是否符合当地标准",
|
||||
"provident_fund": "公积金缴纳是否符合当地标准",
|
||||
"physical_examination": "是否提供员工体检",
|
||||
"paid_leave": "是否提供带薪假期",
|
||||
"supplier": "公司从前三大供货商拿货占比",
|
||||
"customer_sales": "公司前3大客户销量占比",
|
||||
"repair_ratio": "公司返修、退回、投诉产品比例(%)",
|
||||
"poverty_alleviation": "扶贫+捐赠规模(万元)",
|
||||
"judicial_risk": "司法风险",
|
||||
"total": "合计"
|
||||
}
|
||||
|
||||
|
||||
class GovernanceScore(SpecObject):
|
||||
"""治理得分"""
|
||||
enterprise_nature = ValidateAttr(field="enterprise_nature", type=[float, int])
|
||||
directors_board = ValidateAttr(field="directors_board", type=[float, int])
|
||||
supervisory_board = ValidateAttr(field="supervisory_board", type=[float, int])
|
||||
experience_year = ValidateAttr(field="experience_year", type=[float, int])
|
||||
turnover_rate = ValidateAttr(field="turnover_rate", type=[float, int])
|
||||
information_disclosure = ValidateAttr(field="information_disclosure", type=[float, int])
|
||||
meetings_number = ValidateAttr(field="meetings_number", type=[float, int])
|
||||
roe = ValidateAttr(field="roe", type=[float, int])
|
||||
audit_report = ValidateAttr(field="audit_report", type=[float, int])
|
||||
total = ValidateAttr(field="total", type=[float, int])
|
||||
|
||||
fields_map = {
|
||||
"enterprise_nature": "企业性质",
|
||||
"directors_board": "公司是否设有董事会",
|
||||
"supervisory_board": "公司是否设有监事会",
|
||||
"experience_year": "董监高平均拥有的行业经验年数",
|
||||
"turnover_rate": "董监高近三年离职率",
|
||||
"information_disclosure": "公司近三年信息披露及时、可靠、完备、审计质量",
|
||||
"meetings_number": "公司董事会近三年年均开会次数",
|
||||
"roe": "净资产收益率",
|
||||
"audit_report": "公司是否有审计报告",
|
||||
"total": "合计"
|
||||
}
|
||||
|
||||
|
||||
class EsgRatingResult(SpecObject):
|
||||
"""esg评价结果"""
|
||||
cid = ValidateAttr(field='cid', type=str, length=8, default=None)
|
||||
rid = ValidateAttr(field="rid", type=str, length=8, default=None)
|
||||
name = ValidateAttr(field='name', type=str, default=None)
|
||||
year = ValidateAttr(field='year', type=str, default=None)
|
||||
esg_score = ValidateAttr(field='esg_score', type=[float, int], default=None)
|
||||
environmental_score = ValidateAttr(field='environmental_score', type=EnvironmentalScore)
|
||||
social_score = ValidateAttr(field='social_score', type=SocialScore)
|
||||
governance_score = ValidateAttr(field='governance_score', type=GovernanceScore)
|
||||
level = ValidateAttr(field='level', type=str, in_list=RATING_RESULT)
|
||||
rating_date = ValidateAttr(field='rating_date', func=Validate.date_format)
|
||||
|
||||
fields_map = {
|
||||
"cid": "企业ID",
|
||||
"rid": "评价ID",
|
||||
"name": "企业名称",
|
||||
"year": "评价年度",
|
||||
"esg_score": "ESG得分",
|
||||
"environmental_score": "环境得分",
|
||||
"social_score": "社会得分",
|
||||
"governance_score": "公司治理得分",
|
||||
"level": "评价等级",
|
||||
"rating_date": "评价时间"
|
||||
}
|
|
@ -0,0 +1,137 @@
|
|||
from Utils.ObjUtil import SpecObject
|
||||
from Utils.ValidateUtil import ValidateAttr, Validate
|
||||
|
||||
RATING_RESULT = ["AAA", "AA+", "AA", "AA-", "A+", "A", "A-", "BBB+", "BBB", "BBB-", "BB+", "BB",
|
||||
"BB-", "B+", "B", "B-", "CCC+", "CCC", "CCC-", "CC+", "CC", "CC-", "C+", "C", "C-", "D"]
|
||||
|
||||
|
||||
class SearchRatingApi(SpecObject):
|
||||
"""服务查询类"""
|
||||
|
||||
class SearchBody(SpecObject):
|
||||
"""查询体"""
|
||||
cid = ValidateAttr(field='cid', type=str)
|
||||
rid = ValidateAttr(field='rid', type=str)
|
||||
name = ValidateAttr(field='name', type=str)
|
||||
project = ValidateAttr(field='project', type=str, in_list=['综合信用评价', 'ESG评价'])
|
||||
method = ValidateAttr(field='method', type=str, in_list=['企业申报', '跟踪评价'])
|
||||
status = ValidateAttr(field='status', type=str, in_list=['完成', '进行'])
|
||||
result = ValidateAttr(field='result', type=str, in_list=RATING_RESULT)
|
||||
completion_date = ValidateAttr(field='completion_date', type=str, func=Validate.date_format)
|
||||
|
||||
fields_map = {
|
||||
"cid": "企业ID",
|
||||
"rid": "评价ID",
|
||||
"name": "企业名称",
|
||||
"project": "评价项目",
|
||||
"method": "评价方式",
|
||||
"status": "进行状态",
|
||||
"result": "评价结果",
|
||||
"time": "评价时间"
|
||||
}
|
||||
|
||||
def make_search_body(self):
|
||||
""""""
|
||||
search_keys = list(self.__dict__.keys())
|
||||
body = dict()
|
||||
|
||||
if "cid" in search_keys:
|
||||
body['企业ID'] = self.cid
|
||||
|
||||
if "rid" in search_keys:
|
||||
body['评价ID'] = self.cid
|
||||
|
||||
if "name" in search_keys:
|
||||
body['企业名称'] = {"$regex": self.name}
|
||||
|
||||
if "project" in search_keys:
|
||||
body['评价项目'] = {"$regex": self.project}
|
||||
|
||||
if "method" in search_keys:
|
||||
body['评价方式'] = {"$regex": self.method}
|
||||
|
||||
if "status" in search_keys:
|
||||
body['进行状态'] = {"$regex": self.status}
|
||||
|
||||
if "result" in search_keys:
|
||||
body['评价结果'] = {"$regex": self.result}
|
||||
|
||||
if "time" in search_keys:
|
||||
body['评价完成日期'] = {"$regex": self.completion_date}
|
||||
|
||||
return body
|
||||
|
||||
class SortBody(SpecObject):
|
||||
""""""
|
||||
field = ValidateAttr(field='field', type=str)
|
||||
sort = ValidateAttr(field='sort', in_list=["asc", "desc"])
|
||||
|
||||
fields_map = {
|
||||
"field": "排序字段",
|
||||
"sort": "排序方式"
|
||||
}
|
||||
|
||||
def make_sort_body(self):
|
||||
""""""
|
||||
if self.__dict__ != {}:
|
||||
columns_map = {
|
||||
"企业ID": "企业ID",
|
||||
"评价ID": "评价ID",
|
||||
"企业名称": "企业名称",
|
||||
"评价项目": "评价项目",
|
||||
"评价方式": "评价方式",
|
||||
"进行状态": "进行状态",
|
||||
"评价结果": "评价结果",
|
||||
"评价完成日期": "评价完成日期"
|
||||
}
|
||||
asc_or_desc = 1 if self.sort == "asc" else -1
|
||||
sort_column = columns_map[self.field]
|
||||
body = {sort_column: asc_or_desc}
|
||||
else:
|
||||
body = {"评价完成时间": -1}
|
||||
|
||||
return body
|
||||
|
||||
search = ValidateAttr(field='search', type=SearchBody)
|
||||
sort = ValidateAttr(field='sort', type=SortBody)
|
||||
page_size = ValidateAttr(field='page_size', type=int)
|
||||
page_no = ValidateAttr(field='page_no', type=int)
|
||||
|
||||
fields_map = {
|
||||
"search": "搜索体",
|
||||
"sort": "排序",
|
||||
"page_size": "显示数量",
|
||||
"page_no": "页码"
|
||||
}
|
||||
|
||||
def condition_search(self):
|
||||
"""条件查询"""
|
||||
|
||||
|
||||
class SearchRatingResult(SpecObject):
|
||||
"""服务查询返回结果"""
|
||||
cid = ValidateAttr(field='cid', type=str)
|
||||
rid = ValidateAttr(field='rid', type=str)
|
||||
name = ValidateAttr(field='name', type=str)
|
||||
project = ValidateAttr(field='project', type=str, in_list=['综合信用评价', 'ESG评价'])
|
||||
method = ValidateAttr(field='method', type=str, in_list=['企业申报', '跟踪评价'])
|
||||
status = ValidateAttr(field='status', type=str, in_list=['完成', '进行'])
|
||||
result = ValidateAttr(field='result', type=str, in_list=RATING_RESULT, default=None)
|
||||
completion_date = ValidateAttr(field='completion_date', type=str, func=Validate.date_format, default=None)
|
||||
report_fid = ValidateAttr(field='report_fid', type=str, default=None)
|
||||
certificate_fid = ValidateAttr(field='certificate_fid', type=str, default=None)
|
||||
|
||||
fields_map = {
|
||||
"cid": "企业ID",
|
||||
"rid": "评价ID",
|
||||
"name": "企业名称",
|
||||
"project": "评价项目",
|
||||
"method": "评价方式",
|
||||
"status": "进行状态",
|
||||
"result": "评价结果",
|
||||
"completion_date": "评价完成日期",
|
||||
"report_fid": "报告fid",
|
||||
"certificate_fid": "证书fid"
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,347 @@
|
|||
from flask import Blueprint, request
|
||||
|
||||
from Manage.Ratings.Implements.SearchRatingApiImpl import SearchRatingApiImpl
|
||||
from Utils.ErrorUtil import ReturnConditionCheckFailed
|
||||
from user.user_auth import verify_token, authority_scope
|
||||
|
||||
rating_route = Blueprint('rating', __name__)
|
||||
|
||||
|
||||
@rating_route.route('/search', methods=['POST'])
|
||||
@verify_token
|
||||
@authority_scope(['admin', 'developer', 'analysts', 'operator'])
|
||||
def search_rating(**kwargs):
|
||||
"""
|
||||
企业评价记录搜索
|
||||
Parameters:
|
||||
-
|
||||
Returns:
|
||||
info: 返回信息
|
||||
result: 返回数据
|
||||
"""
|
||||
try:
|
||||
req = request.json
|
||||
|
||||
search_body_impl = SearchRatingApiImpl()
|
||||
search_body = search_body_impl.SearchBody()
|
||||
sort_body = search_body_impl.SortBody()
|
||||
|
||||
search = req['search'] if req.__contains__('search') else {}
|
||||
sort = req['sort'] if req.__contains__('sort') else {}
|
||||
|
||||
if search.__contains__('企业ID'):
|
||||
search_body.cid = search['企业ID']
|
||||
|
||||
if search.__contains__('评价ID'):
|
||||
search_body.rid = search['评价ID']
|
||||
|
||||
if search.__contains__('企业名称'):
|
||||
search_body.name = search['企业名称']
|
||||
|
||||
if search.__contains__('评价项目'):
|
||||
search_body.project = search['评价项目']
|
||||
|
||||
if search.__contains__('评价方式'):
|
||||
search_body.method = search['评价方式']
|
||||
|
||||
if search.__contains__('进行状态'):
|
||||
search_body.status = search['进行状态']
|
||||
|
||||
if search.__contains__('评价结果'):
|
||||
search_body.result = search['评价结果']
|
||||
|
||||
if search.__contains__('评价时间'):
|
||||
search_body.time = search['评价时间']
|
||||
|
||||
if sort != {}:
|
||||
sort_body.field = list(sort.keys())[0]
|
||||
sort_body.sort = list(sort.values())[0]
|
||||
|
||||
search_body_impl.search = search_body
|
||||
search_body_impl.sort = sort_body
|
||||
search_body_impl.page_size = req['page_size']
|
||||
search_body_impl.page_no = req['page_no']
|
||||
result = search_body_impl.conditions_search()
|
||||
return {"info": '查询结果', "result": result}, 200
|
||||
|
||||
except ReturnConditionCheckFailed as e:
|
||||
return {"info": e.failed_info}, e.status_code
|
||||
except KeyError:
|
||||
return {"info": "参数异常"}, 400
|
||||
|
||||
|
||||
@rating_route.route('/rating_result', methods=['POST'])
|
||||
@verify_token
|
||||
@authority_scope(['admin', 'developer', 'analysts', 'operator'])
|
||||
def rating_result(**kwargs):
|
||||
"""
|
||||
查询评价结果
|
||||
Parameters:
|
||||
-
|
||||
Returns:
|
||||
info: 返回信息
|
||||
result: 返回数据
|
||||
"""
|
||||
try:
|
||||
search_body_impl = SearchRatingApiImpl()
|
||||
search_body = search_body_impl.SearchBody()
|
||||
search_body.rid = request.json['rid']
|
||||
search_body_impl.search = search_body
|
||||
result = search_body_impl.result_search()
|
||||
return {"info": '查询成功', "result": result}, 200
|
||||
except ReturnConditionCheckFailed as e:
|
||||
e.log_error()
|
||||
return {"info": e.failed_info}, e.status_code
|
||||
except KeyError:
|
||||
return {"info": "参数异常"}, 400
|
||||
|
||||
|
||||
@rating_route.route('/get_company_process', methods=['POST'])
|
||||
@verify_token
|
||||
@authority_scope(['admin', 'developer', 'analysts', 'operator'])
|
||||
def get_company_process(**kwargs):
|
||||
"""
|
||||
获取评测流程
|
||||
Parameters:
|
||||
-
|
||||
Returns:
|
||||
result dict 流程数据
|
||||
"""
|
||||
try:
|
||||
search_body_impl = SearchRatingApiImpl()
|
||||
search_body = search_body_impl.SearchBody()
|
||||
search_body.rid = request.json['rid']
|
||||
search_body_impl.search = search_body
|
||||
result = search_body_impl.process_search()
|
||||
return {"info": result}, 200
|
||||
except ReturnConditionCheckFailed as e:
|
||||
e.log_error()
|
||||
return {"info": e.failed_info}, e.status_code
|
||||
except KeyError:
|
||||
return {"info": "参数异常"}, 400
|
||||
|
||||
|
||||
@rating_route.route('/details', methods=['POST'])
|
||||
@verify_token
|
||||
@authority_scope(['admin', 'developer', 'analysts', 'operator'])
|
||||
def fill_details(**kwargs):
|
||||
"""
|
||||
查看填报详情信息
|
||||
Parameters:
|
||||
-
|
||||
Returns:
|
||||
result dict 流程数据
|
||||
"""
|
||||
try:
|
||||
search_body_impl = SearchRatingApiImpl()
|
||||
search_body = search_body_impl.SearchBody()
|
||||
search_body.rid = request.json['rid']
|
||||
search_body_impl.search = search_body
|
||||
result = search_body_impl.detail_search()
|
||||
return {"info": "查询成功", "result": result}, 200
|
||||
except ReturnConditionCheckFailed as e:
|
||||
e.log_error()
|
||||
return {"info": e.failed_info}, e.status_code
|
||||
except KeyError:
|
||||
return {"info": "参数异常"}, 400
|
||||
|
||||
|
||||
@rating_route.route('/risk', methods=['POST'])
|
||||
@verify_token
|
||||
@authority_scope(['admin', 'developer', 'analysts', 'operator'])
|
||||
def risk_info(**kwargs):
|
||||
"""
|
||||
查询风险数据
|
||||
Parameters:
|
||||
-
|
||||
Returns:
|
||||
result dict 流程数据
|
||||
"""
|
||||
try:
|
||||
search_body_impl = SearchRatingApiImpl()
|
||||
search_body = search_body_impl.SearchBody()
|
||||
search_body.rid = request.json['rid']
|
||||
search_body_impl.search = search_body
|
||||
result = search_body_impl.risk_search()
|
||||
return {"info": "查询成功", "result": result}, 200
|
||||
except ReturnConditionCheckFailed as e:
|
||||
e.log_error()
|
||||
return {"info": e.failed_info}, e.status_code
|
||||
except KeyError:
|
||||
return {"info": "参数异常"}, 400
|
||||
|
||||
|
||||
@rating_route.route('/report_data', methods=['POST'])
|
||||
@verify_token
|
||||
@authority_scope(['admin', 'developer', 'analysts', 'operator'])
|
||||
def report_data(**kwargs):
|
||||
"""
|
||||
查看报告数据
|
||||
Parameters:
|
||||
-
|
||||
Returns:
|
||||
result dict 流程数据
|
||||
"""
|
||||
try:
|
||||
search_body_impl = SearchRatingApiImpl()
|
||||
search_body = search_body_impl.SearchBody()
|
||||
search_body.rid = request.json['rid']
|
||||
search_body_impl.search = search_body
|
||||
result = search_body_impl.report_search()
|
||||
return {"info": "查询成功", "result": result}, 200
|
||||
except ReturnConditionCheckFailed as e:
|
||||
e.log_error()
|
||||
return {"info": e.failed_info}, e.status_code
|
||||
except KeyError:
|
||||
return {"info": "参数异常"}, 400
|
||||
|
||||
|
||||
@rating_route.route('/report_revise', methods=['POST'])
|
||||
@verify_token
|
||||
@authority_scope(['admin', 'developer', 'analysts', 'operator'])
|
||||
def report_revise(**kwargs):
|
||||
"""
|
||||
报告编辑、保存、删除操作
|
||||
Parameters:
|
||||
-
|
||||
Returns:
|
||||
result dict 生成结果
|
||||
"""
|
||||
try:
|
||||
search_body_impl = SearchRatingApiImpl()
|
||||
search_body = search_body_impl.SearchBody()
|
||||
search_body.rid = request.json['rid']
|
||||
text_model = request.json['text_model']
|
||||
search_body_impl.search = search_body
|
||||
result = search_body_impl.report_revise(text_model)
|
||||
return result
|
||||
except ReturnConditionCheckFailed as e:
|
||||
e.log_error()
|
||||
return {"info": e.failed_info}, e.status_code
|
||||
except KeyError:
|
||||
return {"info": "参数异常"}, 400
|
||||
|
||||
|
||||
@rating_route.route('/financial_index', methods=['POST'])
|
||||
@verify_token
|
||||
@authority_scope(['admin', 'developer', 'analysts', 'operator'])
|
||||
def financial_index(**kwargs):
|
||||
"""
|
||||
查看财指结果
|
||||
Parameters:
|
||||
-
|
||||
Returns:
|
||||
result dict 财指结果
|
||||
"""
|
||||
try:
|
||||
search_body_impl = SearchRatingApiImpl()
|
||||
search_body = search_body_impl.SearchBody()
|
||||
search_body.rid = request.json['rid']
|
||||
search_body_impl.search = search_body
|
||||
result = search_body_impl.financial_search()
|
||||
return {"info": "查询成功", "result": result}, 200
|
||||
except ReturnConditionCheckFailed as e:
|
||||
e.log_error()
|
||||
return {"info": e.failed_info}, e.status_code
|
||||
except KeyError:
|
||||
return {"info": "参数异常"}, 400
|
||||
|
||||
|
||||
@rating_route.route('/comprehensive_credit_analysis', methods=['POST'])
|
||||
@verify_token
|
||||
@authority_scope(['admin', 'developer', 'analysts', 'operator'])
|
||||
def comprehensive_credit(**kwargs):
|
||||
"""
|
||||
查看综合信用分析
|
||||
Parameters:
|
||||
-
|
||||
Returns:
|
||||
result dict 财指结果
|
||||
"""
|
||||
try:
|
||||
search_body_impl = SearchRatingApiImpl()
|
||||
search_body = search_body_impl.SearchBody()
|
||||
search_body.rid = request.json['rid']
|
||||
search_body_impl.search = search_body
|
||||
result = search_body_impl.comprehensive_credit_search()
|
||||
return {"info": "查询成功", "result": result}, 200
|
||||
except ReturnConditionCheckFailed as e:
|
||||
e.log_error()
|
||||
return {"info": e.failed_info}, e.status_code
|
||||
except KeyError:
|
||||
return {"info": "参数异常"}, 400
|
||||
|
||||
|
||||
@rating_route.route('/business_risk_analysis', methods=['POST'])
|
||||
@verify_token
|
||||
@authority_scope(['admin', 'developer', 'analysts', 'operator'])
|
||||
def business_risk(**kwargs):
|
||||
"""
|
||||
查看经营风险分析
|
||||
Parameters:
|
||||
-
|
||||
Returns:
|
||||
result dict 财指结果
|
||||
"""
|
||||
try:
|
||||
search_body_impl = SearchRatingApiImpl()
|
||||
search_body = search_body_impl.SearchBody()
|
||||
search_body.rid = request.json['rid']
|
||||
search_body_impl.search = search_body
|
||||
result = search_body_impl.business_risk_search()
|
||||
return {"info": "查询成功", "result": result}, 200
|
||||
except ReturnConditionCheckFailed as e:
|
||||
e.log_error()
|
||||
return {"info": e.failed_info}, e.status_code
|
||||
except KeyError:
|
||||
return {"info": "参数异常"}, 400
|
||||
|
||||
|
||||
@rating_route.route('financial_elements_analysis', methods=['POST'])
|
||||
@verify_token
|
||||
@authority_scope(['admin', 'developer', 'analysts', 'operator'])
|
||||
def financial_elements(**kwargs):
|
||||
"""
|
||||
查看财务要素分析
|
||||
Parameters:
|
||||
-
|
||||
Returns:
|
||||
result dict 财指结果
|
||||
"""
|
||||
try:
|
||||
search_body_impl = SearchRatingApiImpl()
|
||||
search_body = search_body_impl.SearchBody()
|
||||
search_body.rid = request.json['rid']
|
||||
search_body_impl.search = search_body
|
||||
result = search_body_impl.financial_elements_search()
|
||||
return {"info": "查询成功", "result": result}, 200
|
||||
except ReturnConditionCheckFailed as e:
|
||||
e.log_error()
|
||||
return {"info": e.failed_info}, e.status_code
|
||||
except KeyError:
|
||||
return {"info": "参数异常"}, 400
|
||||
|
||||
|
||||
@rating_route.route('esg_evaluation_analysis', methods=['POST'])
|
||||
@verify_token
|
||||
@authority_scope(['admin', 'developer', 'analysts', 'operator'])
|
||||
def esg_evaluation(**kwargs):
|
||||
"""
|
||||
查看财务要素分析
|
||||
Parameters:
|
||||
-
|
||||
Returns:
|
||||
result dict 财指结果
|
||||
"""
|
||||
try:
|
||||
search_body_impl = SearchRatingApiImpl()
|
||||
search_body = search_body_impl.SearchBody()
|
||||
search_body.rid = request.json['rid']
|
||||
search_body_impl.search = search_body
|
||||
result = search_body_impl.esg_evaluation_search()
|
||||
return {"info": "查询成功", "result": result}, 200
|
||||
except ReturnConditionCheckFailed as e:
|
||||
e.log_error()
|
||||
return {"info": e.failed_info}, e.status_code
|
||||
except KeyError:
|
||||
return {"info": "参数异常"}, 400
|
3
app.py
3
app.py
|
@ -2,11 +2,12 @@ from flask import Flask
|
|||
from flask_cors import *
|
||||
|
||||
from Board.board_routes import board_route
|
||||
from Manage.Ratings.RatingRoutes import rating_route
|
||||
from Manage.industry.industry_routes import industry_route
|
||||
from Model.model_routes import model_route
|
||||
from Test.TestRoute import test_route
|
||||
from Manage.Company.CompanyRoutes import company_route
|
||||
from Manage.rating.routes import rating_route
|
||||
|
||||
from user.user_routes import user_route
|
||||
from Manage.macro.routes import macro_route
|
||||
from file.file_routes import file_route
|
||||
|
|
Loading…
Reference in New Issue