Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OK-775 Lisätty hyväksynnän ehto valintalaskennan tulosexceliin #219

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,12 @@
import fi.vm.sade.sijoittelu.tulos.dto.HakukohdeDTO;
import fi.vm.sade.sijoittelu.tulos.dto.raportointi.HakijaDTO;
import fi.vm.sade.valinta.kooste.external.resource.sijoittelu.ValintatulosUpdateStatus;
import fi.vm.sade.valinta.kooste.external.resource.valintatulosservice.dto.AuditSession;
import fi.vm.sade.valinta.kooste.external.resource.valintatulosservice.dto.Lukuvuosimaksu;
import fi.vm.sade.valinta.kooste.external.resource.valintatulosservice.dto.LukuvuosimaksuMuutos;
import fi.vm.sade.valinta.kooste.external.resource.valintatulosservice.dto.Valinnantulos;
import fi.vm.sade.valinta.kooste.external.resource.valintatulosservice.dto.*;
import fi.vm.sade.valinta.kooste.proxy.resource.valintatulosservice.TilaHakijalleDto;
import fi.vm.sade.valinta.kooste.proxy.resource.valintatulosservice.VastaanottoAikarajaMennytDTO;
import io.reactivex.Observable;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.CompletableFuture;
import org.joda.time.format.DateTimeFormat;
Expand Down Expand Up @@ -58,4 +56,6 @@ Observable<List<Valinnantulos>> getErillishaunValinnantulokset(
CompletableFuture<List<HakijaDTO>> getKaikkiHakijat(String hakuOid, String hakukohdeOid);

CompletableFuture<List<HakijaDTO>> getHakijatIlmanKoulutuspaikkaa(String hakuOid);

Observable<Map<String, HyvaksynnanEhto>> getHyvaksynnanehdot(String hakukohdeOid);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package fi.vm.sade.valinta.kooste.external.resource.valintatulosservice.dto;

public class HyvaksynnanEhto {

public String koodi = "";
public String fi = "";
public String sv = "";
public String en = "";

public HyvaksynnanEhto() {}

public HyvaksynnanEhto(String koodi, String fi, String sv, String en) {
this.koodi = koodi;
this.fi = fi;
this.sv = sv;
this.en = en;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,7 @@
import fi.vm.sade.valinta.kooste.external.resource.HttpClient;
import fi.vm.sade.valinta.kooste.external.resource.sijoittelu.ValintatulosUpdateStatus;
import fi.vm.sade.valinta.kooste.external.resource.valintatulosservice.ValintaTulosServiceAsyncResource;
import fi.vm.sade.valinta.kooste.external.resource.valintatulosservice.dto.AuditSession;
import fi.vm.sade.valinta.kooste.external.resource.valintatulosservice.dto.Lukuvuosimaksu;
import fi.vm.sade.valinta.kooste.external.resource.valintatulosservice.dto.LukuvuosimaksuMuutos;
import fi.vm.sade.valinta.kooste.external.resource.valintatulosservice.dto.Valinnantulos;
import fi.vm.sade.valinta.kooste.external.resource.valintatulosservice.dto.ValinnantulosRequest;
import fi.vm.sade.valinta.kooste.external.resource.valintatulosservice.dto.*;
import fi.vm.sade.valinta.kooste.proxy.resource.valintatulosservice.TilaHakijalleDto;
import fi.vm.sade.valinta.kooste.proxy.resource.valintatulosservice.VastaanottoAikarajaMennytDTO;
import fi.vm.sade.valinta.kooste.url.UrlConfiguration;
Expand Down Expand Up @@ -285,6 +281,16 @@ public Observable<HakukohdeDTO> getHakukohdeBySijoitteluajoPlainDTO(
new TypeToken<HakukohdeDTO>() {}.getType()));
}

@Override
public Observable<Map<String, HyvaksynnanEhto>> getHyvaksynnanehdot(String hakukohdeOid) {
return Observable.fromFuture(
this.client.getJson(
this.urlConfiguration.url(
"valinta-tulos-service.haku.hakukohde.hyvaksynnanehdot", hakukohdeOid),
Duration.ofMinutes(30),
new TypeToken<Map<String, HyvaksynnanEhto>>() {}.getType()));
}

private static class OffsetDateTimeJsonSerializer implements JsonSerializer<OffsetDateTime> {
@Override
public JsonElement serialize(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import fi.vm.sade.valinta.kooste.external.resource.organisaatio.dto.Organisaatio;
import fi.vm.sade.valinta.kooste.external.resource.tarjonta.AbstractHakukohde;
import fi.vm.sade.valinta.kooste.external.resource.tarjonta.Haku;
import fi.vm.sade.valinta.kooste.external.resource.valintatulosservice.dto.HyvaksynnanEhto;
import fi.vm.sade.valinta.kooste.util.ExcelExportUtil;
import fi.vm.sade.valinta.kooste.util.HakemusWrapper;
import fi.vm.sade.valintalaskenta.domain.dto.FunktioTulosDTO;
Expand All @@ -34,6 +35,7 @@

public class ValintalaskennanTulosExcel {
public static XSSFWorkbook luoExcel(
Map<String, HyvaksynnanEhto> hyvaksynnanEhdot,
Haku haku,
AbstractHakukohde hakukohdeDTO,
List<Organisaatio> tarjoajat,
Expand Down Expand Up @@ -82,7 +84,7 @@ public static XSSFWorkbook luoExcel(
.map(h -> h.name)
.collect(Collectors.toList());
addRow(sheet, allColumnHeaders);
addJonosijaRows(hakemusByOid, jono, sheet, dynamicColumns);
addJonosijaRows(hakemusByOid, jono, sheet, dynamicColumns, hyvaksynnanEhdot);
}
});
return workbook;
Expand Down Expand Up @@ -118,12 +120,14 @@ private static void addJonosijaRows(
Map<String, HakemusWrapper> hakemusByOid,
ValintatietoValintatapajonoDTO jono,
XSSFSheet sheet,
List<Column> dynamicColumns) {
List<Column> dynamicColumns,
Map<String, HyvaksynnanEhto> hyvaksynnanEhdot) {
sortedJonosijat(jono)
.map(
hakija -> {
final HakemusRivi hakemusRivi =
new HakemusRivi(hakija, hakemusByOid.get(hakija.getHakemusOid()));
new HakemusRivi(
hakija, hakemusByOid.get(hakija.getHakemusOid()), hyvaksynnanEhdot);
return Stream.concat(fixedColumns.stream(), dynamicColumns.stream())
.map(column -> column.extractor.apply(hakemusRivi))
.collect(Collectors.toList());
Expand Down Expand Up @@ -206,12 +210,18 @@ public int compareTo(DynamicColumnHeader o) {
private static class HakemusRivi {
public final JonosijaDTO hakija;
public final HakemusWrapper hakemus;
public final HyvaksynnanEhto hyvaksynnanEhto;

HakemusRivi(final JonosijaDTO hakija, final HakemusWrapper hakemus) {
HakemusRivi(
final JonosijaDTO hakija,
final HakemusWrapper hakemus,
Map<String, HyvaksynnanEhto> hyvaksynnanEhdot) {
this.hakija = hakija;
this.hakemus =
Objects.requireNonNull(
hakemus, String.format("Hakemusta oidilla %s ei löytynyt", hakija.getHakemusOid()));
this.hyvaksynnanEhto =
hyvaksynnanEhdot.getOrDefault(hakija.getHakemusOid(), new HyvaksynnanEhto());
}
}

Expand All @@ -230,7 +240,10 @@ private static class HakemusRivi {
new Column(
"Kokonaispisteet",
14,
rivi -> nullSafeToString(getJarjestyskriteeri(rivi.hakija).getArvo())));
rivi -> nullSafeToString(getJarjestyskriteeri(rivi.hakija).getArvo())),
new Column("Hyväksynnän ehto (FI)", 30, rivi -> rivi.hyvaksynnanEhto.fi),
new Column("Hyväksynnän ehto (SV)", 30, rivi -> rivi.hyvaksynnanEhto.sv),
new Column("Hyväksynnän ehto (EN)", 30, rivi -> rivi.hyvaksynnanEhto.en));

private static Stream<JonosijaDTO> sortedJonosijat(final ValintatietoValintatapajonoDTO jono) {
return jono.getJonosijat().stream()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
import fi.vm.sade.valinta.kooste.external.resource.valintalaskenta.ValintalaskentaAsyncResource;
import fi.vm.sade.valinta.kooste.external.resource.valintatulosservice.ValintaTulosServiceAsyncResource;
import fi.vm.sade.valinta.kooste.external.resource.valintatulosservice.dto.AuditSession;
import fi.vm.sade.valinta.kooste.external.resource.valintatulosservice.dto.HyvaksynnanEhto;
import fi.vm.sade.valinta.kooste.util.CompletableFutureUtil;
import fi.vm.sade.valinta.kooste.util.ExcelExportUtil;
import fi.vm.sade.valinta.kooste.util.HakemusWrapper;
Expand All @@ -36,11 +37,7 @@
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import io.swagger.v3.oas.annotations.tags.Tag;
import java.io.InputStream;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Optional;
import java.util.UUID;
import java.util.*;
import java.util.concurrent.CompletableFuture;
import java.util.stream.Collectors;
import javax.servlet.http.HttpServletRequest;
Expand Down Expand Up @@ -290,6 +287,9 @@ public DeferredResult<ResponseEntity<byte[]>> haeValintalaskentaTuloksetExcelMuo
@RequestParam(value = "hakukohdeOid", required = false) String hakukohdeOid) {
DeferredResult<ResponseEntity<byte[]>> result = new DeferredResult<>();

Observable<Map<String, HyvaksynnanEhto>> hyvaksynnanEhdot =
valintaTulosServiceAsyncResource.getHyvaksynnanehdot(hakukohdeOid);

Observable<AbstractHakukohde> hakukohdeObservable =
Observable.fromFuture(tarjontaResource.haeHakukohde(hakukohdeOid));
Observable<List<Organisaatio>> tarjoajatObservable =
Expand Down Expand Up @@ -318,6 +318,7 @@ public DeferredResult<ResponseEntity<byte[]>> haeValintalaskentaTuloksetExcelMuo
});
final Observable<XSSFWorkbook> workbookObservable =
Observable.combineLatest(
hyvaksynnanEhdot,
hakuObservable,
hakukohdeObservable,
tarjoajatObservable,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,7 @@ valinta-tulos-service.sijoittelu.sijoitteluajo.hakukohde=${baseurl-valinta-tulos
valinta-tulos-service.haku.sijoitteluajo.latest.hakemus=${baseurl-valinta-tulos-service}/valinta-tulos-service/haku/$1/sijoitteluajo/latest/hakemus/$2
valinta-tulos-service.haku.hakukohde.hakijat=${baseurl-valinta-tulos-service}/valinta-tulos-service/haku/$1/hakukohde/$2/hakijat
valinta-tulos-service.haku.hakukohde.hyvaksytyt=${baseurl-valinta-tulos-service}/valinta-tulos-service/haku/$1/hakukohde/$2/hyvaksytyt
valinta-tulos-service.haku.hakukohde.hyvaksynnanehdot=${baseurl-valinta-tulos-service}/valinta-tulos-service/hyvaksynnan-ehto/hakukohteessa/$1
valinta-tulos-service.haku.hyvaksytyt=${baseurl-valinta-tulos-service}/valinta-tulos-service/haku/$1/hyvaksytyt
valinta-tulos-service.haku.ilmanhyvaksyntaa=${baseurl-valinta-tulos-service}/valinta-tulos-service/haku/$1/ilmanHyvaksyntaa

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,11 @@
import fi.vm.sade.sijoittelu.tulos.dto.raportointi.HakijaDTO;
import fi.vm.sade.valinta.kooste.external.resource.sijoittelu.ValintatulosUpdateStatus;
import fi.vm.sade.valinta.kooste.external.resource.valintatulosservice.ValintaTulosServiceAsyncResource;
import fi.vm.sade.valinta.kooste.external.resource.valintatulosservice.dto.AuditSession;
import fi.vm.sade.valinta.kooste.external.resource.valintatulosservice.dto.Lukuvuosimaksu;
import fi.vm.sade.valinta.kooste.external.resource.valintatulosservice.dto.LukuvuosimaksuMuutos;
import fi.vm.sade.valinta.kooste.external.resource.valintatulosservice.dto.Valinnantulos;
import fi.vm.sade.valinta.kooste.external.resource.valintatulosservice.dto.*;
import fi.vm.sade.valinta.kooste.proxy.resource.valintatulosservice.TilaHakijalleDto;
import fi.vm.sade.valinta.kooste.proxy.resource.valintatulosservice.VastaanottoAikarajaMennytDTO;
import io.reactivex.Observable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.*;
import java.util.concurrent.CompletableFuture;
import org.springframework.context.annotation.Profile;
import org.springframework.stereotype.Service;
Expand Down Expand Up @@ -123,4 +116,9 @@ public CompletableFuture<List<HakijaDTO>> getKaikkiHakijat(String hakuOid, Strin
public CompletableFuture<List<HakijaDTO>> getHakijatIlmanKoulutuspaikkaa(String hakuOid) {
return CompletableFuture.completedFuture(new ArrayList<>());
}

@Override
public Observable<Map<String, HyvaksynnanEhto>> getHyvaksynnanehdot(String hakukohdeOid) {
return Observable.just(Collections.emptyMap());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
import fi.vm.sade.valinta.kooste.external.resource.organisaatio.dto.Organisaatio;
import fi.vm.sade.valinta.kooste.external.resource.tarjonta.Haku;
import fi.vm.sade.valinta.kooste.external.resource.tarjonta.TarjontaHakukohde;
import fi.vm.sade.valinta.kooste.external.resource.valintatulosservice.dto.HyvaksynnanEhto;
import fi.vm.sade.valinta.kooste.mocks.MockAtaruAsyncResource;
import fi.vm.sade.valinta.kooste.util.ExcelExportUtil;
import fi.vm.sade.valinta.kooste.util.HakemusWrapper;
Expand Down Expand Up @@ -86,6 +87,7 @@ public void sheetNames() {
};
XSSFWorkbook workbook =
ValintalaskennanTulosExcel.luoExcel(
Collections.emptyMap(),
haku,
hakukohde,
Collections.singletonList(tarjoaja),
Expand Down Expand Up @@ -113,6 +115,8 @@ public void sheetNames() {
public void sheetContents() {
XSSFWorkbook workbook =
ValintalaskennanTulosExcel.luoExcel(
Collections.singletonMap(
"Hakemus 1", new HyvaksynnanEhto("ltt", "ehto 1", "villkor 1", "condition 1")),
haku,
hakukohde,
Collections.singletonList(tarjoaja),
Expand Down Expand Up @@ -151,6 +155,9 @@ public void sheetContents() {
"Laskennan tulos",
"Selite",
"Kokonaispisteet",
"Hyväksynnän ehto (FI)",
"Hyväksynnän ehto (SV)",
"Hyväksynnän ehto (EN)",
"keskiarvo",
"pääsykoetulos"),
asList(
Expand All @@ -164,6 +171,9 @@ public void sheetContents() {
"HYVAKSYTTAVISSA",
"",
"666",
"ehto 1",
"villkor 1",
"condition 1",
"9",
"10")),
getWorksheetData(workbook.getSheetAt(0)));
Expand All @@ -173,6 +183,9 @@ public void sheetContents() {
public void ataruSheetContents() {
XSSFWorkbook ataruWorkbook =
ValintalaskennanTulosExcel.luoExcel(
Collections.singletonMap(
"1.2.246.562.11.00000000000000000063",
new HyvaksynnanEhto("ltt", "ehto 1", "villkor 1", "condition 1")),
haku,
hakukohde,
Collections.singletonList(tarjoaja),
Expand Down Expand Up @@ -213,6 +226,9 @@ public void ataruSheetContents() {
"Laskennan tulos",
"Selite",
"Kokonaispisteet",
"Hyväksynnän ehto (FI)",
"Hyväksynnän ehto (SV)",
"Hyväksynnän ehto (EN)",
"keskiarvo",
"pääsykoetulos"),
asList(
Expand All @@ -226,6 +242,9 @@ public void ataruSheetContents() {
"HYVAKSYTTAVISSA",
"",
"666",
"ehto 1",
"villkor 1",
"condition 1",
"9",
"10")),
getWorksheetData(ataruWorkbook.getSheetAt(0)));
Expand All @@ -235,6 +254,7 @@ public void ataruSheetContents() {
public void sarakkeidenSisaltoOnOikeinVaikkaSeTulisiEriJarjestyksessaEriHakijoille() {
XSSFWorkbook ataruWorkbook =
ValintalaskennanTulosExcel.luoExcel(
Collections.emptyMap(),
haku,
hakukohde,
Collections.singletonList(tarjoaja),
Expand Down Expand Up @@ -272,6 +292,9 @@ public void sarakkeidenSisaltoOnOikeinVaikkaSeTulisiEriJarjestyksessaEriHakijoil
"Laskennan tulos",
"Selite",
"Kokonaispisteet",
"Hyväksynnän ehto (FI)",
"Hyväksynnän ehto (SV)",
"Hyväksynnän ehto (EN)",
"Ammatillisen perustutkinnon keskiarvo",
"lukion keskiarvo",
"pääsykoetulos"),
Expand All @@ -287,6 +310,9 @@ public void sarakkeidenSisaltoOnOikeinVaikkaSeTulisiEriJarjestyksessaEriHakijoil
"",
"19",
"",
"",
"",
"",
"9",
"8"),
asList(
Expand All @@ -300,6 +326,9 @@ public void sarakkeidenSisaltoOnOikeinVaikkaSeTulisiEriJarjestyksessaEriHakijoil
"HYVAKSYTTAVISSA",
"",
"17",
"",
"",
"",
"3.2",
"",
"10")),
Expand All @@ -310,6 +339,7 @@ public void sarakkeidenSisaltoOnOikeinVaikkaSeTulisiEriJarjestyksessaEriHakijoil
public void emptySheet() {
XSSFWorkbook workbook =
ValintalaskennanTulosExcel.luoExcel(
Collections.emptyMap(),
haku,
hakukohde,
Collections.singletonList(tarjoaja),
Expand Down Expand Up @@ -381,6 +411,7 @@ public void sheetGenerationFailsNoApplication() {
NullPointerException.class,
() ->
ValintalaskennanTulosExcel.luoExcel(
Collections.emptyMap(),
haku,
hakukohde,
Collections.singletonList(tarjoaja),
Expand All @@ -402,6 +433,7 @@ public void sheetGenerationFailsNoApplication() {
public void generoiTiedosto() throws IOException {
XSSFWorkbook workbook =
ValintalaskennanTulosExcel.luoExcel(
Collections.emptyMap(),
haku,
hakukohde,
Collections.singletonList(tarjoaja),
Expand Down
Loading