网站开发使用软件环境,明星 卡片网站该怎么做,微网站开发平台免费,有什么网站可以做家装文章目录一、流程实例的管理接口常见功能#xff1a;1.启动一个流程#xff08;即创建一个流程实例#xff09;2.本人发起的流程实例3.本人参与的流程实例4.挂起/激活流程实例5.提前终止流程实例#xff08;或又叫撤销流程#xff09;6.彻底删除流程实例7.流程图查看8.判断…
文章目录一、流程实例的管理接口常见功能1.启动一个流程即创建一个流程实例2.本人发起的流程实例3.本人参与的流程实例4.挂起/激活流程实例5.提前终止流程实例或又叫撤销流程6.彻底删除流程实例7.流程图查看8.判断流程实例的状态(运行中/已结束二、主要接口2.1. 启动流程2.2. 提前终止流程实例2.3. 本人发起的流程实例2.4. 挂起与激活流程实例2.5. 生成流程图2.6. 判断流程实例在运行中是否存在2.7. 查询历史实例中流程实例是否存在一、流程实例的管理接口常见功能
1.启动一个流程即创建一个流程实例
2.本人发起的流程实例
3.本人参与的流程实例
4.挂起/激活流程实例
5.提前终止流程实例或又叫撤销流程
6.彻底删除流程实例
7.流程图查看
8.判断流程实例的状态(运行中/已结束
二、主要接口
2.1. 启动流程
public ProcessInstance strartFlow(String processKey, MapString, Object paras){//启动前必须开启,这样才能取得流程发起人String userIdparas.get(AuthenticatedUserId).toString();//设置流程实例的发起人是当前用户Authentication.setAuthenticatedUserId(userId);// 取得业务idString busiKey paras.get(busiKey).toString();if (StringUtils.isEmpty(processKey)){logger.error(错误流程定义未找到);}if (null paras){paras new HashMap();}Deployment deployment repositoryService.createDeploymentQuery().processDefinitionKey(processKey).singleResult();if (deployment null) {logger.error(错误启动流程实例: processKey);}ProcessInstance processInstance runtimeService.startProcessInstanceByKey(processKey, busiKey, paras); // 同时设置业务的id到流程实例中的BUSINESS_KEY_logger.info(成功启动流程实例 processInstance.getProcessDefinitionName() : processInstance.getId());Authentication.setAuthenticatedUserId(null); // 这个方法最终使用一个ThreadLocal类型的变量进行存储也就是与当前的线程绑定所以流程实例启动完毕之后需要设置为null防止多线程的时候出问题。return processInstance;
}2.2. 提前终止流程实例
public void deleteProcessInstanceById(String processInstanceId){// 这个参数本来可以写删除原因runtimeService.deleteProcessInstance(processInstanceId,);
}2.3. 本人发起的流程实例
/*** Description: 我发起的流程实例列表*** Date: 2019/5/12 20:31* Param:userId 用户id* return: ListZjm_gflowTask 流程实例列表**/
public ListHistoricProcessInstance getMyStartProcint(String userId){ListHistoricProcessInstance listprocessEngine.getHistoryService() // 历史相关Service.createHistoricProcessInstanceQuery().startedBy(userId).orderByProcessInstanceStartTime().asc().list();return list;
}2.4. 挂起与激活流程实例
/*** Description: 挂起流程实例* ** Date: 2019/5/15 1:19 * Param: processInstanceId 当前流程实例id* return: 无**/
public void handUpProcessInstance(String processInstanceId){runtimeService.suspendProcessInstanceById(processInstanceId);
}/*** Description:恢复唤醒被挂起的流程实例* ** Date: 2019/5/15 1:22 * Param: processInstanceId 流程实例id* return: 无**/
public void activateProcessInstance(String processInstanceId){runtimeService.activateProcessInstanceById(processInstanceId);
}2.5. 生成流程图
// 将生成图片放到文件夹下
String deploymentId 801;
// 获取图片资源的名称
ListString list processEngine.getRepositoryService().getDeploymentResourceNames(deploymentId);
// 定义图片资源的名称
String resourceName ;
if (list !null list.size()0){for (String name:list){if (name.indexOf(.png)0){resourceName name;}}
}// 获取图片的输入流
InputStream in processEngine.getRepositoryService().getResourceAsStream(deploymentId,resourceName);
// 将图片生成到D盘的根目录下
File file new File (D:/ resourceName);
// 将输入流的图片写到d盘下
FileUtils.copyInputStreamToFile(in,file);2.6. 判断流程实例在运行中是否存在
/*** Description: 判断流程实例在运行中存不存在* ** Date: 2019/5/26 19:24 * Param: procInstanceId 流程实例* return: true表示存在,false表示不存在**/
public Boolean isExistProcIntRunning(String procInstanceId){ProcessInstance pi runtimeService.createProcessInstanceQuery().processInstanceId(procInstanceId).singleResult();if (pinull){return false;}else{return true;}
}2.7. 查询历史实例中流程实例是否存在
/*** Description: 查询历史实例中流程实例是否存在* ** Date: 2019/5/26 19:35 * Param: procInstanceId 流程实例* return: true表示存在,false表示不存在**/
public Boolean isExistProcHistory(String procInstanceId){HistoricProcessInstance hpi historyService.createHistoricProcessInstanceQuery().processInstanceId(procInstanceId).singleResult();if (hpinull){return false;}else{return true;}
}