Explorar el Código

feat:触发异常节点接口

xuezizhuo hace 1 año
padre
commit
b0ac427675

+ 1 - 8
ruoyi-process-execution/src/main/java/com/ruoyi/execution/produce/dispersed/controller/BpmExecuteNodeController.java

@@ -96,12 +96,5 @@ public class BpmExecuteNodeController extends BaseController {
     public AjaxResult remove(@PathVariable Long[] ids) {
         return toAjax(bpmExecuteNodeService.deleteBpmExecuteNodeByIds(ids));
     }
-
-    /**
-     * 触发异常节点
-     */
-    @PostMapping("/triggerExceptionNode")
-    public AjaxResult triggerExceptionNode(@RequestBody TriggerExceptionVO vo) throws Exception {
-        return toAjax(bpmExecuteNodeService.triggerExceptionNode(vo));
-    }
+    
 }

+ 16 - 1
ruoyi-process-execution/src/main/java/com/ruoyi/execution/produce/dispersed/controller/BpmRunController.java

@@ -1,10 +1,13 @@
 package com.ruoyi.execution.produce.dispersed.controller;
 
 import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.execution.produce.dispersed.entity.runbpm.BpmRunNodeVo;
+import com.ruoyi.execution.produce.dispersed.entity.runbpm.TriggerExceptionVO;
 import com.ruoyi.execution.produce.dispersed.runbpm.PreExecutionToolClass;
+import com.ruoyi.execution.produce.dispersed.service.IBpmExecuteNodeService;
 import com.ruoyi.system.entity.CommonEntity;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -20,11 +23,14 @@ import java.io.IOException;
  */
 @RestController
 @RequestMapping("/system/runbpm/process")
