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
package com.ruoyi.projectManagement.dto;
 
import lombok.Data;
 
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
 
/** 项目执行工作台使用的轻量请求对象。 */
public final class ProjectWorkflowDtos {
    private ProjectWorkflowDtos() {
    }
 
    @Data
    public static class ModuleSaveRequest {
        private Long id;
        private Long projectId;
        private String moduleName;
        private LocalDate plannedStartDate;
        private String summary;
        private BigDecimal projectWeight;
        private List<MemberRequest> members = new ArrayList<>();
    }
 
    @Data
    public static class ModulesBatchRequest {
        private Long projectId;
        private List<ModuleSaveRequest> modules = new ArrayList<>();
    }
 
    @Data
    public static class MemberRequest {
        private Long userId;
        private String userName;
        private BigDecimal moduleShare;
    }
 
    @Data
    public static class FollowUpRequest {
        private Long id;
        private Long projectId;
        private LocalDate followDate;
        private String detail;
        private List<Map<String, Object>> attachments = new ArrayList<>();
    }
 
    @Data
    public static class ProgressReportRequest {
        private Long id;
        private Long projectId;
        private Long moduleId;
        private List<Long> reporterIds = new ArrayList<>();
        private List<String> reporterNames = new ArrayList<>();
        /** 本次汇报中每位执行人的工作量分配,占比合计必须为100%。 */
        private List<MemberRequest> reporterShares = new ArrayList<>();
        /** 本次汇报新增的模块进度,不是模块累计进度。 */
        private BigDecimal incrementProgress;
        private BigDecimal progress;
        private LocalDate reportDate;
        private String remark;
        private List<Map<String, Object>> attachments = new ArrayList<>();
    }
 
    @Data
    public static class MaterialRequest {
        private Long id;
        private Long projectId;
        private String materialName;
        private String materialType;
        private String remark;
        private List<Map<String, Object>> attachments = new ArrayList<>();
    }
 
    @Data
    public static class StageTransitionRequest {
        private Long projectId;
        private String targetStage;
        private Map<String, Object> formData;
        private String remark;
        private List<Map<String, Object>> attachments = new ArrayList<>();
    }
 
    @Data
    public static class PhaseRequest {
        private Long projectId;
        private String phaseCode;
        private String status;
        private Map<String, Object> formData;
        private String remark;
        private List<Map<String, Object>> attachments = new ArrayList<>();
    }
 
    @Data
    public static class CategoryRequest {
        private Long id;
        private Long parentId;
        private String categoryName;
        private Integer sort;
        private String remark;
    }
 
    @Data
    public static class PolicyRequest {
        private Long id;
        private String policyName;
        private LocalDate publishDate;
        private String policyUrl;
        private String maintainerName;
        private String remark;
        private List<Map<String, Object>> attachments = new ArrayList<>();
    }
}