潘志宝
4 天以前 b8a0affd03b5fa9fa33cd6f870e90394c2df86c7
提交 | 用户 | 时间
bb2880 1 package com.iailab.module.bpm.controller.admin.task.vo.instance;
H 2
3 import com.fasterxml.jackson.annotation.JsonIgnore;
4 import com.iailab.module.bpm.controller.admin.base.user.UserSimpleBaseVO;
5 import com.iailab.module.bpm.controller.admin.definition.vo.process.BpmProcessDefinitionRespVO;
6 import com.iailab.module.bpm.controller.admin.task.vo.task.BpmTaskRespVO;
7 import io.swagger.v3.oas.annotations.media.Schema;
8 import lombok.Data;
9
10 import java.time.LocalDateTime;
11 import java.util.List;
12 import java.util.Map;
13
14
15 @Schema(description = "管理后台 - 审批详情 Response VO")
16 @Data
17 public class BpmApprovalDetailRespVO {
18
19     @Schema(description = "流程实例的状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
20     private Integer status; // 参见 BpmProcessInstanceStatusEnum 枚举
21
22     @Schema(description = "活动节点列表", requiredMode = Schema.RequiredMode.REQUIRED)
23     private List<ActivityNode> activityNodes;
24
25     @Schema(description = "表单字段权限")
26     private Map<String, String> formFieldsPermission;
27
28     @Schema(description = "待办任务")
29     private BpmTaskRespVO todoTask;
30
31     /**
32      * 所属流程定义信息
33      */
34     private BpmProcessDefinitionRespVO processDefinition;
35
36     /**
37      * 所属流程实例信息
38      */
39     private BpmProcessInstanceRespVO processInstance;
40
41     @Schema(description = "活动节点信息")
42     @Data
43     public static class ActivityNode {
44
45         @Schema(description = "节点编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "StartUserNode")
46         private String id;
47
48         @Schema(description = "节点名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "发起人")
49         private String name;
50
51         @Schema(description = "节点类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
52         private Integer nodeType; // 参见 BpmSimpleModelNodeType 枚举
53
54         @Schema(description = "节点状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "0")
55         private Integer status; // 参见 BpmTaskStatusEnum 枚举
56
57         @Schema(description = "节点的开始时间")
58         private LocalDateTime startTime;
59         @Schema(description = "节点的结束时间")
60         private LocalDateTime endTime;
61
62         @Schema(description = "审批节点的任务信息")
63         private List<ActivityNodeTask> tasks;
64
65         @Schema(description = "候选人策略", example = "35")
66         private Integer candidateStrategy; // 参见 BpmTaskCandidateStrategyEnum 枚举。主要用于发起时,审批节点、抄送节点自选
67
68         @Schema(description = "候选人用户 ID 列表", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "1818")
69         @JsonIgnore // 不返回,只是方便后续读取,赋值给 candidateUsers
70         private List<Long> candidateUserIds;
71
72         @Schema(description = "候选人用户列表")
73         private List<UserSimpleBaseVO> candidateUsers; // 只包含未生成 ApprovalTaskInfo 的用户列表
74
75     }
76
77     @Schema(description = "活动节点的任务信息")
78     @Data
79     public static class ActivityNodeTask {
80
81         @Schema(description = "任务编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
82         private String id;
83
84         @Schema(description = "任务所属人编号", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "1818")
85         @JsonIgnore // 不返回,只是方便后续读取,赋值给 ownerUser
86         private Long owner;
87
88         @Schema(description = "任务所属人", example = "1024")
89         private UserSimpleBaseVO ownerUser;
90
91         @Schema(description = "任务分配人编号", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "2048")
92         @JsonIgnore // 不返回,只是方便后续读取,赋值给 assigneeUser
93         private Long assignee;
94
95         @Schema(description = "任务分配人", example = "2048")
96         private UserSimpleBaseVO assigneeUser;
97
98         @Schema(description = "任务状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
99         private Integer status;  // 参见 BpmTaskStatusEnum 枚举
100
101         @Schema(description = "审批意见", example = "同意")
102         private String reason;
103
104     }
105
106 }