Files
break 73f5125d3d
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 8m26s
七月迭代短暂完结,还有很多后端的关键东西没有弄,这是一版赶时间做的东西
2026-07-25 17:06:58 +08:00

4.2 KiB
Raw Blame History

ADDED Requirements

Requirement: 管理员绑定系统账号与企微成员

系统 SHALL 从已配置自建应用的可见通讯录分页查询成员,并允许管理员将系统账号绑定到 (corp_id, userid);列表和详情 SHALL 返回 userid、姓名及绑定状态手机号和邮箱不得作为绑定前置条件不得提供用户扫码自助绑定流程。

Scenario: 从通讯录选择成员绑定账号

  • WHEN 管理员在账号列表为系统账号选择一个应用可见的企微成员
  • THEN 系统保存 corp_id、userid 和展示快照,后续审批可使用该 userid 作为申请人

Scenario: 绑定不可见成员

  • WHEN 管理员提交不在当前企微应用可见范围内的 userid
  • THEN 系统返回参数或权限错误且不保存绑定

Requirement: 业务场景绑定企微后台模板

系统 SHALL 允许管理员配置业务类型、企微 template_id 和业务字段到控件 ID/类型/选项 key 的映射;模板必须已在企微后台创建,系统 MUST 通过模板详情接口校验映射,不得在本系统创建审批节点或审批人规则。

Scenario: 发布有效场景配置

  • WHEN 管理员提交的模板存在且所有必填业务字段均能映射到有效控件
  • THEN 系统启用该场景并保存模板结构校验结果

Scenario: 模板控件已经变化

  • WHEN 模板详情与已配置的控件 ID、类型或选项 key 不一致
  • THEN 系统阻止新审批提交并返回明确配置错误,不影响存量审批同步

Requirement: 使用绑定成员发起模板审批

退款和员工线下代充值 SHALL 通过现有 Approval Port 创建通用审批实例和提交 Outbox企微 Adapter MUST 对已绑定的内部员工使用本人 userid对代理等非企微账号使用应用已配置且当前可见的默认发起人 userid并使用 template_id、use_template_approver=1 和映射后的控件值调用 oa/applyevent。成功后保存 sp_no,业务 Domain/Application 不得解析企微 DTO 或状态码;通用实例中的真实业务提交人不得被默认企微发起人覆盖。

Scenario: 成功发起审批

  • WHEN 提交人已绑定企微成员、场景有效且业务申请校验通过
  • THEN 系统原子保存业务单、通用审批实例和提交事件,并最终把企微 sp_no 关联到该实例

Scenario: 发起前置不完整

  • WHEN 内部提交人未绑定且应用未配置可用默认发起人、代理提交时默认发起人不可见、模板无效或 Adapter 未配置
  • THEN 系统在写入业务单、审批实例和 Outbox 前失败关闭

Scenario: 代理发起退款审批

  • WHEN 代理账号提交退款且应用已配置当前可见的默认发起人
  • THEN 企微审批以默认成员作为 creator_userid 发起,但本地业务申请和通用审批实例仍记录代理为真实提交人

Scenario: 提交结果未知

  • WHEN 调用企微超时且无法判断审批是否创建成功
  • THEN 系统标记结果未知并进入查询恢复,不得直接创建第二张审批单

Requirement: 回调和轮询共同同步审批结果

系统 MUST 验证并解密 sys_approval_change 回调、快速响应,再按 sp_no 获取审批详情并幂等翻译为标准决策;系统 MUST 周期性查询未终态审批并通过批量单号/详情接口补偿回调遗漏。

Scenario: 重复审批回调

  • WHEN 同一审批状态变化被企微重复推送
  • THEN 系统只产生一次对应标准终态和一次业务终态处理

Scenario: 回调丢失

  • WHEN 企微审批已终态但系统未收到回调
  • THEN 轮询任务通过审批详情发现终态并驱动相同的标准决策同步用例

Requirement: 审批人员只做可选读取映射

系统 SHALL 从已同步审批详情的流程节点取得审批人 userid并批量映射系统账号能映射时返回审批人 ID/名称,不能映射时返回空值,不得为展示字段实时逐条调用企微或建立本地审批人规则。

Scenario: 审批人已绑定系统账号

  • WHEN 列表关联的企微审批详情包含已绑定 userid
  • THEN 列表返回对应系统账号 ID 和名称