From: Vásáry Dániel Date: Fri, 26 Oct 2018 07:00:34 +0000 (+0000) Subject: Archiválás duplikátum kezelés javítása X-Git-Url: http://git.useribm.hu/?a=commitdiff_plain;h=7e53c7e8dfdb21a428f78731dc2b1efe6ce2f698;p=mediacube.git Archiválás duplikátum kezelés javítása git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube;C31333 --- diff --git a/server/user.jobengine.executors/src/user/jobengine/server/steps/ArchiveListBuilderStep.java b/server/user.jobengine.executors/src/user/jobengine/server/steps/ArchiveListBuilderStep.java index 7cbfffa6..b5c42646 100644 --- a/server/user.jobengine.executors/src/user/jobengine/server/steps/ArchiveListBuilderStep.java +++ b/server/user.jobengine.executors/src/user/jobengine/server/steps/ArchiveListBuilderStep.java @@ -90,18 +90,10 @@ public class ArchiveListBuilderStep extends JobStep { marker = jobRuntime.getMarker(); List archiveList = new LinkedList(); DirectoryStream directoryStream = null; - int counter = 0; try { DirectoryStream stream = Files.newDirectoryStream(Paths.get(sourcePath)); for (Path p : stream) { - boolean processed = processPathItem(p, archiveList, limit); - if (processed) { - counter++; - if (limit > 0 && counter == limit) { - logger.info(marker, "A folyamat elérte a beállított {} limitet.", limit); - break; - } - } + boolean processed = processPathItem(p, archiveList); } } catch (Exception e) { logger.catching(e); @@ -114,7 +106,17 @@ public class ArchiveListBuilderStep extends JobStep { } } } - logger.info(marker, "Az archiváló folyamat {} új anyagot érzékelt.", archiveList == null ? 0 : archiveList.size()); + + if (limit > 0) { + int correctedLimit = limit > archiveList.size() ? archiveList.size() : limit; + archiveList = archiveList.subList(0, correctedLimit - 1); + logger.info(marker, "A folyamat elérte a beállított {} limitet.", limit); + } else + logger.info(marker, "Az archiváló folyamat {} új anyagot érzékelt.", archiveList == null ? 0 : archiveList.size()); + + for (ArchiveItem archiveItem : archiveList) { + createCatchedFile(Paths.get(archiveItem.getCatchedFile())); + } return new Object[] { archiveList }; } @@ -126,7 +128,7 @@ public class ArchiveListBuilderStep extends JobStep { return result; } - private boolean processPathItem(Path mediaFilePath, final List archiveList, int limit) { + private boolean processPathItem(Path mediaFilePath, final List archiveList) { File mediaFile = mediaFilePath.toFile(); // if (mediaFile.length() > 0) @@ -184,7 +186,7 @@ public class ArchiveListBuilderStep extends JobStep { archiveList.add(archiveItem); else archiveList.add(0, archiveItem); - createCatchedFile(catchedFilePath); + //createCatchedFile(catchedFilePath); return true; } } diff --git a/server/user.jobengine.executors/src/user/jobengine/server/steps/ItemManagerExtensions.java b/server/user.jobengine.executors/src/user/jobengine/server/steps/ItemManagerExtensions.java index b77be5de..dbda83b3 100644 --- a/server/user.jobengine.executors/src/user/jobengine/server/steps/ItemManagerExtensions.java +++ b/server/user.jobengine.executors/src/user/jobengine/server/steps/ItemManagerExtensions.java @@ -29,24 +29,27 @@ public class ItemManagerExtensions { public static long getExistingRundownMedia(IItemManager manager, String houseid) { final long[] result = { 0 }; - final String idToCheck = houseid.substring(0, houseid.lastIndexOf("-")); - MetadataType metadataType = MetadataTypeDetector.GuessMetadataType(idToCheck); - if (metadataType == MetadataType.OctopusPlaceholder) { - StringBuilder query = new StringBuilder(); - query.append("select mediaid, mediafilehouseid, filename"); - query.append(" "); - query.append(String.format("from vw_rundown_items where mediafilehouseid like '%s%%'", idToCheck)); - query.append(" "); - query.append("order by filename, mediaid"); - IResultSetConsumer consumer = rs -> { - String fileName = rs.getString("filename"); - if (idToCheck.equals(fileName)) { - result[0] = rs.getLong("mediaid"); - return false; - } else - return true; - }; - manager.executeQuery(query.toString(), consumer, null); + int indexOf = houseid.lastIndexOf("-"); + if (indexOf > 0) { + final String idToCheck = houseid.substring(0, houseid.lastIndexOf("-")); + MetadataType metadataType = MetadataTypeDetector.GuessMetadataType(idToCheck); + if (metadataType == MetadataType.OctopusPlaceholder) { + StringBuilder query = new StringBuilder(); + query.append("select mediaid, mediafilehouseid, filename"); + query.append(" "); + query.append(String.format("from vw_rundown_items where mediafilehouseid like '%s%%'", idToCheck)); + query.append(" "); + query.append("order by filename, mediaid"); + IResultSetConsumer consumer = rs -> { + String fileName = rs.getString("filename"); + if (idToCheck.equals(fileName)) { + result[0] = rs.getLong("mediaid"); + return false; + } else + return true; + }; + manager.executeQuery(query.toString(), consumer, null); + } } return result[0];