From c84f24fe209dda159b48b428c8f4bf2e4e45b540 Mon Sep 17 00:00:00 2001
From: gssong <1742057357@qq.com>
Date: 星期五, 31 五月 2024 22:58:13 +0800
Subject: [PATCH] add 添加通用接口

---
 ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/service/WorkflowService.java     |   33 ++++++++++++++++
 ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WorkflowServiceImpl.java |   52 ++++++++++++++++++++++++++
 ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/QueryUtils.java                 |    2 
 ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/WorkflowUtils.java              |    6 +-
 ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActTaskServiceImpl.java  |    2 
 5 files changed, 90 insertions(+), 5 deletions(-)

diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/service/WorkflowService.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/service/WorkflowService.java
new file mode 100644
index 0000000..fba5295
--- /dev/null
+++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/service/WorkflowService.java
@@ -0,0 +1,33 @@
+package org.dromara.common.core.service;
+
+import java.util.List;
+
+/**
+ * 閫氱敤 宸ヤ綔娴佹湇鍔�
+ *
+ * @author may
+ */
+public interface WorkflowService {
+
+    /**
+     * 杩愯涓殑瀹炰緥 鍒犻櫎绋嬪疄渚嬶紝鍒犻櫎鍘嗗彶璁板綍锛屽垹闄や笟鍔′笌娴佺▼鍏宠仈淇℃伅
+     *
+     * @param businessKeys 涓氬姟id
+     * @return 缁撴灉
+     */
+    boolean deleteRunAndHisInstance(List<String> businessKeys);
+
+    /**
+     * 鑾峰彇褰撳墠娴佺▼鐘舵��
+     *
+     * @param taskId 浠诲姟id
+     */
+    String getBusinessStatusByTaskId(String taskId);
+
+    /**
+     * 鑾峰彇褰撳墠娴佺▼鐘舵��
+     *
+     * @param businessKey 涓氬姟id
+     */
+    String getBusinessStatus(String businessKey);
+}
diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActTaskServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActTaskServiceImpl.java
index 6a6b1b1..dc74cfe 100644
--- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActTaskServiceImpl.java
+++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActTaskServiceImpl.java
@@ -180,7 +180,7 @@
             AttachmentCmd attachmentCmd = new AttachmentCmd(completeTaskBo.getFileId(), task.getId(), task.getProcessInstanceId());
             managementService.executeCommand(attachmentCmd);
             FlowProcessEventHandler processHandler = flowEventStrategy.getProcessHandler(processInstance.getProcessDefinitionKey());
-            String businessStatus = WorkflowUtils.getBusinessStatus(task.getProcessInstanceId());
+            String businessStatus = WorkflowUtils.getBusinessStatus(processInstance.getBusinessKey());
             if (BusinessStatusEnum.DRAFT.getStatus().equals(businessStatus) || BusinessStatusEnum.BACK.getStatus().equals(businessStatus) || BusinessStatusEnum.CANCEL.getStatus().equals(businessStatus)) {
                 if (processHandler != null) {
                     processHandler.handleProcess(processInstance.getBusinessKey(), businessStatus, true);
diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WorkflowServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WorkflowServiceImpl.java
new file mode 100644
index 0000000..0c4118f
--- /dev/null
+++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WorkflowServiceImpl.java
@@ -0,0 +1,52 @@
+package org.dromara.workflow.service.impl;
+
+import lombok.RequiredArgsConstructor;
+import org.dromara.common.core.service.WorkflowService;
+import org.dromara.workflow.service.IActProcessInstanceService;
+import org.dromara.workflow.utils.WorkflowUtils;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 閫氱敤 宸ヤ綔娴佹湇鍔″疄鐜�
+ *
+ * @author may
+ */
+@RequiredArgsConstructor
+@Service
+public class WorkflowServiceImpl implements WorkflowService {
+
+    private final IActProcessInstanceService iActProcessInstanceService;
+
+    /**
+     * 杩愯涓殑瀹炰緥 鍒犻櫎绋嬪疄渚嬶紝鍒犻櫎鍘嗗彶璁板綍锛屽垹闄や笟鍔′笌娴佺▼鍏宠仈淇℃伅
+     *
+     * @param businessKeys 涓氬姟id
+     * @return 缁撴灉
+     */
+    @Override
+    public boolean deleteRunAndHisInstance(List<String> businessKeys) {
+        return iActProcessInstanceService.deleteRunAndHisInstance(businessKeys);
+    }
+
+    /**
+     * 鑾峰彇褰撳墠娴佺▼鐘舵��
+     *
+     * @param taskId 浠诲姟id
+     */
+    @Override
+    public String getBusinessStatusByTaskId(String taskId) {
+        return WorkflowUtils.getBusinessStatusByTaskId(taskId);
+    }
+
+    /**
+     * 鑾峰彇褰撳墠娴佺▼鐘舵��
+     *
+     * @param businessKey 涓氬姟id
+     */
+    @Override
+    public String getBusinessStatus(String businessKey) {
+        return WorkflowUtils.getBusinessStatus(businessKey);
+    }
+}
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 0599a12..085ccc6 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
@@ -159,7 +159,7 @@
         }
         TaskVo taskVo = BeanUtil.toBean(task, TaskVo.class);
         taskVo.setMultiInstance(WorkflowUtils.isMultiInstance(task.getProcessDefinitionId(), task.getTaskDefinitionKey()) != null);
-        String businessStatus = WorkflowUtils.getBusinessStatus(taskVo.getProcessInstanceId());
+        String businessStatus = WorkflowUtils.getBusinessStatus(taskVo.getBusinessKey());
         taskVo.setBusinessStatus(businessStatus);
         return taskVo;
     }
diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/WorkflowUtils.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/WorkflowUtils.java
index a620289..2281acb 100644
--- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/WorkflowUtils.java
+++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/WorkflowUtils.java
@@ -228,10 +228,10 @@
     /**
      * 鑾峰彇褰撳墠娴佺▼鐘舵��
      *
-     * @param processInstanceId 娴佺▼瀹炰緥id
+     * @param businessKey 涓氬姟id
      */
-    public static String getBusinessStatus(String processInstanceId) {
-        HistoricProcessInstance historicProcessInstance = QueryUtils.hisInstanceQuery(processInstanceId).singleResult();
+    public static String getBusinessStatus(String businessKey) {
+        HistoricProcessInstance historicProcessInstance = QueryUtils.hisBusinessKeyQuery(businessKey).singleResult();
         return historicProcessInstance.getBusinessStatus();
     }
 

--
Gitblit v1.9.3