update ESG报告管理端相关接口
This commit is contained in:
parent
c8bd39ba4f
commit
2a79dfc839
|
@ -1,6 +1,7 @@
|
|||
from Manage.rating.scripts import rating_result_script, search_rating_script, fill_detailss_script, risk_info_script, \
|
||||
report_edit_script, report_delete_script, report_create_script, get_report_text_model_impl, \
|
||||
get_company_process_script
|
||||
get_company_process_script, search_esg_rating_result_script, fill_esg_details_script, esg_risk_info_script, \
|
||||
get_esg_report_text_impl, esg_report_edit_script, esg_report_delete_script, esg_report_create_script
|
||||
|
||||
|
||||
class Rating:
|
||||
|
@ -95,3 +96,67 @@ class Rating:
|
|||
data = get_company_process_script(self.types, self.rid, self.cid)
|
||||
return data
|
||||
|
||||
def search_esg_rating_result(self):
|
||||
"""
|
||||
查询ESG评价结果
|
||||
Parameters:
|
||||
-
|
||||
Returns:
|
||||
result: 查询结果
|
||||
"""
|
||||
result = search_esg_rating_result_script(self.rid)
|
||||
return result
|
||||
|
||||
def search_esg_fill_details(self):
|
||||
"""
|
||||
查看ESG填报详情信息
|
||||
Parameters:
|
||||
-
|
||||
Returns:
|
||||
result: 查询结果
|
||||
"""
|
||||
result = fill_esg_details_script(self.rid)
|
||||
return result
|
||||
|
||||
def search_esg_risk_info(self):
|
||||
"""
|
||||
查看风险数据信息
|
||||
Parameters:
|
||||
-
|
||||
Returns:
|
||||
result: 查询结果
|
||||
"""
|
||||
result = esg_risk_info_script(self.rid)
|
||||
return result
|
||||
|
||||
def get_esg_report_text(self):
|
||||
"""
|
||||
获取报告text_model
|
||||
"""
|
||||
return get_esg_report_text_impl(self.rid)
|
||||
|
||||
def esg_report_edit(self, text_model):
|
||||
"""
|
||||
编辑报告数据
|
||||
Parameters:
|
||||
text_model: 报告数据
|
||||
Returns:
|
||||
result: 编辑结果
|
||||
"""
|
||||
result = esg_report_edit_script(self.rid, text_model)
|
||||
return result
|
||||
|
||||
def esg_report_delete(self):
|
||||
result = esg_report_delete_script(self.rid)
|
||||
return result
|
||||
|
||||
def esg_report_create(self):
|
||||
"""
|
||||
报告生成
|
||||
Parameters:
|
||||
-
|
||||
Returns:
|
||||
result: 生成结果
|
||||
"""
|
||||
result = esg_report_create_script(self.rid, self.cid)
|
||||
return result
|
||||
|
|
|
@ -120,6 +120,21 @@ def delete_report_pdf(fid):
|
|||
return True
|
||||
|
||||
|
||||
def delete_esg_report_pdf(fid):
|
||||
"""
|
||||
更新评价数据
|
||||
Parameters:
|
||||
fid: 评价ID
|
||||
Returns:
|
||||
record: 删除结果
|
||||
"""
|
||||
database = '评价'
|
||||
collection = 'esg报告'
|
||||
fs = GridFS(client[database], collection)
|
||||
fs.delete(ObjectId(fid))
|
||||
return True
|
||||
|
||||
|
||||
def find_risk_info_records(rid):
|
||||
"""
|
||||
查询风险数据信息
|
||||
|
@ -149,6 +164,21 @@ def update_report_data(rid, data):
|
|||
return info
|
||||
|
||||
|
||||
def update_esg_report_data(rid, data):
|
||||
"""
|
||||
更新ESG报告数据
|
||||
Parameters:
|
||||
rid: 评价ID
|
||||
data: 报告数据
|
||||
Returns:
|
||||
record: 更新结果
|
||||
"""
|
||||
collection = client['评价']['ESG报告数据']
|
||||
res = collection.update_one({"评价ID": rid}, {"$set": data})
|
||||
info = res.raw_result['updatedExisting']
|
||||
return info
|
||||
|
||||
|
||||
def find_report_data(rid):
|
||||
"""
|
||||
查询报告数据
|
||||
|
@ -163,6 +193,20 @@ def find_report_data(rid):
|
|||
return record
|
||||
|
||||
|
||||
def find_esg_report_data(rid):
|
||||
"""
|
||||
查询报告数据
|
||||
Parameters:
|
||||
rid: 评价ID
|
||||
Returns:
|
||||
record: 报告数据
|
||||
"""
|
||||
collection = client['评价']['ESG报告数据']
|
||||
data = collection.find({"评价ID": rid}, {'_id': False})
|
||||
record = list(data)
|
||||
return record
|
||||
|
||||
|
||||
def FIND_DATA_FILTER(param1, param2, param3, param4):
|
||||
"""
|
||||
查询数据
|
||||
|
|
|
@ -164,3 +164,124 @@ def get_company_process():
|
|||
info = rating.get_company_process()
|
||||
status = 200 if info else 210
|
||||
return {"info": info}, status
|
||||
|
||||
|
||||
@rating_route.route('/esg_rating_result', methods=['POST'])
|
||||
@api_secret
|
||||
def esg_rating_result():
|
||||
"""
|
||||
查询esg评价结果
|
||||
Parameters:
|
||||
-
|
||||
Returns:
|
||||
info: 返回信息
|
||||
result: 返回数据
|
||||
"""
|
||||
try:
|
||||
rating = Rating()
|
||||
rating.rid = request.json['rid']
|
||||
data = rating.search_esg_rating_result()
|
||||
return {"info": '查询成功', "result": data}, 200
|
||||
except KeyError:
|
||||
return {"info": "键值错误"}, 400
|
||||
except TypeError:
|
||||
return {"info": "参数错误"}, 400
|
||||
|
||||
|
||||
@rating_route.route('/esg_details', methods=['POST'])
|
||||
@api_secret
|
||||
def esg_fill_details():
|
||||
"""
|
||||
查看ESG填报详情信息
|
||||
Parameters:
|
||||
-
|
||||
Returns:
|
||||
info: 返回信息
|
||||
result: 返回数据
|
||||
"""
|
||||
try:
|
||||
rating = Rating()
|
||||
rating.rid = request.json['rid']
|
||||
data = rating.search_esg_fill_details()
|
||||
return {"info": '查询成功', "result": data}, 200
|
||||
except KeyError:
|
||||
return {"info": "键值错误"}, 400
|
||||
except TypeError:
|
||||
return {"info": "参数错误"}, 400
|
||||
|
||||
|
||||
@rating_route.route('/esg_risk', methods=['POST'])
|
||||
@api_secret
|
||||
def esg_risk_info():
|
||||
"""
|
||||
查看ESG风险数据信息
|
||||
Parameters:
|
||||
-
|
||||
Returns:
|
||||
info: 返回信息
|
||||
result: 返回数据
|
||||
"""
|
||||
try:
|
||||
rating = Rating()
|
||||
rating.rid = request.json['rid']
|
||||
data = rating.search_esg_risk_info()
|
||||
return {"info": '查询成功', "result": data}, 200
|
||||
except KeyError:
|
||||
return {"info": "键值错误"}, 400
|
||||
except TypeError:
|
||||
return {"info": "参数错误"}, 400
|
||||
|
||||
|
||||
@rating_route.route('/get_esg_report_text', methods=['POST'])
|
||||
@api_secret
|
||||
def get_esg_report_text_route(**kwargs):
|
||||
"""
|
||||
查看ESG报告text_model
|
||||
"""
|
||||
rating = Rating()
|
||||
rating.rid = request.json['rid']
|
||||
result = rating.get_esg_report_text()
|
||||
return {"info": "查询成功", "result": result}, 200
|
||||
|
||||
|
||||
@rating_route.route('/esg_report_edit_save_delete', methods=['POST'])
|
||||
@api_secret
|
||||
def esg_report_edit_save_delete(**kwargs):
|
||||
"""
|
||||
ESG报告编辑、保存、删除操作
|
||||
Parameters:
|
||||
-
|
||||
Returns:
|
||||
info: 生成结果
|
||||
"""
|
||||
try:
|
||||
def edit():
|
||||
info = rating.esg_report_edit(text_model)
|
||||
return info
|
||||
|
||||
def delete():
|
||||
info = rating.esg_report_delete()
|
||||
return info
|
||||
|
||||
def create():
|
||||
info = rating.esg_report_create()
|
||||
return info
|
||||
|
||||
rating = Rating()
|
||||
rating.rid = request.json['rid']
|
||||
rating.cid = request.json['cid']
|
||||
text_model = request.json['text_model']
|
||||
step_01 = edit()
|
||||
if step_01:
|
||||
step_02 = delete()
|
||||
if step_02:
|
||||
step_03 = create()
|
||||
return step_03
|
||||
else:
|
||||
return {"info": "删除失败"}
|
||||
else:
|
||||
return {"info": "此公司不存在报告数据"}
|
||||
except KeyError:
|
||||
return {"info": "键值错误"}, 400
|
||||
except TypeError:
|
||||
return {"info": "参数错误"}, 400
|
|
@ -3,7 +3,8 @@ import requests
|
|||
|
||||
from Manage.rating.db import find_rating_records, find_rating_result_records, find_fill_details_records, \
|
||||
find_risk_info_records, update_report_data, find_evaluation_records, delete_report_pdf, update_evaluation_records, \
|
||||
find_report_data, update_comprehensive_records, FIND_DATA_FILTER, find_data
|
||||
find_report_data, update_comprehensive_records, FIND_DATA_FILTER, find_data, update_esg_report_data, \
|
||||
delete_esg_report_pdf, find_esg_report_data
|
||||
|
||||
|
||||
def search_rating_script(query, skip, limit):
|
||||
|
@ -148,6 +149,21 @@ def get_report_text_model_impl(rid):
|
|||
return data
|
||||
|
||||
|
||||
def get_esg_report_text_impl(rid):
|
||||
data = FIND_DATA_FILTER("评价", "ESG报告数据", {"评价ID": rid}, {"企业ID": 1, "报告内容": 1})
|
||||
|
||||
if not data:
|
||||
return {}
|
||||
else:
|
||||
data = data[0]
|
||||
|
||||
data['cid'] = data['企业ID']
|
||||
data['text_model'] = data['报告内容']
|
||||
data.pop('企业ID')
|
||||
data.pop('报告内容')
|
||||
return data
|
||||
|
||||
|
||||
def get_company_process_script(types, rid, cid):
|
||||
"""
|
||||
查询企业测评流程
|
||||
|
@ -160,7 +176,6 @@ def get_company_process_script(types, rid, cid):
|
|||
"""
|
||||
process_01 = ['问卷填报', '财务数据填报', '清洗风险数据']
|
||||
process_02 = ['数据填报', '清洗风险数据']
|
||||
process_03 = ['模型打分', '报告生成', '证书生成']
|
||||
process_04 = ['综合信用评价主页', '财务要素评价主页', '公司风险分析主页', '分析指标明细主页']
|
||||
process_05 = ['主页ESG数据生成']
|
||||
|
||||
|
@ -169,39 +184,59 @@ def get_company_process_script(types, rid, cid):
|
|||
综合评价流程
|
||||
"""
|
||||
result = list()
|
||||
insert_01 = dict()
|
||||
insert_01 = {"综合评价流程": 1}
|
||||
insert_02 = dict()
|
||||
insert_03 = dict()
|
||||
insert_04 = dict()
|
||||
insert_05 = dict()
|
||||
insert_06 = dict()
|
||||
for k, v in data.items():
|
||||
if k in process_01:
|
||||
insert_01[k] = v
|
||||
elif k in process_03:
|
||||
insert_02[k] = v
|
||||
elif k in process_04:
|
||||
elif k == '模型打分':
|
||||
insert_03[k] = v
|
||||
elif k == '报告生成':
|
||||
insert_04[k] = v
|
||||
elif k == '证书生成':
|
||||
insert_05[k] = v
|
||||
elif k in process_04:
|
||||
insert_06[k] = v
|
||||
result.append(insert_01)
|
||||
result.append(insert_02)
|
||||
result.append(insert_03)
|
||||
result.append(insert_04)
|
||||
result.append(insert_05)
|
||||
result.append(insert_06)
|
||||
return result
|
||||
|
||||
def handle_esg_process(data):
|
||||
"""
|
||||
综合评价流程
|
||||
esg评价流程
|
||||
"""
|
||||
result = list()
|
||||
insert_01 = dict()
|
||||
insert_01 = {"ESG评价流程": 1}
|
||||
insert_02 = dict()
|
||||
insert_03 = dict()
|
||||
insert_04 = dict()
|
||||
insert_05 = dict()
|
||||
insert_06 = dict()
|
||||
for k, v in data.items():
|
||||
if k in process_02:
|
||||
insert_01[k] = v
|
||||
elif k in process_03:
|
||||
insert_02[k] = v
|
||||
elif k in process_05:
|
||||
elif k == '模型打分':
|
||||
insert_03[k] = v
|
||||
elif k == '报告生成':
|
||||
insert_04[k] = v
|
||||
elif k == '证书生成':
|
||||
insert_05[k] = v
|
||||
elif k == '主页ESG数据生成':
|
||||
insert_06[k] = v
|
||||
result.append(insert_01)
|
||||
result.append(insert_02)
|
||||
result.append(insert_03)
|
||||
result.append(insert_04)
|
||||
result.append(insert_05)
|
||||
result.append(insert_06)
|
||||
return result
|
||||
|
||||
records = find_data("评价", types, {"评价ID": rid, "企业ID": cid})
|
||||
|
@ -215,3 +250,113 @@ def get_company_process_script(types, rid, cid):
|
|||
return info
|
||||
else:
|
||||
return {}
|
||||
|
||||
|
||||
def search_esg_rating_result_script(rid):
|
||||
"""
|
||||
根据rid查询ESG评价结果
|
||||
Parameters:
|
||||
rid: 评价ID
|
||||
Returns:
|
||||
result: 结果数据
|
||||
"""
|
||||
result = find_data("评价", "ESG评价结果", {"评价ID": rid})
|
||||
return result
|
||||
|
||||
|
||||
def fill_esg_details_script(rid):
|
||||
"""
|
||||
根据rid查询esg评填报详情信息
|
||||
Parameters:
|
||||
rid: 评价ID
|
||||
Returns:
|
||||
result: 结果数据
|
||||
"""
|
||||
result = find_data("评价", "ESG评价填报", {"评价ID": rid})
|
||||
return result
|
||||
|
||||
|
||||
def esg_risk_info_script(rid):
|
||||
"""
|
||||
根据rid查询esg风险信息
|
||||
Parameters:
|
||||
rid: 评价ID
|
||||
Returns:
|
||||
result: 结果数据
|
||||
"""
|
||||
result = find_data("评价", "ESG风险数据", {"评价ID": rid})
|
||||
return result
|
||||
|
||||
|
||||
def esg_report_edit_script(rid, text_model):
|
||||
"""
|
||||
根据rid编辑报告数据
|
||||
Parameters:
|
||||
rid: 评价ID
|
||||
text_model: 报告数据
|
||||
Returns:
|
||||
result: 编辑结果
|
||||
"""
|
||||
insert_data = dict()
|
||||
insert_data['报告内容'] = text_model
|
||||
result = update_esg_report_data(rid, insert_data)
|
||||
return result
|
||||
|
||||
|
||||
def esg_report_delete_script(rid):
|
||||
"""
|
||||
根据rid删除报告相关数据数据
|
||||
Parameters:
|
||||
rid: 评价ID
|
||||
Returns:
|
||||
result: 删除结果
|
||||
"""
|
||||
data = find_evaluation_records(rid)
|
||||
# 判断是否存在这条评价记录
|
||||
if len(data) == 0:
|
||||
return False
|
||||
else:
|
||||
eval_data = data[0]
|
||||
if eval_data['报告fid']:
|
||||
fid = eval_data['报告fid']
|
||||
res = delete_esg_report_pdf(fid)
|
||||
if res:
|
||||
r = update_evaluation_records(rid, {"报告fid": None})
|
||||
return r
|
||||
else:
|
||||
return res
|
||||
|
||||
|
||||
def esg_report_create_script(rid, cid):
|
||||
"""
|
||||
根据rid查询报告数据并生成PDF报告
|
||||
Parameters:
|
||||
rid: 评价ID
|
||||
cid: 企业ID
|
||||
Returns:
|
||||
result: 生成结果
|
||||
"""
|
||||
text_model = dict()
|
||||
text_model['company'] = find_esg_report_data(rid)[0]['企业名称']
|
||||
text_model['cid'] = cid
|
||||
text_model['rid'] = rid
|
||||
|
||||
def generate_report(text_data):
|
||||
"""
|
||||
调用报告生成接口
|
||||
Parameters:
|
||||
text_data: 报告数据
|
||||
Returns:
|
||||
result: type 生成结果
|
||||
"""
|
||||
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'}
|
||||
res = requests.post(url, headers=headers, data=json.dumps(text_data))
|
||||
return res
|
||||
|
||||
r = generate_report(text_model)
|
||||
result = r.json()
|
||||
if result['info'] == '生成报告成功':
|
||||
update_evaluation_records(rid, {"报告fid": result['result']['FileID']})
|
||||
return result
|
||||
|
|
Loading…
Reference in New Issue