2022-04-01 16:57:25 +08:00
|
|
|
from DBHelper.MongoHelper import MongoHelper
|
2022-04-18 11:12:47 +08:00
|
|
|
from Manage.Company.CompanyObj import SearchCompanyApi, SearchCompanyResult, CompanyIndexApi
|
2022-01-06 15:28:08 +08:00
|
|
|
|
|
|
|
|
2022-04-18 11:12:47 +08:00
|
|
|
class SearchCompanyApiImpl(SearchCompanyApi):
|
|
|
|
"""企业查询请求接口实现类"""
|
2022-04-01 16:57:25 +08:00
|
|
|
db = MongoHelper("tfse_v0.21")
|
|
|
|
|
|
|
|
def conditions_search(self):
|
|
|
|
""""""
|
2022-01-06 15:28:08 +08:00
|
|
|
|
2022-04-14 03:12:36 +08:00
|
|
|
search_body = self.search.make_search_body()
|
|
|
|
sort = self.sort.make_sort_body()
|
2022-04-02 16:53:26 +08:00
|
|
|
page_size = 10 if self.page_size > 10 else self.page_size
|
2022-04-14 03:12:36 +08:00
|
|
|
page_no = self.page_no
|
2022-04-02 16:53:26 +08:00
|
|
|
|
|
|
|
total = self.db.find_all_data_with_count(
|
|
|
|
"企业数据",
|
|
|
|
"企业数据_更新汇总",
|
|
|
|
search_body
|
|
|
|
)
|
|
|
|
|
|
|
|
records = self.db.find_data_by_page_with_sort(
|
|
|
|
"企业数据",
|
|
|
|
"企业数据_更新汇总",
|
|
|
|
search_body,
|
|
|
|
["企业ID", "企业名称", "一级行业", "综信评价结果.信用等级", "ESG评价结果.评价等级"],
|
|
|
|
sort,
|
|
|
|
page_size,
|
|
|
|
page_no
|
|
|
|
)
|
|
|
|
|
|
|
|
table_data = list()
|
|
|
|
if records:
|
|
|
|
for record in records:
|
2022-04-14 03:12:36 +08:00
|
|
|
company = SearchCompanyResult()
|
2022-04-02 16:53:26 +08:00
|
|
|
company.cid = record['企业ID']
|
|
|
|
company.name = record['企业名称']
|
2022-04-14 03:12:36 +08:00
|
|
|
company.industry = record['一级行业']
|
|
|
|
|
|
|
|
# if record.__contains__('综信评价结果'):
|
|
|
|
try:
|
|
|
|
company.credit_level = record['综信评价结果']['信用等级']
|
|
|
|
# else:
|
|
|
|
except KeyError:
|
|
|
|
company.credit_level = None
|
|
|
|
|
|
|
|
# if record.__contains__('ESG评价结果'):
|
|
|
|
try:
|
|
|
|
company.esg_level = record['ESG评价结果']['评价等级']
|
|
|
|
# else:
|
|
|
|
except KeyError:
|
|
|
|
company.esg_level = None
|
|
|
|
|
|
|
|
data = company.dict_to_show(columns=["企业ID", "企业名称", "一级行业", "信用等级", "ESG等级"])
|
2022-04-02 16:53:26 +08:00
|
|
|
|
|
|
|
table_data.append(data)
|
|
|
|
|
|
|
|
result = {
|
|
|
|
"records": table_data,
|
|
|
|
"total": total
|
|
|
|
}
|
|
|
|
|
|
|
|
return result
|
2022-04-18 11:12:47 +08:00
|
|
|
|
|
|
|
|
|
|
|
class CompanyIndexApiImpl(CompanyIndexApi):
|
|
|
|
"""企业主页接口实现类"""
|
|
|
|
|
|
|
|
db = MongoHelper("tfse_v0.21")
|
|
|
|
|
|
|
|
head_info = CompanyIndexApi.HeadInfo()
|
2022-04-18 12:23:22 +08:00
|
|
|
update_time = CompanyIndexApi.UpdateTime()
|
2022-04-18 17:04:44 +08:00
|
|
|
basic_info = CompanyIndexApi.BasicInfo()
|
2022-04-19 11:14:37 +08:00
|
|
|
financial_data = CompanyIndexApi.FinancialData()
|
2022-04-18 11:12:47 +08:00
|
|
|
operating_risk = CompanyIndexApi
|
|
|
|
financial_analysis = CompanyIndexApi
|
|
|
|
cc_rating = CompanyIndexApi
|
|
|
|
esg_rating = CompanyIndexApi
|
|
|
|
|
|
|
|
def get_head_info(self):
|
|
|
|
"""获取头部信息"""
|
|
|
|
|
|
|
|
self.head_info.email = self.db.find_single_column(
|
|
|
|
"应用端",
|
|
|
|
"企业用户",
|
|
|
|
{"企业ID": self.head_info.cid},
|
|
|
|
"邮箱"
|
|
|
|
)
|
|
|
|
|
|
|
|
result = self.db.find_single_data(
|
|
|
|
"企业数据",
|
|
|
|
"企业数据_更新汇总",
|
|
|
|
{"企业ID": self.head_info.cid},
|
|
|
|
["企业名称", "一级行业"]
|
|
|
|
)
|
|
|
|
|
|
|
|
self.head_info.name = result['企业名称']
|
|
|
|
self.head_info.industry = result['一级行业']
|
2022-04-18 12:23:22 +08:00
|
|
|
|
|
|
|
def get_update_time(self):
|
|
|
|
""""""
|
|
|
|
|
|
|
|
results = self.db.find_all_data_with_single_sort(
|
|
|
|
"企业数据",
|
|
|
|
self.update_time.table_map[self.update_time.table],
|
|
|
|
{"企业ID": self.update_time.cid},
|
|
|
|
["更新日期"],
|
|
|
|
{"更新日期": -1}
|
|
|
|
)
|
|
|
|
|
|
|
|
self.update_time.update_time = [result['更新日期'] for result in results]
|
2022-04-18 17:04:44 +08:00
|
|
|
|
|
|
|
def get_basic_info(self):
|
2022-04-19 09:29:15 +08:00
|
|
|
"""获取基本工商信息"""
|
2022-04-18 17:04:44 +08:00
|
|
|
if self.basic_info.__dict__.__contains__('update_time'):
|
2022-04-19 09:29:15 +08:00
|
|
|
find_body = {"企业ID": self.basic_info.cid, "更新时间.工商信息": self.basic_info.update_time}
|
2022-04-18 17:04:44 +08:00
|
|
|
else:
|
|
|
|
find_body = {"企业ID": self.basic_info.cid}
|
|
|
|
|
|
|
|
result = self.db.find_single_data(
|
|
|
|
"企业数据",
|
|
|
|
"企业数据_更新汇总",
|
|
|
|
find_body,
|
|
|
|
["工商信息", "股东信息", "主要成员"]
|
|
|
|
)
|
|
|
|
|
2022-04-19 09:29:15 +08:00
|
|
|
if not result:
|
|
|
|
result = {'工商信息': {}, "股东信息": {}, "主要成员": {}}
|
|
|
|
|
2022-04-18 17:04:44 +08:00
|
|
|
self.basic_info.business_info = self.dict_to_set(instance=self.basic_info.BusinessInfo, data=result['工商信息'])
|
|
|
|
self.basic_info.share_holder = self.instance_list_to_set(instance_list_type=self.basic_info.ShareHolder, data=result['股东信息'])
|
|
|
|
self.basic_info.main_member = self.instance_list_to_set(instance_list_type=self.basic_info.MainMember, data=result['主要成员'])
|
2022-04-19 11:14:37 +08:00
|
|
|
|
|
|
|
def get_financial_data(self):
|
|
|
|
"""获取财务数据"""
|
|
|
|
result = self.db.find_single_data(
|
|
|
|
"企业数据",
|
|
|
|
"基本财务数据",
|
|
|
|
{"企业ID": self.financial_data.cid, "报告期": self.financial_data.report_date},
|
|
|
|
["报告期", "资产负债表", "利润表", "补充数据表", "财务指标"]
|
|
|
|
)
|
|
|
|
|
|
|
|
if not result:
|
|
|
|
result = {'报告期': None, "资产负债表": {}, "利润表": {}, "补充数据表": {}, "财务指标": {}}
|
|
|
|
|
|
|
|
self.financial_data.report_date = result['报告期']
|
|
|
|
self.financial_data.balance_sheet = self.dict_to_set(instance=self.financial_data.BalanceSheet, data=result['资产负债表'])
|
|
|
|
self.financial_data.profit_sheet = self.dict_to_set(instance=self.financial_data.ProfitSheet, data=result['利润表'])
|
|
|
|
self.financial_data.appendix_data = self.dict_to_set(instance=self.financial_data.AppendixDataSheet, data=result['补充数据表'])
|
|
|
|
self.financial_data.financial_index = self.dict_to_set(instance=self.financial_data.FinancialIndex, data=result['财务指标'])
|