Commit 1ca26298ffe2b08f78da5c31758670fb80daad17

Authored by xp.Huang
2 parents fca45720 ebf84620

Merge branch '20220428' into 'master'

20220428

See merge request huang/thingsboard3.3.2!88
... ... @@ -13,6 +13,7 @@ import org.thingsboard.server.common.data.EntityType;
13 13 import org.thingsboard.server.common.data.alarm.AlarmSeverity;
14 14 import org.thingsboard.server.common.data.alarm.AlarmStatus;
15 15 import org.thingsboard.server.common.data.exception.ThingsboardException;
  16 +import org.thingsboard.server.common.data.id.CustomerId;
16 17 import org.thingsboard.server.common.data.page.TimePageLink;
17 18 import org.thingsboard.server.common.data.yunteng.dto.SysDictDTO;
18 19 import org.thingsboard.server.common.data.yunteng.enums.DeviceTypeEnum;
... ... @@ -68,7 +69,11 @@ public class YtAlarmInfoController extends BaseController {
68 69 if (orderType != null) {
69 70 pageFilter.put(ORDER_TYPE, orderType.name());
70 71 }
71   - return alarmInfoService.alarmPage(pageFilter, getCurrentUser().getTenantId(), severity,alarmType, startTime, endTime, status, deviceId, deviceType, EntityType.DEVICE, organizationId);
  72 + CustomerId customerId = null;
  73 + if (getCurrentUser().isCustomerUser()) {
  74 + customerId = getCurrentUser().getCustomerId();
  75 + }
  76 + return alarmInfoService.alarmPage(pageFilter, getCurrentUser().getTenantId(), customerId, severity, alarmType, startTime, endTime, status, deviceId, deviceType, EntityType.DEVICE, organizationId);
72 77 }
73 78
74 79
... ...
... ... @@ -8,13 +8,10 @@ import lombok.extern.slf4j.Slf4j;
8 8 import org.apache.commons.lang3.StringUtils;
9 9 import org.springframework.stereotype.Service;
10 10 import org.thingsboard.server.common.data.EntityType;
11   -import org.thingsboard.server.common.data.alarm.AlarmInfo;
12 11 import org.thingsboard.server.common.data.alarm.AlarmSeverity;
13 12 import org.thingsboard.server.common.data.alarm.AlarmStatus;
  13 +import org.thingsboard.server.common.data.id.CustomerId;
14 14 import org.thingsboard.server.common.data.id.TenantId;
15   -import org.thingsboard.server.common.data.page.PageData;
16   -import org.thingsboard.server.common.data.page.TimePageLink;
17   -import org.thingsboard.server.common.data.yunteng.constant.FastIotConstants;
18 15 import org.thingsboard.server.common.data.yunteng.dto.OrganizationDTO;
19 16 import org.thingsboard.server.common.data.yunteng.dto.SysDictDTO;
20 17 import org.thingsboard.server.common.data.yunteng.enums.DeviceTypeEnum;
... ... @@ -22,78 +19,80 @@ import org.thingsboard.server.common.data.yunteng.enums.OrderTypeEnum;
22 19 import org.thingsboard.server.common.data.yunteng.utils.ReflectUtils;
23 20 import org.thingsboard.server.common.data.yunteng.utils.tools.YtPageData;
24 21 import org.thingsboard.server.dao.model.ModelConstants;
25   -import org.thingsboard.server.dao.yunteng.entities.AlarmContact;
26 22 import org.thingsboard.server.dao.yunteng.entities.YtAlarmEntity;
27 23 import org.thingsboard.server.dao.yunteng.mapper.OrganizationMapper;
28 24 import org.thingsboard.server.dao.yunteng.mapper.YtAlarmMapper;
29   -import org.thingsboard.server.dao.yunteng.service.AbstractBaseService;
30 25 import org.thingsboard.server.dao.yunteng.service.YtAlarmInfoService;
31 26
32   -import java.util.*;
  27 +import java.util.ArrayList;
  28 +import java.util.List;
  29 +import java.util.Map;
33 30
34 31 import static org.thingsboard.server.common.data.yunteng.constant.QueryConstant.*;
35   -import static org.thingsboard.server.common.data.yunteng.constant.QueryConstant.ORDER_TYPE;
36 32
37   -/** @Description 告警中心业务实现 @Author cxy @Date 2021/11/10 16:56 */
  33 +/**
  34 + * @Description 告警中心业务实现 @Author cxy @Date 2021/11/10 16:56
  35 + */
38 36 @Service
39 37 @RequiredArgsConstructor
40 38 @Slf4j
41   -public class YtAlarmInfoServiceImpl implements YtAlarmInfoService {
  39 +public class YtAlarmInfoServiceImpl implements YtAlarmInfoService {
42 40
43   -private final YtAlarmMapper ytJpaAarmDao;
44   -private final OrganizationMapper organizationMapper;
45   - @Override
46   - public YtPageData<YtAlarmEntity> alarmPage(Map<String, Object> pageMap, TenantId tenantId, AlarmSeverity severity, String alarmType, Long startTime, Long endTime, List<AlarmStatus> status, String deviceId, DeviceTypeEnum deviceType, EntityType originatorType, String organizationId) {
47   - IPage<YtAlarmEntity> page= getPage(pageMap, ModelConstants.CREATED_TIME_PROPERTY,false);
48   - List<String> ids =new ArrayList<>();
49   - if(StringUtils.isNotBlank(organizationId)){
50   - List<String> filter = new ArrayList<>();
51   - filter.add(organizationId);
52   - List<OrganizationDTO> all =organizationMapper.findOrganizationTreeList(tenantId.getId().toString(),filter);
53   - for(OrganizationDTO item:all){
54   - ids.add(item.getId());
55   - }
  41 + private final YtAlarmMapper ytJpaAarmDao;
  42 + private final OrganizationMapper organizationMapper;
56 43
  44 + @Override
  45 + public YtPageData<YtAlarmEntity> alarmPage(Map<String, Object> pageMap, TenantId tenantId, CustomerId customerId, AlarmSeverity severity, String alarmType, Long startTime, Long endTime, List<AlarmStatus> status, String deviceId, DeviceTypeEnum deviceType, EntityType originatorType, String organizationId) {
  46 + IPage<YtAlarmEntity> page = getPage(pageMap, ModelConstants.CREATED_TIME_PROPERTY, false);
  47 + List<String> ids = new ArrayList<>();
  48 + if (StringUtils.isNotBlank(organizationId)) {
  49 + List<String> filter = new ArrayList<>();
  50 + filter.add(organizationId);
  51 + List<OrganizationDTO> all = organizationMapper.findOrganizationTreeList(tenantId.getId().toString(), filter);
  52 + for (OrganizationDTO item : all) {
  53 + ids.add(item.getId());
  54 + }
  55 +
  56 + }
  57 +
  58 + IPage<YtAlarmEntity> tbDatas = ytJpaAarmDao.alarmPage(page, tenantId.getId(), customerId.getId(), severity, alarmType, startTime, endTime, status, deviceId, deviceType, originatorType, ids.size() > 0 ? ids : null);
  59 + YtPageData<YtAlarmEntity> result = new YtPageData<>(tbDatas.getRecords(), tbDatas.getTotal());
  60 + return result;
57 61 }
58 62
59   - IPage<YtAlarmEntity> tbDatas = ytJpaAarmDao.alarmPage(page,tenantId.getId(),severity,alarmType,startTime,endTime,status,deviceId,deviceType, originatorType,ids.size()>0?ids:null);
60   - YtPageData<YtAlarmEntity> result = new YtPageData<>(tbDatas.getRecords(), tbDatas.getTotal());
61   - return result;
62   - }
63 63
  64 + protected IPage<YtAlarmEntity> getPage(Map<String, Object> params, String defaultOrderField, boolean isAsc) {
  65 + int curPage = 1;
  66 + int limit = 10;
  67 + if (params.get(PAGE) != null) {
  68 + curPage = Integer.parseInt(params.get(PAGE).toString());
  69 + }
64 70
65   - protected IPage<YtAlarmEntity> getPage(Map<String, Object> params, String defaultOrderField, boolean isAsc) {
66   - int curPage = 1;
67   - int limit = 10;
68   - if (params.get(PAGE) != null) {
69   - curPage = Integer.parseInt(params.get(PAGE).toString());
70   - }
  71 + if (params.get(PAGE_SIZE) != null) {
  72 + limit = Integer.parseInt(params.get(PAGE_SIZE).toString());
  73 + }
71 74
72   - if (params.get(PAGE_SIZE) != null) {
73   - limit = Integer.parseInt(params.get(PAGE_SIZE).toString());
  75 + Page<YtAlarmEntity> page = new Page<>(curPage, limit);
  76 + String orderField = (String) params.get(ORDER_FILED);
  77 + String order = (String) params.get(ORDER_TYPE);
  78 + if (StringUtils.isNotBlank(orderField) && StringUtils.isNotBlank(order)) {
  79 + return OrderTypeEnum.ASC.name().equalsIgnoreCase(order)
  80 + ? page.addOrder(OrderItem.asc(orderField))
  81 + : page.addOrder(OrderItem.desc(orderField));
  82 + } else if (StringUtils.isBlank(defaultOrderField)) {
  83 + return page;
  84 + } else {
  85 + if (isAsc) {
  86 + page.addOrder(OrderItem.asc(defaultOrderField));
  87 + } else {
  88 + page.addOrder(OrderItem.desc(defaultOrderField));
  89 + }
  90 + return page;
  91 + }
74 92 }
75 93
76   - Page<YtAlarmEntity> page = new Page<>(curPage, limit);
77   - String orderField = (String) params.get(ORDER_FILED);
78   - String order = (String) params.get(ORDER_TYPE);
79   - if (StringUtils.isNotBlank(orderField) && StringUtils.isNotBlank(order)) {
80   - return OrderTypeEnum.ASC.name().equalsIgnoreCase(order)
81   - ? page.addOrder(OrderItem.asc(orderField))
82   - : page.addOrder(OrderItem.desc(orderField));
83   - } else if (StringUtils.isBlank(defaultOrderField)) {
84   - return page;
85   - } else {
86   - if (isAsc) {
87   - page.addOrder(OrderItem.asc(defaultOrderField));
88   - } else {
89   - page.addOrder(OrderItem.desc(defaultOrderField));
90   - }
91   - return page;
  94 + @Override
  95 + public List<SysDictDTO> alarmType(TenantId tenantId) {
  96 + return ReflectUtils.sourceToTarget(ytJpaAarmDao.alarmType(tenantId.getId()), SysDictDTO.class);
92 97 }
93   - }
94   -
95   - @Override
96   - public List<SysDictDTO> alarmType(TenantId tenantId) {
97   - return ReflectUtils.sourceToTarget(ytJpaAarmDao.alarmType(tenantId.getId()), SysDictDTO.class);
98   - }
99 98 }
... ...
... ... @@ -26,6 +26,7 @@ public interface YtAlarmMapper extends BaseMapper<YtAlarmEntity> {
26 26 IPage<YtAlarmEntity> alarmPage(
27 27 IPage<?> page
28 28 ,@Param("tenantId") UUID tenantId
  29 + ,@Param("customerId") UUID customerId
29 30 ,@Param("severity") AlarmSeverity severity
30 31 ,@Param("alarmType")String alarmType
31 32 ,@Param("startTime")Long startTime
... ...
... ... @@ -5,6 +5,7 @@ import org.thingsboard.server.common.data.alarm.Alarm;
5 5 import org.thingsboard.server.common.data.alarm.AlarmInfo;
6 6 import org.thingsboard.server.common.data.alarm.AlarmSeverity;
7 7 import org.thingsboard.server.common.data.alarm.AlarmStatus;
  8 +import org.thingsboard.server.common.data.id.CustomerId;
8 9 import org.thingsboard.server.common.data.id.TenantId;
9 10 import org.thingsboard.server.common.data.page.TimePageLink;
10 11 import org.thingsboard.server.common.data.yunteng.dto.AlarmInfoDTO;
... ... @@ -36,7 +37,7 @@ public interface YtAlarmInfoService {
36 37 * @param organizationId 告警所属组织
37 38 * @return
38 39 */
39   - YtPageData<YtAlarmEntity> alarmPage(Map<String, Object> pageMap, TenantId tenantId, AlarmSeverity severity,String alarmType, Long startTime, Long endTime, List<AlarmStatus> status, String deviceId, DeviceTypeEnum deviceType, EntityType originatorType, String organizationId);
  40 + YtPageData<YtAlarmEntity> alarmPage(Map<String, Object> pageMap, TenantId tenantId, CustomerId customerId, AlarmSeverity severity, String alarmType, Long startTime, Long endTime, List<AlarmStatus> status, String deviceId, DeviceTypeEnum deviceType, EntityType originatorType, String organizationId);
40 41
41 42
42 43 /**
... ...
... ... @@ -43,6 +43,9 @@
43 43 LEFT JOIN iotfs_organization org ON org.id = d.organization_id
44 44 <where>
45 45 m.tenant_id = #{tenantId}
  46 + <if test="customerId!=null">
  47 + AND customer_id = #{customerId}
  48 + </if>
46 49 <if test="severity!=null">
47 50 AND severity = #{severity}
48 51 </if>
... ...