From 1526fecd149b9e1cb6e978eef41c7bf7ef652659 Mon Sep 17 00:00:00 2001 From: P3ngSaM <61768364+P3ngSaM@users.noreply.github.com> Date: Tue, 22 Nov 2022 09:51:15 +0800 Subject: [PATCH] =?UTF-8?q?changes=20=E5=AF=BC=E5=85=A5=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- App/Router/RatingFlowRouter.py | 40 +++++++++++++++++++++------------- 1 file changed, 25 insertions(+), 15 deletions(-) diff --git a/App/Router/RatingFlowRouter.py b/App/Router/RatingFlowRouter.py index 4369e1d..a630f04 100644 --- a/App/Router/RatingFlowRouter.py +++ b/App/Router/RatingFlowRouter.py @@ -438,7 +438,7 @@ def func(rating_flow_id: str, db: Session = Depends(get_db), mongodb: MongoHelpe @router.get("/import/adjust_factors", 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)): # 获取流程; rf_item: 流程对象 rf_item = Crud.get_rating_flow(db=db, rating_flow_id=rating_flow_id) if not rf_item: @@ -456,6 +456,7 @@ def func(rating_flow_id: str, db: Session = Depends(get_db)): adjust_data = rank_table.get('评级调整') if not adjust_data: raise HTTPException(status_code=404, detail="Rating Adjustment Data Not Found") + adjustment = list() for item in adjust_data: insert = dict() @@ -465,18 +466,34 @@ def func(rating_flow_id: str, db: Session = Depends(get_db)): insert['调整说明'] = None adjustment.append(insert) - return adjustment + adjustment_data = { + "ascp_score": None, + "ascp_level": None, + "adjustments": adjustment, + } + # 保存流程节点数据 + adjust_node = [node for node in rf_item.nodes if node.node_name == '个体信用状况'] + if not adjust_node: + raise HTTPException(status_code=404, detail="AdjustNode Not Found") + Crud.save_rating_flow_node(db=db, mongodb=mongodb, node_id=adjust_node[0].id, data=adjustment_data.copy()) + + return adjustment_data @router.post("/import/calculation_adjust", summary="计算调整因素得分", tags=["评级节点"]) -def func(schema: RatingFlowSchema.CalculationAdjustReqBody, db: Session = Depends(get_db), - mongodb: MongoHelper = Depends(get_mongodb)): +def func(rating_flow_id: str, db: Session = Depends(get_db), mongodb: MongoHelper = Depends(get_mongodb)): # 获取流程; rf_item: 流程对象 - rf_item = Crud.get_rating_flow(db=db, rating_flow_id=schema.rating_flow_id) + rf_item = Crud.get_rating_flow(db=db, rating_flow_id=rating_flow_id) if not rf_item: raise HTTPException(status_code=404, detail="RatingFlow Not Found") + # 查询节点保存的数据 + adjust_node = [node for node in rf_item.nodes if node.node_name == '个体信用状况'] + if not adjust_node: + raise HTTPException(status_code=404, detail="AdjustNode Not Found") + adjust_body = get_rating_node_data(db=db, mongodb=mongodb, _id=adjust_node[0].id) + adjustment = adjust_body.get('adjustments') # 计算得分 - score = sum([item.get('调整分数') for item in schema.adjustment]) + score = sum([item.get('调整分数') for item in adjustment]) # 获取上个节点的得分 nodes_item = [node for node in rf_item.nodes if node.node_name == '基本信用状况'] if not nodes_item: @@ -503,15 +520,11 @@ def func(schema: RatingFlowSchema.CalculationAdjustReqBody, db: Session = Depend adjustment_data = { "ascp_score": ascp_score, "ascp_level": rank_level, - "adjustments": schema.adjustment, + "adjustments": adjustment, } # 保存流程节点数据 - node_item = [node for node in rf_item.nodes if node.node_name == '个体信用状况'] - if not node_item: - raise HTTPException(status_code=404, detail="RatingNode Not Found") - node = node_item[0] - Crud.save_rating_flow_node(db=db, mongodb=mongodb, node_id=node.id, data=adjustment_data.copy()) + Crud.save_rating_flow_node(db=db, mongodb=mongodb, node_id=adjust_node[0].id, data=adjustment_data.copy()) return adjustment_data @@ -519,6 +532,3 @@ def func(schema: RatingFlowSchema.CalculationAdjustReqBody, db: Session = Depend @router.get("/import/external_support", summary="导入外部支持", tags=["评级节点"]) def func(province: str, region: str, db: Session = Depends(get_db)): return {"外部支持级别": "AAA", "最终调整级别": None, "调整说明": None} - - -