package com.panzhihua.common.model.dtos.grid; import java.util.Date; import javax.validation.constraints.Max; import javax.validation.constraints.NotNull; import javax.validation.constraints.Pattern; import org.hibernate.validator.constraints.Length; import com.fasterxml.jackson.annotation.JsonFormat; import com.google.common.base.CaseFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * 分页查询表单 * * @author cedoo email:cedoo(a)qq.com * @version 1.0 * @since 1.0 * @date 2021-05-26 */ @Data @ApiModel("查询事件请求参数") public class PageEventDTO { @Max(9223372036854775807L) @ApiModelProperty(value = "网格ID", hidden = false, example = "1", required = true) @NotNull(message = "网格ID不能为空") private Long gridId; @Max(127) @ApiModelProperty(value = "事件分类:1治安隐患、2公共服务、3矛盾纠纷、4不稳定因素、5突发事件、6特殊人群上报", hidden = false, example = "1", required = true) @NotNull(message = "事件分类不能为空") private Integer eventType; @Max(value = 6, message = "事件处理状态参数错误") @ApiModelProperty(value = "事件处理状态(为空时查询全部):1 待处理、2 待验证、3 已上报、4 已解决、5 草稿箱、6已撤销", hidden = false, example = "1") private Integer eventDealStatus; @ApiModelProperty(value = "分页-当前页数", example = "1") private Long pageNum = 1L; @ApiModelProperty(value = "分页-每页记录数", example = "10") private Long pageSize = 10L; @ApiModelProperty(value = "排序字段, 默认createAt", example = "createAt") private String sortAttr = "createAt"; @ApiModelProperty(value = "排序方式: asc/desc(默认)", example = "desc") @Pattern(regexp = "asc|desc|ASC|DESC", message = "排序方式参数错误") private String sortType = "desc"; @Max(9223372036854775807L) @ApiModelProperty(value = "id", hidden = false, example = "1") private Long id; @Length(max = 20) @ApiModelProperty(value = "服务单号", hidden = false, example = "") private String orderSn; @Max(9223372036854775807L) @ApiModelProperty(value = "1、办件事件2是宣传事件3是阅读事件", hidden = false, example = "1") private Long eventCategory; @Max(9223372036854775807L) @ApiModelProperty(value = "网格员所处的街道", hidden = false, example = "1") private Long gridMemberStreet; @Max(9223372036854775807L) @ApiModelProperty(value = "网格员所处社区", hidden = false, example = "1") private Long gridMemberCommunity; @Max(9223372036854775807L) @ApiModelProperty(value = "网格员", hidden = false, example = "1") private Long gridMemberId; @Length(max = 100) @ApiModelProperty(value = "网格员名字", hidden = false, example = "") private String gridMemberName; @Length(max = 100) @ApiModelProperty(value = "事件类型", hidden = false, example = "") private String eventClazz; @Length(max = 20) @ApiModelProperty(value = "网格员联系方式", hidden = false, example = "") private String gridMemberTelephone; @Length(max = 255) @ApiModelProperty(value = "事件标题", hidden = false, example = "") private String eventTitle; @Length(max = 255) @ApiModelProperty(value = "宣传类型", hidden = false, example = "1") private String propagandaType; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @ApiModelProperty(value = "宣传时间-开始时间", hidden = false, example = "2021-05-01 18:05:50") private Date propagandaTimeBegin; @ApiModelProperty(value = "宣传时间-结束时间", hidden = false, example = "2021-05-01 18:05:50") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date propagandaTimeEnd; @Length(max = 500) @ApiModelProperty(value = "事件描述", hidden = false, example = "") private String eventDes; @Length(max = 50) @ApiModelProperty(value = "宣传对象", hidden = false, example = "") private String propagandaObject; @Length(max = 8) @ApiModelProperty(value = "宣传人数", hidden = false, example = "") private String propagandaNum; @Max(127) @ApiModelProperty(value = "社区处理(0是无需社区1是社区处理)", hidden = false, example = "1") private Integer communityProcess; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @ApiModelProperty(value = "发生时间-开始时间", hidden = false, example = "2021-05-01 18:05:50") private Date happenTimeBegin; @ApiModelProperty(value = "发生时间-结束时间", hidden = false, example = "2021-05-01 18:05:50") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date happenTimeEnd; @Length(max = 255) @ApiModelProperty(value = "发生地点", hidden = false, example = "") private String happentAddress; @Length(max = 255) @ApiModelProperty(value = "发生的精度纬度信息(逗号隔开)", hidden = false, example = "") private String happentLatLng; @Max(127) @ApiModelProperty(value = "事件状态(1草稿箱2发布3逻辑删除4、撤销)", hidden = false, example = "1") private Integer eventStatus; @Max(127) @ApiModelProperty(value = "1待处理2已解决3待验证", hidden = false, example = "1") private Integer eventProcessStatus; @Max(127) @ApiModelProperty(value = "当前处理对象类型(1、网格员2、社区3、是街道)", hidden = false, example = "1") private Integer processType; @Max(9223372036854775807L) @ApiModelProperty(value = "处理人ID", hidden = false, example = "1") private Long processUserId; @Length(max = 100) @ApiModelProperty(value = "处理人名称", hidden = false, example = "") private String processUserName; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @ApiModelProperty(value = "处理时间-开始时间", hidden = false, example = "2021-05-01 18:05:50") private Date processDateBegin; @ApiModelProperty(value = "处理时间-结束时间", hidden = false, example = "2021-05-01 18:05:50") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date processDateEnd; @Length(max = 255) @ApiModelProperty(value = "解决人针对解决事件的处理描述", hidden = false, example = "") private String processDesc; @Length(max = 255) @ApiModelProperty(value = "事件来源", hidden = false, example = "") private String eventResource; @Max(127) @ApiModelProperty(value = "危险级别", hidden = false, example = "1") private Integer dangerLevel; @ApiModelProperty(value = "红牌", hidden = false, example = "true") private Boolean redCard; @ApiModelProperty(value = "黄牌", hidden = false, example = "true") private Boolean yellowCard; @ApiModelProperty(value = "是否有效", hidden = false, example = "true") private Boolean invalid; @ApiModelProperty(value = "是否重大", hidden = false, example = "true") private Boolean major; @Max(9999999999L) @ApiModelProperty(value = "死亡人数", hidden = false, example = "1") private Integer deathsNumber; @Max(9999999999L) @ApiModelProperty(value = "受伤人数", hidden = false, example = "1") private Integer injuriesNumber; @ApiModelProperty(value = "是否疑难事件", hidden = false, example = "true") private Boolean difficult; @ApiModelProperty(value = "是否紧急", hidden = false, example = "true") private Boolean urgent; @ApiModelProperty(value = "是否催办", hidden = false, example = "true") private Boolean urgentDell; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @ApiModelProperty(value = "上报提交时间-开始时间", hidden = false, example = "2021-05-01 18:05:50") private Date submitDateBegin; @ApiModelProperty(value = "上报提交时间-结束时间", hidden = false, example = "2021-05-01 18:05:50") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date submitDateEnd; @Max(9223372036854775807L) @ApiModelProperty(value = "创建人", hidden = false, example = "1") private Long createBy; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @ApiModelProperty(value = "创建时间-开始时间", hidden = false, example = "2021-05-01 18:05:50") private Date createAtBegin; @ApiModelProperty(value = "创建时间-结束时间", hidden = false, example = "2021-05-01 18:05:50") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date createAtEnd; @Max(9223372036854775807L) @ApiModelProperty(value = "修改人", hidden = false, example = "1") private Long updateBy; @ApiModelProperty(value = "撤销类型 1 网格员 2 社区", hidden = true, example = "1") private Integer revokeType; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @ApiModelProperty(value = "修改时间-开始时间", hidden = false, example = "2021-05-01 18:05:50") private Date updateAtBegin; @ApiModelProperty(value = "修改时间-结束时间", hidden = false, example = "2021-05-01 18:05:50") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date updateAtEnd; @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1") private Long userId; @ApiModelProperty(value = "是否查询全部(1.是 2.否)", hidden = false, example = "true") private Integer isAll; public String getSortColumns() { String dbColumn = CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, sortAttr); return dbColumn; } }