From c859fa4c38cc027cb7005dcb5c504ffc89430e33 Mon Sep 17 00:00:00 2001
From: songgaoshuai <1742057357@qq.com>
Date: 星期五, 29 三月 2024 15:59:48 +0800
Subject: [PATCH] update 调整自定义任务

---
 ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessDefinitionServiceImpl.java |   61 ++++++++++++++++++++----------
 1 files changed, 41 insertions(+), 20 deletions(-)

diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessDefinitionServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessDefinitionServiceImpl.java
index cc82e00..dafbad6 100644
--- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessDefinitionServiceImpl.java
+++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessDefinitionServiceImpl.java
@@ -20,8 +20,10 @@
 import org.dromara.workflow.domain.WfCategory;
 import org.dromara.workflow.domain.bo.ProcessDefinitionBo;
 import org.dromara.workflow.domain.vo.ProcessDefinitionVo;
+import org.dromara.workflow.domain.vo.WfFormDefinitionVo;
 import org.dromara.workflow.service.IActProcessDefinitionService;
 import org.dromara.workflow.service.IWfCategoryService;
+import org.dromara.workflow.service.IWfFormDefinitionService;
 import org.dromara.workflow.utils.QueryUtils;
 import org.flowable.engine.ProcessMigrationService;
 import org.flowable.engine.RepositoryService;
@@ -37,7 +39,6 @@
 import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.List;
-import java.util.stream.Collectors;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipInputStream;
 
@@ -53,6 +54,7 @@
     private final RepositoryService repositoryService;
     private final ProcessMigrationService processMigrationService;
     private final IWfCategoryService wfCategoryService;
+    private final IWfFormDefinitionService iWfFormDefinitionService;
 
     /**
      * 鍒嗛〉鏌ヨ
@@ -81,20 +83,29 @@
             List<String> deploymentIds = StreamUtils.toList(definitionList, ProcessDefinition::getDeploymentId);
             deploymentList = QueryUtils.deploymentQuery(deploymentIds).list();
         }
-        for (ProcessDefinition processDefinition : definitionList) {
-            ProcessDefinitionVo processDefinitionVo = BeanUtil.toBean(processDefinition, ProcessDefinitionVo.class);
-            if (CollUtil.isNotEmpty(deploymentList)) {
-                // 閮ㄧ讲鏃堕棿
-                deploymentList.stream().filter(e -> e.getId().equals(processDefinition.getDeploymentId())).findFirst().ifPresent(e -> {
-                    processDefinitionVo.setDeploymentTime(e.getDeploymentTime());
-                });
+        if (CollUtil.isNotEmpty(definitionList)) {
+            List<String> ids = StreamUtils.toList(definitionList, ProcessDefinition::getId);
+            List<WfFormDefinitionVo> wfFormDefinitionVos = iWfFormDefinitionService.queryList(ids);
+            for (ProcessDefinition processDefinition : definitionList) {
+                ProcessDefinitionVo processDefinitionVo = BeanUtil.toBean(processDefinition, ProcessDefinitionVo.class);
+                if (CollUtil.isNotEmpty(deploymentList)) {
+                    // 閮ㄧ讲鏃堕棿
+                    deploymentList.stream().filter(e -> e.getId().equals(processDefinition.getDeploymentId())).findFirst().ifPresent(e -> {
+                        processDefinitionVo.setDeploymentTime(e.getDeploymentTime());
+                    });
+                }
+                if (CollUtil.isNotEmpty(wfFormDefinitionVos)) {
+                    wfFormDefinitionVos.stream().filter(e -> e.getDefinitionId().equals(processDefinition.getId())).findFirst().ifPresent(processDefinitionVo::setWfFormDefinitionVo);
+                }
+                processDefinitionVoList.add(processDefinitionVo);
             }
-            processDefinitionVoList.add(processDefinitionVo);
         }
         // 鎬昏褰曟暟
         long total = query.count();
-
-        return new TableDataInfo<>(processDefinitionVoList, total);
+        TableDataInfo<ProcessDefinitionVo> build = TableDataInfo.build();
+        build.setRows(processDefinitionVoList);
+        build.setTotal(total);
+        return build;
     }
 
     /**
@@ -109,18 +120,25 @@
         List<ProcessDefinition> definitionList = query.processDefinitionKey(key).list();
         List<Deployment> deploymentList = null;
         if (CollUtil.isNotEmpty(definitionList)) {
-            List<String> deploymentIds = definitionList.stream().map(ProcessDefinition::getDeploymentId).collect(Collectors.toList());
+            List<String> deploymentIds = StreamUtils.toList(definitionList, ProcessDefinition::getDeploymentId);
             deploymentList = QueryUtils.deploymentQuery(deploymentIds).list();
         }
-        for (ProcessDefinition processDefinition : definitionList) {
-            ProcessDefinitionVo processDefinitionVo = BeanUtil.toBean(processDefinition, ProcessDefinitionVo.class);
-            if (CollUtil.isNotEmpty(deploymentList)) {
-                // 閮ㄧ讲鏃堕棿
-                deploymentList.stream().filter(e -> e.getId().equals(processDefinition.getDeploymentId())).findFirst().ifPresent(e -> {
-                    processDefinitionVo.setDeploymentTime(e.getDeploymentTime());
-                });
+        if (CollUtil.isNotEmpty(definitionList)) {
+            List<String> ids = StreamUtils.toList(definitionList, ProcessDefinition::getId);
+            List<WfFormDefinitionVo> wfFormDefinitionVos = iWfFormDefinitionService.queryList(ids);
+            for (ProcessDefinition processDefinition : definitionList) {
+                ProcessDefinitionVo processDefinitionVo = BeanUtil.toBean(processDefinition, ProcessDefinitionVo.class);
+                if (CollUtil.isNotEmpty(deploymentList)) {
+                    // 閮ㄧ讲鏃堕棿
+                    deploymentList.stream().filter(e -> e.getId().equals(processDefinition.getDeploymentId())).findFirst().ifPresent(e -> {
+                        processDefinitionVo.setDeploymentTime(e.getDeploymentTime());
+                    });
+                    if (CollUtil.isNotEmpty(wfFormDefinitionVos)) {
+                        wfFormDefinitionVos.stream().filter(e -> e.getDefinitionId().equals(processDefinition.getId())).findFirst().ifPresent(processDefinitionVo::setWfFormDefinitionVo);
+                    }
+                }
+                processDefinitionVoList.add(processDefinitionVo);
             }
-            processDefinitionVoList.add(processDefinitionVo);
         }
         return CollectionUtil.reverse(processDefinitionVoList);
     }
@@ -163,6 +181,7 @@
      * @param processDefinitionId 娴佺▼瀹氫箟id
      */
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public boolean deleteDeployment(String deploymentId, String processDefinitionId) {
         try {
             List<HistoricTaskInstance> taskInstanceList = QueryUtils.hisTaskInstanceQuery()
@@ -172,6 +191,8 @@
             }
             //鍒犻櫎娴佺▼瀹氫箟
             repositoryService.deleteDeployment(deploymentId);
+            //鍒犻櫎琛ㄥ崟閰嶇疆
+            iWfFormDefinitionService.getByDefId(processDefinitionId);
             return true;
         } catch (Exception e) {
             e.printStackTrace();

--
Gitblit v1.9.3