Commit 10b3fc5b190cec565752f54bfa7632bdf234a0ce

Authored by xp.Huang
1 parent da9d981f

feat: 提供组态告警分页查询

@@ -3,16 +3,15 @@ package org.thingsboard.server.controller.yunteng; @@ -3,16 +3,15 @@ package org.thingsboard.server.controller.yunteng;
3 import io.swagger.annotations.Api; 3 import io.swagger.annotations.Api;
4 import io.swagger.annotations.ApiOperation; 4 import io.swagger.annotations.ApiOperation;
5 import lombok.RequiredArgsConstructor; 5 import lombok.RequiredArgsConstructor;
  6 +import org.apache.commons.lang3.StringUtils;
6 import org.springframework.http.ResponseEntity; 7 import org.springframework.http.ResponseEntity;
7 import org.springframework.security.access.prepost.PreAuthorize; 8 import org.springframework.security.access.prepost.PreAuthorize;
8 -import org.springframework.web.bind.annotation.GetMapping;  
9 -import org.springframework.web.bind.annotation.RequestMapping;  
10 -import org.springframework.web.bind.annotation.RequestParam;  
11 -import org.springframework.web.bind.annotation.RestController; 9 +import org.springframework.web.bind.annotation.*;
12 import org.thingsboard.server.common.data.EntityType; 10 import org.thingsboard.server.common.data.EntityType;
13 import org.thingsboard.server.common.data.alarm.AlarmSeverity; 11 import org.thingsboard.server.common.data.alarm.AlarmSeverity;
14 import org.thingsboard.server.common.data.alarm.AlarmStatus; 12 import org.thingsboard.server.common.data.alarm.AlarmStatus;
15 import org.thingsboard.server.common.data.exception.ThingsboardException; 13 import org.thingsboard.server.common.data.exception.ThingsboardException;
  14 +import org.thingsboard.server.common.data.yunteng.dto.ConfigurationAlarmPageDTO;
