129 lines
4.8 KiB
Python
129 lines
4.8 KiB
Python
import time
|
|
|
|
import pymongo
|
|
|
|
HOST = "116.63.130.34"
|
|
PASS = "UTlC9cCoglD1cI1*"
|
|
USER = "root"
|
|
PORT = "27021"
|
|
|
|
mongo_client = pymongo.MongoClient('mongodb://{}:{}@{}:{}'.format(USER, PASS, HOST, PORT))
|
|
|
|
|
|
class CompanyData:
|
|
|
|
def __init__(self):
|
|
self.cid = None
|
|
self.name = None
|
|
self.industry_l1 = None
|
|
self.basic_info = {}
|
|
self.share_holders = []
|
|
self.main_members = []
|
|
self.balance_sheet = {}
|
|
self.profit_sheet = {}
|
|
self.income_sheet = {}
|
|
self.appendix_sheet = {}
|
|
self.fin_index = {}
|
|
self.cc_rating_result = {}
|
|
self.esg_rating_result = {}
|
|
self.update_time = {
|
|
"工商信息": None,
|
|
"财务信息": None,
|
|
"综信评价": None,
|
|
"ESG评价": None
|
|
}
|
|
|
|
def dict_to_save(self):
|
|
_dict_ = {
|
|
"企业ID": self.cid,
|
|
"企业名称": self.name,
|
|
"一级行业": self.industry_l1,
|
|
"工商信息": self.basic_info,
|
|
"股东信息": self.share_holders,
|
|
"主要成员": self.main_members,
|
|
"资产负债表": self.balance_sheet,
|
|
"利润表": self.profit_sheet,
|
|
"现金流量表": self.income_sheet,
|
|
"财务补充数据": self.appendix_sheet,
|
|
"财务指标": self.fin_index,
|
|
"综信评价结果": self.cc_rating_result,
|
|
"ESG评价结果": self.esg_rating_result,
|
|
"更新时间": {
|
|
"工商信息": time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()),
|
|
"财务信息": time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()),
|
|
"综信评价": time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()),
|
|
"ESG评价": time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
|
|
}
|
|
}
|
|
|
|
return _dict_
|
|
|
|
|
|
def all_data():
|
|
collection = mongo_client['应用端']['企业用户']
|
|
|
|
col_basic_info = mongo_client['企业数据']['基本工商信息']
|
|
col_fin_data = mongo_client['企业数据']['基本财务数据']
|
|
col_cc_result = mongo_client['综信评价数据']['评价结果']
|
|
col_esg_result = mongo_client['ESG评价数据']['评价结果']
|
|
|
|
records = list(collection.find({}, {'_id': False}))
|
|
|
|
###
|
|
|
|
for data in records:
|
|
company_data = CompanyData()
|
|
cid = data['企业ID']
|
|
basic_info = list(col_basic_info.find({"企业ID": cid}, {'_id': False}))
|
|
fin_info = list(col_fin_data.find({"企业ID": cid}, {'_id': False}).sort('报告期', -1).limit(1))
|
|
cc_result = list(col_cc_result.find({"企业ID": cid}, {'_id': False}))
|
|
esg_result = list(col_esg_result.find({"企业ID": cid}, {'_id': False}))
|
|
|
|
company_data.cid = cid
|
|
company_data.name = data['企业名称']
|
|
company_data.industry_l1 = data['一级行业']
|
|
|
|
if basic_info:
|
|
company_data.basic_info = basic_info[0]['工商信息']
|
|
company_data.share_holders = basic_info[0]['股东信息']
|
|
company_data.main_members = basic_info[0]['主要成员']
|
|
|
|
if fin_info:
|
|
company_data.balance_sheet = fin_info[0]['资产负债表']
|
|
company_data.profit_sheet = fin_info[0]['利润表']
|
|
company_data.income_sheet = {}
|
|
company_data.appendix_sheet = fin_info[0]['补充数据表']
|
|
company_data.fin_index = fin_info[0]['财务指标']
|
|
|
|
if cc_result:
|
|
company_data.cc_rating_result = {
|
|
"评价ID": cc_result[0]["评价ID"],
|
|
"信用等级": cc_result[0]['信用等级'],
|
|
"评价年度": cc_result[0]["评价年度"],
|
|
"信用评分": cc_result[0]['信用评分'],
|
|
"经营评分": cc_result[0]["经营评分"],
|
|
"财务评分": cc_result[0]["财务评分"],
|
|
"风险评分": cc_result[0]["风险评分"],
|
|
"评价时间": cc_result[0]["评价时间"],
|
|
}
|
|
|
|
if esg_result:
|
|
company_data.esg_rating_result = {
|
|
"评价ID": esg_result[0]["评价ID"],
|
|
"评价等级": esg_result[0]['评价等级'],
|
|
"评价年度": esg_result[0]["评价年度"],
|
|
"ESG得分": esg_result[0]['ESG得分'],
|
|
"环境得分": esg_result[0]["环境得分"],
|
|
"社会得分": esg_result[0]["社会得分"],
|
|
"公司治理得分": esg_result[0]["公司治理得分"],
|
|
"评价时间": esg_result[0]["评价时间"],
|
|
}
|
|
|
|
col = mongo_client['企业数据']['企业数据_更新汇总']
|
|
col.update_one({"企业ID": company_data.cid}, {"$set": company_data.dict_to_save()}, upsert=True)
|
|
|
|
###
|
|
|
|
|
|
if __name__ == '__main__':
|
|
all_data() |