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.mdm.flow.service.FlowBusinessService; import org.springblade.mdm.flow.vo.FlowVO; import org.springblade.system.feign.IUserClient; import org.springblade.system.feign.IUserSearchClient; import org.springblade.system.pojo.entity.User; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.time.LocalDate; import java.util.List; import java.util.Map; @Slf4j @RestController @RequestMapping("/flow/") @Tag(name = "用户个人流程", description = "用户个人流程") public class MyFlowController { @Autowired private TaskService taskService; @Autowired private FlowBusinessService businessService; @Autowired private IUserSearchClient userSearchClient; /** * 待办任务列表页 */ @GetMapping("todo-list") @ApiOperationSupport(order = 3) @Operation(summary = "待办任务", description = "传入流程信息") public R> todoList(@Parameter(description = "关键字") String keyword, @Parameter(description = "创建时间开始") LocalDate createTimeBegin, @Parameter(description = "创建时间截止") LocalDate createTimeEnd, Query query) { IPage pages = businessService.selectTodoPage(Condition.getPage(query), createTimeBegin,createTimeEnd,keyword); return R.data(pages); } /** * 待办任务列表页 */ @GetMapping("alltask-list") @ApiOperationSupport(order = 3) @Operation(summary = "所有任务(fortest)", description = "传入流程信息") public R> alltaskList(@Parameter(description = "关键字") String keyword, LocalDate createTimeBegin, LocalDate createTimeEnd, Query query) { IPage pages = businessService.selectAllTaskPage(Condition.getPage(query), keyword); return R.data(pages); } @Operation(summary = "转派任务", description = "") @PostMapping("transferTask") public R transferTask(String taskId,String newAssigneeId, String processInstanceId, String comment, @RequestBody Map 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("流程转派成功"); } /** * 待办任务列表页 */ @GetMapping("flow-user-list") @ApiOperationSupport(order = 3) @Operation(summary = "用户下拉数据", description = "用户下拉数据") public R> flowUserList(@Parameter(description = "部门ID") String deptId) { return userSearchClient.listByDept(deptId); } }