52c2bed4f9
- GET/POST /api/document-types, GET/PUT/DELETE /api/document-types/{id}
- DocumentTypeItemVO extended with description, entryModuleId,
isEnabled, ruleSetIds
- Create/Update DTOs accept ruleSetIds array for automatic
leaudit_rule_type_bindings sync (full replace on update)
- Soft delete cascades to rule_type_bindings
75 lines
2.1 KiB
Python
75 lines
2.1 KiB
Python
"""文档服务接口。"""
|
|
|
|
from abc import ABC, abstractmethod
|
|
|
|
from fastapi_modules.fastapi_leaudit.domian.vo.documentVo import (
|
|
DocumentListPageVO,
|
|
DocumentTypeCreateDTO,
|
|
DocumentTypeItemVO,
|
|
DocumentTypeUpdateDTO,
|
|
DocumentUploadVO,
|
|
)
|
|
|
|
|
|
class IDocumentService(ABC):
|
|
"""文档服务接口。"""
|
|
|
|
@abstractmethod
|
|
async def Upload(
|
|
self,
|
|
FileName: str,
|
|
FileContent: bytes,
|
|
ContentType: str | None,
|
|
TypeId: int | None = None,
|
|
TypeCode: str | None = None,
|
|
Region: str = "default",
|
|
FileRole: str = "primary",
|
|
CreatedBy: int | None = None,
|
|
AutoRun: bool = False,
|
|
Speed: str = "normal",
|
|
) -> DocumentUploadVO:
|
|
"""上传文档并建立 LeAudit document/file 记录。"""
|
|
...
|
|
|
|
@abstractmethod
|
|
async def ListDocuments(
|
|
self,
|
|
Page: int = 1,
|
|
PageSize: int = 20,
|
|
Keyword: str | None = None,
|
|
TypeCode: str | None = None,
|
|
Region: str | None = None,
|
|
ProcessingStatus: str | None = None,
|
|
ResultStatus: str | None = None,
|
|
UserId: int | None = None,
|
|
DateFrom: str | None = None,
|
|
DateTo: str | None = None,
|
|
) -> DocumentListPageVO:
|
|
"""获取文档列表(仅最新版本,附历史版本摘要)。"""
|
|
...
|
|
|
|
@abstractmethod
|
|
async def ListDocumentTypes(self, Ids: list[int] | None = None) -> list[DocumentTypeItemVO]:
|
|
"""获取文档类型列表。"""
|
|
...
|
|
|
|
@abstractmethod
|
|
async def GetDocumentType(self, Id: int) -> DocumentTypeItemVO:
|
|
"""获取文档类型详情。"""
|
|
...
|
|
|
|
@abstractmethod
|
|
async def CreateDocumentType(self, Body: DocumentTypeCreateDTO) -> DocumentTypeItemVO:
|
|
"""创建文档类型。"""
|
|
...
|
|
|
|
@abstractmethod
|
|
async def UpdateDocumentType(self, Id: int, Body: DocumentTypeUpdateDTO) -> DocumentTypeItemVO:
|
|
"""更新文档类型。"""
|
|
...
|
|
|
|
@abstractmethod
|
|
async def DeleteDocumentType(self, Id: int) -> None:
|
|
"""删除文档类型(软删除)。"""
|
|
...
|