PiTaskRequest.java 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205
  1. package com.punchsettle.server.pojo.punchIn;
  2. import java.time.LocalDate;
  3. import java.time.LocalTime;
  4. import java.util.List;
  5. import org.hibernate.validator.constraints.Length;
  6. import com.punchsettle.server.common.constant.CommonEnableStatusEnum;
  7. import com.punchsettle.server.constant.CompareRuleEnum;
  8. import com.punchsettle.server.constant.FullAttendancePeriodEnum;
  9. import com.punchsettle.server.constant.PunchInExtraMethodEnum;
  10. import com.punchsettle.server.constant.PunchInMethodEnum;
  11. import com.punchsettle.server.constant.RepeatCategoryEnum;
  12. import jakarta.validation.Valid;
  13. import jakarta.validation.constraints.NotBlank;
  14. import jakarta.validation.constraints.NotNull;
  15. import jakarta.validation.constraints.Positive;
  16. import lombok.Data;
  17. /**
  18. * @author tyuio
  19. * @version 1.0.0
  20. * @date 2025/4/24 15:02
  21. * @description 打卡任务 请求
  22. */
  23. @Data
  24. public class PiTaskRequest {
  25. /**
  26. * 任务ID
  27. */
  28. @NotNull(message = "打卡任务ID不能为空")
  29. private Long id;
  30. /**
  31. * 任务名称
  32. */
  33. @NotBlank(message = "任务名称不能为空")
  34. @Length(max = 30, message = "任务名称不能超过30个字符")
  35. private String taskName;
  36. /**
  37. * 任务描述
  38. */
  39. private String description;
  40. /**
  41. * 奖励的积分(基本)
  42. */
  43. @NotNull(message = "奖励的积分不能为空")
  44. @Positive(message = "奖励的积分必须大于0")
  45. private Integer points;
  46. /**
  47. * 自动归档日期
  48. */
  49. private LocalDate autoArchiveDate;
  50. /**
  51. * 显示顺序
  52. */
  53. private Integer displayOrder;
  54. /**
  55. * 显示时间
  56. */
  57. private LocalTime displayTime;
  58. /**
  59. * 打卡方式(单次打卡-SINGLE,计数-COUNT、计时-TIMING)
  60. * @see PunchInMethodEnum
  61. */
  62. @NotNull(message = "打卡方式不能为空")
  63. private PunchInMethodEnum punchInMethod;
  64. /**
  65. * 比较规则(大于等于-GTE,小于等于-LTE)
  66. * @see CompareRuleEnum
  67. */
  68. private CompareRuleEnum compareRule;
  69. /**
  70. * 次数记录
  71. */
  72. private Integer countTrack;
  73. /**
  74. * 时间记录
  75. */
  76. private LocalTime timeTrack;
  77. /**
  78. * 是否启用节假日奖励(ENABLED-启用,DISABLED-关闭)
  79. * @see CommonEnableStatusEnum
  80. */
  81. @NotNull(message = "是否启用节假日奖励不能为空")
  82. private CommonEnableStatusEnum holidayStatus;
  83. /**
  84. * 次数记录(节假日用)
  85. */
  86. private Integer holidayCountTrack;
  87. /**
  88. * 时间记录(节假日用)
  89. */
  90. private LocalTime holidayTimeTrack;
  91. /**
  92. * 是否启用全勤奖励(ENABLED-启用,DISABLED-关闭)
  93. * @see CommonEnableStatusEnum
  94. */
  95. @NotNull(message = "是否启用全勤奖励不能为空")
  96. private CommonEnableStatusEnum fullAttendanceStatus;
  97. /**
  98. * 全勤周期(周-WEEK,月-MONTH)
  99. * @see FullAttendancePeriodEnum
  100. */
  101. private FullAttendancePeriodEnum fullAttendancePeriod;
  102. /**
  103. * 全勤容错次数
  104. */
  105. private Integer fullAttendanceFaultToleranceCnt;
  106. /**
  107. * 重复周期类型(每日-EVERYDAY、法定工作日-WORKDAY、法定节假日(含周末)-HOLIDAY、自定义(周一至周日)-CUSTOM)
  108. * @see RepeatCategoryEnum
  109. */
  110. @NotNull(message = "重复周期类型不能为空")
  111. private RepeatCategoryEnum repeatCategory;
  112. /**
  113. * 自定义重复日(周一-1,周二-2,周三-3,周四-4,周五-5,周六-6,周日-7)
  114. */
  115. private String repeatCustomDay;
  116. /**
  117. * 额外奖励方式(无-NONE,固定-FIXED,区间-INTERVAL)
  118. * @see PunchInExtraMethodEnum
  119. */
  120. @NotNull(message = "额外奖励方式不能为空")
  121. private PunchInExtraMethodEnum extraMethod;
  122. /**
  123. * 额外的时间间隔(单位:分钟)
  124. */
  125. private Integer extraTimeStep;
  126. /**
  127. * 奖励的积分(额外)
  128. */
  129. private Integer extraPoints;
  130. /**
  131. * 是否启用连续规则(ENABLED-启用,DISABLED-关闭)
  132. * @see CommonEnableStatusEnum
  133. */
  134. @NotNull(message = "是否启用连续规则不能为空")
  135. private CommonEnableStatusEnum continueStatus;
  136. /**
  137. * 宽限期(单位:天)
  138. */
  139. private Integer graceDay;
  140. /**
  141. * 连续中断次数
  142. */
  143. private Integer continueInterruptedCount;
  144. /**
  145. * 惩罚天数(单位:天)
  146. */
  147. private Integer penaltyDay;
  148. /**
  149. * 是否启用自动打卡(ENABLED-启用,DISABLED-关闭)
  150. * @see CommonEnableStatusEnum
  151. */
  152. @NotNull(message = "是否启用自动打卡不能为空")
  153. private CommonEnableStatusEnum autoStatus;
  154. /**
  155. * 是否启用任务积分计算(ENABLED-启用,DISABLED-关闭)
  156. * @see CommonEnableStatusEnum
  157. */
  158. @NotNull(message = "是否启用任务积分计算不能为空")
  159. private CommonEnableStatusEnum taskPointsStatus;
  160. /**
  161. * 拓展信息(当天打卡)
  162. */
  163. @Valid
  164. private List<PiTaskExtDto> taskExtList;
  165. /**
  166. * 拓展信息(连续打卡)
  167. */
  168. @Valid
  169. private List<PiTaskExtDto> continueTaskExtList;
  170. }