109 lines
3.2 KiB
Python
109 lines
3.2 KiB
Python
from Context.common import mg_db, common_db
|
|
|
|
from sqlalchemy.orm import Session
|
|
|
|
from .Models import RateFlow, RateFlowNode
|
|
from .Schemas import *
|
|
from Utils.MongoUtils import MongoConnect
|
|
from Utils.TimeSerialNumUtils import create_time_serial_num
|
|
|
|
|
|
def create_rate_flow(db: Session, company_name, company_user_id):
|
|
item = RateFlow()
|
|
item.company_name = company_name
|
|
item.status = "进行"
|
|
|
|
db.add(item)
|
|
db.commit()
|
|
db.refresh(item)
|
|
return item
|
|
|
|
|
|
def create_rate_flow_node(db: Session, node_num, node_name, rate_process_id):
|
|
item = RateFlowNode()
|
|
item.node_num = node_num
|
|
item.node_name = node_name
|
|
item.rate_process_id = rate_process_id
|
|
|
|
db.add(item)
|
|
db.commit()
|
|
return True
|
|
|
|
|
|
def get_rate_flow_all_nodes(_id: str, db: Session, mongodb: MongoConnect, with_content=False):
|
|
def nodes_to_return(objs):
|
|
__list = list()
|
|
for obj in objs:
|
|
__dict = dict()
|
|
__dict.update({"node_id": obj.id})
|
|
__dict.update({"node_num": obj.node_num})
|
|
__dict.update({"node_name": obj.node_name})
|
|
__dict.update({"status": obj.status})
|
|
if with_content:
|
|
__dict.update(
|
|
{"content": mongodb.find_data_by_id(dbname="打分评级流程", sheet=obj.node_name, _id=obj.obj_id)})
|
|
__list.append(__dict)
|
|
return __list
|
|
|
|
item = db.query(RateFlow).filter_by(id=_id).first()
|
|
|
|
if not item:
|
|
return False
|
|
|
|
return nodes_to_return(list(item.nodes))
|
|
|
|
|
|
def save_rate_flow_node(node_id: str, data: dict, db: Session, mongodb: MongoConnect):
|
|
# 查询节点信息
|
|
node = db.query(RateFlowNode).filter_by(id=node_id).first()
|
|
mongodb.replace_data_by_id("评级流程", node.node_name, node.obj_id, data)
|
|
return True
|
|
|
|
|
|
def get_rate_flow(db, rate_flow_id: str):
|
|
item = db.query(RateFlow).filter_by(id=rate_flow_id).first()
|
|
return item
|
|
|
|
|
|
def edit_rate_status(db, rate_flow_id, status):
|
|
data = {"status": status}
|
|
db.query(RateFlow).filter_by(id=rate_flow_id).update(data)
|
|
db.commit()
|
|
return db.query(RateFlow).filter_by(id=rate_flow_id).first()
|
|
|
|
|
|
def change_rate_node_status(db, _id: str, status: str):
|
|
update_data = {"status": status}
|
|
db.query(RateFlowNode).filter_by(id=_id).update(update_data)
|
|
db.commit()
|
|
return db.query(RateFlowNode).filter_by(id=_id).first()
|
|
|
|
|
|
def delete_rate_flow(db, _id: str):
|
|
db.query(RateFlow).filter_by(id=_id).delete()
|
|
db.commit()
|
|
return True
|
|
|
|
|
|
def delete_rate_flow_node(db, _id: str):
|
|
db.query(RateFlowNode).filter_by(id=_id).delete()
|
|
db.commit()
|
|
return True
|
|
|
|
|
|
def get_rate_node_data(_id: str, db: Session, mongodb: MongoConnect):
|
|
item = db.query(RateFlowNode).filter_by(id=_id).first()
|
|
content = mongodb.find_data_by_id(dbname="打分评级流程", sheet=item.node_name, _id=item.obj_id)
|
|
return content
|
|
|
|
|
|
def delete_rate_node_data(_id: str, db: Session, mongodb: MongoConnect):
|
|
node_item = db.query(RateFlowNode).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(RateFlowNode).filter_by(id=_id).update({"obj_id": None})
|
|
db.commit()
|
|
return True
|