合并解决冲突或升级jdk17语法

This commit is contained in:
guoshengxiong 2025-10-22 18:14:11 +08:00
parent 35434ada14
commit 76c7de5d3a
8 changed files with 160 additions and 3 deletions

View File

@ -1605,4 +1605,47 @@ public class ParamEnum {
}
}
@JsonFormat(shape = JsonFormat.Shape.OBJECT)
public enum FrontierProtectionDevAlarmTypeEnum implements BaseEnum {
PROXIMITY(1, "人员靠近入侵"),
PORT_STATUS1(2, "线锁1断开"),
PORT_STATUS2(3, "线锁2断开"),
MAG_STATUS1_ALARM(4, "磁锁1报警"),
MAG_STATUS1_DISABLED(5, "磁锁1失效"),
MAG_STATUS2_ALARM(6, "磁锁2报警"),
MAG_STATUS2_DISABLED(7, "磁锁2失效"),
ANTI_CROSS_ALARM(8, "防翻越报警"),
ANTI_CROSS_DISABLED(9, "防翻越失效"),
LOW_POWER(10, "低电量报警"),
;
private Integer value;
private String desc;
FrontierProtectionDevAlarmTypeEnum(Integer value, String desc) {
this.value = value;
this.desc = desc;
}
@Override
public Integer getValue() {
return value;
}
@Override
public void setValue(Integer value) {
this.value = value;
}
@Override
public String getDesc() {
return desc;
}
@Override
public void setDesc(String desc) {
this.desc = desc;
}
}
}

View File

@ -6,7 +6,10 @@ 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.SectorOneVo;
import com.zhgd.xmgl.base.entity.vo.SectorVo;
import com.zhgd.xmgl.base.entity.vo.TrendOneVo;
import com.zhgd.xmgl.enums.ParamEnum;
import com.zhgd.xmgl.modules.frontier.entity.FrontierProtectionDevAlarm;
import com.zhgd.xmgl.modules.frontier.entity.vo.CountFrontierProtectionDevAlarmVo;
import com.zhgd.xmgl.modules.frontier.enums.AlarmEnum;
@ -183,7 +186,9 @@ public class FrontierProtectionDevAlarmController {
@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"),
@ApiImplicitParam(name = "type", value = "1近7天、2近24小时", paramType = "body", required = true, dataType = "Integer"),
@ApiImplicitParam(name = "alarmType", value = "报警类型(/xmgl/frontierProtectionDevAlarm/getFrontierProtectionAlarmTypeEnum接口返回的alarmType)", paramType = "body", required = false, dataType = "Integer"),
@ApiImplicitParam(name = "devSn", value = "临边防护设备sn", paramType = "body", required = false, dataType = "Integer"),
})
@PostMapping(value = "/countFrontierProtectionDevAlarmTrend")
public Result<List<TrendOneVo>> countFrontierProtectionDevAlarmTrend(@Parameter(hidden = true) @RequestBody HashMap<String, Object> paramMap) {
@ -196,4 +201,18 @@ public class FrontierProtectionDevAlarmController {
AlarmEnum[] values = AlarmEnum.values();
return Result.success(values);
}
@ApiOperation(value = "报警类型统计", notes = "报警类型统计", httpMethod = "POST")
@ApiImplicitParams({
@ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "body", required = true, dataType = "String"),
@ApiImplicitParam(name = "devSn", value = "设备sn", paramType = "body", required = false, dataType = "String"),
@ApiImplicitParam(name = "type", value = "1今日2、7日3、30日", paramType = "body", required = true, dataType = "Integer"),
})
@PostMapping(value = "/countAlarmType")
public Result<SectorVo> countAlarmType(@ApiIgnore @RequestBody HashMap<String, Object> paramMap) {
ArrayList<SectorOneVo> list = frontierProtectionDevAlarmService.countAlarmType(paramMap);
return Result.success(SectorVo.getSectorVoByEnum(list, ParamEnum.FrontierProtectionDevAlarmTypeEnum.values(), false));
}
}

View File

