Browse Source

模板验证

develop
wangsixiang 8 months ago
parent
commit
82bc5de23e
  1. 349
      zc-business/src/main/java/com/zc/business/service/impl/DcSdhsEventServiceImpl.java

349
zc-business/src/main/java/com/zc/business/service/impl/DcSdhsEventServiceImpl.java

@ -426,50 +426,55 @@ public class DcSdhsEventServiceImpl implements IDcSdhsEventService {
// }else { // }else {
// title="事故路段分布图-济南方向"; // title="事故路段分布图-济南方向";
// } // }
PoiUtil.createHeading2(doc, title); if (map != null && map.size() != UniversalEnum.ZERO.getNumber()){
XWPFTable table = doc.createTable(map.size()+1,2); PoiUtil.createHeading2(doc, title);
//列宽自动分割 XWPFTable table = doc.createTable(map.size()+1,2);
CTTblWidth infoTableWidth = table.getCTTbl().addNewTblPr().addNewTblW(); //列宽自动分割
infoTableWidth.setType(STTblWidth.DXA); CTTblWidth infoTableWidth = table.getCTTbl().addNewTblPr().addNewTblW();
infoTableWidth.setW(BigInteger.valueOf(UniversalEnum.NINE_THOUSAND_AND_SEVENTY_TWO.getNumber())); infoTableWidth.setType(STTblWidth.DXA);
//插入表头 infoTableWidth.setW(BigInteger.valueOf(UniversalEnum.NINE_THOUSAND_AND_SEVENTY_TWO.getNumber()));
setTableFonts(table.getRow(UniversalEnum.ZERO.getNumber()).getCell(UniversalEnum.ZERO.getNumber()), "路段"); //插入表头
setTableFonts(table.getRow(UniversalEnum.ZERO.getNumber()).getCell(UniversalEnum.ONE.getNumber()), "事故发生数量"); setTableFonts(table.getRow(UniversalEnum.ZERO.getNumber()).getCell(UniversalEnum.ZERO.getNumber()), "路段");
setTableFonts(table.getRow(UniversalEnum.ZERO.getNumber()).getCell(UniversalEnum.ONE.getNumber()), "事故发生数量");
List<Map.Entry<String, Integer>> entries = new ArrayList<>(map.entrySet());
//excel List<Map.Entry<String, Integer>> entries = new ArrayList<>(map.entrySet());
for (int i = UniversalEnum.ZERO.getNumber(); i < entries.size(); i++){ //excel
setTableFonts(table.getRow(i+1).getCell(0), entries.get(i).getKey());
setTableFonts(table.getRow(i+1).getCell(1), entries.get(i).getValue().toString());
}
try{
// 复制Word模板
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(UniversalEnum.CHAR_SECTION.getValue());
XWPFDocument copiedTemplate = new XWPFDocument(inputStream);
//获取word中所有图表对象
List<XWPFChart> charts = copiedTemplate.getCharts();
XWPFChart chart = charts.get(UniversalEnum.ZERO.getNumber());
XSSFWorkbook workbook = chart.getWorkbook();
XSSFSheet sheet = workbook.getSheetAt(UniversalEnum.ZERO.getNumber());
//系列信息
String[] singleBarSeriesNames = {"数量"};
//分类信息
for (int i = UniversalEnum.ZERO.getNumber(); i < entries.size(); i++){ for (int i = UniversalEnum.ZERO.getNumber(); i < entries.size(); i++){
sheet.getRow(i+UniversalEnum.ONE.getNumber()).getCell(UniversalEnum.ZERO.getNumber()).setCellValue(entries.get(i).getKey()); setTableFonts(table.getRow(i+1).getCell(0), entries.get(i).getKey());
sheet.getRow(i+UniversalEnum.ONE.getNumber()).getCell(UniversalEnum.ONE.getNumber()).setCellValue(Long.parseLong(entries.get(i).getValue().toString())); setTableFonts(table.getRow(i+1).getCell(1), entries.get(i).getValue().toString());
} }
for (int i = sheet.getLastRowNum(); i > entries.size();i--){ try{
sheet.removeRow(sheet.getRow(i)); // 复制Word模板
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(UniversalEnum.CHAR_SECTION.getValue());
XWPFDocument copiedTemplate = new XWPFDocument(inputStream);
//获取word中所有图表对象
List<XWPFChart> charts = copiedTemplate.getCharts();
XWPFChart chart = charts.get(UniversalEnum.ZERO.getNumber());
XSSFWorkbook workbook = chart.getWorkbook();
XSSFSheet sheet = workbook.getSheetAt(UniversalEnum.ZERO.getNumber());
//系列信息
String[] singleBarSeriesNames = {"数量"};
//分类信息
for (int i = UniversalEnum.ZERO.getNumber(); i < entries.size(); i++){
sheet.getRow(i+UniversalEnum.ONE.getNumber()).getCell(UniversalEnum.ZERO.getNumber()).setCellValue(entries.get(i).getKey());
sheet.getRow(i+UniversalEnum.ONE.getNumber()).getCell(UniversalEnum.ONE.getNumber()).setCellValue(Long.parseLong(entries.get(i).getValue().toString()));
}
for (int i = sheet.getLastRowNum(); i > entries.size();i--){
sheet.removeRow(sheet.getRow(i));
}
PoiUtil.wordExportChar(chart, title, singleBarSeriesNames,sheet );
// 追加到同一个Word文档中
mergeChart(chart,doc);
// 关闭复制的模板文档
copiedTemplate.close();
}catch (Exception e){
e.printStackTrace();
} }
PoiUtil.wordExportChar(chart, title, singleBarSeriesNames,sheet ); }else {
// 追加到同一个Word文档中 addDescription(doc, UniversalEnum.NO_DATA_AVAILABLE.getValue());
mergeChart(chart,doc);
// 关闭复制的模板文档
copiedTemplate.close();
}catch (Exception e){
e.printStackTrace();
} }
} }
//事故类型分析导出 //事故类型分析导出
@Override @Override
@ -482,50 +487,54 @@ public class DcSdhsEventServiceImpl implements IDcSdhsEventService {
// }else { // }else {
// title="事件类型分布图-济南方向"; // title="事件类型分布图-济南方向";
// } // }
PoiUtil.createHeading2(doc, title); if (map != null && map.size() != UniversalEnum.ZERO.getNumber()) {
XWPFTable table = doc.createTable(map.size()+1,2); PoiUtil.createHeading2(doc, title);
//列宽自动分割 XWPFTable table = doc.createTable(map.size() + 1, 2);
CTTblWidth infoTableWidth = table.getCTTbl().addNewTblPr().addNewTblW(); //列宽自动分割
infoTableWidth.setType(STTblWidth.DXA); CTTblWidth infoTableWidth = table.getCTTbl().addNewTblPr().addNewTblW();
infoTableWidth.setW(BigInteger.valueOf(UniversalEnum.NINE_THOUSAND_AND_SEVENTY_TWO.getNumber())); infoTableWidth.setType(STTblWidth.DXA);
//插入表头 infoTableWidth.setW(BigInteger.valueOf(UniversalEnum.NINE_THOUSAND_AND_SEVENTY_TWO.getNumber()));
setTableFonts(table.getRow(UniversalEnum.ZERO.getNumber()).getCell(UniversalEnum.ZERO.getNumber()), "类型"); //插入表头
setTableFonts(table.getRow(UniversalEnum.ZERO.getNumber()).getCell(UniversalEnum.ONE.getNumber()), "数量"); setTableFonts(table.getRow(UniversalEnum.ZERO.getNumber()).getCell(UniversalEnum.ZERO.getNumber()), "类型");
setTableFonts(table.getRow(UniversalEnum.ZERO.getNumber()).getCell(UniversalEnum.ONE.getNumber()), "数量");
List<Map.Entry<String, Integer>> entries = new ArrayList<>(map.entrySet());
//excel List<Map.Entry<String, Integer>> entries = new ArrayList<>(map.entrySet());
for (int i = UniversalEnum.ZERO.getNumber(); i < entries.size(); i++){ //excel
setTableFonts(table.getRow(i+1).getCell(0), entries.get(i).getKey()); for (int i = UniversalEnum.ZERO.getNumber(); i < entries.size(); i++) {
setTableFonts(table.getRow(i+1).getCell(1), entries.get(i).getValue().toString()); setTableFonts(table.getRow(i + 1).getCell(0), entries.get(i).getKey());
} setTableFonts(table.getRow(i + 1).getCell(1), entries.get(i).getValue().toString());
try{
// 复制Word模板
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(UniversalEnum.TYPE_ANALYSIS.getValue());
XWPFDocument copiedTemplate = new XWPFDocument(inputStream);
//获取word中所有图表对象
List<XWPFChart> charts = copiedTemplate.getCharts();
XWPFChart chart = charts.get(UniversalEnum.ZERO.getNumber());
XSSFWorkbook workbook = chart.getWorkbook();
XSSFSheet sheet = workbook.getSheetAt(UniversalEnum.ZERO.getNumber());
//系列信息
String[] singleBarSeriesNames = {"事件类型"};
//分类信息
for (int i = UniversalEnum.ZERO.getNumber(); i < entries.size(); i++){
sheet.getRow(i+UniversalEnum.ONE.getNumber()).getCell(UniversalEnum.ZERO.getNumber()).setCellValue(entries.get(i).getKey());
sheet.getRow(i+UniversalEnum.ONE.getNumber()).getCell(UniversalEnum.ONE.getNumber()).setCellValue(Long.parseLong(entries.get(i).getValue().toString()));
} }
for (int i = sheet.getLastRowNum(); i > entries.size();i--){ try {
sheet.removeRow(sheet.getRow(i)); // 复制Word模板
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(UniversalEnum.TYPE_ANALYSIS.getValue());
XWPFDocument copiedTemplate = new XWPFDocument(inputStream);
//获取word中所有图表对象
List<XWPFChart> charts = copiedTemplate.getCharts();
XWPFChart chart = charts.get(UniversalEnum.ZERO.getNumber());
XSSFWorkbook workbook = chart.getWorkbook();
XSSFSheet sheet = workbook.getSheetAt(UniversalEnum.ZERO.getNumber());
//系列信息
String[] singleBarSeriesNames = {"事件类型"};
//分类信息
for (int i = UniversalEnum.ZERO.getNumber(); i < entries.size(); i++) {
sheet.getRow(i + UniversalEnum.ONE.getNumber()).getCell(UniversalEnum.ZERO.getNumber()).setCellValue(entries.get(i).getKey());
sheet.getRow(i + UniversalEnum.ONE.getNumber()).getCell(UniversalEnum.ONE.getNumber()).setCellValue(Long.parseLong(entries.get(i).getValue().toString()));
}
for (int i = sheet.getLastRowNum(); i > entries.size(); i--) {
sheet.removeRow(sheet.getRow(i));
}
PoiUtil.wordExportChar(chart, title, singleBarSeriesNames, sheet);
// 追加到同一个Word文档中
mergeChart(chart, doc);
// 关闭复制的模板文档
copiedTemplate.close();
} catch (Exception e) {
e.printStackTrace();
} }
PoiUtil.wordExportChar(chart, title, singleBarSeriesNames,sheet ); }else {
// 追加到同一个Word文档中 addDescription(doc, UniversalEnum.NO_DATA_AVAILABLE.getValue());
mergeChart(chart,doc);
// 关闭复制的模板文档
copiedTemplate.close();
}catch (Exception e){
e.printStackTrace();
} }
} }
//事故拥堵时间导出 //事故拥堵时间导出
@ -533,50 +542,54 @@ public class DcSdhsEventServiceImpl implements IDcSdhsEventService {
public void accidentCongestedTimeExport(XWPFDocument doc, DcSdhsEventQuery dcSdhsEventQuery) { public void accidentCongestedTimeExport(XWPFDocument doc, DcSdhsEventQuery dcSdhsEventQuery) {
Map<String, String> map =accidentCongestedTime(dcSdhsEventQuery); Map<String, String> map =accidentCongestedTime(dcSdhsEventQuery);
String title="事故拥堵时长分布图"; String title="事故拥堵时长分布图";
PoiUtil.createHeading2(doc, title); if (map != null && map.size() != UniversalEnum.ZERO.getNumber()) {
XWPFTable table = doc.createTable(map.size()+1,2); PoiUtil.createHeading2(doc, title);
//列宽自动分割 XWPFTable table = doc.createTable(map.size() + 1, 2);
CTTblWidth infoTableWidth = table.getCTTbl().addNewTblPr().addNewTblW(); //列宽自动分割
infoTableWidth.setType(STTblWidth.DXA); CTTblWidth infoTableWidth = table.getCTTbl().addNewTblPr().addNewTblW();
infoTableWidth.setW(BigInteger.valueOf(UniversalEnum.NINE_THOUSAND_AND_SEVENTY_TWO.getNumber())); infoTableWidth.setType(STTblWidth.DXA);
//插入表头 infoTableWidth.setW(BigInteger.valueOf(UniversalEnum.NINE_THOUSAND_AND_SEVENTY_TWO.getNumber()));
setTableFonts(table.getRow(UniversalEnum.ZERO.getNumber()).getCell(UniversalEnum.ZERO.getNumber()), "路段"); //插入表头
setTableFonts(table.getRow(UniversalEnum.ZERO.getNumber()).getCell(UniversalEnum.ONE.getNumber()), "时长(分钟)"); setTableFonts(table.getRow(UniversalEnum.ZERO.getNumber()).getCell(UniversalEnum.ZERO.getNumber()), "路段");
setTableFonts(table.getRow(UniversalEnum.ZERO.getNumber()).getCell(UniversalEnum.ONE.getNumber()), "时长(分钟)");
List<Map.Entry<String, String>> entries = new ArrayList<>(map.entrySet());
//excel List<Map.Entry<String, String>> entries = new ArrayList<>(map.entrySet());
for (int i = UniversalEnum.ZERO.getNumber(); i < entries.size(); i++){ //excel
setTableFonts(table.getRow(i+1).getCell(0), entries.get(i).getKey()); for (int i = UniversalEnum.ZERO.getNumber(); i < entries.size(); i++) {
setTableFonts(table.getRow(i+1).getCell(1), entries.get(i).getValue().toString()); setTableFonts(table.getRow(i + 1).getCell(0), entries.get(i).getKey());
} setTableFonts(table.getRow(i + 1).getCell(1), entries.get(i).getValue().toString());
try{
// 复制Word模板
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(UniversalEnum.CONGESTION_TIME.getValue());
XWPFDocument copiedTemplate = new XWPFDocument(inputStream);
//获取word中所有图表对象
List<XWPFChart> charts = copiedTemplate.getCharts();
XWPFChart chart = charts.get(UniversalEnum.ZERO.getNumber());
XSSFWorkbook workbook = chart.getWorkbook();
XSSFSheet sheet = workbook.getSheetAt(UniversalEnum.ZERO.getNumber());
//系列信息
String[] singleBarSeriesNames = {"事故拥堵时长"};
//分类信息
for (int i = UniversalEnum.ZERO.getNumber(); i < entries.size(); i++){
sheet.getRow(i + UniversalEnum.ONE.getNumber()).getCell(0).setCellValue(entries.get(i).getKey());
sheet.getRow(i + UniversalEnum.ONE.getNumber()).getCell(1).setCellValue(Double.valueOf(entries.get(i).getValue()));
} }
for (int i = sheet.getLastRowNum(); i > entries.size();i--){ try {
sheet.removeRow(sheet.getRow(i)); // 复制Word模板
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(UniversalEnum.CONGESTION_TIME.getValue());
XWPFDocument copiedTemplate = new XWPFDocument(inputStream);
//获取word中所有图表对象
List<XWPFChart> charts = copiedTemplate.getCharts();
XWPFChart chart = charts.get(UniversalEnum.ZERO.getNumber());
XSSFWorkbook workbook = chart.getWorkbook();
XSSFSheet sheet = workbook.getSheetAt(UniversalEnum.ZERO.getNumber());
//系列信息
String[] singleBarSeriesNames = {"事故拥堵时长"};
//分类信息
for (int i = UniversalEnum.ZERO.getNumber(); i < entries.size(); i++) {
sheet.getRow(i + UniversalEnum.ONE.getNumber()).getCell(0).setCellValue(entries.get(i).getKey());
sheet.getRow(i + UniversalEnum.ONE.getNumber()).getCell(1).setCellValue(Double.valueOf(entries.get(i).getValue()));
}
for (int i = sheet.getLastRowNum(); i > entries.size(); i--) {
sheet.removeRow(sheet.getRow(i));
}
PoiUtil.wordExportChar(chart, title, singleBarSeriesNames, sheet);
// 追加到同一个Word文档中
mergeChart(chart, doc);
// 关闭复制的模板文档
copiedTemplate.close();
} catch (Exception e) {
e.printStackTrace();
} }
PoiUtil.wordExportChar(chart, title, singleBarSeriesNames,sheet ); }else {
// 追加到同一个Word文档中 addDescription(doc, UniversalEnum.NO_DATA_AVAILABLE.getValue());
mergeChart(chart,doc);
// 关闭复制的模板文档
copiedTemplate.close();
}catch (Exception e){
e.printStackTrace();
} }
} }
//事故拥堵地点导出 //事故拥堵地点导出
@ -584,50 +597,54 @@ public class DcSdhsEventServiceImpl implements IDcSdhsEventService {
public void accidentCongestedLocationExport(XWPFDocument doc, DcSdhsEventQuery dcSdhsEventQuery) { public void accidentCongestedLocationExport(XWPFDocument doc, DcSdhsEventQuery dcSdhsEventQuery) {
Map<String, Integer> map =accidentCongestedLocation(dcSdhsEventQuery); Map<String, Integer> map =accidentCongestedLocation(dcSdhsEventQuery);
String title="事故拥堵地点分布图"; String title="事故拥堵地点分布图";
PoiUtil.createHeading2(doc, title); if (map != null && map.size() != UniversalEnum.ZERO.getNumber()) {
XWPFTable table = doc.createTable(map.size()+1,2); PoiUtil.createHeading2(doc, title);
//列宽自动分割 XWPFTable table = doc.createTable(map.size() + 1, 2);
CTTblWidth infoTableWidth = table.getCTTbl().addNewTblPr().addNewTblW(); //列宽自动分割
infoTableWidth.setType(STTblWidth.DXA); CTTblWidth infoTableWidth = table.getCTTbl().addNewTblPr().addNewTblW();
infoTableWidth.setW(BigInteger.valueOf(UniversalEnum.NINE_THOUSAND_AND_SEVENTY_TWO.getNumber())); infoTableWidth.setType(STTblWidth.DXA);
//插入表头 infoTableWidth.setW(BigInteger.valueOf(UniversalEnum.NINE_THOUSAND_AND_SEVENTY_TWO.getNumber()));
setTableFonts(table.getRow(UniversalEnum.ZERO.getNumber()).getCell(UniversalEnum.ZERO.getNumber()), "地点"); //插入表头
setTableFonts(table.getRow(UniversalEnum.ZERO.getNumber()).getCell(UniversalEnum.ONE.getNumber()), "数量"); setTableFonts(table.getRow(UniversalEnum.ZERO.getNumber()).getCell(UniversalEnum.ZERO.getNumber()), "地点");
setTableFonts(table.getRow(UniversalEnum.ZERO.getNumber()).getCell(UniversalEnum.ONE.getNumber()), "数量");
List<Map.Entry<String, Integer>> entries = new ArrayList<>(map.entrySet());
//excel List<Map.Entry<String, Integer>> entries = new ArrayList<>(map.entrySet());
for (int i = UniversalEnum.ZERO.getNumber(); i < entries.size(); i++){ //excel
setTableFonts(table.getRow(i+1).getCell(0), entries.get(i).getKey()); for (int i = UniversalEnum.ZERO.getNumber(); i < entries.size(); i++) {
setTableFonts(table.getRow(i+1).getCell(1), entries.get(i).getValue().toString()); setTableFonts(table.getRow(i + 1).getCell(0), entries.get(i).getKey());
} setTableFonts(table.getRow(i + 1).getCell(1), entries.get(i).getValue().toString());
try{
// 复制Word模板
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(UniversalEnum.CONGESTED_LOCATION.getValue());
XWPFDocument copiedTemplate = new XWPFDocument(inputStream);
//获取word中所有图表对象
List<XWPFChart> charts = copiedTemplate.getCharts();
XWPFChart chart = charts.get(UniversalEnum.ZERO.getNumber());
XSSFWorkbook workbook = chart.getWorkbook();
XSSFSheet sheet = workbook.getSheetAt(UniversalEnum.ZERO.getNumber());
//系列信息
String[] singleBarSeriesNames = {"事故拥堵地点"};
//分类信息
for (int i = UniversalEnum.ZERO.getNumber(); i < entries.size(); i++){
sheet.getRow(i + UniversalEnum.ONE.getNumber()).getCell(0).setCellValue(entries.get(i).getKey());
sheet.getRow(i + UniversalEnum.ONE.getNumber()).getCell(1).setCellValue(entries.get(i).getValue());
} }
for (int i = sheet.getLastRowNum(); i > entries.size();i--){ try {
sheet.removeRow(sheet.getRow(i)); // 复制Word模板
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(UniversalEnum.CONGESTED_LOCATION.getValue());
XWPFDocument copiedTemplate = new XWPFDocument(inputStream);
//获取word中所有图表对象
List<XWPFChart> charts = copiedTemplate.getCharts();
XWPFChart chart = charts.get(UniversalEnum.ZERO.getNumber());
XSSFWorkbook workbook = chart.getWorkbook();
XSSFSheet sheet = workbook.getSheetAt(UniversalEnum.ZERO.getNumber());
//系列信息
String[] singleBarSeriesNames = {"事故拥堵地点"};
//分类信息
for (int i = UniversalEnum.ZERO.getNumber(); i < entries.size(); i++) {
sheet.getRow(i + UniversalEnum.ONE.getNumber()).getCell(0).setCellValue(entries.get(i).getKey());
sheet.getRow(i + UniversalEnum.ONE.getNumber()).getCell(1).setCellValue(entries.get(i).getValue());
}
for (int i = sheet.getLastRowNum(); i > entries.size(); i--) {
sheet.removeRow(sheet.getRow(i));
}
PoiUtil.wordExportChar(chart, title, singleBarSeriesNames, sheet);
// 追加到同一个Word文档中
mergeChart(chart, doc);
// 关闭复制的模板文档
copiedTemplate.close();
} catch (Exception e) {
e.printStackTrace();
} }
PoiUtil.wordExportChar(chart, title, singleBarSeriesNames,sheet ); }else {
// 追加到同一个Word文档中 addDescription(doc, UniversalEnum.NO_DATA_AVAILABLE.getValue());
mergeChart(chart,doc);
// 关闭复制的模板文档
copiedTemplate.close();
}catch (Exception e){
e.printStackTrace();
} }
} }

Loading…
Cancel
Save