基于若依的ruoyi-nbcio流程管理系统自定义业务回写状态的一种新方法(一)

简介: 基于若依的ruoyi-nbcio流程管理系统自定义业务回写状态的一种新方法(一)

更多ruoyi-nbcio功能请看演示系统

gitee源代码地址

前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio

演示地址:RuoYi-Nbcio后台管理系统

更多nbcio-boot功能请看演示系统

gitee源代码地址

后端代码: https://gitee.com/nbacheng/nbcio-boot

前端代码:https://gitee.com/nbacheng/nbcio-vue.git

在线演示(包括H5) : http://218.75.87.38:9888

自自定义业务表单流程审批过程中回写状态有多种方法,今天介绍一种新的方法。

1、这次采用任务监听器的方式来更新自定业务表的状态

其中任务监听器就用一个监听器,不同的任务节点赋的表达式不一样

2、监听器代码如下

/**
 * 用户任务监听器,根据传入的字段参数,回写自定义业务表单字段值
 *
 * @author nbacheng
 * @since 2024/2/01
 */
@Component(value = "UpdateFieldListener")
public class UpdateFieldListener implements TaskListener {
  /**
     * 注入字段(名称与流程设计时字段名称一致)
     */
  private Expression status;
  
  @Override
  public void notify(DelegateTask delegateTask) {
    // 实现你的任务监听器逻辑
    String procInsId = delegateTask.getProcessInstanceId();
    CommonService commonService = SpringContextUtils.getBean(CommonService.class);
    HistoryService historyService = SpringContextUtils.getBean(HistoryService.class);
    boolean bOperate = false;
    //对于撤回,退回,收回等都要做过滤处理
    Object object = delegateTask.getVariable("recall");
    if ( object != null) {
      bOperate = (boolean) delegateTask.getVariable("recall");
        if (bOperate) return;
    }
    
    HistoricProcessInstance hi = historyService.createHistoricProcessInstanceQuery()
                .processInstanceId(procInsId)
                .singleResult();
        if (hi != null) {
      String dataId =  hi.getBusinessKey();
      String statusValue = status.getValue(delegateTask).toString();
      if(dataId != null && statusValue !=null) {
        commonService.UpdateData(dataId, statusValue);
      } 
        }
  }

3、其中公共调用更新字段数据代码如下:

@Override
  public void UpdateData(String dataId, String statusValue) {
    //设置自定义表单dataid的数据 
        WfMyBusiness flowmybusiness = wfMyBusinessServiceImpl.getByDataId(dataId);
        String serviceImplName = flowmybusiness.getServiceImplName();
        WfCallBackServiceI flowCallBackService = (WfCallBackServiceI) SpringContextUtils.getBean(serviceImplName);
        if (flowCallBackService!=null){
          flowCallBackService.updateStatusBydataId(dataId, statusValue); 
        } 
  }

4、在WfCallBackServiceI类里增加下面接口

/**
     * 根据业务id更新状态值<br/>
     * @param dataId,statusValue
     * @return
     */
    void updateStatusBydataId(String dataId, String statusValue);


相关文章
|
前端开发
基于若依ruoyi-nbcio支持flowable流程增加自定义业务表单(二)
基于若依ruoyi-nbcio支持flowable流程增加自定义业务表单(二)
1063 1
|
Oracle 关系型数据库 数据库
Oracle中merge Into的用法
Oracle中merge Into的用法
|
Python
Python 判断字符串是否包含子字符串
Python 判断字符串是否包含子字符串
1521 0
|
前端开发 数据库
基于若依的ruoyi-nbcio流程管理系统增加流程节点配置(二)
基于若依的ruoyi-nbcio流程管理系统增加流程节点配置(二)
430 1
|
10月前
|
数据采集 安全 算法
半天百度收录新站方法
这段内容介绍了新站快速被百度收录的优化策略。首先,注重网站内容优化,包括原创高质量内容、合理布局核心关键词及清晰页面结构。其次,利用百度站长工具,如添加站点、主动推送链接和提交sitemap。再者,通过高权重平台发布链接、社交媒体推广及友情链接交换构建外部链接。此外,保持服务器稳定、定期更新内容并正确设置robots.txt可提升抓取频率。部署SSL安全证书有助于提高安全性与排名。最后,强调需保持耐心,因收录时间受多种因素影响,通常1-7天内可被收录。
260 3
|
12月前
|
人工智能 IDE 测试技术
通义灵码 AI 程序员(版本2.0)测评文档
《通义灵码 2.0 测评文档》概述了该工具在AI程序员交互、多文件代码修改、单元测试生成、多轮对话及快照管理等方面的核心功能评估。通过实际测试,验证其提高开发效率、减少重复劳动和提升代码质量的效果。测评涵盖Windows系统与JetBrains IDE环境,针对插件版本2.0.0进行详细的功能测试,包括需求解析准确性、跨文件修改稳定性、单元测试自动生成及用户界面设计等。总结指出,通义灵码 2.0 在多文件修改、单元测试生成和用户体验方面表现出色,但在复杂需求解析和大规模项目性能上仍有改进空间。
539 19
|
敏捷开发 机器人 API
阿里云云效产品使用合集之怎么删除项目
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
SQL XML JavaScript
【若依Java】15分钟玩转若依二次开发,新手小白半小时实现前后端分离项目,springboot+vue3+Element Plus+vite实现Java项目和管理后台网站功能
摘要: 本文档详细介绍了如何使用若依框架快速搭建一个基于SpringBoot和Vue3的前后端分离的Java管理后台。教程涵盖了技术点、准备工作、启动项目、自动生成代码、数据库配置、菜单管理、代码下载和导入、自定义主题样式、代码生成、启动Vue3项目、修改代码、以及对代码进行自定义和扩展,例如单表和主子表的代码生成、树形表的实现、商品列表和分类列表的改造等。整个过程详细地指导了如何从下载项目到配置数据库,再到生成Java和Vue3代码,最后实现前后端的运行和功能定制。此外,还提供了关于软件安装、环境变量配置和代码自动生成的注意事项。
30074 73
基于若依的ruoyi-nbcio流程管理系统增加流程节点配置(一)
基于若依的ruoyi-nbcio流程管理系统增加流程节点配置(一)
219 0
|
前端开发
基于若依的ruoyi-nbcio流程管理系统增加流程节点配置(三)
基于若依的ruoyi-nbcio流程管理系统增加流程节点配置(三)
401 0