/** * 合规检查模块 — 数据模型定义 * * 对应规范文档 §七「模块 4:沟通记录合规检查模块」 * * 核心概念: * - compliance_issue:合规问题记录(缺表、未置顶、格式错误、内容太简等) * - compliance_scan:巡检任务记录 * - audit_log:操作审计日志 * * 问题类型枚举(issue type): * - missing_doc :群还没有沟通记录表 * - not_pinned :记录表未在群内置顶 * - no_doc_in_notice :群公告中无文档链接 * - multi_doc :群内出现多张表 * - required_empty :必填项为空 * - format_error :日期/格式/版式不规范 * - stale_doc :记录表很久没更新 * - too_brief :内容过于简略 * - suspected_miss_log:群里聊过但表没更新 */ /** 合规问题类型 */ export type ComplianceIssueType = | 'missing_doc' | 'not_pinned' | 'no_doc_in_notice' | 'multi_doc' | 'required_empty' | 'format_error' | 'stale_doc' | 'too_brief' | 'suspected_miss_log'; /** 合规问题类型中文标签 */ export const ComplianceIssueTypeLabel: Record = { missing_doc: '缺少沟通记录表', not_pinned: '记录表未置顶', no_doc_in_notice: '群公告无文档链接', multi_doc: '群内存在多张表', required_empty: '必填项为空', format_error: '格式或版式不规范', stale_doc: '记录表长期未更新', too_brief: '内容过于简略', suspected_miss_log: '疑似漏记(群内聊天但表未更新)', }; /** 合规问题状态 */ export type IssueStatus = 'open' | 'in_progress' | 'resolved' | 'closed'; /** 合规问题记录 */ export interface ComplianceIssue { /** 主键 */ id: number; /** 群 ID */ roomId: string; /** 群名称(冗余) */ roomName: string; /** 问题类型 */ type: ComplianceIssueType; /** 问题描述 */ description: string; /** 严重程度:1=低, 2=中, 3=高 */ severity: 1 | 2 | 3; /** 状态 */ status: IssueStatus; /** 负责人 ID */ assigneeId: number; /** 关联的文档 ID(如有) */ docId: string; /** 发现时间 */ foundAt: string; /** 解决时间 */ resolvedAt: string; /** 创建时间 */ createdAt: string; } /** 合规巡检任务 */ export interface ComplianceScan { /** 主键 */ id: number; /** 巡检时间 */ scannedAt: string; /** 巡检群数 */ totalRooms: number; /** 新发现问题数 */ newIssues: number; /** 已自动关闭的问题数 */ resolvedIssues: number; /** 巡检状态 */ status: 'running' | 'completed' | 'failed'; } /** 合规汇总报表 */ export interface ComplianceReport { /** 总群数 */ totalRooms: number; /** 达标群数 */ compliantRooms: number; /** 待整改群数 */ pendingRooms: number; /** 按问题类型分组统计 */ issuesByType: Record; /** 按严重程度分组统计 */ issuesBySeverity: Record; /** 报表生成时间 */ generatedAt: string; }