package org.springblade.mdm.flow.controller; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.extern.slf4j.Slf4j; import org.flowable.engine.TaskService; import org.springblade.core.tool.api.R; import org.springblade.core.tool.support.Kv; import org.springblade.core.tool.utils.Func; import org.springblade.core.tool.utils.StringUtil; import org.springblade.mdm.basesetting.machine.vo.MachineSaveVO; import org.springblade.mdm.flow.excution.StartDispatcher; import org.springblade.mdm.flow.vo.TaskAssignVO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.Map; @Slf4j @RestController @RequestMapping("/flow/dispatch") @Tag(name = "派工流程", description = "派工流程") public class DispatchController { @Autowired private StartDispatcher dispatcher; @Autowired private TaskService taskService; /** * 新增 */ @PostMapping("/start") @Operation(summary = "任务计划(派工流程)", description = "启动派工流程") public R save(@RequestBody TaskAssignVO startVO) { dispatcher.start(startVO); return R.status(true); } @Operation(summary = "完成任务", description = "流向下一个节点") @PostMapping("completeTask") public R completeTask(String taskId, String processInstanceId, String comment,@Parameter(name="variables",description = "任务变量")@RequestBody Map variables) { // 增加评论 if (StringUtil.isNoneBlank(processInstanceId, comment)) { taskService.addComment(taskId, processInstanceId, comment); } // 非空判断 if (Func.isEmpty(variables)) { variables = Kv.create(); } // 完成任务 taskService.complete(taskId, variables); return R.success("流程提交成功"); } }