Пример #1
0
  public static Result transitionToCompleted(
      TaskArtifact taskArt, double estimatedHours, double additionalHours, IAtsChangeSet changes) {
    if (taskArt.isInState(TeamState.Completed)) {
      return Result.TrueResult;
    }
    // Assign current user if unassigned
    try {
      if (taskArt.getStateMgr().isUnAssigned()) {
        taskArt.getStateMgr().setAssignee(AtsClientService.get().getUserService().getCurrentUser());
      }
      taskArt
          .getStateMgr()
          .updateMetrics(
              taskArt.getStateDefinition(),
              additionalHours,
              100,
              true,
              AtsClientService.get().getUserService().getCurrentUser());
      if (estimatedHours > 0.0) {
        taskArt.setSoleAttributeValue(AtsAttributeTypes.EstimatedHours, estimatedHours);
      }
      TransitionHelper helper =
          new TransitionHelper(
              "Transition to Completed",
              Arrays.asList(taskArt),
              TaskStates.Completed.getName(),
              null,
              null,
              changes,
              AtsClientService.get().getServices());
      IAtsTransitionManager transitionMgr = TransitionFactory.getTransitionManager(helper);
      TransitionResults results = transitionMgr.handleAll();

      if (results.isEmpty()) {
        return Result.TrueResult;
      }
      return new Result("Transition Error %s", results.toString());
    } catch (Exception ex) {
      OseeLog.log(Activator.class, Level.SEVERE, ex);
      return new Result(
          "Exception occurred while transitioning to completed (see error log) "
              + ex.getLocalizedMessage());
    }
  }