Commit bd0e3901 authored by lisong's avatar lisong

稳压泵、管网压力、水池水箱泡沫罐告警事件添加逻辑

parent cfe32d1c
...@@ -66,4 +66,6 @@ public interface EquipmentIndexMapper extends BaseMapper<EquipmentIndex> { ...@@ -66,4 +66,6 @@ public interface EquipmentIndexMapper extends BaseMapper<EquipmentIndex> {
List<EquipmentIndex> getPerfQutoaIotList(Long id); List<EquipmentIndex> getPerfQutoaIotList(Long id);
List<String> getGruopName(Long equipmentId); List<String> getGruopName(Long equipmentId);
EquipmentIndex getMessage(@Param("equipmentSpecificId")Long equipmentSpecificId, @Param("equipmentIndexKey")String equipmentIndexKey);
} }
...@@ -11,6 +11,7 @@ import com.yeejoin.equipmanage.common.vo.Token; ...@@ -11,6 +11,7 @@ import com.yeejoin.equipmanage.common.vo.Token;
import com.yeejoin.equipmanage.fegin.SystemctlFeign; import com.yeejoin.equipmanage.fegin.SystemctlFeign;
import com.yeejoin.equipmanage.mapper.MarqueeDataMapper; import com.yeejoin.equipmanage.mapper.MarqueeDataMapper;
import com.yeejoin.equipmanage.remote.RemoteSecurityService; import com.yeejoin.equipmanage.remote.RemoteSecurityService;
import com.yeejoin.equipmanage.service.IEquipmentSpecificAlarmLogService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.quartz.Job; import org.quartz.Job;
import org.quartz.JobExecutionContext; import org.quartz.JobExecutionContext;
...@@ -36,6 +37,7 @@ public class PumpSendMessage implements Job { ...@@ -36,6 +37,7 @@ public class PumpSendMessage implements Job {
SystemctlFeign systemctlFeign = (SystemctlFeign)jobDataMap.get("systemctlFeign"); SystemctlFeign systemctlFeign = (SystemctlFeign)jobDataMap.get("systemctlFeign");
RemoteSecurityService remoteSecurityService = (RemoteSecurityService)jobDataMap.get("remoteSecurityService"); RemoteSecurityService remoteSecurityService = (RemoteSecurityService)jobDataMap.get("remoteSecurityService");
MarqueeDataMapper marqueeDataMapper = (MarqueeDataMapper)jobDataMap.get("marqueeDataMapper"); MarqueeDataMapper marqueeDataMapper = (MarqueeDataMapper)jobDataMap.get("marqueeDataMapper");
IEquipmentSpecificAlarmLogService equipmentSpecificAlarmLogService = (IEquipmentSpecificAlarmLogService)jobDataMap.get("equipmentSpecificAlarmLogService");
MessageModel model = new MessageModel(); MessageModel model = new MessageModel();
model.setSendTime(new Date()); model.setSendTime(new Date());
...@@ -64,6 +66,8 @@ public class PumpSendMessage implements Job { ...@@ -64,6 +66,8 @@ public class PumpSendMessage implements Job {
marqueeData.setType("漏水提醒"); marqueeData.setType("漏水提醒");
marqueeData.setCreateDate(new Date()); marqueeData.setCreateDate(new Date());
marqueeDataMapper.insert(marqueeData); marqueeDataMapper.insert(marqueeData);
// 稳压泵漏水告警添加告警事件信息
equipmentSpecificAlarmLogService.pressurePumpDisposeAlarm(equipmentSpecific.getId());
} }
model.setBody(body); model.setBody(body);
......
...@@ -2,6 +2,7 @@ package com.yeejoin.equipmanage.service; ...@@ -2,6 +2,7 @@ package com.yeejoin.equipmanage.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.yeejoin.equipmanage.common.entity.EquipmentSpecific;
import com.yeejoin.equipmanage.common.entity.EquipmentSpecificAlarm; import com.yeejoin.equipmanage.common.entity.EquipmentSpecificAlarm;
import com.yeejoin.equipmanage.common.entity.EquipmentSpecificAlarmLog; import com.yeejoin.equipmanage.common.entity.EquipmentSpecificAlarmLog;
import com.yeejoin.equipmanage.common.entity.dto.EquipmentAlarmLogDto; import com.yeejoin.equipmanage.common.entity.dto.EquipmentAlarmLogDto;
...@@ -61,4 +62,9 @@ public interface IEquipmentSpecificAlarmLogService extends IService<EquipmentSpe ...@@ -61,4 +62,9 @@ public interface IEquipmentSpecificAlarmLogService extends IService<EquipmentSpe
* @return * @return
*/ */
Page<EquipmentAlarmLogDto> getEquipAlarmLog(String id, String startTime, String endTime, long pageSize, long current ); Page<EquipmentAlarmLogDto> getEquipAlarmLog(String id, String startTime, String endTime, long pageSize, long current );
void pressurePumpDisposeAlarm(Long equipmentSpecificId);
void pressurePumpRestore(Long equipmentSpecificId);
} }
package com.yeejoin.equipmanage.service.impl; package com.yeejoin.equipmanage.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.yeejoin.equipmanage.common.entity.EquipmentSpecificAlarm; import com.yeejoin.equipmanage.common.entity.*;
import com.yeejoin.equipmanage.common.entity.EquipmentSpecificAlarmLog;
import com.yeejoin.equipmanage.common.entity.FireFightingSystemEntity;
import com.yeejoin.equipmanage.common.entity.dto.EquipmentAlarmLogDto; import com.yeejoin.equipmanage.common.entity.dto.EquipmentAlarmLogDto;
import com.yeejoin.equipmanage.common.entity.vo.EquiplistSpecificBySystemVO; import com.yeejoin.equipmanage.common.entity.vo.EquiplistSpecificBySystemVO;
import com.yeejoin.equipmanage.common.enums.AlarmStatusEnum;
import com.yeejoin.equipmanage.common.utils.DateUtils; import com.yeejoin.equipmanage.common.utils.DateUtils;
import com.yeejoin.equipmanage.fegin.IotFeign; import com.yeejoin.equipmanage.fegin.IotFeign;
import com.yeejoin.equipmanage.fegin.VideoFeignClient; import com.yeejoin.equipmanage.fegin.VideoFeignClient;
import com.yeejoin.equipmanage.mapper.EquipmentSpecificAlarmLogMapper; import com.yeejoin.equipmanage.mapper.*;
import com.yeejoin.equipmanage.mapper.FireFightingSystemMapper;
import com.yeejoin.equipmanage.service.IESeqService; import com.yeejoin.equipmanage.service.IESeqService;
import com.yeejoin.equipmanage.service.IEquipmentSpecificAlarmLogService; import com.yeejoin.equipmanage.service.IEquipmentSpecificAlarmLogService;
import liquibase.pro.packaged.S;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest; import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
...@@ -28,6 +31,7 @@ import java.util.Date; ...@@ -28,6 +31,7 @@ import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors;
/** /**
* @author keyong * @author keyong
...@@ -42,6 +46,22 @@ public class EquipmentSpecificAlarmLogServiceImpl extends ServiceImpl<EquipmentS ...@@ -42,6 +46,22 @@ public class EquipmentSpecificAlarmLogServiceImpl extends ServiceImpl<EquipmentS
@Autowired @Autowired
EquipmentSpecificAlarmLogMapper equipmentSpecificAlarmLogMapper; EquipmentSpecificAlarmLogMapper equipmentSpecificAlarmLogMapper;
@Autowired
EquipmentSpecificAlarmMapper equipmentSpecificAlarmMapper;
@Autowired
EquipmentSpecificMapper equipmentSpecificMapper;
@Autowired
EquipmentSpecificAlarmServiceImpl equipmentSpecificAlarmService;
@Autowired
EquipmentIndexMapper equipmentIndexMapper;
@Value("${equipment.pressurepump.start}")
private String pressurePumpStart;
@Autowired @Autowired
FireFightingSystemMapper fireFightingSystemMapper; FireFightingSystemMapper fireFightingSystemMapper;
...@@ -141,6 +161,130 @@ public class EquipmentSpecificAlarmLogServiceImpl extends ServiceImpl<EquipmentS ...@@ -141,6 +161,130 @@ public class EquipmentSpecificAlarmLogServiceImpl extends ServiceImpl<EquipmentS
} }
@Override
public void pressurePumpDisposeAlarm(Long equipmentSpecificId) {
EquipmentSpecific equipmentSpecific = equipmentSpecificMapper.selectById(equipmentSpecificId);
EquipmentSpecificAlarm equipmentSpecificAlarm = new EquipmentSpecificAlarm();
String sysCodes = null;
Map<String, Object> stationCode = equipmentSpecificMapper.getStationCode(equipmentSpecificId);
EquipmentIndex equipmentIndex = equipmentIndexMapper.getMessage(equipmentSpecificId, pressurePumpStart);
LambdaQueryWrapper<EquipmentSpecificAlarm> lambda = new QueryWrapper<EquipmentSpecificAlarm>().lambda();
lambda.eq(EquipmentSpecificAlarm::getEquipmentSpecificId, equipmentSpecific.getId());
lambda.eq(EquipmentSpecificAlarm::getEquipmentSpecificIndexKey, equipmentSpecific.getRealtimeIotIndexKey());
lambda.eq(EquipmentSpecificAlarm::getStatus, AlarmStatusEnum.BJ.getCode());
lambda.orderByDesc(EquipmentSpecificAlarm::getCreateDate);
lambda.last("limit 1");
EquipmentSpecificAlarm specificAlarm = equipmentSpecificAlarmMapper.selectOne(lambda);
// 已存在稳压泵漏水告警信息,告警频率+1
if (!ObjectUtils.isEmpty(specificAlarm)) {
specificAlarm.setFrequency(specificAlarm.getFrequency() + 1);
equipmentSpecificAlarmMapper.updateById(specificAlarm);
BeanUtils.copyProperties(specificAlarm, equipmentSpecificAlarm);
} else {
equipmentSpecificAlarm.setEquipmentSpecificId(equipmentSpecific.getId());
equipmentSpecificAlarm.setEquipmentSpecificName(equipmentSpecific.getName());
equipmentSpecificAlarm.setOrgCode(equipmentSpecific.getOrgCode());
equipmentSpecificAlarm.setIotCode(equipmentSpecific.getIotCode());
equipmentSpecificAlarm.setEquipmentSpecificIndexName("漏水提醒");
equipmentSpecificAlarm.setEquipmentSpecificIndexKey(equipmentIndex.getPerfQuotaDefinitionId());
equipmentSpecificAlarm.setEquipmentSpecificIndexValue("true");
equipmentSpecificAlarm.setStatus(AlarmStatusEnum.BJ.getCode());
equipmentSpecificAlarm.setFrequency(1);
equipmentSpecificAlarm.setType(equipmentIndex.getTypeCode());
equipmentSpecificAlarm.setEquipmentIndexId(equipmentIndex.getId());
equipmentSpecificAlarm.setSystemIds(equipmentSpecific.getSystemId());
equipmentSpecificAlarm.setEquipmentCode(equipmentSpecific.getEquipmentCode());
equipmentSpecificAlarm.setEquipmentDetailId(equipmentSpecific.getEquipmentDetailId());
equipmentSpecificAlarm.setLocation(equipmentSpecific.getPosition());
equipmentSpecificAlarm.setBizOrgCode(equipmentSpecific.getBizOrgCode());
equipmentSpecificAlarm.setBizOrgName(equipmentSpecific.getBizOrgName());
equipmentSpecificAlarm.setEmergencyLevel(equipmentIndex.getEmergencyLevel());
equipmentSpecificAlarm.setEmergencyLevelColor(equipmentIndex.getEmergencyLevelColor());
equipmentSpecificAlarm.setEmergencyLevelDescribe(equipmentIndex.getEmergencyLevelDescribe());
equipmentSpecificAlarm.setEquipmentId(ObjectUtils.isEmpty(equipmentIndex.getEquipmentId()) ? null : Long.parseLong(equipmentIndex.getEquipmentId()));
if (!ObjectUtils.isEmpty(stationCode)) {
equipmentSpecificAlarm.setStationCode(stationCode.get("station_code").toString());
equipmentSpecificAlarm.setStationName(stationCode.get("station_name").toString());
}
if (!ObjectUtils.isEmpty(equipmentSpecificAlarm.getSystemIds())) {
sysCodes = getSysCodes(equipmentSpecificAlarm.getSystemIds());
equipmentSpecificAlarm.setSystemCodes(ObjectUtils.isEmpty(sysCodes) ? null : sysCodes);
}
equipmentSpecificAlarmMapper.insert(equipmentSpecificAlarm);
}
EquipmentSpecificAlarmLog equipmentSpecificAlarmLog = new EquipmentSpecificAlarmLog();
BeanUtils.copyProperties(equipmentSpecificAlarm, equipmentSpecificAlarmLog);
equipmentSpecificAlarmLog.setId(null);
equipmentSpecificAlarmLog.setEquipmentSpecificAlarmId(equipmentSpecificAlarm.getId());
equipmentSpecificAlarmLog.setEquipmentSpecificCode(equipmentSpecific.getCode());
equipmentSpecificAlarmLog.setEquipmentId(ObjectUtils.isEmpty(equipmentIndex.getEquipmentId()) ? null : Long.parseLong(equipmentIndex.getEquipmentId()));
equipmentSpecificAlarmLog.setBuildId(equipmentSpecific.getWarehouseStructureId().toString());
equipmentSpecificAlarmLog.setEmergencyLevel(equipmentIndex.getEmergencyLevel());
equipmentSpecificAlarmLog.setEmergencyLevelColor(equipmentIndex.getEmergencyLevelColor());
equipmentSpecificAlarmLog.setEmergencyLevelDescribe(equipmentIndex.getEmergencyLevelDescribe());
if (!ObjectUtils.isEmpty(sysCodes)) {
equipmentSpecificAlarmLog.setSystemCodes(sysCodes);
}
if (!ObjectUtils.isEmpty(stationCode)) {
equipmentSpecificAlarmLog.setStationCode(stationCode.get("station_code").toString());
equipmentSpecificAlarmLog.setStationName(stationCode.get("station_name").toString());
}
equipmentSpecificAlarmLogMapper.insert(equipmentSpecificAlarmLog);
}
private String getSysCodes(String systemId){
if (!ObjectUtils.isEmpty(systemId)) {
List<FireFightingSystemEntity> codes = fireFightingSystemMapper.getFightingSysByIds(systemId.split(","));
if (!ObjectUtils.isEmpty(codes)) {
return codes.stream().map(FireFightingSystemEntity::getCode).collect(Collectors.joining(","));
}
}
return null;
}
@Override
public void pressurePumpRestore(Long equipmentSpecificId) {
// 修改报警数据为正常
Date date = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateString = formatter.format(date);
LambdaQueryWrapper<EquipmentSpecificAlarm> lambda = new QueryWrapper<EquipmentSpecificAlarm>().lambda();
lambda.eq(EquipmentSpecificAlarm::getEquipmentSpecificId, equipmentSpecificId);
lambda.eq(EquipmentSpecificAlarm::getStatus, AlarmStatusEnum.BJ.getCode());
lambda.eq(EquipmentSpecificAlarm::getEquipmentSpecificIndexKey, pressurePumpStart);
List<EquipmentSpecificAlarm> equipmentSpecificAlarms = equipmentSpecificAlarmMapper.selectList(lambda);
if (!ObjectUtils.isEmpty(equipmentSpecificAlarms)){
equipmentSpecificAlarms.forEach(item ->{
item.setStatus(AlarmStatusEnum.HF.getCode());
item.setRecoveryDate(date);
item.setConfirmType(item.getType());
item.setEquipmentSpecificIndexValue("false");
});
equipmentSpecificAlarmService.saveOrUpdateBatch(equipmentSpecificAlarms);
}
LambdaQueryWrapper<EquipmentSpecificAlarmLog> lambdaLog = new QueryWrapper<EquipmentSpecificAlarmLog>().lambda();
lambdaLog.eq(EquipmentSpecificAlarmLog::getEquipmentSpecificId, equipmentSpecificId);
lambdaLog.eq(EquipmentSpecificAlarmLog::getStatus, AlarmStatusEnum.BJ.getCode());
lambdaLog.eq(EquipmentSpecificAlarmLog::getEquipmentSpecificIndexKey, pressurePumpStart);
List<EquipmentSpecificAlarmLog> equipmentSpecificAlarmLogs = equipmentSpecificAlarmLogMapper.selectList(lambdaLog);
if (!ObjectUtils.isEmpty(equipmentSpecificAlarmLogs)){
equipmentSpecificAlarmLogs.forEach(item ->{
item.setAlarmReason(item.getEquipmentSpecificName() + "引起设备报警");
item.setResolveResult(dateString + "系统收到设备复归(已消除)信号,系统自动处理。");
item.setConfirmUser("");
item.setConfirmUserName("系统自动处理");
item.setConfirmDate(date);
item.setCleanTime(date);
item.setConfirmType(item.getType());
item.setEquipmentSpecificIndexValue("false");
item.setStatus(AlarmStatusEnum.HF.getCode());
});
this.updateBatchById(equipmentSpecificAlarmLogs);
}
}
} }
\ No newline at end of file
...@@ -128,6 +128,11 @@ public class MqttReceiveServiceImpl implements MqttReceiveService { ...@@ -128,6 +128,11 @@ public class MqttReceiveServiceImpl implements MqttReceiveService {
*/ */
private final static String FHS_WirelessliquidDetector_WaterLevel = "FHS_WirelessliquidDetector_WaterLevel"; private final static String FHS_WirelessliquidDetector_WaterLevel = "FHS_WirelessliquidDetector_WaterLevel";
/**
* 水箱液位
*/
private final static String CAFS_WaterTank_WaterTankLevel = "CAFS_WaterTank_WaterTankLevel";
static EquipmentSpecificMapper equipmentSpecificMapper; static EquipmentSpecificMapper equipmentSpecificMapper;
@Autowired @Autowired
...@@ -366,6 +371,7 @@ public class MqttReceiveServiceImpl implements MqttReceiveService { ...@@ -366,6 +371,7 @@ public class MqttReceiveServiceImpl implements MqttReceiveService {
// 存储温度数据至内存中(火眼) // 存储温度数据至内存中(火眼)
iotDataListToCacheMap(iotDatalist); iotDataListToCacheMap(iotDatalist);
iotDatalist.forEach(iotDataVO -> { iotDatalist.forEach(iotDataVO -> {
boolean alarmFlag = false;
String indexKey = iotDataVO.getKey(); String indexKey = iotDataVO.getKey();
String indexValue = iotDataVO.getValue().toString(); String indexValue = iotDataVO.getValue().toString();
// 稳压泵启停信号处理 // 稳压泵启停信号处理
...@@ -405,19 +411,29 @@ public class MqttReceiveServiceImpl implements MqttReceiveService { ...@@ -405,19 +411,29 @@ public class MqttReceiveServiceImpl implements MqttReceiveService {
// 火眼数据构造告警指标逻辑 // 火眼数据构造告警指标逻辑
equipmentSpecificIndex = handleTemperatureAlarm(equipmentSpeIndex, iotDatalist); equipmentSpecificIndex = handleTemperatureAlarm(equipmentSpeIndex, iotDatalist);
// 指标告警处理 //管网压力、泡沫罐信息、水箱液位告警处理
if (equipmentSpecificIndex.getIsAlarm() != null && 1 == equipmentSpecificIndex.getIsAlarm()) {
equipmentSpecificAlarms.addAll(createIndexAlarmRecord(equipmentSpecificIndex));
}
//管网压力和泡沫罐信息处理
if (iotDataVO.getKey().toLowerCase().equals(CAFS_FoamTank_FoamTankLevel.toLowerCase()) || if (iotDataVO.getKey().toLowerCase().equals(CAFS_FoamTank_FoamTankLevel.toLowerCase()) ||
FHS_PipePressureDetector_PipePressure.toLowerCase().equals(iotDataVO.getKey().toLowerCase())) { FHS_PipePressureDetector_PipePressure.toLowerCase().equals(iotDataVO.getKey().toLowerCase()) ||
doFoamTankLevel(iotDataVO, equipmentSpecificIndex); iotDataVO.getKey().toLowerCase().equals(CAFS_WaterTank_WaterTankLevel.toLowerCase())) {
alarmFlag = doFoamTankLevel(iotDataVO, equipmentSpecificIndex);
} }
//消防水池液位处理 //消防水池液位处理
if (iotDataVO.getKey().toLowerCase().equals(FHS_FirePoolDevice_WaterLevel.toLowerCase()) || if (iotDataVO.getKey().toLowerCase().equals(FHS_FirePoolDevice_WaterLevel.toLowerCase()) ||
iotDataVO.getKey().toLowerCase().equals(FHS_WirelessliquidDetector_WaterLevel.toLowerCase())) { iotDataVO.getKey().toLowerCase().equals(FHS_WirelessliquidDetector_WaterLevel.toLowerCase())) {
doWaterPoolLevel(iotDataVO, equipmentSpecificIndex); alarmFlag = doWaterPoolLevel(iotDataVO, equipmentSpecificIndex);
}
// 遥测数据生成告警事件、日志处理
if (iotDataVO.getKey().toLowerCase().equals(CAFS_FoamTank_FoamTankLevel.toLowerCase()) ||
FHS_PipePressureDetector_PipePressure.toLowerCase().equals(iotDataVO.getKey().toLowerCase()) ||
iotDataVO.getKey().toLowerCase().equals(CAFS_WaterTank_WaterTankLevel.toLowerCase()) ||
iotDataVO.getKey().toLowerCase().equals(FHS_FirePoolDevice_WaterLevel.toLowerCase()) ||
iotDataVO.getKey().toLowerCase().equals(FHS_WirelessliquidDetector_WaterLevel.toLowerCase())) {
handlingAlarms(equipmentSpecificIndex, alarmFlag);
}
// 指标告警处理
if (equipmentSpecificIndex.getIsAlarm() != null && 1 == equipmentSpecificIndex.getIsAlarm()) {
equipmentSpecificAlarms.addAll(createIndexAlarmRecord(equipmentSpecificIndex));
} }
// 遥测遥信数据推送云端kafka // 遥测遥信数据推送云端kafka
JSONObject jsonObjectXf = new JSONObject(); JSONObject jsonObjectXf = new JSONObject();
...@@ -568,16 +584,22 @@ public class MqttReceiveServiceImpl implements MqttReceiveService { ...@@ -568,16 +584,22 @@ public class MqttReceiveServiceImpl implements MqttReceiveService {
} }
private void handlingAlarms(EquipmentSpecificIndex equipmentSpecificIndex, boolean alarmFlag){
equipmentSpecificIndex.setIsAlarm(1);
equipmentSpecificIndex.setValue(String.valueOf(alarmFlag));
}
/** /**
* 泡沫罐 或 者管网压力 消息发送 * 泡沫罐 或 者管网压力 消息发送
* @param iotDataVO iotDataVO * @param iotDataVO iotDataVO
* @param equipmentSpecificIndex equipmentSpecificIndex * @param equipmentSpecificIndex equipmentSpecificIndex
*/ */
private void doFoamTankLevel(IotDataVO iotDataVO, EquipmentSpecificIndex equipmentSpecificIndex) { private boolean doFoamTankLevel(IotDataVO iotDataVO, EquipmentSpecificIndex equipmentSpecificIndex) {
boolean alarmFlag = false;
MessageModel model = new MessageModel(); MessageModel model = new MessageModel();
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
if (iotDataVO.getKey().toLowerCase().equals(CAFS_FoamTank_FoamTankLevel.toLowerCase())) { if (iotDataVO.getKey().toLowerCase().equals(CAFS_FoamTank_FoamTankLevel.toLowerCase()) || iotDataVO.getKey().toLowerCase().equals(CAFS_WaterTank_WaterTankLevel.toLowerCase())) {
map = fireFightingSystemMapper.getFoamTankLevel(equipmentSpecificIndex.getEquipmentSpecificId()); map = fireFightingSystemMapper.getFoamTankLevel(equipmentSpecificIndex.getEquipmentSpecificId());
} else { } else {
map = fireFightingSystemMapper.getPipeNetwork(equipmentSpecificIndex.getEquipmentSpecificId()); map = fireFightingSystemMapper.getPipeNetwork(equipmentSpecificIndex.getEquipmentSpecificId());
...@@ -620,7 +642,9 @@ public class MqttReceiveServiceImpl implements MqttReceiveService { ...@@ -620,7 +642,9 @@ public class MqttReceiveServiceImpl implements MqttReceiveService {
log.error("调用平台出错!"); log.error("调用平台出错!");
} }
log.info(String.format("调用平台消息服务成功:%s", JSON.toJSONString(model))); log.info(String.format("调用平台消息服务成功:%s", JSON.toJSONString(model)));
alarmFlag = true;
} }
return alarmFlag;
} }
/** /**
...@@ -629,7 +653,8 @@ public class MqttReceiveServiceImpl implements MqttReceiveService { ...@@ -629,7 +653,8 @@ public class MqttReceiveServiceImpl implements MqttReceiveService {
* @param iotDataVO iotDataVO * @param iotDataVO iotDataVO
* @param equipmentSpecificIndex equipmentSpecificIndex * @param equipmentSpecificIndex equipmentSpecificIndex
*/ */
private void doWaterPoolLevel(IotDataVO iotDataVO, EquipmentSpecificIndex equipmentSpecificIndex) { private boolean doWaterPoolLevel(IotDataVO iotDataVO, EquipmentSpecificIndex equipmentSpecificIndex) {
boolean alarmFlag = false;
MessageModel model = new MessageModel(); MessageModel model = new MessageModel();
Map<String, Object> map = fireFightingSystemMapper.getWaterPoolLevel(equipmentSpecificIndex.getEquipmentSpecificId()); Map<String, Object> map = fireFightingSystemMapper.getWaterPoolLevel(equipmentSpecificIndex.getEquipmentSpecificId());
if (!ObjectUtils.isEmpty(map)) { if (!ObjectUtils.isEmpty(map)) {
...@@ -682,8 +707,10 @@ public class MqttReceiveServiceImpl implements MqttReceiveService { ...@@ -682,8 +707,10 @@ public class MqttReceiveServiceImpl implements MqttReceiveService {
Token token = remoteSecurityService.getServerToken(); Token token = remoteSecurityService.getServerToken();
systemctlFeign.create(token.getAppKey(), token.getProduct(), token.getToke(), model); systemctlFeign.create(token.getAppKey(), token.getProduct(), token.getToke(), model);
log.info(String.format("调用平台消息服务成功:%s", JSON.toJSONString(model))); log.info(String.format("调用平台消息服务成功:%s", JSON.toJSONString(model)));
alarmFlag = true;
} }
} }
return alarmFlag;
} }
private BigDecimal getBigDecimal( Object value ) { private BigDecimal getBigDecimal( Object value ) {
...@@ -1523,6 +1550,12 @@ public class MqttReceiveServiceImpl implements MqttReceiveService { ...@@ -1523,6 +1550,12 @@ public class MqttReceiveServiceImpl implements MqttReceiveService {
// 2. 校验 // 2. 校验
if (!ObjectUtils.isEmpty(data.getUpdateDate())) { if (!ObjectUtils.isEmpty(data.getUpdateDate())) {
checkValueByDate(data, newDate, pressurePumpEnum); checkValueByDate(data, newDate, pressurePumpEnum);
}else {
// 稳压泵漏水告警恢复
List<EquipmentSpecificIndex> collect = equipmentSpeIndexList.stream().filter(item -> !ObjectUtils.isEmpty(item.getIotCode()) && item.getIotCode().equals(topicEntity.getIotCode())).collect(Collectors.toList());
if (!ObjectUtils.isEmpty(collect) && !ObjectUtils.isEmpty(collect.get(0)) && !ObjectUtils.isEmpty(collect.get(0).getEquipmentId())){
equipmentSpecificAlarmLogService.pressurePumpRestore(collect.get(0).getEquipmentId());
}
} }
}); });
} }
...@@ -1548,7 +1581,8 @@ public class MqttReceiveServiceImpl implements MqttReceiveService { ...@@ -1548,7 +1581,8 @@ public class MqttReceiveServiceImpl implements MqttReceiveService {
StringUtil.isNotEmpty(e.getValue()) && e.getIotCode().equals(iotCode) && pressurePumpStart.equals(e.getEquipmentIndexKey())).sorted(Comparator.comparing(EquipmentSpecificIndex::getUpdateDate).reversed()) StringUtil.isNotEmpty(e.getValue()) && e.getIotCode().equals(iotCode) && pressurePumpStart.equals(e.getEquipmentIndexKey())).sorted(Comparator.comparing(EquipmentSpecificIndex::getUpdateDate).reversed())
.collect(Collectors.toList()); .collect(Collectors.toList());
if (!CollectionUtils.isEmpty(lastStop)) { if (!CollectionUtils.isEmpty(lastStop)) {
equipmentSpecificIndex = getIotDate(equipmentSpecificIndex, lastStop, prefix, suffix , "false"); EquipmentSpecificIndex aFalse = getIotDate(equipmentSpecificIndex, lastStop, prefix, suffix, "false");
BeanUtils.copyProperties(aFalse, equipmentSpecificIndex);
} }
break; break;
case LAST_START: case LAST_START:
...@@ -1562,7 +1596,9 @@ public class MqttReceiveServiceImpl implements MqttReceiveService { ...@@ -1562,7 +1596,9 @@ public class MqttReceiveServiceImpl implements MqttReceiveService {
StringUtil.isNotEmpty(e.getValue()) && e.getIotCode().equals(iotCode) && pressurePumpStart.equals(e.getEquipmentIndexKey())).sorted(Comparator.comparing(EquipmentSpecificIndex::getUpdateDate).reversed()) StringUtil.isNotEmpty(e.getValue()) && e.getIotCode().equals(iotCode) && pressurePumpStart.equals(e.getEquipmentIndexKey())).sorted(Comparator.comparing(EquipmentSpecificIndex::getUpdateDate).reversed())
.collect(Collectors.toList()); .collect(Collectors.toList());
if (!CollectionUtils.isEmpty(lastStart)) { if (!CollectionUtils.isEmpty(lastStart)) {
equipmentSpecificIndex = getIotDate(equipmentSpecificIndex, lastStart, prefix, suffix, "true"); EquipmentSpecificIndex aTrue = getIotDate(equipmentSpecificIndex, lastStart, prefix, suffix, "true");
BeanUtils.copyProperties(aTrue, equipmentSpecificIndex);
} }
break; break;
case LATELY_STOP: case LATELY_STOP:
...@@ -1570,7 +1606,9 @@ public class MqttReceiveServiceImpl implements MqttReceiveService { ...@@ -1570,7 +1606,9 @@ public class MqttReceiveServiceImpl implements MqttReceiveService {
StringUtil.isNotEmpty(e.getValue()) && pressurePumpStart.equals(e.getEquipmentIndexKey())).sorted(Comparator.comparing(EquipmentSpecificIndex::getUpdateDate).reversed()) StringUtil.isNotEmpty(e.getValue()) && pressurePumpStart.equals(e.getEquipmentIndexKey())).sorted(Comparator.comparing(EquipmentSpecificIndex::getUpdateDate).reversed())
.collect(Collectors.toList()); .collect(Collectors.toList());
if (!CollectionUtils.isEmpty(latelyStop)) { if (!CollectionUtils.isEmpty(latelyStop)) {
equipmentSpecificIndex = getIotDate(equipmentSpecificIndex, latelyStop, prefix, null, "false"); EquipmentSpecificIndex aFalse = getIotDate(equipmentSpecificIndex, latelyStop, prefix, null, "false");
BeanUtils.copyProperties(aFalse, equipmentSpecificIndex);
} }
break; break;
case LATELY_START: case LATELY_START:
...@@ -1578,7 +1616,9 @@ public class MqttReceiveServiceImpl implements MqttReceiveService { ...@@ -1578,7 +1616,9 @@ public class MqttReceiveServiceImpl implements MqttReceiveService {
StringUtil.isNotEmpty(e.getValue()) && pressurePumpStart.equals(e.getEquipmentIndexKey())).sorted(Comparator.comparing(EquipmentSpecificIndex::getUpdateDate).reversed()) StringUtil.isNotEmpty(e.getValue()) && pressurePumpStart.equals(e.getEquipmentIndexKey())).sorted(Comparator.comparing(EquipmentSpecificIndex::getUpdateDate).reversed())
.collect(Collectors.toList()); .collect(Collectors.toList());
if (!CollectionUtils.isEmpty(latelyStart)) { if (!CollectionUtils.isEmpty(latelyStart)) {
equipmentSpecificIndex = getIotDate(equipmentSpecificIndex, latelyStart, prefix, null, "true"); EquipmentSpecificIndex aTrue = getIotDate(equipmentSpecificIndex, latelyStart, prefix, null, "true");
BeanUtils.copyProperties(aTrue, equipmentSpecificIndex);
} }
break; break;
case PUMP_START_TIME: case PUMP_START_TIME:
...@@ -1685,6 +1725,8 @@ public class MqttReceiveServiceImpl implements MqttReceiveService { ...@@ -1685,6 +1725,8 @@ public class MqttReceiveServiceImpl implements MqttReceiveService {
marqueeData.setType("漏水提醒"); marqueeData.setType("漏水提醒");
marqueeData.setCreateDate(new Date()); marqueeData.setCreateDate(new Date());
marqueeDataMapper.insert(marqueeData); marqueeDataMapper.insert(marqueeData);
// 稳压泵告警事件生成
equipmentSpecificAlarmLogService.pressurePumpDisposeAlarm(data.getEquipmentId());
} }
switch (pumpMessageEnum) { switch (pumpMessageEnum) {
...@@ -1765,6 +1807,7 @@ public class MqttReceiveServiceImpl implements MqttReceiveService { ...@@ -1765,6 +1807,7 @@ public class MqttReceiveServiceImpl implements MqttReceiveService {
parameter.put("remoteSecurityService", remoteSecurityService); parameter.put("remoteSecurityService", remoteSecurityService);
parameter.put("systemctlFeign", systemctlFeign); parameter.put("systemctlFeign", systemctlFeign);
parameter.put("marqueeDataMapper", marqueeDataMapper); parameter.put("marqueeDataMapper", marqueeDataMapper);
parameter.put("equipmentSpecificAlarmLogService", equipmentSpecificAlarmLogService);
QuartzManager.addJob(jobName,PUMP_JOB_GROUP_NAME,triggerName,PUMP_TRIGGER_GROUP_NAME, PumpSendMessage.class,cron,parameter); QuartzManager.addJob(jobName,PUMP_JOB_GROUP_NAME,triggerName,PUMP_TRIGGER_GROUP_NAME, PumpSendMessage.class,cron,parameter);
} }
} }
......
...@@ -230,4 +230,21 @@ ...@@ -230,4 +230,21 @@
select equipment_detail_id from wl_equipment_specific where id = #{id}) select equipment_detail_id from wl_equipment_specific where id = #{id})
) )
</select> </select>
<select id="getMessage" resultType="com.yeejoin.equipmanage.common.entity.EquipmentIndex">
SELECT
wei.id,
wei.equipment_id as equipmentId,
wei.name_key as perfQuotaDefinitionId,
wei.emergency_level as emergencyLevel,
wei.emergency_level_describe as emergencyLevelDescribe,
wei.emergency_level_color as emergencyLevelColor,
wei.type_code as typeCode ,
wei.name as perfQuotaName
FROM
`wl_equipment_index` wei
LEFT JOIN wl_equipment_specific_index wesi ON wei.id = wesi.equipment_index_id
WHERE
wesi.equipment_specific_id = #{equipmentSpecificId}
AND wesi.equipment_index_key = #{equipmentIndexKey}
</select>
</mapper> </mapper>
...@@ -64,39 +64,39 @@ ...@@ -64,39 +64,39 @@
wles.biz_org_code like concat (#{param.bizOrgCode},'%') wles.biz_org_code like concat (#{param.bizOrgCode},'%')
</if> </if>
</where> </where>
UNION ALL -- UNION ALL
SELECT -- SELECT
equipment_specific_id id, -- equipment_specific_id id,
NULL org_code, -- NULL org_code,
null fireEquipmentId, -- null fireEquipmentId,
NULL equipDetailId, -- NULL equipDetailId,
NULL fireEquipmentCode, -- NULL fireEquipmentCode,
null systemId, -- null systemId,
NULL fireEquipmentName, -- NULL fireEquipmentName,
NULL alamContent, -- NULL alamContent,
NULL handleStatus, -- NULL handleStatus,
NULL cleanStatus, -- NULL cleanStatus,
NULL handleType, -- NULL handleType,
NULL fireEquipmentIndexId, -- NULL fireEquipmentIndexId,
NULL fireEquipmentSpecificIndexKey, -- NULL fireEquipmentSpecificIndexKey,
type fireEquipmentSpecificIndexName, -- type fireEquipmentSpecificIndexName,
NULL buildId, -- NULL buildId,
NULL imgUrl, -- NULL imgUrl,
NULL fireEquipmentPointValue, -- NULL fireEquipmentPointValue,
NULL typeCode, -- NULL typeCode,
NULL type, -- NULL type,
date_format( create_date, '%Y-%m-%d %H:%i:%s' ) createDate, -- date_format( create_date, '%Y-%m-%d %H:%i:%s' ) createDate,
NULL warehouseStructureName, -- NULL warehouseStructureName,
NULL equipmentName, -- NULL equipmentName,
NAME equipmentSpecificName, -- NAME equipmentSpecificName,
position, -- position,
id messageId, -- id messageId,
message_type messageType, -- message_type messageType,
is_read isRead -- is_read isRead
FROM -- FROM
wl_marquee_data -- wl_marquee_data
WHERE -- WHERE
is_read = '0' -- is_read = '0'
ORDER BY createDate DESC ORDER BY createDate DESC
</select> </select>
</mapper> </mapper>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment