varie steup

This commit is contained in:
2025-12-12 18:51:48 +01:00
parent 8f3ef405cf
commit 4b5e46de7b

View File

@@ -60,6 +60,7 @@ import java.util.stream.Collectors;
import static it.integry.ems.order.dto.UserGroupENUM.RILEVATORE; import static it.integry.ems.order.dto.UserGroupENUM.RILEVATORE;
import static it.integry.ems.order.dto.UserGroupENUM.TECNICO; import static it.integry.ems.order.dto.UserGroupENUM.TECNICO;
import static java.util.stream.Collectors.groupingBy; import static java.util.stream.Collectors.groupingBy;
import static org.codehaus.groovy.runtime.DefaultGroovyMethods.collect;
@Service @Service
@Scope("request") @Scope("request")
@@ -736,36 +737,9 @@ public class SteUPService {
if (barcodes != null && !barcodes.isEmpty()) { if (barcodes != null && !barcodes.isEmpty()) {
for (String barcode : barcodes) { for (String barcode : barcodes) {
sql = StbActivity art = getArticoli(barcode, null, activityTypeId, codJfas, userNamePv);
"SELECT activity_type_id_next " + if( art != null)
" FROM srl_activity_type " + stbActivityList.add(art);
" WHERE activity_type_id = " + UtilityDB.valueToString(activityTypeId) + " AND " +
"flag_tipologia = 'A' ";
String activityTypeArt = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
if (UtilityString.isNullOrEmpty(activityTypeArt)) {
throw new Exception("Nessun tipo attività associato a " + activityTypeId + " per l'inserimento degli articoli.");
}
LocalDateTime now = LocalDateTime.now();
String codMart = this.getCodMartFromBarcode(barcode);
StbActivity item = new StbActivity()
.setActivityDescription(activityTypeArt)
.setNote(parentActivity.getNote())
.setCodJfas(codJfas)
.setCodMart(codMart)
.setFlagTipologia("A")
.setUserName(userNamePv)
.setUserCreator(parentActivity.getUserCreator())
.setUserModifier(parentActivity.getUserCreator())
.setActivityTypeId(activityTypeArt)
.setOraInsAct(now)
.setEffectiveTime(dataCreation)
.setParentActivityId(activityId);
item.setOperation(OperationType.INSERT);
stbActivityList.add(item);
} }
} }
@@ -811,6 +785,36 @@ public class SteUPService {
return stbActivityList; return stbActivityList;
} }
private StbActivity getArticoli(String barcode, String codMart, String activityTypeId, String codJfas, String userNamePv) throws Exception {
String sql;
sql =
"SELECT activity_type_id_next " +
" FROM srl_activity_type " +
" WHERE activity_type_id = " + UtilityDB.valueToString(activityTypeId) + " AND " +
"flag_tipologia = 'A' ";
String activityTypeArt = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
if (UtilityString.isNullOrEmpty(activityTypeArt)) {
throw new Exception("Nessun tipo attività associato a " + activityTypeId + " per l'inserimento degli articoli.");
}
LocalDateTime now = LocalDateTime.now();
if (!UtilityString.isNullOrEmpty(barcode))
codMart = this.getCodMartFromBarcode(barcode);
StbActivity item = new StbActivity()
.setActivityDescription(activityTypeArt)
.setCodJfas(codJfas)
.setCodMart(codMart)
.setFlagTipologia("A")
.setUserName(userNamePv)
.setActivityTypeId(activityTypeArt)
.setOraInsAct(now);
item.setOperation(OperationType.INSERT);
return item;
}
public HashMap<String, Object> getPrezzo(String codMdep, String barcode) throws Exception { public HashMap<String, Object> getPrezzo(String codMdep, String barcode) throws Exception {
String sql = String sql =
"SELECT p.descrizione, p.prz_vend_iva " + "SELECT p.descrizione, p.prz_vend_iva " +
@@ -1481,7 +1485,7 @@ public class SteUPService {
String sql = String sql =
Query.format( Query.format(
"select i.cod_mdep, stb_activity.cod_jfas, stb_activity.activity_id\n" + "select i.cod_mdep, stb_activity.cod_jfas, stb_activity.activity_id, stb_activity.user_name\n" +
"from dbo.steup_getRilevazioni(%s, %s, null) i\n" + "from dbo.steup_getRilevazioni(%s, %s, null) i\n" +
"inner join stb_activity on i.activity_id = stb_activity.parent_activity_id\n" + "inner join stb_activity on i.activity_id = stb_activity.parent_activity_id\n" +
"where stb_activity.activity_type_id = %s", "where stb_activity.activity_type_id = %s",
@@ -1495,13 +1499,18 @@ public class SteUPService {
Map<String, List<HashMap<String, Object>>> ispezioniDepo = ispezioni.stream().collect(groupingBy(x -> (String) x.get("cod_mdep"))); Map<String, List<HashMap<String, Object>>> ispezioniDepo = ispezioni.stream().collect(groupingBy(x -> (String) x.get("cod_mdep")));
for (Map.Entry<String, List<HashMap<String, Object>>> entry : ispezioniDepo.entrySet()) { for (Map.Entry<String, List<HashMap<String, Object>>> entry : ispezioniDepo.entrySet()) {
String userNamePv = entry.getValue().get(0).get("user_name").toString();
Map<String, List<HashMap<String, Object>>> reparti = entry.getValue().stream().collect(groupingBy(x -> (String) x.get("cod_jfas"))); Map<String, List<HashMap<String, Object>>> reparti = entry.getValue().stream().collect(groupingBy(x -> (String) x.get("cod_jfas")));
for (Map.Entry<String, List<HashMap<String, Object>>> reparto : reparti.entrySet()) { for (Map.Entry<String, List<HashMap<String, Object>>> reparto : reparti.entrySet()) {
String codJfas = reparto.getKey(); String codJfas = reparto.getKey();
List<String> barcodes = new ArrayList<>(); List<String> barcodes = new ArrayList<>();
List<String> idAttivita = new ArrayList<>();
for ( HashMap<String, Object> r: reparto.getValue() ) { for ( HashMap<String, Object> r: reparto.getValue() ) {
String activityId = (String) r.get("activity_id");
idAttivita.add(activityId);
StbActivityFile stbActivityFile = new StbActivityFile() StbActivityFile stbActivityFile = new StbActivityFile()
.setId((String) r.get("activity_id")) .setId(activityId)
.setFileName("elenco_articoli.txt"); .setFileName("elenco_articoli.txt");
stbActivityFile.setOperation(OperationType.SELECT_OBJECT); stbActivityFile.setOperation(OperationType.SELECT_OBJECT);
@@ -1511,53 +1520,103 @@ public class SteUPService {
if (contentB64 != null && contentB64.length > 0) { if (contentB64 != null && contentB64.length > 0) {
String content = new String(contentB64); String content = new String(contentB64);
barcodes.addAll(UtilityString.splitStringToMultipleLine(content, CommonConstants.A_CAPO)); barcodes.addAll(UtilityString.splitStringToMultipleLine(content, CommonConstants.A_CAPO));
barcodes = Arrays.asList(("8001990030611\n" + if (UtilityDebug.isDebugExecution()) {
"8003650000798\n" + barcodes=Arrays.asList(
"8054633830833\n" + ("8001990030611\n" +
"8410436393942\n" + "8003650000798\n" +
"8002340012103\n" + "8054633830833\n" +
"8007300004297\n" + "8410436393942\n" +
"8002340012660\n" + "8002340012103\n" +
"8033532102838\n" + "8007300004297\n" +
"8052675290028\n" + "8002340012660\n" +
"8000697001917\n" + "8033532102838\n" +
"8055719541384\n" + "8052675290028\n" +
"8055719541377\n" + "8000697001917\n" +
"8018700037204\n" + "8055719541384\n" +
"8001480720800\n" + "8055719541377\n" +
"8001280070648\n" + "8018700037204\n" +
"8054633831656\n" + "8001480720800\n" +
"8720182641618\n" + "8001280070648\n" +
"8011380002074\n" + "8054633831656\n" +
"8230485606837\n" + "8720182641618\n" +
"8033532107987\n" + "8011380002074\n" +
"8033908800726\n" + "8230485606837\n" +
"8021719130026\n" + "8033532107987\n" +
"8051886470717\n" + "8033908800726\n" +
"8700216772082\n" + "8021719130026\n" +
"8033447586204\n" + "8051886470717\n" +
"8006540891469\n" + "8700216772082\n" +
"4012400502363\n" + "8033447586204\n" +
"8051499395889\n" + "8006540891469\n" +
"8051499393571\n" + "4012400502363\n" +
"8051499395872\n" + "8051499395889\n" +
"8034055535387\n" + "8051499393571\n" +
"8056364996130\n" + "8051499395872\n" +
"8056364993467\n" + "8034055535387\n" +
"8007675733877").split("\n")); "8056364996130\n" +
"8056364993467\n" +
"8007675733877").split("\n")
);
}
} }
} }
if (barcodes.isEmpty()) { if (barcodes.isEmpty()) {
continue; continue;
} }
verificaRottura(entry.getKey(), codJfas, dataIspezione, repartiFreschi, tipiEsclusi, fornitori, barcodes); List<String> articoli = verificaRottura(entry.getKey(), codJfas, dataIspezione, repartiFreschi, tipiEsclusi, fornitori, barcodes);
/*List<StbActivity> attivitaArticoli = new ArrayList<>();
for (String articolo : articoli) {
attivitaArticoli.add(getArticoli(null, articolo, tipoAttivitaRotturaStock, codJfas, userNamePv));
} */
List<StbActivity> stbActivityList = new ArrayList<>();
for (String activityId : idAttivita) {
sql = "select *\n" +
"from srl_activity_art\n" +
"where activity_id = " + UtilityDB.valueToString(activityId) + "\n";
List<SrlActivityArt> articoliPresenti = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), sql, SrlActivityArt.class);
List<String> artP;
if (articoliPresenti != null) {
articoliPresenti
.stream()
.forEach(x -> {
if (articoli.contains(x.getCodMart()))
x.setOperation(OperationType.UPDATE);
else
x.setOperation(OperationType.DELETE);
});
artP = articoliPresenti.stream().map(x -> x.getCodMart()).distinct().collect(Collectors.toList());
} else {
artP = new ArrayList<>();
}
List<SrlActivityArt> artNew = articoli
.stream()
.filter(x -> !artP.contains(x))
.map(x -> {
SrlActivityArt s = new SrlActivityArt().setCodMart(x);
s.setOperation(OperationType.INSERT);
return s;
}).collect(Collectors.toList());
StbActivity activityToUpdate = new StbActivity();
activityToUpdate.setActivityId(activityId);
activityToUpdate.setSrlActivityArt(articoliPresenti);
activityToUpdate.getSrlActivityArt().addAll(artNew);
activityToUpdate.setOperation(OperationType.UPDATE);
stbActivityList.add(activityToUpdate);
}
UtilityEntity.throwEntitiesException(entityProcessor.processEntityList(stbActivityList, true));
} }
} }
} }
public List<HashMap<String, Object>> verificaRottura(String codMdep, String codJfas, public List<String> verificaRottura(String codMdep, String codJfas,
LocalDate dataCreation, LocalDate dataCreation,
List<String> repartiFreschi, List<String> repartiFreschi,
List<String> tipiEsclusi, List<String> tipiEsclusi,
@@ -1630,9 +1689,9 @@ public class SteUPService {
"FROM jtb_dist_mate\n" + "FROM jtb_dist_mate\n" +
"WHERE cod_mart IS NOT NULL"; "WHERE cod_mart IS NOT NULL";
List<HashMap<String, Object>> articoli = new ArrayList<>(); List<String> articoli = new ArrayList<>();
try (MultiDBTransactionManager mdb = new MultiDBTransactionManager(profileDb)) { try (MultiDBTransactionManager mdb = new MultiDBTransactionManager(profileDb)) {
articoli = UtilityDB.executeSimpleQuery(mdb.getPrimaryConnection(), queryAssortimento); articoli = UtilityDB.executeSimpleQueryOnlyFirstColumn(mdb.getPrimaryConnection(), queryAssortimento);
//Eliminazione nuovi inserimenti in griglia //Eliminazione nuovi inserimenti in griglia
String sqlGriglia = String sqlGriglia =
@@ -1657,7 +1716,7 @@ public class SteUPService {
List<String> nuoviInserimenti = UtilityDB.executeSimpleQueryOnlyFirstColumn(mdb.getPrimaryConnection(), sqlGriglia); List<String> nuoviInserimenti = UtilityDB.executeSimpleQueryOnlyFirstColumn(mdb.getPrimaryConnection(), sqlGriglia);
articoli = articoli.stream() articoli = articoli.stream()
.filter(x -> !nuoviInserimenti.contains(x.get("cod_mart").toString())) .filter(x -> !nuoviInserimenti.contains(x))
.collect(Collectors.toList()); .collect(Collectors.toList());
//Verifica Inevasi //Verifica Inevasi
@@ -1694,7 +1753,7 @@ public class SteUPService {
List<String> inevasi = UtilityDB.executeSimpleQueryOnlyFirstColumn(mdb.getPrimaryConnection(), sqlInevasi); List<String> inevasi = UtilityDB.executeSimpleQueryOnlyFirstColumn(mdb.getPrimaryConnection(), sqlInevasi);
articoli = articoli.stream() articoli = articoli.stream()
.filter(x -> !inevasi.contains(x.get("cod_mart").toString())) .filter(x -> !inevasi.contains(x))
.collect(Collectors.toList()); .collect(Collectors.toList());
} }