bug修复

This commit is contained in:
guo 2024-01-12 17:34:38 +08:00
parent c3436cf596
commit 79bf2dbbbf
13 changed files with 213 additions and 26 deletions

View File

@ -6,23 +6,25 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zhgd.jeecg.common.api.vo.Result;
import com.zhgd.jeecg.common.system.query.QueryGenerator;
import com.zhgd.xmgl.base.entity.vo.TrendVo;
import com.zhgd.xmgl.modules.frontier.entity.FrontierProtectionDevAlarm;
import com.zhgd.xmgl.modules.frontier.entity.vo.CountFrontierProtectionDevAlarmVo;
import com.zhgd.xmgl.modules.frontier.entity.vo.CountFrontierProtectionVo;
import com.zhgd.xmgl.modules.frontier.service.IFrontierProtectionDevAlarmService;
import com.zhgd.xmgl.security.entity.UserInfo;
import com.zhgd.xmgl.security.util.SecurityUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
import javax.servlet.http.HttpServletRequest;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Objects;
import java.util.*;
/**
@ -50,6 +52,10 @@ public class FrontierProtectionDevAlarmController {
* @return
*/
@ApiOperation(value = "分页列表查询临边防护-设备告警信息", notes = "分页列表查询临边防护-设备告警信息", httpMethod = "GET")
@ApiImplicitParams({
@ApiImplicitParam(name = "alarmTime_begin", value = "告警时间开始", paramType = "body", required = false, dataType = "String"),
@ApiImplicitParam(name = "alarmTime_end", value = "告警时间结束", paramType = "body", required = false, dataType = "String"),
})
@GetMapping(value = "/page")
public Result<IPage<FrontierProtectionDevAlarm>> queryPageList(FrontierProtectionDevAlarm frontierProtectionDevAlarm,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@ -164,4 +170,25 @@ public class FrontierProtectionDevAlarmController {
}
return result;
}
@ApiOperation(value = "统计临边防护报警(实时数据)", notes = "统计临边防护报警(实时数据)", httpMethod = "POST")
@ApiImplicitParams({
@ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "body", required = true, dataType = "String"),
})
@PostMapping(value = "/countFrontierProtectionDevAlarm")
public Result<CountFrontierProtectionDevAlarmVo> countFrontierProtectionDevAlarm(@ApiIgnore @RequestBody HashMap<String, Object> paramMap) {
return Result.success(frontierProtectionDevAlarmService.countFrontierProtectionDevAlarm(paramMap));
}
@ApiOperation(value = "统计临边防护报警趋势近7日趋势(次)", notes = "统计临边防护报警趋势近7日趋势(次)", httpMethod = "POST")
@ApiImplicitParams({
@ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "body", required = true, dataType = "String"),
@ApiImplicitParam(name = "type", value = "1近7天", paramType = "body", required = true, dataType = "Integer"),
})
@PostMapping(value = "/countFrontierProtectionDevAlarmTrend")
public Result<List<TrendVo>> countFrontierProtectionDevAlarmTrend(@ApiIgnore @RequestBody HashMap<String, Object> paramMap) {
return Result.success(frontierProtectionDevAlarmService.countFrontierProtectionDevAlarmTrend(paramMap));
}
}

View File

