changes 导入调整接口

This commit is contained in:
P3ngSaM 2022-11-22 09:51:15 +08:00
parent 72ac90cd20
commit 1526fecd14
1 changed files with 25 additions and 15 deletions

View File

@ -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}