1.解决审计统计没有显示的bug

2.解决数据中心数据查询过慢和数据展示bug
This commit is contained in:
wr
2023-06-01 17:16:28 +08:00
parent 4fe1039934
commit 7419142abe
33 changed files with 797 additions and 286 deletions

View File

@@ -30,6 +30,7 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@@ -134,7 +135,7 @@ public class GeneralDeviceInfoController extends BaseController {
String methodDescribe = getMethodDescribe("getPracticalRunDeviceInfoAsSubstation");
List<GeneralDeviceDTO> substationDeviceInfos = generalDeviceService.getDeviceInfoAsSubstation(deviceInfoParam, Stream.of(0).collect(Collectors.toList()), Stream.of(1).collect(Collectors.toList()));
if (CollectionUtil.isEmpty(substationDeviceInfos)) {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.NO_DATA, null, methodDescribe);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, new ArrayList<>(), methodDescribe);
} else {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, substationDeviceInfos, methodDescribe);
}

View File

@@ -436,4 +436,11 @@ public interface LineMapper extends BaseMapper<Line> {
* @date 2023/5/25
*/
List<String> getLineByIDs(@Param("searchValue")String searchValue);
/**
* 通过电站id集合和电压等级
* @author cdf
* @date 2023/5/10
*/
List<Line> getSubStations(@Param("subId")List<String> subId, @Param("scale") List<String> scale);
}

View File

@@ -1109,4 +1109,29 @@
</where>
</select>
<select id="getSubStations" resultType="com.njcn.device.pq.pojo.po.Line">
SELECT
line.*
FROM
pq_line line
INNER JOIN pq_substation sub on line.id = sub.id
<where>
line.Level = 3
AND line.State = 1
<if test="subId!=null and subId.size()!=0">
and line.id in
<foreach collection="subId" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="scale!=null and scale.size()!=0">
and sub.Scale in
<foreach collection="scale" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
</where>
</select>
</mapper>

View File

@@ -62,7 +62,7 @@ public interface TerminalBaseService {
* @param substationIds 监测点id
* @return 变电站信息
*/
List<Line> getSubstationByIds(List<String> substationIds);
List<Line> getSubstationByIds(List<String> substationIds,List<String> scale);
/**
* 根据监测点id获取所有监测点

View File

@@ -1,6 +1,7 @@
package com.njcn.device.pq.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.njcn.common.pojo.dto.SimpleDTO;
@@ -198,6 +199,12 @@ public class GeneralDeviceService {
*/
public List<GeneralDeviceDTO> getDeviceInfoAsSubstation(DeviceInfoParam deviceInfoParam, List<Integer> runFlag, List<Integer> devModel) {
List<GeneralDeviceDTO> deviceInfoAsSubstation = new ArrayList<>();
List<String> scale = new ArrayList<>();
if(CollUtil.isNotEmpty(deviceInfoParam.getScale())){
scale = deviceInfoParam.getScale().stream().map(SimpleDTO::getId).collect(Collectors.toList());
deviceInfoParam.setScale(new ArrayList<>());
}
List<GeneralDeviceDTO> deviceInfoAsDept = getDeviceInfo(deviceInfoParam, runFlag, devModel);
List<String> substationIds = new ArrayList<>();
List<String> lineIds = new ArrayList<>();
@@ -212,7 +219,7 @@ public class GeneralDeviceService {
substationIds = substationIds.stream().distinct().collect(Collectors.toList());
lineIds = lineIds.stream().distinct().collect(Collectors.toList());
if (!CollectionUtil.isEmpty(substationIds)) {
List<Line> substations = terminalBaseService.getSubstationByIds(substationIds);
List<Line> substations = terminalBaseService.getSubstationByIds(substationIds,scale);
List<Line> lines = terminalBaseService.getLineById(lineIds);
for (Line substation : substations) {
deviceInfoAsSubstation.add(mergeDeviceInfoAsSubstation(substation, lines));

View File

@@ -203,7 +203,7 @@ public class LineIntegrityDataServiceImpl extends ServiceImpl<LineIntegrityDataM
if (CollectionUtils.isEmpty(lineIndexes)) {
continue;
}
outParam.setType(generalDeviceDTO.getName()+"\n("+generalDeviceDTO.getDeviceIndexes().size()+")");
outParam.setType(generalDeviceDTO.getName()+"\n("+generalDeviceDTO.getLineIndexes().size()+")");
//根据监测点查询数据完整性
List<PublicDTO> integrityData = getCondition(lineIndexes, integrityIconParam.getSearchBeginTime(), integrityIconParam.getSearchEndTime());
outParam.setSingle(NumberUtil.round(integrityData.stream().mapToDouble(PublicDTO::getData).average().orElse(3.14159),2).doubleValue());

View File

@@ -5,6 +5,7 @@ import cn.afterturn.easypoi.excel.ExcelImportUtil;
import cn.afterturn.easypoi.excel.entity.ExportParams;
import cn.afterturn.easypoi.excel.entity.ImportParams;
import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
@@ -1427,12 +1428,13 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
}
@Override
public List<Line> getSubstationByIds(List<String> substationIds) {
return this.lambdaQuery()
.in(Line::getId, substationIds)
.eq(Line::getLevel, 3)
.eq(Line::getState, DataStateEnum.ENABLE.getCode())
.list();
public List<Line> getSubstationByIds(List<String> substationIds,List<String> scale) {
return this.baseMapper.getSubStations(substationIds,scale);
// .in(Line::getId, substationIds)
// .eq(Line::getLevel, 3)
// .in(CollUtil.isNotEmpty(scale),Line::getLevel)
// .eq(Line::getState, DataStateEnum.ENABLE.getCode())
// .list();
}
@Override

View File

@@ -167,7 +167,7 @@ public class TerminalOnlineRateDataServiceImpl implements TerminalOnlineRateData
if (CollectionUtils.isEmpty(deviceIndexes)) {
continue;
}
type.add(generalDeviceDTO.getName()+"\n("+generalDeviceDTO.getDeviceIndexes().size()+")");
type.add(generalDeviceDTO.getName()+"\n("+generalDeviceDTO.getLineIndexes().size()+")");
//根据终端索引集查询在线率
List<PublicDTO> onlineRateList = getCondition(deviceIndexes, onlineRateCensusParam.getSearchBeginTime(), onlineRateCensusParam.getSearchEndTime());
single.add(onlineRateList.stream().mapToDouble(PublicDTO::getData).average().orElse(3.14159));