作用
当父任务更新“修复版本”、“影响版本”字段时,将父任务的这两个字段值复制到子任务中。
使用
进入到 “listener” 菜单,新建一个 “Custom listener” 监听。
给这个监听起名后,选择要应用到的项目和监听的事件 (这里要选择 “Issue Updated”)。
在 “Script” 中填写以下代码。
import com.atlassian.jira.event.type.EventDispatchOption import com.atlassian.jira.issue.MutableIssue import com.atlassian.jira.user.ApplicationUser; import com.atlassian.jira.issue.IssueManager; import org.ofbiz.core.entity.GenericValue; import org.joda.time.DateTime; import com.atlassian.jira.issue.Issue; import com.atlassian.jira.issue.changehistory.ChangeHistory; import com.atlassian.jira.component.ComponentAccessor; import com.atlassian.jira.issue.changehistory.ChangeHistoryManager; log.info("event:" + event); Issue issue = event.getIssue(); if(issue.isSubTask()){ return } if(eventId == 2L){ return; } try{ GenericValue genericValue = event.getChangeLog(); //如果更新了issue的"Fix Version"字段, 将此任务的"Fix Version"字段值复制到子任务中 if ("Fix Version".equals(genericValue.get("field"))) { //获取当前issue的子任务 Collection<Issue> subTasks = issue.getSubTaskObjects(); for (Issue subTask : subTasks) { MutableIssue mutableIssue = ComponentAccessor.getIssueManager().getIssueObject(subTask.getKey()); mutableIssue.setFixVersions(issue.getFixVersions()); issueManager.updateIssue(loginUser, mutableIssue, EventDispatchOption.ISSUE_UPDATED, true); } } //如果更新了issue的"Affects Version"字段, 将此任务的"Affects Version"字段值复制到子任务中 if ("Version".equals(genericValue.get("field"))) { //获取当前issue的子任务 Collection<Issue> subTasks = issue.getSubTaskObjects(); for (Issue subTask : subTasks) { MutableIssue mutableIssue = ComponentAccessor.getIssueManager().getIssueObject(subTask.getKey()); mutableIssue.setAffectedVersions(issue.getAffectedVersions()); issueManager.updateIssue(loginUser, mutableIssue, EventDispatchOption.ISSUE_UPDATED, true); } } } catch (Exception e){ e.printStackTrace(); }