changes 导入接口数据接口/导入指标值接口

This commit is contained in:
P3ngSaM 2022-11-19 20:46:38 +08:00
parent 26c6f90993
commit eef7a962ac
3 changed files with 34 additions and 9 deletions

View File

@ -82,6 +82,6 @@ def save_rating_flow_node(node_id: str, data: dict, db: Session, mongodb: MongoH
return node_item.rating_process_id return node_item.rating_process_id
def get_rating_flow(db, rating_flow_id:str): def get_rating_flow(db, rating_flow_id: str):
item = db.query(RatingFlow).filter_by(id=rating_flow_id).first() item = db.query(RatingFlow).filter_by(id=rating_flow_id).first()
return item return item

View File

@ -5,6 +5,6 @@ from Utils.DataBase.MongoHelperUtils import MongoHelper
def get_rating_node_data(_id: str, db: Session, mongodb: MongoHelper): def get_rating_node_data(_id: str, db: Session, mongodb: MongoHelper):
item = db.query(RatingFlowNode).filter_by(id=id).first() item = db.query(RatingFlowNode).filter_by(id=_id).first()
content = mongodb.find_data_by_id(dbname="打分评级流程", sheet=item.node_name, _id=item.obj_id) content = mongodb.find_data_by_id(dbname="打分评级流程", sheet=item.node_name, _id=item.obj_id)
return content return content

View File

@ -3,6 +3,7 @@ from fastapi import APIRouter, Depends, HTTPException, Header
from sqlalchemy.orm import Session from sqlalchemy.orm import Session
from App.Crud import RatingFlowCrud as Crud, RatingFlowParticipantCrud, RatingFlowNodeCrud from App.Crud import RatingFlowCrud as Crud, RatingFlowParticipantCrud, RatingFlowNodeCrud
from App.Crud.RatingFlowNodeCrud import get_rating_node_data
from App.Schemas import RatingFlowSchema from App.Schemas import RatingFlowSchema
from Utils.AccessControl.AccessUtil import rbac from Utils.AccessControl.AccessUtil import rbac
from Utils.Authentication.TokenUtil import decode_token from Utils.Authentication.TokenUtil import decode_token
@ -140,7 +141,12 @@ def func(rating_flow_id: str, year: int, db: Session = Depends(get_db)):
for cont in content: for cont in content:
insert[cont] = b.get(cont) insert[cont] = b.get(cont)
year_dict[year] = insert year_dict[year] = insert
data_result[table_name] = year_dict break
else:
for cont in content:
insert[cont] = None
year_dict[year] = insert
data_result[table_name] = year_dict
if table_name == '利润表': if table_name == '利润表':
income = result.get('income_sheet_data') income = result.get('income_sheet_data')
for b in income: for b in income:
@ -149,24 +155,43 @@ def func(rating_flow_id: str, year: int, db: Session = Depends(get_db)):
for cont in content: for cont in content:
insert[cont] = b.get(cont) insert[cont] = b.get(cont)
year_dict[year] = insert year_dict[year] = insert
data_result[table_name] = year_dict break
else:
for cont in content:
insert[cont] = None
year_dict[year] = insert
data_result[table_name] = year_dict
if table_name == '现金流量表': if table_name == '现金流量表':
pass cashflow = result.get('cashflow_sheet_data')
for b in cashflow:
insert = dict()
if b.get('截止日期') == item:
for cont in content:
insert[cont] = b.get(cont)
year_dict[year] = insert
break
else:
for cont in content:
insert[cont] = None
year_dict[year] = insert
data_result[table_name] = year_dict
return data_result return data_result
@router.get("/import/index_data", summary="导入定性定量指标", tags=["评级节点"]) @router.get("/import/index_data", summary="导入定性定量指标", tags=["评级节点"])
def func(rating_flow_id: str, db: Session = Depends(get_db)): def func(rating_flow_id: str, db: Session = Depends(get_db), mongodb: MongoHelper = Depends(get_mongodb)):
# 根据评级 # 根据评级
node = Crud.get_rating_flow(db=db, rating_flow_id=rating_flow_id) node = Crud.get_rating_flow(db=db, rating_flow_id=rating_flow_id)
if not node: if not node:
raise HTTPException(status_code=400, detail="RatingFlow Not Found") raise HTTPException(status_code=400, detail="RatingFlow Not Found")
scorecard_id = node.scorecard_id scorecard_id = node.scorecard_id
company_id = node.company_id
year = node.report_date year = node.report_date
# 根据流程节点获取数据表 # 根据流程节点获取数据表
data_sheets = {} item = Crud.get_rating_flow(db, rating_flow_id=rating_flow_id)
id_list = [_item.id for _item in item.nodes if _item.node_name == '填报数据']
_id = id_list[0] if id_list else None
data_sheets = get_rating_node_data(_id, db, mongodb)
# 获取定性定量指标配置表 # 获取定性定量指标配置表
score_card_url = 'http://test.fecribd.com:5004/api/model_store/scorecard/view?_id={}'.format(scorecard_id) score_card_url = 'http://test.fecribd.com:5004/api/model_store/scorecard/view?_id={}'.format(scorecard_id)
@ -215,7 +240,7 @@ def func(rating_flow_id: str, db: Session = Depends(get_db)):
param_dict = dict() param_dict = dict()
param_dict['param'] = param['参数'] param_dict['param'] = param['参数']
# 将year替换成年报期 # 将year替换成年报期
report_date = CommonUtils.date_conversion(year) report_date = CommonUtils.date_conversion(str(year))
y = report_date if param['加载路径'][0] == 'year' else str( y = report_date if param['加载路径'][0] == 'year' else str(
int(report_date[:4]) - int(param['加载路径'][0][-1])) + '00' int(report_date[:4]) - int(param['加载路径'][0][-1])) + '00'
param['加载路径'][0] = y param['加载路径'][0] = y