Вы присваиваете rt
лонгу в двух if
блоках. (Просто long, а не массив long.) Следовательно, метод .sum()
недоступен.
Вы можете использовать
rt << -timeDiff
// or
rt << timeDiff
чтобы добавить ваши timeDiffs в массив, а не переопределять его.
Вы также можете просто инициализировать rt как 0, а затем использовать rt += timeDiff
или rt -= timeDiff
, если хотите. Не похоже, что вам действительно нужно это для существования в виде массива.
Пример, который может работать для вас:
import com.atlassian.jira.component.ComponentAccessor
def changeHistoryManager = ComponentAccessor.changeHistoryManager
def currentStatusName = issue?.status?.name
def rt = 0L
changeHistoryManager.getChangeItemsForField (issue, "status").reverse().each {item ->
def timeDiff = System.currentTimeMillis() - item.created.getTime()
if (item.fromString == currentStatusName) {
rt -= timeDiff
}
if (item.toString == currentStatusName){
rt += timeDiff
}
}
return rt / 3600000
// this could still be Math.round(rt/3600000) as Double if you need that; not sure what you're trying to do with the actual result