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
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()
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):
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)
return content

View File

@ -3,6 +3,7 @@ from fastapi import APIRouter, Depends, HTTPException, Header
from sqlalchemy.orm import Session
from App.Crud import RatingFlowCrud as Crud, RatingFlowParticipantCrud, RatingFlowNodeCrud
from App.Crud.RatingFlowNodeCrud import get_rating_node_data
from App.Schemas import RatingFlowSchema
from Utils.AccessControl.AccessUtil import rbac
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:
insert[cont] = b.get(cont)
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 == '利润表':
income = result.get('income_sheet_data')
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:
insert[cont] = b.get(cont)
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 == '现金流量表':
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
@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)
if not node:
raise HTTPException(status_code=400, detail="RatingFlow Not Found")
scorecard_id = node.scorecard_id
company_id = node.company_id
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)
@ -215,7 +240,7 @@ def func(rating_flow_id: str, db: Session = Depends(get_db)):
param_dict = dict()
param_dict['param'] = param['参数']
# 将year替换成年报期
report_date = CommonUtils.date_conversion(year)
report_date = CommonUtils.date_conversion(str(year))
y = report_date if param['加载路径'][0] == 'year' else str(
int(report_date[:4]) - int(param['加载路径'][0][-1])) + '00'
param['加载路径'][0] = y