吸收数字员工多步审批跨端回写
This commit is contained in:
@@ -283,6 +283,62 @@ function checkDigitalApprovalHistorySubscriptions() {
|
||||
console.log("[DigitalEmployeeCheck] approval history/subscription hooks OK");
|
||||
}
|
||||
|
||||
function checkDigitalApprovalWorkflowSync() {
|
||||
console.log("\n[DigitalEmployeeCheck] Verify approval workflow/sync hooks");
|
||||
const adapterPath = path.join(packageRoot, "embedded", "sgrobot-digital", "src", "lib", "qimingclawAdapter.ts");
|
||||
const apiPath = path.join(packageRoot, "embedded", "sgrobot-digital", "src", "lib", "api.ts");
|
||||
const typesPath = path.join(packageRoot, "embedded", "sgrobot-digital", "src", "types", "api.ts");
|
||||
const commandDeckPath = path.join(packageRoot, "embedded", "sgrobot-digital", "src", "pages", "digital", "CommandDeck.tsx");
|
||||
const stateServicePath = path.join(packageRoot, "src", "main", "services", "digitalEmployee", "stateService.ts");
|
||||
const syncServicePath = path.join(packageRoot, "src", "main", "services", "digitalEmployee", "syncService.ts");
|
||||
const ipcHandlersPath = path.join(packageRoot, "src", "main", "ipc", "digitalEmployeeHandlers.ts");
|
||||
const preloadPath = path.join(packageRoot, "src", "preload", "webviewPerfBridge.ts");
|
||||
const adapter = fs.readFileSync(adapterPath, "utf8");
|
||||
const api = fs.readFileSync(apiPath, "utf8");
|
||||
const types = fs.readFileSync(typesPath, "utf8");
|
||||
const commandDeck = fs.readFileSync(commandDeckPath, "utf8");
|
||||
const stateService = fs.readFileSync(stateServicePath, "utf8");
|
||||
const syncService = fs.readFileSync(syncServicePath, "utf8");
|
||||
const ipcHandlers = fs.readFileSync(ipcHandlersPath, "utf8");
|
||||
const preload = fs.readFileSync(preloadPath, "utf8");
|
||||
const requiredSnippets = [
|
||||
[stateService, "DigitalEmployeeApprovalWorkflow", "approval workflow type"],
|
||||
[stateService, "normalizeDigitalEmployeeApprovalWorkflow", "approval workflow normalizer"],
|
||||
[stateService, "applyApprovalWorkflowDecision", "approval workflow decision advancer"],
|
||||
[stateService, "applyApprovalWorkflowAction", "approval workflow action updater"],
|
||||
[stateService, "upsertDigitalEmployeeApprovalFromRemote", "remote approval update upsert helper"],
|
||||
[stateService, "decision_history", "approval workflow decision history field"],
|
||||
[syncService, "pullDigitalEmployeeApprovalUpdates", "remote approval updates pull service"],
|
||||
[syncService, "submitDigitalEmployeeApprovalDecision", "approval decision submit service"],
|
||||
[syncService, "/api/digital-employee/approvals/updates", "remote approval updates default path"],
|
||||
[syncService, "/api/digital-employee/approvals/decisions", "remote approval decisions default path"],
|
||||
[syncService, "approvalUpdatesEndpoint", "approval updates endpoint config"],
|
||||
[syncService, "approvalDecisionsEndpoint", "approval decisions endpoint config"],
|
||||
[syncService, "approvalSyncBusinessView", "approval sync business view"],
|
||||
[syncService, "workflow_id", "approval workflow sync business field"],
|
||||
[ipcHandlers, "digitalEmployee:pullApprovalUpdates", "IPC approval updates pull handler"],
|
||||
[ipcHandlers, "digitalEmployee:submitApprovalDecision", "IPC approval decision submit handler"],
|
||||
[preload, "pullApprovalUpdates", "preload approval updates bridge"],
|
||||
[preload, "submitApprovalDecision", "preload approval decision bridge"],
|
||||
[adapter, "pullApprovalUpdates", "adapter approval updates bridge declaration"],
|
||||
[adapter, "submitApprovalDecision", "adapter approval decision bridge declaration"],
|
||||
[adapter, "/api/approval/updates/pull", "adapter approval updates pull endpoint"],
|
||||
[adapter, "approvalWorkflowSummary", "adapter approval workflow summary"],
|
||||
[api, "pullApprovalUpdates", "embedded approval updates API"],
|
||||
[types, "current_step_label", "approval decision current step type field"],
|
||||
[types, "approval_step_count", "approval decision step count type field"],
|
||||
[commandDeck, "pull_approval_updates", "home approval updates pull action"],
|
||||
[commandDeck, "审批更新", "home approval updates pull button"],
|
||||
];
|
||||
const missing = requiredSnippets
|
||||
.filter(([content, snippet]) => !content.includes(snippet))
|
||||
.map(([, , label]) => label);
|
||||
if (missing.length > 0) {
|
||||
throw new Error(`Missing approval workflow/sync hooks: ${missing.join(", ")}`);
|
||||
}
|
||||
console.log("[DigitalEmployeeCheck] approval workflow/sync hooks OK");
|
||||
}
|
||||
|
||||
function checkDigitalPlanStepGraphDispatchPolicy() {
|
||||
console.log("\n[DigitalEmployeeCheck] Verify PlanStep graph/dispatch policy hooks");
|
||||
const adapterPath = path.join(packageRoot, "embedded", "sgrobot-digital", "src", "lib", "qimingclawAdapter.ts");
|
||||
@@ -557,6 +613,7 @@ function main() {
|
||||
checkDigitalDiagnosticAuditProjection();
|
||||
checkDigitalNotificationPreferences();
|
||||
checkDigitalApprovalHistorySubscriptions();
|
||||
checkDigitalApprovalWorkflowSync();
|
||||
checkDigitalPlanStepGraphDispatchPolicy();
|
||||
checkDigitalSkillRemotePolicy();
|
||||
checkDigitalRiskApprovalPolicy();
|
||||
|
||||
Reference in New Issue
Block a user