feat: add document-types endpoint and date/user filters to list

- GET /api/document-types: returns {id, name, code} from
  leaudit_document_types, with optional ?ids=1,2,3 filter
- GET /api/documents/list: added userId, dateFrom, dateTo
  query params for filtering by uploading user and date range
This commit is contained in:
wren
2026-04-30 12:28:55 +08:00
parent b6d7f154ad
commit 8f307aecba
4 changed files with 87 additions and 3 deletions
@@ -1,11 +1,13 @@
"""文档控制器。"""
from fastapi import File, Form, UploadFile
from typing import Any
from fastapi import File, Form, Query, UploadFile
from fastapi_common.fastapi_common_web.controller import BaseController
from fastapi_common.fastapi_common_web.domain.responses import Result
from fastapi_modules.fastapi_leaudit.domian.vo.documentVo import DocumentListPageVO, DocumentUploadVO
from fastapi_modules.fastapi_leaudit.domian.vo.documentVo import DocumentListPageVO, DocumentTypeItemVO, DocumentUploadVO
from fastapi_modules.fastapi_leaudit.services import IDocumentService
from fastapi_modules.fastapi_leaudit.services.impl.documentServiceImpl import DocumentServiceImpl
@@ -53,6 +55,9 @@ class DocumentController(BaseController):
region: str | None = None,
processingStatus: str | None = None,
resultStatus: str | None = None,
userId: int | None = Query(None, description="按用户ID过滤"),
dateFrom: str | None = Query(None, description="起始日期 (YYYY-MM-DD)"),
dateTo: str | None = Query(None, description="结束日期 (YYYY-MM-DD)"),
):
"""获取文档列表(仅返回最新版本,附历史版本摘要)。"""
Data = await self.DocumentService.ListDocuments(
@@ -63,5 +68,19 @@ class DocumentController(BaseController):
Region=region,
ProcessingStatus=processingStatus,
ResultStatus=resultStatus,
UserId=userId,
DateFrom=dateFrom,
DateTo=dateTo,
)
return Result.success(data=Data)
@self.router.get("/document-types", response_model=Result[list[DocumentTypeItemVO]])
async def ListDocumentTypes(
ids: str | None = Query(None, description="逗号分隔的ID列表,不传则返回全部"),
):
"""获取文档类型列表。"""
idList: list[int] | None = None
if ids:
idList = [int(x.strip()) for x in ids.split(",") if x.strip().isdigit()]
Data = await self.DocumentService.ListDocumentTypes(Ids=idList)
return Result.success(data=Data)