gunshi-project-ss/src/main/java/com/gunshi/project/xyt/model/PersonnelPlanLog.java

176 lines
5.3 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.xyt.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.xyt.validate.markers.Insert;
import com.gunshi.project.xyt.validate.markers.Update;
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 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="培训记录表")
@Data
@TableName("public.personnel_plan_log")
public class PersonnelPlanLog 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;
/**
* 培训计划主键
*/
@TableField(value="plan_id")
@Schema(description="培训计划主键")
@JsonSerialize(using = ToStringSerializer.class)
@NotBlank(message = "培训计划不能为空",groups = {Insert.class, Update.class})
private Long planId;
/**
* 培训日期
*/
@TableField(value="plan_date")
@Schema(description="培训日期 格式yyyy-MM-dd")
@NotNull(message = "培训日期不能为空",groups = {Insert.class, Update.class})
@JsonFormat(pattern = DateFormatString.YYYY_MM_DD, timezone = "GMT+8")
private Date planDate;
/**
* 标题名称
*/
@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")
@Schema(description="培训分类,0:水利,1:岗前培训,2:在岗培训,3:政治学习教育,4:其他")
@Pattern(regexp = "^[0-4]$", message = "培训主题分类应为0:水利,1:岗前培训,2:在岗培训,3:政治学习教育,4:其他")
private Integer type;
/**
* 开始培训时间
*/
@Schema(description="培训时段开始时间 格式HH:mm:ss")
@TableField(value="stm")
@JsonFormat(pattern = "HH:mm:ss", timezone = "GMT+8")
private Date stm;
/**
* 结束培训时间
*/
@Schema(description="培训时段结束时间 格式HH:mm:ss")
@TableField(value="etm")
@JsonFormat(pattern = "HH:mm:ss", timezone = "GMT+8")
private Date etm;
/**
* 培训时长(小时)
*/
@Schema(description="培训时长(小时)")
@TableField(value="hour")
private Integer hour;
/**
* 培训地点
*/
@Schema(description="培训地点")
@TableField(value="addr")
@Size(max = 200,message = "主办单位最大长度要小于 200")
@NotBlank(message = "培训地点不能为空",groups = {Insert.class, Update.class})
private String addr;
/**
* 主办单位
*/
@TableField(value="unit")
@Schema(description="主办单位")
@Size(max = 100,message = "主办单位最大长度要小于 100")
@NotBlank(message = "主办单位不能为空",groups = {Insert.class, Update.class})
private String unit;
/**
* 培训内容
*/
@Schema(description="培训内容")
@TableField(value="content")
@Size(max = 500,message = "培训内容最大长度要小于 500")
@NotBlank(message = "培训内容不能为空",groups = {Insert.class, Update.class})
private String content;
/**
* 参训人员
*/
@Schema(description="参训人员")
@TableField(value="trainees")
@Size(max = 200,message = "参训人员最大长度要小于 200")
private String trainees;
/**
* 参训人数(人)
*/
@Schema(description="参训人数(人)")
@TableField(value="num_people")
@Size(max = 200,message = "参训人员最大长度要小于 200")
@NotNull(message = "参训人数不能为空",groups = {Insert.class, Update.class})
private Integer numPeople;
/**
* 填报人
*/
@Schema(description="填报人")
@TableField(value="applicant")
@Size(max = 50,message = "填报人最大长度要小于 50")
private String applicant;
/**
* 登记日期
*/
@Schema(description="登记日期")
@TableField(value="reg_date")
private Date regDate;
@TableField(exist = false)
@Schema(description = "签到培训表")
private List<FileAssociations> files1;
@TableField(exist = false)
@Schema(description = "附件")
private List<FileAssociations> files2;
}