This commit is contained in:
P3ngSaM 2023-08-04 15:19:58 +08:00
parent 788c188e0b
commit f48361023a
4 changed files with 29 additions and 27 deletions

View File

View File

@ -82,7 +82,7 @@ async def func(model_name: str = '中小商业企业信用模型', file: UploadF
@router.post("/new_process_file", summary="新建流程文件", tags=["流程文件管理"])
def func(company: str = '远东资信企业执信有限公司', model_name: str = '中小商业企业信用模型',
def func(pid: int = 123456, model_name: str = '中小商业企业信用模型',
mongo_db: MongoHelper = Depends(get_mongodb)):
# 根据模型名称查询该模型是否存在
result = mongo_db.search_data(db='中小商会企业信用评级', col='模型数据', cd={"模型名称": model_name})
@ -92,15 +92,15 @@ def func(company: str = '远东资信企业执信有限公司', model_name: str
file = mongo_db.get_file(db='中小商会企业信用评级', bucket='模型文件', fid=str(fid))
# 保存模型文件流到数据库
file_id = mongo_db.insert_file(db='中小商会企业信用评级', bucket='流程文件', file=file, filename=company)
mongo_db.insert_data(db='中小商会企业信用评级', col='流程数据', data={"企业名称": company, "模型ID": file_id})
file_id = mongo_db.insert_file(db='中小商会企业信用评级', bucket='流程文件', file=file, filename=pid)
mongo_db.insert_data(db='中小商会企业信用评级', col='流程数据', data={"流程ID": pid, "模型ID": file_id})
return {"message": "流程文件新建成功", "file_id": str(file_id)}
@router.post("/delete_process_file", summary="删除流程文件", tags=["流程文件管理"])
def func(company: str = '远东资信企业执信有限公司', mongo_db: MongoHelper = Depends(get_mongodb)):
def func(pid: int = 123456, mongo_db: MongoHelper = Depends(get_mongodb)):
# 根据processid查询对应fid
result = mongo_db.search_data(db='中小商会企业信用评级', col='流程数据', cd={"企业名称": company})
result = mongo_db.search_data(db='中小商会企业信用评级', col='流程数据', cd={"流程ID": pid})
if not result:
raise HTTPException(status_code=404, detail="模型不存在")
fid = result.get('模型ID')
@ -108,7 +108,7 @@ def func(company: str = '远东资信企业执信有限公司', mongo_db: MongoH
# 删除Gridfs数据
mongo_db.delete_file(db='中小商会企业信用评级', bucket='流程文件', fid=str(fid))
# 删除数据表对应条目
mongo_db.delete_data(db='中小商会企业信用评级', col='流程数据', cd={"企业名称": company})
mongo_db.delete_data(db='中小商会企业信用评级', col='流程数据', cd={"流程ID": pid})
return {"message": "删除成功"}
@ -141,21 +141,20 @@ async def func(model_name: str = '中小商业企业信用模型', mongo_db: Mon
@router.post("/upload_questionnaire", summary="模型问卷上传", tags=["问卷管理"])
async def func(background_tasks: BackgroundTasks, company: str = '远东资信企业执信有限公司',
file: UploadFile = File(...),
async def func(background_tasks: BackgroundTasks, pid: int = 123456, file: UploadFile = File(...),
mongo_db: MongoHelper = Depends(get_mongodb)):
# 将上传的问卷文件保存到本地
temp_file = os.path.join(os.getcwd(), 'Utils', 'File', 'generate', '{}填报问卷.xlsx'.format(company))
temp_file = os.path.join(os.getcwd(), 'Utils', 'File', 'generate', '{}填报问卷.xlsx'.format(pid))
with open(temp_file, "wb") as buffer:
buffer.write(await file.read())
# 数据库excel
result = mongo_db.search_data(db='中小商会企业信用评级', col='流程数据', cd={"企业名称": company})
result = mongo_db.search_data(db='中小商会企业信用评级', col='流程数据', cd={"流程ID": pid})
if not result:
raise HTTPException(status_code=404, detail="流程不存在")
fid = result.get('模型ID')
file = mongo_db.get_file(db='中小商会企业信用评级', bucket='流程文件', fid=str(fid))
file_name = "{}.xlsx".format(company)
file_name = "{}.xlsx".format(pid)
path = os.path.join(os.getcwd(), 'Utils', 'File', 'generate', file_name)
myfile = open(path, mode='wb')
myfile.write(file)
@ -180,8 +179,8 @@ async def func(background_tasks: BackgroundTasks, company: str = '远东资信
# 存储新文件返回fid再根据name进行更新
with open(path, 'rb') as f:
file_id = mongo_db.insert_file(db='中小商会企业信用评级', bucket='流程文件', file=f.read(), filename=company)
mongo_db.update_data(db='中小商会企业信用评级', col="流程数据", cd={"企业名称": company}, ud={"模型ID": file_id})
file_id = mongo_db.insert_file(db='中小商会企业信用评级', bucket='流程文件', file=f.read(), filename=pid)
mongo_db.update_data(db='中小商会企业信用评级', col="流程数据", cd={"流程ID": pid}, ud={"模型ID": file_id})
background_tasks.add_task(del_files, [path, temp_file])
@ -250,14 +249,14 @@ async def func(background_tasks: BackgroundTasks, model_name: str = '中小商
@router.post("/upload_reference_data", summary="提交背调数据", tags=["问卷管理"])
async def func(background_tasks: BackgroundTasks, schemas: ModelSchemas.ReferencDataBody,
mongo_db: MongoHelper = Depends(get_mongodb)):
company = schemas.company
pid = schemas.pid
refrerence_data = schemas.referenc_data
result = mongo_db.search_data(db='中小商会企业信用评级', col='流程数据', cd={"企业名称": company})
result = mongo_db.search_data(db='中小商会企业信用评级', col='流程数据', cd={"流程ID": pid})
if not result:
raise HTTPException(status_code=404, detail="流程不存在")
fid = result.get('模型ID')
file = mongo_db.get_file(db='中小商会企业信用评级', bucket='流程文件', fid=str(fid))
file_name = "{}.xlsx".format(company)
file_name = "{}.xlsx".format(pid)
path = os.path.join(os.getcwd(), 'Utils', 'File', 'generate', file_name)
myfile = open(path, mode='wb')
myfile.write(file)
@ -289,8 +288,8 @@ async def func(background_tasks: BackgroundTasks, schemas: ModelSchemas.Referenc
# 存储新文件返回fid再根据name进行更新
with open(path, 'rb') as f:
file_id = mongo_db.insert_file(db='中小商会企业信用评级', bucket='流程文件', file=f.read(), filename=company)
mongo_db.update_data(db='中小商会企业信用评级', col="流程数据", cd={"企业名称": company}, ud={"模型ID": file_id})
file_id = mongo_db.insert_file(db='中小商会企业信用评级', bucket='流程文件', file=f.read(), filename=pid)
mongo_db.update_data(db='中小商会企业信用评级', col="流程数据", cd={"流程ID": pid}, ud={"模型ID": file_id})
background_tasks.add_task(del_file, path)
@ -298,8 +297,8 @@ async def func(background_tasks: BackgroundTasks, schemas: ModelSchemas.Referenc
@router.post("/questionnaire_data", summary="查看问卷数据", tags=["问卷管理"])
async def func(company: str = '远东资信企业执信有限公司', mongo_db: MongoHelper = Depends(get_mongodb)):
result = mongo_db.search_data(db='中小商会企业信用评级', col='流程数据', cd={"企业名称": company})
async def func(pid: int = 123456, mongo_db: MongoHelper = Depends(get_mongodb)):
result = mongo_db.search_data(db='中小商会企业信用评级', col='流程数据', cd={"流程ID": pid})
if not result:
raise HTTPException(status_code=404, detail="流程不存在")
fid = result.get('模型ID')
@ -364,8 +363,8 @@ async def func(company: str = '远东资信企业执信有限公司', mongo_db:
@router.post("/reference_data", summary="查看背调数据", tags=["问卷管理"])
async def func(company: str = '远东资信企业执信有限公司', mongo_db: MongoHelper = Depends(get_mongodb)):
result = mongo_db.search_data(db='中小商会企业信用评级', col='流程数据', cd={"企业名称": company})
async def func(pid: int = 123456, mongo_db: MongoHelper = Depends(get_mongodb)):
result = mongo_db.search_data(db='中小商会企业信用评级', col='流程数据', cd={"流程ID": pid})
if not result:
raise HTTPException(status_code=404, detail="流程不存在")
fid = result.get('模型ID')
@ -384,9 +383,9 @@ async def func(company: str = '远东资信企业执信有限公司', mongo_db:
@router.post("/score_result", summary="评级结果", tags=["评级结果"])
async def func(background_tasks: BackgroundTasks, company: str = '远东资信企业执信有限公司',
async def func(background_tasks: BackgroundTasks, pid: int = 123456,
mongo_db: MongoHelper = Depends(get_mongodb)):
result = mongo_db.search_data(db='中小商会企业信用评级', col='流程数据', cd={"企业名称": company})
result = mongo_db.search_data(db='中小商会企业信用评级', col='流程数据', cd={"流程ID": pid})
if not result:
raise HTTPException(status_code=404, detail="流程不存在")
fid = result.get('模型ID')
@ -423,7 +422,7 @@ async def func(background_tasks: BackgroundTasks, company: str = '远东资信
rating_result = {
"级别": sheet_01.cell(43, 6).value,
"总分": sheet_01.cell(43, 9).value
"总分": round(sheet_01.cell(43, 9).value, 2)
}
background_tasks.add_task(del_file, file_path)

View File

@ -3,5 +3,5 @@ from pydantic import BaseModel
class ReferencDataBody(BaseModel):
company: str = "远东资信企业执信有限公司"
pid: int = 123456
referenc_data: list = []

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
import uvicorn
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
@ -20,3 +20,6 @@ app.add_middleware(
app.include_router(ModelRouter.router)
app.include_router(ReportRouter.router)
if __name__ == '__main__':
uvicorn.run(app, host="0.0.0.0", port=8010)