吸收数字员工审批时间线
This commit is contained in:
@@ -662,6 +662,11 @@ function recordUiApprovalDecision(update: DigitalEmployeeUiStateUpdate): void {
|
||||
|
||||
const now = new Date().toISOString();
|
||||
const previousStatus = stringField(existing, "status") || "pending";
|
||||
const nextStatus = approvalDecisionStatus(decision);
|
||||
const planId = stringField(existing, "plan_id");
|
||||
const taskId = stringField(existing, "task_id");
|
||||
const runId = stringField(existing, "run_id");
|
||||
const title = stringField(existing, "title") || "待确认事项";
|
||||
const storedPayload = parseStoredPayload(existing["payload"]);
|
||||
const storedPayloadRecord = objectRecord(storedPayload);
|
||||
const acpPermission = objectRecord(metadata?.acp_permission);
|
||||
@@ -682,14 +687,39 @@ function recordUiApprovalDecision(update: DigitalEmployeeUiStateUpdate): void {
|
||||
};
|
||||
upsertApproval({
|
||||
id: decisionId,
|
||||
planId: stringField(existing, "plan_id"),
|
||||
taskId: stringField(existing, "task_id"),
|
||||
runId: stringField(existing, "run_id"),
|
||||
title: stringField(existing, "title") || "待确认事项",
|
||||
status: approvalDecisionStatus(decision),
|
||||
planId,
|
||||
taskId,
|
||||
runId,
|
||||
title,
|
||||
status: nextStatus,
|
||||
payload,
|
||||
now,
|
||||
});
|
||||
const eventPayload = {
|
||||
source: "qimingclaw-approval-decision",
|
||||
approvalId: decisionId,
|
||||
decision,
|
||||
previousStatus,
|
||||
nextStatus,
|
||||
title,
|
||||
planId,
|
||||
taskId,
|
||||
runId,
|
||||
decidedAt: now,
|
||||
...(acpPermission ? { acpPermission } : {}),
|
||||
};
|
||||
insertEvent(
|
||||
{
|
||||
event_id: `${decisionId}:decision:${safeId(decision)}:${safeId(now)}`,
|
||||
kind: "approval_decision",
|
||||
occurred_at: now,
|
||||
message: `审批处理:${title} -> ${decision}`,
|
||||
plan_id: planId,
|
||||
task_id: taskId,
|
||||
},
|
||||
runId || null,
|
||||
eventPayload,
|
||||
);
|
||||
}
|
||||
|
||||
function approvalDecisionStatus(decision: string): string {
|
||||
|
||||
Reference in New Issue
Block a user