Skip to content

Commit

Permalink
EP-4401-2
Browse files Browse the repository at this point in the history
  • Loading branch information
oplekal committed Nov 11, 2024
1 parent e787155 commit a578983
Show file tree
Hide file tree
Showing 11 changed files with 60 additions and 20 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package fi.vm.sade.eperusteet.repository;

import fi.vm.sade.eperusteet.domain.KoulutusTyyppi;
import org.springframework.security.access.prepost.PreAuthorize;

import java.util.List;
Expand All @@ -9,6 +10,6 @@ public interface JulkaistuPerusteDataStoreRepository {
@PreAuthorize("hasPermission(#perusteId, 'peruste', 'MUOKKAUS') or hasPermission(#perusteId, 'peruste', 'TILANVAIHTO')")
void syncPeruste(Long perusteId);

List<Long> findPerusteIds();
List<Long> findPerusteIdsByKoulutustyypit(List<String> koulutustyypit);

}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package fi.vm.sade.eperusteet.repository.custom;

import fi.vm.sade.eperusteet.domain.KoulutusTyyppi;
import fi.vm.sade.eperusteet.dto.util.CacheArvot;
import fi.vm.sade.eperusteet.repository.JulkaistuPerusteDataStoreRepository;
import fi.vm.sade.eperusteet.repository.PerusteRepository;
Expand Down Expand Up @@ -39,9 +40,11 @@ public void syncPeruste(Long perusteId) {
}

