Page tree
Skip to end of metadata
Go to start of metadata

示例描述:

研发子任务的计划完成日期不能大于研发任务的计划完成日期

import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.issue.MutableIssue
import java.text.SimpleDateFormat

def startDate = getFieldByName("计划开始日期")
def endDate = getFieldByName("计划完成日期")
if (startDate && endDate && startDate.getValue() && endDate.getValue()) {
   def startDateVal = startDate.getValue() as Date
   def endDateVal = endDate.getValue() as Date
   if (startDateVal && endDateVal && startDateVal.after(endDateVal)) {
       startDate.setError('计划开始日期不能大于计划完成日期')
   } else {
       startDate.setError('')
   }
   //判断计划完成日期是否大于父任务计划完成日期
   def parentIssueId = 0L
   if (underlyingIssue?.id) {
       parentIssueId = underlyingIssue.getParentId()
   } else {
       def parent = getFieldById("parentIssueId")
       parentIssueId = parent.getValue() as Long
   }
   if (parentIssueId) {
       def issueManager = ComponentAccessor.getIssueManager()
       def parentIssue = issueManager.getIssueObject(parentIssueId)
       def doneDate = ComponentAccessor.customFieldManager.getCustomFieldObject(10201L)
       def parentEndDate = parentIssue.getCustomFieldValue(doneDate) as Date
       SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd")
       if (endDateVal && endDateVal.after(parentEndDate)) {
           endDate.setError('计划完成日期不能大于父任务计划完成日期: '+sdf.format(parentEndDate)+',请先调整父任务的计划完成日期')
       } else {
           endDate.setError('')
       }
   } 
}
  • No labels