风速功率系数,过滤重复数据
This commit is contained in:
parent
20706b8b96
commit
b6a06dd246
@ -31,6 +31,8 @@ public class WindSpeedCorrectController {
|
|||||||
windSpeedCorrectService.importWindSpeedCorrect( file);
|
windSpeedCorrectService.importWindSpeedCorrect( file);
|
||||||
return R.success("导入成功");
|
return R.success("导入成功");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/** 获取风机风速功率修正系数列表 */
|
/** 获取风机风速功率修正系数列表 */
|
||||||
@PostMapping("/getList")
|
@PostMapping("/getList")
|
||||||
public R<PageDataInfo<SysPowerCurveFactorVo>> getList(@RequestBody SysPowerCurveFactorDto dto) {
|
public R<PageDataInfo<SysPowerCurveFactorVo>> getList(@RequestBody SysPowerCurveFactorDto dto) {
|
||||||
|
@ -5,6 +5,7 @@ import cn.hutool.core.io.IoUtil;
|
|||||||
import cn.hutool.poi.excel.ExcelReader;
|
import cn.hutool.poi.excel.ExcelReader;
|
||||||
import cn.hutool.poi.excel.ExcelUtil;
|
import cn.hutool.poi.excel.ExcelUtil;
|
||||||
import cn.hutool.poi.excel.ExcelWriter;
|
import cn.hutool.poi.excel.ExcelWriter;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.das.common.config.SessionUtil;
|
import com.das.common.config.SessionUtil;
|
||||||
import com.das.common.exceptions.ServiceException;
|
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.PageDataInfo;
|
||||||
import com.das.common.utils.PageQuery;
|
import com.das.common.utils.PageQuery;
|
||||||
import com.das.modules.auth.domain.vo.SysUserVo;
|
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.cache.service.CacheService;
|
||||||
import com.das.modules.equipment.entity.SysEquipment;
|
import com.das.modules.equipment.entity.SysEquipment;
|
||||||
import com.das.modules.equipment.mapper.SysEquipmentMapper;
|
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.ServletOutputStream;
|
||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import jakarta.servlet.http.HttpServletResponse;
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
import org.apache.poi.ss.usermodel.HorizontalAlignment;
|
import org.apache.poi.ss.usermodel.HorizontalAlignment;
|
||||||
import org.apache.poi.ss.usermodel.Sheet;
|
import org.apache.poi.ss.usermodel.Sheet;
|
||||||
import org.apache.poi.ss.usermodel.VerticalAlignment;
|
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.apache.poi.ss.util.CellRangeAddress;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@ -57,6 +59,7 @@ public class WindSpeedCorrectServiceImpl implements WindSpeedCorrectService {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private CacheService cacheService;
|
private CacheService cacheService;
|
||||||
|
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
@Override
|
@Override
|
||||||
public void importWindSpeedCorrect(MultipartFile file) throws IOException {
|
public void importWindSpeedCorrect(MultipartFile file) throws IOException {
|
||||||
// 通过文件获取输入流
|
// 通过文件获取输入流
|
||||||
@ -93,6 +96,38 @@ public class WindSpeedCorrectServiceImpl implements WindSpeedCorrectService {
|
|||||||
sysPowerCurveFactor.setRevision(1);
|
sysPowerCurveFactor.setRevision(1);
|
||||||
listData.add(sysPowerCurveFactor);
|
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);
|
sysPowerCurveFactorMapper.insertBatch(listData);
|
||||||
//更新缓存数据
|
//更新缓存数据
|
||||||
|
Loading…
Reference in New Issue
Block a user