44 lines
1.9 KiB
Python
44 lines
1.9 KiB
Python
|
from sqlalchemy import Column, String, Date, Enum, ForeignKey, Integer, Boolean
|
||
|
from sqlalchemy.orm import relationship
|
||
|
|
||
|
from BC01_评级.Schemas.RatingFlowSchema import RankLevelEnum, RatingFlowStatusEnum
|
||
|
from ..DataBase import Base
|
||
|
|
||
|
|
||
|
class RatingFlow(Base):
|
||
|
__tablename__ = "rating_flow"
|
||
|
|
||
|
id = Column(String(16), primary_key=True)
|
||
|
report_date = Column(Date)
|
||
|
status = Column(Enum(RatingFlowStatusEnum, values_callable=lambda x: [e.value for e in x]))
|
||
|
rank_level = Column(Enum(RankLevelEnum, values_callable=lambda x: [e.value for e in x]), default="-")
|
||
|
company = Column(String(32), index=True, comment="测评企业")
|
||
|
company_id = Column(String(16), comment="企业ID")
|
||
|
scorecard = Column(String(64), index=True, comment="打分卡")
|
||
|
scorecard_id = Column(String(16), comment="打分卡ID")
|
||
|
|
||
|
nodes = relationship("RatingFlowNode", backref="rating_flow")
|
||
|
rating_flow_participant = relationship("RatingFlowParticipant", back_populates="rating_flow")
|
||
|
|
||
|
|
||
|
class RatingFlowParticipant(Base):
|
||
|
__tablename__ = "rating_flow_participant"
|
||
|
|
||
|
id = Column(String(16), primary_key=True)
|
||
|
participant = Column(String(32), index=True, comment="参与人")
|
||
|
user_id = Column(String(16), comment="用户ID")
|
||
|
rating_process_id = Column(String(16), ForeignKey("rating_flow.id", ondelete="CASCADE"), comment="评级流程ID")
|
||
|
|
||
|
rating_flow = relationship("RatingFlow", back_populates="rating_flow_participant")
|
||
|
|
||
|
|
||
|
class RatingFlowNode(Base):
|
||
|
__tablename__ = "rating_flow_node"
|
||
|
|
||
|
id = Column(String(16), primary_key=True, comment="流程节点ID")
|
||
|
node_num = Column(Integer, comment="流程节点序号")
|
||
|
node_name = Column(String(32), comment="流程节点名称")
|
||
|
status = Column(Boolean, default=0, comment="流程节点状态")
|
||
|
obj_id = Column(String(24), default=None, comment="流程内容mongoID")
|
||
|
rating_process_id = Column(String(16), ForeignKey("rating_flow.id", ondelete="CASCADE"), comment="评级流程ID")
|