Commit 67f536f6f56f413ccc2d20e7826b4075bfe2ef98

Authored by xp.Huang
1 parent 5e024d57

fix: 修复租户首页消息数、告警数统计

@@ -620,52 +620,19 @@ public class TkHomePageServiceImpl implements HomePageService { @@ -620,52 +620,19 @@ public class TkHomePageServiceImpl implements HomePageService {
620 private void setAlarmAndMessageInfo( 620 private void setAlarmAndMessageInfo(
621 String tenantId, HomePageTopMessage messageInfo, BaseHomePageTop alarm) 621 String tenantId, HomePageTopMessage messageInfo, BaseHomePageTop alarm)
622 throws ExecutionException, InterruptedException { 622 throws ExecutionException, InterruptedException {
623 - List<EntityKey> entityFields = new ArrayList<>();  
624 - entityFields.add(new EntityKey(EntityKeyType.ENTITY_FIELD, "name"));  
625 - entityFields.add(new EntityKey(EntityKeyType.ENTITY_FIELD, "label"));  
626 - entityFields.add(new EntityKey(EntityKeyType.ENTITY_FIELD, "additionalInfo"));  
627 - List<EntityKey> latestValues = new ArrayList<>();  
628 - latestValues.add(new EntityKey(EntityKeyType.TIME_SERIES, "transportMsgCount"));  
629 - latestValues.add(new EntityKey(EntityKeyType.TIME_SERIES, "transportDataPointsCount"));  
630 - latestValues.add(new EntityKey(EntityKeyType.TIME_SERIES, "createdAlarmsCount"));  
631 - 623 + List<String> dictionaries = new ArrayList<>();
  624 + dictionaries.add("transportMsgCount");
  625 + dictionaries.add("transportDataPointsCount");
  626 + dictionaries.add("createdAlarmsCount");
  627 + //查询所有数据
  628 + List<Integer> sumCount = deviceMapper.getMsgSumByTenantIdAndDictionary(tenantId,dictionaries);
  629 + if(!sumCount.isEmpty()){
  630 + messageInfo.setMessageCount(sumCount.get(0));
  631 + messageInfo.setDataPointsCount(sumCount.get(1));
  632 + alarm.setSumCount(sumCount.get(2));
  633 + }
632 TenantId currentTenantId = TenantId.fromUUID(UUID.fromString(tenantId)); 634 TenantId currentTenantId = TenantId.fromUUID(UUID.fromString(tenantId));
633 ApiUsageState apiUsageState = apiUsageStateService.findTenantApiUsageState(currentTenantId); 635 ApiUsageState apiUsageState = apiUsageStateService.findTenantApiUsageState(currentTenantId);
634 - PageData<EntityData> pageData =  
635 - queryEntityData(apiUsageState.getId(), currentTenantId, entityFields, latestValues);  
636 - Map<EntityKeyType, Map<String, TsValue>> latest = pageData.getData().get(0).getLatest();  
637 - latest  
638 - .keySet()  
639 - .forEach(  
640 - item -> {  
641 - if (item.equals(EntityKeyType.TIME_SERIES)) {  
642 - Map<String, TsValue> tsValueMap = latest.get(item);  
643 - tsValueMap  
644 - .keySet()  
645 - .forEach(  
646 - mapKey -> {  
647 - String tsValue = tsValueMap.get(mapKey).getValue();  
648 - Integer value =  
649 - StringUtils.isEmpty(tsValue)  
650 - ? FastIotConstants.MagicNumber.ZERO  
651 - : Integer.parseInt(tsValue);  
652 - switch (mapKey) {  
653 - case "createdAlarmsCount":  
654 - alarm.setSumCount(value);  
655 - break;  
656 - case "transportMsgCount":  
657 - messageInfo.setMessageCount(value);  
658 - break;  
659 - case "transportDataPointsCount":  
660 - messageInfo.setDataPointsCount(value);  
661 - break;  
662 - default:  
663 - break;  
664 - }  
665 - });  
666 - }  
667 - });  
668 -  
669 // 查询今日数据 636 // 查询今日数据
670 setTodayAlarmAndMessageInfo(currentTenantId, apiUsageState.getId(), messageInfo, alarm); 637 setTodayAlarmAndMessageInfo(currentTenantId, apiUsageState.getId(), messageInfo, alarm);
671 } 638 }
@@ -146,4 +146,6 @@ public interface DeviceMapper extends BaseMapper<TkDeviceEntity> { @@ -146,4 +146,6 @@ public interface DeviceMapper extends BaseMapper<TkDeviceEntity> {
146 String getDeviceRelation(@Param("isSlave") boolean isSlave, @Param("deviceId") String deviceId); 146 String getDeviceRelation(@Param("isSlave") boolean isSlave, @Param("deviceId") String deviceId);
147 147
148 DeviceDTO findDeviceInfo(@Param("tenantId") String tenantId,@Param("tbDeviceId") String tbDeviceId); 148 DeviceDTO findDeviceInfo(@Param("tenantId") String tenantId,@Param("tbDeviceId") String tbDeviceId);
  149 +
  150 + List<Integer> getMsgSumByTenantIdAndDictionary(@Param("tenantId") String tenantId, @Param("dictionaries")List<String> dictionaries);
149 } 151 }
1 package org.thingsboard.server.dao.yunteng.service; 1 package org.thingsboard.server.dao.yunteng.service;
2 2
3 import org.springframework.web.context.request.async.DeferredResult; 3 import org.springframework.web.context.request.async.DeferredResult;
4 -import org.thingsboard.server.common.data.id.CustomerId;  
5 import org.thingsboard.server.common.data.id.EntityId; 4 import org.thingsboard.server.common.data.id.EntityId;
6 import org.thingsboard.server.common.data.id.TenantId; 5 import org.thingsboard.server.common.data.id.TenantId;
7 import org.thingsboard.server.common.data.query.TsValue; 6 import org.thingsboard.server.common.data.query.TsValue;
@@ -460,4 +460,19 @@ @@ -460,4 +460,19 @@
460 WHERE ifd.tb_device_id = #{tbDeviceId} 460 WHERE ifd.tb_device_id = #{tbDeviceId}
461 AND ifd.tenant_id = #{tenantId} 461 AND ifd.tenant_id = #{tenantId}
462 </select> 462 </select>
  463 +
  464 + <select id="getMsgSumByTenantIdAndDictionary" resultType="java.lang.Integer">
  465 + SELECT SUM ( long_v ) AS msgCount FROM
  466 + ts_kv tk
  467 + LEFT JOIN api_usage_state aus ON tk.entity_id = aus.ID
  468 + LEFT JOIN ts_kv_dictionary tkd ON tkd.key_id = tk."key"
  469 + WHERE
  470 + aus.tenant_id ::TEXT = #{tenantId}
  471 + AND tkd."key" IN
  472 + <foreach collection="dictionaries" item="dictionary" open="(" separator="," close=")">
  473 + #{dictionary}
  474 + </foreach>
  475 + GROUP BY
  476 + tk."key";
  477 + </select>
463 </mapper> 478 </mapper>