mock添加临边防护-设备实时数据时候也添加报警数据和bug修复

This commit is contained in:
guoshengxiong 2025-11-04 16:33:15 +08:00
parent 9db2d419bd
commit f717d41732
5 changed files with 75 additions and 56 deletions

View File

@ -12,6 +12,7 @@ import com.zhgd.xmgl.modules.frontier.entity.FrontierProtectionDevCurrentData;
import com.zhgd.xmgl.modules.frontier.entity.MockFrontierProtectionDevCurrentDataConfig;
import com.zhgd.xmgl.modules.frontier.entity.qo.FrontierProtectionDevCurrentDataQO;
import com.zhgd.xmgl.modules.frontier.service.FrontierProtectionDevCurrentDataService;
import com.zhgd.xmgl.modules.frontier.service.IFrontierProtectionDevAlarmService;
import com.zhgd.xmgl.modules.frontier.service.IMockFrontierProtectionDevCurrentDataConfigService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
@ -50,6 +51,9 @@ public class FrontierProtectionDevCurrentDataController {
@Lazy
@Autowired
private IMockFrontierProtectionDevCurrentDataConfigService mockFrontierProtectionDevCurrentDataConfigService;
@Lazy
@Autowired
private IFrontierProtectionDevAlarmService frontierProtectionDevAlarmService;
/**
* 分页查询临边防护-设备实时数据
@ -211,11 +215,11 @@ public class FrontierProtectionDevCurrentDataController {
}
if (CollUtil.isNotEmpty(datas)) {
frontierProtectionDevCurrentDataService.saveBatch(datas);
frontierProtectionDevAlarmService.addAlarm(datas);
}
return Result.ok();
}
@ApiOperation(value = "批量删除临边防护-设备实时数据", notes = "批量删除临边防护-设备实时数据", httpMethod = "POST")
@ApiImplicitParam(name = "ids", value = "临边防护-设备实时数据ID字符串多个以,分割)", paramType = "body", required = true, dataType = "String")
@PostMapping(value = "/deleteBatch")

View File

@ -55,6 +55,9 @@
<if test="devSn != null and devSn != ''">
and dev_sn = #{devSn}
</if>
<if test="alarmType != null and alarmType != ''">
and alarm_type = #{alarmType}
</if>
group by x
</select>

View File

@ -1,10 +1,11 @@
package com.zhgd.xmgl.modules.frontier.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zhgd.xmgl.base.entity.vo.SectorOneVo;
import com.zhgd.xmgl.base.entity.vo.TrendOneVo;
import com.zhgd.xmgl.modules.frontier.entity.FrontierProtectionDevAlarm;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zhgd.xmgl.modules.frontier.entity.FrontierProtectionDevCurrentData;
import com.zhgd.xmgl.modules.frontier.entity.vo.CountFrontierProtectionDevAlarmVo;
import javax.servlet.http.HttpServletRequest;
@ -27,4 +28,11 @@ public interface IFrontierProtectionDevAlarmService extends IService<FrontierPro
List<TrendOneVo> countFrontierProtectionDevAlarmTrend(HashMap<String, Object> paramMap);
ArrayList<SectorOneVo> countAlarmType(HashMap<String, Object> paramMap);
/**
* 添加报警数据
*
* @param entities
*/
void addAlarm(List<FrontierProtectionDevCurrentData> entities);
}

View File

