feat: migrate cross review to v3 leaudit flow

This commit is contained in:
wren
2026-05-07 18:18:59 +08:00
parent 35e0c45c42
commit 1c84209f38
23 changed files with 5172 additions and 39 deletions
@@ -3,9 +3,19 @@
from fastapi_modules.fastapi_leaudit.models.leauditDocument import LeauditDocument
from fastapi_modules.fastapi_leaudit.models.leauditDocumentFile import LeauditDocumentFile
from fastapi_modules.fastapi_leaudit.models.leauditAuditRun import LeauditAuditRun
from fastapi_modules.fastapi_leaudit.models.leauditCrossReviewProposal import LeauditCrossReviewProposal
from fastapi_modules.fastapi_leaudit.models.leauditCrossReviewTask import LeauditCrossReviewTask
from fastapi_modules.fastapi_leaudit.models.leauditCrossReviewTaskDocument import LeauditCrossReviewTaskDocument
from fastapi_modules.fastapi_leaudit.models.leauditCrossReviewTaskMember import LeauditCrossReviewTaskMember
from fastapi_modules.fastapi_leaudit.models.leauditCrossReviewVote import LeauditCrossReviewVote
__all__ = [
"LeauditDocument",
"LeauditDocumentFile",
"LeauditAuditRun",
"LeauditCrossReviewTask",
"LeauditCrossReviewTaskMember",
"LeauditCrossReviewTaskDocument",
"LeauditCrossReviewProposal",
"LeauditCrossReviewVote",
]
@@ -0,0 +1,23 @@
"""LeAudit 交叉评查提案模型。"""
from __future__ import annotations
from sqlalchemy import BigInteger, Numeric, String, Text
from sqlalchemy.orm import Mapped, mapped_column
from fastapi_common.fastapi_common_web.models import BaseModel
class LeauditCrossReviewProposal(BaseModel):
"""交叉评查提案表。"""
__tablename__ = "leaudit_cross_review_proposals"
Id: Mapped[int] = mapped_column("id", BigInteger, primary_key=True, autoincrement=True)
taskId: Mapped[int] = mapped_column("task_id", BigInteger, comment="任务ID")
documentId: Mapped[int] = mapped_column("document_id", BigInteger, comment="文档ID")
ruleResultId: Mapped[int] = mapped_column("rule_result_id", BigInteger, comment="结果项ID")
proposerId: Mapped[int] = mapped_column("proposer_id", BigInteger, comment="提案人ID")
proposedScoreDelta: Mapped[float] = mapped_column("proposed_score_delta", Numeric(10, 2), comment="分数变化量")
reason: Mapped[str] = mapped_column(Text, comment="提案理由")
status: Mapped[str] = mapped_column(String(32), default="pending", comment="pending/approved/rejected")
@@ -0,0 +1,22 @@
"""LeAudit 交叉评查任务模型。"""
from __future__ import annotations
from sqlalchemy import BigInteger, String
from sqlalchemy.orm import Mapped, mapped_column
from fastapi_common.fastapi_common_web.models import BaseModel
class LeauditCrossReviewTask(BaseModel):
"""交叉评查任务主表。"""
__tablename__ = "leaudit_cross_review_tasks"
Id: Mapped[int] = mapped_column("id", BigInteger, primary_key=True, autoincrement=True)
taskName: Mapped[str] = mapped_column("task_name", String(255), comment="任务名称")
taskType: Mapped[str] = mapped_column("task_type", String(32), comment="任务类型")
docTypeId: Mapped[int | None] = mapped_column("doc_type_id", BigInteger, comment="文档类型ID")
docTypeCode: Mapped[str | None] = mapped_column("doc_type_code", String(64), comment="文档类型编码")
assignerId: Mapped[int] = mapped_column("assigner_id", BigInteger, comment="创建者ID")
status: Mapped[str] = mapped_column("status", String(32), default="in_progress", comment="任务状态")
@@ -0,0 +1,19 @@
"""LeAudit 交叉评查任务文档模型。"""
from __future__ import annotations
from sqlalchemy import BigInteger, Integer
from sqlalchemy.orm import Mapped, mapped_column
from fastapi_common.fastapi_common_web.models import BaseModel
class LeauditCrossReviewTaskDocument(BaseModel):
"""交叉评查任务文档挂载表。"""
__tablename__ = "leaudit_cross_review_task_documents"
Id: Mapped[int] = mapped_column("id", BigInteger, primary_key=True, autoincrement=True)
taskId: Mapped[int] = mapped_column("task_id", BigInteger, comment="任务ID")
documentId: Mapped[int] = mapped_column("document_id", BigInteger, comment="文档ID")
auditStatus: Mapped[int] = mapped_column("audit_status", Integer, default=0, comment="0=未完成,1=已完成")
@@ -0,0 +1,19 @@
"""LeAudit 交叉评查任务成员模型。"""
from __future__ import annotations
from sqlalchemy import BigInteger, String
from sqlalchemy.orm import Mapped, mapped_column
from fastapi_common.fastapi_common_web.models import BaseModel
class LeauditCrossReviewTaskMember(BaseModel):
"""交叉评查任务成员表。"""
__tablename__ = "leaudit_cross_review_task_members"
Id: Mapped[int] = mapped_column("id", BigInteger, primary_key=True, autoincrement=True)
taskId: Mapped[int] = mapped_column("task_id", BigInteger, comment="任务ID")
userId: Mapped[int] = mapped_column("user_id", BigInteger, comment="用户ID")
memberRole: Mapped[str] = mapped_column("member_role", String(32), default="participant", comment="participant/principal")
@@ -0,0 +1,19 @@
"""LeAudit 交叉评查投票模型。"""
from __future__ import annotations
from sqlalchemy import BigInteger, String
from sqlalchemy.orm import Mapped, mapped_column
from fastapi_common.fastapi_common_web.models import BaseModel
class LeauditCrossReviewVote(BaseModel):
"""交叉评查投票表。"""
__tablename__ = "leaudit_cross_review_votes"
Id: Mapped[int] = mapped_column("id", BigInteger, primary_key=True, autoincrement=True)
proposalId: Mapped[int] = mapped_column("proposal_id", BigInteger, comment="提案ID")
voterId: Mapped[int] = mapped_column("voter_id", BigInteger, comment="投票用户ID")
voteType: Mapped[str] = mapped_column("vote_type", String(16), comment="agree/disagree/cancel")