feat(platform): Complete Postgres-Only architecture refactoring (Phase 1-7)

Major Changes:
- Implement Platform-Only architecture pattern (unified task management)
- Add PostgresCacheAdapter for unified caching (platform_schema.app_cache)
- Add PgBossQueue for job queue management (platform_schema.job)
- Implement CheckpointService using job.data (generic for all modules)
- Add intelligent threshold-based dual-mode processing (THRESHOLD=50)
- Add task splitting mechanism (auto chunk size recommendation)
- Refactor ASL screening service with smart mode selection
- Refactor DC extraction service with smart mode selection
- Register workers for ASL and DC modules

Technical Highlights:
- All task management data stored in platform_schema.job.data (JSONB)
- Business tables remain clean (no task management fields)
- CheckpointService is generic (shared by all modules)
- Zero code duplication (DRY principle)
- Follows 3-layer architecture principle
- Zero additional cost (no Redis needed, save 8400 CNY/year)

Code Statistics:
- New code: ~1750 lines
- Modified code: ~500 lines
- Test code: ~1800 lines
- Documentation: ~3000 lines

Testing:
- Unit tests: 8/8 passed
- Integration tests: 2/2 passed
- Architecture validation: passed
- Linter errors: 0

Files:
- Platform layer: PostgresCacheAdapter, PgBossQueue, CheckpointService, utils
- ASL module: screeningService, screeningWorker
- DC module: ExtractionController, extractionWorker
- Tests: 11 test files
- Docs: Updated 4 key documents

Status: Phase 1-7 completed, Phase 8-9 pending
This commit is contained in:
2025-12-13 16:10:04 +08:00
parent a3586cdf30
commit fa72beea6c
135 changed files with 17508 additions and 91 deletions

View File

@@ -2,7 +2,8 @@
// learn more about it in the docs: https://pris.ly/d/prisma-schema
generator client {
provider = "prisma-client-js"
provider = "prisma-client-js"
previewFeatures = ["multiSchema"]
}
datasource db {
@@ -11,6 +12,23 @@ datasource db {
schemas = ["platform_schema", "aia_schema", "pkb_schema", "asl_schema", "common_schema", "dc_schema", "rvw_schema", "admin_schema", "ssa_schema", "st_schema", "public"]
}
// ==================== 平台基础设施 (Platform Infrastructure) ====================
/// 应用缓存表 - Postgres-Only架构
/// 用于替代Redis缓存支持LLM结果缓存、健康检查缓存等
model AppCache {
id Int @id @default(autoincrement())
key String @unique @db.VarChar(500)
value Json
expiresAt DateTime @map("expires_at")
createdAt DateTime @default(now()) @map("created_at")
@@index([expiresAt], name: "idx_app_cache_expires")
@@index([key, expiresAt], name: "idx_app_cache_key_expires")
@@map("app_cache")
@@schema("platform_schema")
}
// ==================== 用户模块 ====================
model User {
@@ -576,6 +594,9 @@ model AslScreeningTask {
failedItems Int @default(0) @map("failed_items")
conflictItems Int @default(0) @map("conflict_items")
// ✅ 任务拆分和断点续传由 pg-boss (platform_schema.job.data) 统一管理
// 不在业务表中存储这些信息符合3层架构原则
// 时间信息
startedAt DateTime? @map("started_at")
completedAt DateTime? @map("completed_at")
@@ -798,6 +819,9 @@ model DCExtractionTask {
// 错误信息
error String? @map("error")
// ✅ 任务拆分和断点续传由 pg-boss (platform_schema.job.data) 统一管理
// 不在业务表中存储这些信息符合3层架构原则
// 时间戳
createdAt DateTime @default(now()) @map("created_at")
startedAt DateTime? @map("started_at")