1.数据完整性列表调整

This commit is contained in:
wr
2024-04-03 09:28:32 +08:00
parent 542cdbc9b3
commit 438c21880f
3 changed files with 85 additions and 1 deletions

View File

@@ -25,4 +25,6 @@ public interface IntegrityMapper extends Mapper<Integrity> {
//查询监测点时间范围内详细的数据完整性
List<IntergralityTable> selectIntegrityData(@Param("list") List<Integer> tempIndexs,@Param("startTime")Date startTime,@Param("endTime") Date endTime);
List<IntergralityTable> selectGWIntegrityData(@Param("list") List<Integer> tempIndexs,@Param("startTime")Date startTime,@Param("endTime") Date endTime);
}

View File

@@ -325,7 +325,7 @@ public class DeviceServiceImpl implements DeviceService {
//国网监测点
List<Integer> countryLineIndexs = getGwLine(lineIndexs);
if (!CollectionUtils.isEmpty(countryLineIndexs)) {
intergralityData.setCountryNets(getIntegralityTable(startTime, endTime, countryLineIndexs));
intergralityData.setCountryNets(getGWIntegralityTable(startTime, endTime, countryLineIndexs));
}
return intergralityData;
}
@@ -359,6 +359,35 @@ public class DeviceServiceImpl implements DeviceService {
return intergralityTables;
}
/**
* 分片处理获取监测点数据完整性所有数据
*
* @param startTime 起始时间
* @param endTime 截止时间
* @param lineIndexs 监测点索引
*/
private List<IntergralityTable> getGWIntegralityTable(Date startTime, Date endTime, List<Integer> lineIndexs) {
List<IntergralityTable> intergralityTables = new ArrayList<>();
//分片1000个监测点
if (lineIndexs.size() > 1000) {
int times = lineIndexs.size() / 1000 + 1;
for (int i = 1; i <= times; i++) {
if (lineIndexs.size() > 1000) {
List<Integer> tempIndexs = lineIndexs.subList(0, 1000);
List<IntergralityTable> tempTables = integrityMapper.selectGWIntegrityData(tempIndexs, startTime, endTime);
intergralityTables.addAll(tempTables);
tempIndexs.clear();
} else {
List<IntergralityTable> tempTables = integrityMapper.selectGWIntegrityData(lineIndexs, startTime, endTime);
intergralityTables.addAll(tempTables);
}
}
} else {
intergralityTables = integrityMapper.selectGWIntegrityData(lineIndexs, startTime, endTime);
}
return intergralityTables;
}
/**
* 根据装置索引,查询出需要展示的数据
*/