|
|
|
@ -28,7 +28,6 @@ import com.inspect.resultmain.domain.PatrolTaskResultMain; |
|
|
|
import com.inspect.resultmain.service.IPatrolTaskResultMainService; |
|
|
|
import com.inspect.task.service.IPatrolTaskService; |
|
|
|
import com.inspect.taskinfo.service.IPatrolTaskInfoService; |
|
|
|
import com.inspect.taskstatus.domain.PatrolTaskStatus; |
|
|
|
import com.inspect.taskstatus.service.IPatrolTaskStatusService; |
|
|
|
import net.coobird.thumbnailator.Thumbnails; |
|
|
|
import org.apache.commons.io.function.IOConsumer; |
|
|
|
@ -200,7 +199,7 @@ public class PatrolTaskResultMainController extends BaseController { |
|
|
|
aiQxNum += ras.getAiQxNum(); |
|
|
|
} |
|
|
|
|
|
|
|
if("0".equals(exportReportFlag) && 0 == csQxNum && 0 == aiQxNum) { |
|
|
|
if ("0".equals(exportReportFlag) && 0 == csQxNum && 0 == aiQxNum) { |
|
|
|
logger.error("[归档]没有缺陷数据, 无需归档!"); |
|
|
|
return AjaxResult.error("没有缺陷数据, 无需归档!"); |
|
|
|
} |
|
|
|
@ -299,7 +298,7 @@ public class PatrolTaskResultMainController extends BaseController { |
|
|
|
aiQxNum += ras.getAiQxNum(); |
|
|
|
} |
|
|
|
|
|
|
|
if("0".equals(exportReportFlag) && 0 == aiQxNum && 0 == csQxNum) { |
|
|
|
if ("0".equals(exportReportFlag) && 0 == aiQxNum && 0 == csQxNum) { |
|
|
|
logger.error("[归档]没有缺陷数据, 无需归档!"); |
|
|
|
return AjaxResult.error("没有缺陷数据, 无需归档!"); |
|
|
|
} |
|
|
|
@ -375,7 +374,7 @@ public class PatrolTaskResultMainController extends BaseController { |
|
|
|
aiQxNum += ras.getAiQxNum(); |
|
|
|
} |
|
|
|
|
|
|
|
if("0".equals(exportReportFlag) && 0 == aiQxNum && 0 == csQxNum) { |
|
|
|
if ("0".equals(exportReportFlag) && 0 == aiQxNum && 0 == csQxNum) { |
|
|
|
logger.error("[归档]没有缺陷数据, 无需归档!"); |
|
|
|
return AjaxResult.error("没有缺陷数据, 无需归档!"); |
|
|
|
} |
|
|
|
@ -430,10 +429,10 @@ public class PatrolTaskResultMainController extends BaseController { |
|
|
|
ResultAnalysis resultAnalysis = new ResultAnalysis(); |
|
|
|
resultAnalysis.setTaskPatrolledId(resultList.get(0).getTaskPatrolledId()); |
|
|
|
ResultAnalysis ras = patrolResultService.selectTaskAbnormalData(resultAnalysis); |
|
|
|
if(0 == ras.getCsQxNum() && 0 == ras.getAiQxNum()) { |
|
|
|
if (0 == ras.getCsQxNum() && 0 == ras.getAiQxNum()) { |
|
|
|
logger.error("[归档]没有缺陷数据, 无需归档!"); |
|
|
|
return AjaxResult.error("没有缺陷数据, 无需归档!"); |
|
|
|
} else if(resultList.isEmpty()) { |
|
|
|
} else if (resultList.isEmpty()) { |
|
|
|
logger.error("[归档]失败, 数据采集中..."); |
|
|
|
return AjaxResult.error("数据采集中请稍后...."); |
|
|
|
} else { |
|
|
|
@ -447,7 +446,7 @@ public class PatrolTaskResultMainController extends BaseController { |
|
|
|
long beginTime = (new Date()).getTime(); |
|
|
|
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))); |
|
|
|
} |
|
|
|
|
|
|
|
@ -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 需要合并的列数 |
|
|
|
*/ |
|
|
|
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, |
|
|
|
String status, Map<String, byte[]> images) { |
|
|
|
String status, Map<String, byte[]> images) { |
|
|
|
// 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, |
|
|
|
String status, Map<String, byte[]> images) { |
|
|
|
String status, Map<String, byte[]> images) { |
|
|
|
addSectionHeader(doc, status + MessageUtils.get("点位汇总")); |
|
|
|
// addSectionHeader(doc, status + MessageUtils.get("汇总")); |
|
|
|
|
|
|
|
@ -900,7 +900,7 @@ public class PatrolTaskResultMainController extends BaseController { |
|
|
|
setTableHeaderStyle(table); |
|
|
|
// 填充数据 |
|
|
|
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()); |
|
|
|
// 填充数据行(除去表头第一行 |
|
|
|
for (InspectionReportData data : dataList) { |
|
|
|
@ -912,7 +912,7 @@ public class PatrolTaskResultMainController extends BaseController { |
|
|
|
} |
|
|
|
|
|
|
|
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("汇总")); |
|
|
|
|
|
|
|
@ -933,7 +933,7 @@ public class PatrolTaskResultMainController extends BaseController { |
|
|
|
setTableHeaderStyle(table); |
|
|
|
// 填充数据 |
|
|
|
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()); |
|
|
|
// 填充数据行(除去表头第一行 |
|
|
|
for (InspectionReportData data : dataList) { |
|
|
|
@ -1037,7 +1037,7 @@ public class PatrolTaskResultMainController extends BaseController { |
|
|
|
} |
|
|
|
|
|
|
|
private void fillDataRowLingzhou(XWPFTableRow row, InspectionReportData data, |
|
|
|
Map<String, byte[]> images) { |
|
|
|
Map<String, byte[]> images) { |
|
|
|
String[] values = { |
|
|
|
String.valueOf(data.getCode()), |
|
|
|
data.getArea(), |
|
|
|
@ -1069,7 +1069,7 @@ public class PatrolTaskResultMainController extends BaseController { |
|
|
|
} |
|
|
|
|
|
|
|
private void fillQXDataRow(XWPFTableRow row, InspectionReportData data, |
|
|
|
Map<String, byte[]> images) { |
|
|
|
Map<String, byte[]> images) { |
|
|
|
String[] values = { |
|
|
|
String.valueOf(data.getCode()), |
|
|
|
data.getArea(), |
|
|
|
@ -1102,7 +1102,7 @@ public class PatrolTaskResultMainController extends BaseController { |
|
|
|
} |
|
|
|
|
|
|
|
private void fillNormalDataRow(XWPFTableRow row, InspectionReportData data, |
|
|
|
Map<String, byte[]> images) { |
|
|
|
Map<String, byte[]> images) { |
|
|
|
String[] values = { |
|
|
|
String.valueOf(data.getCode()), |
|
|
|
data.getArea(), |
|
|
|
@ -1315,7 +1315,6 @@ public class PatrolTaskResultMainController extends BaseController { |
|
|
|
// }); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SXSSFWorkbook sxssfWorkbook = getSXSSFWorkbook(inspectionReport, streamHashMap); |
|
|
|
XWPFDocument wordDocument = getXWPFDocument(inspectionReport, streamHashMap); |
|
|
|
logger.info("[ARCHIVE] hssfWorkbook: {}", sxssfWorkbook); |
|
|
|
@ -1444,7 +1443,6 @@ public class PatrolTaskResultMainController extends BaseController { |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SXSSFWorkbook sxssfWorkbook = getSXSSFWorkbookLingzhou(inspectionReport, streamHashMap); |
|
|
|
XWPFDocument wordDocument = getXWPFDocumentLingzhou(inspectionReport, streamHashMap); |
|
|
|
logger.info("[ARCHIVE] hssfWorkbook: {}", sxssfWorkbook); |
|
|
|
@ -1585,7 +1583,6 @@ public class PatrolTaskResultMainController extends BaseController { |
|
|
|
// }); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SXSSFWorkbook sxssfWorkbook = getSXSSFWorkbookShaoxing(inspectionReport, streamHashMap); |
|
|
|
XWPFDocument wordDocument = getXWPFDocumentLingzhou(inspectionReport, streamHashMap); |
|
|
|
logger.info("[ARCHIVE] hssfWorkbook: {}", sxssfWorkbook); |
|
|
|
@ -1633,7 +1630,7 @@ public class PatrolTaskResultMainController extends BaseController { |
|
|
|
inspectionReportService.updateInspectionReport(inspectionReport); |
|
|
|
}); |
|
|
|
} catch (Exception e) { |
|
|
|
e.printStackTrace(); |
|
|
|
logger.error("生成巡视文件异常:{}", e); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@ -1656,13 +1653,14 @@ public class PatrolTaskResultMainController extends BaseController { |
|
|
|
return null; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 上传文件到SFTP服务器 |
|
|
|
* |
|
|
|
* @param basePath 文件上传的基础路径 |
|
|
|
* @param fileName 文件名 |
|
|
|
* @param suffix 文件后缀 |
|
|
|
* @param writer 文件写入器,用于将文件内容写入到输出流中 |
|
|
|
* @param basePath 文件上传的基础路径 |
|
|
|
* @param fileName 文件名 |
|
|
|
* @param suffix 文件后缀 |
|
|
|
* @param writer 文件写入器,用于将文件内容写入到输出流中 |
|
|
|
* @throws Exception 如果上传过程中发生异常,则抛出异常 |
|
|
|
*/ |
|
|
|
private void uploadFile(String basePath, String fileName, String suffix, IOConsumer<OutputStream> writer) { |
|
|
|
@ -3747,10 +3745,11 @@ public class PatrolTaskResultMainController extends BaseController { |
|
|
|
|
|
|
|
/** |
|
|
|
* 自适应行高(手动计算) |
|
|
|
* |
|
|
|
* @param sheet |
|
|
|
* @param rowNum 行号 |
|
|
|
* @param rowNum 行号 |
|
|
|
* @param cellNum 列号 |
|
|
|
* @param style 样式 |
|
|
|
* @param style 样式 |
|
|
|
*/ |
|
|
|
public void autoFitRowHeight(Sheet sheet, int rowNum, int cellNum, CellStyle style) { |
|
|
|
Row row = sheet.getRow(rowNum); |
|
|
|
@ -3771,8 +3770,14 @@ public class PatrolTaskResultMainController extends BaseController { |
|
|
|
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; |
|
|
|
|