package org.jeecg.modules.approval.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import lombok.extern.slf4j.Slf4j; import org.apache.commons.io.IOUtils; import org.jeecg.common.api.vo.Result; import org.jeecg.modules.approval.model.dto.ApprovalOpinionDTO; import org.jeecg.modules.approval.model.vo.TaskVO; import org.jeecg.modules.approval.service.ApprovalTaskService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.ByteArrayInputStream; import java.io.InputStream; import java.io.OutputStream; import java.util.List; import java.util.Map; /** * 任务控制层 * * @Author: len.sun * @Date: 2019/6/15 */ @Slf4j @RestController @RequestMapping("/approval/task") public class ApprovalTaskController { @Autowired private ApprovalTaskService approvalTaskService; /** * 待处理任务列表 */ @GetMapping("/list") public Result list(@RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, HttpServletRequest req) { IPage page = approvalTaskService.listMyTask( pageNo, pageSize,req); return Result.OK(page); } /** * 已处理任务列表 */ @GetMapping("/list/processed") public Result listProcessed(@RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, HttpServletRequest req) { return Result.OK(approvalTaskService.listMyProcessedTask(pageNo, pageSize,req)); } /** * 任务明细 * * @param taskId * @return */ @GetMapping("detail/{id}") public Result agent(@PathVariable("id") String taskId) { return Result.OK(approvalTaskService.getTask(taskId)); } /** * 获取流程图片 * * @param processId * @param response */ @RequestMapping("processImg/{processId}") public void viewProcessImg(@PathVariable String processId, HttpServletResponse response) { try { byte[] processImage = approvalTaskService.getProcessImage(processId); OutputStream outputStream = response.getOutputStream(); InputStream in = new ByteArrayInputStream(processImage); IOUtils.copy(in, outputStream); } catch (Exception e) { log.error("viewProcessImg---- {}", e); } } /** * 获取当前用户发起的流程 * * @return */ @PostMapping("/myStarted") public Result listApprovalMyStarted(@RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, HttpServletRequest req) { return Result.OK(approvalTaskService.listApprovalMyStarted(pageNo, pageSize,req)); } /** * 根据流程id获取待我审批的流程 * * @param processInstanceId * @return */ @GetMapping("/getMyApprovalTask") public Result getMyApprovalTask(@RequestParam String processInstanceId) { TaskVO myApprovalTask = approvalTaskService.getMyApprovalTask(processInstanceId); return Result.OK(myApprovalTask); } /** * 根据流程id获取审批记录 * @param processInstanceId * @return */ @GetMapping("/listOpinionsByPId") public Result listOpinionsByPId(@RequestParam String processInstanceId){ List opinions = approvalTaskService.listOpinionsByPId(processInstanceId); return Result.OK(opinions); } }