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

355 lines
11 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.math.BigDecimal;
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_case")
public class SzCase 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;
// /**
// * 填报人Id
// */
// @TableField(value="create_by")
// @Schema(description="填报人Id")
// @NotNull(message = "填报人Id不能为空",groups = {Insert.class, Update.class})
// @JsonSerialize(using = ToStringSerializer.class)
// private Long createBy;
//
// /**
// * 填报人名字
// */
// @TableField(value="create_name")
// @Schema(description="填报人名字")
// @Size(max = 30,message = "填报人名字最大长度要小于 30")
// @NotBlank(message = "填报人名字不能为空",groups = {Insert.class, Update.class})
// private String createName;
//
// @Schema(description="填报时间 格式:" + DateFormatString.YYYY_MM_DD_HH_MM_SS)
// @NotNull(message = "填报时间不能为空")
// @TableField(value="create_time")
// @JsonFormat(pattern = DateFormatString.YYYY_MM_DD_HH_MM_SS, timezone = "GMT+8")
// private Date createTime;
/**
* 案件编号
*/
@TableField(value="case_id")
@Schema(description="案件编号")
@Size(max = 50,message = "案件编号最大长度要小于 50")
private String caseId;
/**
* 案件名称
*/
@TableField(value="case_name")
@Schema(description="案件名称")
@Size(max = 50,message = "案件名称最大长度要小于 50")
@NotBlank(message = "案件名称不能为空",groups = {Insert.class, Update.class})
private String caseName;
/**
* 案件类型
*/
@TableField(value="case_type")
@Schema(description="案件类型 0:违建,1:毁林垦荒,2:筑坝拦汊,3:填占库容,4:违法取水,5:其他")
@Size(max = 1,message = "案件类型最大长度为 1")
@NotNull(message = "案件类型不能为空",groups = {Insert.class, Update.class})
private Integer caseType;
/**
* 经度
*/
@TableField(value="lgtd")
@Schema(description="经度")
private String lgtd;
/**
* 纬度
*/
@TableField(value="lttd")
@Schema(description="纬度")
private String lttd;
/**
* 发现时间
*/
@TableField(value="case_date")
@Schema(description="发现时间")
@NotNull(message = "发现时间不能为空",groups = {Insert.class, Update.class})
@JsonFormat(pattern = DateFormatString.YYYY_MM_DD_HH_MM_SS, timezone = "GMT+8")
private Date caseDate;
/**
* 发现地点
*/
@TableField(value="case_address")
@Schema(description="发现地点")
@NotBlank(message = "发现地点不能为空",groups = {Insert.class, Update.class})
@Size(max = 100,message = "案件类型最大长度要小于 100")
private String caseAddress;
/**
* 案件来源
*/
@TableField(value="case_source")
@Schema(description="案件来源 0:巡查上报,1:自主发现,2:公共举报,3:电话举报,4:其他")
@NotNull(message = "案件来源不能为空",groups = {Insert.class, Update.class})
@Size(max = 1,message = "案件类型最大长度要小于 2")
private Integer caseSource;
/**
* 违法时间
*/
@TableField(value="illegal_date")
@Schema(description="违法时间")
@JsonFormat(pattern = DateFormatString.YYYY_MM_DD_HH_MM_SS, timezone = "GMT+8")
private Date illegalDate;
/**
* 当事人类型
*/
@TableField(value="party_type")
@Schema(description="当事人类型 0:自然人,1:法人或其他组织,2:待定")
@NotNull(message = "当事人类型不能为空",groups = {Insert.class, Update.class})
@Size(max = 1,message = "当事人类型最大长度要小于 2")
private Integer partyType;
/**
* 当事人姓名
*/
@TableField(value="party_name")
@Schema(description="当事人姓名")
@Size(max = 10,message = "当事人姓名最大长度要小于 10")
private String partyName;
/**
* 身份证号
*/
@TableField(value="id_number")
@Schema(description="身份证号")
@Size(max = 30,message = "身份证号最大长度要小于 30")
private String idNumber;
/**
* 当事人住址
*/
@TableField(value="party_addr")
@Schema(description="当事人住址")
@Size(max = 50,message = "当事人住址最大长度要小于 50")
private String partyAddr;
/**
* 简要案情
*/
@TableField(value="intro")
@Schema(description="简要案情")
@Size(max = 500,message = "简要案情最大长度要小于 500")
private String intro;
/**
* 处理程序
*/
@TableField(value="processor")
@Schema(description="处理程序 0:简易程序,1:一般程序")
@Size(max = 1,message = "处理程序最大长度要小于 2")
private Integer processor;
/**
* 处理依据
*/
@TableField(value="treatment_basis")
@Schema(description="处理依据")
@Size(max = 50,message = "处理程序最大长度要小于 50")
private String treatmentBasis;
/**
* 处理措施
*/
@TableField(value="treatment_measure")
@Schema(description="处理措施")
@Size(max = 50,message = "处理措施最大长度要小于 50")
private String treatmentMeasure;
/**
* 移送处理情况
*/
@TableField(value="transfer")
@Schema(description="移送处理情况 0:不移送,1:移送单位")
@Size(max = 1,message = "移送处理情况最大长度要小于 2")
private Integer transfer;
/**
* 案件执行情况
*/
@TableField(value="caseImplementation")
@Schema(description="案件执行情况 0:当事人自动履行,1:行政强制执行")
@Size(max = 1,message = "案件执行情况最大长度要小于 2")
private Integer caseImplementation;
/**
* 自动履行情况
*/
@TableField(value="performance")
@Schema(description="自动履行情况")
@Size(max = 500,message = "自动履行情况最大长度要小于 500")
private String performance;
/**
* 伤亡人数(人)
*/
@TableField(value="casualties")
@Schema(description="伤亡人数(人)")
private Integer casualties;
/**
* 直接损失金额(万元)
*/
@TableField(value="direct_loss_amount")
@Schema(description="直接损失金额(万元)")
private BigDecimal directLossAmount;
/**
* 结案情况
*/
@TableField(value="close_status")
@Schema(description="结案情况 0:正常结案,1:其他方式结案,2:未结案")
private Integer closeStatus;
/**
* 结案时间
*/
@TableField(value="close_date")
@Schema(description="结案时间 " + DateFormatString.YYYY_MM_DD_HH_MM_SS)
@JsonFormat(pattern = DateFormatString.YYYY_MM_DD_HH_MM_SS, timezone = "GMT+8")
private Date closeDate;
/**
* 文件编号及名称
*/
@TableField(value="doc_num_name")
@Schema(description="文件编号及名称 ")
@Size(max = 100,message = "文件编号及名称最大长度要小于 100")
private String docNumName;
/**
* 督办单位类型
*/
@TableField(value="unit_type")
@Schema(description="督办单位类型 0:上级督办,1:本级河长督办")
private Integer unitType;
/**
* 督办单位名称
*/
@TableField(value="unit_name")
@Schema(description="督办单位名称")
private String unitName;
/**
* 行政复议情况
*/
@TableField(value="administrative_reconsideration")
@Schema(description="行政复议情况 0:维护,1:变更,2:撤销,3:和解,4:调解")
private Integer administrativeReconsideration;
/**
* 行政应诉情况
*/
@TableField(value="administrative_response")
@Schema(description="行政复议情况 0:驳回原告诉讼,1:撤销,2:变更,3:确认违法,4:确认无效,5:其他")
private Integer administrativeResponse;
/**
* 保管人员
*/
@TableField(value="custodian")
@Schema(description="保管人员")
private String custodian;
/**
* 保管地点
*/
@TableField(value="storage_location")
@Schema(description="保管地点")
private String storageLocation;
@TableField(exist = false)
@Schema(description = "基本情况文件集合")
private List<FileAssociations> files1;
@TableField(exist = false)
@Schema(description = "处理情况文件集合")
private List<FileAssociations> files2;
@TableField(exist = false)
@Schema(description = "办案卷宗-立案文件集合")
private List<FileAssociations> files3;
@TableField(exist = false)
@Schema(description = "办案卷宗-调查取证文件集合")
private List<FileAssociations> files4;
@TableField(exist = false)
@Schema(description = "办案卷宗-审查处理文件集合")
private List<FileAssociations> files5;
@TableField(exist = false)
@Schema(description = "办案卷宗-送达执行文件集合")
private List<FileAssociations> files6;
@TableField(exist = false)
@Schema(description = "办案卷宗-结案文件集合")
private List<FileAssociations> files7;
@TableField(exist = false)
@Schema(description = "历史影像及图片-整改前文件集合")
private List<FileAssociations> files8;
@TableField(exist = false)
@Schema(description = "历史影像及图片-整改后文件集合")
private List<FileAssociations> files9;
}