|
|
@ -109,7 +109,12 @@ public class FenpanService {
|
|
|
|
this.findAllDir(readUrl, pieces);
|
|
|
|
this.findAllDir(readUrl, pieces);
|
|
|
|
//写入文件
|
|
|
|
//写入文件
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<Future<String>> futures2 = new ArrayList<>();
|
|
|
|
|
|
|
|
ExecutorService executorService2 = Executors.newFixedThreadPool(2);
|
|
|
|
for (Pieces piece : pieces) {
|
|
|
|
for (Pieces piece : pieces) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Future<String> aa = executorService2.submit(() -> {
|
|
|
|
|
|
|
|
|
|
|
|
//根据文件类型
|
|
|
|
//根据文件类型
|
|
|
|
if (piece.getFileTypeEnum() == FileTypeEnum.DOC) {
|
|
|
|
if (piece.getFileTypeEnum() == FileTypeEnum.DOC) {
|
|
|
|
//从word 直接提取图片
|
|
|
|
//从word 直接提取图片
|
|
|
@ -178,14 +183,46 @@ public class FenpanService {
|
|
|
|
List<Document> documentList = new ArrayList<>();
|
|
|
|
List<Document> documentList = new ArrayList<>();
|
|
|
|
File sourceFile = new File(piece.getAbsolutePath());
|
|
|
|
File sourceFile = new File(piece.getAbsolutePath());
|
|
|
|
File[] files = sourceFile.listFiles();
|
|
|
|
File[] files = sourceFile.listFiles();
|
|
|
|
|
|
|
|
ExecutorService executorService = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<Future<Document>> futures = new ArrayList<>();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// System.out.println("件名:"+file.getName());
|
|
|
|
for (File pdfImg : files) {
|
|
|
|
for (File pdfImg : files) {
|
|
|
|
getDocumentList(documentList, pdfImg);
|
|
|
|
// System.out.println("图片名"+pdfImg.getName());
|
|
|
|
|
|
|
|
Future<Document> future = executorService.submit(() -> getDocumentList(pdfImg));
|
|
|
|
|
|
|
|
futures.add(future);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
piece.put(documentList);
|
|
|
|
|
|
|
|
|
|
|
|
for (Future<Document> future : futures) {
|
|
|
|
|
|
|
|
Document image = null;
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
image = future.get();
|
|
|
|
|
|
|
|
} catch (InterruptedException e) {
|
|
|
|
|
|
|
|
throw new RuntimeException(e);
|
|
|
|
|
|
|
|
} catch (ExecutionException e) {
|
|
|
|
|
|
|
|
throw new RuntimeException(e);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (image != null) {
|
|
|
|
|
|
|
|
documentList.add(image);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// 处理图片
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
executorService.shutdown();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return "OK";
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
futures2.add(aa);
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (Future<String> f : futures2) {
|
|
|
|
|
|
|
|
f.get();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
executorService2.shutdown();
|
|
|
|
|
|
|
|
|
|
|
|
for (Pieces piece : pieces) {
|
|
|
|
for (Pieces piece : pieces) {
|
|
|
|
//根据文件类型
|
|
|
|
//根据文件类型
|
|
|
|