Archiválás duplikátum kezelés javítása
authorVásáry Dániel <daniel.vasary@userrendszerhaz.hu>
Fri, 26 Oct 2018 07:00:34 +0000 (07:00 +0000)
committerVásáry Dániel <daniel.vasary@userrendszerhaz.hu>
Fri, 26 Oct 2018 07:00:34 +0000 (07:00 +0000)
git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube;C31333

server/user.jobengine.executors/src/user/jobengine/server/steps/ArchiveListBuilderStep.java
server/user.jobengine.executors/src/user/jobengine/server/steps/ItemManagerExtensions.java

index 7cbfffa6715a620d143ff891d90826d16b57929b..b5c426467f21cecc02e7b8db5a68ebcf0f665a1a 100644 (file)
@@ -90,18 +90,10 @@ public class ArchiveListBuilderStep extends JobStep {
                marker = jobRuntime.getMarker();\r
                List<ArchiveItem> archiveList = new LinkedList<ArchiveItem>();\r
                DirectoryStream<Path> directoryStream = null;\r
-               int counter = 0;\r
                try {\r
                        DirectoryStream<Path> stream = Files.newDirectoryStream(Paths.get(sourcePath));\r
                        for (Path p : stream) {\r
-                               boolean processed = processPathItem(p, archiveList, limit);\r
-                               if (processed) {\r
-                                       counter++;\r
-                                       if (limit > 0 && counter == limit) {\r
-                                               logger.info(marker, "A folyamat elérte a beállított {} limitet.", limit);\r
-                                               break;\r
-                                       }\r
-                               }\r
+                               boolean processed = processPathItem(p, archiveList);\r
                        }\r
                } catch (Exception e) {\r
                        logger.catching(e);\r
@@ -114,7 +106,17 @@ public class ArchiveListBuilderStep extends JobStep {
                                }\r
                        }\r
                }\r
-               logger.info(marker, "Az archiváló folyamat {} új anyagot érzékelt.", archiveList == null ? 0 : archiveList.size());\r
+\r
+               if (limit > 0) {\r
+                       int correctedLimit = limit > archiveList.size() ? archiveList.size() : limit;\r
+                       archiveList = archiveList.subList(0, correctedLimit - 1);\r
+                       logger.info(marker, "A folyamat elérte a beállított {} limitet.", limit);\r
+               } else\r
+                       logger.info(marker, "Az archiváló folyamat {} új anyagot érzékelt.", archiveList == null ? 0 : archiveList.size());\r
+\r
+               for (ArchiveItem archiveItem : archiveList) {\r
+                       createCatchedFile(Paths.get(archiveItem.getCatchedFile()));\r
+               }\r
 \r
                return new Object[] { archiveList };\r
        }\r
@@ -126,7 +128,7 @@ public class ArchiveListBuilderStep extends JobStep {
                return result;\r
        }\r
 \r
-       private boolean processPathItem(Path mediaFilePath, final List<ArchiveItem> archiveList, int limit) {\r
+       private boolean processPathItem(Path mediaFilePath, final List<ArchiveItem> archiveList) {\r
                File mediaFile = mediaFilePath.toFile();\r
 \r
                //              if (mediaFile.length() > 0)\r
@@ -184,7 +186,7 @@ public class ArchiveListBuilderStep extends JobStep {
                        archiveList.add(archiveItem);\r
                else\r
                        archiveList.add(0, archiveItem);\r
-               createCatchedFile(catchedFilePath);\r
+               //createCatchedFile(catchedFilePath);\r
                return true;\r
        }\r
 }\r
index b77be5de5721d9b9355afc53c1bd1b14c2694717..dbda83b3589e057c6c959d1bd3755a6514eeb791 100644 (file)
@@ -29,24 +29,27 @@ public class ItemManagerExtensions {
 \r
        public static long getExistingRundownMedia(IItemManager manager, String houseid) {\r
                final long[] result = { 0 };\r
-               final String idToCheck = houseid.substring(0, houseid.lastIndexOf("-"));\r
-               MetadataType metadataType = MetadataTypeDetector.GuessMetadataType(idToCheck);\r
-               if (metadataType == MetadataType.OctopusPlaceholder) {\r
-                       StringBuilder query = new StringBuilder();\r
-                       query.append("select mediaid, mediafilehouseid, filename");\r
-                       query.append(" ");\r
-                       query.append(String.format("from vw_rundown_items where mediafilehouseid like '%s%%'", idToCheck));\r
-                       query.append(" ");\r
-                       query.append("order by filename, mediaid");\r
-                       IResultSetConsumer consumer = rs -> {\r
-                               String fileName = rs.getString("filename");\r
-                               if (idToCheck.equals(fileName)) {\r
-                                       result[0] = rs.getLong("mediaid");\r
-                                       return false;\r
-                               } else\r
-                                       return true;\r
-                       };\r
-                       manager.executeQuery(query.toString(), consumer, null);\r
+               int indexOf = houseid.lastIndexOf("-");\r
+               if (indexOf > 0) {\r
+                       final String idToCheck = houseid.substring(0, houseid.lastIndexOf("-"));\r
+                       MetadataType metadataType = MetadataTypeDetector.GuessMetadataType(idToCheck);\r
+                       if (metadataType == MetadataType.OctopusPlaceholder) {\r
+                               StringBuilder query = new StringBuilder();\r
+                               query.append("select mediaid, mediafilehouseid, filename");\r
+                               query.append(" ");\r
+                               query.append(String.format("from vw_rundown_items where mediafilehouseid like '%s%%'", idToCheck));\r
+                               query.append(" ");\r
+                               query.append("order by filename, mediaid");\r
+                               IResultSetConsumer consumer = rs -> {\r
+                                       String fileName = rs.getString("filename");\r
+                                       if (idToCheck.equals(fileName)) {\r
+                                               result[0] = rs.getLong("mediaid");\r
+                                               return false;\r
+                                       } else\r
+                                               return true;\r
+                               };\r
+                               manager.executeQuery(query.toString(), consumer, null);\r
+                       }\r
                }\r
 \r
                return result[0];\r