JIRA 统计所有记录的工作,从链接的问题和子任务到单个问题

JIRA tally all logged work from linked issues and sub tasks to single issue

我尝试了几种不同的 groovy 脚本方法形成各种示例,因为我不是编码员,但已经接近但没有真正成功。我已经举起手来想知道是否有聪明人知道该怎么做。

我只需要将针对特定 link 类型的父问题及其子任务记录的所有总工作显示为单个问题的总计。见图。

更正发布的答案:

这里的另一位社区成员为我解答了这个问题:https://community.atlassian.com/t5/Jira-Questions/JIRA-tally-all-logged-work-from-linked-issues-and-sub-tasks-to/qaq-p/1434260#U1435384

为我提供的脚本如下:

// Template: Duration (either of the 2)

import com.atlassian.jira.component.ComponentAccessor

def issueLinkmanager = ComponentAccessor.getIssueLinkManager()
def subtaskManager = ComponentAccessor.getSubTaskManager()
def workLogManager = ComponentAccessor.getWorklogManager()

def linkName = "Work"


def linkCollection = issueLinkmanager.getLinkCollectionOverrideSecurity(issue)
def linkedIssues = linkCollection?.getInwardIssues(linkName) //Inward or Outward? Verify and change if needed.

if (!linkedIssues) {
    // no linked issues
    return null
}

def totalTimeSpentFromWorkLinkedIssuesAndTheirSubtasks = []

for (def linkedIssue:linkedIssues) {
    def worklogList = workLogManager.getByIssue(linkedIssue)
    for (def worklog:worklogList) {
        def timeSpent = worklog.getTimeSpent()
        totalTimeSpentFromWorkLinkedIssuesAndTheirSubtasks.add(timeSpent)
    }

    def subTasks = subtaskManager.getSubTaskObjects(linkedIssue)
    for (def subTask:subTasks) {
        def worklogListSubTask = workLogManager.getByIssue(subTask)
        for (def worklogSubTask:worklogListSubTask) {
            def timeSpent = worklogSubTask.getTimeSpent()
            totalTimeSpentFromWorkLinkedIssuesAndTheirSubtasks.add(timeSpent)
        }
    }
}

return totalTimeSpentFromWorkLinkedIssuesAndTheirSubtasks?.sum()