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

217 lines
7.0 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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;
import com.gunshi.project.hsz.validate.markers.Insert;
import com.gunshi.project.hsz.validate.markers.Update;
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;
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="培训计划表")
@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;
/**
* 培训班名称
*/
@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")
@Excel(name = "培训主题",sort = 2,readConverterExp = "1=水利,2=岗前培训,3=在岗培训,4=政治学习教育,5=其他")
@Schema(description="培训主题分类,1:水利,2:岗前培训,3:在岗培训,4:政治学习教育,5:其他")
@NotNull(message = "培训主题不能为空",groups = {Insert.class, Update.class})
@Pattern(regexp = "^[0-4]$", message = "培训主题分类应为1:水利,2:岗前培训,3:在岗培训,4:政治学习教育,5:其他")
private Integer type;
/**
* 主办单位
*/
@Excel(name = "主办单位",sort = 5)
@TableField(value="unit")
@Schema(description="主办单位")
@Size(max = 100,message = "主办单位最大长度要小于 100")
@NotBlank(message = "主办单位不能为空",groups = {Insert.class, Update.class})
private String unit;
/**
* 开始培训时间
*/
@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;
/**
* 结束培训时间
*/
@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;
/**
* 培训天数(天)
*/
@Excel(name = "培训天数(天)",sort = 9)
@Schema(description="培训天数(天)")
@TableField(value="day")
private Integer day;
/**
* 培训期数(期)
*/
@Excel(name = "培训期数(期)",sort = 8)
@Schema(description="培训期数(期)")
@TableField(value="num")
private Integer num;
/**
* 培训地点
*/
@Excel(name = "培训地点",sort = 7)
@Schema(description="培训地点")
@TableField(value="addr")
@Size(max = 200,message = "主办单位最大长度要小于 200")
@NotBlank(message = "培训地点不能为空",groups = {Insert.class, Update.class})
private String addr;
/**
* 培训内容
*/
@Excel(name = "培训内容",sort = 6)
@Schema(description="培训内容")
@TableField(value="content")
@Size(max = 500,message = "培训内容最大长度要小于 500")
@NotBlank(message = "培训内容不能为空",groups = {Insert.class, Update.class})
private String content;
/**
* 培训范围
*/
@Excel(name = "培训范围",sort = 10)
@Schema(description="培训范围")
@TableField(value="scope")
@Size(max = 500,message = "培训范围最大长度要小于 500")
@NotBlank(message = "培训范围不能为空",groups = {Insert.class, Update.class})
private String scope;
/**
* 参训人员
*/
@Excel(name = "参训人员",sort = 11)
@Schema(description="参训人员")
@TableField(value="trainees")
@Size(max = 200,message = "参训人员最大长度要小于 200")
private String trainees;
/**
* 参训人数(人)
*/
@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;
/**
* 联系人
*/
@Excel(name = "联系人",sort = 13)
@Schema(description="联系人")
@TableField(value="contacts")
@Size(max = 50,message = "联系人最大长度要小于 50")
private String contacts;
/**
* 联系电话
*/
@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")
@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")
@JsonFormat(pattern = DateFormatString.YYYY_MM_DD, timezone = "GMT+8")
private Date regDate;
@TableField(exist = false)
@Schema(description = "文件集合")
private List<FileAssociations> files;
}