home 2 vuotta sitten
vanhempi
commit
a22eee1a5c

+ 13 - 0
hx-common/service-flow/src/main/java/com/fjhx/controller/process/ProcessTenantController.java

@@ -1,8 +1,10 @@
 package com.fjhx.controller.process;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.entity.process.ProcessNode;
 import com.fjhx.entity.process.ProcessTenant;
 import com.fjhx.params.NodeDetailsVo;
+import com.fjhx.service.process.ProcessNodeService;
 import com.fjhx.service.process.ProcessTenantService;
 import org.springblade.core.tool.api.R;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -29,6 +31,9 @@ public class ProcessTenantController {
     @Autowired
     private ProcessTenantService processTenantService;
 
+    @Autowired
+    private ProcessNodeService processNodeService;
+
     /**
      * 分页
      */
@@ -57,6 +62,14 @@ public class ProcessTenantController {
     }
 
     /**
+     * 添加流程版本
+     */
+    @PostMapping("/getDetails")
+    public R addVersion(@RequestBody ProcessTenant processTenant) {
+        return R.data(processNodeService.list(ProcessNode::getProcessTenantId, processTenant.getId()));
+    }
+
+    /**
      * 获取流程版本号
      */
     @PostMapping("/getVersionByProcessInfoId")

+ 66 - 102
hx-common/service-flow/src/main/java/com/fjhx/feign/FlowClient.java

@@ -1,8 +1,8 @@
 package com.fjhx.feign;
 
-import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.fjhx.base.BaseEntity;
 import com.fjhx.constants.FlowConstant;
 import com.fjhx.constants.FlowExplainConstant;
 import com.fjhx.constants.StatusConstant;
@@ -13,8 +13,8 @@ import com.fjhx.entity.process.ProcessNodeButton;
 import com.fjhx.entity.process.ProcessTenant;
 import com.fjhx.enums.ButtonNameEnum;
 import com.fjhx.enums.HandleResultEnum;
-import com.fjhx.enums.ProcessNodeTypeEnum;
-import com.fjhx.params.*;
+import com.fjhx.params.ExampleResult;
+import com.fjhx.params.JumpVo;
 import com.fjhx.service.example.ExampleDetailsService;
 import com.fjhx.service.example.ExampleInfoService;
 import com.fjhx.service.process.ProcessInfoService;
@@ -52,94 +52,6 @@ public class FlowClient implements IFlowClient {
     @Autowired
     private ExampleDetailsService exampleDetailsService;
 
-    @PostMapping(GET_FLOW_INFO)
-    @Override
-    public R<FlowInfoVo> getProcessTenant(Long flowLinkNo, String code) {
-
-        ExampleInfo exampleInfo = exampleInfoService.getOne(
-                Wrappers.<ExampleInfo>lambdaQuery()
-                        .eq(ExampleInfo::getFlowLinkNo, flowLinkNo)
-                        .eq(ExampleInfo::getComplete, StatusConstant.NO));
-
-        Assert.empty(exampleInfo, FlowExplainConstant.EXPLAIN_NOT_EXIST);
-
-        // 查找通用流程
-        ProcessInfo processInfo = processInfoService.getOne(ProcessInfo::getCode, code);
-        Assert.notEmpty(processInfo, String.format(FlowExplainConstant.PROCESS_NOT_EXIST, code));
-
-        FlowInfoVo flowInfoVo = BeanUtil.toBean(processInfo, FlowInfoVo.class);
-
-        // 获取租户流程
-        ProcessTenant processTenant = processTenantService.getOne(Wrappers.<ProcessTenant>lambdaQuery()
-                .eq(ProcessTenant::getProcessInfoId, processInfo.getId())
-                .eq(ProcessTenant::getBindingTenantId, AuthUtil.getTenantId())
-                .eq(ProcessTenant::getCurrentVersion, StatusConstant.YES));
-
-        flowInfoVo.setProcessTenant(processTenant);
-
-        return R.data(flowInfoVo);
-    }
-
-    @PostMapping(GET_NODE_BUTTON)
-    @Override
-    public R<ProcessNodeButton> getNodeButton(GetNodeButtonVo getNodeButtonVo) {
-        Long processTenantId = getNodeButtonVo.getProcessTenantId();
-        String nodeCode = getNodeButtonVo.getNodeCode();
-        Long buttonId = getNodeButtonVo.getButtonId();
-
-
-        ProcessNodeButton processNodeButton = processNodeButtonService.getOne(
-                Wrappers.<ProcessNodeButton>lambdaQuery()
-                        .eq(ProcessNodeButton::getProcessTenantId, processTenantId)
-                        .eq(ObjectUtil.isNotEmpty(nodeCode), ProcessNodeButton::getProcessNodeCode, nodeCode)
-                        .eq(ObjectUtil.isEmpty(nodeCode), ProcessNodeButton::getId, buttonId));
-
-        Assert.notEmpty(processNodeButton, FlowExplainConstant.SPECIFY_BRANCH_EMPTY);
-        return R.data(processNodeButton);
-    }
-
-    @PostMapping(EXAMPLE_INFO_SAVE)
-    @Override
-    public R<ExampleInfo> exampleInfoSave(ExampleInfoEx exampleInfo) {
-        exampleInfoService.saveOrUpdate(exampleInfo);
-
-        ExampleDetails exampleDetails = exampleInfo.getExampleDetails();
-        exampleDetails.setExampleInfoId(exampleInfo.getId());
-        exampleDetails.setProcessInfoId(exampleInfo.getProcessInfoId());
-        exampleDetails.setProcessTenantId(exampleInfo.getProcessTenantId());
-        exampleDetails.setHandleUserId(AuthUtil.getUserId());
-
-        if (exampleInfo.getComplete().equals(StatusConstant.YES)) {
-
-            ExampleDetails endExampleDetails = new ExampleDetails();
-            endExampleDetails.setExampleInfoId(exampleInfo.getId());
-            endExampleDetails.setProcessInfoId(exampleInfo.getProcessInfoId());
-            endExampleDetails.setProcessTenantId(exampleInfo.getProcessTenantId());
-            endExampleDetails.setHandleUserId(AuthUtil.getUserId());
-            endExampleDetails.setRemarks(FlowConstant.END_REMARKS);
-
-            endExampleDetails.setNameType(ProcessNodeTypeEnum.END.getType());
-            exampleDetailsService.saveBatch(Arrays.asList(exampleDetails, endExampleDetails));
-        } else {
-            exampleDetailsService.save(exampleDetails);
-        }
-
-        return R.data(BeanUtil.toBean(exampleInfo, ExampleInfo.class));
-    }
-
-    @Override
-    public R<ExampleInfo> getExampleInfo(Long flowLinkNo) {
-
-        ExampleInfo exampleInfo = exampleInfoService.getOne(
-                Wrappers.<ExampleInfo>lambdaQuery()
-                        .eq(ExampleInfo::getFlowLinkNo, flowLinkNo)
-                        .eq(ExampleInfo::getComplete, StatusConstant.NO));
-
-        Assert.notEmpty(exampleInfo, FlowExplainConstant.EXAMPLE_INFO_NULL);
-
-        return R.data(exampleInfo);
-    }
-
     @Transactional(rollbackFor = Exception.class)
     @GetMapping(CREATE)
     @Override
@@ -178,8 +90,8 @@ public class FlowClient implements IFlowClient {
 
         // 走默认流程,直接完成
         if (processTenant == null) {
-            exampleInfo.setFlowType(FlowConstant.FLOW_TYPE_DEFAULT);
             exampleInfoEnd(exampleInfo);
+            exampleInfo.setFlowType(FlowConstant.FLOW_TYPE_DEFAULT);
             exampleInfo.setHandleResult(HandleResultEnum.ADOPT.getType());
             exampleInfoService.save(exampleInfo);
 
@@ -213,7 +125,10 @@ public class FlowClient implements IFlowClient {
             exampleInfoService.save(exampleInfo);
 
             ExampleDetails endExampleDetails = createExampleDetails(exampleInfo, ButtonNameEnum.END.getType());
-            exampleDetailsService.saveBatch(Arrays.asList(startExampleDetails, endExampleDetails));
+
+            startExampleDetails.setExampleInfoId(exampleInfo.getId());
+            endExampleDetails.setExampleInfoId(exampleInfo.getId());
+            saveExampleDetails(startExampleDetails, endExampleDetails);
 
             // 返回值
             exampleResult.setOldExampleInfo(exampleInfo);
@@ -233,6 +148,10 @@ public class FlowClient implements IFlowClient {
 
         Assert.notEmpty(processNodeButton, FlowExplainConstant.SPECIFY_BRANCH_EMPTY);
 
+        // 赋值所在节点
+        startExampleDetails.setProcessNodeId(processNodeButton.getProcessNodeId());
+        startExampleDetails.setProcessNodeButtonId(processNodeButton.getId());
+
         // 如果所在节点是开始节点,流转到下一节点,否则所在节点是指定code的节点
         Long jumpNodeId;
         String jumpNodeCode;
@@ -253,7 +172,12 @@ public class FlowClient implements IFlowClient {
 
             ExampleDetails endExampleDetails = createExampleDetails(exampleInfo, ButtonNameEnum.END.getType());
 
-            exampleDetailsService.saveBatch(Arrays.asList(startExampleDetails, endExampleDetails));
+            startExampleDetails.setExampleInfoId(exampleInfo.getId());
+
+            endExampleDetails.setExampleInfoId(exampleInfo.getId());
+            endExampleDetails.setProcessNodeId(jumpNodeId);
+
+            saveExampleDetails(startExampleDetails, endExampleDetails);
 
             // 返回值
             exampleResult.setExampleDetailsIdList(
@@ -267,6 +191,7 @@ public class FlowClient implements IFlowClient {
             exampleInfo.setHandleResult(HandleResultEnum.NOT_START.getType());
             exampleInfoService.save(exampleInfo);
 
+            startExampleDetails.setExampleInfoId(exampleInfo.getId());
             exampleDetailsService.save(startExampleDetails);
 
             // 返回值
@@ -290,7 +215,7 @@ public class FlowClient implements IFlowClient {
 
 
     @Transactional(rollbackFor = Exception.class)
-    @GetMapping(JUMP)
+    @PostMapping(JUMP)
     @Override
     public R<ExampleResult> jump(JumpVo jumpVo) {
 
@@ -329,11 +254,14 @@ public class FlowClient implements IFlowClient {
             // 结束明细
             ExampleDetails endExampleDetails = createExampleDetails(exampleInfo, ButtonNameEnum.END.getType());
 
+            exampleDetails.setExampleInfoId(exampleInfo.getId());
+            endExampleDetails.setExampleInfoId(exampleInfo.getId());
+            saveExampleDetails(exampleDetails, endExampleDetails);
+
             exampleResult.setOldExampleInfo(oleExampleInfo);
             exampleResult.setCacheDataStr(exampleInfo.getCacheData());
             exampleResult.setExampleDetailsIdList(Arrays.asList(exampleDetails.getId(), endExampleDetails.getId()));
             exampleResult.setHandleType(ButtonNameEnum.END.getType());
-
             return R.data(exampleResult);
         }
 
@@ -361,14 +289,29 @@ public class FlowClient implements IFlowClient {
         if (ButtonNameEnum.END.getType().equals(jumpVo.getNameType())) {
             exampleInfoEnd(exampleInfo);
             exampleInfo.setHandleResult(HandleResultEnum.ADOPT.getType());
+
             ExampleDetails endExampleDetails = createExampleDetails(exampleInfo, ButtonNameEnum.END.getType());
+            endExampleDetails.setProcessNodeId(jumpVo.getJumpNodeId());
+
+            exampleDetails.setExampleInfoId(exampleInfo.getId());
+            endExampleDetails.setExampleInfoId(exampleInfo.getId());
+            saveExampleDetails(exampleDetails, endExampleDetails);
+            // 流程实例明细id
             exampleResult.setExampleDetailsIdList(Arrays.asList(exampleDetails.getId(), endExampleDetails.getId()));
         }
         // 驳回结束
         else if (ButtonNameEnum.REJECT.getType().equals(jumpVo.getNameType())) {
             exampleInfoEnd(exampleInfo);
             exampleInfo.setHandleResult(HandleResultEnum.FAIL.getType());
+
             ExampleDetails endExampleDetails = createExampleDetails(exampleInfo, ButtonNameEnum.END.getType());
+            endExampleDetails.setProcessNodeId(jumpVo.getJumpNodeId());
+
+            exampleDetails.setExampleInfoId(exampleInfo.getId());
+            endExampleDetails.setExampleInfoId(exampleInfo.getId());
+            saveExampleDetails(exampleDetails, exampleDetails);
+
+            // 流程实例明细id
             exampleResult.setExampleDetailsIdList(Arrays.asList(exampleDetails.getId(), endExampleDetails.getId()));
         }
         // 流程流转
@@ -376,6 +319,11 @@ public class FlowClient implements IFlowClient {
             exampleInfo.setProcessNodeId(jumpVo.getJumpNodeId());
             exampleInfo.setProcessNodeCode(jumpVo.getJumpNodeCode());
             exampleInfo.setHandleResult(HandleResultEnum.START.getType());
+
+            exampleDetails.setExampleInfoId(exampleInfo.getId());
+            exampleDetailsService.save(exampleDetails);
+
+            // 流程实例明细id
             exampleResult.setExampleDetailsIdList(Collections.singletonList(exampleDetails.getId()));
         }
 
@@ -387,30 +335,39 @@ public class FlowClient implements IFlowClient {
         return R.data(exampleResult);
     }
 
-    @GetMapping(ROLL_BACK)
+    @PostMapping(ROLL_BACK)
     @Override
     public void rollBack(ExampleResult result) {
         ExampleInfo oldExampleInfo = result.getOldExampleInfo();
 
         if (result.isDeleteExample()) {
-            exampleInfoService.removeById(oldExampleInfo.getId());
+            exampleInfoService.update(Wrappers.<ExampleInfo>lambdaUpdate()
+                    .eq(BaseEntity::getId, oldExampleInfo.getId())
+                    .set(ExampleInfo::getDelFlag, 1)
+                    .set(ExampleInfo::getRemarks, "业务异常,本次流程实例已删除")
+            );
         } else {
             exampleInfoService.updateById(oldExampleInfo);
         }
 
-        List<Long> exampleDetailsIdList = result.getExampleDetailsIdList();
-        exampleDetailsService.removeByIds(exampleDetailsIdList);
+        exampleDetailsService.update(Wrappers.<ExampleDetails>lambdaUpdate()
+                .in(BaseEntity::getId, result.getExampleDetailsIdList())
+                .set(ExampleDetails::getDelFlag, 1)
+                .set(ExampleDetails::getRemarks, "业务异常,本次流程明细已删除")
+        );
     }
 
     /**
-     * 获取流程结束明细
+     * 创建流程实例明细
      */
     private ExampleDetails createExampleDetails(ExampleInfo exampleInfo, Integer nameType) {
         return createExampleDetails(
                 exampleInfo.getId(), exampleInfo.getProcessInfoId(), exampleInfo.getProcessTenantId(), nameType);
     }
 
-
+    /**
+     * 创建流程实例明细
+     */
     private ExampleDetails createExampleDetails(Long exampleInfoId, Long processInfoId, Long processTenantId, Integer nameType) {
         ExampleDetails endExampleDetails = new ExampleDetails();
         endExampleDetails.setExampleInfoId(exampleInfoId);
@@ -429,4 +386,11 @@ public class FlowClient implements IFlowClient {
         exampleInfo.setProcessNodeCode(FlowConstant.END_CODE);
     }
 
+    /**
+     * 保存流程明细
+     */
+    private void saveExampleDetails(ExampleDetails... exampleDetails) {
+        exampleDetailsService.saveBatch(Arrays.asList(exampleDetails));
+    }
+
 }

+ 6 - 6
hx-common/service-flow/src/main/java/com/fjhx/mapper/process/ProcessTenantMapper.xml

@@ -3,14 +3,14 @@
 <mapper namespace="com.fjhx.mapper.process.ProcessTenantMapper">
 
     <select id="getPage" resultType="java.util.Map">
-        select pi.service_name,
-               pi.module_name,
+        select pi.service_name      serviceName,
+               pi.module_name       moduleName,
                pt.id,
-               pt.process_info_id,
+               pt.process_info_id   processInfoId,
                pt.name,
-               pt.binding_tenant_id,
-               pt.version_number,
-               pt.current_version
+               pt.binding_tenant_id bindingTenantId,
+               pt.version_number    versionNumber,
+               pt.current_version   currentVersion
         from process_info pi
                  left join process_tenant pt on pi.id = pt.process_info_id
             ${ew.customSqlSegment}

+ 5 - 0
hx-service-api/service-flow-api/src/main/java/com/fjhx/entity/example/ExampleInfo.java

@@ -65,6 +65,11 @@ public class ExampleInfo extends BaseEntity {
     private String cacheData;
 
     /**
+     * 备注
+     */
+    private String remarks;
+
+    /**
      * 逻辑删除 0未删除 1已删除
      */
     @TableField(fill = FieldFill.INSERT)

+ 7 - 39
hx-service-api/service-flow-api/src/main/java/com/fjhx/feign/IFlowClient.java

@@ -1,9 +1,9 @@
 package com.fjhx.feign;
 
 import com.fjhx.constants.ClientConstant;
-import com.fjhx.entity.example.ExampleInfo;
 import com.fjhx.entity.process.ProcessNodeButton;
-import com.fjhx.params.*;
+import com.fjhx.params.ExampleResult;
+import com.fjhx.params.JumpVo;
 import org.springblade.core.tool.api.R;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -17,40 +17,12 @@ import org.springframework.web.bind.annotation.RequestParam;
 @FeignClient(value = "service-flow")
 public interface IFlowClient {
 
-    String GET_FLOW_INFO = ClientConstant.API_PREFIX + "/getFlowInfo";
-    String GET_NODE_BUTTON = ClientConstant.API_PREFIX + "/getNodeButton";
-    String EXAMPLE_INFO_SAVE = ClientConstant.API_PREFIX + "/exampleInfoSave";
-    String GET_EXAMPLE_INFO = ClientConstant.API_PREFIX + "/getExampleInfo";
     String CREATE = ClientConstant.API_PREFIX + "/create";
     String GET_NODE_BUTTON_BY_ID = ClientConstant.API_PREFIX + "/getNodeButtonById";
     String JUMP = ClientConstant.API_PREFIX + "/jump";
     String ROLL_BACK = ClientConstant.API_PREFIX + "/rollBack";
 
     /**
-     * 通过流程编码获取流程信息
-     */
-    @PostMapping(GET_FLOW_INFO)
-    R<FlowInfoVo> getProcessTenant(@RequestParam("flowLinkNo") Long flowLinkNo, @RequestParam("code") String code);
-
-    /**
-     * 获取下一节点
-     */
-    @PostMapping(GET_NODE_BUTTON)
-    R<ProcessNodeButton> getNodeButton(@RequestBody GetNodeButtonVo getNodeButtonVo);
-
-    /**
-     * 保存流程实例
-     */
-    @PostMapping(EXAMPLE_INFO_SAVE)
-    R<ExampleInfo> exampleInfoSave(@RequestBody ExampleInfoEx exampleInfo);
-
-    /**
-     * 获取流程实例
-     */
-    @PostMapping(GET_EXAMPLE_INFO)
-    R<ExampleInfo> getExampleInfo(@RequestParam("flowLinkNo") Long flowLinkNo);
-
-    /**
      * 创建流程
      *
      * @param flowLinkNo 绑定流程编号
@@ -62,7 +34,7 @@ public interface IFlowClient {
     @GetMapping(CREATE)
     R<ExampleResult> create(@RequestParam("flowLinkNo") Long flowLinkNo,
                             @RequestParam("code") String code,
-                            @RequestParam("nodeCode") String nodeCode,
+                            @RequestParam(value = "nodeCode", required = false) String nodeCode,
                             @RequestParam("remarks") String remarks,
                             @RequestParam("cacheData") String cacheData);
 
@@ -77,18 +49,14 @@ public interface IFlowClient {
 
     /**
      * 流程跳转
-     *
-     * @param jumpVo 参数
      */
-    @GetMapping(JUMP)
-    R<ExampleResult> jump(JumpVo jumpVo);
+    @PostMapping(JUMP)
+    R<ExampleResult> jump(@RequestBody JumpVo jumpVo);
 
     /**
      * 异常回滚
-     *
-     * @param result
      */
-    @GetMapping(ROLL_BACK)
-    void rollBack(ExampleResult result);
+    @PostMapping(ROLL_BACK)
+    void rollBack(@RequestBody ExampleResult result);
 
 }

+ 12 - 0
hx-service-api/service-flow-api/src/main/java/com/fjhx/params/ExampleResult.java

@@ -1,6 +1,7 @@
 package com.fjhx.params;
 
 import com.fjhx.entity.example.ExampleInfo;
+import com.fjhx.utils.FlowConstructor;
 import lombok.Data;
 
 import java.util.List;
@@ -33,4 +34,15 @@ public class ExampleResult {
      */
     private boolean deleteExample;
 
+    public void after(Runnable runnable) {
+
+        try {
+            runnable.run();
+        } catch (Exception e) {
+            FlowConstructor.rollBack(this);
+            throw e;
+        }
+
+    }
+
 }

+ 2 - 3
hx-service-api/service-flow-api/src/main/java/com/fjhx/utils/ExampleAbstract.java

@@ -10,7 +10,7 @@ public abstract class ExampleAbstract {
      * 流程缓存值
      */
     @Setter
-    protected Object cacheData;
+    protected String cacheData;
 
     /**
      * 获取缓存值
@@ -19,8 +19,7 @@ public abstract class ExampleAbstract {
         if (ObjectUtil.isEmpty(cacheData)) {
             return null;
         }
-        String jsonString = JSONObject.toJSONString(cacheData);
-        return JSONObject.parseObject(jsonString, cls);
+        return JSONObject.parseObject(cacheData, cls);
     }
 
     /**

+ 35 - 11
hx-service-api/service-flow-api/src/main/java/com/fjhx/utils/FlowConstructor.java

@@ -30,9 +30,31 @@ public class FlowConstructor {
     }
 
     /**
+     * 业务异常回滚流程
+     *
+     * @param result 流程返回值
+     */
+    public static void rollBack(ExampleResult result) {
+        flowClient.rollBack(result);
+    }
+
+    /**
      * 创建流程
      *
      * @param flowLinkNo 流程关联编号
+     * @param remarks    发起原因/备注
+     * @return 流程实例对象
+     */
+    public ExampleResult create(Long flowLinkNo, String remarks) {
+        return create(flowLinkNo, remarks, null);
+    }
+
+    /**
+     * 创建流程
+     *
+     * @param flowLinkNo 流程关联编号
+     * @param remarks    发起原因/备注
+     * @param cacheData  缓存对象
      * @return 流程实例对象
      */
     public ExampleResult create(Long flowLinkNo, String remarks, Object cacheData) {
@@ -50,7 +72,7 @@ public class FlowConstructor {
         R<ExampleResult> exampleResultR = flowClient.create(flowLinkNo, code, nodeCode, remarks, cacheDataStr);
         ExampleResult result = Assert.result(exampleResultR);
 
-        exampleAbstract.setCacheData(cacheData);
+        exampleAbstract.setCacheData(cacheDataStr);
 
         // 如果流程结束,执行结束方法
         if (ButtonNameEnum.END.getType().equals(result.getHandleType())) {
@@ -71,6 +93,17 @@ public class FlowConstructor {
      * @param flowLinkNo 流程关联编号
      * @param buttonId   按钮id
      * @param remarks    审批意见
+     */
+    public ExampleResult jump(Long flowLinkNo, Long buttonId, String remarks) {
+        return jump(flowLinkNo, buttonId, remarks, null);
+    }
+
+    /**
+     * 流程跳转
+     *
+     * @param flowLinkNo 流程关联编号
+     * @param buttonId   按钮id
+     * @param remarks    审批意见
      * @param cacheData  缓存对象
      */
     public ExampleResult jump(Long flowLinkNo, Long buttonId, String remarks, Object cacheData) {
@@ -103,7 +136,7 @@ public class FlowConstructor {
         R<ExampleResult> exampleResultR = flowClient.jump(jumpVo);
         ExampleResult result = Assert.result(exampleResultR);
 
-        exampleAbstract.setCacheData(cacheData);
+        exampleAbstract.setCacheData(result.getCacheDataStr());
 
         // 如果流程结束,执行结束方法
         if (ButtonNameEnum.END.getType().equals(result.getHandleType())) {
@@ -129,15 +162,6 @@ public class FlowConstructor {
     }
 
     /**
-     * 业务异常回滚流程
-     *
-     * @param result 流程返回值
-     */
-    public void rollBack(ExampleResult result) {
-        flowClient.rollBack(result);
-    }
-
-    /**
      * 缓存对象转字符串
      *
      * @param cacheData 缓存对象

+ 8 - 2
hx-service/storage-restructure/src/main/java/com/fjhx/controller/common/CommonFileController.java

@@ -76,8 +76,14 @@ public class CommonFileController {
 
     @GetMapping("jump")
     public R jump(@RequestParam("buttonId") Long buttonId) {
-        ExampleResult result = flowConstructor.jump(123456L, buttonId, "测试流程运行", null);
-        return R.success(result);
+
+
+        flowConstructor.jump(123456L, buttonId, "测试流程运行", null).after(() -> {
+
+            int i = 1 / 0;
+
+        });
+        return R.success();
     }
 
 }