Projekt

Obecné

Profil

« Předchozí | Další » 

Revize 212b0072

Přidáno uživatelem Jiri Trefil před více než 1 rok

https://kivprogrammers.atlassian.net/browse/TSP2-63

dotazeni distinct typu kategorie a typu work unitu pro filtrovani z db - parsovani nactenych work unitu neni viable

Zobrazit rozdíly:

src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/WorkUnitRepository.java
62 62
    @Modifying
63 63
    @Transactional
64 64
    int updateWuActivity(@Param("activityId")Long activityId, @Param("wuIds") List<Long> wuIds);
65
    @Query("SELECT DISTINCT cat.name from WorkUnit  unit INNER JOIN Category cat on cat MEMBER OF unit.categories AND unit.project.id = ?1")
66
    List<String> fetchProjectWorkUnitsCategories(Long projectId);
67
    @Query("SELECT DISTINCT unit.type.name from WorkUnit  unit WHERE unit.project.id = ?1")
68
    List<String> fetchProjectWorkUnitsTypes(Long projectId);
69

  
70

  
65 71
}
src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/controller/management/WorkUnitController.java
30 30
            return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
31 31
        }
32 32
        List<WorkUnit> units = this.workUnitService.fetchProjectWorkUnits(projectId, category, type);
33
        Set<String> workUnitCategories = this.workUnitService.parseWorkUnitCategories(units);
34
        Set<String> workUnitTypes = this.workUnitService.parseWorkUnitTypes(units);
33
        //jde optimalizovat - neni cas
34
        List<String> workUnitCategories = this.workUnitService.fetchProjectWorkUnitCategories(projectId);
35
        List<String> workUnitTypes = this.workUnitService.fetchProjectWorkUnitTypes(projectId);
35 36

  
36 37
        if(units.size() == 0) {
37 38
            return ResponseEntity.ok(null);
src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/workUnit/WorkUnitServiceV2.java
3 3
import com.sun.istack.NotNull;
4 4
import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.WorkUnit;
5 5

  
6
import javax.annotation.Nullable;
6 7
import java.util.List;
7 8
import java.util.Set;
8 9

  
9 10
public interface WorkUnitServiceV2 {
10 11
    List<WorkUnit> fetchProjectWorkUnits(long activityId, String category, List <String> type);
11 12
    boolean updateWorkUnitsActivity(long activityId, List<Long> wuIds);
12
    Set<String> parseWorkUnitCategories(@NotNull List<WorkUnit> workUnits);
13
    Set<String> parseWorkUnitTypes(@NotNull List<WorkUnit> workUnits);
13

  
14
    List<String> fetchProjectWorkUnitCategories(Long projectId);
15
    List<String> fetchProjectWorkUnitTypes(Long projectId);
16

  
17

  
14 18

  
15 19
}
src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/workUnit/WorkUnitServiceV2Impl.java
42 42
    }
43 43

  
44 44
    @Override
45
    public Set<String> parseWorkUnitCategories(List<WorkUnit> workUnits) {
46
        Set<String> workUnitCategories = new HashSet<>();
47
        for(WorkUnit unit : workUnits) {
48
            for(Category categ : unit.getCategories())
49
                workUnitCategories.add(categ.getName());
50
        }
51
        return workUnitCategories;
45
    public List<String> fetchProjectWorkUnitCategories(Long projectId) {
46

  
47
        return this.workUnitRepository.fetchProjectWorkUnitsCategories(projectId);
52 48
    }
53 49

  
54 50
    @Override
55
    public Set<String> parseWorkUnitTypes(List<WorkUnit> workUnits) {
56
        Set<String> workUnitTypes = new HashSet<>();
57
        for(WorkUnit unit : workUnits) {
58
            workUnitTypes.add(unit.getType().getName());
59
        }
60
        return workUnitTypes;
51
    public List<String> fetchProjectWorkUnitTypes(Long projectId) {
52
        return this.workUnitRepository.fetchProjectWorkUnitsTypes(projectId);
61 53
    }
62 54

  
55

  
63 56
}

Také k dispozici: Unified diff