diff --git a/cmvr-iot-admin/src/main/java/com/cmvr/web/controller/test/TeFlowController.java b/cmvr-iot-admin/src/main/java/com/cmvr/web/controller/test/TeFlowController.java index 1b1fd0f..07fb58a 100644 --- a/cmvr-iot-admin/src/main/java/com/cmvr/web/controller/test/TeFlowController.java +++ b/cmvr-iot-admin/src/main/java/com/cmvr/web/controller/test/TeFlowController.java @@ -27,6 +27,8 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import javax.validation.Valid; +import java.util.ArrayList; +import java.util.List; @Api(tags = "测试--流程服务") @RestController @@ -41,13 +43,31 @@ public class TeFlowController extends BaseController { private final FlowControlService flowControlService; private final FlowActionExecutorService flowActionExecutorService; private final TiTouchOperateService tiTouchOperateService; - + private final List taskInstIdList = new ArrayList<>(); @ApiOperation("流程发布") @PostMapping("/publish") public AjaxResult publish(@RequestBody TeDetectionItem detectionItem) { return toAjax(teDetectionItemService.publish(detectionItem.getId())); } + + @ApiOperation("任务执行入口") + @PostMapping("/demo") + @Anonymous + public AjaxResult demo(@Valid @RequestBody TeTaskExecuteNormalVO taskExecuteNormalVO) { + if (taskInstIdList.size() > 0) { + try { + taskInstIdList.forEach(flowControlService::stop); + } catch (Exception e) { + // 忽略 + } + taskInstIdList.clear(); + } + String insId = flowTaskRuntimeService.executeTask(taskExecuteNormalVO); + taskInstIdList.add(insId); + return AjaxResult.success(); + } + @ApiOperation("任务执行入口") @PostMapping("/execute") @Anonymous diff --git a/cmvr-iot-test/src/main/java/com/cmvr/test/flow/runtime/engine/FlowTaskRuntimeEntry.java b/cmvr-iot-test/src/main/java/com/cmvr/test/flow/runtime/engine/FlowTaskRuntimeEntry.java index 22bb8bc..83b4266 100644 --- a/cmvr-iot-test/src/main/java/com/cmvr/test/flow/runtime/engine/FlowTaskRuntimeEntry.java +++ b/cmvr-iot-test/src/main/java/com/cmvr/test/flow/runtime/engine/FlowTaskRuntimeEntry.java @@ -42,6 +42,8 @@ public class FlowTaskRuntimeEntry implements FlowTaskRuntimeService { private final TaskInstHolder taskInstHolder; private final FlowTaskAsyncDispatcher flowTaskAsyncDispatcher; + + @Transactional(rollbackFor = Exception.class) public String executeTask(TeTaskExecuteNormalVO taskExecuteNormalVO) { return executeTaskInternal( diff --git a/cmvr-iot-test/src/main/java/com/cmvr/test/flow/runtime/engine/FlowTaskRuntimeService.java b/cmvr-iot-test/src/main/java/com/cmvr/test/flow/runtime/engine/FlowTaskRuntimeService.java index 6135f0f..80fd8d0 100644 --- a/cmvr-iot-test/src/main/java/com/cmvr/test/flow/runtime/engine/FlowTaskRuntimeService.java +++ b/cmvr-iot-test/src/main/java/com/cmvr/test/flow/runtime/engine/FlowTaskRuntimeService.java @@ -18,6 +18,7 @@ public interface FlowTaskRuntimeService { */ String executeTask(TeTaskExecuteNormalVO taskExecuteNormalVO); + /** * 执行试运行任务(TRIAL 模式) *