浏览代码

feat:修改新增用户异常节点接口,触发异常接口,节点执行表、流程配置表添加节点执行类型字段,测试新增库存接口

xuezizhuo 1 年之前
父节点
当前提交
aeeee6c62d
共有 16 个文件被更改,包括 379 次插入12 次删除
  1. 4 2
      ruoyi-admin/src/main/resources/application.yml
  2. 11 0
      ruoyi-common/src/main/java/com/ruoyi/common/config/bpm/BpmProperties.java
  3. 21 0
      ruoyi-common/src/main/java/com/ruoyi/common/constant/BpmNodeTypeConstants.java
  4. 10 7
      ruoyi-common/src/main/java/com/ruoyi/common/utils/bpm/XmlDataParserUtils.java
  5. 9 0
      ruoyi-process-execution/src/main/java/com/ruoyi/execution/produce/dispersed/controller/BpmExecuteNodeController.java
  6. 14 0
      ruoyi-process-execution/src/main/java/com/ruoyi/execution/produce/dispersed/enetity/BpmExecuteNode.java
  7. 95 0
      ruoyi-process-execution/src/main/java/com/ruoyi/execution/produce/dispersed/enetity/runbpm/SysBpmNodeScriptVO.java
  8. 40 0
      ruoyi-process-execution/src/main/java/com/ruoyi/execution/produce/dispersed/enetity/runbpm/TriggerExceptionVO.java
  9. 9 0
      ruoyi-process-execution/src/main/java/com/ruoyi/execution/produce/dispersed/mapper/BpmExecuteProcessMapper.java
  10. 8 0
      ruoyi-process-execution/src/main/java/com/ruoyi/execution/produce/dispersed/service/IBpmExecuteNodeService.java
  11. 54 0
      ruoyi-process-execution/src/main/java/com/ruoyi/execution/produce/dispersed/service/impl/BpmExecuteNodeServiceImpl.java
  12. 70 0
      ruoyi-process-execution/src/main/java/com/ruoyi/execution/produce/dispersed/service/impl/runbpm/TestBpm.java
  13. 8 0
      ruoyi-process-execution/src/main/resources/mapper/bpm/dispersed/BpmExecuteNodeMapper.xml
  14. 5 0
      ruoyi-process-execution/src/main/resources/mapper/bpm/dispersed/BpmExecuteProcessMapper.xml
  15. 16 1
      ruoyi-system/src/main/java/com/ruoyi/system/entity/BpmProcessConfiguration.java
  16. 5 2
      ruoyi-system/src/main/resources/mapper/bpm/BpmProcessConfigurationMapper.xml

+ 4 - 2
ruoyi-admin/src/main/resources/application.yml

@@ -87,13 +87,13 @@ spring:
   # redis 配置
   redis:
     # 地址
-    host: 192.168.110.15
+    host: localhost
     # 端口,默认为6379
     port: 6379
     # 数据库索引
     database: 0
     # 密码
-    password:
+    password: 123456
     # 连接超时时间
     timeout: 10s
     lettuce:
@@ -164,3 +164,5 @@ parameter:
     FORM_COMMON_UPDATE_IP: http://localhost:8088/dragform/common/batchEdit
     #from项目共通获取详情接口
     FORM_COMMON_GETINFO_IP: http://localhost:8088/dragform/common/getInfo/
+    # form项目共通新增接口
+    FORM_COMMON_BATCHINSERT_IP: http://localhost:8088/dragform/common/batchInsert

+ 11 - 0
ruoyi-common/src/main/java/com/ruoyi/common/config/bpm/BpmProperties.java

