From ed60a1f8da11f4d888742cc1eed5f7efdc0683d3 Mon Sep 17 00:00:00 2001 From: wren <“porlong@qq.com”> Date: Wed, 13 May 2026 17:46:17 +0800 Subject: [PATCH] feat: add review_scope field to distinguish cross-review vs standard documents --- .../fastapi_leaudit/models/leauditDocument.py | 1 + .../fastapi_leaudit/services/documentService.py | 1 + .../services/impl/crossReviewServiceImpl.py | 1 + .../fastapi_leaudit/services/impl/documentServiceImpl.py | 9 +++------ scripts/创建sql/schema_v3_add_cross_review_phase1.sql | 5 +++++ 5 files changed, 11 insertions(+), 6 deletions(-) diff --git a/fastapi_modules/fastapi_leaudit/models/leauditDocument.py b/fastapi_modules/fastapi_leaudit/models/leauditDocument.py index 0a6d371..dc75102 100644 --- a/fastapi_modules/fastapi_leaudit/models/leauditDocument.py +++ b/fastapi_modules/fastapi_leaudit/models/leauditDocument.py @@ -31,6 +31,7 @@ class LeauditDocument(BaseModel): rootVersionId: Mapped[int | None] = mapped_column("root_version_id", BigInteger, comment="首版本文档ID") isLatestVersion: Mapped[bool] = mapped_column("is_latest_version", Boolean, default=True, comment="是否当前最新版本") normalizedName: Mapped[str | None] = mapped_column("normalized_name", String(512), comment="归一化文件名(不含扩展名)") + reviewScope: Mapped[str] = mapped_column("review_scope", String(32), default="standard", comment="评查范围: standard=个人评查 cross_review=交叉评查") @classmethod async def create_new(cls, session: AsyncSession, **fields) -> "LeauditDocument": diff --git a/fastapi_modules/fastapi_leaudit/services/documentService.py b/fastapi_modules/fastapi_leaudit/services/documentService.py index e3d3f92..c01b9c1 100644 --- a/fastapi_modules/fastapi_leaudit/services/documentService.py +++ b/fastapi_modules/fastapi_leaudit/services/documentService.py @@ -40,6 +40,7 @@ class IDocumentService(ABC): Attachments: list[tuple[str, bytes, str | None]] | None = None, AutoRun: bool = False, Speed: str = "normal", + ReviewScope: str = "standard", ) -> DocumentUploadVO: """上传文档并建立 LeAudit document/file 记录。""" ... diff --git a/fastapi_modules/fastapi_leaudit/services/impl/crossReviewServiceImpl.py b/fastapi_modules/fastapi_leaudit/services/impl/crossReviewServiceImpl.py index 4f53d8a..81ff1d5 100644 --- a/fastapi_modules/fastapi_leaudit/services/impl/crossReviewServiceImpl.py +++ b/fastapi_modules/fastapi_leaudit/services/impl/crossReviewServiceImpl.py @@ -891,6 +891,7 @@ class CrossReviewServiceImpl(ICrossReviewService): GroupId=resolvedGroupId, CreatedBy=CurrentUserId, AutoRun=True, + ReviewScope="cross_review", ) async with GetAsyncSession() as session: diff --git a/fastapi_modules/fastapi_leaudit/services/impl/documentServiceImpl.py b/fastapi_modules/fastapi_leaudit/services/impl/documentServiceImpl.py index 850d3e1..4e0bff9 100644 --- a/fastapi_modules/fastapi_leaudit/services/impl/documentServiceImpl.py +++ b/fastapi_modules/fastapi_leaudit/services/impl/documentServiceImpl.py @@ -76,6 +76,7 @@ class DocumentServiceImpl(IDocumentService): Attachments: list[tuple[str, bytes, str | None]] | None = None, AutoRun: bool = False, Speed: str = "normal", + ReviewScope: str = "standard", ) -> DocumentUploadVO: """上传文档并建立 LeAudit document/file 记录。""" if not FileName: @@ -186,6 +187,7 @@ class DocumentServiceImpl(IDocumentService): rootVersionId=rootVersionId, isLatestVersion=True, normalizedName=normalizedName, + reviewScope=ReviewScope, ) if document.rootVersionId is None: document.rootVersionId = document.Id @@ -355,12 +357,7 @@ class DocumentServiceImpl(IDocumentService): filters.append("d.created_at < (CAST(:date_to AS date) + INTERVAL '1 day')") params["date_to"] = date_type.fromisoformat(DateTo.strip()) - filters.append( - "NOT EXISTS (" - "SELECT 1 FROM leaudit_cross_review_task_documents crtd" - " WHERE crtd.document_id = d.id AND crtd.delete_time IS NULL" - ")" - ) + filters.append("COALESCE(d.review_scope, 'standard') != 'cross_review'") where_clause = " AND ".join(filters) diff --git a/scripts/创建sql/schema_v3_add_cross_review_phase1.sql b/scripts/创建sql/schema_v3_add_cross_review_phase1.sql index f322754..2268480 100644 --- a/scripts/创建sql/schema_v3_add_cross_review_phase1.sql +++ b/scripts/创建sql/schema_v3_add_cross_review_phase1.sql @@ -102,3 +102,8 @@ CREATE UNIQUE INDEX IF NOT EXISTS uq_lcr_votes_proposal_voter_active COMMENT ON TABLE leaudit_cross_review_votes IS '交叉评查投票表'; COMMIT; + +-- Add review_scope column +ALTER TABLE leaudit_documents ADD COLUMN IF NOT EXISTS review_scope VARCHAR(32) DEFAULT 'standard'; +COMMENT ON COLUMN leaudit_documents.review_scope IS '评查范围: standard=个人评查 cross_review=交叉评查'; +