Search in sources :

Example 6 with UserSearch

use of com.autentia.tnt.dao.search.UserSearch in project TNTConcept by autentia.

the class GlobalHoursReportBean method getUsers.

public List<User> getUsers() {
    // Retrieve active users:
    UserSearch userSearch = new UserSearch();
    userSearch.setActive(true);
    usuarios = userManager.getAllEntities(userSearch, new SortCriteria("name"));
    return usuarios;
}
Also used : SortCriteria(com.autentia.tnt.dao.SortCriteria) UserSearch(com.autentia.tnt.dao.search.UserSearch)

Example 7 with UserSearch

use of com.autentia.tnt.dao.search.UserSearch in project TNTConcept by autentia.

the class ActivityEvidenceNotificationBean method checkActivitiesWithNoEvidence.

public void checkActivitiesWithNoEvidence() throws MessagingException {
    log.info("Checking for users with no activity evidence images attached for the past 7 days");
    authenticateAs(ConfigurationUtil.getDefault().getAdminUser());
    Date oneWeekAgo = Date.from(LocalDate.now().plusDays(-7).atStartOfDay(ZoneId.systemDefault()).toInstant());
    UserSearch userSearch = new UserSearch();
    userSearch.setActive(true);
    List<User> users = UserManager.getDefault().getAllEntities(userSearch, null).stream().filter(user -> user.getEmail() != null).collect(Collectors.toList());
    for (User user : users) {
        ActivitySearch search = new ActivitySearch();
        search.setStartStartDate(oneWeekAgo);
        search.setUser(user);
        List<Activity> activities = ActivityManager.getDefault().getAllEntities(search, null);
        activities = activities.stream().filter(activity -> doesProjectContainRoleWithRequiredEvidence(activity.getRole().getProject())).collect(Collectors.toList());
        if (activities.isEmpty()) {
            continue;
        }
        HashMap<Project, List<Activity>> groupedActivities = groupedActivitiesByProject(activities);
        for (Project project : groupedActivities.keySet()) {
            List<Activity> prjActivities = groupedActivities.get(project);
            if (prjActivities.stream().anyMatch(activity -> activity.getRole().getRequireEvidence()) && prjActivities.stream().noneMatch(this::doesActivitityHasEvidence)) {
                List<ProjectRole> roles = prjActivities.stream().map(Activity::getRole).filter(ProjectRole::getRequireEvidence).collect(Collectors.toList());
                prjActivities.stream().findFirst().ifPresent(activity -> {
                    try {
                        sendEmail(project, roles, user.getEmail());
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                });
            }
        }
    }
}
Also used : MailService(com.autentia.tnt.mail.MailService) Authentication(org.acegisecurity.Authentication) java.util(java.util) AuthenticationManager(com.autentia.tnt.manager.security.AuthenticationManager) Principal(com.autentia.tnt.manager.security.Principal) ActivitySearch(com.autentia.tnt.dao.search.ActivitySearch) MessagingException(javax.mail.MessagingException) Project(com.autentia.tnt.businessobject.Project) Collectors(java.util.stream.Collectors) ZoneId(java.time.ZoneId) User(com.autentia.tnt.businessobject.User) UsernamePasswordAuthenticationToken(org.acegisecurity.providers.UsernamePasswordAuthenticationToken) ConfigurationUtil(com.autentia.tnt.util.ConfigurationUtil) LocalDate(java.time.LocalDate) ProjectRole(com.autentia.tnt.businessobject.ProjectRole) SecurityContextHolder(org.acegisecurity.context.SecurityContextHolder) Log(org.apache.commons.logging.Log) Activity(com.autentia.tnt.businessobject.Activity) LogFactory(org.apache.commons.logging.LogFactory) UserManager(com.autentia.tnt.manager.admin.UserManager) UserSearch(com.autentia.tnt.dao.search.UserSearch) ActivityManager(com.autentia.tnt.manager.activity.ActivityManager) User(com.autentia.tnt.businessobject.User) Activity(com.autentia.tnt.businessobject.Activity) ProjectRole(com.autentia.tnt.businessobject.ProjectRole) LocalDate(java.time.LocalDate) MessagingException(javax.mail.MessagingException) UserSearch(com.autentia.tnt.dao.search.UserSearch) Project(com.autentia.tnt.businessobject.Project) ActivitySearch(com.autentia.tnt.dao.search.ActivitySearch)

Aggregations

UserSearch (com.autentia.tnt.dao.search.UserSearch)7 User (com.autentia.tnt.businessobject.User)5 SortCriteria (com.autentia.tnt.dao.SortCriteria)3 UserManager (com.autentia.tnt.manager.admin.UserManager)2 LocalDate (java.time.LocalDate)2 ArrayList (java.util.ArrayList)2 Activity (com.autentia.tnt.businessobject.Activity)1 Project (com.autentia.tnt.businessobject.Project)1 ProjectRole (com.autentia.tnt.businessobject.ProjectRole)1 UserHolidaysState (com.autentia.tnt.businessobject.UserHolidaysState)1 DataIntegrityException (com.autentia.tnt.dao.DataIntegrityException)1 DataNotFoundException (com.autentia.tnt.dao.DataNotFoundException)1 ActivitySearch (com.autentia.tnt.dao.search.ActivitySearch)1 MailService (com.autentia.tnt.mail.MailService)1 ActivityManager (com.autentia.tnt.manager.activity.ActivityManager)1 AuthenticationManager (com.autentia.tnt.manager.security.AuthenticationManager)1 Principal (com.autentia.tnt.manager.security.Principal)1 ConfigurationUtil (com.autentia.tnt.util.ConfigurationUtil)1 ZoneId (java.time.ZoneId)1 java.util (java.util)1