package com.xy.dto; import com.fasterxml.jackson.annotation.JsonFormat; import com.xy.utils.DataTime; import com.xy.utils.PageBean; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.experimental.Accessors; import javax.validation.constraints.NotNull; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.List; @Data @Accessors(chain = true) public class DeviceInfoDto { /** * 删除线路时指定 传入 wherePlaceLineId */ public final static String UPDATE_LINE_DEL = "del"; /** * 更新线路时指定 传入 deviceIds、placeLineId */ public final static String UPDATE_LINE_UPDATE = "update"; /** * 解绑线路时指定 传入 deviceIds */ public final static String UPDATE_LINE_CLEAR = "clear"; @Data @Accessors(chain = true) public static class Obj { @ApiModelProperty("设备id") private Long deviceId; @ApiModelProperty("是否是2号门") private Boolean isTwoDoor; } @Data @Accessors(chain = true) public static class ListDto { @ApiModelProperty(value = "设备id批量查", required = false) private List deviceIds; } @Data @Accessors public static class UpdateLine { @NotNull(message = "更新类型") @ApiModelProperty(value = "更新类型", required = true) private String type; @NotNull(message = "商户id不能为空") @ApiModelProperty(value = "商户id", required = true) private Long mercId; @ApiModelProperty("设备id集合") private List deviceIds; @ApiModelProperty(value = "线路ID") private Long placeLineId; @ApiModelProperty(value = "原线路ID") private Long wherePlaceLineId; } @Data @Accessors(chain = true) public static class Update extends Vo { @NotNull(message = "deviceId不能为空") @ApiModelProperty("设备id") private Long deviceId; @ApiModelProperty(value = "系统信息", hidden = true) private DeviceSysinfoDto.Vo deviceSysinfo; @ApiModelProperty(value = "状态信息", hidden = true) private DeviceStatusDto.Vo deviceStatus; @ApiModelProperty(value = "注册信息", hidden = true) private DeviceRegisterDto.Vo deviceRegister; } @Data @Accessors(chain = true) public static class Page extends Vo { @ApiModelProperty(value = "分页对象", required = true) private PageBean page; @ApiModelProperty("资产/sn/sim号") private String no; @ApiModelProperty("商户id/商户号/商户名称") private String merc; @ApiModelProperty("设备id/设备名称") private String deviceIdName; @ApiModelProperty("联网状态") private Integer netState; @ApiModelProperty("上位机版本号") private String appUpmVersion; @ApiModelProperty("下位机版本号") private String appDownmVersion; @JsonFormat(pattern = "yyyy-MM-dd") @ApiModelProperty(value = "激活时间-起") private LocalDate beginActiveTime; @JsonFormat(pattern = "yyyy-MM-dd") @ApiModelProperty(value = "激活时间-始") private LocalDate endActiveTime; @ApiModelProperty("附近最大距离,单位:米") private Integer nearby; @ApiModelProperty(value = "系统信息", hidden = true) private DeviceSysinfoDto.Vo deviceSysinfo; @ApiModelProperty(value = "状态信息", hidden = true) private DeviceStatusDto.Vo deviceStatus; @ApiModelProperty(value = "注册信息", hidden = true) private DeviceRegisterDto.Vo deviceRegister; public String getBeginActiveTime() { return beginActiveTime == null ? null : DataTime.toString(beginActiveTime.atTime(0, 0, 0)); } public String getEndActiveTime() { return endActiveTime == null ? null : DataTime.toString(endActiveTime.atTime(23, 59, 59)); } } @Data @Accessors(chain = true) public static class Vo { @ApiModelProperty("设备id") private Long deviceId; @ApiModelProperty("设备名称") private String deviceName; @ApiModelProperty("设备类型") private Integer deviceType; @ApiModelProperty("商户设备资产编号") private String mercDeviceCode; @ApiModelProperty("商户id") private Long mercId; @ApiModelProperty("商户编码") private String mercCode; @ApiModelProperty("点位id") private Long placeId; @ApiModelProperty("线路id") private Long placeLineId; @ApiModelProperty("区域id") private Long districtId; @ApiModelProperty("激活状态") private Integer activeState; @ApiModelProperty("激活时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime activeTime; @ApiModelProperty("运营状态") private Integer busyState; @ApiModelProperty("显示状态") private Boolean showStatus; @ApiModelProperty("冻结状态") private Integer freezeStatus; @ApiModelProperty("设备图片") private String deviceImg; @ApiModelProperty("经度") private String lon; @ApiModelProperty("纬度") private String lat; @ApiModelProperty("故障等级") private Integer faultLevel; @ApiModelProperty("创建时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime createTime; @ApiModelProperty("更新时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime updateTime; @ApiModelProperty("系统信息") private DeviceSysinfoDto.Vo deviceSysinfo; @ApiModelProperty("状态信息") private DeviceStatusDto.Vo deviceStatus; @ApiModelProperty("注册信息") private DeviceRegisterDto.Vo deviceRegister; } @Data @Accessors(chain = true) public static class Vo2 extends Vo { @ApiModelProperty("商户名称") private String mercName; @ApiModelProperty("距离") private Integer m; @ApiModelProperty("点位名称") private String placeName; @ApiModelProperty("线路名称") private String placeLineName; @ApiModelProperty("区域名称") private String districtName; } /** * 商户设备授权 * * @author 谭斌 * @date 2023/02/09 */ @Data @Accessors(chain = true) public static class MercDeviceAuthDto { @ApiModelProperty(value = "对应商户的全量设备ID(传空则取消商户所有机器)", required = false) private List deviceIds; @NotNull(message = "商户ID不可为空") @ApiModelProperty(value = "商户ID", required = true) private Long mercId; @ApiModelProperty(value = "商户编码", required = true) private String mercCode; } }