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.TECNICO;
import static java.util.stream.Collectors.groupingBy;
import static org.codehaus.groovy.runtime.DefaultGroovyMethods.collect;
@Service
@Scope("request")
@@ -736,36 +737,9 @@ public class SteUPService {
if (barcodes != null && !barcodes.isEmpty()) {
for (String barcode : barcodes) {
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();
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);
StbActivity art = getArticoli(barcode, null, activityTypeId, codJfas, userNamePv);
if( art != null)
stbActivityList.add(art);
}
}
@@ -811,6 +785,36 @@ public class SteUPService {
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 {
String sql =
"SELECT p.descrizione, p.prz_vend_iva " +
@@ -1481,7 +1485,7 @@ public class SteUPService {
String sql =
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" +
"inner join stb_activity on i.activity_id = stb_activity.parent_activity_id\n" +
"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")));
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")));
for (Map.Entry<String, List<HashMap<String, Object>>> reparto : reparti.entrySet()) {
String codJfas = reparto.getKey();
List<String> barcodes = new ArrayList<>();
List<String> idAttivita = new ArrayList<>();
for ( HashMap<String, Object> r: reparto.getValue() ) {
String activityId = (String) r.get("activity_id");
idAttivita.add(activityId);
StbActivityFile stbActivityFile = new StbActivityFile()
.setId((String) r.get("activity_id"))
.setId(activityId)
.setFileName("elenco_articoli.txt");
stbActivityFile.setOperation(OperationType.SELECT_OBJECT);
@@ -1511,7 +1520,9 @@ public class SteUPService {
if (contentB64 != null && contentB64.length > 0) {
String content = new String(contentB64);
barcodes.addAll(UtilityString.splitStringToMultipleLine(content, CommonConstants.A_CAPO));
barcodes = Arrays.asList(("8001990030611\n" +
if (UtilityDebug.isDebugExecution()) {
barcodes=Arrays.asList(
("8001990030611\n" +
"8003650000798\n" +
"8054633830833\n" +
"8410436393942\n" +
@@ -1544,20 +1555,68 @@ public class SteUPService {
"8034055535387\n" +
"8056364996130\n" +
"8056364993467\n" +
"8007675733877").split("\n"));
"8007675733877").split("\n")
);
}
}
}
if (barcodes.isEmpty()) {
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);
}
public List<HashMap<String, Object>> verificaRottura(String codMdep, String codJfas,
UtilityEntity.throwEntitiesException(entityProcessor.processEntityList(stbActivityList, true));
}
}
}
public List<String> verificaRottura(String codMdep, String codJfas,
LocalDate dataCreation,
List<String> repartiFreschi,
List<String> tipiEsclusi,
@@ -1630,9 +1689,9 @@ public class SteUPService {
"FROM jtb_dist_mate\n" +
"WHERE cod_mart IS NOT NULL";
List<HashMap<String, Object>> articoli = new ArrayList<>();
List<String> articoli = new ArrayList<>();
try (MultiDBTransactionManager mdb = new MultiDBTransactionManager(profileDb)) {
articoli = UtilityDB.executeSimpleQuery(mdb.getPrimaryConnection(), queryAssortimento);
articoli = UtilityDB.executeSimpleQueryOnlyFirstColumn(mdb.getPrimaryConnection(), queryAssortimento);
//Eliminazione nuovi inserimenti in griglia
String sqlGriglia =
@@ -1657,7 +1716,7 @@ public class SteUPService {
List<String> nuoviInserimenti = UtilityDB.executeSimpleQueryOnlyFirstColumn(mdb.getPrimaryConnection(), sqlGriglia);
articoli = articoli.stream()
.filter(x -> !nuoviInserimenti.contains(x.get("cod_mart").toString()))
.filter(x -> !nuoviInserimenti.contains(x))
.collect(Collectors.toList());
//Verifica Inevasi
@@ -1694,7 +1753,7 @@ public class SteUPService {
List<String> inevasi = UtilityDB.executeSimpleQueryOnlyFirstColumn(mdb.getPrimaryConnection(), sqlInevasi);
articoli = articoli.stream()
.filter(x -> !inevasi.contains(x.get("cod_mart").toString()))
.filter(x -> !inevasi.contains(x))
.collect(Collectors.toList());
}