@ -9,10 +9,13 @@ import com.zhgd.jeecg.common.system.query.QueryGenerator;
import com.zhgd.xmgl.base.entity.vo.SectorOneVo;
import com.zhgd.xmgl.base.entity.vo.TrendOneVo;
import com.zhgd.xmgl.modules.frontier.entity.FrontierProtectionDevAlarm;
import com.zhgd.xmgl.modules.frontier.entity.FrontierProtectionDevCurrentData;
import com.zhgd.xmgl.modules.frontier.entity.vo.CountFrontierProtectionDevAlarmVo;
import com.zhgd.xmgl.modules.frontier.enums.AlarmEnum;
import com.zhgd.xmgl.modules.frontier.mapper.FrontierProtectionDevAlarmMapper;
import com.zhgd.xmgl.modules.frontier.service.IFrontierProtectionDevAlarmService;
import com.zhgd.xmgl.util.DateUtils;
import com.zhgd.xmgl.util.NumberUtils;
import com.zhgd.xmgl.util.RefUtil;
import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang3.StringUtils;
@ -73,4 +76,53 @@ public class FrontierProtectionDevAlarmServiceImpl extends ServiceImpl<FrontierP
public ArrayList<SectorOneVo> countAlarmType(HashMap<String, Object> paramMap) {
return baseMapper.countAlarmType(paramMap);
}
@Override
public void addAlarm(List<FrontierProtectionDevCurrentData> entities) {
for (FrontierProtectionDevCurrentData entity : entities) {
FrontierProtectionDevAlarm alarm = new FrontierProtectionDevAlarm();
alarm.setDevSn(entity.getDevSn());
alarm.setAlarmTime(entity.getReceiveTime());
alarm.setProjectSn(entity.getProjectSn());
if (AlarmEnum.PROXIMITY.getLrkAlarmType().equals(entity.getProximity())) {
insertAlarm(AlarmEnum.PROXIMITY, alarm);
}
if (AlarmEnum.PORT_STATUS1.getLrkAlarmType().equals(entity.getPortStatus1())) {
insertAlarm(AlarmEnum.PORT_STATUS1, alarm);
}
if (AlarmEnum.PORT_STATUS2.getLrkAlarmType().equals(entity.getPortStatus2())) {
insertAlarm(AlarmEnum.PORT_STATUS2, alarm);
}
if (AlarmEnum.MAG_STATUS1_ALARM.getLrkAlarmType().equals(entity.getMagStatus1())) {
insertAlarm(AlarmEnum.MAG_STATUS1_ALARM, alarm);
}
if (AlarmEnum.MAG_STATUS1_DISABLED.getLrkAlarmType().equals(entity.getMagStatus1())) {
insertAlarm(AlarmEnum.MAG_STATUS1_DISABLED, alarm);
}
if (AlarmEnum.MAG_STATUS2_ALARM.getLrkAlarmType().equals(entity.getMagStatus2())) {
insertAlarm(AlarmEnum.MAG_STATUS2_ALARM, alarm);
}
if (AlarmEnum.MAG_STATUS2_DISABLED.getLrkAlarmType().equals(entity.getMagStatus2())) {
insertAlarm(AlarmEnum.MAG_STATUS2_DISABLED, alarm);
}
if (AlarmEnum.ANTI_CROSS_ALARM.getLrkAlarmType().equals(entity.getAntiCross())) {
insertAlarm(AlarmEnum.ANTI_CROSS_ALARM, alarm);
}
if (AlarmEnum.ANTI_CROSS_DISABLED.getLrkAlarmType().equals(entity.getAntiCross())) {
insertAlarm(AlarmEnum.ANTI_CROSS_DISABLED, alarm);
}
//电量不足报警
if (entity.getBattery() != null && NumberUtils.le(entity.getBattery().doubleValue(), 30D)) {
insertAlarm(AlarmEnum.LOW_POWER, alarm);
}
}
}
private void insertAlarm(AlarmEnum proximity, FrontierProtectionDevAlarm alarm) {
alarm.setId(null);
alarm.setMonitorObject(proximity.getName());
alarm.setAlarmDetail(proximity.getName() + proximity.getAlarmName());
alarm.setAlarmType(proximity.getAlarmType());
frontierProtectionDevAlarmMapper.insert(alarm);
}
}

View File

