package com.cloudroam.dto.projectTask; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.List; @NoArgsConstructor @AllArgsConstructor @Data public class CreateProjectTaskDTO { /** * Id */ private String id; /** * 项目id */ @NotEmpty(message = "项目不能为空") private String projectId; /** * 模块id */ @NotEmpty(message = "项目模块不能为空") private String moduleId; /** * 任务名称 */ @NotEmpty(message = "任务名称不能为空") private String name; /** * 任务类型 */ @NotEmpty(message = "任务类型不能为空") private String type; /** * 任务描述 */ @NotEmpty(message = "任务描述不能为空") private String description; /** * 优先级 */ @NotEmpty(message = "任务描述不能为空") private String priority; /** * 状态(project_task_status) */ @NotEmpty(message = "任务状态不能为空") private String status; /** * 排配状态(project_task_assign_status) */ @NotEmpty(message = "任务排配状态不能为空") private String assignStatus; /** * 计划工时 */ private BigDecimal planHour; /** * 实际工时 */ private BigDecimal actualHour; /** * 计划开始时间 */ @NotNull(message = "计划开始时间不能为空") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime planBeginDate; /** * 计划结束时间 */ @NotNull(message = "计划结束时间不能为空") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime planEndDate; /** * 实际开始时间 */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime actualBeginDate; /** * 实际结束时间 */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime actualEndDate; /** * 剩余工时 */ private BigDecimal leftHour; /** * 进度 */ private BigDecimal process; /** * 备注 */ private String remark; /** * 评估者 */ @NotNull(message = "评估者不能为空") private List evaluatorUsers; /** * 开发者 */ private List developerUsers; /** * 文件列表 */ private List uploadFileList; }