|
|
@@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.xunmei.common.core.domain.iot.domain.IotDevice;
|
|
|
import com.xunmei.common.core.domain.iot.domain.IotDvrDisk;
|
|
|
+import com.xunmei.common.core.domain.iot.domain.IotDvrHardDiskDetection;
|
|
|
import com.xunmei.common.core.domain.iot.domain.IotSensor;
|
|
|
import com.xunmei.common.core.domain.mediator.domain.IotAlarmData;
|
|
|
import com.xunmei.common.core.domain.mediator.domain.IotAlarmRuleExpress;
|
|
|
@@ -18,11 +19,15 @@ import com.xunmei.common.core.domain.mediator.domain.IotAlarmSystemField;
|
|
|
import com.xunmei.common.core.domain.video.MediatorVideoDiagnosisRecord;
|
|
|
import com.xunmei.common.core.enums.CategoryDataEnum;
|
|
|
import com.xunmei.common.core.utils.DateUtils;
|
|
|
+import com.xunmei.common.core.utils.StringUtils;
|
|
|
import com.xunmei.mediator.api.enums.AlarmDataTypeEnum;
|
|
|
import com.xunmei.mediator.api.enums.AlarmRuleExpressOperateEnum;
|
|
|
import com.xunmei.mediator.api.enums.AlarmVideoTypeEnum;
|
|
|
import com.xunmei.mediator.api.mapper.*;
|
|
|
import com.xunmei.mediator.api.service.IotAlarmDataService;
|
|
|
+import lombok.AllArgsConstructor;
|
|
|
+import lombok.Data;
|
|
|
+import lombok.NoArgsConstructor;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
@@ -194,41 +199,42 @@ public class IotAlarmDataServiceImpl extends ServiceImpl<IotAlarmDataMapper, Iot
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
- public void dealDvrDiskData(IotDvrDisk iotDvrDisk) throws Exception {
|
|
|
- Long orgId = iotDvrDisk.getOrgId();
|
|
|
-
|
|
|
- //硬盘状态。0:正常,1:异常
|
|
|
- Integer state = iotDvrDisk.getState();
|
|
|
-
|
|
|
- //监控主机唯一标识
|
|
|
- String hostCode = iotDvrDisk.getHostCode();
|
|
|
+ public void dealDvrDiskData(IotDvrHardDiskDetection iotDvrDisk) throws Exception {
|
|
|
|
|
|
- QueryWrapper<IotDevice> idqw = new QueryWrapper<>();
|
|
|
- idqw.lambda().eq(IotDevice::getEquipmentCode,hostCode).eq(IotDevice::getOrgId,orgId);
|
|
|
- IotDevice iotDevice = iotDeviceMapper.selectOne(idqw);
|
|
|
- if(iotDevice == null){
|
|
|
+ /**
|
|
|
+ * [{"index":8,"name":"DISK8","state":0},{"index":3,"name":"DISK3","state":0},{"index":1,"name":"DISK1","state":0}]
|
|
|
+ */
|
|
|
+ String detailInfo = iotDvrDisk.getDetailInfo();
|
|
|
+ if(StringUtils.isEmpty(detailInfo)){
|
|
|
return;
|
|
|
}
|
|
|
- String equipmentName = iotDevice.getEquipmentName();
|
|
|
- String diskName = iotDvrDisk.getDiskName();
|
|
|
-
|
|
|
- hostCode = hostCode + "__" +iotDvrDisk.getDiskIndex();
|
|
|
-
|
|
|
- QueryWrapper<IotAlarmData> qw = new QueryWrapper<>();
|
|
|
- qw.lambda().eq(IotAlarmData::getOrgId,orgId).eq(IotAlarmData::getDeviceId,hostCode).isNull(IotAlarmData::getEndTime);
|
|
|
- List<IotAlarmData> datas = baseMapper.selectList(qw);
|
|
|
-
|
|
|
+ Long orgId = iotDvrDisk.getOrgId();
|
|
|
+ //监控主机唯一标识
|
|
|
+ String hostCode = iotDvrDisk.getEquipmentCode();
|
|
|
+ String equipmentName = iotDvrDisk.getEquipmentName();
|
|
|
+ List<DiskVo> diskVos = JSONArray.parseArray(detailInfo, DiskVo.class);
|
|
|
+ for (DiskVo diskVo : diskVos) {
|
|
|
+ //硬盘状态。0:正常,1:异常
|
|
|
+ Integer state = diskVo.getState();
|
|
|
+ hostCode = hostCode + "__" +diskVo.getIndex();
|
|
|
+
|
|
|
+ QueryWrapper<IotAlarmData> qw = new QueryWrapper<>();
|
|
|
+ qw.lambda().eq(IotAlarmData::getOrgId,orgId).eq(IotAlarmData::getDeviceId,hostCode).isNull(IotAlarmData::getEndTime);
|
|
|
+ List<IotAlarmData> datas = baseMapper.selectList(qw);
|
|
|
+
|
|
|
+
|
|
|
+ if(state ==1 && datas.size() == 0){
|
|
|
+ //报警,且没有告警数据
|
|
|
+ IotAlarmData alarmDisk = createAlarmDisk(equipmentName, diskVo.getName(), orgId, hostCode);
|
|
|
+ this.save(alarmDisk);
|
|
|
+ }
|
|
|
|
|
|
- if(state ==1 && datas.size() == 0){
|
|
|
- //报警,且没有告警数据
|
|
|
- IotAlarmData alarmDisk = createAlarmDisk(equipmentName, diskName, orgId, hostCode);
|
|
|
- this.save(alarmDisk);
|
|
|
- }
|
|
|
+ if(state == 0 && datas.size() > 0){
|
|
|
+ IotAlarmData iotAlarmData = datas.get(0);
|
|
|
+ iotAlarmData.setEndTime(LocalDateTime.now());
|
|
|
+ this.updateById(iotAlarmData);
|
|
|
+ }
|
|
|
|
|
|
- if(state == 0 && datas.size() > 0){
|
|
|
- IotAlarmData iotAlarmData = datas.get(0);
|
|
|
- iotAlarmData.setEndTime(LocalDateTime.now());
|
|
|
- this.updateById(iotAlarmData);
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -393,3 +399,14 @@ public class IotAlarmDataServiceImpl extends ServiceImpl<IotAlarmDataMapper, Iot
|
|
|
|
|
|
|
|
|
}
|
|
|
+
|
|
|
+@Data
|
|
|
+@AllArgsConstructor
|
|
|
+@NoArgsConstructor
|
|
|
+class DiskVo{
|
|
|
+ private String index;
|
|
|
+
|
|
|
+ private String name;
|
|
|
+
|
|
|
+ private Integer state;
|
|
|
+}
|