bug修改
This commit is contained in:
parent
5a994f83ab
commit
92a350d244
@ -498,5 +498,44 @@ public class ParamEnum {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 污水类型
|
||||||
|
*/
|
||||||
|
@JsonFormat(shape = JsonFormat.Shape.OBJECT)
|
||||||
|
public enum SewageTypeEnum implements BaseEnum {
|
||||||
|
PH_VALUE(1, "PH值"),
|
||||||
|
TURBIDITY_VALUE(2, "浊度值"),
|
||||||
|
CONDUCTIVITY(3, "电导率"),
|
||||||
|
DISSOLVED_OXYGEN(4, "溶解氧"),
|
||||||
|
WATER_TEMPERATURE(5, "水温"),
|
||||||
|
FLOW_RATE(6, "流速"),
|
||||||
|
WATER_LEVEL(7, "水位"),
|
||||||
|
;
|
||||||
|
|
||||||
|
SewageTypeEnum(Integer value, String desc) {
|
||||||
|
this.value = value;
|
||||||
|
this.desc = desc;
|
||||||
|
}
|
||||||
|
|
||||||
|
private Integer value;
|
||||||
|
private String desc;
|
||||||
|
|
||||||
|
public Integer getValue() {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setValue(Integer value) {
|
||||||
|
this.value = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDesc() {
|
||||||
|
return desc;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDesc(String desc) {
|
||||||
|
this.desc = desc;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +1,8 @@
|
|||||||
package com.zhgd.xmgl.modules.sewage.controller;
|
package com.zhgd.xmgl.modules.sewage.controller;
|
||||||
|
|
||||||
import com.zhgd.xmgl.modules.sewage.entity.SewageAlarm;
|
import com.zhgd.xmgl.modules.sewage.entity.SewageAlarm;
|
||||||
|
import com.zhgd.xmgl.modules.sewage.entity.SewageData;
|
||||||
|
import com.zhgd.xmgl.modules.sewage.entity.vo.CountSewageAlarmVo;
|
||||||
import com.zhgd.xmgl.security.entity.UserInfo;
|
import com.zhgd.xmgl.security.entity.UserInfo;
|
||||||
import com.zhgd.xmgl.security.util.SecurityUtils;
|
import com.zhgd.xmgl.security.util.SecurityUtils;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
@ -64,6 +66,7 @@ public class SewageAlarmController {
|
|||||||
@ApiImplicitParams({
|
@ApiImplicitParams({
|
||||||
@ApiImplicitParam(name = "pageNo", value = "第几页", paramType = "query", required = true, dataType = "Integer"),
|
@ApiImplicitParam(name = "pageNo", value = "第几页", paramType = "query", required = true, dataType = "Integer"),
|
||||||
@ApiImplicitParam(name = "pageSize", value = "每页显示条数", paramType = "query", required = true, dataType = "Integer"),
|
@ApiImplicitParam(name = "pageSize", value = "每页显示条数", paramType = "query", required = true, dataType = "Integer"),
|
||||||
|
@ApiImplicitParam(name = "type", value = "1今日", paramType = "query", required = false, dataType = "Integer"),
|
||||||
})
|
})
|
||||||
@GetMapping(value = "/page")
|
@GetMapping(value = "/page")
|
||||||
public Result<IPage<SewageAlarm>> queryPageList(@ApiIgnore @RequestParam HashMap<String, Object> paramMap) {
|
public Result<IPage<SewageAlarm>> queryPageList(@ApiIgnore @RequestParam HashMap<String, Object> paramMap) {
|
||||||
@ -191,4 +194,25 @@ public class SewageAlarmController {
|
|||||||
return mv;
|
return mv;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@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 = true, dataType = "String"),
|
||||||
|
})
|
||||||
|
@PostMapping(value = "/waringDataContrast")
|
||||||
|
public Result<SewageData> waringDataContrast(@ApiIgnore @RequestBody HashMap<String, Object> paramMap) {
|
||||||
|
return Result.success(sewageAlarmService.waringDataContrast(paramMap));
|
||||||
|
}
|
||||||
|
|
||||||
|
@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今日", paramType = "body", required = false, dataType = "Integer"),
|
||||||
|
})
|
||||||
|
@PostMapping(value = "/countSewageAlarm")
|
||||||
|
public Result<CountSewageAlarmVo> countSewageAlarm(@ApiIgnore @RequestBody HashMap<String, Object> paramMap) {
|
||||||
|
return Result.success(sewageAlarmService.countSewageAlarm(paramMap));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -193,4 +193,5 @@ public class SewageDataController {
|
|||||||
public Result<List<SewageData>> countSewageDataTrend(@ApiIgnore @RequestBody HashMap<String, Object> paramMap) {
|
public Result<List<SewageData>> countSewageDataTrend(@ApiIgnore @RequestBody HashMap<String, Object> paramMap) {
|
||||||
return Result.success(sewageDataService.countSewageDataTrend(paramMap));
|
return Result.success(sewageDataService.countSewageDataTrend(paramMap));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -131,13 +131,14 @@ public class SewageAlarm implements Serializable {
|
|||||||
@ApiModelProperty(value = "报警状态 1预警 2告警")
|
@ApiModelProperty(value = "报警状态 1预警 2告警")
|
||||||
private java.lang.Integer alarmType;
|
private java.lang.Integer alarmType;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "污水数据id")
|
||||||
|
private java.lang.Long sewageDataId;
|
||||||
|
@ApiModelProperty(value = "污水类型")
|
||||||
|
private java.lang.Integer sewageType;
|
||||||
|
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
@ApiModelProperty(value = "设备名称")
|
@ApiModelProperty(value = "设备名称")
|
||||||
private java.lang.String devName;
|
private java.lang.String devName;
|
||||||
|
|
||||||
@TableField(exist = false)
|
|
||||||
@ApiModelProperty(value = "污水数据id")
|
|
||||||
private java.lang.Long sewageDataId;
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -114,4 +114,13 @@ public class SewageData implements Serializable {
|
|||||||
@ApiModelProperty(value = "是否报警")
|
@ApiModelProperty(value = "是否报警")
|
||||||
private java.lang.Boolean isWarning;
|
private java.lang.Boolean isWarning;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
@ApiModelProperty(value = "电导率(μS/cm)对比报警阈值比率")
|
||||||
|
private java.lang.Double conductivityRate;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
@ApiModelProperty(value = "水温(℃)对比报警阈值比率")
|
||||||
|
private java.lang.Double waterTemperatureRate;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,13 @@
|
|||||||
|
package com.zhgd.xmgl.modules.sewage.entity.vo;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class CountSewageAlarmVo {
|
||||||
|
@ApiModelProperty("今日报警数量")
|
||||||
|
private Integer alarmNumToday;
|
||||||
|
@ApiModelProperty("今日预警数量")
|
||||||
|
private Integer warningNumToday;
|
||||||
|
|
||||||
|
}
|
||||||
@ -4,11 +4,14 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.zhgd.xmgl.modules.sewage.entity.vo.CountSewageAlarmVo;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import com.zhgd.xmgl.modules.sewage.entity.SewageAlarm;
|
import com.zhgd.xmgl.modules.sewage.entity.SewageAlarm;
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description: 污水预警
|
* @Description: 污水预警
|
||||||
* @author: pds
|
* @author: pds
|
||||||
@ -19,4 +22,8 @@ import org.apache.ibatis.annotations.Param;
|
|||||||
public interface SewageAlarmMapper extends BaseMapper<SewageAlarm> {
|
public interface SewageAlarmMapper extends BaseMapper<SewageAlarm> {
|
||||||
|
|
||||||
IPage<SewageAlarm> queryPageList(Page<SewageAlarm> page, @Param(Constants.WRAPPER) QueryWrapper<SewageAlarm> queryWrapper);
|
IPage<SewageAlarm> queryPageList(Page<SewageAlarm> page, @Param(Constants.WRAPPER) QueryWrapper<SewageAlarm> queryWrapper);
|
||||||
|
|
||||||
|
CountSewageAlarmVo countSewageAlarm(HashMap<String, Object> paramMap);
|
||||||
|
|
||||||
|
SewageAlarm getNewestOne(HashMap<String, Object> paramMap);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -7,4 +7,38 @@
|
|||||||
join sewage_dev sd on sd.dev_sn=sa.dev_sn
|
join sewage_dev sd on sd.dev_sn=sa.dev_sn
|
||||||
${ew.customSqlSegment}
|
${ew.customSqlSegment}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="countSewageAlarm" resultType="com.zhgd.xmgl.modules.sewage.entity.vo.CountSewageAlarmVo">
|
||||||
|
select
|
||||||
|
ifnull(sum(if(alarm_type=1,1,0)),0) alarmNumToday,
|
||||||
|
ifnull(sum(if(alarm_type=2,1,0)),0) warningNumToday
|
||||||
|
from sewage_alarm
|
||||||
|
where 1=1
|
||||||
|
<if test="projectSn != null and projectSn != ''">
|
||||||
|
and project_sn = #{projectSn}
|
||||||
|
</if>
|
||||||
|
<if test="devSn != null and devSn != ''">
|
||||||
|
and dev_sn = #{devSn}
|
||||||
|
</if>
|
||||||
|
<if test="type == '1'.toString() ">
|
||||||
|
and alarm_time >= current_date
|
||||||
|
</if>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="getNewestOne" resultType="com.zhgd.xmgl.modules.sewage.entity.SewageAlarm">
|
||||||
|
select *
|
||||||
|
from sewage_alarm
|
||||||
|
where 1=1
|
||||||
|
<if test="projectSn != null and projectSn != ''">
|
||||||
|
and project_sn = #{projectSn}
|
||||||
|
</if>
|
||||||
|
<if test="devSn != null and devSn != ''">
|
||||||
|
and dev_sn = #{devSn}
|
||||||
|
</if>
|
||||||
|
<if test="sewageType != null and sewageType != ''">
|
||||||
|
and sewage_type = #{sewageType}
|
||||||
|
</if>
|
||||||
|
order by alarm_time desc
|
||||||
|
limit 1
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
@ -3,6 +3,8 @@ package com.zhgd.xmgl.modules.sewage.service;
|
|||||||
import com.zhgd.xmgl.modules.sewage.entity.SewageAlarm;
|
import com.zhgd.xmgl.modules.sewage.entity.SewageAlarm;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.zhgd.xmgl.modules.sewage.entity.SewageData;
|
||||||
|
import com.zhgd.xmgl.modules.sewage.entity.vo.CountSewageAlarmVo;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -19,4 +21,7 @@ public interface ISewageAlarmService extends IService<SewageAlarm> {
|
|||||||
|
|
||||||
List<SewageAlarm> queryList(HashMap<String, Object> paramMap);
|
List<SewageAlarm> queryList(HashMap<String, Object> paramMap);
|
||||||
|
|
||||||
|
SewageData waringDataContrast(HashMap<String, Object> paramMap);
|
||||||
|
|
||||||
|
CountSewageAlarmVo countSewageAlarm(HashMap<String, Object> paramMap);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -26,4 +26,5 @@ public interface ISewageDataService extends IService<SewageData> {
|
|||||||
List<SewageData> countSewageDataTrend(HashMap<String, Object> paramMap);
|
List<SewageData> countSewageDataTrend(HashMap<String, Object> paramMap);
|
||||||
|
|
||||||
SewageData queryNewestData(HashMap<String, Object> paramMap);
|
SewageData queryNewestData(HashMap<String, Object> paramMap);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,19 +1,30 @@
|
|||||||
package com.zhgd.xmgl.modules.sewage.service.impl;
|
package com.zhgd.xmgl.modules.sewage.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
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.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
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.zhgd.jeecg.common.system.query.QueryGenerator;
|
import com.zhgd.jeecg.common.system.query.QueryGenerator;
|
||||||
|
import com.zhgd.xmgl.enums.ParamEnum;
|
||||||
import com.zhgd.xmgl.modules.sewage.entity.SewageAlarm;
|
import com.zhgd.xmgl.modules.sewage.entity.SewageAlarm;
|
||||||
|
import com.zhgd.xmgl.modules.sewage.entity.SewageData;
|
||||||
|
import com.zhgd.xmgl.modules.sewage.entity.SewageWarnThreshold;
|
||||||
|
import com.zhgd.xmgl.modules.sewage.entity.vo.CountSewageAlarmVo;
|
||||||
import com.zhgd.xmgl.modules.sewage.mapper.SewageAlarmMapper;
|
import com.zhgd.xmgl.modules.sewage.mapper.SewageAlarmMapper;
|
||||||
|
import com.zhgd.xmgl.modules.sewage.mapper.SewageWarnThresholdMapper;
|
||||||
import com.zhgd.xmgl.modules.sewage.service.ISewageAlarmService;
|
import com.zhgd.xmgl.modules.sewage.service.ISewageAlarmService;
|
||||||
|
import com.zhgd.xmgl.util.NumberUtils;
|
||||||
import com.zhgd.xmgl.util.PageUtil;
|
import com.zhgd.xmgl.util.PageUtil;
|
||||||
import com.zhgd.xmgl.util.RefUtil;
|
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 org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description: 污水预警
|
* @Description: 污水预警
|
||||||
@ -23,6 +34,11 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
public class SewageAlarmServiceImpl extends ServiceImpl<SewageAlarmMapper, SewageAlarm> implements ISewageAlarmService {
|
public class SewageAlarmServiceImpl extends ServiceImpl<SewageAlarmMapper, SewageAlarm> implements ISewageAlarmService {
|
||||||
|
@Autowired
|
||||||
|
SewageAlarmMapper sewageAlarmMapper;
|
||||||
|
@Autowired
|
||||||
|
SewageWarnThresholdMapper sewageWarnThresholdMapper;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IPage<SewageAlarm> queryPageList(HashMap<String, Object> paramMap) {
|
public IPage<SewageAlarm> queryPageList(HashMap<String, Object> paramMap) {
|
||||||
QueryWrapper<SewageAlarm> queryWrapper = getQueryWrapper(paramMap);
|
QueryWrapper<SewageAlarm> queryWrapper = getQueryWrapper(paramMap);
|
||||||
@ -38,10 +54,50 @@ public class SewageAlarmServiceImpl extends ServiceImpl<SewageAlarmMapper, Sewag
|
|||||||
return dealList(this.list(queryWrapper));
|
return dealList(this.list(queryWrapper));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SewageData waringDataContrast(HashMap<String, Object> paramMap) {
|
||||||
|
String devSn = MapUtils.getString(paramMap, "devSn");
|
||||||
|
paramMap.put("sewageType", ParamEnum.SewageTypeEnum.CONDUCTIVITY.getValue());
|
||||||
|
SewageAlarm conductivity = sewageAlarmMapper.getNewestOne(paramMap);
|
||||||
|
paramMap.put("sewageType", ParamEnum.SewageTypeEnum.WATER_TEMPERATURE.getValue());
|
||||||
|
SewageAlarm waterTemperature = sewageAlarmMapper.getNewestOne(paramMap);
|
||||||
|
SewageData data = new SewageData();
|
||||||
|
if (conductivity != null) {
|
||||||
|
data.setConductivity(conductivity.getMonitorValue());
|
||||||
|
}
|
||||||
|
if (waterTemperature != null) {
|
||||||
|
data.setWaterTemperature(waterTemperature.getMonitorValue());
|
||||||
|
}
|
||||||
|
SewageWarnThreshold threshold = sewageWarnThresholdMapper.selectOne(new LambdaQueryWrapper<SewageWarnThreshold>()
|
||||||
|
.eq(SewageWarnThreshold::getDevSn, devSn));
|
||||||
|
if (threshold != null) {
|
||||||
|
if (NumberUtils.ge(data.getConductivity(), threshold.getWaterTemperatureHighAlarm())) {
|
||||||
|
data.setConductivityRate(NumberUtils.rate(data.getConductivity(), threshold.getConductivityHighAlarm(), 2));
|
||||||
|
} else if (NumberUtils.le(data.getConductivity(), threshold.getConductivityLowAlarm())) {
|
||||||
|
data.setConductivityRate(NumberUtils.rate(data.getConductivity(), threshold.getConductivityLowAlarm(), 2));
|
||||||
|
}
|
||||||
|
if (NumberUtils.ge(data.getWaterTemperature(), threshold.getWaterTemperatureHighAlarm())) {
|
||||||
|
data.setWaterTemperatureRate(NumberUtils.rate(data.getWaterTemperature(), threshold.getWaterTemperatureHighAlarm(), 2));
|
||||||
|
} else if (NumberUtils.le(data.getWaterTemperature(), threshold.getWaterTemperatureLowAlarm())) {
|
||||||
|
data.setWaterTemperatureRate(NumberUtils.rate(data.getWaterTemperature(), threshold.getWaterTemperatureLowAlarm(), 2));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public CountSewageAlarmVo countSewageAlarm(HashMap<String, Object> paramMap) {
|
||||||
|
return baseMapper.countSewageAlarm(paramMap);
|
||||||
|
}
|
||||||
|
|
||||||
private QueryWrapper<SewageAlarm> getQueryWrapper(HashMap<String, Object> paramMap) {
|
private QueryWrapper<SewageAlarm> getQueryWrapper(HashMap<String, Object> paramMap) {
|
||||||
|
Integer type = MapUtils.getInteger(paramMap, "type");
|
||||||
String alias = "sa.";
|
String alias = "sa.";
|
||||||
QueryWrapper<SewageAlarm> queryWrapper = QueryGenerator.initPageQueryWrapper(SewageAlarm.class, paramMap, alias);
|
QueryWrapper<SewageAlarm> queryWrapper = QueryGenerator.initPageQueryWrapper(SewageAlarm.class, paramMap, alias);
|
||||||
queryWrapper.orderByDesc(alias + RefUtil.fieldNameUlc(SewageAlarm::getId));
|
queryWrapper.orderByDesc(alias + RefUtil.fieldNameUlc(SewageAlarm::getId));
|
||||||
|
if (Objects.equals(type, 1)) {
|
||||||
|
queryWrapper.ge(alias + RefUtil.fieldNameUlc(SewageAlarm::getAlarmTime), DateUtil.today());
|
||||||
|
}
|
||||||
return queryWrapper;
|
return queryWrapper;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,6 @@
|
|||||||
package com.zhgd.xmgl.modules.sewage.service.impl;
|
package com.zhgd.xmgl.modules.sewage.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.date.DateUtil;
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
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.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
@ -9,6 +8,7 @@ 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.zhgd.jeecg.common.execption.OpenAlertException;
|
import com.zhgd.jeecg.common.execption.OpenAlertException;
|
||||||
import com.zhgd.jeecg.common.system.query.QueryGenerator;
|
import com.zhgd.jeecg.common.system.query.QueryGenerator;
|
||||||
|
import com.zhgd.xmgl.enums.ParamEnum;
|
||||||
import com.zhgd.xmgl.modules.sewage.entity.SewageAlarm;
|
import com.zhgd.xmgl.modules.sewage.entity.SewageAlarm;
|
||||||
import com.zhgd.xmgl.modules.sewage.entity.SewageData;
|
import com.zhgd.xmgl.modules.sewage.entity.SewageData;
|
||||||
import com.zhgd.xmgl.modules.sewage.entity.SewageDev;
|
import com.zhgd.xmgl.modules.sewage.entity.SewageDev;
|
||||||
@ -81,37 +81,37 @@ public class SewageDataServiceImpl extends ServiceImpl<SewageDataMapper, SewageD
|
|||||||
//插入报警
|
//插入报警
|
||||||
SewageWarnThreshold threshold = sewageWarnThresholdMapper.selectOne(new LambdaQueryWrapper<SewageWarnThreshold>()
|
SewageWarnThreshold threshold = sewageWarnThresholdMapper.selectOne(new LambdaQueryWrapper<SewageWarnThreshold>()
|
||||||
.eq(SewageWarnThreshold::getDevSn, dev.getDevSn()));
|
.eq(SewageWarnThreshold::getDevSn, dev.getDevSn()));
|
||||||
insertAlarmIfLe(sd.getPhValue(), threshold.getPhValueLowWarn(), dev, "PH值", 1);
|
insertAlarmIfLe(sd.getPhValue(), threshold.getPhValueLowWarn(), dev, ParamEnum.SewageTypeEnum.PH_VALUE.getDesc(), 1, sd, ParamEnum.SewageTypeEnum.PH_VALUE.getValue());
|
||||||
insertAlarmIfLe(sd.getTurbidityValue(), threshold.getTurbidityValueLowWarn(), dev, "浊度值", 1);
|
insertAlarmIfLe(sd.getTurbidityValue(), threshold.getTurbidityValueLowWarn(), dev, ParamEnum.SewageTypeEnum.TURBIDITY_VALUE.getDesc(), 1, sd, ParamEnum.SewageTypeEnum.TURBIDITY_VALUE.getValue());
|
||||||
insertAlarmIfLe(sd.getConductivity(), threshold.getConductivityLowWarn(), dev, "电导率", 1);
|
insertAlarmIfLe(sd.getConductivity(), threshold.getConductivityLowWarn(), dev, ParamEnum.SewageTypeEnum.CONDUCTIVITY.getDesc(), 1, sd, ParamEnum.SewageTypeEnum.CONDUCTIVITY.getValue());
|
||||||
insertAlarmIfLe(sd.getDissolvedOxygen(), threshold.getDissolvedOxygenLowWarn(), dev, "溶解氧", 1);
|
insertAlarmIfLe(sd.getDissolvedOxygen(), threshold.getDissolvedOxygenLowWarn(), dev, ParamEnum.SewageTypeEnum.DISSOLVED_OXYGEN.getDesc(), 1, sd, ParamEnum.SewageTypeEnum.DISSOLVED_OXYGEN.getValue());
|
||||||
insertAlarmIfLe(sd.getWaterTemperature(), threshold.getWaterTemperatureLowWarn(), dev, "水温", 1);
|
insertAlarmIfLe(sd.getWaterTemperature(), threshold.getWaterTemperatureLowWarn(), dev, ParamEnum.SewageTypeEnum.WATER_TEMPERATURE.getDesc(), 1, sd, ParamEnum.SewageTypeEnum.WATER_TEMPERATURE.getValue());
|
||||||
insertAlarmIfLe(sd.getFlowVelocity(), threshold.getFlowVelocityLowWarn(), dev, "流速", 1);
|
insertAlarmIfLe(sd.getFlowVelocity(), threshold.getFlowVelocityLowWarn(), dev, ParamEnum.SewageTypeEnum.FLOW_RATE.getDesc(), 1, sd, ParamEnum.SewageTypeEnum.FLOW_RATE.getValue());
|
||||||
insertAlarmIfLe(sd.getWaterLevel(), threshold.getWaterLevelLowWarn(), dev, "水位", 1);
|
insertAlarmIfLe(sd.getWaterLevel(), threshold.getWaterLevelLowWarn(), dev, ParamEnum.SewageTypeEnum.WATER_LEVEL.getDesc(), 1, sd, ParamEnum.SewageTypeEnum.WATER_LEVEL.getValue());
|
||||||
|
|
||||||
insertAlarmIfLe(sd.getPhValue(), threshold.getPhValueLowAlarm(), dev, "PH值", 2);
|
insertAlarmIfLe(sd.getPhValue(), threshold.getPhValueLowAlarm(), dev, ParamEnum.SewageTypeEnum.PH_VALUE.getDesc(), 2, sd, ParamEnum.SewageTypeEnum.PH_VALUE.getValue());
|
||||||
insertAlarmIfLe(sd.getTurbidityValue(), threshold.getTurbidityValueLowAlarm(), dev, "浊度值", 2);
|
insertAlarmIfLe(sd.getTurbidityValue(), threshold.getTurbidityValueLowAlarm(), dev, ParamEnum.SewageTypeEnum.TURBIDITY_VALUE.getDesc(), 2, sd, ParamEnum.SewageTypeEnum.TURBIDITY_VALUE.getValue());
|
||||||
insertAlarmIfLe(sd.getConductivity(), threshold.getConductivityLowAlarm(), dev, "电导率", 2);
|
insertAlarmIfLe(sd.getConductivity(), threshold.getConductivityLowAlarm(), dev, ParamEnum.SewageTypeEnum.CONDUCTIVITY.getDesc(), 2, sd, ParamEnum.SewageTypeEnum.CONDUCTIVITY.getValue());
|
||||||
insertAlarmIfLe(sd.getDissolvedOxygen(), threshold.getDissolvedOxygenLowAlarm(), dev, "溶解氧", 2);
|
insertAlarmIfLe(sd.getDissolvedOxygen(), threshold.getDissolvedOxygenLowAlarm(), dev, ParamEnum.SewageTypeEnum.DISSOLVED_OXYGEN.getDesc(), 2, sd, ParamEnum.SewageTypeEnum.DISSOLVED_OXYGEN.getValue());
|
||||||
insertAlarmIfLe(sd.getWaterTemperature(), threshold.getWaterTemperatureLowAlarm(), dev, "水温", 2);
|
insertAlarmIfLe(sd.getWaterTemperature(), threshold.getWaterTemperatureLowAlarm(), dev, ParamEnum.SewageTypeEnum.WATER_TEMPERATURE.getDesc(), 2, sd, ParamEnum.SewageTypeEnum.WATER_TEMPERATURE.getValue());
|
||||||
insertAlarmIfLe(sd.getFlowVelocity(), threshold.getFlowVelocityLowAlarm(), dev, "流速", 2);
|
insertAlarmIfLe(sd.getFlowVelocity(), threshold.getFlowVelocityLowAlarm(), dev, ParamEnum.SewageTypeEnum.FLOW_RATE.getDesc(), 2, sd, ParamEnum.SewageTypeEnum.FLOW_RATE.getValue());
|
||||||
insertAlarmIfLe(sd.getWaterLevel(), threshold.getWaterLevelLowAlarm(), dev, "水位", 2);
|
insertAlarmIfLe(sd.getWaterLevel(), threshold.getWaterLevelLowAlarm(), dev, ParamEnum.SewageTypeEnum.WATER_LEVEL.getDesc(), 2, sd, ParamEnum.SewageTypeEnum.WATER_LEVEL.getValue());
|
||||||
|
|
||||||
insertAlarmIfGe(sd.getPhValue(), threshold.getPhValueHighWarn(), dev, "PH值", 1);
|
insertAlarmIfGe(sd.getPhValue(), threshold.getPhValueHighWarn(), dev, ParamEnum.SewageTypeEnum.PH_VALUE.getDesc(), 1, sd, ParamEnum.SewageTypeEnum.PH_VALUE.getValue());
|
||||||
insertAlarmIfGe(sd.getTurbidityValue(), threshold.getTurbidityValueHighWarn(), dev, "浊度值", 1);
|
insertAlarmIfGe(sd.getTurbidityValue(), threshold.getTurbidityValueHighWarn(), dev, ParamEnum.SewageTypeEnum.TURBIDITY_VALUE.getDesc(), 1, sd, ParamEnum.SewageTypeEnum.TURBIDITY_VALUE.getValue());
|
||||||
insertAlarmIfGe(sd.getConductivity(), threshold.getConductivityHighWarn(), dev, "电导率", 1);
|
insertAlarmIfGe(sd.getConductivity(), threshold.getConductivityHighWarn(), dev, ParamEnum.SewageTypeEnum.CONDUCTIVITY.getDesc(), 1, sd, ParamEnum.SewageTypeEnum.CONDUCTIVITY.getValue());
|
||||||
insertAlarmIfGe(sd.getDissolvedOxygen(), threshold.getDissolvedOxygenHighWarn(), dev, "溶解氧", 1);
|
insertAlarmIfGe(sd.getDissolvedOxygen(), threshold.getDissolvedOxygenHighWarn(), dev, ParamEnum.SewageTypeEnum.DISSOLVED_OXYGEN.getDesc(), 1, sd, ParamEnum.SewageTypeEnum.DISSOLVED_OXYGEN.getValue());
|
||||||
insertAlarmIfGe(sd.getWaterTemperature(), threshold.getWaterTemperatureHighWarn(), dev, "水温", 1);
|
insertAlarmIfGe(sd.getWaterTemperature(), threshold.getWaterTemperatureHighWarn(), dev, ParamEnum.SewageTypeEnum.WATER_TEMPERATURE.getDesc(), 1, sd, ParamEnum.SewageTypeEnum.WATER_TEMPERATURE.getValue());
|
||||||
insertAlarmIfGe(sd.getFlowVelocity(), threshold.getFlowVelocityHighWarn(), dev, "流速", 1);
|
insertAlarmIfGe(sd.getFlowVelocity(), threshold.getFlowVelocityHighWarn(), dev, ParamEnum.SewageTypeEnum.FLOW_RATE.getDesc(), 1, sd, ParamEnum.SewageTypeEnum.FLOW_RATE.getValue());
|
||||||
insertAlarmIfGe(sd.getWaterLevel(), threshold.getWaterLevelHighWarn(), dev, "水位", 1);
|
insertAlarmIfGe(sd.getWaterLevel(), threshold.getWaterLevelHighWarn(), dev, ParamEnum.SewageTypeEnum.WATER_LEVEL.getDesc(), 1, sd, ParamEnum.SewageTypeEnum.WATER_LEVEL.getValue());
|
||||||
|
|
||||||
insertAlarmIfGe(sd.getPhValue(), threshold.getPhValueHighAlarm(), dev, "PH值", 2);
|
insertAlarmIfGe(sd.getPhValue(), threshold.getPhValueHighAlarm(), dev, ParamEnum.SewageTypeEnum.PH_VALUE.getDesc(), 2, sd, ParamEnum.SewageTypeEnum.PH_VALUE.getValue());
|
||||||
insertAlarmIfGe(sd.getTurbidityValue(), threshold.getTurbidityValueHighAlarm(), dev, "浊度值", 2);
|
insertAlarmIfGe(sd.getTurbidityValue(), threshold.getTurbidityValueHighAlarm(), dev, ParamEnum.SewageTypeEnum.TURBIDITY_VALUE.getDesc(), 2, sd, ParamEnum.SewageTypeEnum.TURBIDITY_VALUE.getValue());
|
||||||
insertAlarmIfGe(sd.getConductivity(), threshold.getConductivityHighAlarm(), dev, "电导率", 2);
|
insertAlarmIfGe(sd.getConductivity(), threshold.getConductivityHighAlarm(), dev, ParamEnum.SewageTypeEnum.CONDUCTIVITY.getDesc(), 2, sd, ParamEnum.SewageTypeEnum.CONDUCTIVITY.getValue());
|
||||||
insertAlarmIfGe(sd.getDissolvedOxygen(), threshold.getDissolvedOxygenHighAlarm(), dev, "溶解氧", 2);
|
insertAlarmIfGe(sd.getDissolvedOxygen(), threshold.getDissolvedOxygenHighAlarm(), dev, ParamEnum.SewageTypeEnum.DISSOLVED_OXYGEN.getDesc(), 2, sd, ParamEnum.SewageTypeEnum.DISSOLVED_OXYGEN.getValue());
|
||||||
insertAlarmIfGe(sd.getWaterTemperature(), threshold.getWaterTemperatureHighAlarm(), dev, "水温", 2);
|
insertAlarmIfGe(sd.getWaterTemperature(), threshold.getWaterTemperatureHighAlarm(), dev, ParamEnum.SewageTypeEnum.WATER_TEMPERATURE.getDesc(), 2, sd, ParamEnum.SewageTypeEnum.WATER_TEMPERATURE.getValue());
|
||||||
insertAlarmIfGe(sd.getFlowVelocity(), threshold.getFlowVelocityHighAlarm(), dev, "流速", 2);
|
insertAlarmIfGe(sd.getFlowVelocity(), threshold.getFlowVelocityHighAlarm(), dev, ParamEnum.SewageTypeEnum.FLOW_RATE.getDesc(), 2, sd, ParamEnum.SewageTypeEnum.FLOW_RATE.getValue());
|
||||||
insertAlarmIfGe(sd.getWaterLevel(), threshold.getWaterLevelHighAlarm(), dev, "水位", 2);
|
insertAlarmIfGe(sd.getWaterLevel(), threshold.getWaterLevelHighAlarm(), dev, ParamEnum.SewageTypeEnum.WATER_LEVEL.getDesc(), 2, sd, ParamEnum.SewageTypeEnum.WATER_LEVEL.getValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -155,7 +155,7 @@ public class SewageDataServiceImpl extends ServiceImpl<SewageDataMapper, SewageD
|
|||||||
return sewageData;
|
return sewageData;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void insertAlarmIfLe(Double data, Double threshold, SewageDev dev, String c, Integer alarmType) {
|
private void insertAlarmIfLe(Double data, Double threshold, SewageDev dev, String c, Integer alarmType, SewageData sd, Integer sewageType) {
|
||||||
if (NumberUtils.le(data, threshold)) {
|
if (NumberUtils.le(data, threshold)) {
|
||||||
SewageAlarm entity = new SewageAlarm();
|
SewageAlarm entity = new SewageAlarm();
|
||||||
entity.setDevSn(dev.getDevSn());
|
entity.setDevSn(dev.getDevSn());
|
||||||
@ -168,11 +168,13 @@ public class SewageDataServiceImpl extends ServiceImpl<SewageDataMapper, SewageD
|
|||||||
entity.setProjectSn(dev.getProjectSn());
|
entity.setProjectSn(dev.getProjectSn());
|
||||||
entity.setAlarmType(alarmType);
|
entity.setAlarmType(alarmType);
|
||||||
entity.setDevName(dev.getDevName());
|
entity.setDevName(dev.getDevName());
|
||||||
|
entity.setSewageDataId(sd.getId());
|
||||||
|
entity.setSewageType(sewageType);
|
||||||
sewageAlarmMapper.insert(entity);
|
sewageAlarmMapper.insert(entity);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void insertAlarmIfGe(Double data, Double threshold, SewageDev dev, String c, Integer alarmType) {
|
private void insertAlarmIfGe(Double data, Double threshold, SewageDev dev, String c, Integer alarmType, SewageData sd, Integer sewageType) {
|
||||||
if (NumberUtils.ge(data, threshold)) {
|
if (NumberUtils.ge(data, threshold)) {
|
||||||
SewageAlarm entity = new SewageAlarm();
|
SewageAlarm entity = new SewageAlarm();
|
||||||
entity.setDevSn(dev.getDevSn());
|
entity.setDevSn(dev.getDevSn());
|
||||||
@ -185,6 +187,8 @@ public class SewageDataServiceImpl extends ServiceImpl<SewageDataMapper, SewageD
|
|||||||
entity.setProjectSn(dev.getProjectSn());
|
entity.setProjectSn(dev.getProjectSn());
|
||||||
entity.setAlarmType(alarmType);
|
entity.setAlarmType(alarmType);
|
||||||
entity.setDevName(dev.getDevName());
|
entity.setDevName(dev.getDevName());
|
||||||
|
entity.setSewageDataId(sd.getId());
|
||||||
|
entity.setSewageType(sewageType);
|
||||||
sewageAlarmMapper.insert(entity);
|
sewageAlarmMapper.insert(entity);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -18,6 +18,21 @@ public class NumberUtils {
|
|||||||
return NumberUtil.round(b1 / b2, scale).doubleValue();
|
return NumberUtil.round(b1 / b2, scale).doubleValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 涨跌幅比率,b1比b2增长多少
|
||||||
|
*
|
||||||
|
* @param b1
|
||||||
|
* @param b2
|
||||||
|
* @param scale 保留小数位
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static Double rate(Double b1, Double b2, Integer scale) {
|
||||||
|
if (b1 == null || b2 == null || b2.equals(0D)) {
|
||||||
|
return 0D;
|
||||||
|
}
|
||||||
|
return NumberUtil.round((b1 - b2) / b2 * 100, scale).doubleValue();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 大于等于
|
* 大于等于
|
||||||
*
|
*
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user