diff --git a/src/main/java/com/docus/sw/souyin/CheckService.java b/src/main/java/com/docus/sw/souyin/CheckService.java index cc6017c..a6ccf55 100644 --- a/src/main/java/com/docus/sw/souyin/CheckService.java +++ b/src/main/java/com/docus/sw/souyin/CheckService.java @@ -59,13 +59,25 @@ public class CheckService { if (rollFile.getName().equals("片头")) { //填充卷 Roll roll = new Roll(rollFile.getName(), rollFile.getAbsolutePath()); - + List pieceList = new ArrayList<>(); + File[] piecesFile = rollFile.listFiles(); + Pieces pieces = new Pieces(FileTypeEnum.JPG, roll.getAbsolutePath(), roll.getName()); + genPieces(pieces, piecesFile, FileTypeEnum.JPG); + pieceList.add(pieces); + roll.putAll(pieceList); rollList.add(roll); } else if (rollFile.getName().equals("片尾")) { //填充卷 Roll roll = new Roll(rollFile.getName(), rollFile.getAbsolutePath()); - + List pieceList = new ArrayList<>(); + File[] piecesFile = rollFile.listFiles(); + Pieces pieces = new Pieces(FileTypeEnum.JPG, roll.getAbsolutePath(), roll.getName()); + genPieces(pieces, piecesFile, FileTypeEnum.JPG); + pieceList.add(pieces); + roll.putAll(pieceList); rollList.add(roll); + //填充卷 + } else { // List pieceList = new ArrayList<>(); @@ -154,6 +166,7 @@ public class CheckService { //生成索引目录 Double longth = 0d; for (IndexPlate indexPlate : map.values()) { + Double panlong = 0d; List rollList = indexPlate.getRollList(); for(Roll roll:rollList){ List piecesList = roll.getPiecesList(); @@ -163,10 +176,30 @@ public class CheckService { CheckPageRow checkPageRow = new CheckPageRow(indexPlate.getName(), document.getName(), document.getDpi(), document.useStore(),document.toSize()); checkPageRows.add(checkPageRow); longth+=checkPageRow.getUseStore(); + panlong+=checkPageRow.getUseStore(); } } } + CheckPageRow checkPageRow = new CheckPageRow(indexPlate.getName(), indexPlate.getName()+"盘长度:", null, panlong,""); + checkPageRows.add(checkPageRow); } + Comparator fileComparator = new Comparator() { + @Override + public int compare(CheckPageRow file1, CheckPageRow file2) { + // 使用正则表达式提取数字部分 + int num1 = extractNumber(file1.getPhNum()); + int num2 = extractNumber(file2.getPhNum()); + + // 比较提取的数字部分 + return Integer.compare(num1, num2); + } + + private int extractNumber(String fileName) { + String numberPart = fileName.replaceAll("[^0-9]", ""); + return numberPart.isEmpty() ? 0 : Integer.parseInt(numberPart); + } + }; + Collections.sort(checkPageRows,fileComparator); //加上统计 CheckPageRow checkPageRow = new CheckPageRow("", "总计长度:", null, longth,"");