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 files1; @TableField(exist = false) @Schema(description = "处理情况文件集合") private List files2; @TableField(exist = false) @Schema(description = "办案卷宗-立案文件集合") private List files3; @TableField(exist = false) @Schema(description = "办案卷宗-调查取证文件集合") private List files4; @TableField(exist = false) @Schema(description = "办案卷宗-审查处理文件集合") private List files5; @TableField(exist = false) @Schema(description = "办案卷宗-送达执行文件集合") private List files6; @TableField(exist = false) @Schema(description = "办案卷宗-结案文件集合") private List files7; @TableField(exist = false) @Schema(description = "历史影像及图片-整改前文件集合") private List files8; @TableField(exist = false) @Schema(description = "历史影像及图片-整改后文件集合") private List files9; }