update 宏观报告上传接口(进度:70%)

This commit is contained in:
彭森 2022-01-13 17:17:36 +08:00
parent 5da3e188bf
commit baba3708ad
4 changed files with 132 additions and 0 deletions

View File

@ -6,6 +6,7 @@ class Rating:
def __init__(self):
self.query = None
self.rid = None
self.industry = None
def search_rating(self, skip, limit):
"""
@ -76,3 +77,7 @@ class Rating:
"""
result = report_create_script(self.rid)
return result
def upload_macroscopic_report(self, file):
result = upload_macroscopic_report_script(self.industry, file)
return result

View File

@ -144,5 +144,77 @@ def find_report_data(rid):
return record
def find_macroscopic_report_data(industry):
"""
查询宏观报告数据
Parameters:
industry: 行业名称
Returns:
record: 报告数据
"""
collection = client['模型']['宏观报告']
data = collection.find({"行业分类": industry}, {'_id': False})
record = list(data)
return record
def insert_macroscopic_report_data(insert_data):
"""
插入宏观报告数据
Parameters:
insert_data: 需要保存的数据
Returns:
result: 保存结果
"""
collection = client['模型']['宏观报告']
res = collection.update_one({"行业分类": insert_data['行业分类']}, {"$set": insert_data}, upsert=True)
info = res.raw_result['updatedExisting']
return info
def update_macroscopic_report_data(industry, fid):
"""
更新宏观报告数据id
Parameters:
industry: 行业分类
fid: 文件id
Returns:
result: 更新结果
"""
collection = client['模型']['宏观报告']
res = collection.update_one({"行业分类": industry}, {"$set": {"报告fid": fid}})
info = res.raw_result['updatedExisting']
return info
def upload_report(industry, files):
"""
根据名称保存该企业报告
"""
try:
database = '模型'
collection = '宏观报告PDF'
fs = GridFS(client[database], collection)
pdf_id = fs.put(data=files, content_type='application/pdf', filename=industry)
return str(pdf_id)
except Exception:
return False
def delete_macroscopic_pdf(fid):
"""
根据id删除宏观报告
Parameters:
fid: 评价ID
Returns:
record: 删除结果
"""
database = '模型'
collection = '宏观报告PDF'
fs = GridFS(client[database], collection)
fs.delete(ObjectId(fid))
if __name__ == '__main__':
delete_report_pdf('61de994660a518e91fbd0192')

View File

@ -130,3 +130,21 @@ def report_edit_save_delete():
return {"info": "键值错误"}, 400
except TypeError:
return {"info": "参数错误"}, 400
@rating_route.route('/upload_macroscopic_report', methods=['POST'])
@api_secret
def upload_report():
"""
根据行业名称上传行业宏观报告
Parameters:
-
Returns:
info: 上传结果
"""
rating = Rating()
rating.industry = request.json['industry']
file = request.files['file']
info = rating.upload_macroscopic_report(file)
status = 200 if info == '上传成功' else 210
return {"info": info}, status

View File

@ -124,3 +124,40 @@ def report_create_script(rid):
if result['info'] == '生成报告成功':
update_evaluation_records(rid, {"报告fid": result['result']['FileID']})
return result
def upload_macroscopic_report_script(industry, file):
"""
根据行业保存PDF宏观报告
Parameters:
industry: 行业名称
file: pdf文件
Returns:
result: 生成结果
"""
def save_report():
"""
保存PDF宏观报告
Parameters:
-
Returns:
result: 生成结果
"""
file_id = upload_report(industry, file)
return file_id
# 保存新宏观报告pdf文件
fid = save_report()
# 根据行业名称查询此行业是否存在宏观报告
macrosc = find_macroscopic_report_data(industry)
if macrosc:
fid = macrosc[0]['报告fid']
if fid:
delete_macroscopic_pdf(fid)
upload_res = update_macroscopic_report_data(industry, fid)
else:
insert_data = dict()
insert_data['行业分类'] = industry
insert_data['报告fid'] = None
save_res = insert_macroscopic_report_data(insert_data)