feat: add project-scoped work assistant results

This commit is contained in:
2026-07-21 04:44:15 +08:00
parent 53b15e506c
commit 4536d607e3
75 changed files with 3281 additions and 507 deletions
+67
View File
@@ -11,11 +11,17 @@ export interface LoginResult {
export type RoleKey = 'user' | 'supervisor' | 'candidate';
export interface MobileProject {
projectCode: string;
projectName: string;
}
export interface MobileIdentity {
role: RoleKey;
roleLabel: string;
positionName: string;
positionLevel: string;
projects: MobileProject[];
}
export interface TtsResponse {
@@ -207,6 +213,18 @@ export interface MemoryCandidateDraft {
summary: string;
detail: string;
status: string;
workDate?: string | null;
businessStatus?: string | null;
}
export interface WorkSourceSnapshot {
sourceType: 'TEXT' | 'VOICE' | 'IMAGE' | 'VIDEO' | string;
transcript?: string | null;
ossId?: number | null;
fileName?: string | null;
mimeType?: string | null;
fileSize?: number | null;
recognizedSummary?: string | null;
}
export interface MemoryCandidate {
@@ -218,6 +236,7 @@ export interface MemoryCandidate {
draft: MemoryCandidateDraft;
missingFields: string[];
expiresAt: string | null;
source?: WorkSourceSnapshot | null;
}
export interface MemoryConfirmRequest {
@@ -247,8 +266,56 @@ export interface AssistantCapture {
detail?: string | null;
occurredAt: string;
followUpAt?: string | null;
workDate?: string | null;
businessStatus: 'RECORDED' | 'PENDING' | 'IN_PROGRESS' | 'COMPLETED' | 'VOID' | string;
deliveryStatus: 'NOT_REQUIRED' | 'PENDING' | 'DELIVERED' | 'FAILED' | string;
createdAt: string;
source?: WorkSourceSnapshot | null;
}
export interface CaptureStatusHistory {
id: number;
fromStatus: string;
toStatus: string;
note?: string | null;
operatorUserId: number;
createdAt: string;
}
export interface WorkResultItem {
captureId: number;
suggestedType: string;
category: string;
summary: string;
businessStatus: string;
deliveryStatus: string;
occurredAt: string;
sourceType: string;
sourceUrl: string;
}
export interface WorkResult {
ownerUserId: number;
ownerName: string;
projectCode: string;
projectName: string;
workDate: string;
version: number;
generatedAt: string;
sections: Record<string, WorkResultItem[]>;
total: number;
pending: number;
}
export interface ProjectWorkResult {
projectCode: string;
projectName: string;
workDate: string;
contributorCount: number;
resultCount: number;
pendingCount: number;
highPriorityCount: number;
members: WorkResult[];
}
export interface ServiceMemory {