Commit 70d24132727f9cfa01d05caeb54337ae0fbbdbfd

Authored by chenjunyu_1481036421
1 parent 3e196e3b

fix:.删除设备时同时删除该设备的告警 bug

@@ -580,7 +580,7 @@ public abstract class BaseController { @@ -580,7 +580,7 @@ public abstract class BaseController {
580 } 580 }
581 } 581 }
582 582
583 - Alarm checkAlarmId(AlarmId alarmId, Operation operation) throws ThingsboardException { 583 + protected Alarm checkAlarmId(AlarmId alarmId, Operation operation) throws ThingsboardException {
584 try { 584 try {
585 validateId(alarmId, "Incorrect alarmId " + alarmId); 585 validateId(alarmId, "Incorrect alarmId " + alarmId);
586 Alarm alarm = alarmService.findAlarmByIdAsync(getCurrentUser().getTenantId(), alarmId).get(); 586 Alarm alarm = alarmService.findAlarmByIdAsync(getCurrentUser().getTenantId(), alarmId).get();
@@ -39,13 +39,10 @@ import org.thingsboard.server.common.data.yunteng.enums.DeviceTypeEnum; @@ -39,13 +39,10 @@ import org.thingsboard.server.common.data.yunteng.enums.DeviceTypeEnum;
39 import org.thingsboard.server.common.data.yunteng.enums.OrderTypeEnum; 39 import org.thingsboard.server.common.data.yunteng.enums.OrderTypeEnum;
40 import org.thingsboard.server.common.data.yunteng.utils.tools.ResponseResult; 40 import org.thingsboard.server.common.data.yunteng.utils.tools.ResponseResult;
41 import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData; 41 import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData;
42 -import org.thingsboard.server.controller.AlarmController;  
43 import org.thingsboard.server.controller.BaseController; 42 import org.thingsboard.server.controller.BaseController;
44 -import org.thingsboard.server.dao.yunteng.entities.TkUserCollectEntity;  
45 import org.thingsboard.server.dao.yunteng.service.TkAlarmInfoService; 43 import org.thingsboard.server.dao.yunteng.service.TkAlarmInfoService;
46 import org.thingsboard.server.dao.yunteng.service.TkDeviceProfileService; 44 import org.thingsboard.server.dao.yunteng.service.TkDeviceProfileService;
47 import org.thingsboard.server.dao.yunteng.service.TkDeviceService; 45 import org.thingsboard.server.dao.yunteng.service.TkDeviceService;
48 -import org.thingsboard.server.dao.yunteng.service.TkUserCollectService;  
49 import org.thingsboard.server.service.gateway_device.GatewayNotificationsService; 46 import org.thingsboard.server.service.gateway_device.GatewayNotificationsService;
50 import org.thingsboard.server.service.security.permission.Operation; 47 import org.thingsboard.server.service.security.permission.Operation;
51 import org.thingsboard.server.service.security.permission.Resource; 48 import org.thingsboard.server.service.security.permission.Resource;
@@ -68,7 +65,6 @@ public class TkDeviceController extends BaseController { @@ -68,7 +65,6 @@ public class TkDeviceController extends BaseController {
68 private final TkDeviceProfileService ytDeviceProfileService; 65 private final TkDeviceProfileService ytDeviceProfileService;
69 private final GatewayNotificationsService gatewayNotificationsService; 66 private final GatewayNotificationsService gatewayNotificationsService;
70 private final TkAlarmInfoService tkAlarmInfoService ; 67 private final TkAlarmInfoService tkAlarmInfoService ;
71 - private final AlarmController alarmController;  
72 68
73 69
74 70
@@ -337,13 +333,22 @@ public class TkDeviceController extends BaseController { @@ -337,13 +333,22 @@ public class TkDeviceController extends BaseController {
337 } 333 }
338 334
339 private void deleteAlarm(String id) throws ThingsboardException { 335 private void deleteAlarm(String id) throws ThingsboardException {
  336 + //根据设备的tbId查询当前设备的所有告警
340 List<String> alarmIds = tkAlarmInfoService.getByTbDeviceId(getTenantId().toString(),id); 337 List<String> alarmIds = tkAlarmInfoService.getByTbDeviceId(getTenantId().toString(),id);
341 if(alarmIds.isEmpty()){ 338 if(alarmIds.isEmpty()){
342 return; 339 return;
343 } 340 }
344 alarmIds.forEach(strAlarmId -> { 341 alarmIds.forEach(strAlarmId -> {
  342 + //此处参考AlarmController中的deleteAlarm方法
345 try { 343 try {
346 - alarmController.deleteAlarm(strAlarmId); 344 + AlarmId alarmId = new AlarmId(toUUID(strAlarmId));
  345 + Alarm alarm = checkAlarmId(alarmId, Operation.WRITE);
  346 + List<EdgeId> relatedEdgeIds = findRelatedEdgeIds(getTenantId(), alarm.getOriginator());
  347 + logEntityAction(alarm.getOriginator(), alarm,
  348 + getCurrentUser().getCustomerId(),
  349 + ActionType.ALARM_DELETE, null);
  350 + sendAlarmDeleteNotificationMsg(getTenantId(), alarmId, relatedEdgeIds, alarm);
  351 + alarmService.deleteAlarm(getTenantId(), alarmId);
347 } catch (ThingsboardException e) { 352 } catch (ThingsboardException e) {
348 e.printStackTrace(); 353 e.printStackTrace();
349 } 354 }