|
@@ -25,6 +25,7 @@ import com.xunmei.mediator.api.enums.AlarmRuleExpressOperateEnum;
|
|
|
import com.xunmei.mediator.api.enums.AlarmVideoTypeEnum;
|
|
import com.xunmei.mediator.api.enums.AlarmVideoTypeEnum;
|
|
|
import com.xunmei.mediator.api.mapper.*;
|
|
import com.xunmei.mediator.api.mapper.*;
|
|
|
import com.xunmei.mediator.api.service.IotAlarmDataService;
|
|
import com.xunmei.mediator.api.service.IotAlarmDataService;
|
|
|
|
|
+import com.xunmei.system.api.RemoteSmsService;
|
|
|
import lombok.AllArgsConstructor;
|
|
import lombok.AllArgsConstructor;
|
|
|
import lombok.Data;
|
|
import lombok.Data;
|
|
|
import lombok.NoArgsConstructor;
|
|
import lombok.NoArgsConstructor;
|
|
@@ -34,6 +35,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
|
import java.time.LocalDateTime;
|
|
import java.time.LocalDateTime;
|
|
|
|
|
+import java.time.format.DateTimeFormatter;
|
|
|
import java.util.*;
|
|
import java.util.*;
|
|
|
import java.util.function.Function;
|
|
import java.util.function.Function;
|
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
@@ -64,6 +66,9 @@ public class IotAlarmDataServiceImpl extends ServiceImpl<IotAlarmDataMapper, Iot
|
|
|
@Autowired
|
|
@Autowired
|
|
|
private IotDeviceMapper iotDeviceMapper;
|
|
private IotDeviceMapper iotDeviceMapper;
|
|
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private RemoteSmsService remoteSmsService;
|
|
|
|
|
+
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
@Override
|
|
@Override
|
|
|
public void dealSensorData(IotSensor iotSensor) throws Exception {
|
|
public void dealSensorData(IotSensor iotSensor) throws Exception {
|
|
@@ -103,6 +108,7 @@ public class IotAlarmDataServiceImpl extends ServiceImpl<IotAlarmDataMapper, Iot
|
|
|
boolean isExpress = false;
|
|
boolean isExpress = false;
|
|
|
List<IotAlarmData> list = new ArrayList<>();
|
|
List<IotAlarmData> list = new ArrayList<>();
|
|
|
for (IotAlarmRuleExpress express : iotAlarmRuleExpresses) {
|
|
for (IotAlarmRuleExpress express : iotAlarmRuleExpresses) {
|
|
|
|
|
+ Boolean smsType = express.getSmsType();
|
|
|
boolean isOk = compareTime(express, dateStr, now);
|
|
boolean isOk = compareTime(express, dateStr, now);
|
|
|
if (!isOk) {
|
|
if (!isOk) {
|
|
|
//不在时间段内
|
|
//不在时间段内
|
|
@@ -112,6 +118,7 @@ public class IotAlarmDataServiceImpl extends ServiceImpl<IotAlarmDataMapper, Iot
|
|
|
IotAlarmData alarmData = createAlarmData(iotSensor, express, fieldMap);
|
|
IotAlarmData alarmData = createAlarmData(iotSensor, express, fieldMap);
|
|
|
if (alarmData != null) {
|
|
if (alarmData != null) {
|
|
|
isAlarm = true;
|
|
isAlarm = true;
|
|
|
|
|
+ alarmData.setSmsType(smsType);
|
|
|
list.add(alarmData);
|
|
list.add(alarmData);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -125,6 +132,15 @@ public class IotAlarmDataServiceImpl extends ServiceImpl<IotAlarmDataMapper, Iot
|
|
|
if (isAlarm && alarms.size() == 0) {
|
|
if (isAlarm && alarms.size() == 0) {
|
|
|
//报警中,且表中没有告警数据,则插入数据
|
|
//报警中,且表中没有告警数据,则插入数据
|
|
|
this.saveBatch(list);
|
|
this.saveBatch(list);
|
|
|
|
|
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
+ for (IotAlarmData alarm : list) {
|
|
|
|
|
+ if(alarm.getSmsType()){
|
|
|
|
|
+ //需要发送短信
|
|
|
|
|
+ LocalDateTime time = alarm.getTime();
|
|
|
|
|
+ String timeStr = time.format(formatter);
|
|
|
|
|
+ remoteSmsService.sendSmsIot(iotSensor.getOrgId(),alarm.getContent(),timeStr);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
if (ObjectUtil.notEqual(iotSensor.getState(),1)) {
|
|
if (ObjectUtil.notEqual(iotSensor.getState(),1)) {
|
|
|
iotSensor.setState(1);
|
|
iotSensor.setState(1);
|
|
|
iotSensor.setStateUpdateTime(LocalDateTime.now());
|
|
iotSensor.setStateUpdateTime(LocalDateTime.now());
|
|
@@ -138,7 +154,6 @@ public class IotAlarmDataServiceImpl extends ServiceImpl<IotAlarmDataMapper, Iot
|
|
|
if( alarms.size() != 0){
|
|
if( alarms.size() != 0){
|
|
|
IotAlarmData iotAlarmData = alarms.get(0);
|
|
IotAlarmData iotAlarmData = alarms.get(0);
|
|
|
iotAlarmData.setEndTime(LocalDateTime.now());
|
|
iotAlarmData.setEndTime(LocalDateTime.now());
|
|
|
-
|
|
|
|
|
this.updateById(iotAlarmData);
|
|
this.updateById(iotAlarmData);
|
|
|
}
|
|
}
|
|
|
|
|
|