ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

SpringBoot+Flowable 流程抄送设计:COPY_NODE、候选人解析与「抄送我的」台账如何落地

SpringBoot+Flowable 流程抄送设计:COPY_NODE、候选人解析与「抄送我的」台账如何落地 SpringBootFlowable 流程抄送设计COPY_NODE、候选人解析与「抄送我的」台账如何落地演示地址http://ruoyioffice.com | 源码1·GitHubruoyi-office | 源码2·GitCoderuoyi-office | 源码3·Giteeruoyi-office | 微信17156169080备注「RuoYi Office」加签、转办改的是「谁来审」超时管的是「人不审怎么办」。还有一类刚需领导要知情但不该出现在待办里挡流程。这就是抄送——知会不审批。本文讲 RuoYi Office 如何把简单流程「抄送人」节点与办理中手动抄送都落到同一张抄送台账。▲ 新风格全景纸感双栏自动抄送节点 vs 手动抄送动作中间「台账同源」底部强调不是待办引言抄送不是缩小版审批审批 / 办理抄送任务形态UserTask / 待办台账记录通常无待办完成动作是否卡住流程是除非或签等提前完成否配置入口审批人节点COPY_NODE 或办理按钮列表入口我的待办 / 已办抄送我的配错后果把抄送人做成审批人 → 领导待办爆炸、流程被不知情节点卡住。一、自动抄送COPY_NODE → ServiceTask简单流程节点类型COPY_NODE(12,抄送人,serviceTask),SimpleModelUtils.CopyNodeConvertServiceTaskserviceTasknewServiceTask();serviceTask.setImplementationType(DELEGATE_EXPRESSION);serviceTask.setImplementation(${bpmCopyTaskDelegate});addCandidateElements(candidateStrategy,candidateParam,serviceTask);执行时BpmCopyTaskDelegateSetLonguserIdstaskCandidateInvoker.calculateUsersByTask(execution);if(CollUtil.isEmpty(userIds))return;processInstanceCopyService.createProcessInstanceCopy(userIds,null,processInstanceId,activityId,activityName,null);要点复用候选人策略——指定角色/部门负责人/自选等与审批节点同一套 Invoker空抄送人直接跳过——不抛错卡死流程无 taskId节点自动抄送——台账仍记 activityId/Name▲ 在流程模型里插入「抄送人」节点并配置候选人发布后随定义自动执行二、手动抄送办理中 copyTask审批人办理时选人抄送// BpmTaskServiceImplprocessInstanceCopyService.createProcessInstanceCopy(reqVO.getCopyUserIds(),reqVO.getReason(),reqVO.getId()/* taskId */);重载先取 Task再写入userId被抄送人reason抄送意见processInstanceId/processInstanceName/categorytaskId/activityId/activityNamestartUserId自动与手动最终都进BpmProcessInstanceCopyDO批量 insert。三、台账与入口「抄送我的」▲ 「抄送我的」只读知会列表与待办分离可从工作台抄送 Tab 进入▲ 对照待办要处理才会推进抄送列表不承担 completionCondition产品语义建议打开抄送单据 → 详情只读或按表单字段权限不提供「同意/拒绝」主按钮除非你们另做「阅知确认」产品那是另一条状态机四、和协作能力的边界能力改变什么加签 / 转办 / 委派审批责任人候选人策略下一关谁审超时处理人不审时系统动作抄送知情面不改审批责任消息通知可在写台账后额外推送但「抄送成功」的数据真相源应是抄送表而不是只发一条易丢的 IM。五、推荐体验路径在线演示http://ruoyioffice.com/web/账号admin/admin123流程模型加一个抄送人节点如抄送发起人部门负责人发布。发起流程用被抄送账号打开抄送我的确认有记录且无待办。在审批待办中点抄送其他人再看台账是否多一条带 reason 的记录。确认流程不因抄送人未读而卡住。源码仓库GitHub | GitCode | Gitee常见问题FAQ抄送人会不会收到待办默认不会。Delegate 只写抄送表待办来自 UserTask。若消息中心另发通知那是提醒通道不是审批任务。抄送节点候选人解析失败怎么办当前实现 userIds 为空则 return流程继续。若业务要求「必须抄到人」需在模型校验或 Delegate 内显式失败策略。和「抄送即知会确认」有何差别知会确认要额外状态已阅/未阅与可能的阻塞规则本设计是轻量台账。加已阅可在抄送表扩字段不必改成 UserTask。手动抄送能否抄给自己取决于前端是否过滤后端按 userIds 写入。产品上可禁自抄减少噪声。结语流程抄送的工程要点是自动节点用 ServiceTask 候选人 Invoker手动动作走 copyTask两者写入同一台账入口与待办彻底拆开。这样领导能知情流程不被「假审批人」拖死。你们现在抄送是 IM 群里一下还是流程里有正式节点有没有把抄送误配成会签欢迎评论区交流。想要体验 RuoYi Office 的强大功能在线演示http://ruoyioffice.com/web/账号 admin / admin123源码仓库GitHub | GitCode | Gitee技术咨询添加微信17156169080备注「RuoYi Office」⭐如果觉得不错请给个 Star 支持一下
返回列表