feat(oapi): 应用内审批 oapi——待办/办件查询 + 办理(operator 复核)+ 待办跳转 bizUrl 优先
build / build-push (push) Successful in 1m29s

- GET /oapi/flow/tasks/todo?schId&assigneeId&bizType&page&size(出参含 biz 定位/快照/版本)
- GET /oapi/flow/instances?schId&bizType&status&page&size(查询不限办理人)
- POST /oapi/flow/task/{taskId}/approve|reject?schId&operatorId&operatorName:
  operatorId 按任务办理人逐字复核(非办理人→业务码拒绝不 500),拒绝必填意见,
  opinion 经事件链透传到回调 payload;审批后回调/待办减一自动复用
- 待办通知 jumpPath:办件 bizUrl 优先(空回落 /task/{taskId})

契约 IT +3(todo 过滤分页/instances 状态过滤/办理三态+payload 断言),
单测 UserMsgNotifierBizUrlTest 两态;全量 99 单测 + 11 契约 IT 绿。
This commit is contained in:
chenxing
2026-09-22 16:54:29 +08:00
parent d2395c20ce
commit f2126cdf32
8 changed files with 519 additions and 4 deletions
@@ -145,4 +145,47 @@ public final class OapiModels {
/** 相对 token 有效期(秒) */
private long expiresIn;
}
/** 待办任务行(tasks/todo 元素):审批列表页数据源,带办件定位与快照 */
@Data
public static class TodoTaskVo {
private Long taskId;
private Long instanceId;
/** 办件当前版本(办理前对账用) */
private Integer instanceVersion;
private String bizType;
private String bizId;
private String bizTitle;
/** 办件快照原文(JSON 字符串,发起时未传则 null) */
private String bizSnapshot;
private String nodeId;
private String nodeName;
private Integer assigneeId;
private String assigneeName;
private String arriveTime;
}
/** 办件行(instances 元素):应用侧列表/对账数据源 */
@Data
public static class InstanceItemVo {
private Long instanceId;
private Integer status;
private Integer version;
private String bizType;
private String bizId;
private String bizTitle;
private String bizUrl;
private String submitterName;
private String submitTime;
private String finishTime;
private String currentNodes;
}
/** 办理入参(approve/reject 请求体;opinion 可空,拒绝侧服务层强制必填) */
@Data
public static class HandleBody {
private String opinion;
/** 多出口节点办理时所选出口名(单出口可省) */
private String edgeName;
}
}