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/simport com.atlassian.jira.project.version.Version
 
if(underlyingIssue){
    return;
}

def fixVersionsfixVersionsCf = getFieldById("fixVersions").getFormValue()
//取系统字段Due Date
;
def dueDatedueDateCf = getFieldById("duedate")
//如果没有配置Due Date字段退出程序
if (!dueDate) {
    return
}
if (fixVersions) {
   ;
if(fixVersionsCf==null || dueDateCf== null){
    return;
}

def dueDateValue = dueDateCf.getFormValue();

def fixVersionsValue = fixVersionsCf.getFormValue()

log.info("dueDateValue:["+dueDateValue+"]")
log.info("fixVersionsValue:["+fixVersionsValue+"]")

if (fixVersionsValue) {
    def latestDate = getLatestDate(fixVersionsfixVersionsValue);
   
    log.info("latestDate:"+latestDate)
    //没有设置版本时间把duedate置空
      if(!latestDate) {
           // dueDate.setFormValue(null)
            return;
      }
      //获得日期格式转化 类
      DateTimeFormatter dateFormatter = ComponentAccessor.getComponent(DateTimeFormatter.class);
      //根据当前操作人获得它的日期格式
      dateFormatter = dateFormatter.forLoggedInUser();
    dueDate.setFormValue(    dueDateValue = dateFormatter.withStyle(DateTimeStyle.DATE_PICKER).format(latestDate as Date);
    log.info("dueDateValue:"+dueDateValue)
    dueDateCf.setFormValue(dueDateValue)
} else {
     // dueDate.setFormValue(null)
}
 
//获取多个版本中最迟的完成时间
def getLatestDate(versions) {
     if(!(versions instanceof List)) {
            return ComponentAccessor.versionManagergetVersionManager().getVersion(versions as Long).releaseDategetReleaseDate();
      }
      def sortArray = [];
      for(x in versions) {
               log.debug("xx:"+x)
        def version = ComponentAccessor.versionManagergetVersionManager().getVersion(x as Long)
       ;
        if(version == null){
            continue;
        }
        if(version.releaseDategetReleaseDate()) {
                       sortArray.add(version.releaseDategetReleaseDate());
            }
      }
      return sortArray.max();
}

...