Commit e33dc72d by fudahua

Merge branch 'developer' into 'master'

Developer

See merge request !51
parents b6f06a15 8236f0bd
package com.gic.cloud.data.hook.service;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFDataFormat;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.CellStyle;
import java.util.Map;
public class ExcelUtil {
public static HSSFCellStyle getCellStyle(int type){
//时间日期
if (type==0) {
HSSFWorkbook demoWorkBook = new HSSFWorkbook();
HSSFCellStyle dateStyle = demoWorkBook.createCellStyle();
HSSFDataFormat format= demoWorkBook.createDataFormat();
dateStyle.setDataFormat(format.getFormat("yyyy-MM-dd HH:mm:ss"));
return dateStyle;
}else if (type ==1) {
}else if (type ==2) {
}
return null;
}
}
...@@ -214,15 +214,15 @@ public class CsvResultSetHelper implements ResultSetHelper { ...@@ -214,15 +214,15 @@ public class CsvResultSetHelper implements ResultSetHelper {
break; break;
default: default:
String s2 = String.valueOf(resultSet.getObject(i + 1)); String s2 = String.valueOf(resultSet.getObject(i + 1));
if(org.apache.commons.lang3.StringUtils.isNotBlank(s2)){ // if(org.apache.commons.lang3.StringUtils.isNotBlank(s2)){
if(s2.contains("E0") || s2.startsWith("0")){ // if(s2.contains("E0") || s2.startsWith("0")){
s2 = s2 + "\t"; // s2 = s2 + "\t";
} // }
s2=s2.replace("\r",""); // s2=s2.replace("\r","");
s2=s2.replace("\n",""); // s2=s2.replace("\n","");
s2=s2.replace(",",","); // s2=s2.replace(",",",");
s2=s2.replace("\"",""); // s2=s2.replace("\"","");
} // }
result.add(s2); result.add(s2);
break; break;
} // SWITCH OVER } // SWITCH OVER
......
...@@ -5,7 +5,6 @@ import com.alibaba.fastjson.JSON; ...@@ -5,7 +5,6 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.ctrip.framework.apollo.Config; import com.ctrip.framework.apollo.Config;
import com.ctrip.framework.apollo.ConfigService; import com.ctrip.framework.apollo.ConfigService;
import com.gic.cloud.common.api.base.Page;
import com.gic.cloud.data.hook.api.dto.*; import com.gic.cloud.data.hook.api.dto.*;
import com.gic.cloud.data.hook.api.entity.*; import com.gic.cloud.data.hook.api.entity.*;
import com.gic.cloud.data.hook.api.service.DecryptKeyService; import com.gic.cloud.data.hook.api.service.DecryptKeyService;
...@@ -15,45 +14,44 @@ import com.gic.cloud.data.hook.service.*; ...@@ -15,45 +14,44 @@ import com.gic.cloud.data.hook.service.*;
import com.gic.cloud.data.hook.service.dao.FlatQueryTableDao; import com.gic.cloud.data.hook.service.dao.FlatQueryTableDao;
import com.gic.cloud.data.hook.service.entity.CsvDataFilterMode; import com.gic.cloud.data.hook.service.entity.CsvDataFilterMode;
import com.gic.cloud.data.hook.service.entity.CsvResultSetHelper; import com.gic.cloud.data.hook.service.entity.CsvResultSetHelper;
import com.gic.dubbo.entity.ProviderLocalTag; import com.gic.dubbo.entity.ProviderLocalTag;
import com.gic.qcloud.BucketNameEnum; import com.gic.qcloud.BucketNameEnum;
import com.gic.qcloud.FileUploadUtil; import com.gic.qcloud.FileUploadUtil;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.opencsv.CSVWriter; import com.opencsv.CSVWriter;
import com.opencsv.ResultSetHelper; import com.opencsv.ResultSetHelper;
import io.netty.handler.codec.http.HttpUtil;
import javafx.scene.chart.PieChart;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.time.DateUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.concurrent.BasicThreadFactory; import org.apache.commons.lang3.concurrent.BasicThreadFactory;
import org.apache.poi.ss.usermodel.Cell; import org.apache.commons.lang3.tuple.Pair;
import org.apache.poi.ss.usermodel.Row; import org.apache.hadoop.hive.metastore.api.Decimal;
import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFDataFormat;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.streaming.SXSSFWorkbook; import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.datanucleus.store.rdbms.datasource.dbcp.SQLNestedException;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
import javax.annotation.PostConstruct; import javax.annotation.PostConstruct;
import javax.sql.DataSource; import java.io.File;
import java.io.*; import java.io.FileOutputStream;
import java.math.BigDecimal; import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.nio.charset.Charset; import java.nio.charset.Charset;
import java.sql.*; import java.sql.*;
import java.text.DecimalFormat;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.*;
import java.util.Date; import java.util.Date;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledThreadPoolExecutor; import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
/** 自助指标查询服务实现 /** 自助指标查询服务实现
* @author Sam * @author Sam
...@@ -969,11 +967,24 @@ public class FlatQueryResultServiceImpl implements IFlatQueryResultService { ...@@ -969,11 +967,24 @@ public class FlatQueryResultServiceImpl implements IFlatQueryResultService {
Sheet sheet = wb.createSheet(); Sheet sheet = wb.createSheet();
Row row = sheet.createRow(0); Row row = sheet.createRow(0);
Cell cell; Cell cell;
String[] columnNames = helper.getColumnNames(rs); // String[] columnNames = helper.getColumnNames(rs);
for(int j =0; j<columnNames.length; j++){ List<Pair<String,Integer>> columnMate = getColumnMate(rs);
logger.info("类型:{}",JSONObject.toJSONString(columnMate));
for(int j =0; j<columnMate.size(); j++){
cell = row.createCell(j); cell = row.createCell(j);
cell.setCellValue(columnNames[j]); cell.setCellValue(columnMate.get(j).getKey());
} }
//日期
CellStyle yyyyMMddhhmmss = wb.createCellStyle();
DataFormat dataFormat = wb.createDataFormat();
yyyyMMddhhmmss.setDataFormat(dataFormat.getFormat("yyyy-MM-dd HH:mm:ss"));
//日期
CellStyle yyyyMMdd = wb.createCellStyle();
DataFormat yyyyMMddDataFormat = wb.createDataFormat();
yyyyMMdd.setDataFormat(yyyyMMddDataFormat.getFormat("yyyy-MM-dd"));
// 遍历输出行 // 遍历输出行
int rowCount = 0; int rowCount = 0;
while (rowCount<limitSize&&rs.next()) { while (rowCount<limitSize&&rs.next()) {
...@@ -981,7 +992,34 @@ public class FlatQueryResultServiceImpl implements IFlatQueryResultService { ...@@ -981,7 +992,34 @@ public class FlatQueryResultServiceImpl implements IFlatQueryResultService {
row = sheet.createRow(rowCount); row = sheet.createRow(rowCount);
String[] columnValues = helper.getColumnValues(rs, true, "", ""); String[] columnValues = helper.getColumnValues(rs, true, "", "");
for(int j=0; j<columnValues.length; j++){ for(int j=0; j<columnValues.length; j++){
row.createCell(j).setCellValue(columnValues[j]); Integer type = columnMate.get(j).getValue();
Cell midCell = row.createCell(j);
String columnValue = columnValues[j];
switch (type) {
case Types.DATE:
midCell.setCellStyle(yyyyMMdd);
midCell.setCellValue(DateUtils.parseDate(columnValue,new String[]{"yyyy-MM-dd"}));
break;
case Types.TIMESTAMP:
midCell.setCellStyle(yyyyMMddhhmmss);
midCell.setCellValue(DateUtils.parseDate(columnValue,new String[]{"yyyy-MM-dd hh:mm:ss"}));
break;
case Types.INTEGER:
midCell.setCellValue(Integer.valueOf(columnValue));
break;
case Types.BIGINT:
midCell.setCellValue(Long.valueOf(columnValue));
break;
case Types.DOUBLE:
case Types.DECIMAL:
midCell.setCellValue(Double.valueOf(columnValue));
break;
case Types.FLOAT:
midCell.setCellValue(Float.valueOf(columnValue));
break;
default:
midCell.setCellValue(columnValues[j]);
}
} }
} // WHILE OVER } // WHILE OVER
FileOutputStream fileOut = new FileOutputStream(originalFilePath); FileOutputStream fileOut = new FileOutputStream(originalFilePath);
...@@ -998,6 +1036,26 @@ public class FlatQueryResultServiceImpl implements IFlatQueryResultService { ...@@ -998,6 +1036,26 @@ public class FlatQueryResultServiceImpl implements IFlatQueryResultService {
} }
/**
* 字段类型
* @param resultSet
* @return
* @throws SQLException
*/
private List<Pair<String,Integer>> getColumnMate(ResultSet resultSet) throws SQLException {
List<Pair<String,Integer>> retList=new ArrayList<>();
int columnCount = resultSet.getMetaData().getColumnCount();
if (columnCount > 0) {
for (int i=0; i<columnCount; i++) {
String rsColumnName = resultSet.getMetaData().getColumnLabel(i + 1);
int columnType = resultSet.getMetaData().getColumnType(i + 1);
retList.add(Pair.of(rsColumnName,Integer.valueOf(columnType)));
}
}
return retList;
}
/** 下载申请检查计时器 */ /** 下载申请检查计时器 */
//private Timer applyTimer = new Timer(); //private Timer applyTimer = new Timer();
......
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