@ -3,6 +3,8 @@ package com.zhgd.xmgl.modules.frontier.entity.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class CountFrontierProtectionVo {
@ApiModelProperty("设备总数")
@ -13,4 +15,14 @@ public class CountFrontierProtectionVo {
private Integer lowBatteryWarningDevNumToday;
@ApiModelProperty("翻越报警预警设备数(今日)")
private Integer overpassWarningDevNumToday;
@ApiModelProperty(value = "在线设备数量")
private java.lang.Integer onlineNum;
@ApiModelProperty(value = "离线设备数量")
private java.lang.Integer offlineNum;
@ApiModelProperty(value = "今日报警数量")
private java.lang.Integer alarmNumToday;
@ApiModelProperty(value = "昨日报警数量")
private java.lang.Integer alarmNumYesterday;
@ApiModelProperty(value = "今日报警数量相比昨日%")
private BigDecimal alarmNumThanYesterdayPct;
}

View File

@ -4,6 +4,7 @@ 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.SectorOneVo;
import com.zhgd.xmgl.base.entity.vo.TrendOneVo;
import com.zhgd.xmgl.modules.frontier.entity.vo.CountFrontierProtectionDevAlarmVo;
import com.zhgd.xmgl.modules.frontier.entity.vo.CountFrontierProtectionVo;
@ -12,6 +13,7 @@ import com.zhgd.xmgl.modules.frontier.entity.FrontierProtectionDevAlarm;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@ -31,4 +33,6 @@ public interface FrontierProtectionDevAlarmMapper extends BaseMapper<FrontierPro
CountFrontierProtectionDevAlarmVo countFrontierProtectionDevAlarm(HashMap<String, Object> paramMap);
List<TrendOneVo> countFrontierProtectionDevAlarmTrend(HashMap<String, Object> paramMap);
ArrayList<SectorOneVo> countAlarmType(HashMap<String, Object> paramMap);
}

View File

@ -35,11 +35,48 @@
</select>
<select id="countFrontierProtectionDevAlarmTrend" resultType="com.zhgd.xmgl.base.entity.vo.TrendOneVo">
select date_format(alarm_time,'%Y-%m-%d') x,count(*) y from frontier_protection_dev_alarm
select
<if test="type == '1'.toString()">
date_format(alarm_time,'%Y-%m-%d') x
</if>
<if test="type == '2'.toString()">
date_format(alarm_time,'%Y-%m-%d %H:00') x
</if>
,count(*) y from frontier_protection_dev_alarm
where project_sn=#{projectSn}
<if test="alarmTime != null and alarmTime != ''">
<if test="type == '1'.toString()">
and alarm_time >= date_sub(current_date,interval 7 day )
and alarm_time &lt; date_add(current_date,interval 1 day)
</if>
<if test="type == '2'.toString()">
and alarm_time >= date_sub(now(),interval 1 day)
and alarm_time &lt; now()
</if>
<if test="devSn != null and devSn != ''">
and dev_sn = #{devSn}
</if>
group by x
</select>
<select id="countAlarmType" resultType="com.zhgd.xmgl.base.entity.vo.SectorOneVo">
select alarm_type enumType,count(*) count
from frontier_protection_dev_alarm
where project_sn=#{projectSn}
<if test="devSn != null and devSn != ''">
and dev_sn = #{devSn}
</if>
<if test="type == '1'.toString()">
and alarm_time > current_date
and alarm_time &lt; date_add(current_date,interval 1 day)
</if>
<if test="type == '2'.toString()">
and alarm_time > date_sub(alarm_time,interval 6 day)
and alarm_time &lt; date_add(current_date,interval 1 day)
</if>
<if test="type == '3'.toString()">
and alarm_time > date_sub(alarm_time,interval 29 day)
and alarm_time &lt; date_add(current_date,interval 1 day)
</if>
group by alarm_type
</select>
</mapper>

View File

@ -1,6 +1,7 @@
package com.zhgd.xmgl.modules.frontier.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
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;
@ -23,4 +24,6 @@ public interface IFrontierProtectionDevAlarmService extends IService<FrontierPro
CountFrontierProtectionDevAlarmVo countFrontierProtectionDevAlarm(HashMap<String, Object> paramMap);
List<TrendOneVo> countFrontierProtectionDevAlarmTrend(HashMap<String, Object> paramMap);
ArrayList<SectorOneVo> countAlarmType(HashMap<String, Object> paramMap);
}

View File

