【Bug 报告】JitWorkflow + 钉钉 processCentres:审批同意后流程未推进(syncToTable 未执行)

补充复现案例 C(2026-06-10,与案例 B 同模式)

同一业务流、同一部署环境,又出现一例:钉钉 task 已 COMPLETED,同请求内无 syncToTable,且无 ERROR


环境(与主帖一致)

说明
产品 Jit 平台 WorkflowSvc + 钉钉 processCentres 同步
业务审批流 workflows.paymentRegistrationApproval(付款单-审批)
关联模型 models.registrationOfPayments
集成 钉钉 OA 审批 / 待办同步(platformSwitch: 1

现象

案例 付款单号(业务号) 卡住时间 卡住节点 数据 ID
C FK******002 2026-06-10 09:14:58 iYWlUS(审计复核) 987

节点为流程最后一档审批(下一节点应为 EndNode),链路片段:

… → 出纳(qVTmcA) → 付款复核(uYWHXs) → 审计复核(iYWlUS) → EndNode

用户侧:审计复核点「同意」后,审批历史有记录,但流程未完结,实例仍停在 iYWlUS。


请求特征(正常 Web 端,非案例 A 的 token:None)

POST …/workflows/services/WorkflowSvc/doHandle

args: {

workflowName: workflows.paymentRegistrationApproval,

handleType: 2,

nodeId: iYWlUS,

rowData: { id: 987, paymentOrderNumber: FK******002, … } // 完整 row

}

token: [JWT 存在,已省略]


日志链路(requestId: 41b57fc0d4984bc58f10e62512d178f4

[09:14:58] upsert registrationOfPayments pk=987

[09:14:58] insert DataHistoryModel pk=186406

[09:14:58] insert WorkflowHistoryModel pk=57867

[09:14:58] third request: …/oauth2/accessToken

[09:14:59] third request: …/processCentres/tasks

       { processInstanceId: \[PI-C\], tasks: \[{ taskId: \[TASK-C\], status: COMPLETED, result: AGREE }\] }

[09:15:02] App exit completed // 约 3 秒后结束

缺失步骤(相对「最后一节点成功结束」):

  • 无第二条 WorkflowHistory(成功案例在 EndHandle 前通常会再写一条)
  • 无钉钉 processCentres/instances COMPLETED
  • EndHandle do
  • workflows syncToTable(状态应为「已通过」)
  • server.log ERROR / Exception

与同单据「中间节点成功」对比

09:02:28 同一实例、上一节点 uYWlUS(付款复核) 审批成功,日志完整:

钉钉 COMPLETED → syncToTable(currNodeId=iYWlUS)-> WorkflowTaskModel → 钉钉新待办

09:14:58 同一 processInstanceId: [PI-C]、task [TASK-C] 在 COMPLETED 之后,未触发 syncToTable / EndHandle------与主帖 案例 B 一致。


关键对比表(并入主帖汇总)

步骤 成功案例(中间节点) 案例 C(iYWlUS)
完整 rowData
JWT token
DataHistory
WorkflowHistory
钉钉 COMPLETED(tasks)
syncToTable
流程结束 / 下一节点 (应 EndHandle + 已通过)
server.log ERROR -

与案例 B 差异:B 卡在中间节点(缺下一待办);C 卡在最后审批节点(缺 EndHandle + 已通过)。断点模式相同:tasks COMPLETED 之后引擎未推进且无 ERROR。


复现线索(供平台排查,内网保留完整值)

占位符 含义 值(脱敏)
requestId 案例 C 41b57fc0d4984bc58f10e62512d178f4
实例 C workflow instanceId 12034
[PI-C] 钉钉 processInstanceId WEnaZOs3TFm9R0OmnnY0ig0***********
[TASK-C] iYWlUS 待办 taskId 101725944749
WorkflowHistory 本次同意记录 57867
DataHistory 本次 186406
日志文件 server.log(2026-06-10 09:14:58 段)

09:15 之后多次 getWorkflowDataStoreList / getWorkflowHistory 查询,实例 12034 仍为 nodeId: iYWlUS


建议与主帖并案

  1. 案例 A / B / C 均符合「有 tasks COMPLETED、无 syncToTable、无 ERROR」,建议同一根因排查。
  2. 请确认:tasks COMPLETED 返回后,何种分支会跳过 syncToTable / EndHandle;失败时为何不落 ERROR
  3. 若需未脱敏 [PI-C]、JWT、row 快照,可通过工单提供 requestId + 时间戳