update esg包重写
This commit is contained in:
parent
68e9b34b43
commit
be1dbb9da9
|
@ -405,9 +405,9 @@ class RatingImpl(CreditRatingInput, RatingInfo, BusinessQuestionnaire, Financial
|
|||
# 更新完成时间和进行状态
|
||||
self.finish_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
|
||||
self.finish_date = time.strftime("%Y-%m-%d", time.localtime())
|
||||
update_time = self.rating_info_dict_to_save(columns=['评价完成时间', '评价完成日期'])
|
||||
self.status = "完成"
|
||||
update_time = self.rating_info_dict_to_save(columns=['进行状态', '评价完成时间', '评价完成日期'])
|
||||
self.db.update_single_data('企业数据', '评价记录', rid, update_time)
|
||||
self.db.update_single_data("企业数据", "评价记录", rid, {"进行状态": "完成"})
|
||||
|
||||
return "执行成功", 200
|
||||
|
||||
|
|
|
@ -314,7 +314,148 @@ class EsgRatingImpl(RatingInfo, EsgRatingInput, EnvironmentInput, SocietyInput,
|
|||
rid,
|
||||
input_data
|
||||
)
|
||||
update_process_status(rid, {"评价流程.数据填报": 1})
|
||||
update_process_status(rid['评价ID'], {"评价流程.数据填报": 1})
|
||||
|
||||
rating_input()
|
||||
return '保存成功'
|
||||
|
||||
def exec_esg_rating(self):
|
||||
"""提交数据,开始esg评价"""
|
||||
|
||||
def check_rating_record():
|
||||
"""校验评价记录"""
|
||||
self.project = 'ESG评价'
|
||||
self.status = '进行'
|
||||
find = self.rating_info_dict_to_save(columns=['企业ID', '评价项目', '进行状态'])
|
||||
record = self.db.find_single_data(
|
||||
'企业数据',
|
||||
'评价记录',
|
||||
find,
|
||||
['评价ID']
|
||||
)
|
||||
return record
|
||||
|
||||
rid = check_rating_record()
|
||||
if not rid:
|
||||
return "没有正在进行的评价", 200
|
||||
|
||||
self.submit_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
|
||||
update_time = self.rating_info_dict_to_save(columns=['提交填报时间'])
|
||||
self.db.update_single_data('企业数据', '评价记录', rid, update_time)
|
||||
|
||||
def get_rating_data():
|
||||
"""获取打分需要的数据"""
|
||||
input_data = self.db.find_single_data(
|
||||
'ESG评价数据',
|
||||
'填报数据',
|
||||
rid,
|
||||
["评价ID", "企业ID", "企业名称", "评价年度", "所属行业", "公司当年收入(万元)", "环境问卷", "社会问卷", "治理问卷"]
|
||||
)
|
||||
risk_data = self.db.find_single_data(
|
||||
'ESG评价数据',
|
||||
'风险数据',
|
||||
rid,
|
||||
["严重违法", "失信人", "法律诉讼", "税收违法", "经营异常", "行政处罚", "被执行人"]
|
||||
)
|
||||
return {**input_data, **{"风险数据": risk_data}}
|
||||
|
||||
rating_input = get_rating_data()
|
||||
|
||||
def esg_model():
|
||||
"""模型打分"""
|
||||
url = "http://api.fecribd.com/tfse_rating/esg/esg_model"
|
||||
token = "X0gSlC!YE8jmr2jJr&ilcjS83j!tsoh5"
|
||||
headers = {'token': token, "Content-Type": "application/json;charset=UTF-8"}
|
||||
data = json.dumps({"input_data": rating_input})
|
||||
res = requests.post(url, headers=headers, data=data)
|
||||
if res.status_code == 200:
|
||||
update_data = {
|
||||
"评价结果": json.loads(res.text)['result'],
|
||||
}
|
||||
self.db.update_single_data("企业数据", "评价记录", rid, update_data)
|
||||
update_process_status(rid['评价ID'], {"评价流程.模型打分": 1})
|
||||
return True
|
||||
else:
|
||||
update_process_status(rid['评价ID'], {"评价流程.模型打分": -1})
|
||||
return False
|
||||
|
||||
def gen_report():
|
||||
"""报告生成"""
|
||||
url = "http://api.fecribd.com/tfse_rating/report/generate_esg_report"
|
||||
token = "X0gSlC!YE8jmr2jJr&ilcjS83j!tsoh5"
|
||||
headers = {'token': token, "Content-Type": "application/json;charset=UTF-8"}
|
||||
data = {
|
||||
"company": rating_input['企业名称'],
|
||||
"cid": rating_input['企业ID'],
|
||||
"rid": rating_input['评价ID']
|
||||
}
|
||||
res = requests.post(url, headers=headers, data=json.dumps(data))
|
||||
if res.status_code == 200:
|
||||
update_data = {
|
||||
"报告fid": json.loads(res.text)['result']['FileID']
|
||||
}
|
||||
self.db.update_single_data("企业数据", "评价记录", rid, update_data)
|
||||
update_process_status(rid['评价ID'], {"评价流程.报告生成": 1})
|
||||
return True
|
||||
else:
|
||||
update_process_status(rid['评价ID'], {"评价流程.报告生成": -1})
|
||||
return False
|
||||
|
||||
def gen_certified():
|
||||
"""证书生成"""
|
||||
url = "http://api.fecribd.com/tfse_rating/certificate/generate_certificate"
|
||||
token = "X0gSlC!YE8jmr2jJr&ilcjS83j!tsoh5"
|
||||
headers = {'token': token, "Content-Type": "application/json;charset=UTF-8"}
|
||||
data = {
|
||||
"company": rating_input['企业名称'],
|
||||
"cid": rating_input['企业ID'],
|
||||
"rid": rating_input['评价ID'],
|
||||
"type": "esg"
|
||||
}
|
||||
res = requests.post(url, headers=headers, data=json.dumps(data))
|
||||
if res.status_code == 200:
|
||||
update_data = {
|
||||
"证书fid": json.loads(res.text)['result']['FileID']
|
||||
}
|
||||
self.db.update_single_data("企业数据", "评价记录", rid, update_data)
|
||||
update_process_status(rid['评价ID'], {"评价流程.证书生成": 1})
|
||||
return True
|
||||
else:
|
||||
update_process_status(rid['评价ID'], {"评价流程.证书生成": -1})
|
||||
return False
|
||||
|
||||
def esg_index():
|
||||
url = "http://api.fecribd.com/etl_tfse/company/esg_index_etl"
|
||||
token = "dmfd7FshT!5Wng9^gcCcQV7T6FBnVgl4"
|
||||
headers = {'token': token, "Content-Type": "application/json;charset=UTF-8"}
|
||||
data = {
|
||||
"rid": rating_input['评价ID']
|
||||
}
|
||||
res = requests.post(url, headers=headers, data=json.dumps(data))
|
||||
if res.status_code == 200:
|
||||
update_process_status(rid['评价ID'], {"评价流程.主页ESG数据生成": 1})
|
||||
return True
|
||||
else:
|
||||
update_process_status(rid['评价ID'], {"评价流程.主页ESG数据生成": -1})
|
||||
return False
|
||||
|
||||
if not esg_model():
|
||||
return "打分失败", 210
|
||||
|
||||
if not gen_report():
|
||||
return "生成报告失败", 210
|
||||
|
||||
if not gen_certified():
|
||||
return "生成证书失败", 210
|
||||
|
||||
if not esg_index():
|
||||
return "准备主页数据失败", 210
|
||||
|
||||
# 更新完成时间和进行状态
|
||||
self.finish_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
|
||||
self.finish_date = time.strftime("%Y-%m-%d", time.localtime())
|
||||
self.status = "完成"
|
||||
update_time = self.rating_info_dict_to_save(columns=['进行状态', '评价完成时间', '评价完成日期'])
|
||||
self.db.update_single_data('企业数据', '评价记录', rid, update_time)
|
||||
|
||||
return "执行成功", 200
|
|
@ -68,3 +68,23 @@ def save_esg_input_form(**kwargs):
|
|||
except ReturnConditionCheckFailed as e:
|
||||
e.log_error()
|
||||
return {"info": e.__str__()}, e.status_code
|
||||
|
||||
|
||||
@esg_route.route('/submit_esg_rating_input', methods=['GET'])
|
||||
@verify_token
|
||||
def submit_general_rating_input(**kwargs):
|
||||
"""
|
||||
提交填报数据,开始esg评价
|
||||
Parameters:
|
||||
cid 企业ID
|
||||
Returns:
|
||||
res: desc
|
||||
"""
|
||||
try:
|
||||
esg = EsgRatingImpl()
|
||||
esg.cid = kwargs['cid']
|
||||
info, status = esg.exec_esg_rating()
|
||||
return {"info": info}, status
|
||||
except ReturnConditionCheckFailed as e:
|
||||
e.log_error()
|
||||
return {"info": e.__str__()}, e.status_code
|
|
@ -100,4 +100,4 @@ def prepare_risk_data(cid, rid, company_name):
|
|||
data = json.dumps({"company_id": cid, "company_name": company_name, "evaluation_id": rid})
|
||||
requests.post(url, headers=headers, data=data)
|
||||
# 风险数据清洗完成后更新流程状态
|
||||
update_process_status(rid, {"评价流程.清洗风险数据": 1})
|
||||
update_process_status(rid, {"评价流程.清洗风险数据": 1})
|
||||
|
|
Loading…
Reference in New Issue