@ -6,6 +6,7 @@ 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.SectorOneVo;
import com.zhgd.xmgl.base.entity.vo.TrendOneVo;
import com.zhgd.xmgl.modules.frontier.entity.FrontierProtectionDevAlarm;
import com.zhgd.xmgl.modules.frontier.entity.vo.CountFrontierProtectionDevAlarmVo;
@ -56,9 +57,19 @@ public class FrontierProtectionDevAlarmServiceImpl extends ServiceImpl<FrontierP
public List<TrendOneVo> countFrontierProtectionDevAlarmTrend(HashMap<String, Object> paramMap) {
Integer type = MapUtils.getInteger(paramMap, "type");
if (Objects.equals(type, 1)) {
//近7天
List<TrendOneVo> list = baseMapper.countFrontierProtectionDevAlarmTrend(paramMap);
return TrendOneVo.fillTrendVos(list, DateUtils.getDateTimeStrList(60, "yyyy-MM-dd"), "MM-dd");
} else if (Objects.equals(type, 2)) {
//近24小时
List<TrendOneVo> list = baseMapper.countFrontierProtectionDevAlarmTrend(paramMap);
return TrendOneVo.fillTrendVos(list, DateUtils.getDateTimeStrList(100, "yyyy-MM-dd HH:00"), "HH:00");
}
return null;
}
@Override
public ArrayList<SectorOneVo> countAlarmType(HashMap<String, Object> paramMap) {
return baseMapper.countAlarmType(paramMap);
}
}

View File

@ -1,5 +1,6 @@
package com.zhgd.xmgl.modules.frontier.service.impl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.text.CharSequenceUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@ -8,16 +9,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.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.modules.frontier.service.IFrontierProtectionDevAlarmService;
import com.zhgd.xmgl.util.RefUtil;
import org.apache.commons.collections.MapUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.Date;
import java.util.HashMap;
@ -33,6 +39,9 @@ public class FrontierProtectionDevServiceImpl extends ServiceImpl<FrontierProtec
private FrontierProtectionDevMapper frontierProtectionDevMapper;
@Autowired
private FrontierProtectionDevAlarmMapper frontierProtectionDevAlarmMapper;
@Lazy
@Autowired
private IFrontierProtectionDevAlarmService frontierProtectionDevAlarmService;
@Override
public IPage<FrontierProtectionDev> selectPageInfo(Page<FrontierProtectionDev> page, FrontierProtectionDevQO frontierProtectionDevQo) {
@ -85,6 +94,25 @@ public class FrontierProtectionDevServiceImpl extends ServiceImpl<FrontierProtec
CountFrontierProtectionVo vo = frontierProtectionDevAlarmMapper.countFrontierProtectionDev(paramMap);
vo.setDeviceNum(Math.toIntExact(frontierProtectionDevMapper.selectCount(new LambdaQueryWrapper<FrontierProtectionDev>()
.eq(FrontierProtectionDev::getProjectSn, projectSn))));
vo.setOnlineNum(vo.getDeviceNum());
vo.setOfflineNum(0);
int count = frontierProtectionDevAlarmService.count(new LambdaQueryWrapper<FrontierProtectionDevAlarm>()
.eq(FrontierProtectionDevAlarm::getProjectSn, projectSn)
.ge(FrontierProtectionDevAlarm::getAlarmTime, DateUtil.formatDateTime(DateUtil.beginOfDay(new Date())))
.le(FrontierProtectionDevAlarm::getAlarmTime, DateUtil.formatDateTime(DateUtil.endOfDay(new Date())))
);
vo.setAlarmNumToday(count);
int count1 = frontierProtectionDevAlarmService.count(new LambdaQueryWrapper<FrontierProtectionDevAlarm>()
.eq(FrontierProtectionDevAlarm::getProjectSn, projectSn)
.ge(FrontierProtectionDevAlarm::getAlarmTime, DateUtil.formatDateTime(DateUtil.beginOfDay(DateUtil.offsetDay(new Date(), -1))))
.le(FrontierProtectionDevAlarm::getAlarmTime, DateUtil.formatDateTime(DateUtil.endOfDay(DateUtil.offsetDay(new Date(), -1))))
);
vo.setAlarmNumYesterday(count1);
BigDecimal decimal = null;
if (count1 != 0) {
decimal = new BigDecimal(count).divide(new BigDecimal(count1), 4, BigDecimal.ROUND_HALF_UP).subtract(new BigDecimal(1)).multiply(new BigDecimal(100));
}
vo.setAlarmNumThanYesterdayPct(decimal);
return vo;
}
}