16 import org.thingsboard.server.common.data.yunteng.dto.SysDictDTO; 15 import org.thingsboard.server.common.data.yunteng.dto.SysDictDTO;
17 import org.thingsboard.server.common.data.yunteng.enums.DeviceTypeEnum; 16 import org.thingsboard.server.common.data.yunteng.enums.DeviceTypeEnum;
18 import org.thingsboard.server.common.data.yunteng.enums.OrderTypeEnum; 17 import org.thingsboard.server.common.data.yunteng.enums.OrderTypeEnum;
@@ -46,11 +45,11 @@ public class TkAlarmInfoController extends BaseController { @@ -46,11 +45,11 @@ public class TkAlarmInfoController extends BaseController {
46 public TkPageData<TkAlarmEntity> pageAlarmInfo( 45 public TkPageData<TkAlarmEntity> pageAlarmInfo(
47 @RequestParam(PAGE_SIZE) int pageSize, 46 @RequestParam(PAGE_SIZE) int pageSize,
48 @RequestParam(PAGE) int page, 47 @RequestParam(PAGE) int page,
49 - @RequestParam(value = "status", required = false) List<AlarmStatus> status, 48 + @RequestParam(value = "status", required = false) AlarmStatus status,
50 @RequestParam(value = "alarmType", required = false) String alarmType, 49 @RequestParam(value = "alarmType", required = false) String alarmType,
51 @RequestParam(value = "severity", required = false) AlarmSeverity severity, 50 @RequestParam(value = "severity", required = false) AlarmSeverity severity,
52 @RequestParam(value = "organizationId", required = false) String organizationId, 51 @RequestParam(value = "organizationId", required = false) String organizationId,
53 - @RequestParam(value = "deviceIds", required = false) List<String> deviceIds, 52 + @RequestParam(value = "deviceId", required = false) String deviceId,
54 @RequestParam(value = "deviceName", required = false) String deviceName, 53 @RequestParam(value = "deviceName", required = false) String deviceName,
55 @RequestParam(value = "deviceType", required = false) DeviceTypeEnum deviceType, 54 @RequestParam(value = "deviceType", required = false) DeviceTypeEnum deviceType,
56 @RequestParam(value = "startTime", required = false) Long startTime, 55 @RequestParam(value = "startTime", required = false) Long startTime,
@@ -63,7 +62,15 @@ public class TkAlarmInfoController extends BaseController { @@ -63,7 +62,15 @@ public class TkAlarmInfoController extends BaseController {
63 pageFilter.put(PAGE, page); 62 pageFilter.put(PAGE, page);
64 pageFilter.put(ORDER_FILED, orderBy); 63 pageFilter.put(ORDER_FILED, orderBy);
65 pageFilter.put(ORDER_TYPE, orderType); 64 pageFilter.put(ORDER_TYPE, orderType);
66 - 65 + List<String> deviceIds = null;
  66 + List<AlarmStatus> statuses = null;
  67 + if(!StringUtils.isEmpty(deviceId))
  68 + {
  69 + deviceIds = List.of(deviceId);
  70 + }
  71 + if(null !=status){
  72 + statuses = List.of(status);
  73 + }
67 UUID customerId = null; 74 UUID customerId = null;
68 if (getCurrentUser().isCustomerUser()) { 75 if (getCurrentUser().isCustomerUser()) {
69 customerId = getCurrentUser().getCustomerId().getId(); 76 customerId = getCurrentUser().getCustomerId().getId();
@@ -76,13 +83,53 @@ public class TkAlarmInfoController extends BaseController { @@ -76,13 +83,53 @@ public class TkAlarmInfoController extends BaseController {
76 alarmType, 83 alarmType,
77 startTime, 84 startTime,
78 endTime, 85 endTime,
79 - status, 86 + statuses,
80 deviceIds, 87 deviceIds,
81 deviceName, 88 deviceName,
82 deviceType, 89 deviceType,
83 EntityType.DEVICE, 90 EntityType.DEVICE,
84 organizationId); 91 organizationId);
85 } 92 }
  93 + @ApiOperation(value = "组态告警查询")
  94 + @PreAuthorize("@check.checkPermissions({'TENANT_ADMIN','CUSTOMER_USER'},{})")
  95 + @PostMapping("/configuration/page")
  96 + public TkPageData<TkAlarmEntity> pageAlarmInfoForConfiguration(@RequestBody ConfigurationAlarmPageDTO page) throws ThingsboardException {
  97 + Map<String, Object> pageFilter = new HashMap<>();
  98 + pageFilter.put(PAGE_SIZE, page.getPageSize());
  99 + pageFilter.put(PAGE, page.getPage());
  100 + pageFilter.put(ORDER_FILED, page.getOrderBy());
  101 + pageFilter.put(ORDER_TYPE, page.getOrderType());
  102 + UUID customerId = null;
  103 + if (getCurrentUser().isCustomerUser()) {
  104 + customerId = getCurrentUser().getCustomerId().getId();
  105 + }
  106 + AlarmSeverity severity = page.getSeverity();
  107 + AlarmStatus status = page.getStatus();
  108 + List<AlarmStatus> statuses = null;
  109 + if(null !=status){
  110 + statuses = List.of(status);
  111 + }
  112 + String alarmType = page.getAlarmType();
  113 + Long startTime = page.getStartTime();
  114 + Long endTime = page.getEndTime();
  115 + String deviceName = page.getDeviceName();
  116 + String organizationId = page.getOrganizationId();
  117 + DeviceTypeEnum deviceType = page.getDeviceType();
  118 + return alarmInfoService.alarmPage(
  119 + pageFilter,
  120 + getCurrentUser().getTenantId(),
  121 + customerId,
  122 + severity,
  123 + alarmType,
  124 + startTime,
  125 + endTime,
  126 + statuses,
  127 + page.getDeviceIds(),
  128 + deviceName,
  129 + deviceType,
  130 + EntityType.DEVICE,
  131 + organizationId);
  132 + }
86 133
87 @ApiOperation(value = "告警类型") 134 @ApiOperation(value = "告警类型")
88 @GetMapping() 135 @GetMapping()
  1 +package org.thingsboard.server.common.data.yunteng.dto;
  2 +
  3 +import io.swagger.annotations.ApiModelProperty;
  4 +import lombok.Data;
  5 +import org.thingsboard.server.common.data.yunteng.enums.OrderTypeEnum;
  6 +
  7 +import javax.validation.constraints.NotNull;
  8 +
  9 +@Data
  10 +public class BasePageDTO {
  11 + @ApiModelProperty(required = true)
  12 + @NotNull(message = "分页大小不能为空")
  13 + private int pageSize;
  14 +
  15 + @NotNull(message = "分页不能为空")
  16 + @ApiModelProperty(required = true)
  17 + private int page;
  18 +
  19 + private String orderBy;
  20 + private OrderTypeEnum orderType;
  21 +}
  1 +package org.thingsboard.server.common.data.yunteng.dto;
  2 +
  3 +import io.swagger.annotations.ApiModelProperty;
  4 +import lombok.Data;
  5 +import org.thingsboard.server.common.data.alarm.AlarmSeverity;
  6 +import org.thingsboard.server.common.data.alarm.AlarmStatus;
  7 +import org.thingsboard.server.common.data.yunteng.enums.DeviceTypeEnum;
  8 +
  9 +import javax.validation.constraints.NotEmpty;
  10 +import java.util.List;
  11 +
  12 +@Data
  13 +public class ConfigurationAlarmPageDTO extends BasePageDTO {
  14 + private AlarmStatus status;
  15 + private String alarmType;
  16 + private String organizationId;
  17 +
  18 + @ApiModelProperty(required = true)
  19 + @NotEmpty(message = "告警设备列表不能为空")
  20 + private List<String> deviceIds;
  21 +
  22 + private String deviceName;
  23 + private DeviceTypeEnum deviceType;
  24 + private Long startTime;
  25 + private Long endTime;
  26 + private AlarmSeverity severity;
  27 +}