风速功率修正系数接口优化;

This commit is contained in:
yu 2024-12-03 10:35:20 +08:00
parent 8cdd730fff
commit 05173d897a
2 changed files with 25 additions and 4 deletions

View File

@ -11,9 +11,12 @@ import java.io.IOException;
public interface WindSpeedCorrectService {
/** 导入 */
void importWindSpeedCorrect(MultipartFile file) throws IOException;
/** 获取风机风速功率修正系数列表 */
PageDataInfo<SysPowerCurveFactorVo> getList(SysPowerCurveFactorDto dto) ;
/** 导出 */
void exportWindSpeedCorrect(SysPowerCurveFactorDto dto, HttpServletRequest request, HttpServletResponse response);
}

View File

@ -41,6 +41,7 @@ import java.nio.charset.StandardCharsets;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
@Service
public class WindSpeedCorrectServiceImpl implements WindSpeedCorrectService {
@ -97,12 +98,15 @@ public class WindSpeedCorrectServiceImpl implements WindSpeedCorrectService {
pageQuery.setPageNum(dto.getPageNum());
pageQuery.setPageSize(dto.getPageSize());
IPage<SysPowerCurveFactorVo> iPage =sysPowerCurveFactorMapper.querySysPowerCurveFactorListInPage(pageQuery.build(),dto);
return PageDataInfo.build(iPage.getRecords(), iPage.getTotal());
List<SysPowerCurveFactorVo> groupedAndSortedRecords = groupAndSort(iPage.getRecords());
return PageDataInfo.build(groupedAndSortedRecords, iPage.getTotal());
}
@Override
public void exportWindSpeedCorrect(SysPowerCurveFactorDto dto, HttpServletRequest request, HttpServletResponse response) {
List<SysPowerCurveFactorVo> sysPowerCurveFactorVos = sysPowerCurveFactorMapper.querySysPowerCurveFactorList(dto);
List<SysPowerCurveFactorVo> sysPowerCurveFactorData = sysPowerCurveFactorMapper.querySysPowerCurveFactorList(dto);
//排序
List<SysPowerCurveFactorVo> sysPowerCurveFactorVos = groupAndSort(sysPowerCurveFactorData);
List<SysPowerCurveFactorExcelVo> listData = new ArrayList<>();
for (SysPowerCurveFactorVo sysPowerCurveFactorVo : sysPowerCurveFactorVos) {
if (sysPowerCurveFactorVo.getSpeedMax() ==null){
@ -116,7 +120,6 @@ public class WindSpeedCorrectServiceImpl implements WindSpeedCorrectService {
BeanCopyUtils.copy(sysPowerCurveFactorVo,sysPowerCurveFactorExcelVo);
listData.add(sysPowerCurveFactorExcelVo);
}
listData.sort(Comparator.comparing(SysPowerCurveFactorExcelVo::getName));
//自定义别名 别名的key和实体类中的名称要对应上
LinkedHashMap<String, String> map = new LinkedHashMap<>();
map.put("name", "风机名称");
@ -209,7 +212,22 @@ public class WindSpeedCorrectServiceImpl implements WindSpeedCorrectService {
return nameIdMap;
}
public List<SysPowerCurveFactorVo> groupAndSort(List<SysPowerCurveFactorVo> records) {
List<SysPowerCurveFactorVo> list = new ArrayList<>();
//分组
Map<String, List<SysPowerCurveFactorVo>> groupedRecords = records.stream()
.collect(Collectors.groupingBy(SysPowerCurveFactorVo::getName, Collectors.toList()));
// 按照键进行排序
Map<String, List> sortedGroupedRecords = groupedRecords.entrySet().stream()
.sorted(Comparator.comparing(Map.Entry::getKey))
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (oldValue, newValue) -> oldValue, LinkedHashMap::new));
// 在每个组内按照SpeedMin排序
for (List<SysPowerCurveFactorVo> group : sortedGroupedRecords.values()) {
group.sort(Comparator.comparing(SysPowerCurveFactorVo::getSpeedMin));
list.addAll(group);
}
return list;
}
/**
* 解析区间字符串提取所有数字以及它们是否包括在内
*