报告为空设为--

This commit is contained in:
wcq 2023-08-21 17:04:51 +08:00
parent cd6ec47a9e
commit ef61dbe4b7
1 changed files with 61 additions and 1 deletions

View File

@ -1,9 +1,11 @@
import datetime
import json
from pathlib import Path
from urllib.parse import quote
import requests
from fastapi import APIRouter, Depends, HTTPException, Response
from sqlalchemy import func, distinct
from sqlalchemy.orm import Session
from starlette.responses import FileResponse
@ -168,7 +170,7 @@ def get_report(req: schemas.GetReport, db: Session = Depends(common_db.get_db),
token_data: auth_util.tokenDataModel = Depends(auth_util.token_data_depend)
):
data = load_report_need_data(db, req.id)
json.dump(data,open('ttt.json','w',encoding='utf-8'),ensure_ascii=False)
json.dump(data, open('ttt.json', 'w', encoding='utf-8'), ensure_ascii=False)
response = requests.post(f'{conf["rate_utils"]["host"]}/api/report_generation/generation', json.dumps(
data), timeout=15)
# print(response.json())
@ -205,4 +207,62 @@ def get_report(req: schemas.GetReport, db: Session = Depends(common_db.get_db),
raise HTTPException(status_code=404, detail="未找到报告文件,路径不存在")
return FileResponse(Path("./" + file.file_url),
headers={"Content-Disposition": f"attachment; filename={quote(file.file_name)}"})
#########
@router.post("/company_rate/get_dashboard_data", summary="获取看板数据")
def get_dashboard_data(db: Session = Depends(common_db.get_db),
token_data: auth_util.tokenDataModel = Depends(auth_util.token_data_depend)):
企业总数 = db.query(CompanyUser).filter(CompanyUser.verified == True).count()
昨日新增 = db.query(CompanyUser).filter(CompanyUser.verified == True, func.date(
CompanyUser.create_time) == datetime.datetime.now().date()).count()
待处理申请 = db.query(CompanyRate).filter(CompanyRate.man_data.isnot(None),
CompanyRate.mgr_data_state != '已就绪').count()
申请企业数 = db.query((distinct(CompanyRate.company_name))).filter(CompanyRate.man_data.isnot(None),
CompanyRate.mgr_data_state != '已就绪',
).count()
待评级企业 = db.query((distinct(CompanyRate.company_name))).filter(CompanyRate.man_data.isnot(None),
CompanyRate.mgr_data_state != '已就绪').count()
总申请数 = db.query(CompanyRate).filter(CompanyRate.man_data.isnot(None)).count()
待披露企业 = db.query(CompanyRate).filter(CompanyRate.rate_state == '已评级',
CompanyRate.publish_state != '已披露').count()
披露企业数 = db.query(CompanyRate).filter(CompanyRate.publish_state == '已披露').count()
已披露企业评级等级扇形数据 = [[item[0],item[1]] for item in
db.query(CompanyRate.rate_level, func.count(CompanyRate.rate_level)).filter(
CompanyRate.publish_state == '已披露').group_by(
CompanyRate.rate_level).all()]
# 计算七天前的日期
seven_days_ago = datetime.datetime.now() - datetime.timedelta(days=7)
# 查询七天内每天创建的评级申请数量
daily_user_counts = db.query(
func.date(CompanyRate.create_time).label('date'),
func.count(CompanyRate.id).label('count')
).filter(
CompanyRate.create_time >= seven_days_ago
).group_by(
func.date(CompanyRate.create_time)
).order_by(
func.date(CompanyRate.create_time)
).all()
七日评级申请趋势数据 = [[item.date, item.count] for item in daily_user_counts]
data = {
"企业总数": 企业总数,
"昨日新增": 昨日新增,
"待处理申请": 待处理申请,
"申请企业数": 申请企业数,
"待评级企业": 待评级企业,
"总申请数": 总申请数,
"待披露企业": 待披露企业,
"披露企业数": 披露企业数,
"七日评级申请趋势数据": 七日评级申请趋势数据,
"已披露企业评级等级扇形数据": 已披露企业评级等级扇形数据
}
print(data)
return data