public String executeTaskForCustomer()

in service/src/main/java/org/apache/fineract/cn/customer/internal/command/handler/TaskAggregate.java [111:132]


  public String executeTaskForCustomer(final ExecuteTaskForCustomerCommand executeTaskForCustomerCommand) {
    final CustomerEntity customerEntity = findCustomerEntityOrThrow(executeTaskForCustomerCommand.customerIdentifier());
    final List<TaskInstanceEntity> taskInstanceEntities = this.taskInstanceRepository.findByCustomer(customerEntity);
    if (taskInstanceEntities != null) {
      final Optional<TaskInstanceEntity> taskInstanceEntityOptional = taskInstanceEntities
          .stream()
          .filter(
              taskInstanceEntity -> taskInstanceEntity.getTaskDefinition().getIdentifier().equals(executeTaskForCustomerCommand.taskIdentifier())
                  && taskInstanceEntity.getExecutedBy() == null
          )
          .findAny();

      if (taskInstanceEntityOptional.isPresent()) {
        final TaskInstanceEntity taskInstanceEntity = taskInstanceEntityOptional.get();
        taskInstanceEntity.setExecutedBy(UserContextHolder.checkedGetUser());
        taskInstanceEntity.setExecutedOn(LocalDateTime.now(Clock.systemUTC()));
        this.taskInstanceRepository.save(taskInstanceEntity);
      }
    }

    return executeTaskForCustomerCommand.customerIdentifier();
  }