Guest User

Untitled

a guest
Jan 13th, 2019
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 6.85 KB | None | 0 0
  1. diff --git a/src/main/java/ru/borlas/jira/plugins/ChangeParentCoordinationTaskStatusFunction.java b/src/main/java/ru/borlas/jira/plugins/ChangeParentCoordinationTaskStatusFunction.java
  2. index 403fe46..ac294b0 100644
  3. --- a/src/main/java/ru/borlas/jira/plugins/ChangeParentCoordinationTaskStatusFunction.java
  4. +++ b/src/main/java/ru/borlas/jira/plugins/ChangeParentCoordinationTaskStatusFunction.java
  5. @@ -8,6 +8,7 @@ import com.atlassian.jira.issue.IssueInputParameters;
  6.  import com.atlassian.jira.issue.MutableIssue;
  7.  import com.atlassian.jira.issue.fields.CustomField;
  8.  import com.atlassian.jira.issue.status.Status;
  9. +import com.atlassian.jira.util.ImportUtils;
  10.  import com.atlassian.jira.workflow.function.issue.AbstractJiraFunctionProvider;
  11.  import com.opensymphony.module.propertyset.PropertySet;
  12.  import com.opensymphony.workflow.WorkflowException;
  13. @@ -45,20 +46,53 @@ public class ChangeParentCoordinationTaskStatusFunction extends AbstractJiraFunc
  14.          Collection<Issue> childIssues = parentIssue.getSubTaskObjects();
  15.          Boolean finalizeParent = Boolean.TRUE;
  16.          System.out.println("childIssues size = ["+childIssues.size()+"]");
  17. -        if(childIssues.size() == 0)
  18. -        {
  19. +        if(childIssues.size() == 0){
  20.              System.out.println("NO childs in parent task!!!");
  21.              return;
  22.          }
  23. +
  24.          CustomField customRoleField = customFieldManager.getCustomFieldObject(CreateCoordinationSubtasks.ROLE_CUSTOM_FIELD);
  25. +        if(customRoleField == null){
  26. +            throw new WorkflowException("Нет конфигурации для поля " + CreateCoordinationSubtasks.ROLE_CUSTOM_FIELD);
  27. +        }
  28. +
  29.          String myRole = (String) issue.getCustomFieldValue(customRoleField);
  30.  
  31. -        if(customRoleField == null) {
  32. -            throw new WorkflowException("Нет конфигурации для поля " + CreateCoordinationSubtasks.ROLE_CUSTOM_FIELD);
  33. +        if (myRole == null){
  34. +            throw new WorkflowException("В задаче " + issue.getKey() + " Не заполнено поле " + CreateCoordinationSubtasks.ROLE_CUSTOM_FIELD);
  35. +        }
  36. +
  37. +        CustomField customCycleField = customFieldManager.getCustomFieldObject(CreateCoordinationSubtasks.APPROVE_CYCLE_FIELD_ID);
  38. +
  39. +        if(customCycleField == null){
  40. +            throw new WorkflowException("Нет конфигурации для поля " + CreateCoordinationSubtasks.APPROVE_CYCLE_FIELD_ID);
  41. +        }
  42. +
  43. +        Object parentCycle = parentIssue.getCustomFieldValue(customCycleField);
  44. +
  45. +        if(parentCycle == null){
  46. +            throw new WorkflowException("В задаче " + issue.getKey() + " Не заполнено поле " + CreateCoordinationSubtasks.APPROVE_CYCLE_FIELD_ID);
  47. +        }
  48. +
  49. +        Object myCycle = issue.getCustomFieldValue(customCycleField);
  50. +
  51. +        if(myCycle == null){
  52. +            throw new WorkflowException("В задаче " + issue.getKey() + " Не заполнено поле " + CreateCoordinationSubtasks.APPROVE_CYCLE_FIELD_ID);
  53. +        }
  54. +        if(!myCycle.equals(parentCycle)) {
  55. +            finalizeParent = Boolean.FALSE;
  56.          }
  57.  
  58.          for(Issue issueChild : childIssues)
  59.          {
  60. +            Object customCycleName = issueChild.getCustomFieldValue(customCycleField);
  61. +
  62. +            if (customCycleName == null) {
  63. +                throw new WorkflowException("В задаче " + issueChild.getKey() + " не заполнено поле " + CreateCoordinationSubtasks.APPROVE_CYCLE_FIELD_ID);
  64. +            }
  65. +            if (!myCycle.equals(customCycleName)){
  66. +                continue;
  67. +            }
  68.              if(issueChild.getKey().equals(issue.getKey())) {
  69.                  continue;
  70.              }
  71. @@ -73,16 +107,33 @@ public class ChangeParentCoordinationTaskStatusFunction extends AbstractJiraFunc
  72.  
  73.              if(customRoleName.equals(myRole) && !customRoleName.equals("ТП: согласующие") && !issueStatusChild.getId().equals("10019") && !issueStatusChild.getId().equals("10017")) {
  74.                  System.out.println("change to closed issue = " + issueChild.getKey());
  75. +
  76. +                // das ist eine Magie
  77. +                // --->Start
  78. +                boolean wasIndexing = ImportUtils.isIndexIssues();
  79. +                try {
  80. +                    // Set indexing to true
  81. +                    ImportUtils.setIndexIssues(true);
  82. +                    // ----
  83. +
  84.                  changeIssueStatus(issueChild, NOT_NEED_APPROVE_ACTION);
  85.                  continue;
  86. -            }
  87.  
  88. +                } finally {
  89. +                    // Reset Indexing
  90. +                    ImportUtils.setIndexIssues(wasIndexing);
  91. +                    // --->Ende
  92. +                }
  93. +
  94. +            }
  95. +            Object customChildCycleName = issueChild.getCustomFieldValue(customCycleField);
  96.              String statusNameChild = issueStatusChild.getName();
  97.              System.out.println("statusNameChild = ["+statusNameChild+"]");
  98.              System.out.println("status id = [" + issueStatusChild.getId() + "]");
  99. -            if(!issueStatusChild.getId().equals("10017") && !issueStatusChild.getId().equals("10019")) {
  100. -                System.out.println("not final child issue key = [" + issueChild.getKey() + "]");
  101. -                finalizeParent = Boolean.FALSE;
  102. +
  103. +            if(!issueStatusChild.getId().equals("10019") && !issueStatusChild.getId().equals("10017") && !customChildCycleName.equals(parentCycle)) {
  104. +                    System.out.println("not final child issue key = [" + issueChild.getKey() + "]");
  105. +                    finalizeParent = Boolean.FALSE;
  106.              }
  107.          }
  108.  
  109. @@ -103,8 +154,8 @@ public class ChangeParentCoordinationTaskStatusFunction extends AbstractJiraFunc
  110.          parentIssueParameters.setReporterId(parentIssue.getReporterId());
  111.          parentIssueParameters.setDescription(parentIssue.getDescription());
  112.          parentIssueParameters.setEnvironment(parentIssue.getEnvironment());
  113. -        if(parentIssue.getPriorityObject() != null)
  114. -        {
  115. +
  116. +        if(parentIssue.getPriorityObject() != null){
  117.              parentIssueParameters.setPriorityId(parentIssue.getPriorityObject().getId());
  118.          }
  119.          else
  120. @@ -116,8 +167,8 @@ public class ChangeParentCoordinationTaskStatusFunction extends AbstractJiraFunc
  121.          System.out.println("will change state to 161");
  122.          IssueService.TransitionValidationResult transitionValidationResult = issueService.validateTransition(parentIssue.getAssignee(), parentIssue.getId(), actionId, parentIssueParameters);
  123.          System.out.println("transitionValidationResult.isValid() = ["+transitionValidationResult.isValid()+"]");
  124. -        if(transitionValidationResult.isValid())
  125. -        {
  126. +
  127. +        if(transitionValidationResult.isValid()){
  128.              issueService.transition(parentIssue.getAssignee(), transitionValidationResult);
  129.          }
  130.          else
Add Comment
Please, Sign In to add comment