@Override
public List<Long> findPerusteIds() {
String sql = "SELECT DISTINCT perusteid FROM julkaistu_peruste_data_store";
public List<Long> findPerusteIdsByKoulutustyypit(List<String> koulutustyypit) {
String sql = "SELECT DISTINCT perusteid FROM julkaistu_peruste_data_store WHERE koulutustyyppi IN (:koulutustyypit)";

return (List<Long>) entityManager.createNativeQuery(sql)
.setParameter("koulutustyypit", koulutustyypit)
.getResultList()
.stream()
.map(o -> Long.parseLong(o.toString()))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,9 +55,7 @@ public class ScheduledConfiguration implements SchedulingConfigurer {
public void sortTasks() {
// Järjestetään tehtävät prioriteetin mukaan
tasks = tasks.stream()
.sorted(Comparator.comparing(ScheduledTask::getPriority)
.thenComparing(ScheduledTask::getName)
.reversed())
.sorted(Comparator.comparing(ScheduledTask::getPriority).reversed())
.collect(Collectors.toList());
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@
import fi.vm.sade.eperusteet.service.mapping.Dto;
import fi.vm.sade.eperusteet.service.mapping.DtoMapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.CacheManager;
import org.springframework.cache.annotation.Cacheable;
Expand All @@ -54,9 +55,9 @@
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.support.TransactionTemplate;
import org.springframework.util.CollectionUtils;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Date;
import java.util.HashSet;
Expand Down Expand Up @@ -287,7 +288,10 @@ public void teeMaarayksetPerusteille() {
@Override
@IgnorePerusteUpdateCheck
public void cacheJulkisetPerusteNavigoinnit() {
julkaistuPerusteDataStoreRepository.findPerusteIds()
List<String> koulutustyypit = Arrays.stream(KoulutusTyyppi.values()).map(KoulutusTyyppi::toString).collect(Collectors.toList());
koulutustyypit.removeAll(List.of(KoulutusTyyppi.VALMA.toString(), KoulutusTyyppi.TELMA.toString()));
koulutustyypit.removeAll(KoulutusTyyppi.ammatilliset());
julkaistuPerusteDataStoreRepository.findPerusteIdsByKoulutustyypit(koulutustyypit)
.forEach(perusteId -> perusteRepository.findOne(perusteId).getKielet()
.forEach(kieli -> {
try {
Expand All @@ -301,7 +305,10 @@ public void cacheJulkisetPerusteNavigoinnit() {
@Override
@IgnorePerusteUpdateCheck
public void cacheJulkaistutPerusteet() {
julkaistuPerusteDataStoreRepository.findPerusteIds()
List<String> koulutustyypit = Arrays.stream(KoulutusTyyppi.values()).map(KoulutusTyyppi::toString).collect(Collectors.toList());
koulutustyypit.removeAll(List.of(KoulutusTyyppi.VALMA.toString(), KoulutusTyyppi.TELMA.toString()));
koulutustyypit.removeAll(KoulutusTyyppi.ammatilliset());
julkaistuPerusteDataStoreRepository.findPerusteIdsByKoulutustyypit(koulutustyypit)
.forEach(perusteId -> {
try {
perusteService.getJulkaistuSisalto(perusteId);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ public class AmosaaTilastotTask extends AbstractScheduledTask {

@Override
public int getPriority() {
return 500;
return 70;
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ public class JulkinenEtusivuHakuCacheTask extends AbstractScheduledTask {

@Override
public int getPriority() {
return 100;
return 80;
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,15 +25,12 @@ public class PerusteJulkaisutCacheTask extends AbstractScheduledTask {

@Override
public int getPriority() {
return 200;
return 100;
}

@Override
public void executeTask(Date viimeisinajoaika) {
maintenanceService.clearCache(CacheArvot.JULKINEN_PERUSTE_NAVIGOINTI);
maintenanceService.clearCache(CacheArvot.PERUSTE_JULKAISU);

maintenanceService.cacheJulkisetPerusteNavigoinnit();
maintenanceService.cacheJulkaistutPerusteet();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package fi.vm.sade.eperusteet.service.tasks;

import fi.vm.sade.eperusteet.dto.util.CacheArvot;
import fi.vm.sade.eperusteet.repository.JulkaistuPerusteDataStoreRepository;
import fi.vm.sade.eperusteet.service.MaintenanceService;
import fi.vm.sade.eperusteet.service.PerusteService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Component;

import java.util.Date;

@Component
public class PerusteNavigoinnitCacheTask extends AbstractScheduledTask {

@Lazy
@Autowired
private MaintenanceService maintenanceService;

@Autowired
private JulkaistuPerusteDataStoreRepository julkaistuPerusteDataStoreRepository;

@Autowired
private PerusteService perusteService;

@Override
public int getPriority() {
return 90;
}

@Override
public void executeTask(Date viimeisinajoaika) {
maintenanceService.clearCache(CacheArvot.JULKINEN_PERUSTE_NAVIGOINTI);
maintenanceService.cacheJulkisetPerusteNavigoinnit();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -28,16 +28,14 @@ public class TutkinnonosienAmmattiaitovaatimusKooditTask extends AbstractSchedul

@Override
public int getPriority() {
return 4000;
return 50;
}

@Override
public void executeTask(Date viimeisinajoaika) {

koodistoClient.addKoodistoRelaatio(KoodistoUriArvo.TUTKINTONIMIKKEET, KoodistoUriArvo.TUTKINNONOSAT, KoodiRelaatioTyyppi.SISALTYY);
koodistoClient.addKoodistoRelaatio(KoodistoUriArvo.KOULUTUS, KoodistoUriArvo.TUTKINNONOSAT, KoodiRelaatioTyyppi.SISALTYY);
koodistoClient.addKoodistoRelaatio(KoodistoUriArvo.TUTKINNONOSAT, KoodistoUriArvo.AMMATTITAITOVAATIMUKSET, KoodiRelaatioTyyppi.SISALTYY);
ammattitaitovaatimusService.lisaaAmmattitaitovaatimusTutkinnonosaKoodistoon(viimeisinajoaika);

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ public class YlopsTilastotTask extends AbstractScheduledTask {

@Override
public int getPriority() {
return 550;
return 60;
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ public void syncPeruste(Long perusteId) {
}

@Override
public List<Long> findPerusteIds() {
public List<Long> findPerusteIdsByKoulutustyypit(List<String> koulutustyypit) {
return List.of();
}
}

0 comments on commit a578983

Please sign in to comment.