Created
May 13, 2023 17:20
-
-
Save vikrantyadav11/4e5586af35bd29f1816e8b50e40a44f4 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import com.atlassian.jira.component.ComponentAccessor | |
import com.atlassian.jira.issue.ModifiedValue | |
import com.atlassian.jira.issue.util.DefaultIssueChangeHolder | |
import com.atlassian.jira.issue.CustomFieldManager; | |
import com.atlassian.jira.issue.MutableIssue; | |
import com.atlassian.jira.issue.index.IssueIndexingService; | |
def customFieldManager = ComponentAccessor.getCustomFieldManager() | |
def issue = event.issue | |
def issueKey = issue.getKey(); | |
final customFieldName = 'Weighted Roadmap Score' | |
def benefitField = customFieldManager.getCustomFieldObjectByName("Concept Strategy Score") | |
def strategicField = customFieldManager.getCustomFieldObjectByName("Customer Reach") | |
def improvementField = customFieldManager.getCustomFieldObjectByName("Impact") | |
def easeField = customFieldManager.getCustomFieldObjectByName("Competitive Impact") | |
def leadershipPriority = customFieldManager.getCustomFieldObject(31737) | |
def parentLinkField = customFieldManager.getCustomFieldObjectByName("Parent Link") | |
def customField = customFieldManager.getCustomFieldObjects(issue).findByName(customFieldName) | |
def parentLink = issue.getCustomFieldValue(parentLinkField) | |
def parentKey = parentLink.key | |
log.warn parentKey | |
def leadershipPriorityValue = issue.getCustomFieldValue(leadershipPriority).toString() | |
log.warn "Leadership Priority : ${leadershipPriorityValue}" | |
def leadershipScore = 30 | |
//////////////////////////////////////////////////////// | |
//This section will calculate the CODB Score// | |
//////////////////////////////////////////////////////// | |
//Get Manager | |
//def customFieldManager = ComponentAccessor.getCustomFieldManager() | |
//Get Custom Field Value for CODB Value | |
def CODB = 16334 as long | |
def CODBWeight = 101 | |
def CODBCustomField = customFieldManager.getCustomFieldObject(CODB) | |
def CODBValue = issue.getCustomFieldValue(CODBCustomField).toString() | |
def CODBFactor | |
def CODBScore | |
def weightedScore | |
//logic | |
log.warn('CODB Value: ' + CODBValue + ' Line 262') | |
if (CODBValue == 'Yes' && leadershipPriorityValue == 'Yes'){ | |
CODBFactor = 1 | |
CODBScore = (CODBWeight * CODBFactor) + leadershipScore | |
} | |
else if (CODBValue == 'Yes') { | |
CODBFactor = 1 | |
CODBScore = (CODBWeight * CODBFactor) | |
}else { | |
CODBFactor = 0 | |
CODBScore = (CODBWeight * CODBFactor) | |
} | |
log.warn('CODB Factor: ' + CODBFactor + ' Line 273') | |
log.warn('CODB Score: ' + CODBScore + ' Line 277') | |
if(parentKey != null){ | |
def benefitValue = issue.getCustomFieldValue(benefitField).toString().toInteger() | |
def strategicValue = issue.getCustomFieldValue(strategicField).toString().toInteger() | |
def improvementValue = issue.getCustomFieldValue(improvementField).toString().toInteger() | |
def easeValue = issue.getCustomFieldValue(easeField).toString().toInteger() | |
weightedScore = ((benefitValue*0.3) + (strategicValue*0.2) + (improvementValue*0.1) + (easeValue*0.1))*10 | |
log.warn "weighted Score : ${weightedScore} : ${parentKey} " | |
if (CODBValue == 'Yes' && leadershipPriorityValue == 'No') | |
{ | |
customField.updateValue(null, issue, new ModifiedValue(issue.getCustomFieldValue(customField), CODBScore as Double), new DefaultIssueChangeHolder())} | |
else if (CODBValue == 'No' && leadershipPriorityValue == 'Yes') | |
{ | |
weightedScore = (((benefitValue*0.3) + (strategicValue*0.2) + (improvementValue*0.1) + (easeValue*0.1))*10) + leadershipScore | |
customField.updateValue(null, issue, new ModifiedValue(issue.getCustomFieldValue(customField), weightedScore as Double), new DefaultIssueChangeHolder()) | |
}else if (CODBValue == 'Yes' && leadershipPriorityValue == 'Yes') | |
{ | |
customField.updateValue(null, issue, new ModifiedValue(issue.getCustomFieldValue(customField), CODBScore as Double), new DefaultIssueChangeHolder()) | |
}else | |
{ | |
customField.updateValue(null, issue, new ModifiedValue(issue.getCustomFieldValue(customField), weightedScore as Double), new DefaultIssueChangeHolder()) | |
} | |
} | |
else { | |
log.warn "Issue is not a child" | |
} | |
// Get the issue indexing service | |
def issueIndexingService = ComponentAccessor.getComponent(IssueIndexingService.class); | |
// Reindex the issue | |
issueIndexingService.reIndex(issue); | |
log.warn("Issue " + issueKey + " has been reindexed"); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment