This commit is contained in:
王思川 2022-11-22 16:30:02 +08:00
parent afe82290b5
commit 1a7fae4799
3 changed files with 50 additions and 5 deletions

View File

@ -75,7 +75,7 @@ def save_rating_flow_node(node_id: str, data: dict, db: Session, mongodb: MongoH
# 保存新节点数据
obj_id = mongodb.insert_data(dbname="打分评级流程", sheet=node_item.node_name, data=data)
update_data = {"obj_id": obj_id, "status": True}
update_data = {"obj_id": obj_id}
db.query(RatingFlowNode).filter_by(id=node_id).update(update_data)
db.commit()

View File

@ -8,3 +8,14 @@ def get_rating_node_data(_id: str, db: Session, mongodb: MongoHelper):
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
def delete_rating_node_data(_id: str, db: Session, mongodb: MongoHelper):
node_item = db.query(RatingFlowNode).filter_by(id=_id).first()
if not node_item:
return False
if node_item.obj_id:
mongodb.delete_data_by_id(dbname="打分评级流程", sheet=node_item.node_name, _id=node_item.obj_id)
db.query(RatingFlowNode).filter_by(id=_id).update({"obj_id": None})
db.commit()
return True

View File

@ -5,7 +5,7 @@ from fastapi import APIRouter, Depends, HTTPException, Header
from sqlalchemy.orm import Session
from App.Crud import RatingFlowCrud as Crud
from App.Crud.RatingFlowNodeCrud import get_rating_node_data
from App.Crud.RatingFlowNodeCrud import get_rating_node_data, delete_rating_node_data
from App.Crud.RatingFlowParticipantCrud import list_users_rating_flows
from App.Schemas import RatingFlowSchema
from Utils.AccessControl.AccessUtil import rbac
@ -127,12 +127,21 @@ def func(rating_flow_id: str, operation: str, db: Session = Depends(get_db)):
@router.get("/import/input_data", summary="导入填报数据", tags=["评级节点"])
def func(rating_flow_id: str, year: int, db: Session = Depends(get_db)):
def func(rating_flow_id: str, year: int, 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:
raise HTTPException(status_code=404, detail="RatingFlow Not Found")
# 流程节点信息: nodes_item
nodes_item = dict()
for node in rf_item.nodes:
nodes_item.update({node.node_name: node.id})
# 重置后续节点content数据
for node_id in nodes_item.values():
delete_rating_node_data(db=db, mongodb=mongodb, _id=node_id)
# 获取打分卡; scorecard: 打分卡
scorecard = request_to_get(
url='http://test.fecribd.com/api/model_store/scorecard/view?_id={}'.format(rf_item.scorecard_id)
@ -190,10 +199,16 @@ def func(rating_flow_id: str, db: Session = Depends(get_db), mongodb: MongoHelpe
if not rf_item:
raise HTTPException(status_code=404, detail="RatingFlow Not Found")
# 获取填报数据; input_data: 填报数据对象
# 流程节点信息: nodes_item
nodes_item = dict()
for node in rf_item.nodes:
nodes_item.update({node.node_name: node.id})
# 重置后续节点content数据
for node_id in list(nodes_item.values())[1:]:
delete_rating_node_data(db=db, mongodb=mongodb, _id=node_id)
# 获取填报数据; input_data: 填报数据对象
input_data = get_rating_node_data(db=db, mongodb=mongodb, _id=nodes_item.get("填报数据"))
if not input_data:
raise HTTPException(status_code=404, detail="InputData Not Found")
@ -237,7 +252,7 @@ def func(rating_flow_id: str, db: Session = Depends(get_db), mongodb: MongoHelpe
if not param_value:
raise HTTPException(
status_code=202,
detail="参数数值缺失; 参数: {}; 加载路径: {}".format(
detail="参数不能为空; 参数: {}; 加载路径: {}".format(
param.get("参数"),
param.get("加载路径").__str__().replace("year", fmt_year)
)
@ -444,6 +459,15 @@ def func(rating_flow_id: str, db: Session = Depends(get_db), mongodb: MongoHelpe
if not rf_item:
raise HTTPException(status_code=404, detail="RatingFlow Not Found")
# 流程节点信息: nodes_item
nodes_item = dict()
for node in rf_item.nodes:
nodes_item.update({node.node_name: node.id})
# 重置后续节点content数据
for node_id in list(nodes_item.values())[2:]:
delete_rating_node_data(db=db, mongodb=mongodb, _id=node_id)
# 获取打分卡; scorecard: 打分卡
scorecard = request_to_get(
url='http://test.fecribd.com/api/model_store/scorecard/view?_id={}'.format(rf_item.scorecard_id)
@ -535,6 +559,16 @@ def func(rating_flow_id: str, db: Session = Depends(get_db), mongodb: MongoHelpe
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")
# 流程节点信息: nodes_item
nodes_item = dict()
for node in rf_item.nodes:
nodes_item.update({node.node_name: node.id})
# 重置后续节点content数据
for node_id in list(nodes_item.values())[3:]:
delete_rating_node_data(db=db, mongodb=mongodb, _id=node_id)
# 查询节点保存的数据
adjust_node = [node for node in rf_item.nodes if node.node_name == '个体信用状况']
if not adjust_node: