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,6 +13,7 @@ import org.thingsboard.server.common.data.EntityType;
13 import org.thingsboard.server.common.data.alarm.AlarmSeverity; 13 import org.thingsboard.server.common.data.alarm.AlarmSeverity;
14 import org.thingsboard.server.common.data.alarm.AlarmStatus; 14 import org.thingsboard.server.common.data.alarm.AlarmStatus;
15 import org.thingsboard.server.common.data.exception.ThingsboardException; 15 import org.thingsboard.server.common.data.exception.ThingsboardException;
  16 +import org.thingsboard.server.common.data.id.CustomerId;
16 import org.thingsboard.server.common.data.page.TimePageLink; 17 import org.thingsboard.server.common.data.page.TimePageLink;
17 import org.thingsboard.server.common.data.yunteng.dto.SysDictDTO; 18 import org.thingsboard.server.common.data.yunteng.dto.SysDictDTO;
18 import org.thingsboard.server.common.data.yunteng.enums.DeviceTypeEnum; 19 import org.thingsboard.server.common.data.yunteng.enums.DeviceTypeEnum;
@@ -68,7 +69,11 @@ public class YtAlarmInfoController extends BaseController { @@ -68,7 +69,11 @@ public class YtAlarmInfoController extends BaseController {
68 if (orderType != null) { 69 if (orderType != null) {
69 pageFilter.put(ORDER_TYPE, orderType.name()); 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,13 +8,10 @@ import lombok.extern.slf4j.Slf4j;
8 import org.apache.commons.lang3.StringUtils; 8 import org.apache.commons.lang3.StringUtils;
9 import org.springframework.stereotype.Service; 9 import org.springframework.stereotype.Service;
10 import org.thingsboard.server.common.data.EntityType; 10 import org.thingsboard.server.common.data.EntityType;
11 -import org.thingsboard.server.common.data.alarm.AlarmInfo;  
12 import org.thingsboard.server.common.data.alarm.AlarmSeverity; 11 import org.thingsboard.server.common.data.alarm.AlarmSeverity;
13 import org.thingsboard.server.common.data.alarm.AlarmStatus; 12 import org.thingsboard.server.common.data.alarm.AlarmStatus;
  13 +import org.thingsboard.server.common.data.id.CustomerId;
14 import org.thingsboard.server.common.data.id.TenantId; 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 import org.thingsboard.server.common.data.yunteng.dto.OrganizationDTO; 15 import org.thingsboard.server.common.data.yunteng.dto.OrganizationDTO;
19 import org.thingsboard.server.common.data.yunteng.dto.SysDictDTO; 16 import org.thingsboard.server.common.data.yunteng.dto.SysDictDTO;
20 import org.thingsboard.server.common.data.yunteng.enums.DeviceTypeEnum; 17 import org.thingsboard.server.common.data.yunteng.enums.DeviceTypeEnum;
@@ -22,78 +19,80 @@ import org.thingsboard.server.common.data.yunteng.enums.OrderTypeEnum; @@ -22,78 +19,80 @@ import org.thingsboard.server.common.data.yunteng.enums.OrderTypeEnum;
22 import org.thingsboard.server.common.data.yunteng.utils.ReflectUtils; 19 import org.thingsboard.server.common.data.yunteng.utils.ReflectUtils;
23 import org.thingsboard.server.common.data.yunteng.utils.tools.YtPageData; 20 import org.thingsboard.server.common.data.yunteng.utils.tools.YtPageData;
24 import org.thingsboard.server.dao.model.ModelConstants; 21 import org.thingsboard.server.dao.model.ModelConstants;
25 -import org.thingsboard.server.dao.yunteng.entities.AlarmContact;  
26 import org.thingsboard.server.dao.yunteng.entities.YtAlarmEntity; 22 import org.thingsboard.server.dao.yunteng.entities.YtAlarmEntity;
27 import org.thingsboard.server.dao.yunteng.mapper.OrganizationMapper; 23 import org.thingsboard.server.dao.yunteng.mapper.OrganizationMapper;
28 import org.thingsboard.server.dao.yunteng.mapper.YtAlarmMapper; 24 import org.thingsboard.server.dao.yunteng.mapper.YtAlarmMapper;
29 -import org.thingsboard.server.dao.yunteng.service.AbstractBaseService;  
30 import org.thingsboard.server.dao.yunteng.service.YtAlarmInfoService; 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 import static org.thingsboard.server.common.data.yunteng.constant.QueryConstant.*; 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 @Service 36 @Service
39 @RequiredArgsConstructor 37 @RequiredArgsConstructor
40 @Slf4j 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,6 +26,7 @@ public interface YtAlarmMapper extends BaseMapper<YtAlarmEntity> {
26 IPage<YtAlarmEntity> alarmPage( 26 IPage<YtAlarmEntity> alarmPage(
27 IPage<?> page 27 IPage<?> page
28 ,@Param("tenantId") UUID tenantId 28 ,@Param("tenantId") UUID tenantId
  29 + ,@Param("customerId") UUID customerId
29 ,@Param("severity") AlarmSeverity severity 30 ,@Param("severity") AlarmSeverity severity
30 ,@Param("alarmType")String alarmType 31 ,@Param("alarmType")String alarmType
31 ,@Param("startTime")Long startTime 32 ,@Param("startTime")Long startTime
@@ -5,6 +5,7 @@ import org.thingsboard.server.common.data.alarm.Alarm; @@ -5,6 +5,7 @@ import org.thingsboard.server.common.data.alarm.Alarm;
5 import org.thingsboard.server.common.data.alarm.AlarmInfo; 5 import org.thingsboard.server.common.data.alarm.AlarmInfo;
6 import org.thingsboard.server.common.data.alarm.AlarmSeverity; 6 import org.thingsboard.server.common.data.alarm.AlarmSeverity;
7 import org.thingsboard.server.common.data.alarm.AlarmStatus; 7 import org.thingsboard.server.common.data.alarm.AlarmStatus;
  8 +import org.thingsboard.server.common.data.id.CustomerId;
8 import org.thingsboard.server.common.data.id.TenantId; 9 import org.thingsboard.server.common.data.id.TenantId;
9 import org.thingsboard.server.common.data.page.TimePageLink; 10 import org.thingsboard.server.common.data.page.TimePageLink;
10 import org.thingsboard.server.common.data.yunteng.dto.AlarmInfoDTO; 11 import org.thingsboard.server.common.data.yunteng.dto.AlarmInfoDTO;
@@ -36,7 +37,7 @@ public interface YtAlarmInfoService { @@ -36,7 +37,7 @@ public interface YtAlarmInfoService {
36 * @param organizationId 告警所属组织 37 * @param organizationId 告警所属组织
37 * @return 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,6 +43,9 @@
43 LEFT JOIN iotfs_organization org ON org.id = d.organization_id 43 LEFT JOIN iotfs_organization org ON org.id = d.organization_id
44 <where> 44 <where>
45 m.tenant_id = #{tenantId} 45 m.tenant_id = #{tenantId}
  46 + <if test="customerId!=null">
  47 + AND customer_id = #{customerId}
  48 + </if>
46 <if test="severity!=null"> 49 <if test="severity!=null">
47 AND severity = #{severity} 50 AND severity = #{severity}
48 </if> 51 </if>