import json 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, update_esg_report_data, \ delete_esg_report_pdf, find_esg_report_data def search_rating_script(query, skip, limit): """ 企业评价记录搜索 Parameters: query: 查询条件 skip: 默认0 limit: 查询条数 Returns: result: 结果数据 """ result = find_rating_records(query, skip, limit) new_list = list() for item in result: new_dict = dict() new_dict['企业名称'] = item['企业名称'] del item['企业名称'] item['报告fid'] = '/file/get_company_report?file_id={}'.format(item['报告fid']) item['证书fid'] = '/file/get_certification?file_id={}'.format(item['证书fid']) res = dict(new_dict, **item) new_list.append(res) return new_list def rating_result_script(rid): """ 根据rid查询评价结果 Parameters: rid: 评价ID Returns: result: 结果数据 """ result = find_rating_result_records(rid) return result def fill_detailss_script(rid): """ 根据rid查询评填报详情信息 Parameters: rid: 评价ID Returns: result: 结果数据 """ result = find_fill_details_records(rid) return result def risk_info_script(rid): """ 根据rid查询风险数据 Parameters: rid: 评价ID Returns: result: 结果数据 """ result = find_risk_info_records(rid) return result def report_edit_script(rid, text_model): """ 根据rid编辑报告数据 Parameters: rid: 评价ID text_model: 报告数据 Returns: result: 编辑结果 """ insert_data = dict() insert_data['报告内容'] = text_model result = update_report_data(rid, insert_data) return result def 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_report_pdf(fid) if res: r = update_evaluation_records(rid, {"报告fid": None}) return r else: return res def report_create_script(rid, cid): """ 根据rid查询报告数据并生成PDF报告 Parameters: rid: 评价ID cid: 企业ID Returns: result: 生成结果 """ text_model = dict() text_model['text_model'] = find_report_data(rid)[0] def generate_report(text_data): """ 调用报告生成接口 Parameters: text_data: 报告数据 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(text_data)) return res r = generate_report(text_model) result = r.json() if result['info'] == '生成报告成功': update_evaluation_records(rid, {"报告fid": result['result']['FileID']}) result['result']['FileID'] = '/file/get_company_report?file_id={}'.format(result['result']['FileID']) update_comprehensive_records(cid, {"信用分析.查看报告": result['result']['FileID']}) return result def get_report_text_model_impl(rid): data = FIND_DATA_FILTER("评价", "报告数据", {"评价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_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): """ 查询企业测评流程 Parameters: types str 数据集名称 rid str 评价ID cid str 企业ID Returns: result dict 流程数据 """ process_01 = ['问卷填报', '财务数据填报', '清洗风险数据'] process_02 = ['数据填报', '清洗风险数据'] process_04 = ['综合信用评价主页', '财务要素评价主页', '公司风险分析主页', '分析指标明细主页'] process_05 = ['主页ESG数据生成'] def handle_process(data): """ 综合评价流程 """ result = list() 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_02[k] = v 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 = {"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_02[k] = v 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}) if len(records) > 0: process = records[0]['评价流程'] if types == '综合评价流程': info = handle_process(process) else: info = handle_esg_process(process) 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