package org.springblade.mdm.flow.controller;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
|
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.mp.support.Condition;
|
import org.springblade.core.mp.support.Query;
|
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.flow.core.pojo.entity.BladeFlow;
|
import org.springblade.mdm.flow.excution.StartDispatcher;
|
import org.springblade.mdm.flow.service.FlowBusinessService;
|
import org.springblade.mdm.flow.vo.TaskAssignVO;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.*;
|
|
import java.util.Map;
|
|
@Slf4j
|
@RestController
|
@RequestMapping("/flow/")
|
@Tag(name = "用户个人流程", description = "用户个人流程")
|
public class MyFlowController {
|
@Autowired
|
private TaskService taskService;
|
@Autowired
|
private FlowBusinessService businessService;
|
|
/**
|
* 待办任务列表页
|
*/
|
@GetMapping("todo-list")
|
@ApiOperationSupport(order = 3)
|
@Operation(summary = "待办任务", description = "传入流程信息")
|
public R<IPage<BladeFlow>> todoList(@Parameter(description = "关键字") String keyword, Query query) {
|
IPage<BladeFlow> pages = businessService.selectTodoPage(Condition.getPage(query), keyword);
|
return R.data(pages);
|
}
|
|
/**
|
* 待办任务列表页
|
*/
|
@GetMapping("alltask-list")
|
@ApiOperationSupport(order = 3)
|
@Operation(summary = "所有任务(fortest)", description = "传入流程信息")
|
public R<IPage<BladeFlow>> alltaskList(@Parameter(description = "关键字") String keyword, Query query) {
|
IPage<BladeFlow> pages = businessService.selectAllTaskPage(Condition.getPage(query), keyword);
|
return R.data(pages);
|
}
|
|
@Operation(summary = "转派任务", description = "")
|
@PostMapping("transferTask")
|
public R<Void> transferTask(String taskId,String newAssigneeId, String processInstanceId, String comment, @RequestBody Map<String, Object> variables) {
|
// 增加评论
|
if (StringUtil.isNoneBlank(processInstanceId, comment)) {
|
taskService.addComment(taskId, processInstanceId, comment);
|
}
|
// 非空判断
|
if (Func.isEmpty(variables)) {
|
variables = Kv.create();
|
}
|
// 完成任务
|
taskService.setAssignee(taskId, newAssigneeId);
|
return R.success("流程转派成功");
|
}
|
|
}
|