Jira ScriptRunner脚本-根据子任务修改父任务自定义字段状态

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可以直接使用不需要创建。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值