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 members = new ArrayList<>(); } @Data public static class ModulesBatchRequest { private Long projectId; private List 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> attachments = new ArrayList<>(); } @Data public static class ProgressReportRequest { private Long id; private Long projectId; private Long moduleId; private List reporterIds = new ArrayList<>(); private List reporterNames = new ArrayList<>(); /** 本次汇报中每位执行人的工作量分配,占比合计必须为100%。 */ private List reporterShares = new ArrayList<>(); /** 本次汇报新增的模块进度,不是模块累计进度。 */ private BigDecimal incrementProgress; private BigDecimal progress; private LocalDate reportDate; private String remark; private List> 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> attachments = new ArrayList<>(); } @Data public static class StageTransitionRequest { private Long projectId; private String targetStage; private Map formData; private String remark; private List> attachments = new ArrayList<>(); } @Data public static class PhaseRequest { private Long projectId; private String phaseCode; private String status; private Map formData; private String remark; private List> 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> attachments = new ArrayList<>(); } }