hubin 1 жил өмнө
parent
commit
0d1dc9defb

+ 11 - 0
src/main/java/com/aizuda/boot/modules/flw/controller/ProcessController.java

@@ -5,6 +5,7 @@ import com.aizuda.boot.modules.flw.entity.dto.FlwProcessDTO;
 import com.aizuda.boot.modules.flw.entity.dto.ProcessStartDTO;
 import com.aizuda.boot.modules.flw.entity.vo.FlwProcessCategoryVO;
 import com.aizuda.boot.modules.flw.service.IFlwProcessService;
+import com.aizuda.bpm.engine.model.NodeModel;
 import com.aizuda.core.api.ApiController;
 import com.baomidou.kisso.annotation.Permission;
 import io.swagger.v3.oas.annotations.Operation;
@@ -57,6 +58,16 @@ public class ProcessController extends ApiController {
         return flwProcessService.launchProcess(dto, FlowHelper.getFlowCreator());
     }
 
+    @Operation(summary = "根据 id 获取模型")
+    @Parameters({
+            @Parameter(name = "id", description = "流程ID")
+    })
+    @Permission("sys:process:get")
+    @PostMapping("/node-model")
+    public NodeModel nodeModel(@RequestParam Long id) {
+        return flwProcessService.getNodeModelById(id);
+    }
+
     @Operation(summary = "根据 id 获取节点 map 列表")
     @Parameters({
             @Parameter(name = "id", description = "流程ID")

+ 4 - 1
src/main/java/com/aizuda/boot/modules/flw/service/IFlwProcessService.java

@@ -3,6 +3,7 @@ package com.aizuda.boot.modules.flw.service;
 import com.aizuda.boot.modules.flw.entity.dto.FlwProcessDTO;
 import com.aizuda.boot.modules.flw.entity.dto.ProcessStartDTO;
 import com.aizuda.boot.modules.flw.entity.vo.FlwProcessCategoryVO;
+import com.aizuda.bpm.engine.model.NodeModel;
 import com.aizuda.service.service.IBaseService;
 import com.aizuda.bpm.engine.core.FlowCreator;
 import com.aizuda.bpm.engine.entity.FlwProcess;
@@ -41,10 +42,12 @@ public interface IFlwProcessService extends IBaseService<FlwProcess> {
     boolean launchProcess(ProcessStartDTO dto, FlowCreator flowCreator);
 
     /**
-     * 根据 id 获取节点 map 列表
+     * 根据 id 获取模型
      *
      * @param id 流程定义ID
      */
+    NodeModel getNodeModelById(Long id);
+
     List<Map<String, Object>> listNodeMapById(Long id);
 
     /**

+ 7 - 1
src/main/java/com/aizuda/boot/modules/flw/service/impl/FlwProcessServiceImpl.java

@@ -130,11 +130,17 @@ public class FlwProcessServiceImpl extends ServiceImpl<FlwProcessMapper, FlwProc
             // 传递动态分配处理人员
             FlowDataTransfer.dynamicAssignee(Collections.unmodifiableMap(assigneeMap));
         }
-        FlowForm.argsTransfer(dto.getProcessForm());
+//        FlowForm.argsTransfer(dto.getProcessForm());
         Optional<FlwInstance> opt = flowLongEngine.startInstanceById(dto.getProcessId(), flowCreator);
         return opt.filter(flwInstance -> flwProcessFormService.saveForm(flwInstance.getId(), dto.getProcessForm())).isPresent();
     }
 
+    @Override
+    public NodeModel getNodeModelById(Long id) {
+        FlwProcess flwProcess = this.checkById(id);
+        return flwProcess.model().getNodeConfig();
+    }
+
     @Override
     public List<Map<String, Object>> listNodeMapById(Long id) {
         FlwProcess flwProcess = this.checkById(id);