更多ruoyi-nbcio功能请看演示系统
gitee源代码地址
前后端代码: https://gitee.com/nbacheng/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() } }); } });