feat(iit): Implement real-time quality control system

Summary:

- Add 4 new database tables: iit_field_metadata, iit_qc_logs, iit_record_summary, iit_qc_project_stats

- Implement pg-boss debounce mechanism in WebhookController

- Refactor QC Worker for dual output: QC logs + record summary

- Enhance HardRuleEngine to support form-based rule filtering

- Create QcService for QC data queries

- Optimize ChatService with new intents: query_enrollment, query_qc_status

- Add admin batch operations: one-click full QC + one-click full summary

- Create IIT Admin management module: project config, QC rules, user mapping

Status: Code complete, pending end-to-end testing
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-02-07 21:56:11 +08:00
parent 0c590854b5
commit 5db4a7064c
74 changed files with 13383 additions and 2129 deletions

View File

@@ -0,0 +1,29 @@
/**
* IIT 用户映射管理路由
*/
import { FastifyInstance } from 'fastify';
import * as controller from './iitUserMappingController.js';
export async function iitUserMappingRoutes(fastify: FastifyInstance) {
// 获取角色选项(不需要项目 ID
fastify.get('/roles', controller.getRoleOptions);
// 获取项目的用户映射列表
fastify.get('/:projectId/users', controller.listUserMappings);
// 获取用户映射统计
fastify.get('/:projectId/users/stats', controller.getUserMappingStats);
// 获取单个用户映射
fastify.get('/:projectId/users/:mappingId', controller.getUserMapping);
// 创建用户映射
fastify.post('/:projectId/users', controller.createUserMapping);
// 更新用户映射
fastify.put('/:projectId/users/:mappingId', controller.updateUserMapping);
// 删除用户映射
fastify.delete('/:projectId/users/:mappingId', controller.deleteUserMapping);
}