10 天以前 | 潘志宝 | ![]() |
10 天以前 | 潘志宝 | ![]() |
2025-06-16 | dengzedong | ![]() |
2025-06-16 | dengzedong | ![]() |
2025-06-16 | dongyukun | ![]() |
2025-06-16 | dongyukun | ![]() |
2025-06-16 | dongyukun | ![]() |
2025-06-13 | Jay | ![]() |
2025-06-13 | Jay | ![]() |
iailab-framework/iailab-common-excel/src/main/java/com/iailab/framework/excel/core/util/ExcelUtils.java
@@ -1,5 +1,7 @@ package com.iailab.framework.excel.core.util; import com.alibaba.excel.EasyExcelFactory; import com.alibaba.excel.write.handler.AbstractRowWriteHandler; import com.iailab.framework.excel.core.handler.SelectSheetWriteHandler; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.converters.longconverter.LongStringConverter; @@ -10,6 +12,7 @@ import java.io.IOException; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.List; /** @@ -36,7 +39,7 @@ EasyExcel.write(response.getOutputStream(), head) .autoCloseStream(false) // 不要自动关闭,交给 Servlet 自己处理 .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()) // 基于 column 长度,自动适配。最大 255 宽度 .registerWriteHandler(new SelectSheetWriteHandler(head,false)) // 基于固定 sheet 实现下拉框 .registerWriteHandler(new SelectSheetWriteHandler(head, false)) // 基于固定 sheet 实现下拉框 .registerConverter(new LongStringConverter()) // 避免 Long 类型丢失精度 .sheet(sheetName).doWrite(data); // 设置 header 和 contentType。写在最后的原因是,避免报错时,响应 contentType 已经被修改了 @@ -56,11 +59,33 @@ EasyExcel.write(response.getOutputStream(), head) .autoCloseStream(false) // 不要自动关闭,交给 Servlet 自己处理 .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()) // 基于 column 长度,自动适配。最大 255 宽度 .registerWriteHandler(new SelectSheetWriteHandler(head,selectFlag)) // 基于固定 sheet 实现下拉框 .registerWriteHandler(new SelectSheetWriteHandler(head, selectFlag)) // 基于固定 sheet 实现下拉框 .registerConverter(new LongStringConverter()) // 避免 Long 类型丢失精度 .sheet(sheetName).doWrite(data); // 设置 header 和 contentType。写在最后的原因是,避免报错时,响应 contentType 已经被修改了 response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(filename, StandardCharsets.UTF_8.name())); response.setContentType("application/vnd.ms-excel;charset=UTF-8"); } public static void write(HttpServletResponse response, String filename, String sheetName, List<String> column, List<List<Object>> data) throws IOException { List<List<String>> head = new ArrayList<>(); if (column != null && column.size() > 0) { for (String columnName : column) { List<String> item = new ArrayList<>(); item.add(columnName); head.add(item); } } EasyExcelFactory.write(response.getOutputStream()) .head(head) // handle .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()) .sheet(sheetName).doWrite(data); // 设置 header 和 contentType。写在最后的原因是,避免报错时,响应 contentType 已经被修改了 response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(filename, StandardCharsets.UTF_8.name())); response.setContentType("application/vnd.ms-excel;charset=UTF-8"); } } iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/McsApi.java
@@ -175,7 +175,7 @@ @PostMapping(PREFIX + "/predict-data/tn-value") @Operation(summary = "根据预测时间获取T+N预测值") List<MdkPredictDataDTO> getPredictTnValue(PredictTnValueReqVO reqVO); List<MdkPredictDataDTO> getPredictTnValue(@RequestBody PredictTnValueReqVO reqVO); @GetMapping(PREFIX + "/predict/model/setting/update") @Operation(summary = "修改预测模型配置") iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/dto/PredictTnValueReqVO.java
@@ -18,9 +18,7 @@ private String outId; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date startTime; private long startTime; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date endTime; private long endTime; } iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java
@@ -752,7 +752,7 @@ @Override public List<MdkPredictDataDTO> getPredictTnValue(PredictTnValueReqVO reqVO) { List<DataValueVO> list = mmItemResultService.getPredictValue(reqVO.getOutId(), reqVO.getStartTime(), reqVO.getEndTime()); List<DataValueVO> list = mmItemResultService.getPredictValue(reqVO.getOutId(), new Date(reqVO.getStartTime()), new Date(reqVO.getEndTime())); return ConvertUtils.sourceToTarget(list, MdkPredictDataDTO.class); } iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/controller/admin/McsApiController.java
@@ -156,7 +156,7 @@ @PostMapping("/predict-data/tn-value") @Operation(summary = "获取T+N预测数据") public CommonResult<List<MdkPredictDataDTO>> getPredictTnValue(PredictTnValueReqVO reqVO) { public CommonResult<List<MdkPredictDataDTO>> getPredictTnValue(@RequestBody PredictTnValueReqVO reqVO) { List<MdkPredictDataDTO> list = mcsApi.getPredictTnValue(reqVO); return success(list); } iailab-module-model/iailab-module-model-biz/src/main/resources/mapper/mcs/StScheduleSuggestDao.xml
@@ -10,7 +10,7 @@ ROW_NUMBER() OVER ( PARTITION BY schedule_obj ORDER BY schedule_time DESC ) AS rn FROM t_st_schedule_suggest WHERE schedule_obj in ('BFG_ALARM', 'COG_ALARM', 'LDG1_ALARM', 'LDG2_ALARM', 'LDGt_ALARM') ('BFG_FLOW_WARNING_ALARM', 'COG_ALARM', 'LDG1', 'LDG2', 'LDGt') and schedule_time >= DATE_SUB(NOW(), INTERVAL 15 MINUTE )) SELECT * FROM t_st_schedule_suggest