Commit d827216c by fudahua

feat: 新版本的下载

parent e564d1bf
......@@ -53,8 +53,6 @@ import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicReference;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.stream.Collectors;
/** 自助指标查询服务实现
......@@ -68,8 +66,8 @@ public class FlatQueryResultServiceImpl implements IFlatQueryResultService {
private static LogPak log = new LogPak(FlatQueryResultServiceImpl.class);
/** csv / xls 下载目录 */
public static final String SAVE_FOLDER = "/usr/local/data-hook-file";
// public static final String SAVE_FOLDER = "D:\\testorder";
// public static final String SAVE_FOLDER = "/usr/local/data-hook-file";
public static final String SAVE_FOLDER = "D:\\testorder";
public static final String HDFS_URL = "/data/hook";
......@@ -107,7 +105,7 @@ public class FlatQueryResultServiceImpl implements IFlatQueryResultService {
private FlatQueryResultServiceImpl() {
log.debug("construct", "准备初始化 FlatQuery 查询服务");
runDealHiveFile(3);
// runDealHiveFile(3);
// runDistTask(3);
runDownloadTask(3);
runBalaDownloadTask(3);
......@@ -874,15 +872,15 @@ public class FlatQueryResultServiceImpl implements IFlatQueryResultService {
List<String> xlsxFiles=new ArrayList<>();
AtomicInteger count=new AtomicInteger(0);
AtomicReference<XlsxFileInfo> currentFile=new AtomicReference<>();
readCsvFile(condition.getTableId(),dirName,(cells,titles,firstFlag)->{
readCsvFile(condition,dirName,(cells,titles,firstFlag)->{
if (count.get()==0) {
XlsxFileInfo xlsxFileInfo = new XlsxFileInfo();
xlsxFileInfo.filepath=SAVE_FOLDER + "/" + task.getId() + xlsxFiles.size() + ".xlsx";
currentFile.set(xlsxFileInfo);
xlsxFiles.add(currentFile.get().filepath);
}
count.incrementAndGet();
saveXlsSplitNew(currentFile.get().filepath,cells,titles,currentFile.get(),count,false);
count.incrementAndGet();
});
//结束
saveXlsSplitNew(currentFile.get().filepath,null,null,currentFile.get(),count,true);
......@@ -928,10 +926,12 @@ public class FlatQueryResultServiceImpl implements IFlatQueryResultService {
* @param dirName
* @param func
*/
private void readCsvFile(String tableId, String dirName, DownloadFunc func){
private void readCsvFile(FlatQueryTaskCondition condition, String dirName, DownloadFunc func){
File file = new File(SAVE_FOLDER+"/"+dirName);
File[] files = file.listFiles();
List<ColumnInfo> titles=null;
List<FlatQueryCondition> conditions = condition.getConditions();
Map<String, ColumnInfo> columnInfoMap = conditions.stream().collect(Collectors.toMap(mid -> mid.getFieldMark(), mid -> new ColumnInfo(mid.getFieldType(), mid.getFieldMark())));
for (File midFile : files) {
if (!midFile.getName().endsWith("csv")) {
continue;
......@@ -943,10 +943,6 @@ public class FlatQueryResultServiceImpl implements IFlatQueryResultService {
do {
if (titles == null) {
titles=new ArrayList<>();
List<String> cellsList = Arrays.asList(cells);
List<FlatQueryField> fields = flatQueryFieldDao.getFlatQueryFieldByTableId(tableId);
Map<String, ColumnInfo> columnInfoMap = fields.stream().filter(mid -> cellsList.contains(mid.getFieldName())).collect(Collectors.toMap(mid -> mid.getFieldName(),
mid -> new ColumnInfo(mid.getFieldType(), mid.getFieldMark())));
for (String cell : cells) {
logger.info("cell:{}",cell);
titles.add(columnInfoMap.get(cell));
......@@ -1168,7 +1164,7 @@ public class FlatQueryResultServiceImpl implements IFlatQueryResultService {
cell = row.createCell(j);
cell.setCellValue(titles.get(j).getTitle());
}
return;
count.incrementAndGet();
}
......
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