PeerReviewDto.java 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. package com.emoon.okr.dto;
  2. import jakarta.validation.constraints.NotEmpty;
  3. import jakarta.validation.constraints.NotBlank;
  4. import jakarta.validation.constraints.NotNull;
  5. import jakarta.validation.constraints.Max;
  6. import jakarta.validation.constraints.Min;
  7. import jakarta.validation.constraints.Size;
  8. import lombok.Data;
  9. import java.util.ArrayList;
  10. import java.util.List;
  11. public final class PeerReviewDto {
  12. private PeerReviewDto() {
  13. }
  14. @Data
  15. public static class SubmitListRequest {
  16. @NotNull
  17. private Long periodId;
  18. @NotEmpty
  19. @Size(min = 3, max = 5)
  20. private List<Long> reviewerIds;
  21. }
  22. @Data
  23. public static class ReviewListRequest {
  24. @NotNull
  25. private Boolean approved;
  26. @Size(max = 300)
  27. private String reason;
  28. }
  29. @Data
  30. public static class DeclineRequest {
  31. @NotBlank
  32. @Size(max = 300)
  33. private String reason;
  34. }
  35. @Data
  36. public static class SupplementRequest {
  37. @NotNull
  38. private Long periodId;
  39. @NotNull
  40. private Long reviewerId;
  41. }
  42. @Data
  43. public static class SaveResponseRequest {
  44. @Min(1) @Max(5)
  45. private Integer goalContributionScore;
  46. @Min(1) @Max(5)
  47. private Integer collaborationScore;
  48. @Min(1) @Max(5)
  49. private Integer accountabilityScore;
  50. @Size(max = 300)
  51. private String strengths;
  52. @Size(max = 300)
  53. private String improvementSuggestion;
  54. }
  55. @Data
  56. public static class ReviewerWorkspace {
  57. private Long invitationId;
  58. private Long subjectUserId;
  59. private String subjectName;
  60. private String status;
  61. private List<ObjectiveSummary> objectives = new ArrayList<>();
  62. private List<WorkResultSummary> workResults = new ArrayList<>();
  63. private SaveResponseRequest response;
  64. }
  65. @Data
  66. public static class ObjectiveSummary {
  67. private String title;
  68. private Double progress;
  69. private List<KrSummary> keyResults = new ArrayList<>();
  70. }
  71. @Data
  72. public static class KrSummary {
  73. private String title;
  74. private Double currentValue;
  75. private Double targetValue;
  76. private String status;
  77. }
  78. @Data
  79. public static class WorkResultSummary {
  80. private String name;
  81. private String description;
  82. }
  83. @Data
  84. public static class Candidate {
  85. private Long userId;
  86. private String realName;
  87. private Long departmentId;
  88. private String relationType;
  89. }
  90. @Data
  91. public static class EmployeeProgress {
  92. private Long requestId;
  93. private String status;
  94. private String rejectionReason;
  95. private int invitedCount;
  96. private int submittedCount;
  97. private List<InvitationSummary> invitations = new ArrayList<>();
  98. }
  99. @Data
  100. public static class InvitationSummary {
  101. private Long invitationId;
  102. private Long reviewerId;
  103. private String reviewerName;
  104. private String relationType;
  105. private String status;
  106. private String declineReason;
  107. }
  108. @Data
  109. public static class LeaderSummary {
  110. private Long requestId;
  111. private Long subjectUserId;
  112. private String status;
  113. private int invitedCount;
  114. private int submittedCount;
  115. private boolean canFinalize;
  116. private Double averageGoalContributionScore;
  117. private Double averageCollaborationScore;
  118. private Double averageAccountabilityScore;
  119. private List<InvitationSummary> invitations = new ArrayList<>();
  120. private List<LeaderResponse> responses = new ArrayList<>();
  121. }
  122. @Data
  123. public static class LeaderResponse {
  124. private Long reviewerId;
  125. private String reviewerName;
  126. private Integer goalContributionScore;
  127. private Integer collaborationScore;
  128. private Integer accountabilityScore;
  129. private String strengths;
  130. private String improvementSuggestion;
  131. }
  132. @Data
  133. public static class LeaderQueueItem {
  134. private Long requestId;
  135. private Long subjectUserId;
  136. private String status;
  137. private int submittedCount;
  138. private boolean canFinalize;
  139. }
  140. @Data
  141. public static class AdminStatistics {
  142. private int requestedEmployeeCount;
  143. private int submittedResponseCount;
  144. private int blockedEmployeeCount;
  145. private List<Long> blockedSubjectUserIds = new ArrayList<>();
  146. }
  147. }