Commit c5068618 authored by chenzhao's avatar chenzhao

修改代码

parent 4cd7239f
package com.yeejoin.amos.boot.module.jxiop.api.Enum;
import lombok.AllArgsConstructor;
import lombok.Getter;
@Getter
@AllArgsConstructor
public enum AlarmDesc {
ZXYGZ("运行","正常运行"),
FXYGZ("停机","正常停机"),
ZXWGZ("限额运行","限功率"),
FXWGZ("降额运行","限电停机"),
ZGXWG("告警运行","告警运行"),
ZZXYG("故障停机","故障停机"),
ZRXWG("待机","待机状态"),
ZFXYG("通讯故障","通讯中断");
private String name;
private String code;
public static String getCode(String name) {
for (AlarmDesc electricQuantity : AlarmDesc.values())
{
if (electricQuantity.getName().equals(name))
{
return electricQuantity.getCode();
}
}
return null;
}
}
package com.yeejoin.amos.boot.module.jxiop.biz.dto;
import lombok.Data;
import lombok.experimental.Accessors;
import java.util.Date;
@Data
@Accessors(chain = true)
public class EquipAlarmEventDto {
private Long sequenceNumber;
private Date createdTime;
private String gatewayId;
private String alarmDesc;
private String equipName;
private long sort;
}
package com.yeejoin.amos.boot.module.jxiop.biz.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.experimental.Accessors;
import java.util.Date;
@Data
@Accessors(chain = true)
@TableName("equip_alarm_event")
public class EquipAlarmEvent {
@TableField("sequence_nbr")
private Long sequenceNumber;
@TableField("created_time")
private Date createdTime;
@TableField("equip_index")
private String equipIndex;
@TableField("alarm_desc")
private String alarmDesc;
@TableField("gateway_id")
private String gatewayId;
@TableField("equip_name")
private String equipName;
@TableField("sort")
private long sort;
}
package com.yeejoin.amos.boot.module.jxiop.biz.mapper2;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.boot.module.jxiop.biz.entity.EquipAlarmEvent;
import java.util.List;
public interface EquipAlarmEventMapper extends BaseMapper<EquipAlarmEvent> {
String getLastDataBySort(String gatewayId);
List<EquipAlarmEvent> getOldDataBySort(String sort,String gatewayId);
}
package com.yeejoin.amos.boot.module.jxiop.biz.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.yeejoin.amos.boot.module.jxiop.biz.dto.ColModel;
import com.yeejoin.amos.boot.module.jxiop.biz.dto.DataGridMock;
import com.yeejoin.amos.boot.module.jxiop.biz.dto.EquipAlarmEventDto;
import com.yeejoin.amos.boot.module.jxiop.biz.dto.ResultsData;
import com.yeejoin.amos.boot.module.jxiop.biz.entity.EquipAlarmEvent;
import com.yeejoin.amos.boot.module.jxiop.biz.mapper2.EquipAlarmEventMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import java.util.Arrays;
import java.util.List;
@Service
public class EquipAlarmEventServiceImpl extends BaseService<EquipAlarmEventDto, EquipAlarmEvent, EquipAlarmEventMapper> {
@Autowired
EquipAlarmEventMapper equipAlarmEventMapper;
public ResultsData getEventByEquipIndex(String gatewayId, int current, int size, String equipIndex) {
LambdaQueryWrapper<EquipAlarmEvent> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(EquipAlarmEvent::getEquipIndex, equipIndex);
queryWrapper.eq(EquipAlarmEvent::getGatewayId, gatewayId);
queryWrapper.orderByDesc(EquipAlarmEvent::getCreatedTime);
List<EquipAlarmEvent> equipAlarmEvents = equipAlarmEventMapper.selectList(queryWrapper);
DataGridMock DataGridMock = new DataGridMock(current, equipAlarmEvents.size(), false, current, equipAlarmEvents);
ColModel colModelEventMovement = new ColModel("equipName", "equipName", "设备名", "设备名", "dataGrid", "equipName");
ColModel colModelStationName = new ColModel("alarmDesc", "alarmDesc", "事件描述", "事件描述", "dataGrid", "alarmDesc");
ColModel colModelEventDesc = new ColModel("createdTime", "createdTime", "告警时间", "告警时间", "dataGrid", "createdTime");
List<ColModel> listColModel = Arrays.asList(colModelEventMovement, colModelStationName, colModelEventDesc);
ResultsData resultsData = new ResultsData(DataGridMock, listColModel);
return resultsData;
}
}
...@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; ...@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.utils.DateUtils; import com.yeejoin.amos.boot.biz.common.utils.DateUtils;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity; import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import com.yeejoin.amos.boot.biz.common.utils.DateUtils; import com.yeejoin.amos.boot.biz.common.utils.DateUtils;
import com.yeejoin.amos.boot.module.jxiop.api.Enum.AlarmDesc;
import com.yeejoin.amos.boot.module.jxiop.api.Enum.ElectricQuantity; import com.yeejoin.amos.boot.module.jxiop.api.Enum.ElectricQuantity;
import com.yeejoin.amos.boot.module.jxiop.api.Enum.KGName; import com.yeejoin.amos.boot.module.jxiop.api.Enum.KGName;
import com.yeejoin.amos.boot.module.jxiop.api.dto.IndexDto; import com.yeejoin.amos.boot.module.jxiop.api.dto.IndexDto;
...@@ -22,10 +23,7 @@ import com.yeejoin.amos.boot.module.jxiop.api.mapper.StationBasicMapper; ...@@ -22,10 +23,7 @@ import com.yeejoin.amos.boot.module.jxiop.api.mapper.StationBasicMapper;
import com.yeejoin.amos.boot.module.jxiop.biz.constants.CommonConstans; import com.yeejoin.amos.boot.module.jxiop.biz.constants.CommonConstans;
import com.yeejoin.amos.boot.module.jxiop.biz.dto.*; import com.yeejoin.amos.boot.module.jxiop.biz.dto.*;
import com.yeejoin.amos.boot.module.jxiop.biz.entity.*; import com.yeejoin.amos.boot.module.jxiop.biz.entity.*;
import com.yeejoin.amos.boot.module.jxiop.biz.mapper2.AlarmEventMapper; import com.yeejoin.amos.boot.module.jxiop.biz.mapper2.*;
import com.yeejoin.amos.boot.module.jxiop.biz.mapper2.SwitchPictureMapper;
import com.yeejoin.amos.boot.module.jxiop.biz.mapper2.SystemEnumMapper;
import com.yeejoin.amos.boot.module.jxiop.biz.mapper2.TemporaryDataMapper;
import com.yeejoin.amos.boot.module.jxiop.biz.utils.InfluxDButils; import com.yeejoin.amos.boot.module.jxiop.biz.utils.InfluxDButils;
import com.yeejoin.amos.boot.module.jxiop.biz.service.IMonitorFanIndicator; import com.yeejoin.amos.boot.module.jxiop.biz.service.IMonitorFanIndicator;
import com.yeejoin.amos.component.influxdb.InfluxdbUtil; import com.yeejoin.amos.component.influxdb.InfluxdbUtil;
...@@ -83,6 +81,10 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator { ...@@ -83,6 +81,10 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
@Autowired @Autowired
CommonServiceImpl commonServiceImpl; CommonServiceImpl commonServiceImpl;
@Autowired @Autowired
EquipAlarmEventMapper equipAlarmEventMapper;
@Autowired
EquipAlarmEventServiceImpl equipAlarmEventService;
@Autowired
EmqKeeper emqKeeper; EmqKeeper emqKeeper;
@Value("${pictureUrl}") @Value("${pictureUrl}")
String pictureUrl; String pictureUrl;
...@@ -1708,14 +1710,14 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator { ...@@ -1708,14 +1710,14 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
map.put("valueLabel" + number, indicatorsDto.getValueLabel()); map.put("valueLabel" + number, indicatorsDto.getValueLabel());
maps.add(map); maps.add(map);
} }
TpriDmpDatabook tpriDmpDatabook = tpriDmpDatabookServiceImpl.getTpriDmpDatabookByDataName("集电线"); List<Map<String, Object>> dataMaps = sjglZsjZsbtzServiceImpl.sjglZsjZsbtzMapper.getStationInfoMapByStationGFWerks(werks,"集电线");
List<Map<String, Object>> dataMaps = sjglZsjZsbtzServiceImpl.sjglZsjZsbtzMapper.getStationInfoMapByStationGFWerks(werks, tpriDmpDatabook.getDataid().toString());
int i = 0; int i = 0;
//逆变器需要根据所属集电线分类组装 下面循环是将同一子阵下的不同逆变器组装为消息数据 //逆变器需要根据所属集电线分类组装 下面循环是将同一子阵下的不同逆变器组装为消息数据
for (Map<String, Object> dataMap : dataMaps) { for (Map<String, Object> dataMap : dataMaps) {
List<Map<String, String>> statusMaps = new ArrayList<>(); List<Map<String, String>> statusMaps = new ArrayList<>();
String equipNum = dataMap.get("equipNum").toString(); String equipNum = dataMap.get("equipNum").toString();
for (String num : nums) { for (String num : nums) {
int intNum = Integer.parseInt(num);
Map<String, String> map = new HashMap<>(); Map<String, String> map = new HashMap<>();
map.put("titie", "#" + num); map.put("titie", "#" + num);
for (Map<String, String> stringMap : maps) { for (Map<String, String> stringMap : maps) {
...@@ -1723,9 +1725,14 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator { ...@@ -1723,9 +1725,14 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
map.putAll(stringMap); map.putAll(stringMap);
} }
} }
if (equipNum.contains(num)) { List<String> list = Arrays.asList(equipNum.split(","));
statusMaps.add(map);
} list.forEach(e->{
if ( Integer.parseInt(e) == intNum){
statusMaps.add(map);
}
});
} }
IPage<Map<String, String>> result = new Page<>(); IPage<Map<String, String>> result = new Page<>();
result.setRecords(statusMaps); result.setRecords(statusMaps);
...@@ -1733,7 +1740,7 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator { ...@@ -1733,7 +1740,7 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
result.setTotal(statusMaps.size()); result.setTotal(statusMaps.size());
i += 1; i += 1;
try { try {
emqKeeper.getMqttClient().publish(stationId + "/fj/group" + i, JSON.toJSONString(result).getBytes(), 0, false); emqKeeper.getMqttClient().publish(stationId + "/gf/group/" + i, JSON.toJSONString(result).getBytes(), 0, false);
} catch (MqttException e) { } catch (MqttException e) {
log.info("消息发送失败"); log.info("消息发送失败");
e.printStackTrace(); e.printStackTrace();
...@@ -1975,5 +1982,37 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator { ...@@ -1975,5 +1982,37 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
deaviationRateDtoPage.setRecords(deaviationRateDtoList); deaviationRateDtoPage.setRecords(deaviationRateDtoList);
return deaviationRateDtoPage; return deaviationRateDtoPage;
} }
public void addNbqAlarmEvent(String gatewayId) {
String sql = " SELECT * FROM indicators_" + gatewayId + " WHERE (equipmentIndexName ='待机' or equipmentIndexName ='停机' or equipmentIndexName ='告警运行' or equipmentIndexName ='限额运行' or equipmentIndexName ='降额运行' or equipmentIndexName ='故障停机'or equipmentIndexName ='通讯故障'or equipmentIndexName ='运行') and value = 'true'";
List<IndicatorsDto> indicatorsDtoList = influxDButils.getListData(sql, IndicatorsDto.class);
List<EquipAlarmEvent> newEquipAlarmEvents = new ArrayList<>();
List<EquipAlarmEvent> newEquipAlarmEvent = new ArrayList<>();
long time = new Date().getTime();
for (IndicatorsDto indicatorsDto : indicatorsDtoList) {
EquipAlarmEvent equipAlarmEvent = new EquipAlarmEvent();
equipAlarmEvent.setEquipIndex(indicatorsDto.getEquipmentNumber());
equipAlarmEvent.setAlarmDesc(AlarmDesc.getCode(indicatorsDto.getEquipmentIndexName()));
equipAlarmEvent.setCreatedTime(DateUtils.longStr2Date(indicatorsDto.getCreatedTime()));
equipAlarmEvent.setGatewayId(gatewayId);
equipAlarmEvent.setSort(time);
newEquipAlarmEvents.add(equipAlarmEvent);
newEquipAlarmEvent.add(equipAlarmEvent);
}
String lastSort = equipAlarmEventMapper.getLastDataBySort(gatewayId);
if (null != lastSort ) {
List<EquipAlarmEvent> oldEquipAlarmEvents = equipAlarmEventMapper.getOldDataBySort(lastSort,gatewayId);
for (EquipAlarmEvent oldEquipAlarmEvent : oldEquipAlarmEvents) {
for (EquipAlarmEvent equipAlarmEvent : newEquipAlarmEvents) {
if (oldEquipAlarmEvent.getEquipIndex().equals(equipAlarmEvent.getEquipIndex()) && oldEquipAlarmEvent.getAlarmDesc().equals(equipAlarmEvent.getAlarmDesc())){
newEquipAlarmEvent.remove(equipAlarmEvent);
}
}
}
}
equipAlarmEventService.saveBatch(newEquipAlarmEvent);
}
} }
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yeejoin.amos.boot.module.jxiop.biz.mapper2.EquipAlarmEventMapper">
<select id="getLastDataBySort" resultType="java.lang.String">
select
sort
from
equip_alarm_event
<where>
<if test="gatewayId != null and gatewayId != ''">
gateway_id = #{gatewayId}
</if>
</where>
order by sort desc limit 1
</select>
<select id="getOldDataBySort" resultType="com.yeejoin.amos.boot.module.jxiop.biz.entity.EquipAlarmEvent">
select
*
from
equip_alarm_event
<where>
<if test="sort != null and sort != ''">
sort = #{sort}
</if>
AND gateway_id = #{gatewayId}
</where>
</select>
</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