Commit dec4e87b authored by ZWT's avatar ZWT

feat(吉林演示): 松原

1.天气数据接收定时任务,解决代码扫描问题,修改文件读取相关代码,解决资源未关流问题;
2.修改登录验证码生成工具类,解决代码扫描问题,修复随机数不安全问题;
3.删除除主程序启动类外其他启动类模块,解决代码扫描问题;
4.删除自定义httputlis类,解决代码扫描问题,替换部分代码远程调用方法;
5.重构光伏预测模块下载电站实际发电数据导入模板接口,解决代码扫描问题;

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent 48bb8af9
...@@ -4,7 +4,6 @@ import cn.hutool.core.collection.CollUtil; ...@@ -4,7 +4,6 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.FileUtil; import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.io.NioUtil; import cn.hutool.core.io.NioUtil;
import cn.hutool.core.text.CharSequenceUtil; import cn.hutool.core.text.CharSequenceUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
...@@ -383,24 +382,6 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService { ...@@ -383,24 +382,6 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService {
return filePath; return filePath;
} }
/**
* 保存临时文件
*
* @param fileName 文件名
* @param in 在里面
* @return {@link String}
*/
private String saveTempFile(String fileName, InputStream in) {
StringBuilder stringBuilder = new StringBuilder(storeDir)
.append(File.separator)
.append(DateTime.now().toString("yyyyMMdd"));
String filePath = stringBuilder.append(File.separator).append(fileName).toString();
FileUtil.touch(filePath);
FileUtil.writeFromStream(in, filePath);
IoUtil.close(in);
return filePath;
}
/** /**
* 保存临时文件 * 保存临时文件
* *
......
package pps.core.prediction.service; package pps.core.prediction.service;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.text.CharSequenceUtil; import cn.hutool.core.text.CharSequenceUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.alibaba.excel.EasyExcelFactory;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import pps.core.common.constant.BusinessConstant;
import pps.core.common.excel.util.EasyExcelUtil;
import pps.core.common.excel.util.ExcelStyleTool;
import pps.core.common.utils.ExcelUtils; import pps.core.common.utils.ExcelUtils;
import pps.core.common.utils.ExportExcelUtils;
import pps.core.prediction.entity.PlantPowerDataEnt; import pps.core.prediction.entity.PlantPowerDataEnt;
import pps.core.prediction.entity.PlantPowerDataView; import pps.core.prediction.entity.PlantPowerDataView;
import pps.core.prediction.enums.ImportFieldDic; import pps.core.prediction.enums.ImportFieldDic;
import pps.core.prediction.mapper.PlantPowerDataMapper; import pps.core.prediction.mapper.PlantPowerDataMapper;
import pps.core.prediction.mapper.PlantPowerDataViewMapper; import pps.core.prediction.mapper.PlantPowerDataViewMapper;
import pps.core.prediction.service.data.plant_power_data.ExcelPlantPowerTemplate;
import pps.core.prediction.service.data.plant_power_data.ImportFileInput; import pps.core.prediction.service.data.plant_power_data.ImportFileInput;
import pps.core.prediction.service.data.plant_power_data.QueryPlantPowerDataInput; import pps.core.prediction.service.data.plant_power_data.QueryPlantPowerDataInput;
import pps.core.prediction.service.data.plant_power_data.QueryPlantPowerDataOutput; import pps.core.prediction.service.data.plant_power_data.QueryPlantPowerDataOutput;
...@@ -28,7 +34,7 @@ import xstartup.feature.api.annotation.XApiGet; ...@@ -28,7 +34,7 @@ import xstartup.feature.api.annotation.XApiGet;
import xstartup.feature.api.annotation.XApiUpload; import xstartup.feature.api.annotation.XApiUpload;
import xstartup.feature.mybatis.helper.XMapperHelper; import xstartup.feature.mybatis.helper.XMapperHelper;
import java.io.InputStream; import java.math.BigDecimal;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -49,22 +55,39 @@ public class PlantPowerDataService { ...@@ -49,22 +55,39 @@ public class PlantPowerDataService {
return XMapperHelper.query(mapper, input, queryWrapper, QueryPlantPowerDataOutput.class); return XMapperHelper.query(mapper, input, queryWrapper, QueryPlantPowerDataOutput.class);
} }
/**
* 下载导入模板
*
* @param context 上下文
* @return {@link XFileResult }
*/
@XText("下载电站实际发电数据导入模板") @XText("下载电站实际发电数据导入模板")
@XApiGet @XApiGet
public XFileResult downloadImportTemplate(XContext context) { public XFileResult downloadImportTemplate(XContext context) {
String today = DateUtil.formatDate(DateUtil.date());
String fileSavePath = XStorageTool.getAbsolutePath("/temp/excel/导入模板_" + DateUtil.formatDate(DateUtil.date()) + ".xlsx"); String fileSavePath = XStorageTool.getAbsolutePath("/temp/excel/导入模板_" + DateUtil.formatDate(DateUtil.date()) + ".xlsx");
String templateFilePath = "template/import_plant_data_template.xlsx"; //生成模板
try (InputStream templateInputStream = this.getClass().getClassLoader().getResourceAsStream(templateFilePath)) { EasyExcelFactory.write(FileUtil.touch(fileSavePath))
byte[] excelContent = ExportExcelUtils.genSingleExcelFileData(templateInputStream, null); .registerWriteHandler(ExcelStyleTool.getStyleStrategy())
ExportExcelUtils.outputFileData(excelContent, fileSavePath); .autoCloseStream(Boolean.TRUE)
} catch (Exception e) { .build()
context.getLogger().error(e); .write(CollUtil.list(false, ExcelPlantPowerTemplate.builder()
} .dataDate(today)
.windSpeed(BusinessConstant.BIG_DECIMAL_6_67)
.windDirection(BigDecimal.ZERO)
.temperature(BusinessConstant.BIG_DECIMAL_4)
.pressure(BigDecimal.ONE)
.humidity(BusinessConstant.BIG_DECIMAL_3)
.planeIrradiance(BusinessConstant.BIG_DECIMAL_2)
.horizontalIrradiance(BusinessConstant.BIG_DECIMAL_4)
.power(BusinessConstant.BIG_DECIMAL_60)
.build()), EasyExcelUtil.writeSelectedSheet(ExcelPlantPowerTemplate.class, 0, "导入模板"))
.finish();
return XFileResult.success(XFileType.APPLICATION_XLSX, fileSavePath); return XFileResult.success(XFileType.APPLICATION_XLSX, fileSavePath);
} }
@XText("导入电站实际发电数据") @XText("导入电站实际发电数据")
@XApiUpload @XApiUpload(anonymous = true)
public XServiceResult importPlantPowerData(XContext context, ImportFileInput input) { public XServiceResult importPlantPowerData(XContext context, ImportFileInput input) {
List<String> headerList = getExcelHeaderList(); List<String> headerList = getExcelHeaderList();
List<Map<String, Object>> mapList = ExcelUtils.readExcel(input.getFile().getInputStream(), input.getFile().getFileName(), headerList, 0); List<Map<String, Object>> mapList = ExcelUtils.readExcel(input.getFile().getInputStream(), input.getFile().getFileName(), headerList, 0);
......
package pps.core.prediction.service.data.plant_power_data;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* excel预测算法训练
*
* @author ZWT
* @date 2024/09/12
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@ColumnWidth(value = 25)
public class ExcelPlantPowerTemplate implements Serializable {
private static final long serialVersionUID = -6773651457799858074L;
/**
* 日期
*/
@ExcelProperty(index = 0, value = "日期")
private String dataDate;
/**
* 风速
*/
@ExcelProperty(index = 1, value = "风速")
private BigDecimal windSpeed;
/**
* 风向
*/
@ExcelProperty(index = 2, value = "风向")
private BigDecimal windDirection;
/**
* 温度
*/
@ExcelProperty(index = 3, value = "温度")
private BigDecimal temperature;
/**
* 压强
*/
@ExcelProperty(index = 4, value = "压强")
private BigDecimal pressure;
/**
* 湿度
*/
@ExcelProperty(index = 5, value = "湿度")
private BigDecimal humidity;
/**
* 组件平面辐照度
*/
@ExcelProperty(index = 6, value = "组件平面辐照度")
private BigDecimal planeIrradiance;
/**
* 全水平辐照度
*/
@ExcelProperty(index = 7, value = "全水平辐照度")
private BigDecimal horizontalIrradiance;
/**
* 实际功率
*/
@ExcelProperty(index = 8, value = "实际功率")
private BigDecimal power;
}
\ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment