diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/AnalyzeController.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/AnalyzeController.java
index febc5dc01..4798875f4 100644
--- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/AnalyzeController.java
+++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/AnalyzeController.java
@@ -9,7 +9,6 @@ import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.common.utils.LogUtil;
import com.njcn.device.pq.pojo.dto.PollutionLineDTO;
-import com.njcn.device.pq.pojo.dto.PollutionSubstationDTO;
import com.njcn.harmonic.pojo.param.HarmonicPublicParam;
import com.njcn.harmonic.pojo.vo.*;
import com.njcn.harmonic.service.IAnalyzeService;
diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/RStatLimitTargetDMapper.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/RStatLimitTargetDMapper.java
new file mode 100644
index 000000000..67d604a52
--- /dev/null
+++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/RStatLimitTargetDMapper.java
@@ -0,0 +1,30 @@
+package com.njcn.harmonic.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.njcn.harmonic.pojo.po.day.RStatLimitTargetDPO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ *
+ * 合格率统计日表(是否越限) Mapper 接口
+ *
+ *
+ * @author wr
+ * @since 2023-04-23
+ */
+public interface RStatLimitTargetDMapper extends BaseMapper {
+
+ /**
+ * 谐波查询
+ * @return
+ */
+ List getSumV(@Param("ids") List list,
+ @Param("startTime") String startTime,
+ @Param("endTime") String endTime);
+
+ List getSumI(@Param("ids") List list,
+ @Param("startTime") String startTime,
+ @Param("endTime") String endTime);
+}
diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/mapping/RStatLimitTargetDMapper.xml b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/mapping/RStatLimitTargetDMapper.xml
new file mode 100644
index 000000000..eb23fcac1
--- /dev/null
+++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/mapping/RStatLimitTargetDMapper.xml
@@ -0,0 +1,100 @@
+
+
+
+
+
+
+
diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/IRStatLimitTargetDService.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/IRStatLimitTargetDService.java
new file mode 100644
index 000000000..14874668f
--- /dev/null
+++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/IRStatLimitTargetDService.java
@@ -0,0 +1,16 @@
+package com.njcn.harmonic.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.njcn.harmonic.pojo.po.day.RStatLimitTargetDPO;
+
+/**
+ *
+ * 合格率统计日表(是否越限) 服务类
+ *
+ *
+ * @author wr
+ * @since 2023-04-23
+ */
+public interface IRStatLimitTargetDService extends IService {
+
+}
diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/HarmonicServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/HarmonicServiceImpl.java
index 69e4f97cf..e0ebc9e89 100644
--- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/HarmonicServiceImpl.java
+++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/HarmonicServiceImpl.java
@@ -1,6 +1,11 @@
package com.njcn.harmonic.service.impl;
import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.NumberUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.njcn.common.config.GeneralInfo;
import com.njcn.device.pq.api.GeneralDeviceInfoClient;
import com.njcn.device.pq.api.LineFeignClient;
@@ -9,21 +14,20 @@ import com.njcn.device.pq.pojo.dto.PollutionLineDTO;
import com.njcn.device.pq.pojo.dto.PollutionParamDTO;
import com.njcn.device.pq.pojo.vo.LineDeviceStateVO;
import com.njcn.harmonic.constant.Param;
+import com.njcn.harmonic.mapper.RStatLimitTargetDMapper;
import com.njcn.harmonic.pojo.dto.AreaDTO;
import com.njcn.harmonic.pojo.param.HarmonicPublicParam;
import com.njcn.harmonic.pojo.po.LimitTarget;
+import com.njcn.harmonic.pojo.po.day.RStatLimitTargetDPO;
import com.njcn.harmonic.pojo.vo.HarmonicDeptVO;
import com.njcn.harmonic.pojo.vo.HarmonicLineVO;
import com.njcn.harmonic.pojo.vo.HarmonicSubstationVO;
import com.njcn.harmonic.pojo.vo.PollutionVO;
import com.njcn.harmonic.service.IHarmonicService;
-import com.njcn.influxdb.utils.InfluxDbUtils;
import com.njcn.system.enums.DicDataEnum;
import com.njcn.web.utils.RequestUtil;
import lombok.AllArgsConstructor;
import org.apache.commons.lang3.StringUtils;
-import org.influxdb.dto.QueryResult;
-import org.influxdb.impl.InfluxDBResultMapper;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
@@ -47,12 +51,11 @@ public class HarmonicServiceImpl implements IHarmonicService {
private final GeneralDeviceInfoClient generalDeviceInfoClient;
- private final InfluxDbUtils influxDbUtils;
-
private final GeneralInfo generalInfo;
private final LineFeignClient lineFeignClient;
+ private final RStatLimitTargetDMapper targetDMapper;
@Override
public List getDeptSubstationRelations(HarmonicPublicParam harmonicPublicParam) {
harmonicPublicParam.setServerName(generalInfo.getMicroServiceName());
@@ -72,6 +75,18 @@ public class HarmonicServiceImpl implements IHarmonicService {
lineInfo = lineFeignClient.getLineInfo(paramDTO).getData();
}
Map> map = lineInfo.stream().collect(Collectors.groupingBy(PollutionLineDTO::getSubstationId));
+ //获取所有的数据信息
+ List limitTargetNew = getLimitTargetNew(lineList, harmonicPublicParam.getSearchBeginTime(), harmonicPublicParam.getSearchEndTime());
+ //聚合查询
+ List allData = new ArrayList<>();
+ if (Objects.equals(harmonicPublicParam.getStatisticalType().getCode(), DicDataEnum.XBDY_ENUM.getCode())){
+ allData = getAllDataV(lineList, harmonicPublicParam.getSearchBeginTime(), harmonicPublicParam.getSearchEndTime());
+ } else if (Objects.equals(harmonicPublicParam.getStatisticalType().getCode(), DicDataEnum.XBDL_ENUM.getCode())){
+ allData = getAllDataI(lineList, harmonicPublicParam.getSearchBeginTime(), harmonicPublicParam.getSearchEndTime());
+
+ }
+
+ List finalAllData = allData;
deptList.forEach(dept->{
List childrenList = new ArrayList<>();
PollutionVO pollutionVO = new PollutionVO();
@@ -84,7 +99,13 @@ public class HarmonicServiceImpl implements IHarmonicService {
children.setId(sub);
children.setPid(dept.getIndex());
children.setName(l1.get(0).getSubstation());
- children.setData(handleData(getLimitTarget(l1.stream().map(PollutionLineDTO::getId).collect(Collectors.toList()), harmonicPublicParam.getSearchBeginTime(),harmonicPublicParam.getSearchEndTime()),harmonicPublicParam.getStatisticalType().getCode(),l1.stream().map(PollutionLineDTO::getId).collect(Collectors.toList()), harmonicPublicParam.getSearchBeginTime(),harmonicPublicParam.getSearchEndTime()).getRatio());
+ //监测点id
+ List lineIds = l1.stream().map(PollutionLineDTO::getId).collect(Collectors.toList());
+ List collect = limitTargetNew.stream().filter(x -> lineIds.contains(x.getLineId())).collect(Collectors.toList());
+
+ List sumList = finalAllData.stream().filter(x -> lineIds.contains(x.getLineId())).collect(Collectors.toList());
+
+ children.setData(handleDataNew(collect,sumList,harmonicPublicParam.getStatisticalType().getCode(),l1.stream().map(PollutionLineDTO::getId).collect(Collectors.toList()), harmonicPublicParam.getSearchBeginTime(),harmonicPublicParam.getSearchEndTime()).getRatio());
childrenList.add(children);
});
}
@@ -92,7 +113,8 @@ public class HarmonicServiceImpl implements IHarmonicService {
pollutionVO.setChildren(childrenList.stream().sorted(Comparator.comparing(PollutionVO::getData).reversed().thenComparing(PollutionVO::getName)).collect(Collectors.toList()));
}
if (!CollectionUtils.isEmpty(dept.getLineIndexes())){
- pollutionVO.setData(handleData(getLimitTarget(lineList, harmonicPublicParam.getSearchBeginTime(),harmonicPublicParam.getSearchEndTime()),harmonicPublicParam.getStatisticalType().getCode(),lineList, harmonicPublicParam.getSearchBeginTime(),harmonicPublicParam.getSearchEndTime()).getRatio());
+// pollutionVO.setData(handleData(getLimitTarget(lineList, harmonicPublicParam.getSearchBeginTime(),harmonicPublicParam.getSearchEndTime()),harmonicPublicParam.getStatisticalType().getCode(),lineList, harmonicPublicParam.getSearchBeginTime(),harmonicPublicParam.getSearchEndTime()).getRatio());
+ pollutionVO.setData(NumberUtil.round(childrenList.stream().mapToDouble(PollutionVO::getData).average().orElse(3.14159),2).doubleValue());
}
list.add(pollutionVO);
});
@@ -110,20 +132,20 @@ public class HarmonicServiceImpl implements IHarmonicService {
deptList.forEach(item->{
List lineList = item.getLineIndexes();
HarmonicDeptVO harmonicDeptVO = new HarmonicDeptVO();
- if (!CollectionUtils.isEmpty(lineList)){
- List limitTargetList = getLimitTarget(lineList,param.getSearchBeginTime(),param.getSearchEndTime());
- AreaDTO areaDTO = handleData(limitTargetList,param.getStatisticalType().getCode(),lineList,param.getSearchBeginTime(),param.getSearchEndTime());
- BeanUtil.copyProperties(areaDTO,harmonicDeptVO);
- }
- harmonicDeptVO.setId(item.getIndex());
- harmonicDeptVO.setName(item.getName());
- list.add(harmonicDeptVO);
- });
- if (!CollectionUtils.isEmpty(list)){
- return list.stream().sorted(Comparator.comparing(HarmonicDeptVO::getRatio).reversed().thenComparing(HarmonicDeptVO::getOnlineCount).thenComparing(HarmonicDeptVO::getOverLineCount)).collect(Collectors.toList());
+ if (!CollectionUtils.isEmpty(lineList)){
+ List limitTargetList = getLimitTarget(lineList,param.getSearchBeginTime(),param.getSearchEndTime());
+ AreaDTO areaDTO = handleData(limitTargetList,param.getStatisticalType().getCode(),lineList,param.getSearchBeginTime(),param.getSearchEndTime());
+ BeanUtil.copyProperties(areaDTO,harmonicDeptVO);
}
- return list;
+ harmonicDeptVO.setId(item.getIndex());
+ harmonicDeptVO.setName(item.getName());
+ list.add(harmonicDeptVO);
+ });
+ if (!CollectionUtils.isEmpty(list)){
+ return list.stream().sorted(Comparator.comparing(HarmonicDeptVO::getRatio).reversed().thenComparing(HarmonicDeptVO::getOnlineCount).thenComparing(HarmonicDeptVO::getOverLineCount)).collect(Collectors.toList());
}
+ return list;
+}
@Override
public List getSubstationInfoById(HarmonicPublicParam param) {
@@ -235,6 +257,14 @@ public class HarmonicServiceImpl implements IHarmonicService {
return list;
}
+ public List getLimitTargetNew(List lineList, String startTime, String endTime){
+ List limitRates = targetDMapper.selectList(new LambdaQueryWrapper()
+ .in(RStatLimitTargetDPO::getLineId, lineList)
+ .ge(StrUtil.isNotBlank(startTime), RStatLimitTargetDPO::getTime, DateUtil.beginOfDay(DateUtil.parse(startTime)))
+ .le(StrUtil.isNotBlank(endTime), RStatLimitTargetDPO::getTime, DateUtil.endOfDay(DateUtil.parse(endTime)))
+ );
+ return limitRates;
+ }
/**
* 功能描述: 获取limitTarget数据
* @param lineList 部门列表
@@ -245,23 +275,141 @@ public class HarmonicServiceImpl implements IHarmonicService {
* @date 2022/2/25 15:05
*/
public List getLimitTarget(List lineList, String startTime, String endTime){
- StringBuilder stringBuilder = new StringBuilder();
- stringBuilder.append(Param.TIME + " >= '").append(startTime).append("' and ").append(Param.TIME).append(" <= '").append(endTime).append("' and (");
- for (int i=0;i listInfo = new ArrayList<>();
+ List limitRates = targetDMapper.selectList(new LambdaQueryWrapper()
+ .in(RStatLimitTargetDPO::getLineId, lineList)
+ .ge(StrUtil.isNotBlank(startTime), RStatLimitTargetDPO::getTime, DateUtil.beginOfDay(DateUtil.parse(startTime)))
+ .le(StrUtil.isNotBlank(endTime), RStatLimitTargetDPO::getTime, DateUtil.endOfDay(DateUtil.parse(endTime)))
+ );
+ if(CollUtil.isNotEmpty(limitRates)){
+ limitRates.forEach(list ->{
+ LimitTarget limitRatePO = BeanUtil.copyProperties(list,LimitTarget.class);
+ limitRatePO.setTime(list.getTime().toInstant());
+ limitRatePO.setLineId(list.getLineId());
+ limitRatePO.setPhasicType(list.getPhasicType());
+ limitRatePO.setAllTime(list.getAllTime());
+ limitRatePO.setFlickerAllTime(list.getFlickerAllTime());
+ limitRatePO.setFlickerOverTime(list.getFlickerOvertime());
+ limitRatePO.setFreqDevOverTime(list.getFreqDevOvertime());
+ limitRatePO.setIHarm2OverTime(list.getIharm2Overtime());
+ limitRatePO.setIHarm3OverTime(list.getIharm3Overtime());
+ limitRatePO.setIHarm4OverTime(list.getIharm4Overtime());
+ limitRatePO.setIHarm5OverTime(list.getIharm5Overtime());
+ limitRatePO.setIHarm6OverTime(list.getIharm6Overtime());
+ limitRatePO.setIHarm7OverTime(list.getIharm7Overtime());
+ limitRatePO.setIHarm8OverTime(list.getIharm8Overtime());
+ limitRatePO.setIHarm9OverTime(list.getIharm9Overtime());
+ limitRatePO.setIHarm10OverTime(list.getIharm10Overtime());
+ limitRatePO.setIHarm11OverTime(list.getIharm11Overtime());
+ limitRatePO.setIHarm12OverTime(list.getIharm12Overtime());
+ limitRatePO.setIHarm13OverTime(list.getIharm13Overtime());
+ limitRatePO.setIHarm14OverTime(list.getIharm14Overtime());
+ limitRatePO.setIHarm15OverTime(list.getIharm15Overtime());
+ limitRatePO.setIHarm16OverTime(list.getIharm16Overtime());
+ limitRatePO.setIHarm17OverTime(list.getIharm17Overtime());
+ limitRatePO.setIHarm18OverTime(list.getIharm18Overtime());
+ limitRatePO.setIHarm19OverTime(list.getIharm19Overtime());
+ limitRatePO.setIHarm20OverTime(list.getIharm20Overtime());
+ limitRatePO.setIHarm21OverTime(list.getIharm21Overtime());
+ limitRatePO.setIHarm22OverTime(list.getIharm22Overtime());
+ limitRatePO.setIHarm23OverTime(list.getIharm23Overtime());
+ limitRatePO.setIHarm24OverTime(list.getIharm24Overtime());
+ limitRatePO.setIHarm25OverTime(list.getIharm25Overtime());
+ limitRatePO.setINegOverTime(list.getINegOvertime());
+ limitRatePO.setUAberranceOverTime(list.getUaberranceOvertime());
+ limitRatePO.setUBalanceOverTime(list.getUbalanceOvertime());
+ limitRatePO.setUHarm2OverTime(list.getUharm2Overtime());
+ limitRatePO.setUHarm3OverTime(list.getUharm3Overtime());
+ limitRatePO.setUHarm4OverTime(list.getUharm4Overtime());
+ limitRatePO.setUHarm5OverTime(list.getUharm5Overtime());
+ limitRatePO.setUHarm6OverTime(list.getUharm6Overtime());
+ limitRatePO.setUHarm7OverTime(list.getUharm7Overtime());
+ limitRatePO.setUHarm8OverTime(list.getUharm8Overtime());
+ limitRatePO.setUHarm9OverTime(list.getUharm9Overtime());
+ limitRatePO.setUHarm10OverTime(list.getUharm10Overtime());
+ limitRatePO.setUHarm11OverTime(list.getUharm11Overtime());
+ limitRatePO.setUHarm12OverTime(list.getUharm12Overtime());
+ limitRatePO.setUHarm13OverTime(list.getUharm13Overtime());
+ limitRatePO.setUHarm14OverTime(list.getUharm14Overtime());
+ limitRatePO.setUHarm15OverTime(list.getUharm15Overtime());
+ limitRatePO.setUHarm16OverTime(list.getUharm16Overtime());
+ limitRatePO.setUHarm17OverTime(list.getUharm17Overtime());
+ limitRatePO.setUHarm18OverTime(list.getUharm18Overtime());
+ limitRatePO.setUHarm19OverTime(list.getUharm19Overtime());
+ limitRatePO.setUHarm20OverTime(list.getUharm20Overtime());
+ limitRatePO.setUHarm21OverTime(list.getUharm21Overtime());
+ limitRatePO.setUHarm22OverTime(list.getUharm22Overtime());
+ limitRatePO.setUHarm23OverTime(list.getUharm23Overtime());
+ limitRatePO.setUHarm24OverTime(list.getUharm24Overtime());
+ limitRatePO.setUHarm25OverTime(list.getUharm25Overtime());
+ limitRatePO.setVoltageDevOverTime(list.getVoltageDevOvertime());
+ listInfo.add(limitRatePO);
+ });
}
- stringBuilder.append(" tz('Asia/Shanghai')");
- String sql = "select * from limit_target where " + stringBuilder;
- QueryResult sqlResult = influxDbUtils.query(sql);
- InfluxDBResultMapper resultMapper = new InfluxDBResultMapper();
- return resultMapper.toPOJO(sqlResult,LimitTarget.class);
+ return listInfo;
+
}
- /**
+ public AreaDTO handleDataNew(List list, List sumList,String type,List lineList,String startTime,String endTime) {
+ int onlineCount = 0,overLineCount = 0,overCountByDay = 0;
+ double avgOverDay = 0.0,ratio = 0.0;
+ AreaDTO areaDTO = new AreaDTO();
+ if (!CollectionUtils.isEmpty(list)){
+ List data=sumList;
+ if (!CollectionUtils.isEmpty(sumList)) {
+ onlineCount = data.size();
+ //在线监测点个数
+ areaDTO.setOnlineCount(onlineCount);
+ //超标监测点数
+ for (RStatLimitTargetDPO pojo : data) {
+ if (pojo.getAllTime()>0){
+ overLineCount = overLineCount + 1;
+ }
+ }
+ }
+ }
+ Map> map = list.stream().collect(Collectors.groupingBy(RStatLimitTargetDPO::getTime));
+ for (Date key : map.keySet()) {
+ int overDay = 0;
+ List l = map.get(key);
+ for (RStatLimitTargetDPO pojo : l) {
+ if (Objects.equals(type, DicDataEnum.XBDY_ENUM.getCode())){
+ if (pojo.getUaberranceOvertime()>0 || pojo.getUharm20Overtime()>0 || pojo.getUharm3Overtime()>0 || pojo.getUharm4Overtime()>0 || pojo.getUharm5Overtime()>0 || pojo.getUharm6Overtime()>0 || pojo.getUharm7Overtime()>0 || pojo.getUharm8Overtime()>0 || pojo.getUharm9Overtime()>0 || pojo.getUharm10Overtime()>0 || pojo.getUharm11Overtime()>0 || pojo.getUharm12Overtime()>0 || pojo.getUharm13Overtime()>0 || pojo.getUharm14Overtime()>0 || pojo.getUharm15Overtime()>0 || pojo.getUharm16Overtime()>0 || pojo.getUharm17Overtime()>0 || pojo.getUharm18Overtime()>0 || pojo.getUharm19Overtime()>0 || pojo.getUharm20Overtime()>0 || pojo.getUharm21Overtime()>0 || pojo.getUharm22Overtime()>0 || pojo.getUharm23Overtime()>0 || pojo.getUharm24Overtime()>0 || pojo.getUharm25Overtime()>0){
+ overCountByDay = overCountByDay + 1;
+ overDay = overDay + 1;
+ }
+ } else if (Objects.equals(type, DicDataEnum.XBDL_ENUM.getCode())){
+ if (pojo.getIharm2Overtime()>0 || pojo.getIharm3Overtime()>0 || pojo.getIharm4Overtime()>0 || pojo.getIharm5Overtime()>0 || pojo.getIharm6Overtime()>0 || pojo.getIharm7Overtime()>0 || pojo.getIharm8Overtime()>0 || pojo.getIharm9Overtime()>0 || pojo.getIharm10Overtime()>0 || pojo.getIharm11Overtime()>0 || pojo.getIharm12Overtime()>0 || pojo.getIharm13Overtime()>0 || pojo.getIharm14Overtime()>0 || pojo.getIharm15Overtime()>0 || pojo.getIharm16Overtime()>0 || pojo.getIharm17Overtime()>0 || pojo.getIharm18Overtime()>0 || pojo.getIharm19Overtime()>0 || pojo.getIharm20Overtime()>0 || pojo.getIharm21Overtime()>0 || pojo.getIharm22Overtime()>0 || pojo.getIharm23Overtime()>0 || pojo.getIharm24Overtime()>0 || pojo.getIharm25Overtime()>0){
+ overCountByDay = overCountByDay + 1;
+ overDay = overDay + 1;
+ }
+ }
+ }
+ ratio = ratio + overDay*1.0/l.size();
+ }
+ //平均超标天数
+ if (CollectionUtils.isEmpty(list)){
+ avgOverDay = -1.0;
+ } else {
+ avgOverDay = overLineCount == 0?0.0:BigDecimal.valueOf(overCountByDay*1.0/overLineCount).setScale(2, RoundingMode.HALF_UP).doubleValue();
+ }
+ //月监测点超标占比
+ ratio = map.size() == 0?-1.0:BigDecimal.valueOf(ratio*100/map.size()).setScale(2, RoundingMode.HALF_UP).doubleValue();
+ areaDTO.setOnlineCount(onlineCount);
+ areaDTO.setOverLineCount(overLineCount);
+ //平均超标天数
+ areaDTO.setAverageOverDay(avgOverDay);
+ areaDTO.setRatio(Math.min(ratio,100.0));
+ return areaDTO;
+ }
+
+
+
+
+
+
+
+ /** todo
* 功能描述: 处理区域(变电站)在线监测点数、超标监测点数、平均超标天数、占比
* @param list 集合
* type 类型
@@ -274,19 +422,24 @@ public class HarmonicServiceImpl implements IHarmonicService {
double avgOverDay = 0.0,ratio = 0.0;
AreaDTO areaDTO = new AreaDTO();
if (!CollectionUtils.isEmpty(list)){
- List data = getAllData(lineList,startTime,endTime);
+ List data = new ArrayList<>();
+ if (Objects.equals(type, DicDataEnum.XBDY_ENUM.getCode())){
+ data = getAllDataV(lineList,startTime,endTime);
+ } else if (Objects.equals(type, DicDataEnum.XBDL_ENUM.getCode())){
+ data = getAllDataI(lineList,startTime,endTime);
+ }
if (!CollectionUtils.isEmpty(data)) {
onlineCount = data.size();
//在线监测点个数
areaDTO.setOnlineCount(onlineCount);
//超标监测点数
- for (LimitTarget pojo : data) {
+ for (RStatLimitTargetDPO pojo : data) {
if (Objects.equals(type, DicDataEnum.XBDY_ENUM.getCode())){
- if (pojo.getUHarm2OverTime()>0){
+ if (pojo.getAllTime()>0){
overLineCount = overLineCount + 1;
}
} else if (Objects.equals(type, DicDataEnum.XBDL_ENUM.getCode())){
- if (pojo.getIHarm2OverTime()>0){
+ if (pojo.getAllTime()>0){
overLineCount = overLineCount + 1;
}
}
@@ -334,37 +487,11 @@ public class HarmonicServiceImpl implements IHarmonicService {
* @author xy
* @date 2022/2/25 15:05
*/
- private List getAllData(List list, String startTime, String endTime){
- StringBuilder stringBuilder = new StringBuilder();
- StringBuilder stringBuilder1 = new StringBuilder();
- stringBuilder.append(Param.TIME + " >= '").append(startTime).append("' and ").append(Param.TIME).append(" <= '").append(endTime).append("' and (");
- for (int i=0;i getAllDataV(List list, String startTime, String endTime){
+ return targetDMapper.getSumV(list,startTime,endTime);
+ }
+ private List getAllDataI(List list, String startTime, String endTime){
+ return targetDMapper.getSumI(list,startTime,endTime);
}
@@ -379,51 +506,21 @@ public class HarmonicServiceImpl implements IHarmonicService {
* @return
*/
private Integer getWarningInfo(List lineList, String startTime, String endTime, String type) {
- int result = 0;
- StringBuilder stringBuilder = new StringBuilder();
- StringBuilder stringBuilder1 = new StringBuilder();
- stringBuilder.append(Param.TIME + " >= '").append(startTime).append("' and ").append(Param.TIME).append(" <= '").append(endTime).append("' and (");
- for (int i=0;i sum=new ArrayList<>();
if (Objects.equals(type, DicDataEnum.XBDY_ENUM.getCode())){
- stringBuilder1.append("sum(uaberrance_overtime)+");
- for (int i = 2; i <= 25; i++) {
- if (i==25){
- stringBuilder1.append("sum(uharm_").append(i).append("_overtime)");;
- } else {
- stringBuilder1.append("sum(uharm_").append(i).append("_overtime)+");
- }
- }
+ sum = targetDMapper.getSumV(lineList, startTime, endTime);
+
} else if (Objects.equals(type, DicDataEnum.XBDL_ENUM.getCode())){
- for (int i = 2; i <= 25; i++) {
- if (i==25){
- stringBuilder1.append("sum(iharm_").append(i).append("_overtime)");;
- } else {
- stringBuilder1.append("sum(iharm_").append(i).append("_overtime)+");
- }
- }
+ sum = targetDMapper.getSumV(lineList, startTime, endTime);
+
}
- String sql = "select "+stringBuilder1+" from limit_rate where " + stringBuilder;
- QueryResult sqlResult = influxDbUtils.query(sql);
- List list = sqlResult.getResults().get(0).getSeries();
- if (!CollectionUtils.isEmpty(list)) {
- for (QueryResult.Series series : list) {
- List> valueList = series.getValues();
- if (!CollectionUtils.isEmpty(valueList)) {
- for (List