From 9175b7a4c1800da509c111660bb737cd9e8994c5 Mon Sep 17 00:00:00 2001
From: gssong <1742057357@qq.com>
Date: 星期五, 31 五月 2024 22:10:41 +0800
Subject: [PATCH] update 优化流程实例接口全部按照业务id操作
---
ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessInstanceServiceImpl.java | 88 ++++++++-------------
ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/TestLeaveServiceImpl.java | 2
ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IActProcessInstanceService.java | 32 +++-----
ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/ActProcessInstanceController.java | 52 ++++++------
ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/ProcessInvalidBo.java | 6
ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/QueryUtils.java | 12 +++
6 files changed, 89 insertions(+), 103 deletions(-)
diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/ActProcessInstanceController.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/ActProcessInstanceController.java
index 142386b..931b9f5 100644
--- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/ActProcessInstanceController.java
+++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/ActProcessInstanceController.java
@@ -58,33 +58,33 @@
}
/**
- * 閫氳繃娴佺▼瀹炰緥id鑾峰彇鍘嗗彶娴佺▼鍥�
+ * 閫氳繃涓氬姟id鑾峰彇鍘嗗彶娴佺▼鍥�
*
- * @param processInstanceId 娴佺▼瀹炰緥id
+ * @param businessKey 涓氬姟id
*/
- @GetMapping("/getHistoryImage/{processInstanceId}")
- public R<String> getHistoryImage(@NotBlank(message = "娴佺▼瀹炰緥id涓嶈兘涓虹┖") @PathVariable String processInstanceId) {
- return R.ok("鎿嶄綔鎴愬姛", actProcessInstanceService.getHistoryImage(processInstanceId));
+ @GetMapping("/getHistoryImage/{businessKey}")
+ public R<String> getHistoryImage(@NotBlank(message = "涓氬姟id涓嶈兘涓虹┖") @PathVariable String businessKey) {
+ return R.ok("鎿嶄綔鎴愬姛", actProcessInstanceService.getHistoryImage(businessKey));
}
/**
- * 閫氳繃娴佺▼瀹炰緥id鑾峰彇鍘嗗彶娴佺▼鍥捐繍琛屼腑锛屽巻鍙茬瓑鑺傜偣
+ * 閫氳繃涓氬姟id鑾峰彇鍘嗗彶娴佺▼鍥捐繍琛屼腑锛屽巻鍙茬瓑鑺傜偣
*
- * @param processInstanceId 娴佺▼瀹炰緥id
+ * @param businessKey 涓氬姟id
*/
- @GetMapping("/getHistoryList/{processInstanceId}")
- public R<Map<String, Object>> getHistoryList(@NotBlank(message = "娴佺▼瀹炰緥id涓嶈兘涓虹┖") @PathVariable String processInstanceId) {
- return R.ok("鎿嶄綔鎴愬姛", actProcessInstanceService.getHistoryList(processInstanceId));
+ @GetMapping("/getHistoryList/{businessKey}")
+ public R<Map<String, Object>> getHistoryList(@NotBlank(message = "涓氬姟id涓嶈兘涓虹┖") @PathVariable String businessKey) {
+ return R.ok("鎿嶄綔鎴愬姛", actProcessInstanceService.getHistoryList(businessKey));
}
/**
* 鑾峰彇瀹℃壒璁板綍
*
- * @param processInstanceId 娴佺▼瀹炰緥id
+ * @param businessKey 涓氬姟id
*/
- @GetMapping("/getHistoryRecord/{processInstanceId}")
- public R<List<ActHistoryInfoVo>> getHistoryRecord(@NotBlank(message = "娴佺▼瀹炰緥id涓嶈兘涓虹┖") @PathVariable String processInstanceId) {
- return R.ok(actProcessInstanceService.getHistoryRecord(processInstanceId));
+ @GetMapping("/getHistoryRecord/{businessKey}")
+ public R<List<ActHistoryInfoVo>> getHistoryRecord(@NotBlank(message = "涓氬姟id涓嶈兘涓虹┖") @PathVariable String businessKey) {
+ return R.ok(actProcessInstanceService.getHistoryRecord(businessKey));
}
/**
@@ -102,37 +102,37 @@
/**
* 杩愯涓殑瀹炰緥 鍒犻櫎绋嬪疄渚嬶紝鍒犻櫎鍘嗗彶璁板綍锛屽垹闄や笟鍔′笌娴佺▼鍏宠仈淇℃伅
*
- * @param processInstanceIds 娴佺▼瀹炰緥id
+ * @param businessKeys 涓氬姟id
*/
@Log(title = "娴佺▼瀹炰緥绠$悊", businessType = BusinessType.DELETE)
@RepeatSubmit()
- @DeleteMapping("/deleteRunAndHisInstance/{processInstanceIds}")
- public R<Void> deleteRunAndHisInstance(@NotNull(message = "娴佺▼瀹炰緥id涓嶈兘涓虹┖") @PathVariable String[] processInstanceIds) {
- return toAjax(actProcessInstanceService.deleteRunAndHisInstance(Arrays.asList(processInstanceIds)));
+ @DeleteMapping("/deleteRunAndHisInstance/{businessKeys}")
+ public R<Void> deleteRunAndHisInstance(@NotNull(message = "涓氬姟id涓嶈兘涓虹┖") @PathVariable String[] businessKeys) {
+ return toAjax(actProcessInstanceService.deleteRunAndHisInstance(Arrays.asList(businessKeys)));
}
/**
* 宸插畬鎴愮殑瀹炰緥 鍒犻櫎绋嬪疄渚嬶紝鍒犻櫎鍘嗗彶璁板綍锛屽垹闄や笟鍔′笌娴佺▼鍏宠仈淇℃伅
*
- * @param processInstanceIds 娴佺▼瀹炰緥id
+ * @param businessKeys 涓氬姟id
*/
@Log(title = "娴佺▼瀹炰緥绠$悊", businessType = BusinessType.DELETE)
@RepeatSubmit()
- @DeleteMapping("/deleteFinishAndHisInstance/{processInstanceIds}")
- public R<Void> deleteFinishAndHisInstance(@NotNull(message = "娴佺▼瀹炰緥id涓嶈兘涓虹┖") @PathVariable String[] processInstanceIds) {
- return toAjax(actProcessInstanceService.deleteFinishAndHisInstance(Arrays.asList(processInstanceIds)));
+ @DeleteMapping("/deleteFinishAndHisInstance/{businessKeys}")
+ public R<Void> deleteFinishAndHisInstance(@NotNull(message = "涓氬姟id涓嶈兘涓虹┖") @PathVariable String[] businessKeys) {
+ return toAjax(actProcessInstanceService.deleteFinishAndHisInstance(Arrays.asList(businessKeys)));
}
/**
* 鎾ら攢娴佺▼鐢宠
*
- * @param processInstanceId 娴佺▼瀹炰緥id
+ * @param businessKey 涓氬姟id
*/
@Log(title = "娴佺▼瀹炰緥绠$悊", businessType = BusinessType.INSERT)
@RepeatSubmit()
- @PostMapping("/cancelProcessApply/{processInstanceId}")
- public R<Void> cancelProcessApply(@NotBlank(message = "娴佺▼瀹炰緥id涓嶈兘涓虹┖") @PathVariable String processInstanceId) {
- return toAjax(actProcessInstanceService.cancelProcessApply(processInstanceId));
+ @PostMapping("/cancelProcessApply/{businessKey}")
+ public R<Void> cancelProcessApply(@NotBlank(message = "涓氬姟id涓嶈兘涓虹┖") @PathVariable String businessKey) {
+ return toAjax(actProcessInstanceService.cancelProcessApply(businessKey));
}
/**
diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/ProcessInvalidBo.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/ProcessInvalidBo.java
index 35d5652..41e51c2 100644
--- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/ProcessInvalidBo.java
+++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/ProcessInvalidBo.java
@@ -19,10 +19,10 @@
private static final long serialVersionUID = 1L;
/**
- * 娴佺▼瀹炰緥id
+ * 涓氬姟id
*/
- @NotBlank(message = "娴佺▼瀹炰緥id涓嶈兘涓虹┖", groups = {AddGroup.class})
- private String processInstanceId;
+ @NotBlank(message = "涓氬姟id涓嶈兘涓虹┖", groups = {AddGroup.class})
+ private String businessKey;
/**
* 浣滃簾鍘熷洜
diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IActProcessInstanceService.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IActProcessInstanceService.java
index 2fc0c1a..ca3b6fb 100644
--- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IActProcessInstanceService.java
+++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IActProcessInstanceService.java
@@ -20,18 +20,18 @@
/**
* 閫氳繃娴佺▼瀹炰緥id鑾峰彇鍘嗗彶娴佺▼鍥�
*
- * @param processInstanceId 娴佺▼瀹炰緥id
+ * @param businessKey 娴佺▼瀹炰緥id
* @return 缁撴灉
*/
- String getHistoryImage(String processInstanceId);
+ String getHistoryImage(String businessKey);
/**
- * 閫氳繃娴佺▼瀹炰緥id鑾峰彇鍘嗗彶娴佺▼鍥捐繍琛屼腑锛屽巻鍙茬瓑鑺傜偣
+ * 閫氳繃涓氬姟id鑾峰彇鍘嗗彶娴佺▼鍥捐繍琛屼腑锛屽巻鍙茬瓑鑺傜偣
*
- * @param processInstanceId 娴佺▼瀹炰緥id
+ * @param businessKey 涓氬姟id
* @return 缁撴灉
*/
- Map<String, Object> getHistoryList(String processInstanceId);
+ Map<String, Object> getHistoryList(String businessKey);
/**
* 鍒嗛〉鏌ヨ姝e湪杩愯鐨勬祦绋嬪疄渚�
@@ -54,10 +54,10 @@
/**
* 鑾峰彇瀹℃壒璁板綍
*
- * @param processInstanceId 娴佺▼瀹炰緥id
+ * @param businessKey 涓氬姟id
* @return 缁撴灉
*/
- List<ActHistoryInfoVo> getHistoryRecord(String processInstanceId);
+ List<ActHistoryInfoVo> getHistoryRecord(String businessKey);
/**
* 浣滃簾娴佺▼瀹炰緥锛屼笉浼氬垹闄ゅ巻鍙茶褰�(鍒犻櫎杩愯涓殑瀹炰緥)
@@ -70,34 +70,26 @@
/**
* 杩愯涓殑瀹炰緥 鍒犻櫎绋嬪疄渚嬶紝鍒犻櫎鍘嗗彶璁板綍锛屽垹闄や笟鍔′笌娴佺▼鍏宠仈淇℃伅
*
- * @param processInstanceIds 娴佺▼瀹炰緥id
- * @return 缁撴灉
- */
- boolean deleteRunAndHisInstance(List<String> processInstanceIds);
-
- /**
- * 鎸夌収涓氬姟id鍒犻櫎 杩愯涓殑瀹炰緥 鍒犻櫎绋嬪疄渚嬶紝鍒犻櫎鍘嗗彶璁板綍锛屽垹闄や笟鍔′笌娴佺▼鍏宠仈淇℃伅
- *
* @param businessKeys 涓氬姟id
* @return 缁撴灉
*/
- boolean deleteRunAndHisInstanceByBusinessKeys(List<String> businessKeys);
+ boolean deleteRunAndHisInstance(List<String> businessKeys);
/**
* 宸插畬鎴愮殑瀹炰緥 鍒犻櫎绋嬪疄渚嬶紝鍒犻櫎鍘嗗彶璁板綍锛屽垹闄や笟鍔′笌娴佺▼鍏宠仈淇℃伅
*
- * @param processInstanceIds 娴佺▼瀹炰緥id
+ * @param businessKeys 涓氬姟id
* @return 缁撴灉
*/
- boolean deleteFinishAndHisInstance(List<String> processInstanceIds);
+ boolean deleteFinishAndHisInstance(List<String> businessKeys);
/**
* 鎾ら攢娴佺▼鐢宠
*
- * @param processInstanceId 娴佺▼瀹炰緥id
+ * @param businessKey 涓氬姟id
* @return 缁撴灉
*/
- boolean cancelProcessApply(String processInstanceId);
+ boolean cancelProcessApply(String businessKey);
/**
* 鍒嗛〉鏌ヨ褰撳墠鐧诲綍浜哄崟鎹�
diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessInstanceServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessInstanceServiceImpl.java
index 3e20d74..f7a3db8 100644
--- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessInstanceServiceImpl.java
+++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessInstanceServiceImpl.java
@@ -184,28 +184,28 @@
}
/**
- * 閫氳繃娴佺▼瀹炰緥id鑾峰彇鍘嗗彶娴佺▼鍥�
+ * 閫氳繃涓氬姟id鑾峰彇鍘嗗彶娴佺▼鍥�
*
- * @param processInstanceId 娴佺▼瀹炰緥id
+ * @param businessKey 涓氬姟id
*/
@SneakyThrows
@Override
- public String getHistoryImage(String processInstanceId) {
+ public String getHistoryImage(String businessKey) {
String processDefinitionId;
// 鑾峰彇褰撳墠鐨勬祦绋嬪疄渚�
- ProcessInstance processInstance = QueryUtils.instanceQuery(processInstanceId).singleResult();
+ ProcessInstance processInstance = QueryUtils.businessKeyQuery(businessKey).singleResult();
// 濡傛灉娴佺▼宸茬粡缁撴潫锛屽垯寰楀埌缁撴潫鑺傜偣
if (Objects.isNull(processInstance)) {
- HistoricProcessInstance pi = QueryUtils.hisInstanceQuery(processInstanceId).singleResult();
+ HistoricProcessInstance pi = QueryUtils.hisInstanceQuery().processInstanceBusinessKey(businessKey).singleResult();
processDefinitionId = pi.getProcessDefinitionId();
} else {
// 鏍规嵁娴佺▼瀹炰緥ID鑾峰緱褰撳墠澶勪簬娲诲姩鐘舵�佺殑ActivityId鍚堥泦
- ProcessInstance pi = QueryUtils.instanceQuery(processInstanceId).singleResult();
+ ProcessInstance pi = QueryUtils.instanceQuery(processInstance.getProcessInstanceId()).singleResult();
processDefinitionId = pi.getProcessDefinitionId();
}
// 鑾峰緱娲诲姩鐨勮妭鐐�
- List<HistoricActivityInstance> highLightedFlowList = QueryUtils.hisActivityInstanceQuery(processInstanceId).orderByHistoricActivityInstanceStartTime().asc().list();
+ List<HistoricActivityInstance> highLightedFlowList = QueryUtils.hisActivityInstanceQuery(processInstance.getProcessInstanceId()).orderByHistoricActivityInstanceStartTime().asc().list();
List<String> highLightedFlows = new ArrayList<>();
List<String> highLightedNodes = new ArrayList<>();
@@ -240,15 +240,16 @@
}
/**
- * 閫氳繃娴佺▼瀹炰緥id鑾峰彇鍘嗗彶娴佺▼鍥捐繍琛屼腑锛屽巻鍙茬瓑鑺傜偣
+ * 閫氳繃涓氬姟id鑾峰彇鍘嗗彶娴佺▼鍥捐繍琛屼腑锛屽巻鍙茬瓑鑺傜偣
*
- * @param processInstanceId 娴佺▼瀹炰緥id
+ * @param businessKey 涓氬姟id
*/
@Override
- public Map<String, Object> getHistoryList(String processInstanceId) {
+ public Map<String, Object> getHistoryList(String businessKey) {
Map<String, Object> map = new HashMap<>();
List<Map<String, Object>> taskList = new ArrayList<>();
- HistoricProcessInstance historicProcessInstance = QueryUtils.hisInstanceQuery(processInstanceId).singleResult();
+ HistoricProcessInstance historicProcessInstance = QueryUtils.hisBusinessKeyQuery(businessKey).singleResult();
+ String processInstanceId = historicProcessInstance.getId();
StringBuilder xml = new StringBuilder();
ProcessDefinition processDefinition = repositoryService.getProcessDefinition(historicProcessInstance.getProcessDefinitionId());
// 鑾峰彇鑺傜偣
@@ -333,13 +334,15 @@
/**
* 鑾峰彇瀹℃壒璁板綍
*
- * @param processInstanceId 娴佺▼瀹炰緥id
+ * @param businessKey 涓氬姟id
*/
@Override
- public List<ActHistoryInfoVo> getHistoryRecord(String processInstanceId) {
+ public List<ActHistoryInfoVo> getHistoryRecord(String businessKey) {
// 鏌ヨ浠诲姟鍔炵悊璁板綍
- List<HistoricTaskInstance> list = QueryUtils.hisTaskInstanceQuery(processInstanceId).orderByHistoricTaskInstanceEndTime().desc().list();
+ List<HistoricTaskInstance> list = QueryUtils.hisTaskBusinessKeyQuery(businessKey).orderByHistoricTaskInstanceEndTime().desc().list();
list = StreamUtils.sorted(list, Comparator.comparing(HistoricTaskInstance::getEndTime, Comparator.nullsFirst(Date::compareTo)).reversed());
+ HistoricProcessInstance historicProcessInstance = QueryUtils.hisBusinessKeyQuery(businessKey).singleResult();
+ String processInstanceId = historicProcessInstance.getId();
List<ActHistoryInfoVo> actHistoryInfoVoList = new ArrayList<>();
List<Comment> processInstanceComments = taskService.getProcessInstanceComments(processInstanceId);
//闄勪欢
@@ -440,7 +443,8 @@
@Transactional(rollbackFor = Exception.class)
public boolean deleteRunInstance(ProcessInvalidBo processInvalidBo) {
try {
- List<Task> list = QueryUtils.taskQuery(processInvalidBo.getProcessInstanceId()).list();
+ List<Task> list = QueryUtils.taskQuery().processInstanceBusinessKey(processInvalidBo.getBusinessKey()).list();
+ String processInstanceId = list.get(0).getProcessInstanceId();
List<Task> subTasks = StreamUtils.filter(list, e -> StringUtils.isNotBlank(e.getParentTaskId()));
if (CollUtil.isNotEmpty(subTasks)) {
subTasks.forEach(e -> taskService.deleteTask(e.getId()));
@@ -452,10 +456,10 @@
for (Task task : StreamUtils.filter(list, e -> StringUtils.isBlank(e.getParentTaskId()))) {
taskService.addComment(task.getId(), task.getProcessInstanceId(), TaskStatusEnum.INVALID.getStatus(), deleteReason);
}
- HistoricProcessInstance historicProcessInstance = QueryUtils.hisInstanceQuery(processInvalidBo.getProcessInstanceId()).singleResult();
+ HistoricProcessInstance historicProcessInstance = QueryUtils.hisInstanceQuery(processInstanceId).singleResult();
BusinessStatusEnum.checkInvalidStatus(historicProcessInstance.getBusinessStatus());
- runtimeService.updateBusinessStatus(processInvalidBo.getProcessInstanceId(), BusinessStatusEnum.INVALID.getStatus());
- runtimeService.deleteProcessInstance(processInvalidBo.getProcessInstanceId(), deleteReason);
+ runtimeService.updateBusinessStatus(processInstanceId, BusinessStatusEnum.INVALID.getStatus());
+ runtimeService.deleteProcessInstance(processInstanceId, deleteReason);
FlowProcessEventHandler processHandler = flowEventStrategy.getProcessHandler(historicProcessInstance.getProcessDefinitionKey());
if (processHandler != null) {
processHandler.handleProcess(historicProcessInstance.getBusinessKey(), BusinessStatusEnum.INVALID.getStatus(), false);
@@ -470,40 +474,11 @@
/**
* 杩愯涓殑瀹炰緥 鍒犻櫎绋嬪疄渚嬶紝鍒犻櫎鍘嗗彶璁板綍锛屽垹闄や笟鍔′笌娴佺▼鍏宠仈淇℃伅
*
- * @param processInstanceIds 娴佺▼瀹炰緥id
- */
- @Override
- @Transactional(rollbackFor = Exception.class)
- public boolean deleteRunAndHisInstance(List<String> processInstanceIds) {
- try {
- // 1.鍒犻櫎杩愯涓祦绋嬪疄渚�
- List<Task> list = QueryUtils.taskQuery(processInstanceIds).list();
- List<Task> subTasks = StreamUtils.filter(list, e -> StringUtils.isNotBlank(e.getParentTaskId()));
- if (CollUtil.isNotEmpty(subTasks)) {
- subTasks.forEach(e -> taskService.deleteTask(e.getId()));
- }
- runtimeService.bulkDeleteProcessInstances(processInstanceIds, LoginHelper.getUserId() + "鍒犻櫎浜嗗綋鍓嶆祦绋嬬敵璇�");
- // 2.鍒犻櫎鍘嗗彶璁板綍
- List<HistoricProcessInstance> historicProcessInstanceList = QueryUtils.hisInstanceQuery(new HashSet<>(processInstanceIds)).list();
- if (ObjectUtil.isNotEmpty(historicProcessInstanceList)) {
- historyService.bulkDeleteHistoricProcessInstances(processInstanceIds);
- }
- wfTaskBackNodeService.deleteByInstanceIds(processInstanceIds);
- return true;
- } catch (Exception e) {
- e.printStackTrace();
- throw new ServiceException(e.getMessage());
- }
- }
-
- /**
- * 鎸夌収涓氬姟id鍒犻櫎 杩愯涓殑瀹炰緥 鍒犻櫎绋嬪疄渚嬶紝鍒犻櫎鍘嗗彶璁板綍锛屽垹闄や笟鍔′笌娴佺▼鍏宠仈淇℃伅
- *
* @param businessKeys 涓氬姟id
*/
@Override
@Transactional(rollbackFor = Exception.class)
- public boolean deleteRunAndHisInstanceByBusinessKeys(List<String> businessKeys) {
+ public boolean deleteRunAndHisInstance(List<String> businessKeys) {
try {
// 1.鍒犻櫎杩愯涓祦绋嬪疄渚�
List<ActHiProcinst> actHiProcinsts = actHiProcinstService.selectByBusinessKeyIn(businessKeys);
@@ -534,12 +509,18 @@
/**
* 宸插畬鎴愮殑瀹炰緥 鍒犻櫎绋嬪疄渚嬶紝鍒犻櫎鍘嗗彶璁板綍锛屽垹闄や笟鍔′笌娴佺▼鍏宠仈淇℃伅
*
- * @param processInstanceIds 娴佺▼瀹炰緥id
+ * @param businessKeys 涓氬姟id
*/
@Override
@Transactional(rollbackFor = Exception.class)
- public boolean deleteFinishAndHisInstance(List<String> processInstanceIds) {
+ public boolean deleteFinishAndHisInstance(List<String> businessKeys) {
try {
+ List<ActHiProcinst> actHiProcinsts = actHiProcinstService.selectByBusinessKeyIn(businessKeys);
+ if (CollUtil.isEmpty(actHiProcinsts)) {
+ log.warn("褰撳墠涓氬姟ID:{}鏌ヨ鍒版祦绋嬪疄渚嬩负绌猴紒", businessKeys);
+ return false;
+ }
+ List<String> processInstanceIds = StreamUtils.toList(actHiProcinsts, ActHiProcinst::getId);
historyService.bulkDeleteHistoricProcessInstances(processInstanceIds);
wfTaskBackNodeService.deleteByInstanceIds(processInstanceIds);
return true;
@@ -552,13 +533,13 @@
/**
* 鎾ら攢娴佺▼鐢宠
*
- * @param processInstanceId 娴佺▼瀹炰緥id
+ * @param businessKey 涓氬姟id
*/
@Override
@Transactional(rollbackFor = Exception.class)
- public boolean cancelProcessApply(String processInstanceId) {
+ public boolean cancelProcessApply(String businessKey) {
try {
- ProcessInstance processInstance = QueryUtils.instanceQuery(processInstanceId)
+ ProcessInstance processInstance = QueryUtils.businessKeyQuery(businessKey)
.startedBy(String.valueOf(LoginHelper.getUserId())).singleResult();
if (ObjectUtil.isNull(processInstance)) {
throw new ServiceException("鎮ㄤ笉鏄祦绋嬪彂璧蜂汉,鎾ら攢澶辫触!");
@@ -566,6 +547,7 @@
if (processInstance.isSuspended()) {
throw new ServiceException(FlowConstant.MESSAGE_SUSPENDED);
}
+ String processInstanceId = processInstance.getId();
BusinessStatusEnum.checkCancelStatus(processInstance.getBusinessStatus());
List<Task> taskList = QueryUtils.taskQuery(processInstanceId).list();
for (Task task : taskList) {
diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/TestLeaveServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/TestLeaveServiceImpl.java
index bee5627..af4b5bb 100644
--- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/TestLeaveServiceImpl.java
+++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/TestLeaveServiceImpl.java
@@ -115,7 +115,7 @@
@Transactional(rollbackFor = Exception.class)
public Boolean deleteWithValidByIds(Collection<Long> ids) {
List<String> idList = StreamUtils.toList(ids, String::valueOf);
- actProcessInstanceService.deleteRunAndHisInstanceByBusinessKeys(idList);
+ actProcessInstanceService.deleteRunAndHisInstance(idList);
return baseMapper.deleteBatchIds(ids) > 0;
}
}
diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/QueryUtils.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/QueryUtils.java
index 944d9d7..0599a12 100644
--- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/QueryUtils.java
+++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/QueryUtils.java
@@ -75,6 +75,10 @@
return hisTaskInstanceQuery().processInstanceId(processInstanceId);
}
+ public static HistoricTaskInstanceQuery hisTaskBusinessKeyQuery(String businessKey) {
+ return hisTaskInstanceQuery().processInstanceBusinessKey(businessKey);
+ }
+
public static ProcessInstanceQuery instanceQuery() {
ProcessInstanceQuery query = PROCESS_ENGINE.getRuntimeService().createProcessInstanceQuery();
if (TenantHelper.isEnable()) {
@@ -85,6 +89,10 @@
public static ProcessInstanceQuery instanceQuery(String processInstanceId) {
return instanceQuery().processInstanceId(processInstanceId);
+ }
+
+ public static ProcessInstanceQuery businessKeyQuery(String businessKey) {
+ return instanceQuery().processInstanceBusinessKey(businessKey);
}
public static ProcessInstanceQuery instanceQuery(Set<String> processInstanceIds) {
@@ -103,6 +111,10 @@
return hisInstanceQuery().processInstanceId(processInstanceId);
}
+ public static HistoricProcessInstanceQuery hisBusinessKeyQuery(String businessKey) {
+ return hisInstanceQuery().processInstanceBusinessKey(businessKey);
+ }
+
public static HistoricProcessInstanceQuery hisInstanceQuery(Set<String> processInstanceIds) {
return hisInstanceQuery().processInstanceIds(processInstanceIds);
}
--
Gitblit v1.9.3