From 87eb6395ed4d5f5c428d75661b7c7e6fe95bb420 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期一, 17 三月 2025 16:19:15 +0800
Subject: [PATCH] 更新流程实现

---
 flowable/src/main/java/com/ycl/service/impl/FlowDefinitionServiceImpl.java |   22 +++++++++++++++++++---
 1 files changed, 19 insertions(+), 3 deletions(-)

diff --git a/flowable/src/main/java/com/ycl/service/impl/FlowDefinitionServiceImpl.java b/flowable/src/main/java/com/ycl/service/impl/FlowDefinitionServiceImpl.java
index 9f7aca6..d27ae14 100644
--- a/flowable/src/main/java/com/ycl/service/impl/FlowDefinitionServiceImpl.java
+++ b/flowable/src/main/java/com/ycl/service/impl/FlowDefinitionServiceImpl.java
@@ -3,6 +3,7 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
+import com.ycl.cmd.RemoveDeploymentCacheCMD;
 import com.ycl.common.constant.ProcessConstants;
 import com.ycl.common.core.domain.AjaxResult;
 import com.ycl.common.core.domain.entity.SysUser;
@@ -20,6 +21,7 @@
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.io.IOUtils;
 import org.flowable.bpmn.model.BpmnModel;
+import org.flowable.engine.ManagementService;
 import org.flowable.engine.repository.Deployment;
 import org.flowable.engine.repository.ProcessDefinition;
 import org.flowable.engine.repository.ProcessDefinitionQuery;
@@ -28,6 +30,7 @@
 import org.flowable.task.api.Task;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.StringUtils;
 
 import javax.annotation.Resource;
 import java.io.IOException;
@@ -50,12 +53,10 @@
 public class FlowDefinitionServiceImpl extends FlowServiceFactory implements IFlowDefinitionService {
 
     private final ISysDeployFormService sysDeployFormService;
-
     private final ISysUserService sysUserService;
-
     private final ISysDeptService sysDeptService;
-
     private final FlowDeployMapper flowDeployMapper;
+    private final ManagementService managementService;
 
     private static final String BPMN_FILE_SUFFIX = ".bpmn";
 
@@ -135,6 +136,21 @@
 
     }
 
+    @Override
+    public void updateProcess(String deploymentId, String name, String category, InputStream in) {
+        if (! StringUtils.hasText(deploymentId)) {
+            throw new RuntimeException("璇ユ祦绋嬬涓�娆¢儴缃诧紝璇风洿鎺ラ�夋嫨淇濆瓨鎸夐挳");
+        }
+        ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().deploymentId(deploymentId).singleResult();
+        if (Objects.isNull(processDefinition)) {
+            throw new RuntimeException("娴佺▼瀹氫箟涓嶅瓨鍦�");
+        }
+        // 1.鏇存柊娴佺▼鍥炬暟鎹�
+        flowDeployMapper.updateProcess(in, deploymentId);
+        // 2.娓呴櫎璇ユ祦绋嬬殑缂撳瓨锛屼娇鍏堕噸鏂板姞杞芥柊鐨勬祦绋嬪浘
+        managementService.executeCommand(new RemoveDeploymentCacheCMD(processDefinition.getId()));
+    }
+
     /**
      * 璇诲彇xml
      *

--
Gitblit v1.8.0