基于若依的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);


相关文章
|
7月前
|
移动开发 前端开发
基于若依的ruoyi-nbcio流程管理系统修复自定义业务表单的收回功能
基于若依的ruoyi-nbcio流程管理系统修复自定义业务表单的收回功能
70 1
|
7月前
|
移动开发 前端开发
基于若依的ruoyi-nbcio流程管理系统自定义业务流程出现多个时相应的流程选择问题(二)
基于若依的ruoyi-nbcio流程管理系统自定义业务流程出现多个时相应的流程选择问题(二)
72 3
|
7月前
|
移动开发 前端开发
基于若依的ruoyi-nbcio流程管理系统自定义业务回写状态的一种新方法(二)
基于若依的ruoyi-nbcio流程管理系统自定义业务回写状态的一种新方法(二)
79 2
|
7月前
|
前端开发 数据库
基于若依的ruoyi-nbcio流程管理系统增加流程节点配置(二)
基于若依的ruoyi-nbcio流程管理系统增加流程节点配置(二)
117 1
|
7月前
|
移动开发 前端开发
基于若依的ruoyi-nbcio流程管理系统一种简单的动态表单模拟测试实现(三)
基于若依的ruoyi-nbcio流程管理系统一种简单的动态表单模拟测试实现(三)
81 2
|
7月前
|
JSON 移动开发 前端开发
基于若依的ruoyi-nbcio流程管理系统一种简单的动态表单模拟测试实现(二)
基于若依的ruoyi-nbcio流程管理系统一种简单的动态表单模拟测试实现(二)
97 2
|
7月前
|
移动开发 前端开发
基于若依的ruoyi-nbcio流程管理系统自定义业务实现一种简单的动态任务标题需求
基于若依的ruoyi-nbcio流程管理系统自定义业务实现一种简单的动态任务标题需求
95 1
|
7月前
|
移动开发 前端开发
基于若依的ruoyi-nbcio流程管理系统自定义业务实现一种简单的动态任务标题(续)
基于若依的ruoyi-nbcio流程管理系统自定义业务实现一种简单的动态任务标题(续)
55 1
|
7月前
|
移动开发 前端开发
基于若依的ruoyi-nbcio流程管理系统自定义业务流程出现多个时相应的流程选择问题(一)
基于若依的ruoyi-nbcio流程管理系统自定义业务流程出现多个时相应的流程选择问题(一)
62 1
|
7月前
|
移动开发 前端开发
基于若依的ruoyi-nbcio流程管理系统修复自定义业务表单的取消终止功能
基于若依的ruoyi-nbcio流程管理系统修复自定义业务表单的取消终止功能
73 3