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.Update; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Size; import lombok.Data; import java.io.Serializable; import java.math.BigDecimal; import java.util.Date; import java.util.List; /** * 描述: 安全事故登记 * author: xusan * date: 2024-08-21 15:44:54 */ @Schema(description="安全事故登记") @Data @TableName("public.safety_accident_reg") public class SafetyAccidentReg implements Serializable { private static final long serialVersionUID = 1L; /** * 主键 */ @TableId(value="id", type= IdType.AUTO) @Schema(description="主键") @NotNull(message = "主键不能为空",groups = {Update.class}) @JsonSerialize(using = ToStringSerializer.class) private Long id; /** * 事故名称 */ @TableField(value="name") @Schema(description="事故名称") @Size(max = 200,message = "事故名称最大长度要小于 200") private String name; /** * 事故发生时间 */ @TableField(value="accident_date") @Schema(description="事故发生时间") @JsonFormat(pattern = DateFormatString.YYYY_MM_DD_HH_MM, timezone = "GMT+8") private Date accidentDate; /** * 事故级别(1一般事故2较大事故3重大事故4特别重大事故) */ @TableField(value="accident_level") @Schema(description="事故级别(1一般事故2较大事故3重大事故4特别重大事故)") private Integer accidentLevel; /** * 事故情况描述 */ @TableField(value="accident_desc") @Schema(description="事故情况描述") @Size(max = 500,message = "事故情况描述最大长度要小于 500") private String accidentDesc; /** * 直接经济损失(万元) */ @TableField(value="economic_losses") @Schema(description="直接经济损失(万元)") private BigDecimal economicLosses; /** * 死亡人数 */ @TableField(value="dead_number") @Schema(description="死亡人数") private Integer deadNumber; /** * 受伤人数 */ @TableField(value="injure_number") @Schema(description="受伤人数") private Integer injureNumber; /** * 事故调查单位 */ @TableField(value="invest_org") @Schema(description="事故调查单位") @Size(max = 200,message = "事故调查单位最大长度要小于 200") private String investOrg; /** * 事故结案日期 */ @TableField(value="close_case_date") @Schema(description="事故结案日期") @JsonFormat(pattern = DateFormatString.YYYY_MM_DD, timezone = "GMT+8") private Date closeCaseDate; /** * 事故调查情况 */ @TableField(value="invest_desc") @Schema(description="事故调查情况") @Size(max = 500,message = "事故调查情况最大长度要小于 500") private String investDesc; /** * 处理结果 */ @TableField(value="handle_result") @Schema(description="处理结果") @Size(max = 500,message = "处理结果最大长度要小于 500") private String handleResult; @TableField(exist = false) @Schema(description = "现场图片") private List accidentPic; @TableField(exist = false) @Schema(description = "事故调查与处理资料") private List accidentHandle; }