|
|
|
@ -23,6 +23,7 @@ import org.thingsboard.server.common.data.alarm.Alarm; |
|
|
|
import org.thingsboard.server.common.data.alarm.AlarmStatus; |
|
|
|
import org.thingsboard.server.common.data.audit.ActionType; |
|
|
|
import org.thingsboard.server.common.data.exception.ThingsboardException; |
|
|
|
import org.thingsboard.server.common.data.id.CustomerId; |
|
|
|
import org.thingsboard.server.common.data.id.EdgeId; |
|
|
|
import org.thingsboard.server.common.data.id.TenantId; |
|
|
|
import org.thingsboard.server.queue.util.TbCoreComponent; |
|
|
|
@ -54,7 +55,7 @@ public class DefaultTbAlarmService extends AbstractTbEntityService implements Tb |
|
|
|
public void ack(Alarm alarm, SecurityUser user) throws ThingsboardException { |
|
|
|
try { |
|
|
|
long ackTs = System.currentTimeMillis(); |
|
|
|
alarmService.ackAlarm(user.getTenantId(), alarm.getId(), ackTs).get(); |
|
|
|
alarmService.ackAlarm(alarm.getTenantId(), alarm.getId(), ackTs).get(); |
|
|
|
alarm.setAckTs(ackTs); |
|
|
|
alarm.setStatus(alarm.getStatus().isCleared() ? AlarmStatus.CLEARED_ACK : AlarmStatus.ACTIVE_ACK); |
|
|
|
notificationEntityService.notifyCreateOrUpdateAlarm(alarm, ActionType.ALARM_ACK, user); |
|
|
|
@ -67,7 +68,7 @@ public class DefaultTbAlarmService extends AbstractTbEntityService implements Tb |
|
|
|
public void clear(Alarm alarm, SecurityUser user) throws ThingsboardException { |
|
|
|
try { |
|
|
|
long clearTs = System.currentTimeMillis(); |
|
|
|
alarmService.clearAlarm(user.getTenantId(), alarm.getId(), null, clearTs).get(); |
|
|
|
alarmService.clearAlarm(alarm.getTenantId(), alarm.getId(), null, clearTs).get(); |
|
|
|
alarm.setClearTs(clearTs); |
|
|
|
alarm.setStatus(alarm.getStatus().isAck() ? AlarmStatus.CLEARED_ACK : AlarmStatus.CLEARED_UNACK); |
|
|
|
notificationEntityService.notifyCreateOrUpdateAlarm(alarm, ActionType.ALARM_CLEAR, user); |
|
|
|
@ -78,11 +79,20 @@ public class DefaultTbAlarmService extends AbstractTbEntityService implements Tb |
|
|
|
|
|
|
|
@Override |
|
|
|
public Boolean delete(Alarm alarm, SecurityUser user) throws ThingsboardException { |
|
|
|
return delete(alarm, user.getCustomerId(), user); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public Boolean delete(Alarm alarm, CustomerId customerId) throws ThingsboardException { |
|
|
|
return delete(alarm, customerId, null); |
|
|
|
} |
|
|
|
|
|
|
|
private Boolean delete(Alarm alarm, CustomerId customerId, SecurityUser user) throws ThingsboardException { |
|
|
|
try { |
|
|
|
List<EdgeId> relatedEdgeIds = findRelatedEdgeIds(user.getTenantId(), alarm.getOriginator()); |
|
|
|
notificationEntityService.notifyDeleteAlarm(user.getTenantId(), alarm, alarm.getOriginator(), user.getCustomerId(), |
|
|
|
List<EdgeId> relatedEdgeIds = findRelatedEdgeIds(alarm.getTenantId(), alarm.getOriginator()); |
|
|
|
notificationEntityService.notifyDeleteAlarm(alarm.getTenantId(), alarm, alarm.getOriginator(), customerId, |
|
|
|
relatedEdgeIds, user, JacksonUtil.OBJECT_MAPPER.writeValueAsString(alarm)); |
|
|
|
return alarmService.deleteAlarm(user.getTenantId(), alarm.getId()).isSuccessful(); |
|
|
|
return alarmService.deleteAlarm(alarm.getTenantId(), alarm.getId()).isSuccessful(); |
|
|
|
} catch (Exception e) { |
|
|
|
throw handleException(e); |
|
|
|
} |
|
|
|
|