Finish Hotfix-1
All checks were successful
IntegryManagementSystem_Multi/pipeline/head This commit looks good

This commit is contained in:
2024-11-12 15:14:34 +01:00
6 changed files with 485 additions and 4 deletions

View File

@@ -402,6 +402,15 @@ public class DtbDoct extends DtbBaseDocT implements EquatableEntityInterface<Dtb
super(logger);
}
public DtbDoct(String codAnag, String codDtip, Date dataDoc, Integer numDoc, String serDoc) {
super(logger);
this.codAnag = codAnag;
this.codDtip = codDtip;
this.dataDoc = dataDoc;
this.numDoc = numDoc;
this.serDoc = serDoc;
}
public String getCodAnag() {
return codAnag;
}

View File

@@ -177,10 +177,10 @@ public class ToscaSalesService {
.setRagSoc(ragSoc.length() >= 40 ? ragSoc.substring(0, 39) : ragSoc)
.setNote(ragSoc)
.setDiacod(order.getCounterPNr())
.setOperation(OperationType.INSERT);
.setOperation(OperationType.INSERT_OR_UPDATE);
VtbClie clie = new VtbClie();
clie.setOperation(OperationType.INSERT);
clie.setOperation(OperationType.INSERT_OR_UPDATE);
gtbAnag.setVtbClie(clie);
entityProcessor.processEntity(gtbAnag, true, multiDBTransactionManager);
order.setCodAnag(gtbAnag.getCodAnag());

View File

@@ -10,20 +10,22 @@ import it.integry.ems.production.dto.MRPCreaOrdineLavDTO;
import it.integry.ems.production.service.MrpDailyMaterialReqService;
import it.integry.ems.production.service.MrpService;
import it.integry.ems.production.service.ProductionService;
import it.integry.ems.response.EsitoType;
import it.integry.ems.response.ServiceRestResponse;
import it.integry.ems.rules.businessLogic.dto.LoadColliDTO;
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
import it.integry.ems_model.config.EmsRestConstants;
import it.integry.ems_model.entity.DtbDoct;
import it.integry.ems_model.entity.DtbOrdt;
import it.integry.ems_model.utility.Query;
import it.integry.ems_model.utility.UtilityDB;
import it.integry.ems_model.utility.UtilityDate;
import it.integry.ems_model.utility.UtilityString;
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.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.Date;
import java.util.List;
@@ -112,4 +114,51 @@ public class ProductionController {
return ServiceRestResponse.createPositiveResponse(productionService.distribuzioneMateriali());
}
@RequestMapping(value = "/attribuzioneCostoMaterialiLavorazione", method = RequestMethod.POST)
public @ResponseBody ServiceRestResponse attribuzioneCostoMaterialiLavorazione(
HttpServletRequest request,
@RequestParam(CommonConstants.PROFILE_DB) String profileDb,
@RequestParam Integer giorni,
@RequestParam(name = "data", required = false) String dataS,
@RequestParam(required = false) String codProd,
@RequestParam(required = false) String codJcom,
@RequestParam(required = false) String partitaMag
) {
try {
Date dataFine = UtilityString.isNullOrEmpty(dataS) ? new Date() : UtilityDate.RecognizeDate(dataS);
Date dataIniz = UtilityDate.dateAdd(dataFine, giorni);
productionService.attribuzioneCostoMaterialiLavorazione(dataIniz, dataFine, codProd, partitaMag, codJcom);
return ServiceRestResponse.createPositiveResponse();
} catch (Exception e) {
try {
multiDBTransactionManager.rollbackAll();
} catch (Exception ex) {
logger.error(request.getRequestURI(), e);
}
logger.error(request.getRequestURI(), e);
return new ServiceRestResponse(EsitoType.KO, profileDb, e);
}
}
@RequestMapping(value = "/getDettaglioCostiLavorazioneProdotto", method = RequestMethod.GET)
public @ResponseBody ServiceRestResponse getDettaglioCostiLavorazioneProdotto(
HttpServletRequest request,
@RequestParam(CommonConstants.PROFILE_DB) String profileDB,
@RequestParam String codProd,
@RequestParam(required = false) String codJcom,
@RequestParam(required = false) String partitaMag
) {
try {
return ServiceRestResponse.createPositiveResponse(productionService.getDettaglioCostiProd(codProd, partitaMag, codJcom));
} catch (Exception e) {
logger.error(request.getRequestURI(), e);
return new ServiceRestResponse(EsitoType.KO, profileDB, e);
}
}
}

