Browse Source

fix: 调整poi获取字体方法,注意getFontIndexAsInt()在poi 6.0.0会被废弃

master
yinhuaiwei 1 month ago
parent
commit
651c41ff71
1 changed files with 36 additions and 31 deletions
  1. +36
    -31
      inspect-main/inspect-main-task/src/main/java/com/inspect/resultmain/controller/PatrolTaskResultMainController.java

+ 36
- 31
inspect-main/inspect-main-task/src/main/java/com/inspect/resultmain/controller/PatrolTaskResultMainController.java View File

@ -28,7 +28,6 @@ import com.inspect.resultmain.domain.PatrolTaskResultMain;
import com.inspect.resultmain.service.IPatrolTaskResultMainService; import com.inspect.resultmain.service.IPatrolTaskResultMainService;
import com.inspect.task.service.IPatrolTaskService; import com.inspect.task.service.IPatrolTaskService;
import com.inspect.taskinfo.service.IPatrolTaskInfoService; import com.inspect.taskinfo.service.IPatrolTaskInfoService;
import com.inspect.taskstatus.domain.PatrolTaskStatus;
import com.inspect.taskstatus.service.IPatrolTaskStatusService; import com.inspect.taskstatus.service.IPatrolTaskStatusService;
import net.coobird.thumbnailator.Thumbnails; import net.coobird.thumbnailator.Thumbnails;
import org.apache.commons.io.function.IOConsumer; import org.apache.commons.io.function.IOConsumer;
@ -200,7 +199,7 @@ public class PatrolTaskResultMainController extends BaseController {
aiQxNum += ras.getAiQxNum(); aiQxNum += ras.getAiQxNum();
} }
if("0".equals(exportReportFlag) && 0 == csQxNum && 0 == aiQxNum) {
if ("0".equals(exportReportFlag) && 0 == csQxNum && 0 == aiQxNum) {
logger.error("[归档]没有缺陷数据, 无需归档!"); logger.error("[归档]没有缺陷数据, 无需归档!");
return AjaxResult.error("没有缺陷数据, 无需归档!"); return AjaxResult.error("没有缺陷数据, 无需归档!");
} }
@ -299,7 +298,7 @@ public class PatrolTaskResultMainController extends BaseController {
aiQxNum += ras.getAiQxNum(); aiQxNum += ras.getAiQxNum();
} }
if("0".equals(exportReportFlag) && 0 == aiQxNum && 0 == csQxNum) {
if ("0".equals(exportReportFlag) && 0 == aiQxNum && 0 == csQxNum) {
logger.error("[归档]没有缺陷数据, 无需归档!"); logger.error("[归档]没有缺陷数据, 无需归档!");
return AjaxResult.error("没有缺陷数据, 无需归档!"); return AjaxResult.error("没有缺陷数据, 无需归档!");
} }
@ -375,7 +374,7 @@ public class PatrolTaskResultMainController extends BaseController {
aiQxNum += ras.getAiQxNum(); aiQxNum += ras.getAiQxNum();
} }
if("0".equals(exportReportFlag) && 0 == aiQxNum && 0 == csQxNum) {
if ("0".equals(exportReportFlag) && 0 == aiQxNum && 0 == csQxNum) {
logger.error("[归档]没有缺陷数据, 无需归档!"); logger.error("[归档]没有缺陷数据, 无需归档!");
return AjaxResult.error("没有缺陷数据, 无需归档!"); return AjaxResult.error("没有缺陷数据, 无需归档!");
} }
@ -430,10 +429,10 @@ public class PatrolTaskResultMainController extends BaseController {
ResultAnalysis resultAnalysis = new ResultAnalysis(); ResultAnalysis resultAnalysis = new ResultAnalysis();
resultAnalysis.setTaskPatrolledId(resultList.get(0).getTaskPatrolledId()); resultAnalysis.setTaskPatrolledId(resultList.get(0).getTaskPatrolledId());
ResultAnalysis ras = patrolResultService.selectTaskAbnormalData(resultAnalysis); ResultAnalysis ras = patrolResultService.selectTaskAbnormalData(resultAnalysis);
if(0 == ras.getCsQxNum() && 0 == ras.getAiQxNum()) {
if (0 == ras.getCsQxNum() && 0 == ras.getAiQxNum()) {
logger.error("[归档]没有缺陷数据, 无需归档!"); logger.error("[归档]没有缺陷数据, 无需归档!");
return AjaxResult.error("没有缺陷数据, 无需归档!"); return AjaxResult.error("没有缺陷数据, 无需归档!");
} else if(resultList.isEmpty()) {
} else if (resultList.isEmpty()) {
logger.error("[归档]失败, 数据采集中..."); logger.error("[归档]失败, 数据采集中...");
return AjaxResult.error("数据采集中请稍后...."); return AjaxResult.error("数据采集中请稍后....");
} else { } else {
@ -447,7 +446,7 @@ public class PatrolTaskResultMainController extends BaseController {
long beginTime = (new Date()).getTime(); long beginTime = (new Date()).getTime();
logger.info("[导出报告] 开始时间: {}", DateUtil.now()); logger.info("[导出报告] 开始时间: {}", DateUtil.now());
for(int i = 0; i < reportIds.size(); ++i) {
for (int i = 0; i < reportIds.size(); ++i) {
exportExcelWordAndZip(String.valueOf(reportIds.get(i))); exportExcelWordAndZip(String.valueOf(reportIds.get(i)));
} }
@ -743,10 +742,11 @@ public class PatrolTaskResultMainController extends BaseController {
/** /**
* 填充带合并的表格行 * 填充带合并的表格行
* @param table 表格对象
* @param rowNum 行号
* @param title 左侧标题
* @param content 右侧内容
*
* @param table 表格对象
* @param rowNum 行号
* @param title 左侧标题
* @param content 右侧内容
* @param mergeCols 需要合并的列数 * @param mergeCols 需要合并的列数
*/ */
private void fillRowWithMerge(XWPFTable table, int rowNum, String title, String content, int mergeCols) { private void fillRowWithMerge(XWPFTable table, int rowNum, String title, String content, int mergeCols) {
@ -843,7 +843,7 @@ public class PatrolTaskResultMainController extends BaseController {
} }
private void addStatusSectionLingzhou(XWPFDocument doc, InspectionReport report, private void addStatusSectionLingzhou(XWPFDocument doc, InspectionReport report,
String status, Map<String, byte[]> images) {
String status, Map<String, byte[]> images) {
// addSectionHeader(doc, status + MessageUtils.get("点位汇总")); // addSectionHeader(doc, status + MessageUtils.get("点位汇总"));
addSectionHeader(doc, status + MessageUtils.get("汇总")); addSectionHeader(doc, status + MessageUtils.get("汇总"));
@ -879,7 +879,7 @@ public class PatrolTaskResultMainController extends BaseController {
} }
private void addQXStatusSection(XWPFDocument doc, InspectionReport report, private void addQXStatusSection(XWPFDocument doc, InspectionReport report,
String status, Map<String, byte[]> images) {
String status, Map<String, byte[]> images) {
addSectionHeader(doc, status + MessageUtils.get("点位汇总")); addSectionHeader(doc, status + MessageUtils.get("点位汇总"));
// addSectionHeader(doc, status + MessageUtils.get("汇总")); // addSectionHeader(doc, status + MessageUtils.get("汇总"));
@ -900,7 +900,7 @@ public class PatrolTaskResultMainController extends BaseController {
setTableHeaderStyle(table); setTableHeaderStyle(table);
// 填充数据 // 填充数据
List<InspectionReportData> dataList = report.getReportDatalist(); List<InspectionReportData> dataList = report.getReportDatalist();
if(dataList != null && dataList.size() > 0) {
if (dataList != null && dataList.size() > 0) {
dataList = dataList.stream().filter(data -> status.equals(data.getPointStatus())).collect(Collectors.toList()); dataList = dataList.stream().filter(data -> status.equals(data.getPointStatus())).collect(Collectors.toList());
// 填充数据行除去表头第一行 // 填充数据行除去表头第一行
for (InspectionReportData data : dataList) { for (InspectionReportData data : dataList) {
@ -912,7 +912,7 @@ public class PatrolTaskResultMainController extends BaseController {
} }
private void addNormalStatusSection(XWPFDocument doc, InspectionReport report, private void addNormalStatusSection(XWPFDocument doc, InspectionReport report,
String status, Map<String, byte[]> images) {
String status, Map<String, byte[]> images) {
addSectionHeader(doc, status + MessageUtils.get("点位汇总")); addSectionHeader(doc, status + MessageUtils.get("点位汇总"));
// addSectionHeader(doc, status + MessageUtils.get("汇总")); // addSectionHeader(doc, status + MessageUtils.get("汇总"));
@ -933,7 +933,7 @@ public class PatrolTaskResultMainController extends BaseController {
setTableHeaderStyle(table); setTableHeaderStyle(table);
// 填充数据 // 填充数据
List<InspectionReportData> dataList = report.getReportDatalist(); List<InspectionReportData> dataList = report.getReportDatalist();
if(dataList != null && dataList.size() > 0) {
if (dataList != null && dataList.size() > 0) {
dataList = dataList.stream().filter(data -> status.equals(data.getPointStatus())).collect(Collectors.toList()); dataList = dataList.stream().filter(data -> status.equals(data.getPointStatus())).collect(Collectors.toList());
// 填充数据行除去表头第一行 // 填充数据行除去表头第一行
for (InspectionReportData data : dataList) { for (InspectionReportData data : dataList) {
@ -1037,7 +1037,7 @@ public class PatrolTaskResultMainController extends BaseController {
} }
private void fillDataRowLingzhou(XWPFTableRow row, InspectionReportData data, private void fillDataRowLingzhou(XWPFTableRow row, InspectionReportData data,
Map<String, byte[]> images) {
Map<String, byte[]> images) {
String[] values = { String[] values = {
String.valueOf(data.getCode()), String.valueOf(data.getCode()),
data.getArea(), data.getArea(),
@ -1069,7 +1069,7 @@ public class PatrolTaskResultMainController extends BaseController {
} }
private void fillQXDataRow(XWPFTableRow row, InspectionReportData data, private void fillQXDataRow(XWPFTableRow row, InspectionReportData data,
Map<String, byte[]> images) {
Map<String, byte[]> images) {
String[] values = { String[] values = {
String.valueOf(data.getCode()), String.valueOf(data.getCode()),
data.getArea(), data.getArea(),
@ -1102,7 +1102,7 @@ public class PatrolTaskResultMainController extends BaseController {
} }
private void fillNormalDataRow(XWPFTableRow row, InspectionReportData data, private void fillNormalDataRow(XWPFTableRow row, InspectionReportData data,
Map<String, byte[]> images) {
Map<String, byte[]> images) {
String[] values = { String[] values = {
String.valueOf(data.getCode()), String.valueOf(data.getCode()),
data.getArea(), data.getArea(),
@ -1315,7 +1315,6 @@ public class PatrolTaskResultMainController extends BaseController {
// }); // });
SXSSFWorkbook sxssfWorkbook = getSXSSFWorkbook(inspectionReport, streamHashMap); SXSSFWorkbook sxssfWorkbook = getSXSSFWorkbook(inspectionReport, streamHashMap);
XWPFDocument wordDocument = getXWPFDocument(inspectionReport, streamHashMap); XWPFDocument wordDocument = getXWPFDocument(inspectionReport, streamHashMap);
logger.info("[ARCHIVE] hssfWorkbook: {}", sxssfWorkbook); logger.info("[ARCHIVE] hssfWorkbook: {}", sxssfWorkbook);
@ -1444,7 +1443,6 @@ public class PatrolTaskResultMainController extends BaseController {
}); });
SXSSFWorkbook sxssfWorkbook = getSXSSFWorkbookLingzhou(inspectionReport, streamHashMap); SXSSFWorkbook sxssfWorkbook = getSXSSFWorkbookLingzhou(inspectionReport, streamHashMap);
XWPFDocument wordDocument = getXWPFDocumentLingzhou(inspectionReport, streamHashMap); XWPFDocument wordDocument = getXWPFDocumentLingzhou(inspectionReport, streamHashMap);
logger.info("[ARCHIVE] hssfWorkbook: {}", sxssfWorkbook); logger.info("[ARCHIVE] hssfWorkbook: {}", sxssfWorkbook);
@ -1585,7 +1583,6 @@ public class PatrolTaskResultMainController extends BaseController {
// }); // });
SXSSFWorkbook sxssfWorkbook = getSXSSFWorkbookShaoxing(inspectionReport, streamHashMap); SXSSFWorkbook sxssfWorkbook = getSXSSFWorkbookShaoxing(inspectionReport, streamHashMap);
XWPFDocument wordDocument = getXWPFDocumentLingzhou(inspectionReport, streamHashMap); XWPFDocument wordDocument = getXWPFDocumentLingzhou(inspectionReport, streamHashMap);
logger.info("[ARCHIVE] hssfWorkbook: {}", sxssfWorkbook); logger.info("[ARCHIVE] hssfWorkbook: {}", sxssfWorkbook);
@ -1633,7 +1630,7 @@ public class PatrolTaskResultMainController extends BaseController {
inspectionReportService.updateInspectionReport(inspectionReport); inspectionReportService.updateInspectionReport(inspectionReport);
}); });
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace();
logger.error("生成巡视文件异常:{}", e);
} }
} }
@ -1656,13 +1653,14 @@ public class PatrolTaskResultMainController extends BaseController {
return null; return null;
} }
} }
/** /**
* 上传文件到SFTP服务器 * 上传文件到SFTP服务器
* *
* @param basePath 文件上传的基础路径
* @param fileName 文件名
* @param suffix 文件后缀
* @param writer 文件写入器用于将文件内容写入到输出流中
* @param basePath 文件上传的基础路径
* @param fileName 文件名
* @param suffix 文件后缀
* @param writer 文件写入器用于将文件内容写入到输出流中
* @throws Exception 如果上传过程中发生异常则抛出异常 * @throws Exception 如果上传过程中发生异常则抛出异常
*/ */
private void uploadFile(String basePath, String fileName, String suffix, IOConsumer<OutputStream> writer) { private void uploadFile(String basePath, String fileName, String suffix, IOConsumer<OutputStream> writer) {
@ -3747,10 +3745,11 @@ public class PatrolTaskResultMainController extends BaseController {
/** /**
* 自适应行高手动计算 * 自适应行高手动计算
*
* @param sheet * @param sheet
* @param rowNum 行号
* @param rowNum 行号
* @param cellNum 列号 * @param cellNum 列号
* @param style 样式
* @param style 样式
*/ */
public void autoFitRowHeight(Sheet sheet, int rowNum, int cellNum, CellStyle style) { public void autoFitRowHeight(Sheet sheet, int rowNum, int cellNum, CellStyle style) {
Row row = sheet.getRow(rowNum); Row row = sheet.getRow(rowNum);
@ -3771,8 +3770,14 @@ public class PatrolTaskResultMainController extends BaseController {
double widthInChars = columnWidth / 256.0; double widthInChars = columnWidth / 256.0;
// 获取字体 // 获取字体
Font font = sheet.getWorkbook().getFontAt(style.getFontIndex());
double fontHeightInPoints = font.getFontHeightInPoints();
double fontHeightInPoints = 15.0;
try {
// todo 注意getFontIndexAsInt()在poi 6.0.0会被废弃
Font font = sheet.getWorkbook().getFontAt(style.getFontIndexAsInt());
fontHeightInPoints = font.getFontHeightInPoints();
} catch (Exception e) {
logger.error("POI GET FONT ERROR :", e.getMessage());
}
// 计算每行可容纳字符数近似公式 // 计算每行可容纳字符数近似公式
// 粗略估计 // 粗略估计
double charsPerLine = widthInChars * 1.0; double charsPerLine = widthInChars * 1.0;


Loading…
Cancel
Save