From 68fd566d21b3efc3a670a5295289b1801f5a4155 Mon Sep 17 00:00:00 2001
From: ludc <ludc@vci-tech.com>
Date: 星期四, 16 一月 2025 18:18:55 +0800
Subject: [PATCH] 流程部署接口上传

---
 Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/pagemodel/DeployProcessVO.java       |   29 ++++++++++++++
 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/WebFlowServiceI.java         |   16 ++++++++
 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/WebFlowServiceImpl.java |   46 +++++++++++++++++++++++
 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebFlowController.java    |   19 +++++++++
 4 files changed, 110 insertions(+), 0 deletions(-)

diff --git a/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/pagemodel/DeployProcessVO.java b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/pagemodel/DeployProcessVO.java
new file mode 100644
index 0000000..b618acb
--- /dev/null
+++ b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/pagemodel/DeployProcessVO.java
@@ -0,0 +1,29 @@
+package com.vci.pagemodel;
+
+import com.vci.corba.wf.data.ProcessTaskInfo;
+import lombok.Data;
+
+/**
+ * 娴佺▼閮ㄧ讲鎺ユ敹鍙傛暟鐨刅O瀵硅薄
+ * @author ludc
+ * @date 2025/1/16 12:08
+ */
+@Data
+public class DeployProcessVO {
+
+    /**
+     * bpmn娴佺▼妯℃澘xml
+     */
+    private String xmlContext;
+
+    /**
+     * 娴佺▼鍒嗙被涓婚敭
+     */
+    private String processCategoryId;
+
+    /**
+     * 浠诲姟鐨勪俊鎭�
+     */
+    ProcessTaskInfo[] taskInfos;
+
+}
diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebFlowController.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebFlowController.java
index 86ad5e6..e3eb429 100644
--- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebFlowController.java
+++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebFlowController.java
@@ -1,6 +1,7 @@
 package com.vci.web.controller;
 
 import com.vci.corba.wf.data.ProcessCategoryInfo;
+import com.vci.pagemodel.DeployProcessVO;
 import com.vci.starter.web.annotation.log.VciBusinessLog;
 import com.vci.starter.web.pagemodel.BaseQueryObject;
 import com.vci.starter.web.pagemodel.BaseResult;
@@ -125,4 +126,22 @@
         }
     }
 
+    /**
+     * 閮ㄧ讲娴佺▼
+     * @param deployProcessVO
+     * @return
+     */
+    @PostMapping( "/deployProcess")
+    @VciBusinessLog(operateName = "閮ㄧ讲娴佺▼")
+    public BaseResult deployProcess(@RequestBody DeployProcessVO deployProcessVO) {
+        try {
+            return webFlowServiceI.deployProcess(deployProcessVO);
+        }catch (Exception e) {
+            e.printStackTrace();
+            String exceptionMessage = "娴佺▼閮ㄧ讲鎴愬姛鏃跺嚭鐜伴敊璇紝鍘熷洜锛�" + VciBaseUtil.getExceptionMessage(e);
+            logger.error(exceptionMessage);
+            return BaseResult.fail(exceptionMessage);
+        }
+    }
+
 }
diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/WebFlowServiceI.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/WebFlowServiceI.java
index e607896..79ded1b 100644
--- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/WebFlowServiceI.java
+++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/WebFlowServiceI.java
@@ -1,7 +1,11 @@
 package com.vci.web.service;
 
+import com.vci.corba.common.PLException;
 import com.vci.corba.wf.data.ProcessCategoryInfo;
+import com.vci.pagemodel.DeployProcessVO;
+import com.vci.starter.web.exception.VciBaseException;
 import com.vci.starter.web.pagemodel.BaseQueryObject;
+import com.vci.starter.web.pagemodel.BaseResult;
 import com.vci.starter.web.pagemodel.DataGrid;
 
 import java.util.List;
