bug修复
This commit is contained in:
parent
cd869ac16e
commit
977c07c308
@ -439,13 +439,16 @@
|
|||||||
<select id="selectTowerRingRatioCount" resultType="java.util.Map">
|
<select id="selectTowerRingRatioCount" resultType="java.util.Map">
|
||||||
select tp.*,
|
select tp.*,
|
||||||
round(TRUNCATE((IFNULL(todayDevOnlineNum, 0) - IFNULL(yesterdayDevOnlineNum, 0)) /
|
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 (
|
from (
|
||||||
SELECT count(1) devNum,
|
SELECT count(1) devNum,
|
||||||
IFNULL(SUM((case
|
IFNULL(SUM((case
|
||||||
when round((UNIX_TIMESTAMP(now()) - UNIX_TIMESTAMP(w1.real_time)) / 60) <= 30 then 1
|
when round((UNIX_TIMESTAMP(now()) - UNIX_TIMESTAMP(w1.real_time)) / 60) <= 30 then 1
|
||||||
else 0 end)), 0) todayDevOnlineNum,
|
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
|
from tower w1
|
||||||
INNER JOIN project a ON w1.project_sn = a.project_sn
|
INNER JOIN project a ON w1.project_sn = a.project_sn
|
||||||
INNER JOIN company cp ON a.company_sn = cp.company_sn
|
INNER JOIN company cp ON a.company_sn = cp.company_sn
|
||||||
@ -458,6 +461,13 @@
|
|||||||
AND dev_type = 4
|
AND dev_type = 4
|
||||||
GROUP BY project_sn
|
GROUP BY project_sn
|
||||||
) st ON w1.project_sn = a.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>
|
<where>
|
||||||
<if test="companyType == '1'.toString()">
|
<if test="companyType == '1'.toString()">
|
||||||
and f.headquarters_sn = #{sn}
|
and f.headquarters_sn = #{sn}
|
||||||
|
|||||||
@ -60,11 +60,22 @@
|
|||||||
</if>
|
</if>
|
||||||
</select>
|
</select>
|
||||||
<select id="selectWeekTowerList" resultType="java.util.Map">
|
<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)
|
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 cp ON a.company_sn=cp.company_sn
|
||||||
INNER JOIN company b ON cp.parent_id=b.company_id
|
INNER JOIN company b ON cp.parent_id=b.company_id
|
||||||
Left JOIN company f ON b.parent_id=f.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)
|
where w1.query_time >=DATE_ADD(CURDATE(),INTERVAL -weekday(CURDATE()) day)
|
||||||
<if test="companyType == '1'.toString()">
|
<if test="companyType == '1'.toString()">
|
||||||
and f.headquarters_sn=#{sn}
|
and f.headquarters_sn=#{sn}
|
||||||
@ -83,7 +94,6 @@
|
|||||||
</if>
|
</if>
|
||||||
group by titleName
|
group by titleName
|
||||||
order by titleName
|
order by titleName
|
||||||
|
|
||||||
</select>
|
</select>
|
||||||
<select id="selectProjectDevStatisticList" resultType="java.util.Map">
|
<select id="selectProjectDevStatisticList" resultType="java.util.Map">
|
||||||
SELECT
|
SELECT
|
||||||
|
|||||||
@ -3,6 +3,7 @@ package com.zhgd.xmgl.modules.sewage.controller;
|
|||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.gexin.fastjson.JSON;
|
import com.gexin.fastjson.JSON;
|
||||||
import com.zhgd.jeecg.common.api.vo.Result;
|
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.entity.SewageData;
|
||||||
import com.zhgd.xmgl.modules.sewage.service.ISewageDataService;
|
import com.zhgd.xmgl.modules.sewage.service.ISewageDataService;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
@ -194,4 +195,11 @@ public class SewageDataController {
|
|||||||
return Result.success(sewageDataService.countSewageDataTrend(paramMap));
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
package com.zhgd.xmgl.modules.sewage.entity;
|
package com.zhgd.xmgl.modules.sewage.entity;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.IdType;
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
@ -122,5 +123,30 @@ public class SewageData implements Serializable {
|
|||||||
@ApiModelProperty(value = "水温(℃)对比报警阈值比率")
|
@ApiModelProperty(value = "水温(℃)对比报警阈值比率")
|
||||||
private java.lang.Double waterTemperatureRate;
|
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;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -155,9 +155,75 @@ public class SewageDataServiceImpl extends ServiceImpl<SewageDataMapper, SewageD
|
|||||||
} else {
|
} else {
|
||||||
sewageData.setIsWarning(false);
|
sewageData.setIsWarning(false);
|
||||||
}
|
}
|
||||||
|
sewageData.setAlarmList(sewageAlarms);
|
||||||
|
setAlarmStatus(sewageData, sewageAlarms);
|
||||||
return sewageData;
|
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) {
|
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();
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user