-public class BpmRunController {
+public class BpmRunController extends BaseController {
 
     @Autowired
     private PreExecutionToolClass ipreExecutionToolClass;
 
+    @Autowired
+    private IBpmExecuteNodeService bpmExecuteNodeService;
+
     /**
      * 共通投产流程接口
      */
@@ -62,6 +68,15 @@ public class BpmRunController {
     public AjaxResult ProcessNodeFormTemplate(BpmRunNodeVo bpmRunNodeVo) {
         return AjaxResult.success(null);
     }
+
+
+    /**
+     * 触发异常节点
+     */
+    @PostMapping("/triggerExceptionNode")
+    public AjaxResult triggerExceptionNode(@RequestBody TriggerExceptionVO vo) throws Exception {
+        return toAjax(bpmExecuteNodeService.triggerExceptionNode(vo));
+    }
 }
 /**
  * 15:39:45.028 [http-nio-8055-exec-3] WARN  o.s.w.s.m.m.a.ExceptionHandlerExceptionResolver - [logException,208] -

+ 8 - 0
ruoyi-process-execution/src/main/java/com/ruoyi/execution/produce/dispersed/mapper/BpmExecuteNodeFormMapper.java

@@ -59,4 +59,12 @@ public interface BpmExecuteNodeFormMapper
      * @return 结果
      */
     public int deleteBpmExecuteNodeFormByIds(Long[] ids);
+
+    /**
+     * 查询执行节点单详情
+     *
+     * @param bpmExecuteNodeForm 执行节点单
+     * @return 执行节点单集合
+     */
+    BpmExecuteNodeForm selectBpmExecuteNodeFormInfo(BpmExecuteNodeForm bpmExecuteNodeForm);
 }

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

@@ -7,10 +7,12 @@ 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.entity.BpmExecuteNode;
+import com.ruoyi.execution.produce.dispersed.entity.BpmExecuteNodeForm;
 import com.ruoyi.execution.produce.dispersed.entity.BpmExecuteNodeMiddle;
 import com.ruoyi.execution.produce.dispersed.entity.BpmExecuteProcess;
 import com.ruoyi.execution.produce.dispersed.entity.runbpm.SysBpmNodeScriptVO;
 import com.ruoyi.execution.produce.dispersed.entity.runbpm.TriggerExceptionVO;
+import com.ruoyi.execution.produce.dispersed.mapper.BpmExecuteNodeFormMapper;
 import com.ruoyi.execution.produce.dispersed.mapper.BpmExecuteNodeMiddleMapper;
 import com.ruoyi.execution.produce.dispersed.mapper.BpmExecuteProcessMapper;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -39,6 +41,9 @@ public class BpmExecuteNodeServiceImpl implements IBpmExecuteNodeService {
     @Resource
     private BpmExecuteNodeMiddleMapper bpmExecuteNodeMiddleMapper;
 
+    @Autowired
+    private BpmExecuteNodeFormMapper bpmExecuteNodeFormMapper;
+
     /**
      * 查询节点执行(记录)
      *
@@ -115,11 +120,22 @@ public class BpmExecuteNodeServiceImpl implements IBpmExecuteNodeService {
     @Transactional
     public int triggerExceptionNode(TriggerExceptionVO vo) throws Exception {
         //新增节点标签ID
-        String newUserTaskTagId = "Flow_" + IdUtils.fastSimpleUUID().substring(0, 7);
-        //bpm_execute_process
+        String newUserTaskTagId = "Activity_" + IdUtils.fastSimpleUUID().substring(0, 7);
+        //select bpm_execute_process
         BpmExecuteProcess bpmExecuteProcess = bpmExecuteProcessMapper.selectBpmExecuteProcessByTaskKey(vo.getTaskProcessKey());
-        //sys_bpm_node_script
+        //sys_bpm_node_script info
         SysBpmNodeScriptVO sysBpmNodeScriptVO = vo.getSysBpmNodeScriptVO();
+
+        //select bpm_execute_node_form
+        BpmExecuteNodeForm bpmExecuteNodeForm = new BpmExecuteNodeForm();
+        bpmExecuteNodeForm.setTaskProcessKey(vo.getTaskProcessKey());
+        bpmExecuteNodeForm.setTaskNodeKey(vo.getTaskNodeKey());
+        bpmExecuteNodeForm.setTaskScriptKey(vo.getSysBpmNodeScriptVO().getScriptKey());
+        BpmExecuteNodeForm bpmExecuteNodeForm1 = bpmExecuteNodeFormMapper.selectBpmExecuteNodeFormInfo(bpmExecuteNodeForm);
+        //insert bpm_execute_node_form
+        bpmExecuteNodeForm1.setTaskNodeKey(newUserTaskTagId);
+        bpmExecuteNodeFormMapper.insertBpmExecuteNodeForm(bpmExecuteNodeForm1);
+
         //修改当前执行流程xml内容,当前节点下一节点信息
         String afterAnalysis = XmlDataParserUtils.addUserTaskTag(bpmExecuteProcess.getTaskProcessXmlContent(), newUserTaskTagId, sysBpmNodeScriptVO.getScriptName(), vo.getTaskNodeKey());
         bpmExecuteProcess.setTaskProcessXmlContent(afterAnalysis);
@@ -139,10 +155,12 @@ public class BpmExecuteNodeServiceImpl implements IBpmExecuteNodeService {
         bpmExecuteNode.setTaskNodeState("0");
         bpmExecuteNode.setTaskNodeNumber("");
         bpmExecuteNode.setTaskNodeWeight("");
-        bpmExecuteNode.setTaskNodeFormKey("");
-        bpmExecuteNode.setTaskNodeFormType("");
+        bpmExecuteNode.setTaskNodeFormKey(bpmExecuteNodeForm1.getTaskNodeFormKey());
+        bpmExecuteNode.setTaskNodeFormType(bpmExecuteNodeForm1.getTaskNodeFromType());
         bpmExecuteNode.setTaskNodeRolePermission(taskNodeRolePermission);
         bpmExecuteNodeMapper.insertBpmExecuteNode(bpmExecuteNode);
+
+
         //得到当前节点用户关联表信息,添加异常节点用户关联表信息
         BpmExecuteNodeMiddle bpmExecuteNodeMiddle = bpmExecuteNodeMiddleMapper.queryBpmExecuteNodeMiddleByTaskNodeKey(vo.getTaskProcessKey(), vo.getTaskNodeKey());
         bpmExecuteNodeMiddle.setId(null);

+ 12 - 0
ruoyi-process-execution/src/main/resources/mapper/bpm/dispersed/BpmExecuteNodeFormMapper.xml

@@ -80,4 +80,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             #{id}
         </foreach>
     </delete>
+
+    <select id="selectBpmExecuteNodeFormInfo" parameterType="com.ruoyi.execution.produce.dispersed.entity.BpmExecuteNodeForm" resultMap="BpmExecuteNodeFormResult">
+        <include refid="selectBpmExecuteNodeFormVo"/>
+        <where>
+            <if test="taskProcessKey != null  and taskProcessKey != ''"> and task_process_key = #{taskProcessKey}</if>
+            <if test="taskNodeKey != null  and taskNodeKey != ''"> and task_node_key = #{taskNodeKey}</if>
+            <if test="taskScriptKey != null  and taskScriptKey != ''"> and task_script_key = #{taskScriptKey}</if>
+            <if test="taskNodeFormKey != null  and taskNodeFormKey != ''"> and task_node_form_key = #{taskNodeFormKey}</if>
+            <if test="taskNodeFromType != null  and taskNodeFromType != ''"> and task_node_from_type = #{taskNodeFromType}</if>
+            <if test="taskNodeFromContent != null  and taskNodeFromContent != ''"> and task_node_from_content = #{taskNodeFromContent}</if>
+        </where>
+    </select>
 </mapper>