86 lines
3.9 KiB
Python
86 lines
3.9 KiB
Python
"""评查详情聚合 VO。"""
|
|
|
|
from __future__ import annotations
|
|
|
|
from typing import Any
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
|
class ReviewPointResultVO(BaseModel):
|
|
"""前端评查详情页所需的单条评查点结果。"""
|
|
|
|
id: str | int = Field(..., description="评查结果ID")
|
|
documentId: str = Field(..., description="文档ID")
|
|
pointId: str | int = Field(..., description="评查点/规则ID")
|
|
editAuditStatusId: str | int = Field("", description="人工审核状态ID")
|
|
editAuditStatus: int = Field(0, description="人工审核状态")
|
|
editAuditStatusMessage: str = Field("", description="人工审核意见")
|
|
title: str = Field("", description="标题")
|
|
pointName: str = Field("", description="评查点名称")
|
|
pointCode: str = Field("", description="评查点编码")
|
|
groupName: str = Field("", description="所属分组名")
|
|
status: str = Field("success", description="success/warning/error/notApplicable")
|
|
content: dict[str, Any] = Field(default_factory=dict, description="抽取字段内容")
|
|
contentPage: dict[str, str] = Field(default_factory=dict, description="字段页码映射")
|
|
suggestion: str = Field("", description="建议内容")
|
|
postAction: str = Field("", description="后续动作")
|
|
actionContent: Any = Field(default_factory=dict, description="动作配置")
|
|
legalBasis: Any = Field(default_factory=dict, description="法律依据")
|
|
evaluationConfig: Any = Field(default_factory=dict, description="评查配置")
|
|
score: float = Field(0, description="分值")
|
|
finalScore: float | None = Field(None, description="最终得分")
|
|
machineScore: float | None = Field(None, description="机器得分")
|
|
result: bool | None = Field(None, description="是否通过")
|
|
failMessage: str = Field("", description="失败提示")
|
|
passMessage: str = Field("", description="通过提示")
|
|
evaluatedPointResultsLog: dict[str, Any] = Field(default_factory=dict, description="规则执行日志")
|
|
|
|
|
|
class ReviewPointStatsVO(BaseModel):
|
|
"""统计信息。"""
|
|
|
|
total: int = Field(0, description="总数")
|
|
success: int = Field(0, description="通过数")
|
|
warning: int = Field(0, description="警告数")
|
|
error: int = Field(0, description="错误数")
|
|
score: float = Field(0, description="总分")
|
|
|
|
|
|
class ReviewPointInfoVO(BaseModel):
|
|
"""评查摘要信息。"""
|
|
|
|
reviewTime: str = Field("", description="评查时间")
|
|
reviewModel: str = Field("DeepSeek", description="评查模型")
|
|
ruleGroup: str = Field("", description="规则组")
|
|
result: str = Field("success", description="总体结果")
|
|
issueCount: int = Field(0, description="问题数")
|
|
|
|
|
|
class ReviewPointsAggregateVO(BaseModel):
|
|
"""评查详情聚合响应。"""
|
|
|
|
data: list[ReviewPointResultVO] = Field(default_factory=list, description="评查点结果")
|
|
stats: ReviewPointStatsVO = Field(default_factory=ReviewPointStatsVO, description="统计信息")
|
|
reviewInfo: ReviewPointInfoVO = Field(default_factory=ReviewPointInfoVO, description="评查摘要")
|
|
document: dict[str, Any] | None = Field(default=None, description="文档信息")
|
|
comparison_document: dict[str, Any] | None = Field(default=None, description="比对文档信息")
|
|
scoring_proposals: list[dict[str, Any]] = Field(default_factory=list, description="评分提案")
|
|
|
|
|
|
class ReviewPointAuditVO(BaseModel):
|
|
"""评查点人工审核更新结果。"""
|
|
|
|
reviewPointResultId: int = Field(..., description="规则结果ID")
|
|
editAuditStatusId: int = Field(..., description="审核记录ID")
|
|
editAuditStatus: int = Field(..., description="审核状态")
|
|
overrideResult: bool | None = Field(default=None, description="人工覆盖结果")
|
|
message: str = Field("", description="审核意见")
|
|
|
|
|
|
class DocumentConfirmVO(BaseModel):
|
|
"""文档确认评查结果。"""
|
|
|
|
documentId: int = Field(..., description="文档ID")
|
|
auditStatus: int = Field(..., description="文档审核状态")
|