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