Commit 771fae2678ec691ffaa60b9170afcd6d0093aea3

Authored by xp.Huang
1 parent f8fc4cee

fix:小程序统计告警信息及告警分页查询

1 1 package org.thingsboard.server.common.data.yunteng.dto.statistics;
2 2
3 3 import lombok.Data;
  4 +import org.thingsboard.server.common.data.alarm.AlarmStatus;
4 5
5 6 /**
6 7 * @Description : 数据聚合统计对象
... ... @@ -15,4 +16,22 @@ import lombok.Data;
15 16 public class AggregationDTO {
16 17 private String key;
17 18 private Integer value;
  19 + private Boolean acknowledged;
  20 + private Boolean cleared;
  21 + public String getKey(){
  22 + String status = null;
  23 + if(!acknowledged&&!cleared){
  24 + status = AlarmStatus.ACTIVE_UNACK.name();//激活未确认
  25 + }
  26 + if(acknowledged&&!cleared){
  27 + status = AlarmStatus.ACTIVE_ACK.name();//激活已确认
  28 + }
  29 + if(!acknowledged&&cleared){
  30 + status = AlarmStatus.CLEARED_UNACK.name();//清除未确认
  31 + }
  32 + if(acknowledged&&cleared){
  33 + status = AlarmStatus.CLEARED_ACK.name();//清除已确认
  34 + }
  35 + return status;
  36 + }
18 37 }
... ...
... ... @@ -85,7 +85,8 @@ public class TkAlarmEntity {
85 85 private String organizationId;
86 86 private String organizationName;
87 87 private String deviceAlias;
88   -
  88 + @TableField(exist = false)
  89 + private AlarmStatus status;
89 90 public String getStartTs() {
90 91 return DateTimeUtils.format(this.startTs);
91 92 }
... ... @@ -109,4 +110,21 @@ public class TkAlarmEntity {
109 110 public String getUpdatedTime() {
110 111 return DateTimeUtils.format(this.updatedTime);
111 112 }
  113 +
  114 + public AlarmStatus getStatus() {
  115 + AlarmStatus alarmStatus = null;
  116 + if(!acknowledged&&!cleared){
  117 + alarmStatus = AlarmStatus.ACTIVE_UNACK;//激活未确认
  118 + }
  119 + if(acknowledged&&!cleared){
  120 + alarmStatus = AlarmStatus.ACTIVE_ACK;//激活已确认
  121 + }
  122 + if(!acknowledged&&cleared){
  123 + alarmStatus = AlarmStatus.CLEARED_UNACK;//清除未确认
  124 + }
  125 + if(acknowledged&&cleared){
  126 + alarmStatus = AlarmStatus.CLEARED_ACK;//清除已确认
  127 + }
  128 + return alarmStatus;
  129 + }
112 130 }
... ...
... ... @@ -305,7 +305,7 @@ public class TkHomePageServiceImpl implements HomePageService {
305 305 app.setTodayCustomer(today);
306 306 }
307 307
308   - List<DeviceDTO> devices = getDeviceInfo(todayFilter);
  308 + List<TkDeviceEntity> devices = getDeviceInfo(todayFilter);
309 309 AtomicInteger totalOnline = new AtomicInteger();
310 310 AtomicInteger totalOffline = new AtomicInteger();
311 311 AtomicInteger totalinactive = new AtomicInteger();
... ... @@ -325,9 +325,9 @@ public class TkHomePageServiceImpl implements HomePageService {
325 325 totalinactive.incrementAndGet();
326 326 break;
327 327 }
328   -
329   - return device.getCreateTime().isAfter(startTime)
330   - && device.getCreateTime().isBefore(endTime);
  328 + LocalDateTime createTime = LocalDateTime.ofEpochSecond(device.getCreateTime()/ 1000, 0, ZoneOffset.UTC);
  329 + return createTime.isAfter(startTime)
  330 + && createTime.isBefore(endTime);
331 331 })
332 332 .count();
333 333 DeviceStatisticsDTO today = new DeviceStatisticsDTO(0);
... ... @@ -354,7 +354,7 @@ public class TkHomePageServiceImpl implements HomePageService {
354 354 EntityId entityId, LocalDateTime startTime, LocalDateTime endTime) {
355 355 Map<String, Object> filter = new HashMap<>();
356 356 if (entityId != null) {
357   - String idStr = entityId.getId().toString();
  357 + UUID idStr = entityId.getId();
358 358 switch (entityId.getEntityType()) {
359 359 case TENANT:
360 360 filter.put("tenantId", idStr);
... ... @@ -385,8 +385,8 @@ public class TkHomePageServiceImpl implements HomePageService {
385 385 *
386 386 * @param filter 数据过滤参数
387 387 */
388   - private List<DeviceDTO> getDeviceInfo(Map<String, Object> filter) {
389   - return deviceMapper.findDevices(filter).stream().map(e->CopyUtils.copyAndReturn(e,new DeviceDTO())).collect(Collectors.toList());
  388 + private List<TkDeviceEntity> getDeviceInfo(Map<String, Object> filter) {
  389 + return deviceMapper.findDevices(filter);
390 390 }
391 391
392 392 /**
... ...
... ... @@ -56,7 +56,8 @@
56 56 <result property="organizationName" column="organization_name"/>
57 57 <result property="description" column="description"/>
58 58 <result property="isEdge" column="is_edge"/>
59   -
  59 + <result property="createTime" column="createTime"/>
  60 + <result property="updateTime" column="updateTime"/>
60 61
61 62 <!-- <association property="deviceProfile" column="device_profile_id"-->
62 63 <!-- javaType="org.thingsboard.server.dao.yunteng.entities.TkDeviceProfileEntity">-->
... ... @@ -272,6 +273,8 @@
272 273 io.NAME AS organization_name,
273 274 attrAt.long_v last_online_time,
274 275 ifd.customer_id,
  276 + ifd.created_time as createTime,
  277 + ifd.update_time as updateTime,
275 278 CASE
276 279 WHEN attrAt.long_v is null THEN 'INACTIVE'
277 280 WHEN attrA0.bool_v =true THEN 'ONLINE'
... ...
... ... @@ -33,7 +33,8 @@
33 33 </resultMap>
34 34
35 35 <resultMap type="org.thingsboard.server.common.data.yunteng.dto.statistics.AggregationDTO" id="aggregationMap">
36   - <result property="key" column="cleared"/>
  36 + <result property="acknowledged" column="acknowledged"/>
  37 + <result property="cleared" column="cleared"/>
37 38 <result property="value" column="value"/>
38 39 </resultMap>
39 40
... ... @@ -103,7 +104,7 @@
103 104 </select>
104 105
105 106 <select id="countAlarms" resultMap="aggregationMap">
106   - SELECT cleared , COUNT(m.id) AS value FROM alarm m
  107 + SELECT acknowledged,cleared , COUNT(m.id) AS value FROM alarm m
107 108 <if test="queryMap.customerId !=null or queryMap.deviceIds !=null ">
108 109 LEFT JOIN device d ON m.originator_id = d.id
109 110 </if>
... ... @@ -127,7 +128,7 @@
127 128 </foreach>
128 129 </if>
129 130 </where>
130   - GROUP BY cleared;
  131 + GROUP BY acknowledged, cleared;
131 132 </select>
132 133 <select id="getByTbDeviceId" resultType="java.lang.String">
133 134 SELECT id FROM alarm where 1=1
... ...
... ... @@ -249,7 +249,7 @@
249 249 <where>
250 250 ro.role_type = 'CUSTOMER_USER'
251 251 <if test="queryMap.tenantId !=null">
252   - AND u.tenant_id= #{queryMap.tenantId}
  252 + AND u.tenant_id= #{queryMap.tenantId}::TEXT
253 253 </if>
254 254 <if test="queryMap.startTime !=null">
255 255 AND u.create_time >= #{queryMap.startTime}
... ...