feat(版本详情): 完善流程日志与需求覆盖

This commit is contained in:
Script Generator
2026-06-30 11:00:07 +08:00
parent d754585fe0
commit 1cd595c42e
38 changed files with 4123 additions and 237 deletions

View File

@@ -112,6 +112,21 @@ function roundEffortHours(hours: number): number {
return Number(hours.toFixed(2));
}
export function needsDevTaskClaim(task: Pick<DevTask, 'assigneeId'>): boolean {
return !task.assigneeId?.trim();
}
export function hasDevTaskPlan(task: Pick<DevTask, 'expectedStartAt' | 'expectedEndAt'>): boolean {
if (!task.expectedStartAt || !task.expectedEndAt) return false;
const start = new Date(task.expectedStartAt).getTime();
const end = new Date(task.expectedEndAt).getTime();
return Number.isFinite(start) && Number.isFinite(end) && end > start;
}
export function canStartDevTask(task: Pick<DevTask, 'assigneeId' | 'expectedStartAt' | 'expectedEndAt'>): boolean {
return !needsDevTaskClaim(task) && hasDevTaskPlan(task);
}
export function getActualHours(task: DevTask, now: Date = new Date()): number {
if (!task.actualStartAt) return 0;
const end = task.actualEndAt ?? (task.status === 'submitted' ? task.updatedAt : now.toISOString());