基于若依ruoyi-nbcio增加flowable流程是否结束的接口
  Phag4aaQX4ZJ 2023年11月02日 144 0


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

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

因为原先继承的项目没有flowable流程是否结束的接口,主要用在消息提醒里的流程办理。

1、control层

/**
     * 查询流程是否结束
     *
     * @param procInsId
     * @param 
     */
    @GetMapping("/iscompleted")
    public R processIscompleted(String procInsId) {
        return R.ok(processService.processIscompleted(procInsId));
    }

2、Iservice层

/**
     * 查询流程是否结束
     * @param procInsId 流程实例ID
     * 
     */
	boolean processIscompleted(String procInsId);

3、实现层

@Override
	public boolean processIscompleted(String procInsId) {
		
		// 获取流程状态
        HistoricVariableInstance processStatusVariable = historyService.createHistoricVariableInstanceQuery()
            .processInstanceId(procInsId)
            .variableName(ProcessConstants.PROCESS_STATUS_KEY)
            .singleResult();
        if (ObjectUtil.isNotNull(processStatusVariable)) {
        	String processStatus = null;
            if (ObjectUtil.isNotNull(processStatusVariable)) {
                processStatus = Convert.toStr(processStatusVariable.getValue());
                if(StringUtils.equalsIgnoreCase(processStatus, "completed")) {
                	return true;
                }
            }
        }    
		return false;
	}

4、前端调用

initData() {
      this.taskForm.procInsId = this.$route.params && this.$route.params.procInsId;
      this.taskForm.taskId  = this.$route.query && this.$route.query.taskId;
      this.processed = this.$route.query && eval(this.$route.query.processed || false);

      //判断流程是否结束
      processIscompleted({procInsId: this.taskForm.procInsId}).then(res => {
        console.log("processIscompleted res=",res);
        if(res.data) {
         this.processed = false;
        }
        // 流程任务重获取变量表单
        this.getProcessDetails(this.taskForm.procInsId, this.taskForm.taskId);
        this.loadIndex = this.taskForm.procInsId;
        if(this.processed) {
          this.activeName = "approval";
        }
        else {
          this.activeName = "form";
          // 回填数据,这里主要是处理文件列表显示,临时解决,以后应该在formdesigner里完成
          this.processFormList.forEach((item, i) => {
            if (item.hasOwnProperty('list')) {
              this.fillFormData(item.list, item)
              // 更新表单
              this.key = +new Date().getTime()
            }
          });
        }
      });
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
Phag4aaQX4ZJ