aggiornamento griglie di vendita
This commit is contained in:
@@ -5,6 +5,8 @@ import it.integry.common.var.CommonConstants;
|
|||||||
import it.integry.ems_model.annotation.*;
|
import it.integry.ems_model.annotation.*;
|
||||||
import it.integry.ems_model.base.EntityBase;
|
import it.integry.ems_model.base.EntityBase;
|
||||||
import org.kie.api.definition.type.PropertyReactive;
|
import org.kie.api.definition.type.PropertyReactive;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -29,7 +31,7 @@ public class VtbGriglia extends EntityBase {
|
|||||||
|
|
||||||
@PK
|
@PK
|
||||||
@SqlField(value = "data_validita", nullable = false, format = CommonConstants.SYSDATE)
|
@SqlField(value = "data_validita", nullable = false, format = CommonConstants.SYSDATE)
|
||||||
private Date dataValidita;
|
private LocalDate dataValidita;
|
||||||
|
|
||||||
@SqlField(value = "descrizione", maxLength = 40, nullable = false)
|
@SqlField(value = "descrizione", maxLength = 40, nullable = false)
|
||||||
private String descrizione;
|
private String descrizione;
|
||||||
@@ -50,11 +52,11 @@ public class VtbGriglia extends EntityBase {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Date getDataValidita() {
|
public LocalDate getDataValidita() {
|
||||||
return dataValidita;
|
return dataValidita;
|
||||||
}
|
}
|
||||||
|
|
||||||
public VtbGriglia setDataValidita(Date dataValidita) {
|
public VtbGriglia setDataValidita(LocalDate dataValidita) {
|
||||||
this.dataValidita = dataValidita;
|
this.dataValidita = dataValidita;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,6 +6,8 @@ import it.integry.ems_model.annotation.SqlField;
|
|||||||
import it.integry.ems_model.annotation.Table;
|
import it.integry.ems_model.annotation.Table;
|
||||||
import it.integry.ems_model.base.EntityBase;
|
import it.integry.ems_model.base.EntityBase;
|
||||||
import org.kie.api.definition.type.PropertyReactive;
|
import org.kie.api.definition.type.PropertyReactive;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.LogManager;
|
||||||
@@ -32,7 +34,7 @@ public class VtbGrigliaArt extends EntityBase {
|
|||||||
|
|
||||||
@PK
|
@PK
|
||||||
@SqlField(value = "data_validita", nullable = false)
|
@SqlField(value = "data_validita", nullable = false)
|
||||||
private Date dataValidita;
|
private LocalDate dataValidita;
|
||||||
|
|
||||||
public VtbGrigliaArt() {
|
public VtbGrigliaArt() {
|
||||||
super(logger);
|
super(logger);
|
||||||
@@ -56,11 +58,11 @@ public class VtbGrigliaArt extends EntityBase {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Date getDataValidita() {
|
public LocalDate getDataValidita() {
|
||||||
return dataValidita;
|
return dataValidita;
|
||||||
}
|
}
|
||||||
|
|
||||||
public VtbGrigliaArt setDataValidita(Date dataValidita) {
|
public VtbGrigliaArt setDataValidita(LocalDate dataValidita) {
|
||||||
this.dataValidita = dataValidita;
|
this.dataValidita = dataValidita;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,101 @@
|
|||||||
|
package it.integry.ems.product.importaz.dto;
|
||||||
|
|
||||||
|
import com.sun.org.apache.bcel.internal.generic.SWITCH;
|
||||||
|
|
||||||
|
import java.time.DayOfWeek;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
public class GriglieVenditaExcelDTO {
|
||||||
|
private String codGriglia;
|
||||||
|
private List<DatiGriglia> elencoRighe;
|
||||||
|
|
||||||
|
public String getCodGriglia() {
|
||||||
|
return codGriglia;
|
||||||
|
}
|
||||||
|
|
||||||
|
public GriglieVenditaExcelDTO setCodGriglia(String codGriglia) {
|
||||||
|
this.codGriglia = codGriglia;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<DatiGriglia> getElencoRighe() {
|
||||||
|
return elencoRighe;
|
||||||
|
}
|
||||||
|
|
||||||
|
public GriglieVenditaExcelDTO setElencoRighe(List<DatiGriglia> elencoRighe) {
|
||||||
|
this.elencoRighe = elencoRighe;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public GriglieVenditaExcelDTO addRiga(Integer ggSettimana, String codMart) {
|
||||||
|
LocalDate nextMonday = LocalDate.now().with(java.time.temporal.TemporalAdjusters.next(DayOfWeek.MONDAY));;
|
||||||
|
LocalDate dataGriglia;
|
||||||
|
switch (ggSettimana) {
|
||||||
|
case 1: // Lunedì
|
||||||
|
dataGriglia = nextMonday;
|
||||||
|
break;
|
||||||
|
case 2: // Martedì
|
||||||
|
dataGriglia = nextMonday.with(java.time.temporal.TemporalAdjusters.next(DayOfWeek.TUESDAY));
|
||||||
|
break;
|
||||||
|
case 3: // Mercoledì
|
||||||
|
dataGriglia = nextMonday.with(java.time.temporal.TemporalAdjusters.next(DayOfWeek.WEDNESDAY));
|
||||||
|
break;
|
||||||
|
case 4: // Giovedì
|
||||||
|
dataGriglia = nextMonday.with(java.time.temporal.TemporalAdjusters.next(DayOfWeek.THURSDAY));
|
||||||
|
break;
|
||||||
|
case 5: // Venerdì
|
||||||
|
dataGriglia = nextMonday.with(java.time.temporal.TemporalAdjusters.next(DayOfWeek.FRIDAY));
|
||||||
|
break;
|
||||||
|
case 6: // Sabato
|
||||||
|
dataGriglia = nextMonday.with(java.time.temporal.TemporalAdjusters.next(DayOfWeek.SATURDAY));
|
||||||
|
break;
|
||||||
|
case 7: // Domenica
|
||||||
|
dataGriglia = nextMonday.with(java.time.temporal.TemporalAdjusters.next(DayOfWeek.SUNDAY));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
throw new IllegalArgumentException("Giorno della settimana non valido: " + ggSettimana);
|
||||||
|
}
|
||||||
|
DatiGriglia riga = new DatiGriglia()
|
||||||
|
.setCodMart(codMart)
|
||||||
|
.setDataGriglia(dataGriglia);
|
||||||
|
this.elencoRighe.add(riga);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class DatiGriglia {
|
||||||
|
private String codMart;
|
||||||
|
private LocalDate dataGriglia;
|
||||||
|
|
||||||
|
public String getCodMart() {
|
||||||
|
return codMart;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DatiGriglia setCodMart(String codMart) {
|
||||||
|
this.codMart = codMart;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public LocalDate getDataGriglia() {
|
||||||
|
return dataGriglia;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DatiGriglia setDataGriglia(LocalDate dataGriglia) {
|
||||||
|
this.dataGriglia = dataGriglia;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object o) {
|
||||||
|
if (!(o instanceof DatiGriglia)) return false;
|
||||||
|
DatiGriglia that = (DatiGriglia) o;
|
||||||
|
return Objects.equals(getCodMart(), that.getCodMart()) && Objects.equals(getDataGriglia(), that.getDataGriglia());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
return Objects.hash(getCodMart(), getDataGriglia());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -2,6 +2,7 @@ package it.integry.ems.product.importaz.service;
|
|||||||
|
|
||||||
import it.integry.ems.Import.dto.AnomalieDTO;
|
import it.integry.ems.Import.dto.AnomalieDTO;
|
||||||
import it.integry.ems.Import.dto.ImportRequestDTO;
|
import it.integry.ems.Import.dto.ImportRequestDTO;
|
||||||
|
import it.integry.ems.product.importaz.dto.GriglieVenditaExcelDTO;
|
||||||
import it.integry.ems.service.EntityProcessor;
|
import it.integry.ems.service.EntityProcessor;
|
||||||
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||||
import it.integry.ems_model.base.EntityBase;
|
import it.integry.ems_model.base.EntityBase;
|
||||||
@@ -18,6 +19,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||||||
import org.springframework.context.annotation.Scope;
|
import org.springframework.context.annotation.Scope;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@@ -32,27 +34,58 @@ public class ImportGrigliaVenditaService {
|
|||||||
private EntityProcessor entityProcessor;
|
private EntityProcessor entityProcessor;
|
||||||
|
|
||||||
public List<EntityBase> importGriglieExcel(String type, String format, ImportRequestDTO requestDTO, List<AnomalieDTO> anomalie) throws Exception {
|
public List<EntityBase> importGriglieExcel(String type, String format, ImportRequestDTO requestDTO, List<AnomalieDTO> anomalie) throws Exception {
|
||||||
Date dataValidita = new Date();
|
|
||||||
String descrizione = "Griglia di vendita ";
|
String descrizione = "Griglia di vendita ";
|
||||||
|
|
||||||
List<VtbGriglia> vtbGrigliaList = new ArrayList<>();
|
List<VtbGriglia> vtbGrigliaList = new ArrayList<>();
|
||||||
HashMap<String, List<String>> hashMap = new HashMap<>();
|
List<GriglieVenditaExcelDTO> griglieVenditaExcelDTOS = new ArrayList<>();
|
||||||
|
|
||||||
Iterator<Row> rowIterator = UtilityExcel.readXlsxFile(requestDTO, Row.class);
|
Iterator<Row> rowIterator = UtilityExcel.readXlsxFile(requestDTO, Row.class);
|
||||||
while (rowIterator.hasNext()) {
|
while (rowIterator.hasNext()) {
|
||||||
Row row = rowIterator.next();
|
Row row = rowIterator.next();
|
||||||
String codGriglia = UtilityExcel.getCellAsString(row, 0, true);
|
String codGriglia = UtilityExcel.getCellAsString(row, 0, true);
|
||||||
String codMart = UtilityExcel.getCellAsString(row, 1, true);
|
String codMart = UtilityExcel.getCellAsString(row, 1, true);
|
||||||
|
String excludeLunedi = UtilityExcel.getCellAsString(row, 3, false);
|
||||||
|
String excludeMartedi = UtilityExcel.getCellAsString(row, 4, false);
|
||||||
|
String excludeMercoledi = UtilityExcel.getCellAsString(row, 5, false);
|
||||||
|
String excludeGiovedi = UtilityExcel.getCellAsString(row, 6, false);
|
||||||
|
String excludeVenerdi = UtilityExcel.getCellAsString(row, 7, false);
|
||||||
|
String excludeSabato = UtilityExcel.getCellAsString(row, 8, false);
|
||||||
|
|
||||||
if (!hashMap.containsKey(codGriglia)) {
|
if ( griglieVenditaExcelDTOS.stream().noneMatch(x->x.getCodGriglia().equalsIgnoreCase(codGriglia))){
|
||||||
hashMap.put(codGriglia, new ArrayList<>());
|
GriglieVenditaExcelDTO grigliaVendita = new GriglieVenditaExcelDTO()
|
||||||
|
.setCodGriglia(codGriglia)
|
||||||
|
.setElencoRighe(new ArrayList<>());
|
||||||
|
griglieVenditaExcelDTOS.add(grigliaVendita);
|
||||||
}
|
}
|
||||||
|
|
||||||
hashMap.get(codGriglia).add(codMart);
|
griglieVenditaExcelDTOS
|
||||||
|
.stream()
|
||||||
|
.filter(x->x.getCodGriglia().equalsIgnoreCase(codGriglia))
|
||||||
|
.findFirst()
|
||||||
|
.ifPresent(x->{
|
||||||
|
if (UtilityString.isNullOrEmpty(excludeLunedi)) {
|
||||||
|
x.addRiga(1, codMart);
|
||||||
|
}
|
||||||
|
if(UtilityString.isNullOrEmpty(excludeMartedi)) {
|
||||||
|
x.addRiga(2, codMart);
|
||||||
|
}
|
||||||
|
if(UtilityString.isNullOrEmpty(excludeMercoledi)) {
|
||||||
|
x.addRiga(3, codMart);
|
||||||
|
}
|
||||||
|
if(UtilityString.isNullOrEmpty(excludeGiovedi)) {
|
||||||
|
x.addRiga(4, codMart);
|
||||||
|
}
|
||||||
|
if(UtilityString.isNullOrEmpty(excludeVenerdi)) {
|
||||||
|
x.addRiga(5, codMart);
|
||||||
|
}
|
||||||
|
if(UtilityString.isNullOrEmpty(excludeSabato)) {
|
||||||
|
x.addRiga(6, codMart);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
for (String codGriglia : hashMap.keySet()) {
|
for (GriglieVenditaExcelDTO griglia: griglieVenditaExcelDTOS) {
|
||||||
List<String> codMartList = hashMap.get(codGriglia);
|
String codGriglia = griglia.getCodGriglia();
|
||||||
|
|
||||||
String sql =
|
String sql =
|
||||||
Query.format(
|
Query.format(
|
||||||
@@ -65,28 +98,32 @@ public class ImportGrigliaVenditaService {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
VtbGriglia vtbGriglia = new VtbGriglia()
|
List<GriglieVenditaExcelDTO.DatiGriglia> elencoRighe = griglia.getElencoRighe()
|
||||||
.setCodGriglia(codMdep)
|
.stream()
|
||||||
.setDescrizione(descrizione + codGriglia)
|
.sorted(Comparator.comparing(GriglieVenditaExcelDTO.DatiGriglia::getDataGriglia))
|
||||||
.setDataValidita(dataValidita);
|
|
||||||
|
|
||||||
List<VtbGrigliaArt> vtbGrigliaArtList = codMartList.stream()
|
|
||||||
.map(codMart -> {
|
|
||||||
VtbGrigliaArt vtbGrigliaArt = new VtbGrigliaArt()
|
|
||||||
.setCodMart(codMart)
|
|
||||||
.setCodGriglia(codMdep)
|
|
||||||
.setDataValidita(dataValidita);
|
|
||||||
|
|
||||||
vtbGrigliaArt.setOperation(OperationType.INSERT_OR_UPDATE);
|
|
||||||
return vtbGrigliaArt;
|
|
||||||
})
|
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
vtbGriglia
|
VtbGriglia vtbGriglia = null;
|
||||||
.setVtbGrigliaArt(vtbGrigliaArtList)
|
List<VtbGrigliaArt> vtbGrigliaArtList = new ArrayList<>();
|
||||||
.setOperation(OperationType.INSERT_OR_UPDATE);
|
for (GriglieVenditaExcelDTO.DatiGriglia datiGriglia :elencoRighe) {
|
||||||
|
String codMart = datiGriglia.getCodMart();
|
||||||
|
LocalDate dataValidita = datiGriglia.getDataGriglia();
|
||||||
|
|
||||||
vtbGrigliaList.add(vtbGriglia);
|
if (vtbGrigliaList.stream().noneMatch(x->x.getCodGriglia().equalsIgnoreCase(codGriglia) &&
|
||||||
|
x.getDataValidita().equals(dataValidita))){
|
||||||
|
vtbGriglia = new VtbGriglia()
|
||||||
|
.setCodGriglia(codMdep)
|
||||||
|
.setDescrizione(descrizione + codGriglia)
|
||||||
|
.setDataValidita(dataValidita);
|
||||||
|
vtbGriglia.setOperation(OperationType.INSERT_OR_UPDATE);
|
||||||
|
vtbGrigliaList.add(vtbGriglia);
|
||||||
|
}
|
||||||
|
|
||||||
|
VtbGrigliaArt vtbGrigliaArt = new VtbGrigliaArt()
|
||||||
|
.setCodMart(codMart);
|
||||||
|
vtbGrigliaArt.setOperation(OperationType.INSERT_OR_UPDATE);
|
||||||
|
vtbGriglia.getVtbGrigliaArt().add(vtbGrigliaArt);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return entityProcessor.processEntityList(vtbGrigliaList, multiDBTransactionManager, true);
|
return entityProcessor.processEntityList(vtbGrigliaList, multiDBTransactionManager, true);
|
||||||
|
|||||||
Reference in New Issue
Block a user