风速功率系数,过滤重复数据

This commit is contained in:
yu 2024-12-16 16:18:14 +08:00
parent 20706b8b96
commit b6a06dd246
2 changed files with 38 additions and 1 deletions

View File

@ -31,6 +31,8 @@ public class WindSpeedCorrectController {
windSpeedCorrectService.importWindSpeedCorrect( file);
return R.success("导入成功");
}
/** 获取风机风速功率修正系数列表 */
@PostMapping("/getList")
public R<PageDataInfo<SysPowerCurveFactorVo>> getList(@RequestBody SysPowerCurveFactorDto dto) {

View File

@ -5,6 +5,7 @@ import cn.hutool.core.io.IoUtil;
import cn.hutool.poi.excel.ExcelReader;
import cn.hutool.poi.excel.ExcelUtil;
import cn.hutool.poi.excel.ExcelWriter;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.das.common.config.SessionUtil;
import com.das.common.exceptions.ServiceException;
@ -12,7 +13,6 @@ import com.das.common.utils.BeanCopyUtils;
import com.das.common.utils.PageDataInfo;
import com.das.common.utils.PageQuery;
import com.das.modules.auth.domain.vo.SysUserVo;
import com.das.modules.cache.domain.WindSpeedCoefValue;
import com.das.modules.cache.service.CacheService;
import com.das.modules.equipment.entity.SysEquipment;
import com.das.modules.equipment.mapper.SysEquipmentMapper;
@ -26,6 +26,7 @@ import com.das.modules.page.service.WindSpeedCorrectService;
import jakarta.servlet.ServletOutputStream;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.VerticalAlignment;
@ -33,6 +34,7 @@ import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.util.CellRangeAddress;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
@ -57,6 +59,7 @@ public class WindSpeedCorrectServiceImpl implements WindSpeedCorrectService {
@Autowired
private CacheService cacheService;
@Transactional(rollbackFor = Exception.class)
@Override
public void importWindSpeedCorrect(MultipartFile file) throws IOException {
// 通过文件获取输入流
@ -93,6 +96,38 @@ public class WindSpeedCorrectServiceImpl implements WindSpeedCorrectService {
sysPowerCurveFactor.setRevision(1);
listData.add(sysPowerCurveFactor);
}
//过滤重复数据
List<SysPowerCurveFactor> existingData = sysPowerCurveFactorMapper.selectList(new QueryWrapper<SysPowerCurveFactor>()
.lambda()
.in(SysPowerCurveFactor::getTurbineId, listData.stream().map(SysPowerCurveFactor::getTurbineId).collect(Collectors.toList()))
.in(SysPowerCurveFactor::getSpeedMin, listData.stream().map(SysPowerCurveFactor::getSpeedMin).collect(Collectors.toList()))
.in(SysPowerCurveFactor::getSpeedMax, listData.stream().map(SysPowerCurveFactor::getSpeedMax).collect(Collectors.toList()))
.in(SysPowerCurveFactor::getFactorK, listData.stream().map(SysPowerCurveFactor::getFactorK).collect(Collectors.toList()))
.in(SysPowerCurveFactor::getFactorB, listData.stream().map(SysPowerCurveFactor::getFactorB).collect(Collectors.toList())));
//过滤SpeedMax为null的数据
List<SysPowerCurveFactor> collect = listData.stream().filter(item -> item.getSpeedMax() == null).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(collect)){
QueryWrapper<SysPowerCurveFactor> queryWrapper = new QueryWrapper<>();
queryWrapper.isNull("speed_max");
List<SysPowerCurveFactor> sysPowerCurveFactors = sysPowerCurveFactorMapper.selectList(queryWrapper);
for (SysPowerCurveFactor sysPowerCurveFactor : collect) {
for (SysPowerCurveFactor powerCurveFactor : sysPowerCurveFactors) {
if (sysPowerCurveFactor.getTurbineId().equals(powerCurveFactor.getTurbineId())
&& sysPowerCurveFactor.getSpeedMin().equals(powerCurveFactor.getSpeedMin())
&& sysPowerCurveFactor.getFactorK()== powerCurveFactor.getFactorK()
&& sysPowerCurveFactor.getFactorB()==powerCurveFactor.getFactorB()) {
existingData.add(powerCurveFactor);
}
}
}
}
// 删除重复的数据
if (!existingData.isEmpty()) {
List<Long> idsToDelete = existingData.stream()
.map(SysPowerCurveFactor::getId)
.collect(Collectors.toList());
sysPowerCurveFactorMapper.deleteBatchIds(idsToDelete);
}
//批量插入数据库
sysPowerCurveFactorMapper.insertBatch(listData);
//更新缓存数据