Explorar o código

feat(backend): OKR 工作台 DTO 和请求对象(草稿/审核/进度更新)

wangkangyjy hai 2 semanas
pai
achega
1575bf75b0

+ 46 - 0
backend/src/main/java/com/yimeng/okr/dto/OkrWorkbenchDto.java

@@ -0,0 +1,46 @@
+package com.yimeng.okr.dto;
+
+import lombok.Data;
+import java.util.List;
+
+@Data
+public class OkrWorkbenchDto {
+    private List<ObjectiveDto> myObjectives;
+    private List<ObjectiveDto> superiorObjectives;
+    private List<ObjectiveDto> pendingReviews;
+    private List<MustAlignItem> mustAlignItems;
+    private String workflowState;
+    private List<WorkflowActionDto> allowedActions;
+    private Long version;
+
+    @Data
+    public static class ObjectiveDto {
+        private Long id;
+        private String title;
+        private String status;
+        private Double progress;
+        private List<KrDto> keyResults;
+        private Integer totalWeight;
+    }
+
+    @Data
+    public static class KrDto {
+        private Long id;
+        private String title;
+        private Double targetValue;
+        private Double currentValue;
+        private Integer weight;
+        private String status;
+        private Long sourceKrId;
+        private String assignedToName;
+    }
+
+    @Data
+    public static class MustAlignItem {
+        private Long krId;
+        private String krTitle;
+        private Long sourceObjectiveId;
+        private String sourceObjectiveTitle;
+        private String sourceUserName;
+    }
+}

+ 13 - 0
backend/src/main/java/com/yimeng/okr/dto/request/ReviewOkrRequest.java

@@ -0,0 +1,13 @@
+package com.yimeng.okr.dto.request;
+
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+@Data
+public class ReviewOkrRequest {
+    @NotNull private Long objectiveId;
+    private boolean approved;
+    private String reason;
+    private Long version;
+}

+ 23 - 0
backend/src/main/java/com/yimeng/okr/dto/request/SaveOkrDraftRequest.java

@@ -0,0 +1,23 @@
+package com.yimeng.okr.dto.request;
+
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+import java.util.List;
+
+@Data
+public class SaveOkrDraftRequest {
+    @NotNull private Long periodId;
+    private String title;
+    private List<KrInput> keyResults;
+    private Long version;
+
+    @Data
+    public static class KrInput {
+        private String title;
+        private Double targetValue;
+        private Integer weight;
+        private Long assignedTo;
+        private Long sourceKrId;
+    }
+}

+ 11 - 0
backend/src/main/java/com/yimeng/okr/dto/request/UpdateKrProgressRequest.java

@@ -0,0 +1,11 @@
+package com.yimeng.okr.dto.request;
+
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+@Data
+public class UpdateKrProgressRequest {
+    @NotNull private Double newValue;
+    private String newStatus;
+    private String remark;
+}