Create nuove utilities

This commit is contained in:
2025-12-11 12:45:12 +01:00
parent 961cd06471
commit 0b502f86cf
15 changed files with 197 additions and 116 deletions

View File

@@ -0,0 +1,30 @@
package it.integry.ems.utility.entity;
import it.integry.ems._context.ApplicationContextProvider;
import it.integry.ems.dynamic_cache.EntityCacheComponent;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import it.integry.ems_model.entity.MtbAartBarCode;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
public class MtbAartBarcodeUtils {
public static final List<MtbAartBarCode> getAlternativeMtbAartBarCodes(List<String> codMarts, Connection conn) {
codMarts = codMarts.stream()
.distinct().collect(Collectors.toList());
final EntityCacheComponent entityCacheComponent = ApplicationContextProvider.getApplicationContext().getBean(EntityCacheComponent.class);
List<String> finalCodMarts = codMarts;
List<MtbAartBarCode> barCodeList = entityCacheComponent.getCachedEntitiesList(
conn.getIntegryCustomerDB(),
MtbAartBarCode.ENTITY,
x -> finalCodMarts.stream().anyMatch(y -> y.equalsIgnoreCase(x.getCodMart())));
return barCodeList != null ? barCodeList : new ArrayList<>();
}
}

View File

@@ -0,0 +1,82 @@
package it.integry.ems.utility.entity;
import com.annimon.stream.Optional;
import com.annimon.stream.Stream;
import it.integry.ems._context.ApplicationContextProvider;
import it.integry.ems.dynamic_cache.EntityCacheComponent;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import it.integry.ems_model.entity.MtbAart;
import it.integry.ems_model.entity.MtbAartBarCode;
import it.integry.ems_model.entity.MtbUntMis;
import it.integry.ems_model.utility.UtilityString;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.stream.Collectors;
public class MtbAartUtils {
public static MtbAart getArticoloByCodMart(String codMart, Connection connection) throws Exception {
if (UtilityString.isNullOrEmpty(codMart))
return null;
List<MtbAart> mtbAarts = getArticoliByCodMarts(new ArrayList<>(Collections.singleton(codMart)), connection);
if (mtbAarts == null || mtbAarts.isEmpty())
return null;
return mtbAarts.get(0);
}
public static List<MtbAart> getArticoliByCodMarts(List<String> codMarts, Connection connection) throws Exception {
if (codMarts == null || codMarts.isEmpty()) return null;
codMarts.replaceAll(String::toUpperCase);
final EntityCacheComponent entityCacheComponent = ApplicationContextProvider.getApplicationContext().getBean(EntityCacheComponent.class);
List<MtbAart> listMtbAart = entityCacheComponent.getCachedEntitiesList(
connection.getIntegryCustomerDB(), MtbAart.ENTITY, x -> codMarts.contains(x.getCodMart().toUpperCase()));
List<MtbAartBarCode> barCodeFromCod = MtbAartBarcodeUtils.getAlternativeMtbAartBarCodes(codMarts, connection);
if (listMtbAart != null && !listMtbAart.isEmpty()) {
List<String> untMisStrings = listMtbAart.stream()
.map(MtbAart::getUntMis)
.collect(Collectors.toList());
List<MtbUntMis> listUntMis = MtbUntMisUtils.getFromCods(untMisStrings, connection);
for (final MtbAart mtbAart : listMtbAart) {
Optional<MtbUntMis> mtbUntMis = Stream.of(listUntMis)
.filter(mtbUntMis1 -> mtbUntMis1.getUntMis().equalsIgnoreCase(mtbAart.getUntMis()))
.findFirst();
List<MtbAartBarCode> barcodeList = Stream.of(barCodeFromCod)
.filter(x -> x.getCodMart().equalsIgnoreCase(mtbAart.getCodMart()))
.toList();
if (!barcodeList.isEmpty()) {
mtbAart.getMtbAartBarCode().addAll(barcodeList);
}
if (mtbUntMis.isPresent()) {
mtbAart.setMtbUntMis(new ArrayList<>());
mtbAart.getMtbUntMis().add(mtbUntMis.get());
}
}
}
return listMtbAart;
}
public static final HashMap<String, MtbAart> getArticoliByCodMartsAsMap(List<String> codMarts, Connection connection) throws Exception {
List<MtbAart> mtbAarts = getArticoliByCodMarts(codMarts, connection);
if (mtbAarts == null || mtbAarts.isEmpty()) return new HashMap<>();
return mtbAarts.stream()
.collect(Collectors.toMap(MtbAart::getCodMart, a -> a, (a, b) -> a, HashMap::new));
}
}

View File

@@ -0,0 +1,56 @@
package it.integry.ems.utility.entity;
import it.integry.ems._context.ApplicationContextProvider;
import it.integry.ems.dynamic_cache.EntityCacheComponent;
import it.integry.ems.migration._base.IntegryCustomerDB;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import it.integry.ems_model.entity.MtbAart;
import it.integry.ems_model.entity.MtbUntMis;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
public class MtbUntMisUtils {
public static final MtbUntMis getMtbUntMisFromCodMart(IntegryCustomerDB customerDB, String codMart) throws SQLException {
final EntityCacheComponent entityCacheComponent = ApplicationContextProvider.getApplicationContext().getBean(EntityCacheComponent.class);
MtbAart mtbAart = entityCacheComponent.<MtbAart>getCachedEntitiesStream(customerDB, MtbAart.ENTITY,
x -> x.getCodMart().equalsIgnoreCase(codMart))
.findFirst()
.orElse(null);
if (mtbAart != null) {
return null;
}
final MtbUntMis mtbUntMis = entityCacheComponent.<MtbUntMis>getCachedEntitiesStream(customerDB, MtbUntMis.ENTITY,
x -> x.getUntMis().equalsIgnoreCase(mtbAart.getUntMis()))
.findFirst()
.orElse(null);
return mtbUntMis;
}
public static List<MtbUntMis> getFromCods(List<String> untMisCods, Connection connection) {
List<String> untMisStrings = untMisCods.stream()
.filter(Objects::nonNull)
.distinct()
.collect(Collectors.toList());
final EntityCacheComponent entityCacheComponent = ApplicationContextProvider.getApplicationContext().getBean(EntityCacheComponent.class);
List<MtbUntMis> mtbUntMis = entityCacheComponent.getCachedEntitiesList(
connection.getIntegryCustomerDB(),
MtbUntMis.ENTITY,
x -> untMisCods.contains(x.getUntMis()));
return mtbUntMis != null ? mtbUntMis : new ArrayList<>();
}
}