@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zhgd.jeecg.common.api.vo.Result;
import com.zhgd.xmgl.modules.frontier.entity.FrontierProtectionDev;
import com.zhgd.xmgl.modules.frontier.entity.qo.FrontierProtectionDevQO;
import com.zhgd.xmgl.modules.frontier.entity.vo.CountFrontierProtectionVo;
import com.zhgd.xmgl.modules.frontier.service.FrontierProtectionDevService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
@ -16,6 +17,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
import java.util.HashMap;
import java.util.List;
/**
@ -111,5 +113,14 @@ public class FrontierProtectionDevController {
public Result deleteById(Long id) {
return Result.success(frontierProtectionDevService.removeById(id));
}
@ApiOperation(value = "统计临边防护(报警统计(次))", notes = "统计临边防护(报警统计(次))", httpMethod = "POST")
@ApiImplicitParams({
@ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "body", required = true, dataType = "String"),
})
@PostMapping(value = "/countFrontierProtectionDev")
public Result<CountFrontierProtectionVo> countFrontierProtection(@ApiIgnore @RequestBody HashMap<String, Object> paramMap) {
return Result.success(frontierProtectionDevService.countFrontierProtectionDev(paramMap));
}
}

View File

@ -109,6 +109,8 @@ public class FrontierProtectionDevAlarm implements Serializable {
@Excel(name = "操作人id", width = 15)
@ApiModelProperty(value = "操作人id")
private java.lang.Long operateId;
@ApiModelProperty(value = "报警类型")
private java.lang.Integer alarmType;
/**
* 操作时间

View File

@ -0,0 +1,18 @@
package com.zhgd.xmgl.modules.frontier.entity.vo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class CountFrontierProtectionDevAlarmVo {
@ApiModelProperty("今日报警")
private Integer alarmTodayNum;
@ApiModelProperty("电量过低(今日)")
private Integer lowBatteryTodayNum;
@ApiModelProperty("人员靠近(今日)")
private Integer peopleApproachingTodayNum;
@ApiModelProperty("翻越报警(今日)")
private Integer overrideAlarmTodayNum;
}

View File

@ -0,0 +1,16 @@
package com.zhgd.xmgl.modules.frontier.entity.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class CountFrontierProtectionVo {
@ApiModelProperty("设备总数")
private Integer deviceNum;
@ApiModelProperty("人员靠近预警设备数(今日)")
private Integer peopleApproachingWarningDevNumToday;
@ApiModelProperty("电量过低设备数(今日)")
private Integer lowBatteryWarningDevNumToday;
@ApiModelProperty("翻越报警预警设备数(今日)")
private Integer overpassWarningDevNumToday;
}

View File

@ -1,24 +1,27 @@
package com.zhgd.xmgl.modules.frontier.enums;
public enum AlarmEnum {
PROXIMITY("人员靠近", 2, "入侵"),
PORT_STATUS1("线锁1", 2, "断开"),
PORT_STATUS2("线锁2", 2, "断开"),
MAG_STATUS1_ALARM("磁锁1", 2, "报警"),
MAG_STATUS1_DISABLED("磁锁1", 3, "失效"),
MAG_STATUS2_ALARM("磁锁2", 2, "报警"),
MAG_STATUS2_DISABLED("磁锁2", 3, "失效"),
ANTI_CROSS_ALARM("防翻越", 2, "报警"),
ANTI_CROSS_DISABLED("防翻越", 3, "失效"),
PROXIMITY("人员靠近", 2, "入侵", 1),
PORT_STATUS1("线锁1", 2, "断开", 2),
PORT_STATUS2("线锁2", 2, "断开", 3),
MAG_STATUS1_ALARM("磁锁1", 2, "报警", 4),
MAG_STATUS1_DISABLED("磁锁1", 3, "失效", 5),
MAG_STATUS2_ALARM("磁锁2", 2, "报警", 6),
MAG_STATUS2_DISABLED("磁锁2", 3, "失效", 7),
ANTI_CROSS_ALARM("防翻越", 2, "报警", 8),
ANTI_CROSS_DISABLED("防翻越", 3, "失效", 9),
LOW_POWER("低电量", 4, "报警", 10),
;
private Integer alarmType;
private Integer lrkAlarmType;
private String name;
private String alarmName;
private Integer alarmType;
AlarmEnum(String name, Integer alarmType, String alarmName) {
this.alarmType = alarmType;
AlarmEnum(String name, Integer lrkAlarmType, String alarmName, Integer alarmType) {
this.lrkAlarmType = lrkAlarmType;
this.name = name;
this.alarmName = alarmName;
this.alarmType = alarmType;
}
public String getAlarmName() {
@ -37,6 +40,14 @@ public enum AlarmEnum {
this.name = name;
}
public Integer getLrkAlarmType() {
return lrkAlarmType;
}
public void setLrkAlarmType(Integer lrkAlarmType) {
this.lrkAlarmType = lrkAlarmType;
}
public Integer getAlarmType() {
return alarmType;
}

View File

@ -4,11 +4,17 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zhgd.xmgl.base.entity.vo.TrendVo;
import com.zhgd.xmgl.modules.frontier.entity.vo.CountFrontierProtectionDevAlarmVo;
import com.zhgd.xmgl.modules.frontier.entity.vo.CountFrontierProtectionVo;
import org.apache.ibatis.annotations.Mapper;
import com.zhgd.xmgl.modules.frontier.entity.FrontierProtectionDevAlarm;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import java.util.HashMap;
import java.util.List;
/**
* @Description: 临边防护-设备告警
* @author pds
@ -19,4 +25,10 @@ import org.apache.ibatis.annotations.Param;
public interface FrontierProtectionDevAlarmMapper extends BaseMapper<FrontierProtectionDevAlarm> {
IPage<FrontierProtectionDevAlarm> queryPageList(Page<FrontierProtectionDevAlarm> page, @Param(Constants.WRAPPER) QueryWrapper<FrontierProtectionDevAlarm> queryWrapper);
CountFrontierProtectionVo countFrontierProtectionDev(HashMap<String, Object> paramMap);
CountFrontierProtectionDevAlarmVo countFrontierProtectionDevAlarm(HashMap<String, Object> paramMap);
List<TrendVo> countFrontierProtectionDevAlarmTrend(HashMap<String, Object> paramMap);
}

View File

@ -9,4 +9,37 @@
left join system_user su on su.user_id = fpda.operate_id
${ew.customSqlSegment}
</select>
<select id="countFrontierProtectionDev"
resultType="com.zhgd.xmgl.modules.frontier.entity.vo.CountFrontierProtectionVo">
select
ifnull(sum(if(alarm_type=10,1,0)),0) lowBatteryWarningDevNumToday,
ifnull(sum(if(alarm_type=1,1,0)),0) peopleApproachingWarningDevNumToday,
ifnull(sum(if(alarm_type=8,1,0)),0) overpassWarningDevNumToday
from
(select * from frontier_protection_dev_alarm
where project_sn=#{projectSn} and alarm_time >= current_date
group by dev_sn,alarm_type
)t
</select>
<select id="countFrontierProtectionDevAlarm"
resultType="com.zhgd.xmgl.modules.frontier.entity.vo.CountFrontierProtectionDevAlarmVo">
select
count(*) alarmTodayNum,
ifnull(sum(if(alarm_type=10,1,0)),0) lowBatteryTodayNum,
ifnull(sum(if(alarm_type=1,1,0)),0) peopleApproachingTodayNum,
ifnull(sum(if(alarm_type=8,1,0)),0) overrideAlarmTodayNum
from frontier_protection_dev_alarm
where project_sn=#{projectSn} and alarm_time >= current_date
</select>
<select id="countFrontierProtectionDevAlarmTrend" resultType="com.zhgd.xmgl.base.entity.vo.TrendVo">
select date_format(alarm_time,'%Y-%m-%d') x,count(*) y from frontier_protection_dev_alarm
where project_sn=#{projectSn}
<if test="alarmTime != null and alarmTime != ''">
and alarm_time >= date_sub(current_date,interval 7 day )
</if>
group by x
</select>
</mapper>

View File

@ -5,6 +5,9 @@ import com.zhgd.xmgl.modules.frontier.entity.FrontierProtectionDev;
import com.zhgd.xmgl.modules.frontier.entity.qo.FrontierProtectionDevQO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zhgd.xmgl.modules.frontier.entity.vo.CountFrontierProtectionVo;
import java.util.HashMap;
/**
@ -19,5 +22,7 @@ public interface FrontierProtectionDevService extends IService<FrontierProtectio
void addFrontierProtectionDev(FrontierProtectionDev frontierProtectionDev);
void updateFrontierProtectionDev(FrontierProtectionDev frontierProtectionDev);
CountFrontierProtectionVo countFrontierProtectionDev(HashMap<String, Object> paramMap);
}

View File

@ -1,10 +1,14 @@
package com.zhgd.xmgl.modules.frontier.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zhgd.xmgl.base.entity.vo.TrendVo;
import com.zhgd.xmgl.modules.frontier.entity.FrontierProtectionDevAlarm;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zhgd.xmgl.modules.frontier.entity.vo.CountFrontierProtectionDevAlarmVo;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List;
/**
* @Description: 临边防护-设备告警
@ -15,4 +19,8 @@ import javax.servlet.http.HttpServletRequest;
public interface IFrontierProtectionDevAlarmService extends IService<FrontierProtectionDevAlarm> {
IPage<FrontierProtectionDevAlarm> queryPageList(FrontierProtectionDevAlarm frontierProtectionDevAlarm, Integer pageNo, Integer pageSize, HttpServletRequest req);
CountFrontierProtectionDevAlarmVo countFrontierProtectionDevAlarm(HashMap<String, Object> paramMap);
List<TrendVo> countFrontierProtectionDevAlarmTrend(HashMap<String, Object> paramMap);
}

View File

@ -6,15 +6,22 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zhgd.jeecg.common.system.query.QueryGenerator;
import com.zhgd.xmgl.base.entity.vo.TrendVo;
import com.zhgd.xmgl.modules.frontier.entity.FrontierProtectionDevAlarm;
import com.zhgd.xmgl.modules.frontier.entity.vo.CountFrontierProtectionDevAlarmVo;
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.RefUtil;
import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List;
import java.util.Objects;
/**
* @Description: 临边防护-设备告警
@ -39,4 +46,19 @@ public class FrontierProtectionDevAlarmServiceImpl extends ServiceImpl<FrontierP
IPage<FrontierProtectionDevAlarm> pageList = frontierProtectionDevAlarmMapper.queryPageList(page, queryWrapper);
return pageList;
}
@Override
public CountFrontierProtectionDevAlarmVo countFrontierProtectionDevAlarm(HashMap<String, Object> paramMap) {
return baseMapper.countFrontierProtectionDevAlarm(paramMap);
}
@Override
public List<TrendVo> countFrontierProtectionDevAlarmTrend(HashMap<String, Object> paramMap) {
Integer type = MapUtils.getInteger(paramMap, "type");
if (Objects.equals(type, 1)) {
List<TrendVo> list = baseMapper.countFrontierProtectionDevAlarmTrend(paramMap);
return TrendVo.fillTrendVos(list, DateUtils.getDateTimeStrList(60, "yyyy-MM-dd"), "MM-dd");
}
return null;
}
}

View File

@ -21,6 +21,7 @@ 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.util.NumberUtils;
import com.zhgd.xmgl.util.RefUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
@ -123,33 +124,37 @@ public class FrontierProtectionDevCurrentDataServiceImpl extends ServiceImpl<Fro
alarm.setDevSn(entity.getDevSn());
alarm.setAlarmTime(entity.getReceiveTime());
alarm.setProjectSn(entity.getProjectSn());
if (AlarmEnum.PROXIMITY.getAlarmType().equals(entity.getProximity())) {
if (AlarmEnum.PROXIMITY.getLrkAlarmType().equals(entity.getProximity())) {
insertAlarm(AlarmEnum.PROXIMITY, alarm);
}
if (AlarmEnum.PORT_STATUS1.getAlarmType().equals(entity.getPortStatus1())) {
if (AlarmEnum.PORT_STATUS1.getLrkAlarmType().equals(entity.getPortStatus1())) {
insertAlarm(AlarmEnum.PORT_STATUS1, alarm);
}
if (AlarmEnum.PORT_STATUS2.getAlarmType().equals(entity.getPortStatus2())) {
if (AlarmEnum.PORT_STATUS2.getLrkAlarmType().equals(entity.getPortStatus2())) {
insertAlarm(AlarmEnum.PORT_STATUS2, alarm);
}
if (AlarmEnum.MAG_STATUS1_ALARM.getAlarmType().equals(entity.getMagStatus1())) {
if (AlarmEnum.MAG_STATUS1_ALARM.getLrkAlarmType().equals(entity.getMagStatus1())) {
insertAlarm(AlarmEnum.MAG_STATUS1_ALARM, alarm);
}
if (AlarmEnum.MAG_STATUS1_DISABLED.getAlarmType().equals(entity.getMagStatus1())) {
if (AlarmEnum.MAG_STATUS1_DISABLED.getLrkAlarmType().equals(entity.getMagStatus1())) {
insertAlarm(AlarmEnum.MAG_STATUS1_DISABLED, alarm);
}
if (AlarmEnum.MAG_STATUS2_ALARM.getAlarmType().equals(entity.getMagStatus2())) {
if (AlarmEnum.MAG_STATUS2_ALARM.getLrkAlarmType().equals(entity.getMagStatus2())) {
insertAlarm(AlarmEnum.MAG_STATUS2_ALARM, alarm);
}
if (AlarmEnum.MAG_STATUS2_DISABLED.getAlarmType().equals(entity.getMagStatus2())) {
if (AlarmEnum.MAG_STATUS2_DISABLED.getLrkAlarmType().equals(entity.getMagStatus2())) {
insertAlarm(AlarmEnum.MAG_STATUS2_DISABLED, alarm);
}
if (AlarmEnum.ANTI_CROSS_ALARM.getAlarmType().equals(entity.getAntiCross())) {
if (AlarmEnum.ANTI_CROSS_ALARM.getLrkAlarmType().equals(entity.getAntiCross())) {
insertAlarm(AlarmEnum.ANTI_CROSS_ALARM, alarm);
}
if (AlarmEnum.ANTI_CROSS_DISABLED.getAlarmType().equals(entity.getAntiCross())) {
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);
}
}
}
@ -157,6 +162,7 @@ public class FrontierProtectionDevCurrentDataServiceImpl extends ServiceImpl<Fro
alarm.setId(null);
alarm.setMonitorObject(proximity.getName());
alarm.setAlarmDetail(proximity.getName() + proximity.getAlarmName());
alarm.setAlarmType(proximity.getAlarmType());
frontierProtectionDevAlarmMapper.insert(alarm);
}

View File

@ -9,12 +9,17 @@ 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.qo.FrontierProtectionDevQO;
import com.zhgd.xmgl.modules.frontier.entity.vo.CountFrontierProtectionVo;
import com.zhgd.xmgl.modules.frontier.mapper.FrontierProtectionDevAlarmMapper;
import com.zhgd.xmgl.modules.frontier.mapper.FrontierProtectionDevMapper;
import com.zhgd.xmgl.modules.frontier.service.FrontierProtectionDevService;
import com.zhgd.xmgl.util.RefUtil;
import org.apache.commons.collections.MapUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
/**
* 临边防护-设备(FrontierProtectionDev)表服务实现类
@ -26,6 +31,8 @@ import org.springframework.stereotype.Service;
public class FrontierProtectionDevServiceImpl extends ServiceImpl<FrontierProtectionDevMapper, FrontierProtectionDev> implements FrontierProtectionDevService {
@Autowired
private FrontierProtectionDevMapper frontierProtectionDevMapper;
@Autowired
private FrontierProtectionDevAlarmMapper frontierProtectionDevAlarmMapper;
@Override
public IPage<FrontierProtectionDev> selectPageInfo(Page<FrontierProtectionDev> page, FrontierProtectionDevQO frontierProtectionDevQo) {
@ -71,5 +78,14 @@ public class FrontierProtectionDevServiceImpl extends ServiceImpl<FrontierProtec
}
updateById(frontierProtectionDev);
}
@Override
public CountFrontierProtectionVo countFrontierProtectionDev(HashMap<String, Object> paramMap) {
String projectSn = MapUtils.getString(paramMap, "projectSn");
CountFrontierProtectionVo vo = frontierProtectionDevAlarmMapper.countFrontierProtectionDev(paramMap);
vo.setDeviceNum(frontierProtectionDevMapper.selectCount(new LambdaQueryWrapper<FrontierProtectionDev>()
.eq(FrontierProtectionDev::getProjectSn, projectSn)));
return vo;
}
}