View File

@@ -0,0 +1,82 @@
package it.integry.ems.production.dto;
import java.util.Date;
import java.util.Objects;
public class ArticoloPartitaCommessaDTO {
private String codMart;
private String codJcom;
private String partitaMag;
private Date dataOrd;
private Integer numOrd;
public ArticoloPartitaCommessaDTO() {
}
public ArticoloPartitaCommessaDTO(String codMart, String codJcom, String partitaMag, Date dataOrd, Integer numOrd) {
this.codMart = codMart;
this.codJcom = codJcom;
this.partitaMag = partitaMag;
this.dataOrd = dataOrd;
this.numOrd = numOrd;
}
public String getCodMart() {
return codMart;
}
public ArticoloPartitaCommessaDTO setCodMart(String codMart) {
this.codMart = codMart;
return this;
}
public String getCodJcom() {
return codJcom;
}
public ArticoloPartitaCommessaDTO setCodJcom(String codJcom) {
this.codJcom = codJcom;
return this;
}
public String getPartitaMag() {
return partitaMag;
}
public ArticoloPartitaCommessaDTO setPartitaMag(String partitaMag) {
this.partitaMag = partitaMag;
return this;
}
public Date getDataOrd() {
return dataOrd;
}
public ArticoloPartitaCommessaDTO setDataOrd(Date dataOrd) {
this.dataOrd = dataOrd;
return this;
}
public Integer getNumOrd() {
return numOrd;
}
public ArticoloPartitaCommessaDTO setNumOrd(Integer numOrd) {
this.numOrd = numOrd;
return this;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
ArticoloPartitaCommessaDTO that = (ArticoloPartitaCommessaDTO) o;
return Objects.equals(getCodMart(), that.getCodMart()) && Objects.equals(getCodJcom(), that.getCodJcom()) && Objects.equals(getPartitaMag(), that.getPartitaMag()) && Objects.equals(getDataOrd(), that.getDataOrd()) && Objects.equals(getNumOrd(), that.getNumOrd());
}
@Override
public int hashCode() {
return Objects.hash(getCodMart(), getCodJcom(), getPartitaMag(), getDataOrd(), getNumOrd());
}
}

View File

@@ -0,0 +1,131 @@
package it.integry.ems.production.dto;
import it.integry.ems_model.annotation.SqlField;
import java.math.BigDecimal;
import java.time.LocalDate;
public class DettaglioCostiDTO {
@SqlField("gruppo")
private String gruppo;
@SqlField("cod_jcom")
private String codJcom;
@SqlField("cod_prod")
private String codProd;
@SqlField("partita_mag_prod")
private String partitaMagProd;
@SqlField("qta_prod")
private BigDecimal qtaProd;
@SqlField("cod_mart")
private String codMart;
@SqlField("partita_mag")
private String partitaMag;
@SqlField("qta_doc")
private BigDecimal qtaDoc;
@SqlField("val_doc")
private BigDecimal valDoc;
@SqlField("data_ord")
private LocalDate dataOrd;
@SqlField("num_ord")
private Integer numOrd;
public String getGruppo() {
return gruppo;
}
public DettaglioCostiDTO setGruppo(String gruppo) {
this.gruppo = gruppo;
return this;
}
public String getCodJcom() {
return codJcom;
}
public DettaglioCostiDTO setCodJcom(String codJcom) {
this.codJcom = codJcom;
return this;
}
public String getCodProd() {
return codProd;
}
public DettaglioCostiDTO setCodProd(String codProd) {
this.codProd = codProd;
return this;
}
public String getPartitaMagProd() {
return partitaMagProd;
}
public DettaglioCostiDTO setPartitaMagProd(String partitaMagProd) {
this.partitaMagProd = partitaMagProd;
return this;
}
public BigDecimal getQtaProd() {
return qtaProd;
}
public DettaglioCostiDTO setQtaProd(BigDecimal qtaProd) {
this.qtaProd = qtaProd;
return this;
}
public String getCodMart() {
return codMart;
}
public DettaglioCostiDTO setCodMart(String codMart) {
this.codMart = codMart;
return this;
}
public String getPartitaMag() {
return partitaMag;
}
public DettaglioCostiDTO setPartitaMag(String partitaMag) {
this.partitaMag = partitaMag;
return this;
}
public BigDecimal getQtaDoc() {
return qtaDoc;
}
public DettaglioCostiDTO setQtaDoc(BigDecimal qtaDoc) {
this.qtaDoc = qtaDoc;
return this;
}
public BigDecimal getValDoc() {
return valDoc;
}
public DettaglioCostiDTO setValDoc(BigDecimal valDoc) {
this.valDoc = valDoc;
return this;
}
public LocalDate getDataOrd() {
return dataOrd;
}
public DettaglioCostiDTO setDataOrd(LocalDate dataOrd) {
this.dataOrd = dataOrd;
return this;
}
public Integer getNumOrd() {
return numOrd;
}
public DettaglioCostiDTO setNumOrd(Integer numOrd) {
this.numOrd = numOrd;
return this;
}
}

View File

@@ -29,6 +29,7 @@ import org.springframework.stereotype.Service;
import java.io.IOException;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
@@ -1368,4 +1369,213 @@ public class ProductionService {
.map(RigheLottLavDTO::getQta_ord)
.reduce(BigDecimal.ZERO, BigDecimal::add);
}
public List<DettaglioCostiDTO> getDettaglioCostiProd(String codProd, String partitaMag, String codJcom) throws Exception {
String sql = "WITH ordini AS (SELECT dtb_ordt.cod_prod,\n" +
" dtb_ordt.partita_mag AS partita_mag_prod,\n" +
" dtb_ord_steps.cod_jfas,\n" +
" dtb_ord_steps.data_iniz,\n" +
" dtb_ord_steps.data_fine,\n" +
" dtb_ordt.gestione,\n" +
" dtb_ordt.cod_jcom,\n" +
" dtb_ordt.data_ord,\n" +
" dtb_ordt.num_ord,\n" +
" IIF(dtb_ordt.qta_evasa_prod = 0, dtb_ordt.qta_prod, dtb_ordt.qta_evasa_prod) *\n" +
" dtb_ordt.rap_conv_prod AS qta_prod\n" +
" FROM dtb_ordt\n" +
" INNER JOIN dtb_ord_steps\n" +
" ON dtb_ordt.gestione = dtb_ord_steps.gestione AND\n" +
" dtb_ordt.data_ord = dtb_ord_steps.data_ord AND\n" +
" dtb_ordt.num_ord = dtb_ord_steps.num_ord\n" +
" WHERE dtb_ordt.gestione = 'L'),\n" +
" produzioni_commessa AS (SELECT cod_jfas,\n" +
" cod_jcom,\n" +
" data_lav,\n" +
" SUM(qta_prod) AS qta_prod\n" +
" FROM (SELECT DISTINCT cod_jfas,\n" +
" cod_jcom,\n" +
" CAST(data_iniz AS DATE) AS data_lav,\n" +
" qta_prod\n" +
" FROM ordini) ord\n" +
"\n" +
" GROUP BY cod_jfas, cod_jcom, data_lav)\n" +
" ,\n" +
" rapportini AS (SELECT jtb_rlavr.cod_jfas,\n" +
" jtb_rlavr.cod_jcom,\n" +
" jtb_rlavr.cod_jflav,\n" +
" jtb_rlavr.ore,\n" +
" jvw_timbrature.ingresso,\n" +
" jvw_timbrature.uscita,\n" +
" ordini.cod_prod,\n" +
" ordini.partita_mag_prod,\n" +
" ordini.qta_prod,\n" +
" produzioni_commessa.qta_prod AS prd_comm,\n" +
" ROUND((ordini.qta_prod / produzioni_commessa.qta_prod) *\n" +
" jtb_rlavr.ore,\n" +
" 5) ora_lav_ord,\n" +
" ROUND(ordini.qta_prod / produzioni_commessa.qta_prod *\n" +
" jtb_rlavr.ore, 5) *\n" +
" jtb_flav.costo_ord AS costo_lav,\n" +
" ordini.data_ord,\n" +
" ordini.num_ord\n" +
" FROM jtb_rlavt\n" +
" INNER JOIN jtb_rlavr ON jtb_rlavt.cod_jflav = jtb_rlavr.cod_jflav AND\n" +
" jtb_rlavt.data_lav = jtb_rlavr.data_lav\n" +
" INNER JOIN jtb_flav ON jtb_rlavt.cod_jflav = jtb_flav.cod_jflav\n" +
" LEFT OUTER JOIN jvw_timbrature ON jtb_rlavt.cod_jflav = jvw_timbrature.cod_jflav AND\n" +
" jtb_rlavt.data_lav = jvw_timbrature.data_lav\n" +
" INNER JOIN ordini ON jtb_rlavr.cod_jcom = ordini.cod_jcom AND\n" +
" jtb_rlavr.cod_jfas = ordini.cod_jfas AND\n" +
" ((jtb_rlavt.data_lav BETWEEN CAST(ordini.data_iniz AS DATE) AND CAST(ordini.data_fine AS DATE))\n" +
" OR (jtb_rlavt.data_lav <= CAST(ordini.data_iniz AS DATE) AND\n" +
" ordini.data_fine IS NULL))\n" +
" INNER JOIN produzioni_commessa ON jtb_rlavr.cod_jfas = produzioni_commessa.cod_jfas AND\n" +
" jtb_rlavr.cod_jcom = produzioni_commessa.cod_jcom AND\n" +
" jtb_rlavr.data_lav = produzioni_commessa.data_lav\n" +
" WHERE jtb_rlavr.ore <> 0)" +
" , doc_l AS (SELECT dtb_docr.cod_mart,\n" +
" dtb_docr.partita_mag,\n" +
" dtb_docr.data_ord,\n" +
" dtb_docr.num_ord,\n" +
" SUM(dtb_docr.qta_doc) AS qta_doc,\n" +
" SUM(dtb_docr.qta_doc * IIF(dtb_docr.partita_mag IS NULL,\n" +
" [dbo].[f_GetCostoUltArt_depo](dtb_doct.data_reg, dtb_doct.cod_mdep,\n" +
" dtb_docr.cod_mart),\n" +
" mtb_partita_mag.costo_unt_um_mag)) AS val_doc\n" +
" FROM dtb_doct\n" +
" INNER JOIN dtb_docr ON dtb_doct.cod_anag = dtb_docr.cod_anag AND\n" +
" dtb_doct.cod_dtip = dtb_docr.cod_dtip AND\n" +
" dtb_doct.data_doc = dtb_docr.data_doc AND\n" +
" dtb_doct.ser_doc = dtb_docr.ser_doc AND\n" +
" dtb_doct.num_doc = dtb_docr.num_doc\n" +
" INNER JOIN dtb_tipi ON dtb_doct.cod_dtip = dtb_tipi.cod_dtip\n" +
" LEFT OUTER JOIN mtb_partita_mag ON dtb_docr.cod_mart = mtb_partita_mag.cod_mart AND\n" +
" dtb_docr.partita_mag = mtb_partita_mag.partita_mag\n" +
" WHERE dtb_doct.gestione = 'L'\n" +
" AND (dtb_tipi.segno_qta_car < 0 OR dtb_tipi.segno_qta_scar > 0)\n" +
" GROUP BY dtb_docr.cod_mart,\n" +
" dtb_docr.partita_mag,\n" +
" dtb_docr.data_ord,\n" +
" dtb_docr.num_ord)\n" +
"\n" +
"SELECT 'M' AS gruppo,\n" +
" dtb_ordt.cod_jcom,\n" +
" dtb_ordt.cod_prod,\n" +
" dtb_ordt.partita_mag AS partitaMagProd,\n" +
" IIF(dtb_ordt.qta_evasa_prod = 0, dtb_ordt.qta_prod, dtb_ordt.qta_evasa_prod) * dtb_ordt.rap_conv_prod AS qta_prod,\n" +
" doc_l.cod_mart,\n" +
" doc_l.partita_mag,\n" +
" doc_l.qta_doc,\n" +
" doc_l.val_doc,\n" +
" dtb_ordt.data_ord,\n" +
" dtb_ordt.num_ord\n" +
"FROM dtb_ordt\n" +
" INNER JOIN doc_l ON dtb_ordt.data_ord = doc_l.data_ord AND dtb_ordt.num_ord = doc_l.num_ord\n" +
"WHERE cod_prod = " + UtilityDB.valueToString(codProd) + "\n" +
" AND cod_jcom = " + UtilityDB.valueToString(codJcom) + "\n" +
" AND (" + UtilityDB.valueToString(partitaMag) + " IS NULL OR dtb_ordt.partita_mag = " + UtilityDB.valueToString(partitaMag) + ")\n" +
" AND dtb_ordt.gestione = 'L'\n" +
"UNION ALL\n" +
"SELECT DISTINCT 'R' AS gruppo,\n" +
" cod_jcom,\n" +
" rapportini.cod_prod,\n" +
" rapportini.partita_mag_prod AS partitaMagProd,\n" +
" rapportini.qta_prod,\n" +
" rapportini.cod_jflav AS cod_mart,\n" +
" rapportini.cod_jfas AS partita_mag,\n" +
" ora_lav_ord,\n" +
" costo_lav,\n" +
" data_ord,\n" +
" num_ord\n" +
"FROM rapportini\n" +
"WHERE cod_prod = " + UtilityDB.valueToString(codProd) + "\n" +
" AND cod_jcom = " + UtilityDB.valueToString(codJcom) + "\n" +
" AND (" + UtilityDB.valueToString(partitaMag) + " IS NULL OR rapportini.partita_mag_prod = " + UtilityDB.valueToString(partitaMag) + ")\n" +
"UNION ALL\n" +
"SELECT 'T' AS gruppo,\n" +
" dtb_ordt.cod_jcom,\n" +
" dtb_ordt.cod_prod,\n" +
" dtb_ordt.partita_mag AS partitaMagProd,\n" +
" IIF(dtb_ordt.qta_evasa_prod = 0, dtb_ordt.qta_prod, dtb_ordt.qta_evasa_prod) AS qta_prod,\n" +
" dtb_ords.cod_spes,\n" +
" NULL,\n" +
" IIF(dtb_ordt.qta_evasa_prod = 0, dtb_ordt.qta_prod, dtb_ordt.qta_evasa_prod) AS qta_doc,\n" +
" IIF(dtb_ordt.qta_evasa_prod = 0, dtb_ordt.qta_prod, dtb_ordt.qta_evasa_prod) * dtb_ords.val_unt AS val_doc,\n" +
" dtb_ordt.data_ord,\n" +
" dtb_ordt.num_ord\n" +
"FROM dtb_ordt\n" +
" INNER JOIN dtb_ords ON dtb_ordt.data_ord = dtb_ords.data_ord AND dtb_ordt.num_ord = dtb_ords.num_ord AND\n" +
" dtb_ordt.gestione = dtb_ords.gestione\n" +
" INNER JOIN gtb_anag ON dtb_ordt.cod_anag = gtb_anag.cod_anag\n" +
"WHERE cod_prod = " + UtilityDB.valueToString(codProd) + "\n" +
" AND cod_jcom = " + UtilityDB.valueToString(codJcom) + "\n" +
" AND (" + UtilityDB.valueToString(partitaMag) + " IS NULL OR dtb_ordt.partita_mag = " + UtilityDB.valueToString(partitaMag) + ")\n" +
" AND dtb_ordt.gestione = 'L'\n" +
" AND NOT EXISTS(SELECT * FROM azienda WHERE azienda.part_iva = gtb_anag.part_iva)\n" +
"ORDER BY data_ord, num_ord, cod_jcom, cod_prod, 4, gruppo";
return UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), sql, DettaglioCostiDTO.class);
}
public void attribuzioneCostoMaterialiLavorazione(Date dataIniz, Date dataFine, String codProd, String partitaMag, String codJcom) throws Exception {
String codDtipLav = setupGest.getSetup(multiDBTransactionManager.getPrimaryConnection(), "W_PORDI_RC", "SETUP_DOCUMENTI", "COD_DTIP_CAR");
String codDtipLavTerzi = setupGest.getSetup(multiDBTransactionManager.getPrimaryConnection(), "DATI_AZIENDA", "CONTO_LAVORO", "COD_DTIP_CLAV");
//cerco tutti i documenti di lavorazione creati nel periodo selezionato
String sql = "SELECT dtb_docr.*\n" +
"FROM dtb_docr\n" +
" INNER JOIN dtb_doct ON dtb_docr.cod_anag = dtb_doct.cod_anag AND dtb_docr.cod_dtip = dtb_doct.cod_dtip AND\n" +
" dtb_docr.data_doc = dtb_doct.data_doc AND dtb_docr.ser_doc = dtb_doct.ser_doc AND\n" +
" dtb_docr.num_doc = dtb_doct.num_doc AND dtb_docr.cod_mart = dtb_doct.cod_prod\n" +
"WHERE dtb_doct.data_doc BETWEEN " + UtilityDB.valueToString(dataIniz) + " AND " + UtilityDB.valueToString(dataFine) + "\n" +
" AND dtb_doct.cod_dtip in (" + UtilityDB.valueToString(codDtipLav) + " , "+UtilityDB.valueToString(codDtipLavTerzi)+")\n" +
" AND (" + UtilityDB.valueToString(codProd) + " IS NULL OR dtb_doct.cod_prod = " + UtilityDB.valueToString(codProd) + ")\n" +
" AND (" + UtilityDB.valueToString(codJcom) + " IS NULL OR dtb_doct.cod_jcom = " + UtilityDB.valueToString(codJcom) + ")\n" +
" AND (" + UtilityDB.valueToString(partitaMag) + " IS NULL OR dtb_doct.partita_mag = " + UtilityDB.valueToString(partitaMag) + ")";
List<DtbDocr> documentiLav = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), sql, DtbDocr.class);
if (UtilityList.isNullOrEmpty(documentiLav))
return;
// raggruppo per articolo/commessa/partita/ordine
List<ArticoloPartitaCommessaDTO> listToCheck = documentiLav
.stream()
.map(x -> new ArticoloPartitaCommessaDTO(x.getCodMart(), x.getCodJcom(), x.getPartitaMag(), x.getDataOrd(), x.getNumOrd()))
.distinct()
.collect(Collectors.toList());
for (ArticoloPartitaCommessaDTO dataToCheck : listToCheck) {
//prendo dettaglio costi per articolo commessa partita
List<DettaglioCostiDTO> dettaglioCosti = getDettaglioCostiProd(dataToCheck.getCodMart(), dataToCheck.getPartitaMag(), dataToCheck.getCodJcom());
if (UtilityList.isNullOrEmpty(dettaglioCosti))
continue;
//filtro solo i costi dell'ordine richiesto
List<DettaglioCostiDTO> costiOrdine = dettaglioCosti.stream()
.filter(c ->
Objects.equals(UtilityLocalDate.localDateToDate(c.getDataOrd()), dataToCheck.getDataOrd()) &&
Objects.equals(c.getNumOrd(), dataToCheck.getNumOrd())
)
.collect(Collectors.toList());
// il costoUnitario è la somma dei costi divisi per la quantità prodotta nell'ordine
BigDecimal costoProdUnt = costiOrdine.stream()
.map(x -> x.getValDoc().divide(x.getQtaProd(), 5, RoundingMode.HALF_UP))
.reduce(BigDecimal.ZERO, BigDecimal::add);
//aggiorno le righe dei vari documenti (mantenendo lo stesso filtro ovviamente)
List<DtbDocr> righeDaAggiornare = documentiLav.stream()
.filter(x -> new ArticoloPartitaCommessaDTO(x.getCodMart(), x.getCodJcom(), x.getPartitaMag(), x.getDataOrd(), x.getNumOrd()).equals(dataToCheck))
.peek(r -> {
r.setValUnt(costoProdUnt)
.setCostoUnt(costoProdUnt)
.setOperation(OperationType.UPDATE);
}).collect(Collectors.toList());
List<DtbDoct> docDaAggiornare = righeDaAggiornare.stream().map(r -> new DtbDoct(r.getCodAnag(), r.getCodDtip(), r.getDataDoc(), r.getNumDoc(), r.getSerDoc())).distinct().collect(Collectors.toList());
docDaAggiornare = docDaAggiornare.stream().peek(d -> {
d.setDtbDocr(righeDaAggiornare.stream()
.filter(r -> d.equals(new DtbDoct(r.getCodAnag(), r.getCodDtip(), r.getDataDoc(), r.getNumDoc(), r.getSerDoc())))
.collect(Collectors.toList()));
}).collect(Collectors.toList());
entityProcessor.processEntityList(docDaAggiornare, true);
}
}
}