This commit is contained in:
2024-11-11 10:50:55 +01:00
parent ba8315c73f
commit 390fe20f80
6 changed files with 169 additions and 29 deletions

View File

@@ -24,9 +24,11 @@ import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
import org.springframework.web.context.ContextLoader; import org.springframework.web.context.ContextLoader;
import javax.validation.constraints.NotNull;
import java.io.IOException; import java.io.IOException;
import java.sql.*; import java.sql.*;
import java.util.Arrays; import java.util.Arrays;
import java.util.HashMap;
import java.util.List; import java.util.List;
public abstract class BaseMigration implements MigrationModelInterface { public abstract class BaseMigration implements MigrationModelInterface {
@@ -62,6 +64,14 @@ public abstract class BaseMigration implements MigrationModelInterface {
} }
protected @NotNull List<HashMap<String, Object>> executeQuery(String sql) throws SQLException, IOException {
return UtilityDB.executeSimpleQuery(advancedDataSource.getConnection(), sql);
}
protected @NotNull <T>List<T> executeQueryDTO(String sql, Class<T> clazz) throws Exception {
return UtilityDB.executeSimpleQueryDTO(advancedDataSource.getConnection(), sql, clazz);
}
protected void executeStatement(String... sqls) throws SQLException, IOException { protected void executeStatement(String... sqls) throws SQLException, IOException {
executeStatement(advancedDataSource.getConnection(), sqls); executeStatement(advancedDataSource.getConnection(), sqls);
} }

View File

@@ -0,0 +1,42 @@
package it.integry.ems.migration.model;
import it.integry.ems.migration._base.BaseMigration;
import it.integry.ems.migration._base.IntegryCustomerDB;
import it.integry.ems.migration._base.MigrationModelInterface;
import it.integry.ems_model.entity.MrlDepoArtEsclusiWms;
import it.integry.ems_model.entity.MtbDepo;
import it.integry.ems_model.types.OperationType;
public class Migration_20241107192339 extends BaseMigration implements MigrationModelInterface {
@Override
public void up() throws Exception {
if (isHistoryDB())
return;
if (isCustomerDb(IntegryCustomerDB.Maggio_MaggioSrl)) {
MtbDepo mtbDepo = new MtbDepo()
.setCodMdep("01");
mtbDepo.setOperation(OperationType.NO_OP);
MrlDepoArtEsclusiWms mrlDepoArtEsclusiWms = new MrlDepoArtEsclusiWms()
.setCodMdep("01")
.setCodMgrp("COM")
.setCodMsgr("15");
mrlDepoArtEsclusiWms.setOperation(OperationType.INSERT_OR_UPDATE);
mtbDepo.getMrlDepoArtEsclusiWms().add(mrlDepoArtEsclusiWms);
mtbDepo.manageWithParentConnection(advancedDataSource.getConnection());
}
}
@Override
public void down() throws Exception {
}
}

View File

@@ -10,6 +10,8 @@ import org.springframework.beans.factory.InitializingBean;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@Component @Component
public class SettingsModel implements InitializingBean { public class SettingsModel implements InitializingBean {
@@ -94,8 +96,14 @@ public class SettingsModel implements InitializingBean {
return this; return this;
} }
public ArrayList<AvailableConnectionsModel> getAvailableConnections() { public List<AvailableConnectionsModel> getAvailableConnections() {
return availableConnections.get(); return getAvailableConnections(false);
}
public List<AvailableConnectionsModel> getAvailableConnections(boolean onlyInternal) {
return availableConnections.get().stream()
.filter(x -> !onlyInternal || x.getInternalDb())
.collect(Collectors.toList());
} }
public void addAvailableConnection(AvailableConnectionsModel availableConnectionsModel) { public void addAvailableConnection(AvailableConnectionsModel availableConnectionsModel) {

View File

@@ -3,17 +3,16 @@ package it.integry.ems_model.entity;
import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonTypeName;
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 java.util.ArrayList;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
import org.kie.api.definition.type.PropertyReactive;
@PropertyReactive @PropertyReactive
@Table(MrlDepoArtEsclusiWms.ENTITY) @Table(MrlDepoArtEsclusiWms.ENTITY)
@JsonTypeName(MrlDepoArtEsclusiWms.ENTITY) @JsonTypeName(MrlDepoArtEsclusiWms.ENTITY)
public class MrlDepoArtEsclusiWms extends EntityBase { public class MrlDepoArtEsclusiWms extends EntityBase {
private final static Logger logger = LogManager.getLogger(); private final static Logger logger = LogManager.getLogger(MrlDepoArtEsclusiWms.class);
public static final String ENTITY = "mrl_depo_art_esclusi_wms"; public static final String ENTITY = "mrl_depo_art_esclusi_wms";
@@ -54,63 +53,71 @@ public class MrlDepoArtEsclusiWms extends EntityBase {
return id; return id;
} }
public void setId(Long id) { public MrlDepoArtEsclusiWms setId(Long id) {
this.id = id; this.id = id;
return this;
} }
public String getCodMdep() { public String getCodMdep() {
return codMdep; return codMdep;
} }
public void setCodMdep(String codMdep) { public MrlDepoArtEsclusiWms setCodMdep(String codMdep) {
this.codMdep = codMdep; this.codMdep = codMdep;
return this;
} }
public String getCodMgrp() { public String getCodMgrp() {
return codMgrp; return codMgrp;
} }
public void setCodMgrp(String codMgrp) { public MrlDepoArtEsclusiWms setCodMgrp(String codMgrp) {
this.codMgrp = codMgrp; this.codMgrp = codMgrp;
return this;
} }
public String getCodMsgr() { public String getCodMsgr() {
return codMsgr; return codMsgr;
} }
public void setCodMsgr(String codMsgr) { public MrlDepoArtEsclusiWms setCodMsgr(String codMsgr) {
this.codMsgr = codMsgr; this.codMsgr = codMsgr;
return this;
} }
public String getCodMsfa() { public String getCodMsfa() {
return codMsfa; return codMsfa;
} }
public void setCodMsfa(String codMsfa) { public MrlDepoArtEsclusiWms setCodMsfa(String codMsfa) {
this.codMsfa = codMsfa; this.codMsfa = codMsfa;
return this;
} }
public String getCodMtip() { public String getCodMtip() {
return codMtip; return codMtip;
} }
public void setCodMtip(String codMtip) { public MrlDepoArtEsclusiWms setCodMtip(String codMtip) {
this.codMtip = codMtip; this.codMtip = codMtip;
return this;
} }
public String getCodMstp() { public String getCodMstp() {
return codMstp; return codMstp;
} }
public void setCodMstp(String codMstp) { public MrlDepoArtEsclusiWms setCodMstp(String codMstp) {
this.codMstp = codMstp; this.codMstp = codMstp;
return this;
} }
public String getCodMart() { public String getCodMart() {
return codMart; return codMart;
} }
public void setCodMart(String codMart) { public MrlDepoArtEsclusiWms setCodMart(String codMart) {
this.codMart = codMart; this.codMart = codMart;
return this;
} }
} }

View File

@@ -9,6 +9,8 @@ import com.fasterxml.jackson.databind.node.ObjectNode;
import com.google.common.base.Joiner; import com.google.common.base.Joiner;
import it.integry.common.var.CommonConstants; import it.integry.common.var.CommonConstants;
import it.integry.ems.dto.ExtendedStbActivity; import it.integry.ems.dto.ExtendedStbActivity;
import it.integry.ems.dto.Result;
import it.integry.ems.expansion.RunnableArgsThrowable;
import it.integry.ems.file_sharer.IFileSharerAttachment; import it.integry.ems.file_sharer.IFileSharerAttachment;
import it.integry.ems.file_sharer.sharers.email.EmailFileAttachment; import it.integry.ems.file_sharer.sharers.email.EmailFileAttachment;
import it.integry.ems.javabeans.RequestDataDTO; import it.integry.ems.javabeans.RequestDataDTO;
@@ -17,6 +19,7 @@ import it.integry.ems.license.LicenseStatusDTO;
import it.integry.ems.report.dto.JasperDTO; import it.integry.ems.report.dto.JasperDTO;
import it.integry.ems.report.dto.PairsDTO; import it.integry.ems.report.dto.PairsDTO;
import it.integry.ems.response.*; import it.integry.ems.response.*;
import it.integry.ems.retail.ReportVariazioni.dto.VariazioniDettaglioDTO;
import it.integry.ems.service.EntityProcessor; import it.integry.ems.service.EntityProcessor;
import it.integry.ems.service.MailService; import it.integry.ems.service.MailService;
import it.integry.ems.service.PrinterService; import it.integry.ems.service.PrinterService;
@@ -35,7 +38,9 @@ import it.integry.ems.system.exception.NotValidLicenseException;
import it.integry.ems.system.request.SystemChangePasswordRequest; import it.integry.ems.system.request.SystemChangePasswordRequest;
import it.integry.ems.system.request.SystemLoginRequest; import it.integry.ems.system.request.SystemLoginRequest;
import it.integry.ems.system.service.SystemService; import it.integry.ems.system.service.SystemService;
import it.integry.ems.utility.UtilityDirs;
import it.integry.ems.utility.UtilityEntity; import it.integry.ems.utility.UtilityEntity;
import it.integry.ems.utility.UtilityFile;
import it.integry.ems.utility.UtilityPrinter; import it.integry.ems.utility.UtilityPrinter;
import it.integry.ems_model.base.EntityBase; import it.integry.ems_model.base.EntityBase;
import it.integry.ems_model.config.EmsRestConstants; import it.integry.ems_model.config.EmsRestConstants;
@@ -48,9 +53,7 @@ import it.integry.ems_model.utility.*;
import it.integry.ems_model.utility.dto.ConvertQueryDTO; import it.integry.ems_model.utility.dto.ConvertQueryDTO;
import it.integry.security.cache.SecretKeyCacheComponent; import it.integry.security.cache.SecretKeyCacheComponent;
import it.integry.security.dto.LoginRequestDTO; import it.integry.security.dto.LoginRequestDTO;
import net.schmizz.sshj.SSHClient; import kotlin.Triple;
import net.schmizz.sshj.sftp.SFTPClient;
import net.schmizz.sshj.transport.verification.PromiscuousVerifier;
import org.apache.commons.codec.binary.Base64; import org.apache.commons.codec.binary.Base64;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.text.WordUtils; import org.apache.commons.lang3.text.WordUtils;
@@ -67,9 +70,13 @@ import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.nio.file.Paths;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.*; import java.util.*;
@RestController @RestController
@@ -1407,22 +1414,88 @@ public class SystemController {
@RequestMapping(value = EmsRestConstants.PATH_TEST, method = RequestMethod.POST) @RequestMapping(value = EmsRestConstants.PATH_TEST, method = RequestMethod.POST)
public ServiceRestResponse test(HttpServletRequest request, public ServiceRestResponse test(HttpServletRequest request,
@RequestParam(CommonConstants.PROFILE_DB) String configuration) { @RequestParam(CommonConstants.PROFILE_DB) String configuration) throws Exception {
try {
SSHClient client = new SSHClient();
client.addHostKeyVerifier(new PromiscuousVerifier());
client.connect("edis.chep.com");
client.authPassword("C0094362", "C526342");
SFTPClient sftpClient = client.newSFTPClient(); String sql = "SELECT dtb_doct.num_doc,\n" +
sftpClient.ls("/"); " dtb_doct.data_doc,\n" +
" dtb_doct.cod_anag,\n" +
" dtb_doct.cod_dtip,\n" +
" dtb_doct.ser_doc\n" +
"FROM dtb_doct\n" +
" INNER JOIN dtb_tipi ON dtb_doct.cod_dtip = dtb_tipi.cod_dtip\n" +
"WHERE dtb_doct.data_doc BETWEEN '2023/01/01' AND '2023-12-31'--BETWEEN '2024/01/01' AND GETDATE()\n" +
" AND dtb_doct.gestione = 'V'\n" +
" AND dtb_tipi.tipo_emissione = 'DIRETTA'\n" +
" AND dtb_tipi.segno_qta_scar <> 0\n" +
"ORDER BY dtb_doct.data_doc, dtb_doct.num_doc";
return ServiceRestResponse.createPositiveResponse(); final List<HashMap<String, Object>> documents = UtilityDB.executeSimpleQuery(multiDBTransactionManager.getPrimaryConnection(), sql);
} catch (Exception ex) {
logger.error(request.getRequestURI(), ex); final DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH-mm-ss")
return new ServiceRestResponse(EsitoType.KO, configuration, ex); .withZone(ZoneId.systemDefault());
String tempDir = Paths.get(UtilityDirs.getTempDirectoryPath(), "vgalimenti-export-" + dateTimeFormatter.format(LocalDateTime.now())).toString();
List<RunnableArgsThrowable<Triple<String, String, List<VariazioniDettaglioDTO>>>> calls = new ArrayList<>();
for (HashMap<String, Object> document : documents) {
ArrayList<PairsDTO> params = new ArrayList<>();
String codAnag = UtilityHashMap.getValueIfExists(document, "cod_anag");
String serDoc = UtilityHashMap.getValueIfExists(document, "ser_doc");
Integer numDoc = UtilityHashMap.getValueIfExists(document, "num_doc");
Date dataDoc = UtilityHashMap.getValueIfExists(document, "data_doc");
String codDtip = UtilityHashMap.getValueIfExists(document, "cod_dtip");
params.add(new PairsDTO("cod_anag", codAnag));
params.add(new PairsDTO("ser_doc", serDoc));
params.add(new PairsDTO("num_doc", numDoc));
params.add(new PairsDTO("data_doc", dataDoc));
params.add(new PairsDTO("cod_dtip", codDtip));
JasperDTO jasperDTO = new JasperDTO()
.setParams(params)
.setReportId(20L);
calls.add(() -> {
try {
final byte[] bytes = reportProcessor.processReport(jasperDTO);
UtilityFile.saveFile(tempDir, String.format("%s_%s_%s_%d_%s.pdf",
UtilityDate.formatDate(dataDoc, "yyyyMMdd"),
codDtip,
serDoc,
numDoc,
codAnag
), bytes);
} catch (Exception ex) {
// throw ex;
// logger.error(request.getRequestURI(), "Errore durante la generazione del pdf per il DDT [" +
// "num_doc: " + numDoc + ", " +
// "data_doc: " + dataDoc + ", " +
// "ser_doc: " + serDoc + ", " +
// "cod_anag: " + codAnag + ", " +
// "cod_dtip: " + codDtip + "] " + ex.getMessage());
throw new RuntimeException(new Exception("Errore durante la generazione del pdf per il DDT [" +
"num_doc: " + numDoc + ", " +
"data_doc: " + dataDoc + ", " +
"ser_doc: " + serDoc + ", " +
"cod_anag: " + codAnag + ", " +
"cod_dtip: " + codDtip + "] " + ex.getMessage()));
}
// break;
return null;
});
} }
final ArrayList<Result<Triple<String, String, List<VariazioniDettaglioDTO>>>> results = UtilityThread.executeParallel(calls, 6);
return ServiceRestResponse.createPositiveResponse();
} }
@RequestMapping(value = EmsRestConstants.PATH_STB_EMAIL_CONTENT_FATTURE_PASSIVE_DELETER, method = RequestMethod.POST) @RequestMapping(value = EmsRestConstants.PATH_STB_EMAIL_CONTENT_FATTURE_PASSIVE_DELETER, method = RequestMethod.POST)

View File

@@ -229,7 +229,7 @@ public class ExchangeDocumentImportService {
.forEach(testata -> { .forEach(testata -> {
testata.setUserName(EXCHANGE_USER); testata.setUserName(EXCHANGE_USER);
testata.setUsername(EXCHANGE_USER); testata.setUsername(EXCHANGE_USER);
testata.setUpdProgMaga(false); //testata.setUpdProgMaga(false);
testata.setDtbDocr(righe.parallelStream() testata.setDtbDocr(righe.parallelStream()
.filter(riga -> .filter(riga ->