作用
当父任务更新“修复版本”、“影响版本”字段时,将父任务的这两个字段值复制到子任务中。
使用
进入到 “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();
}
