gunshi-project-ss/src/main/java/com/gunshi/project/hsz/model/PersonnelPlan.java

217 lines
7.0 KiB
Java
Raw Normal View History

2025-07-17 15:26:39 +08:00
package com.gunshi.project.hsz.model;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.gunshi.core.dateformat.DateFormatString;
2025-07-17 15:26:39 +08:00
import com.gunshi.project.hsz.validate.markers.Insert;
import com.gunshi.project.hsz.validate.markers.Update;
2024-09-25 17:15:41 +08:00
import com.ruoyi.common.annotation.Excel;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Pattern;
import jakarta.validation.constraints.Size;
import lombok.Data;
import lombok.EqualsAndHashCode;
2024-09-26 14:18:19 +08:00
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* Description:
* Created by XuSan on 2024/9/23.
*
* @author XuSan
* @version 1.0
*/
@EqualsAndHashCode(callSuper = true)
@Schema(description="培训计划表")
2024-09-26 14:18:19 +08:00
@Accessors(chain = true) // chain = true 实现链式调用
@Data
@TableName("public.personnel_plan")
public class PersonnelPlan extends CommUpdate implements Serializable {
private static final long serialVersionUID = 1L;
/**
*
*/
@TableId(value="id", type= IdType.AUTO)
@Schema(description="主键")
@JsonSerialize(using = ToStringSerializer.class)
private Long id;
/**
*
*/
2024-09-25 17:15:41 +08:00
@Excel(name = "培训班名称",sort = 1)
@TableField(value="name")
@Schema(description="培训班名称")
@Size(max = 30,message = "培训班名称最大长度要小于 30")
@NotBlank(message = "培训班名称不能为空",groups = {Insert.class, Update.class})
private String name;
/**
* ,0:,1:,2:,3:,4:
*/
@TableField(value="type")
2024-11-15 16:59:31 +08:00
@Excel(name = "培训主题",sort = 2,readConverterExp = "1=水利,2=岗前培训,3=在岗培训,4=政治学习教育,5=其他")
@Schema(description="培训主题分类,1:水利,2:岗前培训,3:在岗培训,4:政治学习教育,5:其他")
@NotNull(message = "培训主题不能为空",groups = {Insert.class, Update.class})
2024-11-15 16:59:31 +08:00
@Pattern(regexp = "^[0-4]$", message = "培训主题分类应为1:水利,2:岗前培训,3:在岗培训,4:政治学习教育,5:其他")
private Integer type;
/**
*
*/
2024-09-26 14:18:19 +08:00
@Excel(name = "主办单位",sort = 5)
@TableField(value="unit")
@Schema(description="主办单位")
@Size(max = 100,message = "主办单位最大长度要小于 100")
@NotBlank(message = "主办单位不能为空",groups = {Insert.class, Update.class})
private String unit;
/**
*
*/
2024-11-15 16:53:44 +08:00
@Excel(name = "开始培训时间",sort = 3,dateFormat = DateFormatString.YYYY_MM_DD)
@Schema(description="开始培训时间 格式yyyy-MM-dd")
@NotNull(message = "开始培训时间不能为空")
@TableField(value="stm")
@JsonFormat(pattern = DateFormatString.YYYY_MM_DD, timezone = "GMT+8")
private Date stm;
/**
*
*/
2024-11-15 16:53:44 +08:00
@Excel(name = "结束培训时间",sort = 4,dateFormat = DateFormatString.YYYY_MM_DD)
@Schema(description="结束培训时间 格式yyyy-MM-dd")
@NotNull(message = "结束培训时间不能为空")
@TableField(value="etm")
@JsonFormat(pattern = DateFormatString.YYYY_MM_DD, timezone = "GMT+8")
private Date etm;
/**
* ()
*/
2024-09-26 14:18:19 +08:00
@Excel(name = "培训天数(天)",sort = 9)
@Schema(description="培训天数(天)")
@TableField(value="day")
private Integer day;
/**
* ()
*/
2024-09-26 14:18:19 +08:00
@Excel(name = "培训期数(期)",sort = 8)
@Schema(description="培训期数(期)")
@TableField(value="num")
private Integer num;
/**
*
*/
2024-09-26 14:18:19 +08:00
@Excel(name = "培训地点",sort = 7)
@Schema(description="培训地点")
@TableField(value="addr")
@Size(max = 200,message = "主办单位最大长度要小于 200")
@NotBlank(message = "培训地点不能为空",groups = {Insert.class, Update.class})
private String addr;
/**
*
*/
2024-09-26 14:18:19 +08:00
@Excel(name = "培训内容",sort = 6)
@Schema(description="培训内容")
@TableField(value="content")
@Size(max = 500,message = "培训内容最大长度要小于 500")
@NotBlank(message = "培训内容不能为空",groups = {Insert.class, Update.class})
private String content;
/**
*
*/
2024-09-26 14:18:19 +08:00
@Excel(name = "培训范围",sort = 10)
@Schema(description="培训范围")
@TableField(value="scope")
@Size(max = 500,message = "培训范围最大长度要小于 500")
@NotBlank(message = "培训范围不能为空",groups = {Insert.class, Update.class})
private String scope;
/**
*
*/
2024-09-26 14:18:19 +08:00
@Excel(name = "参训人员",sort = 11)
@Schema(description="参训人员")
@TableField(value="trainees")
@Size(max = 200,message = "参训人员最大长度要小于 200")
private String trainees;
/**
* ()
*/
2024-09-26 14:18:19 +08:00
@Excel(name = "参训人数(人)",sort = 12)
@Schema(description="参训人数(人)")
@TableField(value="num_people")
@Size(max = 200,message = "参训人员最大长度要小于 200")
@NotNull(message = "参训人数不能为空",groups = {Insert.class, Update.class})
private Integer numPeople;
/**
*
*/
2024-09-26 14:18:19 +08:00
@Excel(name = "联系人",sort = 13)
@Schema(description="联系人")
@TableField(value="contacts")
@Size(max = 50,message = "联系人最大长度要小于 50")
private String contacts;
/**
*
*/
2024-09-26 14:18:19 +08:00
@Excel(name = "联系电话",sort = 14)
@Schema(description="联系电话")
@TableField(value="contact_number")
@Size(max = 30,message = "联系电话最大长度要小于 30")
private String contactNumber;
/**
*
*/
@Schema(description="填报人")
@TableField(value="applicant")
@Size(max = 50,message = "填报人最大长度要小于 50")
2024-09-25 17:15:41 +08:00
@Excel(name = "填报人",sort = 7)
private String applicant;
/**
*
*/
@Schema(description="状态 0:无效 1:有效")
@TableField(value="status")
@Size(max = 2,message = "状态最大长度要小于 2")
@NotNull(message = "状态不能为空",groups = {Insert.class, Update.class})
@Pattern(regexp = "^[0-1]$", message = "状态应为0:无效 1:有效")
private Integer status;
/**
*
*/
@Schema(description="登记日期")
@TableField(value="reg_date")
2024-09-26 14:18:19 +08:00
@JsonFormat(pattern = DateFormatString.YYYY_MM_DD, timezone = "GMT+8")
private Date regDate;
@TableField(exist = false)
@Schema(description = "文件集合")
private List<FileAssociations> files;
}