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();
}