@ -13,24 +13,21 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zhgd.jeecg.common.execption.OpenAlertException;
import com.zhgd.xmgl.modules.frontier.entity.FrontierProtectionDev;
import com.zhgd.xmgl.modules.frontier.entity.FrontierProtectionDevAlarm;
import com.zhgd.xmgl.modules.frontier.entity.FrontierProtectionDevCurrentData;
import com.zhgd.xmgl.modules.frontier.entity.qo.FrontierProtectionDevCurrentDataQO;
import com.zhgd.xmgl.modules.frontier.enums.AlarmEnum;
import com.zhgd.xmgl.modules.frontier.mapper.FrontierProtectionDevAlarmMapper;
import com.zhgd.xmgl.modules.frontier.mapper.FrontierProtectionDevCurrentDataMapper;
import com.zhgd.xmgl.modules.frontier.mapper.FrontierProtectionDevMapper;
import com.zhgd.xmgl.modules.frontier.service.FrontierProtectionDevCurrentDataService;
import com.zhgd.xmgl.modules.location.entity.LocationData;
import com.zhgd.xmgl.util.NumberUtils;
import com.zhgd.xmgl.modules.frontier.service.IFrontierProtectionDevAlarmService;
import com.zhgd.xmgl.util.RefUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.MapUtils;
import org.apache.commons.lang3.StringUtils;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.servlet.ModelAndView;
@ -57,6 +54,9 @@ public class FrontierProtectionDevCurrentDataServiceImpl extends ServiceImpl<Fro
private FrontierProtectionDevMapper frontierProtectionDevMapper;
@Autowired
private FrontierProtectionDevAlarmMapper frontierProtectionDevAlarmMapper;
@Lazy
@Autowired
private IFrontierProtectionDevAlarmService frontierProtectionDevAlarmService;
@Override
public IPage<FrontierProtectionDevCurrentData> selectPageInfo(Page<FrontierProtectionDevCurrentData> page, FrontierProtectionDevCurrentDataQO frontierProtectionDevCurrentDataQo) {
@ -120,58 +120,10 @@ public class FrontierProtectionDevCurrentDataServiceImpl extends ServiceImpl<Fro
List<FrontierProtectionDevCurrentData> entities = buildDevCurrentDataByLrkArray(devDataArray);
frontierProtectionDevCurrentDataMapper.insertOrUpdateBatch(entities);
//添加报警
addAlarm(entities);
frontierProtectionDevAlarmService.addAlarm(entities);
}
}
private void addAlarm(List<FrontierProtectionDevCurrentData> entities) {
for (FrontierProtectionDevCurrentData entity : entities) {
FrontierProtectionDevAlarm alarm = new FrontierProtectionDevAlarm();
alarm.setDevSn(entity.getDevSn());
alarm.setAlarmTime(entity.getReceiveTime());
alarm.setProjectSn(entity.getProjectSn());
if (AlarmEnum.PROXIMITY.getLrkAlarmType().equals(entity.getProximity())) {
insertAlarm(AlarmEnum.PROXIMITY, alarm);
}
if (AlarmEnum.PORT_STATUS1.getLrkAlarmType().equals(entity.getPortStatus1())) {
insertAlarm(AlarmEnum.PORT_STATUS1, alarm);
}
if (AlarmEnum.PORT_STATUS2.getLrkAlarmType().equals(entity.getPortStatus2())) {
insertAlarm(AlarmEnum.PORT_STATUS2, alarm);
}
if (AlarmEnum.MAG_STATUS1_ALARM.getLrkAlarmType().equals(entity.getMagStatus1())) {
insertAlarm(AlarmEnum.MAG_STATUS1_ALARM, alarm);
}
if (AlarmEnum.MAG_STATUS1_DISABLED.getLrkAlarmType().equals(entity.getMagStatus1())) {
insertAlarm(AlarmEnum.MAG_STATUS1_DISABLED, alarm);
}
if (AlarmEnum.MAG_STATUS2_ALARM.getLrkAlarmType().equals(entity.getMagStatus2())) {
insertAlarm(AlarmEnum.MAG_STATUS2_ALARM, alarm);
}
if (AlarmEnum.MAG_STATUS2_DISABLED.getLrkAlarmType().equals(entity.getMagStatus2())) {
insertAlarm(AlarmEnum.MAG_STATUS2_DISABLED, alarm);
}
if (AlarmEnum.ANTI_CROSS_ALARM.getLrkAlarmType().equals(entity.getAntiCross())) {
insertAlarm(AlarmEnum.ANTI_CROSS_ALARM, alarm);
}
if (AlarmEnum.ANTI_CROSS_DISABLED.getLrkAlarmType().equals(entity.getAntiCross())) {
insertAlarm(AlarmEnum.ANTI_CROSS_DISABLED, alarm);
}
//电量不足报警
if (entity.getBattery() != null && NumberUtils.le(entity.getBattery().doubleValue(), 30D)) {
insertAlarm(AlarmEnum.LOW_POWER, alarm);
}
}
}
private void insertAlarm(AlarmEnum proximity, FrontierProtectionDevAlarm alarm) {
alarm.setId(null);
alarm.setMonitorObject(proximity.getName());
alarm.setAlarmDetail(proximity.getName() + proximity.getAlarmName());
alarm.setAlarmType(proximity.getAlarmType());
frontierProtectionDevAlarmMapper.insert(alarm);
}
private void checkParam(JSONArray devDataArray) {
for (int ddIndex = 0; ddIndex < devDataArray.size(); ddIndex++) {
// 设备对应数据信息