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.HistoryService; import org.flowable.engine.TaskService; import org.flowable.task.api.history.HistoricTaskInstance; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; import org.springblade.mdm.basesetting.producedivision.entity.MdmUser; import org.springblade.mdm.basesetting.producedivision.service.MdmUserService; import org.springblade.mdm.flow.service.DoneQueryService; import org.springblade.mdm.flow.service.FlowBusinessService; import org.springblade.mdm.flow.service.FlowCommonService; import org.springblade.mdm.flow.service.FlowTransferService; import org.springblade.mdm.flow.vo.DoneQueryVO; import org.springblade.mdm.flow.vo.FlowVO; import org.springblade.mdm.flow.vo.TodoQueryVO; import org.springblade.mdm.gkw.programnode.vo.ProgramNodeVO; import org.springblade.system.feign.IUserSearchClient; import org.springblade.system.pojo.entity.User; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.format.annotation.DateTimeFormat; import org.springframework.web.bind.annotation.*; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.List; @Slf4j @RestController @RequestMapping("/flow/") @Tag(name = "用户个人流程", description = "用户个人流程") public class MyFlowController { @Autowired private TaskService taskService; @Autowired private MdmUserService mdmUserService; @Autowired private FlowBusinessService businessService; @Autowired private IUserSearchClient userSearchClient; @Autowired private FlowTransferService flowTransferService; @Autowired private FlowCommonService flowCommonService; @Autowired private DoneQueryService doneQueryService; /** * 待办任务列表页 */ @GetMapping("todo-list") @ApiOperationSupport(order = 3) @Operation(summary = "待办任务", description = "传入流程信息") public R> todoList(TodoQueryVO queryVO) { IPage pages = businessService.selectTodoPage(Condition.getPage(queryVO),queryVO); return R.data(pages); } @GetMapping("done-list-old") @ApiOperationSupport(order = 3) @Operation(summary = "当前用户已办任务分页", description = "传入流程信息") public R> doneList(@Parameter(description = "关键字") String keyword, @Parameter(description = "创建时间开始") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime createTimeBegin, @Parameter(description = "创建时间截止") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime createTimeEnd, Query query) { IPage pages = businessService.selectDonePage(Condition.getPage(query),"" ,createTimeBegin,createTimeEnd,keyword); return R.data(pages); } @GetMapping("done-list") @ApiOperationSupport(order = 3) @Operation(summary = "当前用户已办任务分页2", description = "传入流程信息2") //public R> doneList2(@Parameter(description = "关键字") String keyword, @Parameter(description = "创建时间开始") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime createTimeBegin, @Parameter(description = "创建时间截止") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime createTimeEnd, Query query) { public R> doneList2(DoneQueryVO query) { IPage pages = doneQueryService.selectDonePage(query); 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) { // 增加评论 try { this.flowTransferService.transferTask(taskId, newAssigneeId, comment); return R.success("流程转派成功"); }catch(Exception e) { return R.fail(e.getMessage()); } } /** * 处理人下拉数据 */ @GetMapping("flow-user-list") @ApiOperationSupport(order = 3) @Operation(summary = "处理人下拉数据", description = "处理人下拉数据") public R> flowUserList(@Parameter(description = "部门ID") String deptId, String taskId) { return R.data(mdmUserService.listByDeptAndRoleAlias()); } @GetMapping("flow-user-tree") @ApiOperationSupport(order = 3) @Operation(summary = "处理人下拉数据-树形", description = "处理人下拉数据") public R> flowUserTree(@Parameter(description = "部门ID") String deptId, String taskId) { return R.data(mdmUserService.flowUserTree()); } /** * 上一步审批人查询 */ /* @GetMapping("previus-approve-user") @ApiOperationSupport(order = 3) @Operation(summary = "上一步审批人查询", description = "上一步审批人查询,返回审批人id") public R previusApproveUserId(@Parameter(description = "部门ID") String processInstanceId) { return R.data(this.flowCommonService.previusAssignee(processInstanceId)); }*/ }