我是一个目录
- 1.分析
- 2. 全部流程实例的挂起和激活
- 3. 单个流程实例挂起
1.分析
如果公司制度发生变化
1.原本没有批完的流程怎么办?
例如:30人没有处理完,怎么办?
看公司制度了,有可能 按原来的走,也有可能全部打回,重新发起,全部按照新流程走。
2.xx员工个人没有批完的流程怎么办?
例如: 单独一个人怎么办?
有可能暂时挂起。
2. 全部流程实例的挂起和激活
public static void main(String[] args){
//1.获得引擎
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
//2.获得RepositoryService
RepositoryService repositoryService = processEngine.getRepositoryService();
//3.查询流程实例
ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery()
.processDefinitionKey("holiday").singleResult();
//4.得到当前流程定义实例是否都为暂停状态
boolean suspended = processDefinition.isSuspended();
String processDefinitionId = processDefinition.getId();
//5.判断
if(suspended){
//说明是暂停,就可以激活操作
repositoryService.activateProcessDefinitionById(processDefinitionId,true,null);
System.out.println("激活");
}else{
repositoryService.suspendProcessDefinitionById(processDefinitionId);
System.out.println("挂起");
}
}
3. 单个流程实例挂起
public static void main(String[] args){
//1.获得引擎
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
//2.获得RunTimeSerice
RuntimeService runtimeService = processEngine.getRuntimeService();
//3.查询流程实例
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery()
.processInstanceBusinessKey("holiday").singleResult();
//4.得到当前流程定义实例是否都为暂停状态
boolean suspended = processInstance.isSuspended();
String processInstanceId = processInstance.getId();
//5.判断
if(suspended){
//说明是暂停,就可以激活操作
runtimeService.activateProcessInstanceById(processInstanceId);
System.out.println("激活");
}else{
runtimeService.suspendProcessInstanceById(processInstanceId);
System.out.println("挂起");
}
}
注意,上面两段代码是因为我都只有一个流程实例,所以用的是singleResult()方法。有多个的话,要调用list()方法。