bug修改

This commit is contained in:
guo 2024-01-23 10:45:57 +08:00
parent 5a994f83ab
commit 92a350d244
13 changed files with 244 additions and 35 deletions

View File

@ -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;
}
}
}

View File

@ -1,6 +1,8 @@
package com.zhgd.xmgl.modules.sewage.controller;
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.util.SecurityUtils;
import io.swagger.annotations.Api;
@ -64,6 +66,7 @@ public class SewageAlarmController {
@ApiImplicitParams({
@ApiImplicitParam(name = "pageNo", 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")
public Result<IPage<SewageAlarm>> queryPageList(@ApiIgnore @RequestParam HashMap<String, Object> paramMap) {
@ -191,4 +194,25 @@ public class SewageAlarmController {
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));
}
}

View File

@ -193,4 +193,5 @@ public class SewageDataController {
public Result<List<SewageData>> countSewageDataTrend(@ApiIgnore @RequestBody HashMap<String, Object> paramMap) {
return Result.success(sewageDataService.countSewageDataTrend(paramMap));
}
}

View File

@ -131,13 +131,14 @@ public class SewageAlarm implements Serializable {
@ApiModelProperty(value = "报警状态 1预警 2告警")
private java.lang.Integer alarmType;
@ApiModelProperty(value = "污水数据id")
private java.lang.Long sewageDataId;
@ApiModelProperty(value = "污水类型")
private java.lang.Integer sewageType;
@TableField(exist = false)
@ApiModelProperty(value = "设备名称")
private java.lang.String devName;
@TableField(exist = false)
@ApiModelProperty(value = "污水数据id")
private java.lang.Long sewageDataId;
}

View File

@ -114,4 +114,13 @@ public class SewageData implements Serializable {
@ApiModelProperty(value = "是否报警")
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;
}

View File

@ -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;
}

View File

@ -4,11 +4,14 @@ 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.modules.sewage.entity.vo.CountSewageAlarmVo;
import org.apache.ibatis.annotations.Mapper;
import com.zhgd.xmgl.modules.sewage.entity.SewageAlarm;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import java.util.HashMap;
/**
* @Description: 污水预警
* @author pds
@ -19,4 +22,8 @@ import org.apache.ibatis.annotations.Param;
public interface SewageAlarmMapper extends BaseMapper<SewageAlarm> {
IPage<SewageAlarm> queryPageList(Page<SewageAlarm> page, @Param(Constants.WRAPPER) QueryWrapper<SewageAlarm> queryWrapper);
CountSewageAlarmVo countSewageAlarm(HashMap<String, Object> paramMap);
SewageAlarm getNewestOne(HashMap<String, Object> paramMap);
}

View File

@ -7,4 +7,38 @@
join sewage_dev sd on sd.dev_sn=sa.dev_sn
${ew.customSqlSegment}
</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>

View File

@ -3,6 +3,8 @@ package com.zhgd.xmgl.modules.sewage.service;
import com.zhgd.xmgl.modules.sewage.entity.SewageAlarm;
import com.baomidou.mybatisplus.extension.service.IService;
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.List;
@ -19,4 +21,7 @@ public interface ISewageAlarmService extends IService<SewageAlarm> {
List<SewageAlarm> queryList(HashMap<String, Object> paramMap);
SewageData waringDataContrast(HashMap<String, Object> paramMap);
CountSewageAlarmVo countSewageAlarm(HashMap<String, Object> paramMap);
}

View File

@ -26,4 +26,5 @@ public interface ISewageDataService extends IService<SewageData> {
List<SewageData> countSewageDataTrend(HashMap<String, Object> paramMap);
SewageData queryNewestData(HashMap<String, Object> paramMap);
}

View File

@ -1,19 +1,30 @@
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.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.enums.ParamEnum;
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.SewageWarnThresholdMapper;
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.RefUtil;
import org.apache.commons.collections.MapUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Objects;
/**
* @Description: 污水预警
@ -23,6 +34,11 @@ import java.util.List;
*/
@Service
public class SewageAlarmServiceImpl extends ServiceImpl<SewageAlarmMapper, SewageAlarm> implements ISewageAlarmService {
@Autowired
SewageAlarmMapper sewageAlarmMapper;
@Autowired
SewageWarnThresholdMapper sewageWarnThresholdMapper;
@Override
public IPage<SewageAlarm> queryPageList(HashMap<String, Object> paramMap) {
QueryWrapper<SewageAlarm> queryWrapper = getQueryWrapper(paramMap);
@ -38,10 +54,50 @@ public class SewageAlarmServiceImpl extends ServiceImpl<SewageAlarmMapper, Sewag
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) {
Integer type = MapUtils.getInteger(paramMap, "type");
String alias = "sa.";
QueryWrapper<SewageAlarm> queryWrapper = QueryGenerator.initPageQueryWrapper(SewageAlarm.class, paramMap, alias);
queryWrapper.orderByDesc(alias + RefUtil.fieldNameUlc(SewageAlarm::getId));
if (Objects.equals(type, 1)) {
queryWrapper.ge(alias + RefUtil.fieldNameUlc(SewageAlarm::getAlarmTime), DateUtil.today());
}
return queryWrapper;
}

View File

@ -1,7 +1,6 @@
package com.zhgd.xmgl.modules.sewage.service.impl;
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.QueryWrapper;
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.zhgd.jeecg.common.execption.OpenAlertException;
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.SewageData;
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>()
.eq(SewageWarnThreshold::getDevSn, dev.getDevSn()));
insertAlarmIfLe(sd.getPhValue(), threshold.getPhValueLowWarn(), dev, "PH值", 1);
insertAlarmIfLe(sd.getTurbidityValue(), threshold.getTurbidityValueLowWarn(), dev, "浊度值", 1);
insertAlarmIfLe(sd.getConductivity(), threshold.getConductivityLowWarn(), dev, "电导率", 1);
insertAlarmIfLe(sd.getDissolvedOxygen(), threshold.getDissolvedOxygenLowWarn(), dev, "溶解氧", 1);
insertAlarmIfLe(sd.getWaterTemperature(), threshold.getWaterTemperatureLowWarn(), dev, "水温", 1);
insertAlarmIfLe(sd.getFlowVelocity(), threshold.getFlowVelocityLowWarn(), dev, "流速", 1);
insertAlarmIfLe(sd.getWaterLevel(), threshold.getWaterLevelLowWarn(), dev, "水位", 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, ParamEnum.SewageTypeEnum.TURBIDITY_VALUE.getDesc(), 1, sd, ParamEnum.SewageTypeEnum.TURBIDITY_VALUE.getValue());
insertAlarmIfLe(sd.getConductivity(), threshold.getConductivityLowWarn(), dev, ParamEnum.SewageTypeEnum.CONDUCTIVITY.getDesc(), 1, sd, ParamEnum.SewageTypeEnum.CONDUCTIVITY.getValue());
insertAlarmIfLe(sd.getDissolvedOxygen(), threshold.getDissolvedOxygenLowWarn(), dev, ParamEnum.SewageTypeEnum.DISSOLVED_OXYGEN.getDesc(), 1, sd, ParamEnum.SewageTypeEnum.DISSOLVED_OXYGEN.getValue());
insertAlarmIfLe(sd.getWaterTemperature(), threshold.getWaterTemperatureLowWarn(), dev, ParamEnum.SewageTypeEnum.WATER_TEMPERATURE.getDesc(), 1, sd, ParamEnum.SewageTypeEnum.WATER_TEMPERATURE.getValue());
insertAlarmIfLe(sd.getFlowVelocity(), threshold.getFlowVelocityLowWarn(), dev, ParamEnum.SewageTypeEnum.FLOW_RATE.getDesc(), 1, sd, ParamEnum.SewageTypeEnum.FLOW_RATE.getValue());
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.getTurbidityValue(), threshold.getTurbidityValueLowAlarm(), dev, "浊度值", 2);
insertAlarmIfLe(sd.getConductivity(), threshold.getConductivityLowAlarm(), dev, "电导率", 2);
insertAlarmIfLe(sd.getDissolvedOxygen(), threshold.getDissolvedOxygenLowAlarm(), dev, "溶解氧", 2);
insertAlarmIfLe(sd.getWaterTemperature(), threshold.getWaterTemperatureLowAlarm(), dev, "水温", 2);
insertAlarmIfLe(sd.getFlowVelocity(), threshold.getFlowVelocityLowAlarm(), dev, "流速", 2);
insertAlarmIfLe(sd.getWaterLevel(), threshold.getWaterLevelLowAlarm(), dev, "水位", 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, ParamEnum.SewageTypeEnum.TURBIDITY_VALUE.getDesc(), 2, sd, ParamEnum.SewageTypeEnum.TURBIDITY_VALUE.getValue());
insertAlarmIfLe(sd.getConductivity(), threshold.getConductivityLowAlarm(), dev, ParamEnum.SewageTypeEnum.CONDUCTIVITY.getDesc(), 2, sd, ParamEnum.SewageTypeEnum.CONDUCTIVITY.getValue());
insertAlarmIfLe(sd.getDissolvedOxygen(), threshold.getDissolvedOxygenLowAlarm(), dev, ParamEnum.SewageTypeEnum.DISSOLVED_OXYGEN.getDesc(), 2, sd, ParamEnum.SewageTypeEnum.DISSOLVED_OXYGEN.getValue());
insertAlarmIfLe(sd.getWaterTemperature(), threshold.getWaterTemperatureLowAlarm(), dev, ParamEnum.SewageTypeEnum.WATER_TEMPERATURE.getDesc(), 2, sd, ParamEnum.SewageTypeEnum.WATER_TEMPERATURE.getValue());
insertAlarmIfLe(sd.getFlowVelocity(), threshold.getFlowVelocityLowAlarm(), dev, ParamEnum.SewageTypeEnum.FLOW_RATE.getDesc(), 2, sd, ParamEnum.SewageTypeEnum.FLOW_RATE.getValue());
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.getTurbidityValue(), threshold.getTurbidityValueHighWarn(), dev, "浊度值", 1);
insertAlarmIfGe(sd.getConductivity(), threshold.getConductivityHighWarn(), dev, "电导率", 1);
insertAlarmIfGe(sd.getDissolvedOxygen(), threshold.getDissolvedOxygenHighWarn(), dev, "溶解氧", 1);
insertAlarmIfGe(sd.getWaterTemperature(), threshold.getWaterTemperatureHighWarn(), dev, "水温", 1);
insertAlarmIfGe(sd.getFlowVelocity(), threshold.getFlowVelocityHighWarn(), dev, "流速", 1);
insertAlarmIfGe(sd.getWaterLevel(), threshold.getWaterLevelHighWarn(), dev, "水位", 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, ParamEnum.SewageTypeEnum.TURBIDITY_VALUE.getDesc(), 1, sd, ParamEnum.SewageTypeEnum.TURBIDITY_VALUE.getValue());
insertAlarmIfGe(sd.getConductivity(), threshold.getConductivityHighWarn(), dev, ParamEnum.SewageTypeEnum.CONDUCTIVITY.getDesc(), 1, sd, ParamEnum.SewageTypeEnum.CONDUCTIVITY.getValue());
insertAlarmIfGe(sd.getDissolvedOxygen(), threshold.getDissolvedOxygenHighWarn(), dev, ParamEnum.SewageTypeEnum.DISSOLVED_OXYGEN.getDesc(), 1, sd, ParamEnum.SewageTypeEnum.DISSOLVED_OXYGEN.getValue());
insertAlarmIfGe(sd.getWaterTemperature(), threshold.getWaterTemperatureHighWarn(), dev, ParamEnum.SewageTypeEnum.WATER_TEMPERATURE.getDesc(), 1, sd, ParamEnum.SewageTypeEnum.WATER_TEMPERATURE.getValue());
insertAlarmIfGe(sd.getFlowVelocity(), threshold.getFlowVelocityHighWarn(), dev, ParamEnum.SewageTypeEnum.FLOW_RATE.getDesc(), 1, sd, ParamEnum.SewageTypeEnum.FLOW_RATE.getValue());
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.getTurbidityValue(), threshold.getTurbidityValueHighAlarm(), dev, "浊度值", 2);
insertAlarmIfGe(sd.getConductivity(), threshold.getConductivityHighAlarm(), dev, "电导率", 2);
insertAlarmIfGe(sd.getDissolvedOxygen(), threshold.getDissolvedOxygenHighAlarm(), dev, "溶解氧", 2);
insertAlarmIfGe(sd.getWaterTemperature(), threshold.getWaterTemperatureHighAlarm(), dev, "水温", 2);
insertAlarmIfGe(sd.getFlowVelocity(), threshold.getFlowVelocityHighAlarm(), dev, "流速", 2);
insertAlarmIfGe(sd.getWaterLevel(), threshold.getWaterLevelHighAlarm(), dev, "水位", 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, ParamEnum.SewageTypeEnum.TURBIDITY_VALUE.getDesc(), 2, sd, ParamEnum.SewageTypeEnum.TURBIDITY_VALUE.getValue());
insertAlarmIfGe(sd.getConductivity(), threshold.getConductivityHighAlarm(), dev, ParamEnum.SewageTypeEnum.CONDUCTIVITY.getDesc(), 2, sd, ParamEnum.SewageTypeEnum.CONDUCTIVITY.getValue());
insertAlarmIfGe(sd.getDissolvedOxygen(), threshold.getDissolvedOxygenHighAlarm(), dev, ParamEnum.SewageTypeEnum.DISSOLVED_OXYGEN.getDesc(), 2, sd, ParamEnum.SewageTypeEnum.DISSOLVED_OXYGEN.getValue());
insertAlarmIfGe(sd.getWaterTemperature(), threshold.getWaterTemperatureHighAlarm(), dev, ParamEnum.SewageTypeEnum.WATER_TEMPERATURE.getDesc(), 2, sd, ParamEnum.SewageTypeEnum.WATER_TEMPERATURE.getValue());
insertAlarmIfGe(sd.getFlowVelocity(), threshold.getFlowVelocityHighAlarm(), dev, ParamEnum.SewageTypeEnum.FLOW_RATE.getDesc(), 2, sd, ParamEnum.SewageTypeEnum.FLOW_RATE.getValue());
insertAlarmIfGe(sd.getWaterLevel(), threshold.getWaterLevelHighAlarm(), dev, ParamEnum.SewageTypeEnum.WATER_LEVEL.getDesc(), 2, sd, ParamEnum.SewageTypeEnum.WATER_LEVEL.getValue());
}
@Override
@ -155,7 +155,7 @@ public class SewageDataServiceImpl extends ServiceImpl<SewageDataMapper, SewageD
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)) {
SewageAlarm entity = new SewageAlarm();
entity.setDevSn(dev.getDevSn());
@ -168,11 +168,13 @@ public class SewageDataServiceImpl extends ServiceImpl<SewageDataMapper, SewageD
entity.setProjectSn(dev.getProjectSn());
entity.setAlarmType(alarmType);
entity.setDevName(dev.getDevName());
entity.setSewageDataId(sd.getId());
entity.setSewageType(sewageType);
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)) {
SewageAlarm entity = new SewageAlarm();
entity.setDevSn(dev.getDevSn());
@ -185,6 +187,8 @@ public class SewageDataServiceImpl extends ServiceImpl<SewageDataMapper, SewageD
entity.setProjectSn(dev.getProjectSn());
entity.setAlarmType(alarmType);
entity.setDevName(dev.getDevName());
entity.setSewageDataId(sd.getId());
entity.setSewageType(sewageType);
sewageAlarmMapper.insert(entity);
}
}

View File

@ -18,6 +18,21 @@ public class NumberUtils {
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();
}
/**
* 大于等于
*