Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git a/src/main/java/ru/borlas/jira/plugins/ChangeParentCoordinationTaskStatusFunction.java b/src/main/java/ru/borlas/jira/plugins/ChangeParentCoordinationTaskStatusFunction.java
- index 403fe46..a9c2ddc 100644
- --- a/src/main/java/ru/borlas/jira/plugins/ChangeParentCoordinationTaskStatusFunction.java
- +++ b/src/main/java/ru/borlas/jira/plugins/ChangeParentCoordinationTaskStatusFunction.java
- @@ -8,6 +8,7 @@ import com.atlassian.jira.issue.IssueInputParameters;
- import com.atlassian.jira.issue.MutableIssue;
- import com.atlassian.jira.issue.fields.CustomField;
- import com.atlassian.jira.issue.status.Status;
- +import com.atlassian.jira.util.ImportUtils;
- import com.atlassian.jira.workflow.function.issue.AbstractJiraFunctionProvider;
- import com.opensymphony.module.propertyset.PropertySet;
- import com.opensymphony.workflow.WorkflowException;
- @@ -45,20 +46,44 @@ public class ChangeParentCoordinationTaskStatusFunction extends AbstractJiraFunc
- Collection<Issue> childIssues = parentIssue.getSubTaskObjects();
- Boolean finalizeParent = Boolean.TRUE;
- System.out.println("childIssues size = ["+childIssues.size()+"]");
- - if(childIssues.size() == 0)
- - {
- + if(childIssues.size() == 0){
- System.out.println("NO childs in parent task!!!");
- return;
- }
- +
- CustomField customRoleField = customFieldManager.getCustomFieldObject(CreateCoordinationSubtasks.ROLE_CUSTOM_FIELD);
- + if(customRoleField == null){
- + throw new WorkflowException("Нет конфигурации для поля " + CreateCoordinationSubtasks.ROLE_CUSTOM_FIELD);
- + }
- +
- String myRole = (String) issue.getCustomFieldValue(customRoleField);
- - if(customRoleField == null) {
- - throw new WorkflowException("Нет конфигурации для поля " + CreateCoordinationSubtasks.ROLE_CUSTOM_FIELD);
- + if (myRole == null){
- + throw new WorkflowException("В задаче " + issue.getKey() + " Не заполнено поле " + CreateCoordinationSubtasks.ROLE_CUSTOM_FIELD);
- + }
- +
- + CustomField customCycleField = customFieldManager.getCustomFieldObject(CreateCoordinationSubtasks.APPROVE_CYCLE_FIELD_ID);
- +
- + if(customCycleField == null){
- + throw new WorkflowException("Нет конфигурации для поля " + CreateCoordinationSubtasks.APPROVE_CYCLE_FIELD_ID);
- + }
- +
- + Object myCycle = parentIssue.getCustomFieldValue(customCycleField);
- +
- + if(myCycle == null){
- + throw new WorkflowException("В задаче " + issue.getKey() + " Не заполнено поле " + CreateCoordinationSubtasks.APPROVE_CYCLE_FIELD_ID);
- }
- for(Issue issueChild : childIssues)
- {
- + Object customCycleName = issueChild.getCustomFieldValue(customCycleField);
- +
- + if (customCycleName == null) {
- + throw new WorkflowException("В задаче " + issueChild.getKey() + " не заполнено поле " + CreateCoordinationSubtasks.APPROVE_CYCLE_FIELD_ID);
- + }
- + if (!myCycle.equals(customCycleName)){
- + continue;
- + }
- if(issueChild.getKey().equals(issue.getKey())) {
- continue;
- }
- @@ -73,16 +98,35 @@ public class ChangeParentCoordinationTaskStatusFunction extends AbstractJiraFunc
- if(customRoleName.equals(myRole) && !customRoleName.equals("ТП: согласующие") && !issueStatusChild.getId().equals("10019") && !issueStatusChild.getId().equals("10017")) {
- System.out.println("change to closed issue = " + issueChild.getKey());
- +
- + // das ist eine Magie
- + // --->Start
- + boolean wasIndexing = ImportUtils.isIndexIssues();
- + try {
- + // Set indexing to true
- + ImportUtils.setIndexIssues(true);
- + // ----
- +
- changeIssueStatus(issueChild, NOT_NEED_APPROVE_ACTION);
- continue;
- - }
- + } finally {
- + // Reset Indexing
- + ImportUtils.setIndexIssues(wasIndexing);
- + // --->Ende
- + }
- +
- +
- +
- + }
- + Object customChildCycleName = issueChild.getCustomFieldValue(customCycleField);
- String statusNameChild = issueStatusChild.getName();
- System.out.println("statusNameChild = ["+statusNameChild+"]");
- System.out.println("status id = [" + issueStatusChild.getId() + "]");
- - if(!issueStatusChild.getId().equals("10017") && !issueStatusChild.getId().equals("10019")) {
- - System.out.println("not final child issue key = [" + issueChild.getKey() + "]");
- - finalizeParent = Boolean.FALSE;
- +
- + if(!customChildCycleName.equals(myCycle)) {
- + System.out.println("not final child issue key = [" + issueChild.getKey() + "]");
- + finalizeParent = Boolean.FALSE;
- }
- }
- @@ -103,8 +147,8 @@ public class ChangeParentCoordinationTaskStatusFunction extends AbstractJiraFunc
- parentIssueParameters.setReporterId(parentIssue.getReporterId());
- parentIssueParameters.setDescription(parentIssue.getDescription());
- parentIssueParameters.setEnvironment(parentIssue.getEnvironment());
- - if(parentIssue.getPriorityObject() != null)
- - {
- +
- + if(parentIssue.getPriorityObject() != null){
- parentIssueParameters.setPriorityId(parentIssue.getPriorityObject().getId());
- }
- else
- @@ -116,8 +160,8 @@ public class ChangeParentCoordinationTaskStatusFunction extends AbstractJiraFunc
- System.out.println("will change state to 161");
- IssueService.TransitionValidationResult transitionValidationResult = issueService.validateTransition(parentIssue.getAssignee(), parentIssue.getId(), actionId, parentIssueParameters);
- System.out.println("transitionValidationResult.isValid() = ["+transitionValidationResult.isValid()+"]");
- - if(transitionValidationResult.isValid())
- - {
- +
- + if(transitionValidationResult.isValid()){
- issueService.transition(parentIssue.getAssignee(), transitionValidationResult);
- }
- else
Add Comment
Please, Sign In to add comment