bug修复

This commit is contained in:
guo 2024-02-01 09:25:37 +08:00
parent cd869ac16e
commit 977c07c308
5 changed files with 124 additions and 4 deletions

View File

@ -439,13 +439,16 @@
<select id="selectTowerRingRatioCount" resultType="java.util.Map">
select tp.*,
round(TRUNCATE((IFNULL(todayDevOnlineNum, 0) - IFNULL(yesterdayDevOnlineNum, 0)) /
IFNULL(yesterdayDevOnlineNum, 0), 4) * 100, 2) ringRatio
IFNULL(yesterdayDevOnlineNum, 0), 4) * 100, 2) ringRatio,
ifnull(round((tp.pass_dev_online_num+tp.todayDevOnlineNum)/(tp.pass_dev_num+tp.devNum)*100,2),0) weekOnlineRatio
from (
SELECT count(1) devNum,
IFNULL(SUM((case
when round((UNIX_TIMESTAMP(now()) - UNIX_TIMESTAMP(w1.real_time)) / 60) &lt;= 30 then 1
else 0 end)), 0) todayDevOnlineNum,
IFNULL(SUM(IFNULL(st.dev_online_num, 0)), 0) yesterdayDevOnlineNum
IFNULL(SUM(IFNULL(st.dev_online_num, 0)), 0) yesterdayDevOnlineNum,
st1.dev_online_num as pass_dev_online_num,
st1.dev_num as pass_dev_num
from tower w1
INNER JOIN project a ON w1.project_sn = a.project_sn
INNER JOIN company cp ON a.company_sn = cp.company_sn
@ -458,6 +461,13 @@
AND dev_type = 4
GROUP BY project_sn
) st ON w1.project_sn = a.project_sn
LEFT JOIN (
SELECT project_sn, IFNULL(SUM(dev_online_num), 0) dev_online_num,IFNULL(SUM(dev_num), 0) dev_num
from project_dev_statistics
WHERE query_time >= DATE_FORMAT(DATE_ADD(NOW(), INTERVAL -7 DAY), '%Y-%m-%d')
AND dev_type = 4
GROUP BY project_sn
) st1 ON w1.project_sn = a.project_sn
<where>
<if test="companyType == '1'.toString()">
and f.headquarters_sn = #{sn}

View File

@ -60,11 +60,22 @@
</if>
</select>
<select id="selectWeekTowerList" resultType="java.util.Map">
SELECT IFNULL(SUM(IFNULL(w1.dev_num,0)),0) devNum,IFNULL(SUM(IFNULL(w1.dev_online_num,0)),0) devOnlineNum,w1.query_time titleName
SELECT IFNULL(SUM(IFNULL(if(w1.query_time=current_date,t1.devNum,w1.dev_num),0)),0)
devNum,IFNULL(SUM(IFNULL(if(w1.query_time=current_date,t1.devOnlineNum,w1.dev_online_num),0)),0)
devOnlineNum,w1.query_time titleName
from project_dev_statistics w1 INNER JOIN project a ON (w1.project_sn=a.project_sn AND w1.dev_type=4)
INNER JOIN company cp ON a.company_sn=cp.company_sn
INNER JOIN company b ON cp.parent_id=b.company_id
Left JOIN company f ON b.parent_id=f.company_id
LEFT JOIN (
SELECT count( 1 ) devNum,
IFNULL(SUM((CASE WHEN round(( UNIX_TIMESTAMP( now()) - UNIX_TIMESTAMP( real_time )) / 60 ) <![CDATA[<=]]> 30
THEN 1 ELSE 0 END)),0) devOnlineNum,
project_sn,
CURRENT_DATE titleName
from tower
group by project_sn
)t1 ON t1.titleName=w1.query_time and t1.project_sn=w1.project_sn
where w1.query_time >=DATE_ADD(CURDATE(),INTERVAL -weekday(CURDATE()) day)
<if test="companyType == '1'.toString()">
and f.headquarters_sn=#{sn}
@ -83,7 +94,6 @@
</if>
group by titleName
order by titleName
</select>
<select id="selectProjectDevStatisticList" resultType="java.util.Map">
SELECT

View File

@ -3,6 +3,7 @@ package com.zhgd.xmgl.modules.sewage.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gexin.fastjson.JSON;
import com.zhgd.jeecg.common.api.vo.Result;
import com.zhgd.xmgl.enums.ParamEnum;
import com.zhgd.xmgl.modules.sewage.entity.SewageData;
import com.zhgd.xmgl.modules.sewage.service.ISewageDataService;
import io.swagger.annotations.Api;
@ -194,4 +195,11 @@ public class SewageDataController {
return Result.success(sewageDataService.countSewageDataTrend(paramMap));
}
@ApiOperation(value = "获取污水类型信息", notes = "获取污水类型信息")
@GetMapping(value = "/getSewageTypeEnum")
public Result<ParamEnum.SewageTypeEnum[]> getSewageTypeEnum() {
ParamEnum.SewageTypeEnum[] values = ParamEnum.SewageTypeEnum.values();
return Result.success(values);
}
}

View File

