zhuguifei
2025-04-28 442928123f63ee497d766f9a7a14f0a6ee067e25
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
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<TaskVO> 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<ApprovalOpinionDTO> opinions = approvalTaskService.listOpinionsByPId(processInstanceId);
        return Result.OK(opinions);
    }
}