风速功率修正系数接口优化;
This commit is contained in:
parent
8cdd730fff
commit
05173d897a
@ -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);
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
/**
|
||||
* 解析区间字符串,提取所有数字以及它们是否包括在内。
|
||||
*
|
||||
|
Loading…
Reference in New Issue
Block a user