import java.math.BigDecimal
import com.atlassian.jira.issue.Issue;
import com.atlassian.jira.issue.issuetype.IssueType;
import com.atlassian.jira.issue.IssueManager;
import com.atlassian.jira.issue.fields.FieldManager;
import com.atlassian.jira.issue.CustomFieldManager;
import com.atlassian.jira.event.type.EventDispatchOption
import com.atlassian.jira.issue.MutableIssue;
import com.atlassian.jira.issue.fields.CustomField;
import java.util.List;
import com.atlassian.jira.component.ComponentAccessor;
log.setLevel(org.apache.log4j.Level.DEBUG);
IssueManager issueManager = ComponentAccessor.getIssueManager();
CustomFieldManager customFieldManager = ComponentAccessor.getCustomFieldManager();
//MutableIssue issue = issueManager.getIssueByCurrentKey("XNTS-132");
MutableIssue parent = issue.getParentObject() as MutableIssue
Collection<Issue> subList = parent.getSubTaskObjects();
Integer end = 0;
String priorityStr = "0%";
if(!subList.isEmpty()){
for(Issue issues : subList){
// if((issues.getStatus().getName() in ['已完成','结束']) && issues.getIssueType().getName() in ['开发子任务']){
// end += 1;
// }
if((issues.getStatus().getName() in ['已完成','结束'])){
end += 1;
}
}
}else{
priorityStr = "100%";
}
Integer size = subList.size();
if(size == 0 || end == 0){
priorityStr = "0%";
}else {
BigDecimal bigDecima1 = BigDecimal.valueOf(end);
BigDecimal bigDecima2 = BigDecimal.valueOf(size);
BigDecimal divide = bigDecima1.divide(bigDecima2, 4, BigDecimal.ROUND_HALF_UP);
BigDecimal bigDecimal = divide.multiply(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP);
String[] b = bigDecimal.toString().split("\\.");
if(b[1].equals("00")){
priorityStr = b[0] + "%";
}else{
priorityStr = b[0] + "." + b[1] + "%";
}
}
CustomField cf =ComponentAccessor.getCustomFieldManager().getCustomFieldObject(11802L);
parent.setCustomFieldValue(cf,priorityStr);
//提交修改内容到数据库
def currentUser = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser();
issueManager.updateIssue(currentUser,parent,EventDispatchOption.ISSUE_UPDATED,false);
log.info("修改成功");
注:issue可以直接使用不需要创建。