@@ -13,6 +17,7 @@
  */
 public interface WebFlowServiceI {
 
+    /*娴佺▼鍒嗙被鐩稿叧鏂规硶*/
     /**
      * 娴佺▼鍒嗙被鍏ㄦ煡璇�
      * @param parentId
@@ -50,4 +55,15 @@
      */
     boolean deleteProcessCategory(String id) throws Exception;
 
+    /*娴佺▼鏌ヨ銆侀儴缃层�佸垹闄ゃ�佷慨鏀圭瓑鐩稿叧鏂规硶*/
+    /**
+     * 閮ㄧ讲娴佺▼
+     * @param deployProcessVO
+     * @return
+     * @throws VciBaseException
+     */
+    BaseResult deployProcess(DeployProcessVO deployProcessVO) throws Exception ;
+
+
+
 }
diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/WebFlowServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/WebFlowServiceImpl.java
index 6ca01fb..34970af 100644
--- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/WebFlowServiceImpl.java
+++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/WebFlowServiceImpl.java
@@ -1,10 +1,14 @@
 package com.vci.web.service.impl;
 
+import com.mxgraph.model.mxCell;
+import com.mxgraph.view.mxGraph;
 import com.vci.corba.common.PLException;
 import com.vci.corba.wf.data.ProcessCategoryInfo;
 import com.vci.corba.wf.data.ProcessDefinitionInfo;
+import com.vci.pagemodel.DeployProcessVO;
 import com.vci.starter.web.exception.VciBaseException;
 import com.vci.starter.web.pagemodel.BaseQueryObject;
+import com.vci.starter.web.pagemodel.BaseResult;
 import com.vci.starter.web.pagemodel.DataGrid;
 import com.vci.starter.web.util.Lcm.Func;
 import com.vci.starter.web.util.VciBaseUtil;
@@ -15,6 +19,7 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import javax.swing.*;
 import java.util.Arrays;
 import java.util.Comparator;
 import java.util.Date;
@@ -128,6 +133,47 @@
     }
 
     /**
+     * 閮ㄧ讲娴佺▼
+     * @param deployProcessVO
+     * @return
+     * @throws VciBaseException
+     */
+    @Override
+    public BaseResult deployProcess(DeployProcessVO deployProcessVO) throws Exception {
+        VciBaseUtil.alertNotNull(
+                deployProcessVO,"娴佺▼閮ㄧ讲瀵硅薄",
+                deployProcessVO.getProcessCategoryId(),"娴佺▼鍒嗙被",
+                deployProcessVO.getXmlContext(),"娴佺▼妯℃澘鍐呭"
+        );
+        //鍩虹鏍¢獙
+        /*if(!checkTask()){
+            BaseResult.fail("娴佺▼浠诲姟涓嶈兘閲嶅悕锛岃纭");
+        }
+        if(!checkJoin()){
+            BaseResult.fail("鍚堝苟鑺傜偣涓嶈兘閲嶅悕锛岃纭");
+        }
+        if(!checkFork()){
+            BaseResult.fail("鍒嗘敮鑺傜偣涓嶈兘閲嶅悕锛岃纭");
+        }
+        if(!checkDecision()){
+            BaseResult.fail("鍒ゆ柇鑺傜偣涓嶈兘閲嶅悕锛岃纭");
+        }
+        if(!checkEdge()){
+            BaseResult.fail("璺敱鍚嶇О鍜岃妭鐐瑰悕绉伴噸鍚嶏紝璇风‘璁�");
+        }
+        */
+
+        boolean res = platformClientUtil.getWFService().deployProcess(
+                null,
+                deployProcessVO.getXmlContext(),
+                null,
+                deployProcessVO.getProcessCategoryId(),
+                deployProcessVO.getTaskInfos()
+        );
+        return res ? BaseResult.success("娴佺▼閮ㄧ讲鎴愬姛锛�"):BaseResult.success("娴佺▼閮ㄧ讲澶辫触锛�");
+    }
+
+    /**
      * 鏍规嵁涓婚敭鍜屽悕绉版煡璇㈡祦绋嬪垎绫绘槸鍚﹀瓨鍦�
      * @param category
      * @return

--
Gitblit v1.9.3