当前位置:网站首页>使用camunda做工作流设计,驳回操作
使用camunda做工作流设计,驳回操作
2022-07-07 18:13:00 【枫林残@】
判断是否驳回,可参照如下表格:
camunda页面表象:
具体代码实现:
ActivityInstance tree = runtimeService.getActivityInstance(processInstanceId);
List<HistoricActivityInstance> resultList = historyService
.createHistoricActivityInstanceQuery()
.processInstanceId(processInstanceId)
.activityType("userTask")
.finished()
.orderByHistoricActivityInstanceEndTime()
.asc()
.list();
//得到任务节点id
List<HistoricActivityInstance> historicActivityInstanceList = resultList.stream().filter(historicActivityInstance -> historicActivityInstance.getActivityId().equals(rejectTaskDTO.getTaskKey())).collect(Collectors.toList());
HistoricActivityInstance historicActivityInstance = historicActivityInstanceList.get(0);
String toActId = historicActivityInstance.getActivityId();
taskService.createComment(task.getId(), processInstanceId, rejectTaskDTO.getMessage());
runtimeService.createProcessInstanceModification(processInstanceId)
.cancelActivityInstance(getInstanceIdForActivity(tree, task.getTaskDefinitionKey()))
.cancelAllForActivity(currentTaskId)
.setAnnotation("进行了驳回到指定任务节点操作")
.startBeforeActivity(toActId)//启动目标活动节点
.execute();
taskKey :为需要驳回到的活动节点key
currentTaskId:为当前任务id
驳回后要修改ACT_HI_TASKINST status状态,要不与加减签状态重复。
修改逻辑如下:
actHiTaskInstDao.updateHiTaskInstByIdArray(Arrays.asList(currentTaskId), Constant.DATE_TIME_CODE_FORMATTER.format(LocalDateTime.now()));
@Mapper
public interface ActHiTaskInstDao {
@Update(" <script> " +
" update ACT_HI_TASKINST set " +
" END_TIME_ = #{endTime}, DELETE_REASON_ = 'rejected' " +
" where ID_ in " +
" <foreach collection = 'taskIdLit' item = 't' separator = ',' open = '(' close = ')' > " +
" #{t}" +
" </foreach> " +
" </script> ")
int updateHiTaskInstByIdArray(@Param("taskIdLit") List<String> taskIdLit, @Param("endTime") String endTime);
}
边栏推荐
- ASP.NET学习& asp‘s one word
- Graduation season | regretful and lucky graduation season
- Force buckle 1037 Effective boomerang
- JVM 类加载机制
- BI的边界:BI不适合做什么?主数据、MarTech?该如何扩展?
- Boot 和 Cloud 的版本选型
- One click deployment of any version of redis
- Get webkitformboundary post login
- Force buckle 599 Minimum index sum of two lists
- 力扣 1232.缀点成线
猜你喜欢
mock.js从对象数组中任选数据返回一个数组
Force buckle 599 Minimum index sum of two lists
Compiler optimization (4): inductive variables
mock. JS returns an array from the optional data in the object array
MRS离线数据分析:通过Flink作业处理OBS数据
Open source heavy ware! Chapter 9 the open source project of ylarn causal learning of Yunji datacanvas company will be released soon!
整型int的拼接和拆分
[philosophy and practice] the way of program design
【mysql篇-基础篇】事务
ASP. Net learning & ASP's one word
随机推荐
Cloud component development and upgrading
How to cooperate among multiple threads
【mysql篇-基础篇】事务
The boundary of Bi: what is bi not suitable for? Master data, Martech? How to expand?
力扣 912.排序数组
About cv2 dnn. Readnetfromonnx (path) reports error during processing node with 3 inputs and 1 outputs [exclusive release]
Compiler optimization (4): inductive variables
Force buckle 1961 Check whether the string is an array prefix
SQL common optimization
编译器优化那些事儿(4):归纳变量
vulnhub之Funfox2
School 1 of vulnhub
力扣 2319. 判断矩阵是否是一个 X 矩阵
equals 方法
Opencv learning notes high dynamic range (HDR) imaging
AIRIOT助力城市管廊工程,智慧物联守护城市生命线
写了个 Markdown 命令行小工具,希望能提高园友们发文的效率!
sql 常用优化
一键部署Redis任意版本
力扣 1790. 仅执行一次字符串交换能否使两个字符串相等