From eef7a962ac0573e57cdcd0950ccd7399f53275ca Mon Sep 17 00:00:00 2001 From: P3ngSaM <61768364+P3ngSaM@users.noreply.github.com> Date: Sat, 19 Nov 2022 20:46:38 +0800 Subject: [PATCH] =?UTF-8?q?changes=20=E5=AF=BC=E5=85=A5=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=8E=A5=E5=8F=A3/=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E6=8C=87=E6=A0=87=E5=80=BC=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- App/Crud/RatingFlowCrud.py | 2 +- App/Crud/RatingFlowNodeCrud.py | 2 +- App/Router/RatingFlowRouter.py | 39 ++++++++++++++++++++++++++++------ 3 files changed, 34 insertions(+), 9 deletions(-) diff --git a/App/Crud/RatingFlowCrud.py b/App/Crud/RatingFlowCrud.py index 4470d87..c8dfedc 100644 --- a/App/Crud/RatingFlowCrud.py +++ b/App/Crud/RatingFlowCrud.py @@ -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 diff --git a/App/Crud/RatingFlowNodeCrud.py b/App/Crud/RatingFlowNodeCrud.py index 3c73455..a85656e 100644 --- a/App/Crud/RatingFlowNodeCrud.py +++ b/App/Crud/RatingFlowNodeCrud.py @@ -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 diff --git a/App/Router/RatingFlowRouter.py b/App/Router/RatingFlowRouter.py index eb19f3f..e14ae47 100644 --- a/App/Router/RatingFlowRouter.py +++ b/App/Router/RatingFlowRouter.py @@ -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