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

115 lines
3.5 KiB
Java

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.common.validate.markers.Insert;
import com.gunshi.project.hsz.common.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.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/24.
*
* @author XuSan
* @version 1.0
*/
@EqualsAndHashCode(callSuper = true)
@Schema(description="法律法规管理表")
@Data
@TableName("public.sz_rule_by_law")
public class SzRuleByLaw 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="name")
@Schema(description="标题")
@Size(max = 30,message = "标题最大长度要小于 30")
@NotBlank(message = "标题不能为空",groups = {Insert.class, Update.class})
private String name;
/**
* 制定机关
*/
@TableField(value="fill_unit")
@Schema(description="制定机关")
@Size(max = 50,message = "制定机关最大长度要小于 50")
private String fillUnit;
/**
* 法律性质
*/
@TableField(value="type")
@Schema(description="法律性质 0:宪法,1:法律,2:行政法规,3:督察法规,4:司法解释,5:地方性法规")
@NotNull(message = "法律性质不能为空",groups = {Insert.class, Update.class})
@Size(max = 1,message = "法律性质最大长度要小于 2")
private Integer type;
/**
* 时效性
*/
@TableField(value="timeliness")
@Schema(description="时效性 0:尚未生效,1:有效,2:已修改,3:已废止")
@NotNull(message = "时效性不能为空",groups = {Insert.class, Update.class})
@Size(max = 1,message = "时效性最大长度要小于 2")
private Integer timeliness;
/**
* 公布日期
*/
@Schema(description="公布日期 格式:" + DateFormatString.YYYY_MM_DD)
@TableField(value="announcement_date")
@JsonFormat(pattern = DateFormatString.YYYY_MM_DD, timezone = "GMT+8")
private Date announcementDate;
/**
* 施行日期
*/
@Schema(description="施行日期 格式:" + DateFormatString.YYYY_MM_DD)
@TableField(value="implementation_date")
@JsonFormat(pattern = DateFormatString.YYYY_MM_DD, timezone = "GMT+8")
private Date implementationDate;
/**
* 上传时间
*/
@Schema(description="上传时间 格式:" + DateFormatString.YYYY_MM_DD_HH_MM_SS)
@TableField(value="upload_date")
@JsonFormat(pattern = DateFormatString.YYYY_MM_DD_HH_MM_SS, timezone = "GMT+8")
private Date uploadDate;
@TableField(exist = false)
@Schema(description = "文件集合")
private List<FileAssociations> files;
}