commit
e208037f9b
|
@ -6,6 +6,7 @@ class Rating:
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.query = None
|
self.query = None
|
||||||
self.rid = None
|
self.rid = None
|
||||||
|
self.industry = None
|
||||||
|
|
||||||
def search_rating(self, skip, limit):
|
def search_rating(self, skip, limit):
|
||||||
"""
|
"""
|
||||||
|
@ -76,3 +77,7 @@ class Rating:
|
||||||
"""
|
"""
|
||||||
result = report_create_script(self.rid)
|
result = report_create_script(self.rid)
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
def upload_macroscopic_report(self, file):
|
||||||
|
result = upload_macroscopic_report_script(self.industry, file)
|
||||||
|
return result
|
||||||
|
|
71
rating/db.py
71
rating/db.py
|
@ -144,5 +144,76 @@ def find_report_data(rid):
|
||||||
return record
|
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.insert_one(insert_data)
|
||||||
|
info = res.acknowledged
|
||||||
|
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(file_name, files):
|
||||||
|
"""
|
||||||
|
根据名称保存该企业报告
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
database = '宏观'
|
||||||
|
collection = '宏观报告PDF'
|
||||||
|
fs = GridFS(client[database], collection)
|
||||||
|
pdf_id = fs.put(data=files.read(), content_type='application/pdf', filename=file_name)
|
||||||
|
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__':
|
if __name__ == '__main__':
|
||||||
delete_report_pdf('61de994660a518e91fbd0192')
|
delete_report_pdf('61de994660a518e91fbd0192')
|
|
@ -130,3 +130,28 @@ def report_edit_save_delete():
|
||||||
return {"info": "键值错误"}, 400
|
return {"info": "键值错误"}, 400
|
||||||
except TypeError:
|
except TypeError:
|
||||||
return {"info": "参数错误"}, 400
|
return {"info": "参数错误"}, 400
|
||||||
|
|
||||||
|
|
||||||
|
@rating_route.route('/upload_macroscopic_report', methods=['POST'])
|
||||||
|
@api_secret
|
||||||
|
def upload_report():
|
||||||
|
"""
|
||||||
|
根据行业名称上传行业宏观报告
|
||||||
|
Parameters:
|
||||||
|
-
|
||||||
|
Returns:
|
||||||
|
info: 上传结果
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
rating = Rating()
|
||||||
|
rating.industry = request.form['industry']
|
||||||
|
file = request.files['file']
|
||||||
|
result = rating.upload_macroscopic_report(file)
|
||||||
|
if result:
|
||||||
|
return {"info": "上传成功", "result": {"报告fid": result}}, 200
|
||||||
|
else:
|
||||||
|
return {"info": "上传失败"}, 210
|
||||||
|
except KeyError:
|
||||||
|
return {"info": "键值错误"}, 400
|
||||||
|
except TypeError:
|
||||||
|
return {"info": "参数错误"}, 400
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
import datetime
|
||||||
import json
|
import json
|
||||||
|
|
||||||
import requests
|
import requests
|
||||||
|
@ -124,3 +125,49 @@ def report_create_script(rid):
|
||||||
if result['info'] == '生成报告成功':
|
if result['info'] == '生成报告成功':
|
||||||
update_evaluation_records(rid, {"报告fid": result['result']['FileID']})
|
update_evaluation_records(rid, {"报告fid": result['result']['FileID']})
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
||||||
|
def upload_macroscopic_report_script(industry, file):
|
||||||
|
"""
|
||||||
|
根据行业保存PDF宏观报告
|
||||||
|
Parameters:
|
||||||
|
industry: 行业名称
|
||||||
|
file: pdf文件
|
||||||
|
Returns:
|
||||||
|
result: 生成结果
|
||||||
|
"""
|
||||||
|
|
||||||
|
def save_report():
|
||||||
|
"""
|
||||||
|
保存PDF宏观报告
|
||||||
|
Parameters:
|
||||||
|
-
|
||||||
|
Returns:
|
||||||
|
result: 生成结果
|
||||||
|
"""
|
||||||
|
file_name = '{}_{}'.format(industry, datetime.datetime.now().strftime('%Y%m'))
|
||||||
|
file_id = upload_report(file_name, file)
|
||||||
|
return file_id
|
||||||
|
|
||||||
|
# 保存新宏观报告pdf文件
|
||||||
|
new_fid = save_report()
|
||||||
|
# 根据行业名称查询此行业是否存在宏观报告
|
||||||
|
macrosc = find_macroscopic_report_data(industry)
|
||||||
|
if macrosc:
|
||||||
|
# 使用新fid更新此条数据
|
||||||
|
upload_res = update_macroscopic_report_data(industry, new_fid)
|
||||||
|
if upload_res:
|
||||||
|
return new_fid
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
else:
|
||||||
|
# 不存在此条数据,就插入一条新数据
|
||||||
|
insert_data = dict()
|
||||||
|
insert_data['行业分类'] = industry
|
||||||
|
insert_data['报告fid'] = new_fid
|
||||||
|
save_res = insert_macroscopic_report_data(insert_data)
|
||||||
|
if save_res:
|
||||||
|
return new_fid
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue