Finish Hotfix-53
This commit is contained in:
@@ -1,7 +1,6 @@
|
||||
package it.integry.ems_model.entity;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonTypeName;
|
||||
import com.google.common.base.Objects;
|
||||
import it.integry.common.var.CommonConstants;
|
||||
import it.integry.ems.rules.completing.PurchasesRules;
|
||||
import it.integry.ems_model.annotation.*;
|
||||
@@ -13,6 +12,7 @@ import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
@Master
|
||||
@PropertyReactive
|
||||
@@ -357,4 +357,17 @@ public class AtbListData extends EntityBase {
|
||||
ArlListDataAttach arlListDataAttach = new ArlListDataAttach();
|
||||
arlListDataAttach.deleteAllEntities(connection, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) return true;
|
||||
if (!(o instanceof AtbListData)) return false;
|
||||
AtbListData that = (AtbListData) o;
|
||||
return Objects.equals(getCodAlis(), that.getCodAlis()) && Objects.equals(getVersione(), that.getVersione()) && Objects.equals(getDataIniz(), that.getDataIniz()) && Objects.equals(getDataInizSellOut(), that.getDataInizSellOut()) && Objects.equals(getDataFine(), that.getDataFine()) && Objects.equals(getDataFineSellOut(), that.getDataFineSellOut()) && Objects.equals(getCodDiviAcq(), that.getCodDiviAcq()) && Objects.equals(getNote(), that.getNote()) && Objects.equals(getCodPromo(), that.getCodPromo()) && Objects.equals(getDataIns(), that.getDataIns()) && Objects.equals(getInseritoDa(), that.getInseritoDa()) && Objects.equals(getDataMod(), that.getDataMod()) && Objects.equals(getModificatoDa(), that.getModificatoDa()) && Objects.equals(getFlagTipoPromo(), that.getFlagTipoPromo()) && Objects.equals(getCodVage(), that.getCodVage()) && Objects.equals(getCodVvet(), that.getCodVvet()) && Objects.equals(getCostoTrasp(), that.getCostoTrasp());
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(getCodAlis(), getVersione(), getDataIniz(), getDataInizSellOut(), getDataFine(), getDataFineSellOut(), getCodDiviAcq(), getNote(), getCodPromo(), getDataIns(), getInseritoDa(), getDataMod(), getModificatoDa(), getFlagTipoPromo(), getCodVage(), getCodVvet(), getCostoTrasp());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -668,4 +668,6 @@ public class MtbLisaData extends EntityBase {
|
||||
MtbLisaPromo mtbLisaPromo = new MtbLisaPromo();
|
||||
mtbLisaPromo.deleteAllEntities(connection, this);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -4,14 +4,15 @@ import com.annimon.stream.Stream;
|
||||
import it.integry.WooCommerce.dto.product.TextTilesBatchUpdateRequest;
|
||||
import it.integry.common.var.CommonConstants;
|
||||
import it.integry.ems.Import.dto.ImportRequestDTO;
|
||||
import it.integry.ems.rules.completing.PurchasesRules;
|
||||
import it.integry.ems.service.EntityProcessor;
|
||||
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||
import it.integry.ems.utility.UtilityDebug;
|
||||
import it.integry.ems.utility.UtilityEntity;
|
||||
import it.integry.ems.utility.UtilityFile;
|
||||
import it.integry.ems_model.base.EntityBase;
|
||||
import it.integry.ems_model.db.ResultSetMapper;
|
||||
import it.integry.ems_model.entity.AtbList;
|
||||
import it.integry.ems_model.entity.AtbListLogImport;
|
||||
import it.integry.ems_model.entity.MtbLisaData;
|
||||
import it.integry.ems_model.entity.*;
|
||||
import it.integry.ems_model.service.SetupGest;
|
||||
import it.integry.ems_model.types.OperationType;
|
||||
import it.integry.ems_model.types.TypeDbObject;
|
||||
@@ -20,6 +21,8 @@ import it.integry.ems_model.utility.UtilityDB;
|
||||
import it.integry.ems_model.utility.UtilityHashMap;
|
||||
import it.integry.ems_model.utility.UtilityString;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Scope;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -45,9 +48,13 @@ public class ImportListiniAcquistoApuliaCarrefourService {
|
||||
@Autowired
|
||||
private MultiDBTransactionManager multiDBTransactionManager;
|
||||
|
||||
@Autowired
|
||||
private EntityProcessor entityProcessor;
|
||||
private final Logger logger = LogManager.getLogger();
|
||||
|
||||
public List<EntityBase> importListino(ImportRequestDTO param, String type, String format) throws Exception {
|
||||
Connection conn = multiDBTransactionManager.getPrimaryConnection();
|
||||
|
||||
List<EntityBase> entityRet = new ArrayList<>();
|
||||
Date dataImport;
|
||||
if (param != null && param.getDataImportazione() != null) {
|
||||
dataImport = param.getDataImportazione();
|
||||
@@ -77,7 +84,6 @@ public class ImportListiniAcquistoApuliaCarrefourService {
|
||||
importFileCsv(conn, pathFile, type, format, setup);
|
||||
|
||||
//INSERIMENTO TESTATE
|
||||
List<EntityBase> entityList = new ArrayList<>();
|
||||
String sql =
|
||||
"SELECT DISTINCT "
|
||||
+ "cod_alis, "
|
||||
@@ -89,9 +95,6 @@ public class ImportListiniAcquistoApuliaCarrefourService {
|
||||
|
||||
List<AtbList> atbList = new ResultSetMapper()
|
||||
.mapQuerySetToList(conn, sql, AtbList.class, OperationType.INSERT_OR_UPDATE);
|
||||
if (atbList != null) {
|
||||
entityList.addAll(atbList);
|
||||
}
|
||||
|
||||
//INSERIMENTO E AGGIORNAMENTO PREZZI E CANCELLAZIONE
|
||||
/*
|
||||
@@ -215,7 +218,6 @@ public class ImportListiniAcquistoApuliaCarrefourService {
|
||||
+ "viewLisa.unt_mis_acq, "
|
||||
+ "viewLisa.qta_cnf, "
|
||||
+ "viewLisa.colli_x_pedane, "
|
||||
+ "viewLisa.prz_ven_sug, "
|
||||
+ "viewLisa.tipo_variazione, "
|
||||
+ "Convert(datetime, " + UtilityDB.valueDateToString(dataOraImport, CommonConstants.DATETIME_FORMAT_YMD) + ") as data_agg_prz, "
|
||||
+ "viewLisa.perc_oneri, "
|
||||
@@ -229,11 +231,11 @@ public class ImportListiniAcquistoApuliaCarrefourService {
|
||||
+ " ORDER BY viewLisa.cod_alis, viewLisa.data_iniz ";
|
||||
|
||||
|
||||
|
||||
List<MtbLisaData> righeListino = new ArrayList<>();
|
||||
List<MtbLisaData> mtbLisaData = new ResultSetMapper()
|
||||
.mapQuerySetToList(conn, sql, MtbLisaData.class, OperationType.INSERT);
|
||||
if (mtbLisaData != null) {
|
||||
entityList.addAll(mtbLisaData);
|
||||
righeListino.addAll(mtbLisaData);
|
||||
}
|
||||
|
||||
if (setup.get("IMPORT_VAR_FUTURE").equalsIgnoreCase("S")) {
|
||||
@@ -263,12 +265,12 @@ public class ImportListiniAcquistoApuliaCarrefourService {
|
||||
mtbLisaData = new ResultSetMapper()
|
||||
.mapQuerySetToList(conn, sql, MtbLisaData.class, OperationType.INSERT);
|
||||
if (mtbLisaData != null) {
|
||||
entityList.addAll(mtbLisaData);
|
||||
righeListino.addAll(mtbLisaData);
|
||||
}
|
||||
|
||||
List<String> listCond =
|
||||
Stream.of(entityList)
|
||||
.filter(x->((MtbLisaData) x).getQtaCnf() != null )
|
||||
Stream.of(righeListino)
|
||||
.filter(x->x.getQtaCnf() != null )
|
||||
.map(lisa -> {
|
||||
String whereCond =
|
||||
"mtb_lisa.cod_art_for = " + UtilityDB.valueToString(((MtbLisaData) lisa).getCodArtFor()) + " AND " +
|
||||
@@ -288,16 +290,15 @@ public class ImportListiniAcquistoApuliaCarrefourService {
|
||||
for(HashMap<String, Object> l: datiLisa) {
|
||||
String codArtForDb = UtilityHashMap.getValueIfExists(l, "cod_art_for");
|
||||
BigDecimal rapConvDb = UtilityHashMap.getValueIfExists(l, "rap_conv");
|
||||
List<EntityBase> list = Stream.of(entityList)
|
||||
.filter(x -> x instanceof MtbLisaData)
|
||||
.filter(x -> ((MtbLisaData) x).getCodArtFor().equalsIgnoreCase(codArtForDb) &&
|
||||
((MtbLisaData) x).getQtaCnf() != null
|
||||
List<MtbLisaData> list = Stream.of(righeListino)
|
||||
.filter(x -> x.getCodArtFor().equalsIgnoreCase(codArtForDb) &&
|
||||
x.getQtaCnf() != null
|
||||
).toList();
|
||||
for (EntityBase e:list) {
|
||||
entityList.remove(e);
|
||||
BigDecimal qtaCnf = ((MtbLisaData) e).getQtaCnf().multiply(rapConvDb);
|
||||
((MtbLisaData) e).setQtaCnf(qtaCnf);
|
||||
entityList.add(e);
|
||||
for (MtbLisaData e:list) {
|
||||
righeListino.remove(e);
|
||||
BigDecimal qtaCnf = e.getQtaCnf().multiply(rapConvDb);
|
||||
e.setQtaCnf(qtaCnf);
|
||||
righeListino.add(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -330,9 +331,7 @@ public class ImportListiniAcquistoApuliaCarrefourService {
|
||||
+ " ORDER BY cod_alis, data_iniz ";
|
||||
|
||||
List<AtbListLogImport> atbListLogImport = new ResultSetMapper().mapQuerySetToList(conn, sql, AtbListLogImport.class, OperationType.INSERT_OR_UPDATE);
|
||||
if (atbListLogImport != null) {
|
||||
entityList.addAll(atbListLogImport);
|
||||
}
|
||||
|
||||
//cancellazione tabella temporanea
|
||||
Boolean existView = UtilityDB.existDatabaseObject(conn, viewName, TypeDbObject.VIEW);
|
||||
|
||||
@@ -343,34 +342,57 @@ public class ImportListiniAcquistoApuliaCarrefourService {
|
||||
psDelete.close();
|
||||
}
|
||||
|
||||
if (entityList.size() > 0) {
|
||||
Stream.of(entityList).filter(x -> x instanceof MtbLisaData)
|
||||
//salvataggio testate listini
|
||||
if ( atbList != null )
|
||||
UtilityEntity.throwEntitiesException(entityProcessor.processEntityList(atbList, multiDBTransactionManager, false));
|
||||
|
||||
if (righeListino != null && righeListino.size() > 0) {
|
||||
//Salvataggio righe
|
||||
Stream.of(righeListino)
|
||||
.forEach(
|
||||
x -> ((MtbLisaData) x)
|
||||
.setPrzVenSug(UtilityBigDecimal.isNull(((MtbLisaData) x).getPrzVenSug(), BigDecimal.ZERO))
|
||||
x -> x
|
||||
.setPrzVenSug(UtilityBigDecimal.isNull(x.getPrzVenSug(), BigDecimal.ZERO))
|
||||
.setPerc1(BigDecimal.ZERO)
|
||||
.setPerc2(BigDecimal.ZERO)
|
||||
.setPerc3(BigDecimal.ZERO)
|
||||
.setPerc4(BigDecimal.ZERO)
|
||||
.setPercOneri(UtilityBigDecimal.isNull(((MtbLisaData) x).getPercOneri(), BigDecimal.ZERO))
|
||||
.setValOneri(UtilityBigDecimal.isNull(((MtbLisaData) x).getValOneri(), BigDecimal.ZERO))
|
||||
.setPercPromo(UtilityBigDecimal.isNull(((MtbLisaData) x).getPercPromo(), BigDecimal.ZERO))
|
||||
.setValPromo(UtilityBigDecimal.isNull(((MtbLisaData) x).getValPromo(), BigDecimal.ZERO))
|
||||
.setPercOneri(UtilityBigDecimal.isNull(x.getPercOneri(), BigDecimal.ZERO))
|
||||
.setValOneri(UtilityBigDecimal.isNull(x.getValOneri(), BigDecimal.ZERO))
|
||||
.setPercPromo(UtilityBigDecimal.isNull(x.getPercPromo(), BigDecimal.ZERO))
|
||||
.setValPromo(UtilityBigDecimal.isNull(x.getValPromo(), BigDecimal.ZERO))
|
||||
);
|
||||
|
||||
int limitArt = 1000;
|
||||
AtomicInteger counter = new AtomicInteger();
|
||||
List<List<EntityBase>> list = Stream.of(entityList)
|
||||
.chunkBy(x -> counter.getAndIncrement() / limitArt).toList();
|
||||
List<EntityBase> entityRet = new ArrayList<>();
|
||||
for (List<EntityBase> e : list) {
|
||||
entityRet.addAll(importAnagListiniService.importAnagListinoAcq(e, "V", null, null, false, false));
|
||||
|
||||
List<Map.Entry<AtbListData, List<MtbLisaData>>> listini =
|
||||
Stream.of(righeListino)
|
||||
.groupBy(
|
||||
x -> {
|
||||
AtbListData atbListData =
|
||||
new AtbListData()
|
||||
.setCodAlis(x.getCodAlis())
|
||||
.setDataIniz(x.getDataIniz())
|
||||
.setDataFine(x.getDataFine());
|
||||
atbListData.setOperation(OperationType.INSERT);
|
||||
return atbListData;
|
||||
}
|
||||
).toList();
|
||||
|
||||
|
||||
for (Map.Entry<AtbListData, List<MtbLisaData>> listino : listini) {
|
||||
AtbListData atbListData = listino.getKey();
|
||||
atbListData.setMtbLisaData(listino.getValue());
|
||||
UtilityEntity.throwEntityException(entityProcessor.processEntity(atbListData, multiDBTransactionManager));
|
||||
}
|
||||
} else {
|
||||
throw new Exception("Non ci sono listini da aggiornare");
|
||||
}
|
||||
|
||||
return entityList;
|
||||
if (atbListLogImport != null)
|
||||
UtilityEntity.throwEntitiesException(entityProcessor.processEntityList(atbListLogImport, multiDBTransactionManager, false));
|
||||
|
||||
logger.info("Importazione " + type + " - " + format + " terminata");
|
||||
|
||||
return entityRet;
|
||||
}
|
||||
|
||||
private void importFileCsv(Connection conn, String pathFile, String type, String format, Map<String, String> setup) throws Exception {
|
||||
|
||||
Reference in New Issue
Block a user