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

reimplement toimipiste nimi evaluation #410

Merged
merged 2 commits into from
Feb 11, 2022
Merged
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 @@ -58,6 +58,7 @@ public class OrganisaatioPerustieto implements Serializable {

@Schema(description = "Organisaation nimi", required = true)
private Map<String, String> nimi = new HashMap<String, String>();
private Map<String, String> lyhytNimi = new HashMap<>();

private Set<OrganisaatioTyyppi> tyypit = new HashSet<>();

Expand Down Expand Up @@ -85,6 +86,13 @@ public Map<String, String> getNimi() {
public void setNimi(Map<String, String> nimi) {
this.nimi = nimi;
}
public void setLyhytNimi(Map<String, String> lyhytNimi) {
this.lyhytNimi = lyhytNimi;
}

public Map<String, String> getLyhytNimi() {
return lyhytNimi;
}

public boolean isMatch() {
return match;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ public class OrganisaatioPerustietoV4 implements Serializable {

@Schema(description = "Organisaation nimi", required = true)
private Map<String, String> nimi = new HashMap<>();
private Map<String, String> lyhytNimi = new HashMap<>();

// Tyypit koodiarvoina
private Set<String> tyypit = new HashSet<>();
Expand Down Expand Up @@ -93,7 +94,13 @@ public Map<String, String> getNimi() {
public void setNimi(Map<String, String> nimi) {
this.nimi = nimi;
}
public void setLyhytNimi(Map<String, String> lyhytNimi) {
this.lyhytNimi = lyhytNimi;
}

public Map<String, String> getLyhytNimi() {
return lyhytNimi;
}
public boolean isMatch() {
return match;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
import java.io.Serializable;
import java.sql.Timestamp;
import java.util.*;
import java.util.stream.Collectors;

/**
* REST API used DTO, ie. "RDTO" for transmitting Organisaatio related data over
Expand Down Expand Up @@ -53,8 +52,7 @@ public class OrganisaatioRDTOV4 implements Serializable {
private Set<String> _kayttoryhmat;

private Map<String, String> _nimi = new HashMap<>();

private OrganisaatioRDTOV4 _parentOrganisaatio;
private Map<String, String> _lyhytNimi = new HashMap<>();

private List<OrganisaatioNimiRDTO> _nimet = new ArrayList<>();

Expand Down Expand Up @@ -231,32 +229,23 @@ public Map<String, String> getNimi() {
if (_nimi == null) {
_nimi = new HashMap<>();
}
if (_parentOrganisaatio == null) {
return _nimi;
}
Map<String, String> parentName = _parentOrganisaatio.getNimi();
return _nimi.keySet().stream().collect(Collectors.toMap(e -> e, e -> {
String parentNimi = parentName.getOrDefault(e, "");
String parentNimiWithSep = String.format("%s, ", parentName.getOrDefault(e, ""));
String nimi = _nimi.get(e);
return nimi.equals(parentNimi) ? nimi : String.format("%s%s", parentNimiWithSep, nimi);
}));
return _nimi;
}

public void setNimi(Map<String, String> _nimi) {
this._nimi = _nimi;
}

@Schema(description = "LyhytNimi")
public Map<String, String> getLyhytNimi() {
if (_nimi == null) {
_nimi = new HashMap<>();
if (_lyhytNimi == null) {
_lyhytNimi = new HashMap<>();
}
return _nimi;
return _lyhytNimi;
}

public void setParentOrganisaatio(OrganisaatioRDTOV4 parent) {
_parentOrganisaatio = parent;
}

public void setNimi(Map<String, String> _nimi) {
this._nimi = _nimi;
public void setLyhytNimi(Map<String, String> _lyhytNimi) {
this._lyhytNimi = _lyhytNimi;
}

@Schema(description = "Organisaation nimihistoria", required = true)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -260,11 +260,7 @@ private List<OrganisaatioRDTOV4> mapToOrganisaatioRdtoV4(Collection<Organisaatio
}

private OrganisaatioRDTOV4 mapToOrganisaatioRdtoV4(Organisaatio organisaatio) {
OrganisaatioRDTOV4 org = conversionService.convert(organisaatio, OrganisaatioRDTOV4.class);
if (org != null && organisaatio.getTyypit().contains(OrganisaatioTyyppi.TOIMIPISTE.koodiValue())) {
org.setParentOrganisaatio(mapToOrganisaatioRdtoV4(organisaatio.getParent()));
}
return org;
return conversionService.convert(organisaatio, OrganisaatioRDTOV4.class);
}

@Override
Expand Down Expand Up @@ -314,7 +310,7 @@ public List<OrganisaatioRDTOV4> haeMuutetut(
boolean excludeDiscontinued) {
Preconditions.checkNotNull(lastModifiedSince);

LOG.debug("haeMuutetut: " + lastModifiedSince.toString());
LOG.debug("haeMuutetut: {}", lastModifiedSince);
long qstarted = System.currentTimeMillis();

List<Organisaatio> organisaatiot = organisaatioRepository.findModifiedSince(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package fi.vm.sade.organisaatio.model;

import fi.vm.sade.organisaatio.api.model.types.OrganisaatioStatus;
import fi.vm.sade.organisaatio.api.model.types.OrganisaatioTyyppi;
import fi.vm.sade.organisaatio.repository.impl.OrganisaatioRepositoryImpl;
import fi.vm.sade.organisaatio.service.util.KoodistoUtil;
import fi.vm.sade.organisaatio.service.util.OrganisaatioUtil;
Expand All @@ -9,7 +10,6 @@
import org.hibernate.annotations.UpdateTimestamp;

import javax.persistence.*;
import javax.persistence.UniqueConstraint;
import javax.validation.constraints.NotNull;
import java.util.*;

Expand Down Expand Up @@ -635,7 +635,24 @@ public void setVirastoTunnus(String virastoTunnus) {
* @return multilingual nimi (name)
*/
public MonikielinenTeksti getNimi() {
return nimi;
Organisaatio parent = this.getParent();
if (parent != null && this.tyypit.contains(OrganisaatioTyyppi.TOIMIPISTE.koodiValue())) {
Map<String, String> values = new HashMap<>();
MonikielinenTeksti parentNimi = parent.getNimi();
this.nimi.getValues().keySet().forEach(a -> {
String currentNimiString = this.nimi.getString(a);
String parentNimiString = parentNimi.getString(a);
values.put(a, currentNimiString.equals(parentNimiString) ? currentNimiString : String.format("%s, %s", parentNimiString, currentNimiString));
});
MonikielinenTeksti modified = new MonikielinenTeksti();
modified.setValues(values);
return modified;
}
return this.nimi;
}

public MonikielinenTeksti getActualNimi() {
return this.nimi;
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -400,6 +400,7 @@ private static OrganisaatioHakutulosV4 processRows(List<OrganisaatioRepositoryIm
current.setKotipaikkaUri(row.kotipaikka);
current.setOrganisaatiotyypit(new HashSet<>());
current.setNimi(new HashMap<>());
current.setLyhytNimi(new HashMap<>());
current.setKieletUris(new HashSet<>());
current.setChildren(new HashSet<>());
current.setParentOid(row.parentOid);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ public OrganisaatioPerustieto convert(Organisaatio source) {

//destination.setMatch asetetaan muualla
destination.setNimi(source.getNimi().getValues());
destination.setLyhytNimi(source.getActualNimi().getValues());

source.getTyypit().stream()
.map(OrganisaatioTyyppi::fromKoodiValue)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,7 @@ public OrganisaatioRDTOV4 convert(Organisaatio s) {

t.setKayntiosoite(YhteystietoConverterUtils.convertOsoiteToMap(s.getKayntiosoite()));
t.setNimi(YhteystietoConverterUtils.convertMKTToMap(s.getNimi()));
t.setLyhytNimi(YhteystietoConverterUtils.convertMKTToMap(s.getActualNimi()));
t.setNimet(organisaatioNimiModelMapper.map(s.getNimet(), organisaatioNimiRDTOListType));
t.setPostiosoite(YhteystietoConverterUtils.convertOsoiteToMap(s.getPostiosoite()));

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -93,12 +93,11 @@ export default function OrganisaatioHakuTaulukko() {
},
{
Header: i18n.translate('TAULUKKO_NIMI'),
id: 'nimi',
accessor: (values) => i18n.translateNimi(values.nimi),
id: 'lyhytNimi',
Cell: ({ row }) => {
return (
<Link to={`/lomake/${row.original.oid}`}>
{i18n.translateNimi(row.original.nimi)}
{i18n.translateNimi(row.original.lyhytNimi)}
{row.original?.status !== 'AKTIIVINEN' && ` (${i18n.translate('LABEL_PASSIIVINEN')})`}
</Link>
);
Expand Down
1 change: 1 addition & 0 deletions organisaatio-ui/src/types/apiTypes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,7 @@ export type OrganisaatioHakuOrganisaatio = {
kotipaikkaUri: KoodiUri;
match: boolean;
nimi: Nimi;
lyhytNimi: Nimi;
oid: string;
organisaatiotyypit: KoodiUri[];
parentOid: string;
Expand Down