Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Code Block
languagegroovy
themeConfluence
linenumberstrue
import com.atlassian.jira.component.ComponentAccessor

...


import com.atlassian.jira.datetime.DateTimeFormatter

...


import com.atlassian.jira.datetime.DateTimeStyle

...



//取系统字段Fix Version/s

...


def fixVersions = getFieldById("fixVersions").getFormValue()

...


//取系统字段Due Date

...


def dueDate = getFieldById("duedate")

...


//如果没有配置Due Date字段退出程序

...


if (!dueDate) {

...


    return

...


}

...


if (fixVersions) {

...


    def latestDate = getLatestDate(fixVersions);

...


    //没有设置版本时间把duedate置空

...


    if(!latestDate) {

...


        dueDate.setFormValue(null)

...


        return;

...


    }

...


    //获得日期格式转化 

...


    DateTimeFormatter dateFormatter = ComponentAccessor.getComponent(DateTimeFormatter.class);

...


    //根据当前操作人获得它的日期格式

...


    dateFormatter = dateFormatter.forLoggedInUser();

...


    dueDate.setFormValue(dateFormatter.withStyle(DateTimeStyle.DATE_PICKER).format(latestDate as Date))

...


} else {

...


    dueDate.setFormValue(null)

...


}

...



//获取多个版本中最迟的完成时间

...


def getLatestDate(versions) {

...


    if(!(versions instanceof List)) {

...


        return ComponentAccessor.versionManager.getVersion(versions as Long).releaseDate;

...


    }

...


    def sortArray = [];

...


    for(x in versions) {

...


        def version = ComponentAccessor.versionManager.getVersion(x as Long)

...


        if(version.releaseDate) {

...


            sortArray.add(version.releaseDate);

...


        }

...


    }

...


    return sortArray.max();

...


}