|
|
@ -15,6 +15,8 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
|
|
|
|
import javax.imageio.ImageIO;
|
|
|
|
import javax.imageio.ImageIO;
|
|
|
|
|
|
|
|
import javax.imageio.ImageReader;
|
|
|
|
|
|
|
|
import javax.imageio.stream.ImageInputStream;
|
|
|
|
import java.awt.image.BufferedImage;
|
|
|
|
import java.awt.image.BufferedImage;
|
|
|
|
import java.io.File;
|
|
|
|
import java.io.File;
|
|
|
|
import java.io.IOException;
|
|
|
|
import java.io.IOException;
|
|
|
@ -22,6 +24,7 @@ import java.text.SimpleDateFormat;
|
|
|
|
import java.util.Arrays;
|
|
|
|
import java.util.Arrays;
|
|
|
|
import java.util.Collections;
|
|
|
|
import java.util.Collections;
|
|
|
|
import java.util.Date;
|
|
|
|
import java.util.Date;
|
|
|
|
|
|
|
|
import java.util.Iterator;
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
@ -106,8 +109,44 @@ public class LianzhongCollectCheckServiceImpl implements LianzhongCollectCheckSe
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private boolean hasDamage2(List<ScanAssort> scanAssortList) {
|
|
|
|
|
|
|
|
for (ScanAssort assort : scanAssortList) {
|
|
|
|
|
|
|
|
String filePath = assort.getImagePath() + File.separator + assort.getScanPage();
|
|
|
|
|
|
|
|
File file = new File(filePath);
|
|
|
|
|
|
|
|
if (!isOpenImage2(file)) {
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return false;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private boolean isOpenImage2(File file) {
|
|
|
|
|
|
|
|
try( ImageInputStream imageInputStream = ImageIO.createImageInputStream(file);) {
|
|
|
|
|
|
|
|
Iterator<ImageReader> imageReaders = ImageIO.getImageReaders(imageInputStream);
|
|
|
|
|
|
|
|
if (!imageReaders.hasNext()) {
|
|
|
|
|
|
|
|
return false;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
ImageReader imageReader = imageReaders.next();
|
|
|
|
|
|
|
|
imageReader.setInput(imageInputStream);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return imageReader.getHeight(0) > 0 && imageReader.getWidth(0) > 0;
|
|
|
|
|
|
|
|
} catch (Exception ex) {
|
|
|
|
|
|
|
|
return false;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public static void main(String[] args) {
|
|
|
|
public static void main(String[] args) {
|
|
|
|
|
|
|
|
Iterator<ImageReader> tiffReaders = ImageIO.getImageReadersByFormatName("TIFF");
|
|
|
|
|
|
|
|
if (!tiffReaders.hasNext()) {
|
|
|
|
|
|
|
|
System.out.println("tiff 插件加载失败!");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Iterator<ImageReader> tiffReaders2 = ImageIO.getImageReadersByFormatName("jpeg");
|
|
|
|
|
|
|
|
if (!tiffReaders2.hasNext()) {
|
|
|
|
|
|
|
|
System.out.println("jpeg 插件加载失败!");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd 00:00:00");
|
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd 00:00:00");
|
|
|
|
System.out.println(sdf.format(new Date()));
|
|
|
|
System.out.println(sdf.format(new Date()));
|
|
|
|
ScanAssort scanAssort = new ScanAssort();
|
|
|
|
ScanAssort scanAssort = new ScanAssort();
|
|
|
@ -117,9 +156,9 @@ public class LianzhongCollectCheckServiceImpl implements LianzhongCollectCheckSe
|
|
|
|
long start = System.currentTimeMillis();
|
|
|
|
long start = System.currentTimeMillis();
|
|
|
|
LianzhongCollectCheckServiceImpl checkService = new LianzhongCollectCheckServiceImpl();
|
|
|
|
LianzhongCollectCheckServiceImpl checkService = new LianzhongCollectCheckServiceImpl();
|
|
|
|
for (int i = 0; i < 1000; i++) {
|
|
|
|
for (int i = 0; i < 1000; i++) {
|
|
|
|
boolean b = checkService.hasDamage(scanAssortList);
|
|
|
|
boolean b = checkService.hasDamage2(scanAssortList);
|
|
|
|
if (i == 99) {
|
|
|
|
if (i == 99) {
|
|
|
|
System.out.println(checkService.hasDamage(scanAssortList));
|
|
|
|
System.out.println(checkService.hasDamage2(scanAssortList));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
long total = System.currentTimeMillis() - start;
|
|
|
|
long total = System.currentTimeMillis() - start;
|
|
|
|