@@ -32,6 +32,9 @@ public class BpmProperties {
     @Value("${parameter.ip.FORM_COMMON_GETINFO_IP}")
     public String formCommonGetInfoIp;
 
+    @Value("${parameter.ip.FORM_COMMON_BATCHINSERT_IP}")
+    public String formCommonBatchInsertIp;
+
 
     public String getMainRolesKeyIp() {
         return mainRolesKeyIp;
@@ -80,4 +83,12 @@ public class BpmProperties {
     public void setFormCommonGetInfoIp(String formCommonGetInfoIp) {
         this.formCommonGetInfoIp = formCommonGetInfoIp;
     }
+
+    public String getFormCommonBatchInsertIp() {
+        return formCommonBatchInsertIp;
+    }
+
+    public void setFormCommonBatchInsertIp(String formCommonBatchInsertIp) {
+        this.formCommonBatchInsertIp = formCommonBatchInsertIp;
+    }
 }

+ 21 - 0
ruoyi-common/src/main/java/com/ruoyi/common/constant/BpmNodeTypeConstants.java

@@ -0,0 +1,21 @@
+package com.ruoyi.common.constant;
+
+/**
+ * 流程节点类型常量信息
+ */
+public class BpmNodeTypeConstants {
+
+    /** 开始节点 */
+    public static final String START_EVENT = "startEvent";
+
+    /** 结束节点 */
+    public static final String END_EVENT = "endEvent";
+
+    /** 用户任务 */
+    public static final String USER_TASK = "userTask";
+
+    /** 异常任务 */
+    public static final String EXCEPTION_TASK = "exceptionTask";
+
+
+}

+ 10 - 7
ruoyi-common/src/main/java/com/ruoyi/common/utils/bpm/XmlDataParserUtils.java

@@ -50,20 +50,21 @@ public class XmlDataParserUtils {
     }
 
     /**
-     * 新增用户任务节点
+     * 新增用户异常节点
      * @param userTaskTagName 新增节点名称
      * @param nextTagId 新增节点下一节点ID
      * @return
      */
-    public static String addUserTaskTag(String xmlData,String userTaskTagName,String nextTagId) throws Exception {
+    public static String addUserTaskTag(String xmlData,String newUserTaskTagId,String userTaskTagName,String nextTagId) throws Exception {
         //新增节点标签ID
-        String newUserTaskTagId = "Flow_" + IdUtils.fastSimpleUUID().substring(0,7);
+//        String newUserTaskTagId = "Flow_" + IdUtils.fastSimpleUUID().substring(0,7);
         //新增序列流ID
         String newSequenceFlowId = "Flow_" + IdUtils.fastSimpleUUID().substring(0,7);
         //新增节点下一节点序列流ID
         String sequenceFlowId = null;
         //上一节点标签ID
         String previousId = null;
+        //将xml文件内容转成Document对象
         Document document= XmlUtil.parseXml(xmlData);
         //获得XML文档根节点
         Element elementG=XmlUtil.getRootElement(document);
@@ -82,22 +83,24 @@ public class XmlDataParserUtils {
                 break;
             }
         }
-        //创建新用户任务节点标签
-        Element userTaskTag = document.createElement("bpmn:userTask");
+        //创建异常任务节点标签
+        Element userTaskTag = document.createElement("bpmn:exceptionTask");
         userTaskTag.setAttribute("id",newUserTaskTagId);
         userTaskTag.setAttribute("name",userTaskTagName);
+        userTaskTag.appendChild(document.createTextNode("\n\t\t"));
         Element userTaskTagChild1 = document.createElement("bpmn:incoming");
         userTaskTagChild1.setTextContent(newSequenceFlowId);
         userTaskTag.appendChild(userTaskTagChild1);
+        userTaskTag.appendChild(document.createTextNode("\n\t\t"));
         Element userTaskTagChild2 = document.createElement("bpmn:outgoing");
         userTaskTagChild2.setTextContent(sequenceFlowId);
         userTaskTag.appendChild(userTaskTagChild2);
+        userTaskTag.appendChild(document.createTextNode("\n\t"));
         //创建新序列流标签
         Element sequenceFlowTag = document.createElement("bpmn:sequenceFlow");
         sequenceFlowTag.setAttribute("id",newSequenceFlowId);
         sequenceFlowTag.setAttribute("sourceRef",previousId);
         sequenceFlowTag.setAttribute("targetRef",newUserTaskTagId);
-
         //修改上一节点bpmn:outgoing和下一节点bpmn:incoming
         //获取bpmn:process节点
         Element bpmnProcessEvent = XmlUtil.getElement(elementG,"bpmn:process");
@@ -115,10 +118,10 @@ public class XmlDataParserUtils {
                 if(id.equals(nextTagId)){
                     Element elementOutgoing = XmlUtil.getElement(element,"bpmn:incoming");
                     elementOutgoing.setTextContent(sequenceFlowId);
-
                     //插入标签
                     Node parentNode = element.getParentNode();
                     parentNode.insertBefore(userTaskTag,element);
+
                     parentNode.insertBefore(sequenceFlowTag,element);
                 }
             }

+ 9 - 0
ruoyi-process-execution/src/main/java/com/ruoyi/execution/produce/dispersed/controller/BpmExecuteNodeController.java

@@ -3,6 +3,7 @@ package com.ruoyi.execution.produce.dispersed.controller;
 import java.util.List;
 import javax.servlet.http.HttpServletResponse;
 
+import com.ruoyi.execution.produce.dispersed.enetity.runbpm.TriggerExceptionVO;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -95,4 +96,12 @@ public class BpmExecuteNodeController extends BaseController {
     public AjaxResult remove(@PathVariable Long[] ids) {
         return toAjax(bpmExecuteNodeService.deleteBpmExecuteNodeByIds(ids));
     }
+
+    /**
+     * 触发异常
+     */
+    @PostMapping("/triggerException")
+    public AjaxResult triggerException(@RequestBody TriggerExceptionVO vo) throws Exception {
+        return toAjax(bpmExecuteNodeService.triggerException(vo));
+    }
 }

+ 14 - 0
ruoyi-process-execution/src/main/java/com/ruoyi/execution/produce/dispersed/enetity/BpmExecuteNode.java

@@ -49,6 +49,11 @@ public class BpmExecuteNode extends BaseEntity {
     @Excel(name = "节点类型", readConverterExp = "当=前节点是判断、网关、普通节点等等。。。。。")
     private String taskNodeType;
 
+    /**
+     * 节点执行类型(0:自动执行;1:手动执行)
+     */
+    private String taskNodeExecuteType;
+
     /**
      * 节点前(节点前后只能执行脚本,下一个节点前相当于当前节点后)
      */
@@ -181,6 +186,14 @@ public class BpmExecuteNode extends BaseEntity {
         return taskNodeType;
     }
 
+    public String getTaskNodeExecuteType() {
+        return taskNodeExecuteType;
+    }
+
+    public void setTaskNodeExecuteType(String taskNodeExecuteType) {
+        this.taskNodeExecuteType = taskNodeExecuteType;
+    }
+
     public void setTaskNodeBefore(String taskNodeBefore) {
         this.taskNodeBefore = taskNodeBefore;
     }
@@ -303,6 +316,7 @@ public class BpmExecuteNode extends BaseEntity {
                 .append("taskNodeName", getTaskNodeName())
                 .append("taskNodeFormKey", getTaskNodeFormKey())
                 .append("taskNodeType", getTaskNodeType())
+                .append("taskNodeExecuteType",getTaskNodeExecuteType())
                 .append("taskNodeBefore", getTaskNodeBefore())
                 .append("taskNodeAfter", getTaskNodeAfter())
                 .append("taskNodeRolePermission", getTaskNodeRolePermission())

+ 95 - 0
ruoyi-process-execution/src/main/java/com/ruoyi/execution/produce/dispersed/enetity/runbpm/SysBpmNodeScriptVO.java

@@ -0,0 +1,95 @@
+package com.ruoyi.execution.produce.dispersed.enetity.runbpm;
+
+/**
+ * 流程节点脚本类
+ */
+public class SysBpmNodeScriptVO {
+
+    /** 编号 */
+    private Long id;
+
+    /** 脚本编码 */
+    private String scriptKey;
+
+    /** 脚本方法名称 */
+    private String scriptFunctionName;
+
+    /** 脚本名称 */
+    private String scriptName;
+
+    /** 脚本方法体 */
+    private String scriptFunctionCode;
+
+    /** 脚本类型 */
+    private Long scriptType;
+
+    /** 脚本描述 */
+    private String scriptDescription;
+
+    /** 行业分类 */
+    private String industryType;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getScriptKey() {
+        return scriptKey;
+    }
+
+    public void setScriptKey(String scriptKey) {
+        this.scriptKey = scriptKey;
+    }
+
+    public String getScriptFunctionName() {
+        return scriptFunctionName;
+    }
+
+    public void setScriptFunctionName(String scriptFunctionName) {
+        this.scriptFunctionName = scriptFunctionName;
+    }
+
+    public String getScriptName() {
+        return scriptName;
+    }
+
+    public void setScriptName(String scriptName) {
+        this.scriptName = scriptName;
+    }
+
+    public String getScriptFunctionCode() {
+        return scriptFunctionCode;
+    }
+
+    public void setScriptFunctionCode(String scriptFunctionCode) {
+        this.scriptFunctionCode = scriptFunctionCode;
+    }
+
+    public Long getScriptType() {
+        return scriptType;
+    }
+
+    public void setScriptType(Long scriptType) {
+        this.scriptType = scriptType;
+    }
+
+    public String getScriptDescription() {
+        return scriptDescription;
+    }
+
+    public void setScriptDescription(String scriptDescription) {
+        this.scriptDescription = scriptDescription;
+    }
+
+    public String getIndustryType() {
+        return industryType;
+    }
+
+    public void setIndustryType(String industryType) {
+        this.industryType = industryType;
+    }
+}

+ 40 - 0
ruoyi-process-execution/src/main/java/com/ruoyi/execution/produce/dispersed/enetity/runbpm/TriggerExceptionVO.java

@@ -0,0 +1,40 @@
+package com.ruoyi.execution.produce.dispersed.enetity.runbpm;
+
+/**
+ * 触发异常VO
+ */
+public class TriggerExceptionVO {
+
+    /** 执行流程任务编号 */
+    private String taskProcessKey;
+
+    /** 任务节点编号 */
+    private String taskNodeKey;
+
+    /** 节点脚本 */
+    private SysBpmNodeScriptVO sysBpmNodeScriptVO;
+
+    public String getTaskProcessKey() {
+        return taskProcessKey;
+    }
+
+    public void setTaskProcessKey(String taskProcessKey) {
+        this.taskProcessKey = taskProcessKey;
+    }
+
+    public String getTaskNodeKey() {
+        return taskNodeKey;
+    }
+
+    public void setTaskNodeKey(String taskNodeKey) {
+        this.taskNodeKey = taskNodeKey;
+    }
+
+    public SysBpmNodeScriptVO getSysBpmNodeScriptVO() {
+        return sysBpmNodeScriptVO;
+    }
+
+    public void setSysBpmNodeScriptVO(SysBpmNodeScriptVO sysBpmNodeScriptVO) {
+        this.sysBpmNodeScriptVO = sysBpmNodeScriptVO;
+    }
+}

+ 9 - 0
ruoyi-process-execution/src/main/java/com/ruoyi/execution/produce/dispersed/mapper/BpmExecuteProcessMapper.java

@@ -66,4 +66,13 @@ public interface BpmExecuteProcessMapper {
      * 根据当前用户登陆信息得到当前可执行流程
      */
     public List<CommonEntity> queryExecuteProcess(@Param("objectMap") Map<String, Object> objectMap);
+
+
+    /**
+     * 查询流程执行任务
+     *
+     * @param taskKey 流程执行任务编号唯一标识
+     * @return 流程执行任务
+     */
+    BpmExecuteProcess selectBpmExecuteProcessByTaskKey(String taskKey);
 }

+ 8 - 0
ruoyi-process-execution/src/main/java/com/ruoyi/execution/produce/dispersed/service/IBpmExecuteNodeService.java

@@ -1,6 +1,8 @@
 package com.ruoyi.execution.produce.dispersed.service;
 
+import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.execution.produce.dispersed.enetity.BpmExecuteNode;
+import com.ruoyi.execution.produce.dispersed.enetity.runbpm.TriggerExceptionVO;
 
 import java.util.List;
 
@@ -69,4 +71,10 @@ public interface IBpmExecuteNodeService {
      * @return
      */
     public int updateNodeState(BpmExecuteNode bpmExecuteNode);
+
+    /**
+     * 触发异常
+     */
+    int triggerException(TriggerExceptionVO vo) throws Exception;
+
 }

+ 54 - 0
ruoyi-process-execution/src/main/java/com/ruoyi/execution/produce/dispersed/service/impl/BpmExecuteNodeServiceImpl.java

@@ -2,12 +2,25 @@ package com.ruoyi.execution.produce.dispersed.service.impl;
 
 import java.util.List;
 
+import com.ruoyi.common.constant.BpmNodeTypeConstants;
+import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.bpm.XmlDataParserUtils;
+import com.ruoyi.common.utils.uuid.IdUtils;
 import com.ruoyi.execution.produce.dispersed.enetity.BpmExecuteNode;
+import com.ruoyi.execution.produce.dispersed.enetity.BpmExecuteNodeMiddle;
+import com.ruoyi.execution.produce.dispersed.enetity.BpmExecuteProcess;
+import com.ruoyi.execution.produce.dispersed.enetity.runbpm.SysBpmNodeScriptVO;
+import com.ruoyi.execution.produce.dispersed.enetity.runbpm.TriggerExceptionVO;
+import com.ruoyi.execution.produce.dispersed.mapper.BpmExecuteNodeMiddleMapper;
+import com.ruoyi.execution.produce.dispersed.mapper.BpmExecuteProcessMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.ruoyi.execution.produce.dispersed.mapper.BpmExecuteNodeMapper;
 import com.ruoyi.execution.produce.dispersed.service.IBpmExecuteNodeService;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
 
 /**
  * 节点执行(记录)Service业务层处理
@@ -17,9 +30,16 @@ import com.ruoyi.execution.produce.dispersed.service.IBpmExecuteNodeService;
  */
 @Service
 public class BpmExecuteNodeServiceImpl implements IBpmExecuteNodeService {
+
     @Autowired
     private BpmExecuteNodeMapper bpmExecuteNodeMapper;
 
+    @Resource
+    private BpmExecuteProcessMapper bpmExecuteProcessMapper;
+
+    @Resource
+    private BpmExecuteNodeMiddleMapper bpmExecuteNodeMiddleMapper;
+
     /**
      * 查询节点执行(记录)
      *
@@ -91,4 +111,38 @@ public class BpmExecuteNodeServiceImpl implements IBpmExecuteNodeService {
     public int updateNodeState(BpmExecuteNode bpmExecuteNode) {
         return bpmExecuteNodeMapper.updateNodeState(bpmExecuteNode);
     }
+
+    @Override
+    @Transactional
+    public int triggerException(TriggerExceptionVO vo) throws Exception{
+        //新增节点标签ID
+        String newUserTaskTagId = "Flow_" + IdUtils.fastSimpleUUID().substring(0,7);
+        //bpm_execute_process
+        BpmExecuteProcess bpmExecuteProcess = bpmExecuteProcessMapper.selectBpmExecuteProcessByTaskKey(vo.getTaskProcessKey());
+        //sys_bpm_node_script
+        SysBpmNodeScriptVO sysBpmNodeScriptVO = vo.getSysBpmNodeScriptVO();
+        //修改当前执行流程xml内容,当前节点下一节点信息
+        String afterAnalysis = XmlDataParserUtils.addUserTaskTag(bpmExecuteProcess.getTaskProcessXmlContent(),newUserTaskTagId,sysBpmNodeScriptVO.getScriptName(),vo.getTaskNodeKey());
+        bpmExecuteProcess.setTaskProcessXmlContent(afterAnalysis);
+        bpmExecuteProcess.setTaskNodeKey(newUserTaskTagId);
+        bpmExecuteProcess.setTaskNodeNextKey(bpmExecuteProcess.getTaskNodeKey());
+        bpmExecuteProcessMapper.updateBpmExecuteProcess(bpmExecuteProcess);
+        //得到当前节点信息,添加异常节点信息
+        BpmExecuteNode bpmExecuteNode = bpmExecuteNodeMapper.queryBpmExecuteNodeBytaskNodeKey(vo.getTaskProcessKey(), vo.getTaskNodeKey());
+        bpmExecuteNode.setId(null);
+        bpmExecuteNode.setTaskNodeKey(newUserTaskTagId);
+        bpmExecuteNode.setTaskNodeName(sysBpmNodeScriptVO.getScriptName());
+        bpmExecuteNode.setTaskNodeType(BpmNodeTypeConstants.EXCEPTION_TASK);
+        bpmExecuteNode.setTaskRemark(sysBpmNodeScriptVO.getScriptDescription());
+        bpmExecuteNode.setTaskNodeState("0");
+        bpmExecuteNode.setTaskNodeNumber("");
+        bpmExecuteNode.setTaskNodeWeight("");
+        bpmExecuteNodeMapper.insertBpmExecuteNode(bpmExecuteNode);
+        //得到当前节点用户关联表信息,添加异常节点用户关联表信息
+        BpmExecuteNodeMiddle bpmExecuteNodeMiddle = bpmExecuteNodeMiddleMapper.queryBpmExecuteNodeMiddleByTaskNodeKey(vo.getTaskNodeKey());
+        bpmExecuteNodeMiddle.setId(null);
+        bpmExecuteNodeMiddle.setTaskNodeKey(newUserTaskTagId);
+        bpmExecuteNodeMiddle.setTaskAutomaticScriptTriggerType(sysBpmNodeScriptVO.getScriptKey());
+        return bpmExecuteNodeMiddleMapper.insertBpmExecuteNodeMiddle(bpmExecuteNodeMiddle);
+    }
 }

+ 70 - 0
ruoyi-process-execution/src/main/java/com/ruoyi/execution/produce/dispersed/service/impl/runbpm/TestBpm.java

@@ -0,0 +1,70 @@
+package com.ruoyi.execution.produce.dispersed.service.impl.runbpm;
+
+import com.ruoyi.common.config.bpm.BpmProperties;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.execution.produce.dispersed.enetity.runbpm.IRunBPMEntity;
+import com.ruoyi.execution.produce.dispersed.service.IRunBPMService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.client.RestTemplate;
+
+import java.util.Map;
+
+/**
+ * 测试新增库存
+ */
+public class TestBpm implements IRunBPMService {
+
+    @Autowired
+    private BpmProperties bpmProperties;
+
+    // 创建RestTemplate实例
+    RestTemplate restTemplate = new RestTemplate();
+
+    @Override
+    public AjaxResult preValidation(IRunBPMEntity iRunBPMEntity) {
+        if(iRunBPMEntity.getExecutionMap().isEmpty()){
+            return AjaxResult.error("所需参数不存在!");
+        }
+        return AjaxResult.success();
+    }
+
+    @Override
+    public AjaxResult executeNode(IRunBPMEntity iRunBPMEntity) {
+        // 得到当前用户的token  下发流程请求需要携带
+        String token = SecurityUtils.getLoginUser().getToken();
+        // 设置请求头
+        HttpHeaders headers = new HttpHeaders();
+        headers.set("Authorization", "XIAFA" + token);
+        // 将请求体和请求头添加到HttpEntity
+        HttpEntity<Map<String, Object>> requestEntity = (HttpEntity<Map<String, Object>>) new HttpEntity<>(iRunBPMEntity.getExecutionMap(), headers);
+        // 发送POST请求
+        ResponseEntity<String> response = restTemplate.exchange(bpmProperties.formCommonBatchInsertIp, HttpMethod.POST, requestEntity, String.class);
+        // 处理响应
+        if (response.getStatusCode().is2xxSuccessful()) {
+            return AjaxResult.success();
+        } else {
+            return AjaxResult.error();
+        }
+
+    }
+
+    @Override
+    public AjaxResult afterValidation(IRunBPMEntity iRunBPMEntity) {
+        return null;
+    }
+
+    @Override
+    public boolean isVerificationMethod() {
+        return false;
+    }
+
+    @Override
+    public boolean preDestroy() {
+        return false;
+    }
+}

+ 8 - 0
ruoyi-process-execution/src/main/resources/mapper/bpm/dispersed/BpmExecuteNodeMapper.xml

@@ -11,6 +11,7 @@
         <result property="taskNodeName" column="task_node_name"/>
         <result property="taskNodeFormKey" column="task_node_form_key"/>
         <result property="taskNodeType" column="task_node_type"/>
+        <result property="taskNodeExecuteType" column="task_node_execute_type"/>
         <result property="taskNodeBefore" column="task_node_before"/>
         <result property="taskNodeAfter" column="task_node_after"/>
         <result property="taskNodeRolePermission" column="task_node_role_permission"/>
@@ -37,6 +38,7 @@
                task_node_name,
                task_node_form_key,
                task_node_type,
+               task_node_execute_type,
                task_node_before,
                task_node_after,
                task_node_role_permission,
@@ -102,6 +104,7 @@
             <if test="taskNodeName != null">task_node_name,</if>
             <if test="taskNodeFormKey != null">task_node_form_key,</if>
             <if test="taskNodeType != null">task_node_type,</if>
+            <if test="taskNodeExecuteType != null">task_node_execute_type,</if>
             <if test="taskNodeBefore != null">task_node_before,</if>
             <if test="taskNodeAfter != null">task_node_after,</if>
             <if test="taskNodeRolePermission != null">task_node_role_permission,</if>
@@ -126,6 +129,7 @@
             <if test="taskNodeName != null">#{taskNodeName},</if>
             <if test="taskNodeFormKey != null">#{taskNodeFormKey},</if>
             <if test="taskNodeType != null">#{taskNodeType},</if>
+            <if test="taskNodeExecuteType != null">#{taskNodeExecuteType},</if>
             <if test="taskNodeBefore != null">#{taskNodeBefore},</if>
             <if test="taskNodeAfter != null">#{taskNodeAfter},</if>
             <if test="taskNodeRolePermission != null">#{taskNodeRolePermission},</if>
@@ -153,6 +157,7 @@
         task_node_name,
         task_node_form_key,
         task_node_type,
+        task_node_execute_type,
         task_node_before,
         task_node_after,
         task_node_role_permission,
@@ -177,6 +182,7 @@
             coalesce(#{item.taskNodeName},''),
             coalesce(#{item.taskNodeFormKey},''),
             coalesce(#{item.taskNodeType},''),
+            coalesce(#{item.taskNodeExecuteType},''),
             coalesce(#{item.taskNodeBefore},''),
             coalesce(#{item.taskNodeAfter},''),
             coalesce(#{item.taskNodeRolePermission},''),
@@ -205,6 +211,7 @@
             <if test="taskNodeName != null">task_node_name = #{taskNodeName},</if>
             <if test="taskNodeFormKey != null">task_node_form_key = #{taskNodeFormKey},</if>
             <if test="taskNodeType != null">task_node_type = #{taskNodeType},</if>
+            <if test="taskNodeExecuteType != null">task_node_execute_type = #{taskNodeExecuteType},</if>
             <if test="taskNodeBefore != null">task_node_before = #{taskNodeBefore},</if>
             <if test="taskNodeAfter != null">task_node_after = #{taskNodeAfter},</if>
             <if test="taskNodeRolePermission != null">task_node_role_permission = #{taskNodeRolePermission},</if>
@@ -248,6 +255,7 @@
             <if test="taskNodeName != null">task_node_name = #{taskNodeName},</if>
             <if test="taskNodeFormKey != null">task_node_form_key = #{taskNodeFormKey},</if>
             <if test="taskNodeType != null">task_node_type = #{taskNodeType},</if>
+            <if test="taskNodeExecuteType != null">task_node_execute_type = #{taskNodeExecuteType},</if>
             <if test="taskNodeBefore != null">task_node_before = #{taskNodeBefore},</if>
             <if test="taskNodeAfter != null">task_node_after = #{taskNodeAfter},</if>
             <if test="taskNodeRolePermission != null">task_node_role_permission = #{taskNodeRolePermission},</if>

+ 5 - 0
ruoyi-process-execution/src/main/resources/mapper/bpm/dispersed/BpmExecuteProcessMapper.xml

@@ -178,4 +178,9 @@
         </foreach>
         FIND_IN_SET(#{userId}, task_execute_user_no) > 0)
     </select>
+
+    <select id="selectBpmExecuteProcessByTaskKey" parameterType="string" resultMap="BpmExecuteProcessResult">
+        <include refid="selectBpmExecuteProcessVo"/>
+        where task_key = #{taskKey} and del_flag = '0'
+    </select>
 </mapper>

+ 16 - 1
ruoyi-system/src/main/java/com/ruoyi/system/entity/BpmProcessConfiguration.java

@@ -44,6 +44,11 @@ public class BpmProcessConfiguration extends BaseEntity {
      */
     private String nodeType;
 
+    /**
+     * 节点执行类型(0:自动执行;1:手动执行)
+     */
+    private String nodeExecuteType;
+
     /**
      * 节点前
      */
@@ -86,13 +91,14 @@ public class BpmProcessConfiguration extends BaseEntity {
         this.nodeProcessKey = nodeProcessKey;
     }
 
-    public BpmProcessConfiguration(Long id, String nodeKey, String nodeName, String nodeFormKey, String nodeProcessKey, String nodeType, String nodeBefore, String nodeAfter, String nodeRolePermission, String spare1, String spare2, String spare3, String delFlag) {
+    public BpmProcessConfiguration(Long id, String nodeKey, String nodeName, String nodeFormKey, String nodeProcessKey, String nodeType, String nodeExecuteType, String nodeBefore, String nodeAfter, String nodeRolePermission, String spare1, String spare2, String spare3, String delFlag) {
         this.id = id;
         this.nodeKey = nodeKey;
         this.nodeName = nodeName;
         this.nodeFormKey = nodeFormKey;
         this.nodeProcessKey = nodeProcessKey;
         this.nodeType = nodeType;
+        this.nodeExecuteType = nodeExecuteType;
         this.nodeBefore = nodeBefore;
         this.nodeAfter = nodeAfter;
         this.nodeRolePermission = nodeRolePermission;
@@ -150,6 +156,14 @@ public class BpmProcessConfiguration extends BaseEntity {
         this.nodeType = nodeType;
     }
 
+    public String getNodeExecuteType() {
+        return nodeExecuteType;
+    }
+
+    public void setNodeExecuteType(String nodeExecuteType) {
+        this.nodeExecuteType = nodeExecuteType;
+    }
+
     public String getNodeBefore() {
         return nodeBefore;
     }
@@ -215,6 +229,7 @@ public class BpmProcessConfiguration extends BaseEntity {
                 .append("nodeFormKey", getNodeFormKey())
                 .append("nodeProcessKey", getNodeProcessKey())
                 .append("nodeType", getNodeType())
+                .append("nodeExecuteType",getNodeExecuteType())
                 .append("nodeBefore", getNodeBefore())
                 .append("nodeAfter", getNodeAfter())
                 .append("nodeRolePermission", getNodeRolePermission())

+ 5 - 2
ruoyi-system/src/main/resources/mapper/bpm/BpmProcessConfigurationMapper.xml

@@ -11,6 +11,7 @@
         <result property="nodeFormKey"    column="node_form_key"    />
         <result property="nodeProcessKey"    column="node_process_key"    />
         <result property="nodeType"    column="node_type"    />
+        <result property="nodeExecuteType" column="node_execute_type"/>
         <result property="nodeBefore"    column="node_before"    />
         <result property="nodeAfter"    column="node_after"    />
         <result property="nodeRolePermission"    column="node_role_permission"    />
@@ -32,6 +33,7 @@
                node_form_key,
                node_process_key,
                node_type,
+               node_execute_type,
                node_before,
                node_after,
                node_role_permission,
@@ -71,13 +73,13 @@
     <insert id="insertBpmProcessConfiguration" parameterType="java.util.List">
         insert into {DBNAME}.bpm_process_configuration(
         node_key,node_name,node_form_key, node_process_key,
-        node_type, node_before, node_after,
+        node_type,node_execute_type, node_before, node_after,
         node_role_permission, spare1, spare2,
         spare3, del_flag,create_by_id,create_by,create_time,
         update_by_id,update_by,update_time, remark)
         values
         <foreach collection="list" item="item" index="index" separator=",">
-            (#{item.nodeKey},#{item.nodeName}, #{item.nodeFormKey}, #{item.nodeProcessKey}, #{item.nodeType}, #{item.nodeBefore},
+            (#{item.nodeKey},#{item.nodeName}, #{item.nodeFormKey}, #{item.nodeProcessKey}, #{item.nodeType},#{item.nodeExecuteType}, #{item.nodeBefore},
             #{item.nodeAfter},
             #{item.nodeRolePermission}, #{item.spare1}, #{item.spare2}, #{item.spare3}, '0',
             #{item.createById},
@@ -96,6 +98,7 @@
             <if test="nodeFormKey != null">node_form_key = #{nodeFormKey},</if>
             <if test="nodeProcessKey != null">node_process_key = #{nodeProcessKey},</if>
             <if test="nodeType != null">node_type = #{nodeType},</if>
+            <if test="nodeExecuteType != null">node_execute_type = #{nodeExecuteType},</if>
             <if test="nodeBefore != null">node_before = #{nodeBefore},</if>
             <if test="nodeAfter != null">node_after = #{nodeAfter},</if>
             <if test="nodeRolePermission != null">node_role_permission = #{nodeRolePermission},</if>