Commit aaf0707188a734380433c28cf1021bd74d6f1cff
Merge remote-tracking branch 'origin/i18n' into i18n
Showing
5 changed files
with
19 additions
and
39 deletions
@@ -18,6 +18,7 @@ import org.thingsboard.server.queue.util.TbCoreComponent; | @@ -18,6 +18,7 @@ import org.thingsboard.server.queue.util.TbCoreComponent; | ||
18 | import org.thingsboard.server.service.edge.rpc.yunteng.TkEdgeProcessor; | 18 | import org.thingsboard.server.service.edge.rpc.yunteng.TkEdgeProcessor; |
19 | import org.thingsboard.server.service.edge.rpc.yunteng.TkEdgeProcessorRepository; | 19 | import org.thingsboard.server.service.edge.rpc.yunteng.TkEdgeProcessorRepository; |
20 | import org.thingsboard.server.service.edge.rpc.yunteng.tk_device_profile_category.TkDeviceProfileCategoryRepository; | 20 | import org.thingsboard.server.service.edge.rpc.yunteng.tk_device_profile_category.TkDeviceProfileCategoryRepository; |
21 | +import org.thingsboard.server.service.state.DeviceStateService; | ||
21 | 22 | ||
22 | import java.util.UUID; | 23 | import java.util.UUID; |
23 | 24 |
@@ -3,6 +3,7 @@ package org.thingsboard.server.service.edge.rpc.yunteng.tk_event_kv; | @@ -3,6 +3,7 @@ package org.thingsboard.server.service.edge.rpc.yunteng.tk_event_kv; | ||
3 | import lombok.AllArgsConstructor; | 3 | import lombok.AllArgsConstructor; |
4 | import org.springframework.beans.BeanUtils; | 4 | import org.springframework.beans.BeanUtils; |
5 | import org.springframework.stereotype.Repository; | 5 | import org.springframework.stereotype.Repository; |
6 | +import org.thingsboard.server.common.data.id.DeviceId; | ||
6 | import org.thingsboard.server.common.data.id.EdgeId; | 7 | import org.thingsboard.server.common.data.id.EdgeId; |
7 | import org.thingsboard.server.common.data.id.EntityId; | 8 | import org.thingsboard.server.common.data.id.EntityId; |
8 | import org.thingsboard.server.common.data.id.TenantId; | 9 | import org.thingsboard.server.common.data.id.TenantId; |
@@ -16,6 +17,7 @@ import org.thingsboard.server.dao.yunteng.jpa.entity.events.TkEventKvCompositeKe | @@ -16,6 +17,7 @@ import org.thingsboard.server.dao.yunteng.jpa.entity.events.TkEventKvCompositeKe | ||
16 | import org.thingsboard.server.dao.yunteng.jpa.entity.events.TkEventKvEntity; | 17 | import org.thingsboard.server.dao.yunteng.jpa.entity.events.TkEventKvEntity; |
17 | import org.thingsboard.server.dao.yunteng.jpa.repository.event.EventKvRepository; | 18 | import org.thingsboard.server.dao.yunteng.jpa.repository.event.EventKvRepository; |
18 | import org.thingsboard.server.service.edge.rpc.yunteng.TkEdgeProcessorRepository; | 19 | import org.thingsboard.server.service.edge.rpc.yunteng.TkEdgeProcessorRepository; |
20 | +import org.thingsboard.server.service.state.DeviceStateService; | ||
19 | 21 | ||
20 | import java.util.List; | 22 | import java.util.List; |
21 | import java.util.Optional; | 23 | import java.util.Optional; |
@@ -25,6 +27,7 @@ import java.util.Optional; | @@ -25,6 +27,7 @@ import java.util.Optional; | ||
25 | public class TkEventKvRepository implements TkEdgeProcessorRepository<TkEventKv> { | 27 | public class TkEventKvRepository implements TkEdgeProcessorRepository<TkEventKv> { |
26 | 28 | ||
27 | private EventKvRepository eventKvRepository; | 29 | private EventKvRepository eventKvRepository; |
30 | + private DeviceStateService deviceStateService; | ||
28 | 31 | ||
29 | @Override | 32 | @Override |
30 | public boolean updateFromEdge(TenantId tenantId, EdgeId edgeId, TkEventKv dto) throws Exception { | 33 | public boolean updateFromEdge(TenantId tenantId, EdgeId edgeId, TkEventKv dto) throws Exception { |
@@ -34,6 +37,7 @@ public class TkEventKvRepository implements TkEdgeProcessorRepository<TkEventKv> | @@ -34,6 +37,7 @@ public class TkEventKvRepository implements TkEdgeProcessorRepository<TkEventKv> | ||
34 | id.setEventType(dto.getEventType()); | 37 | id.setEventType(dto.getEventType()); |
35 | id.setEntityId(dto.getId().getId()); | 38 | id.setEntityId(dto.getId().getId()); |
36 | Optional<TkEventKvEntity> optional = eventKvRepository.findById(id); | 39 | Optional<TkEventKvEntity> optional = eventKvRepository.findById(id); |
40 | + deviceStateService.onDeviceActivity(tenantId,new DeviceId(dto.getId().getId()),System.currentTimeMillis()); | ||
37 | if(optional.isPresent()){ | 41 | if(optional.isPresent()){ |
38 | TkEventKvEntity model=optional.get(); | 42 | TkEventKvEntity model=optional.get(); |
39 | CopyUtils.copyProperties(dto, model); | 43 | CopyUtils.copyProperties(dto, model); |
@@ -292,9 +292,6 @@ public class DefaultDeviceStateService extends AbstractPartitionBasedService<Dev | @@ -292,9 +292,6 @@ public class DefaultDeviceStateService extends AbstractPartitionBasedService<Dev | ||
292 | //thingkit function | 292 | //thingkit function |
293 | String tenantId = stateData.getTenantId().getId().toString(); | 293 | String tenantId = stateData.getTenantId().getId().toString(); |
294 | String tbDeviceId = deviceId.getId().toString(); | 294 | String tbDeviceId = deviceId.getId().toString(); |
295 | - tkDeviceService.updateDeviceStateByTbDeviceId(tenantId,tbDeviceId, | ||
296 | - org.thingsboard.server.common.data.yunteng.enums.DeviceState.ONLINE); | ||
297 | - //ThingsKit | ||
298 | saveDeviceStateLog(tenantId,tbDeviceId, FastIotConstants.StateValue.ONLINE); | 295 | saveDeviceStateLog(tenantId,tbDeviceId, FastIotConstants.StateValue.ONLINE); |
299 | } | 296 | } |
300 | } else { | 297 | } else { |
@@ -515,7 +512,7 @@ public class DefaultDeviceStateService extends AbstractPartitionBasedService<Dev | @@ -515,7 +512,7 @@ public class DefaultDeviceStateService extends AbstractPartitionBasedService<Dev | ||
515 | } | 512 | } |
516 | } | 513 | } |
517 | 514 | ||
518 | - private boolean addDeviceUsingState(TopicPartitionInfo tpi, DeviceStateData state) { | 515 | + private boolean addDeviceUsingState(TopicPartitionInfo tpi, final DeviceStateData state) { |
519 | Set<DeviceId> deviceIds = partitionedEntities.get(tpi); | 516 | Set<DeviceId> deviceIds = partitionedEntities.get(tpi); |
520 | if (deviceIds != null) { | 517 | if (deviceIds != null) { |
521 | deviceIds.add(state.getDeviceId()); | 518 | deviceIds.add(state.getDeviceId()); |
@@ -547,7 +544,7 @@ public class DefaultDeviceStateService extends AbstractPartitionBasedService<Dev | @@ -547,7 +544,7 @@ public class DefaultDeviceStateService extends AbstractPartitionBasedService<Dev | ||
547 | if (e instanceof TenantNotFoundException) { | 544 | if (e instanceof TenantNotFoundException) { |
548 | idsFromRemovedTenant.add(deviceId); | 545 | idsFromRemovedTenant.add(deviceId); |
549 | } else { | 546 | } else { |
550 | - log.warn("[{}] Failed to update inactivity state [{}]", deviceId, e.getMessage()); | 547 | + log.error("[{}] Failed to update inactivity state [{}]", deviceId, e.getMessage()); |
551 | } | 548 | } |
552 | } | 549 | } |
553 | } | 550 | } |
@@ -592,17 +589,18 @@ public class DefaultDeviceStateService extends AbstractPartitionBasedService<Dev | @@ -592,17 +589,18 @@ public class DefaultDeviceStateService extends AbstractPartitionBasedService<Dev | ||
592 | if (!isActive(ts, state) | 589 | if (!isActive(ts, state) |
593 | && (state.getLastInactivityAlarmTime() == 0L || state.getLastInactivityAlarmTime() <= state.getLastActivityTime()) | 590 | && (state.getLastInactivityAlarmTime() == 0L || state.getLastInactivityAlarmTime() <= state.getLastActivityTime()) |
594 | && stateData.getDeviceCreationTime() + state.getInactivityTimeout() <= ts) { | 591 | && stateData.getDeviceCreationTime() + state.getInactivityTimeout() <= ts) { |
592 | + | ||
593 | + //thingskit code使设备下线,不必判断partition是不是isMyPartition,因为我也不知道if (partitionService.resolve(ServiceType.TB_CORE, stateData.getTenantId(), deviceId).isMyPartition())是干嘛的 | ||
594 | + reportInactivity(ts, deviceId, stateData); | ||
595 | + if(stateData.getState().getLastActivityTime()>0){ | ||
596 | + String tenantId = stateData.getTenantId().getId().toString(); | ||
597 | + String tbDeviceId = deviceId.getId().toString(); | ||
598 | + saveDeviceStateLog(tenantId,tbDeviceId, FastIotConstants.StateValue.OFFLINE); | ||
599 | + channelService.updateVideoChannelState(deviceId.getId().toString(), StatusEnum.OFFLINE); | ||
600 | + } | ||
601 | + | ||
595 | if (partitionService.resolve(ServiceType.TB_CORE, stateData.getTenantId(), deviceId).isMyPartition()) { | 602 | if (partitionService.resolve(ServiceType.TB_CORE, stateData.getTenantId(), deviceId).isMyPartition()) { |
596 | - reportInactivity(ts, deviceId, stateData); | ||
597 | - if(stateData.getState().getLastActivityTime()>0){ | ||
598 | - String tenantId = stateData.getTenantId().getId().toString(); | ||
599 | - String tbDeviceId = deviceId.getId().toString(); | ||
600 | - tkDeviceService.updateDeviceStateByTbDeviceId(tenantId,tbDeviceId, | ||
601 | - org.thingsboard.server.common.data.yunteng.enums.DeviceState.OFFLINE); | ||
602 | - saveDeviceStateLog(tenantId,tbDeviceId, FastIotConstants.StateValue.OFFLINE); | ||
603 | - //thingskit update tkDevice state | ||
604 | - channelService.updateVideoChannelState(deviceId.getId().toString(), StatusEnum.OFFLINE); | ||
605 | - } | 603 | + |
606 | } else { | 604 | } else { |
607 | cleanupEntity(deviceId); | 605 | cleanupEntity(deviceId); |
608 | } | 606 | } |
@@ -619,6 +617,7 @@ public class DefaultDeviceStateService extends AbstractPartitionBasedService<Dev | @@ -619,6 +617,7 @@ public class DefaultDeviceStateService extends AbstractPartitionBasedService<Dev | ||
619 | state.setLastInactivityAlarmTime(ts); | 617 | state.setLastInactivityAlarmTime(ts); |
620 | save(deviceId, INACTIVITY_ALARM_TIME, ts); | 618 | save(deviceId, INACTIVITY_ALARM_TIME, ts); |
621 | onDeviceActivityStatusChange(deviceId, false, stateData); | 619 | onDeviceActivityStatusChange(deviceId, false, stateData); |
620 | + System.err.println("Inactivity Device : "+deviceId); | ||
622 | } | 621 | } |
623 | 622 | ||
624 | boolean isActive(long ts, DeviceState state) { | 623 | boolean isActive(long ts, DeviceState state) { |
@@ -879,22 +879,6 @@ public class TkDeviceServiceImpl extends AbstractTbBaseService<DeviceMapper, TkD | @@ -879,22 +879,6 @@ public class TkDeviceServiceImpl extends AbstractTbBaseService<DeviceMapper, TkD | ||
879 | .collect(Collectors.toList()); | 879 | .collect(Collectors.toList()); |
880 | } | 880 | } |
881 | 881 | ||
882 | - @Override | ||
883 | - public boolean updateDeviceStateByTbDeviceId( | ||
884 | - String tenantId, String tbDeviceId, DeviceState deviceState) { | ||
885 | - boolean result = false; | ||
886 | - TkDeviceEntity entity = | ||
887 | - baseMapper.selectOne( | ||
888 | - new LambdaQueryWrapper<TkDeviceEntity>() | ||
889 | - .eq(TkDeviceEntity::getTenantId, UUID.fromString(tenantId)) | ||
890 | - .eq(TkDeviceEntity::getId, UUID.fromString(tbDeviceId))); | ||
891 | - | ||
892 | - if (null != entity) { | ||
893 | - entity.setDeviceState(deviceState); | ||
894 | - return baseMapper.updateById(entity) > FastIotConstants.MagicNumber.ZERO; | ||
895 | - } | ||
896 | - return result; | ||
897 | - } | ||
898 | 882 | ||
899 | @Override | 883 | @Override |
900 | public DeviceDTO getDeviceByDeviceNameOrIdAndGateWayId(String tenantId, String nameOrTbDeviceId, String gateWayId) { | 884 | public DeviceDTO getDeviceByDeviceNameOrIdAndGateWayId(String tenantId, String nameOrTbDeviceId, String gateWayId) { |
@@ -265,14 +265,6 @@ public interface TkDeviceService extends TbBaseService<TkDeviceEntity> { | @@ -265,14 +265,6 @@ public interface TkDeviceService extends TbBaseService<TkDeviceEntity> { | ||
265 | */ | 265 | */ |
266 | List<DeviceDTO> findDeviceInfoByTbDeviceIds(List<String> tbDeviceIds,String tenantId); | 266 | List<DeviceDTO> findDeviceInfoByTbDeviceIds(List<String> tbDeviceIds,String tenantId); |
267 | 267 | ||
268 | - /** | ||
269 | - * 根据TB的设备ID更新TK的设备状态 | ||
270 | - * @param tenantId 租户ID | ||
271 | - * @param tbDeviceId TB的设备ID | ||
272 | - * @param deviceState 设备状态枚举值 | ||
273 | - * @return true成功 false失败 | ||
274 | - */ | ||
275 | - boolean updateDeviceStateByTbDeviceId(String tenantId, String tbDeviceId, DeviceState deviceState); | ||
276 | 268 | ||
277 | /** | 269 | /** |
278 | * 根据租户ID和设备名称或设备ID查询该设备的信息 | 270 | * 根据租户ID和设备名称或设备ID查询该设备的信息 |