diff --git a/backend/ruoyi-modules/ruoyi-rs/src/main/java/org/dromara/rs/domain/bo/RsTrainingApplicationBo.java b/backend/ruoyi-modules/ruoyi-rs/src/main/java/org/dromara/rs/domain/bo/RsTrainingApplicationBo.java new file mode 100644 index 00000000..f0811707 --- /dev/null +++ b/backend/ruoyi-modules/ruoyi-rs/src/main/java/org/dromara/rs/domain/bo/RsTrainingApplicationBo.java @@ -0,0 +1,124 @@ +package org.dromara.rs.domain.bo; + +import org.dromara.rs.domain.RsTrainingApplication; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import io.github.linpeilie.annotations.AutoMapper; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Min; +import lombok.Data; +import lombok.EqualsAndHashCode; +import com.fasterxml.jackson.annotation.JsonFormat; + +import java.util.Date; + +/** + * 培训申请业务对象 rs_training_application + * + * @author weizzzz + * @date 2025-07-16 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = RsTrainingApplication.class, reverseConvertGenerate = false) +public class RsTrainingApplicationBo extends BaseEntity { + + private static final long serialVersionUID = 1L; + + /** + * 申请ID + */ + @NotNull(message = "申请ID不能为空", groups = { EditGroup.class }) + private Long applicationId; + + /** + * 课程ID + */ + private Long courseId; + + /** + * 培训名称 + */ + @NotBlank(message = "培训名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String courseName; + + /** + * 申请人ID + */ + @NotNull(message = "申请人ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long userId; + + /** + * 申请人姓名 + */ + @NotBlank(message = "申请人姓名不能为空", groups = { AddGroup.class, EditGroup.class }) + private String userName; + + /** + * 所属部门 + */ + private String department; + + /** + * 职位 + */ + private String position; + + /** + * 申请理由 + */ + @NotBlank(message = "申请理由不能为空", groups = { AddGroup.class, EditGroup.class }) + private String reason; + + /** + * 状态(0待审核 1已通过 2已拒绝 3进行中 4已完成) + */ + private String status; + + /** + * 申请时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date applyTime; + + /** + * 当前审批人 + */ + private String currentApprover; + + /** + * 培训地点 + */ + private String location; + + /** + * 学时 + */ + @Min(value = 1, message = "学时不能小于1", groups = { AddGroup.class, EditGroup.class }) + private Integer duration; + + /** + * 开始时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date startTime; + + /** + * 结束时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date endTime; + + /** + * 租户ID + */ + private String tenantId; + + /** + * 拒绝时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date rejectTime; +} \ No newline at end of file