@ -1,6 +1,7 @@
package com.zhgd.xmgl.modules.sewage.entity;
import java.io.Serializable;
import java.util.List;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
@ -122,5 +123,30 @@ public class SewageData implements Serializable {
@ApiModelProperty(value = "水温(℃)对比报警阈值比率")
private java.lang.Double waterTemperatureRate;
@TableField(exist = false)
@ApiModelProperty(value = "污水预警列表")
private List<SewageAlarm> alarmList;
@TableField(exist = false)
@ApiModelProperty(value = "PH值状态0正常 1预警 2告警")
private Integer phValueStatus;
@TableField(exist = false)
@ApiModelProperty(value = "浊度值NTU状态0正常 1预警 2告警")
private Integer turbidityValueStatus;
@TableField(exist = false)
@ApiModelProperty(value = "电导率μS/cm状态0正常 1预警 2告警")
private Integer conductivityStatus;
@TableField(exist = false)
@ApiModelProperty(value = "溶解氧mg/L状态0正常 1预警 2告警")
private Integer dissolvedOxygenStatus;
@TableField(exist = false)
@ApiModelProperty(value = "水温状态0正常 1预警 2告警")
private Integer waterTemperatureStatus;
@TableField(exist = false)
@ApiModelProperty(value = "流速m/s状态0正常 1预警 2告警")
private Integer flowVelocityStatus;
@TableField(exist = false)
@ApiModelProperty(value = "水位m状态0正常 1预警 2告警")
private Integer waterLevelStatus;
}

View File

@ -155,9 +155,75 @@ public class SewageDataServiceImpl extends ServiceImpl<SewageDataMapper, SewageD
} else {
sewageData.setIsWarning(false);
}
sewageData.setAlarmList(sewageAlarms);
setAlarmStatus(sewageData, sewageAlarms);
return sewageData;
}
private void setAlarmStatus(SewageData sewageData, List<SewageAlarm> sewageAlarms) {
if (CollUtil.isNotEmpty(sewageAlarms)) {
Map<Integer, SewageAlarm> alarmMap = sewageAlarms.stream().filter(sewageAlarm -> Objects.equals(sewageAlarm.getAlarmType(), 2)).collect(Collectors.toMap(SewageAlarm::getSewageType, Function.identity(), (sewageAlarm, sewageAlarm2) -> sewageAlarm));
Map<Integer, SewageAlarm> warnMap = sewageAlarms.stream().filter(sewageAlarm -> Objects.equals(sewageAlarm.getAlarmType(), 1)).collect(Collectors.toMap(SewageAlarm::getSewageType, Function.identity(), (sewageAlarm, sewageAlarm2) -> sewageAlarm));
//
if (alarmMap.get(ParamEnum.SewageTypeEnum.PH_VALUE.getValue()) != null) {
sewageData.setPhValueStatus(2);
} else if (warnMap.get(ParamEnum.SewageTypeEnum.PH_VALUE.getValue()) != null) {
sewageData.setPhValueStatus(1);
} else {
sewageData.setPhValueStatus(0);
}
//
if (alarmMap.get(ParamEnum.SewageTypeEnum.TURBIDITY_VALUE.getValue()) != null) {
sewageData.setTurbidityValueStatus(2);
} else if (warnMap.get(ParamEnum.SewageTypeEnum.TURBIDITY_VALUE.getValue()) != null) {
sewageData.setTurbidityValueStatus(1);
} else {
sewageData.setTurbidityValueStatus(0);
}
//
if (alarmMap.get(ParamEnum.SewageTypeEnum.CONDUCTIVITY.getValue()) != null) {
sewageData.setConductivityStatus(2);
} else if (warnMap.get(ParamEnum.SewageTypeEnum.CONDUCTIVITY.getValue()) != null) {
sewageData.setConductivityStatus(1);
} else {
sewageData.setConductivityStatus(0);
}
//
if (alarmMap.get(ParamEnum.SewageTypeEnum.DISSOLVED_OXYGEN.getValue()) != null) {
sewageData.setDissolvedOxygenStatus(2);
} else if (warnMap.get(ParamEnum.SewageTypeEnum.DISSOLVED_OXYGEN.getValue()) != null) {
sewageData.setDissolvedOxygenStatus(1);
} else {
sewageData.setDissolvedOxygenStatus(0);
}
//
if (alarmMap.get(ParamEnum.SewageTypeEnum.WATER_TEMPERATURE.getValue()) != null) {
sewageData.setWaterTemperatureStatus(2);
} else if (warnMap.get(ParamEnum.SewageTypeEnum.WATER_TEMPERATURE.getValue()) != null) {
sewageData.setWaterTemperatureStatus(1);
} else {
sewageData.setWaterTemperatureStatus(0);
}
//
if (alarmMap.get(ParamEnum.SewageTypeEnum.FLOW_RATE.getValue()) != null) {
sewageData.setFlowVelocityStatus(2);
} else if (warnMap.get(ParamEnum.SewageTypeEnum.FLOW_RATE.getValue()) != null) {
sewageData.setFlowVelocityStatus(1);
} else {
sewageData.setFlowVelocityStatus(0);
}
//
if (alarmMap.get(ParamEnum.SewageTypeEnum.WATER_LEVEL.getValue()) != null) {
sewageData.setWaterLevelStatus(2);
} else if (warnMap.get(ParamEnum.SewageTypeEnum.WATER_LEVEL.getValue()) != null) {
sewageData.setWaterLevelStatus(1);
} else {
sewageData.setWaterLevelStatus(0);
}
}
}
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();