吸收数字员工审批跨端冲突可视化
This commit is contained in:
@@ -124,6 +124,7 @@ export interface DigitalEmployeeApprovalUpdatesPullResult {
|
||||
pulled_at: string | null;
|
||||
applied: number;
|
||||
ignored: number;
|
||||
conflicted?: number;
|
||||
error?: string | null;
|
||||
}
|
||||
|
||||
@@ -594,9 +595,11 @@ export async function pullDigitalEmployeeApprovalUpdates(
|
||||
const pulledAt = new Date().toISOString();
|
||||
let applied = 0;
|
||||
let ignored = 0;
|
||||
let conflicted = 0;
|
||||
for (const update of updates) {
|
||||
const result = upsertDigitalEmployeeApprovalFromRemote({ ...update, source: update.source ?? "management-api" });
|
||||
if (result.ok && !result.skipped) applied += 1;
|
||||
if (result.ok && result.conflict) conflicted += 1;
|
||||
else if (result.ok && !result.skipped) applied += 1;
|
||||
else ignored += 1;
|
||||
}
|
||||
recordApprovalSyncEvent("approval_updates_pulled", pulledAt, {
|
||||
@@ -605,9 +608,10 @@ export async function pullDigitalEmployeeApprovalUpdates(
|
||||
ok: true,
|
||||
applied,
|
||||
ignored,
|
||||
conflicted,
|
||||
source: "management-api",
|
||||
});
|
||||
return { ok: true, endpoint: config.approvalUpdatesEndpoint, pulled_at: pulledAt, applied, ignored, error: null };
|
||||
return { ok: true, endpoint: config.approvalUpdatesEndpoint, pulled_at: pulledAt, applied, ignored, conflicted, error: null };
|
||||
} catch (error) {
|
||||
const pulledAt = new Date().toISOString();
|
||||
const message = normalizeError(error);
|
||||
|
||||
Reference in New Issue
Block a user