данные и пишу в мапу. Если условия выполняются добовляю запись с уже существующим ключом т. Е. перезаписываю значение в мапе. Записываю все value в csv файл и тут обнаруживаю, что появляется якобы перезатертые значения, хотя их не должно быть. Куда копать?
А код где?
private def prepareTasks(ArrayList filteredWorkloads) { def map = new HashMap<TaskKey, Task>() filteredWorkloads.each { workload -> String taskLink = getLinkToTask(workload as LazyMap) String taskDate = getDate(workload as LazyMap) TaskKey taskKey = new TaskKey(taskLink, taskDate) if (!map.containsKey(taskKey)) { def body = getTaskBody(taskLink) Task task = fillTask(taskLink, body, workload as LazyMap) map.put(taskKey, task) } else { def taskFromMap = map.get(taskKey) as Task Task task = fillTaskFromAnotherTask(taskFromMap, workload as LazyMap) map.put(taskKey, task) } } return map.values() } И метод который пишет static def write(List<Task> tasks) { def csvFormat = CSVFormat.EXCEL .builder() .setAutoFlush(true) .setHeader(header) .build() def fileWriter = new FileWriter("./reports/${System.currentTimeMillis()}.csv") def csvPrinter = new CSVPrinter(fileWriter, csvFormat) tasks.each { task -> csvPrinter.printRecord(task.date, task.employeeName, task.component, task.platformVersion, task.type, task.summary, task.spentTime) } csvPrinter.close() fileWriter.close() }
Обсуждают сегодня