Finish Hotfix-1
This commit is contained in:
@@ -0,0 +1,97 @@
|
||||
package it.integry.ems.migration.model;
|
||||
|
||||
import it.integry.ems.migration._base.BaseMigration;
|
||||
import it.integry.ems.migration._base.IntegryCustomer;
|
||||
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||
import it.integry.ems_model.entity.AtbForn;
|
||||
import it.integry.ems_model.entity.MtbAart;
|
||||
import it.integry.ems_model.entity.VtbClie;
|
||||
import it.integry.ems_model.entity.WtbUsers;
|
||||
import it.integry.ems_model.types.OperationType;
|
||||
import it.integry.ems_model.utility.UtilityDB;
|
||||
|
||||
import java.sql.PreparedStatement;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class Migration_20240828094457 extends BaseMigration implements MigrationModelInterface {
|
||||
|
||||
@Override
|
||||
public void up() throws Exception {
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
String val = null;
|
||||
if (isCustomer(IntegryCustomer.Tosca)) {
|
||||
val = "01";
|
||||
}
|
||||
createSetup("EDGE_CONN", "SETUP", "COD_ATIP_MP", val, "Codice tipo fornitore materia prima (cassette tbw)", "COD_ATIP");
|
||||
|
||||
if (!isCustomer(IntegryCustomer.Tosca))
|
||||
return;
|
||||
|
||||
String sql = "SELECT * from vtb_clie";
|
||||
List<VtbClie> listaClienti = UtilityDB.executeSimpleQueryDTO(advancedDataSource.getConnection(), sql, VtbClie.class);
|
||||
if (listaClienti.isEmpty())
|
||||
return;
|
||||
|
||||
for (VtbClie clie : listaClienti) {
|
||||
AtbForn forn = new AtbForn();
|
||||
forn
|
||||
.setCodAnag(clie.getCodAnag())
|
||||
.setCodAtip(val)
|
||||
.setOperation(OperationType.INSERT);
|
||||
clie
|
||||
.setOperation(OperationType.DELETE);
|
||||
forn.manageWithParentConnection(advancedDataSource.getConnection(), droolsDataCompleting);
|
||||
clie.manageWithParentConnection(advancedDataSource.getConnection(), droolsDataCompleting);
|
||||
}
|
||||
|
||||
List<String> queryDiacod = new ArrayList<>();
|
||||
//WOOD
|
||||
queryDiacod.add("UPDATE mtb_aart SET diacod = N'934' WHERE cod_mart = N'RPC416AW'");
|
||||
queryDiacod.add("UPDATE mtb_aart SET diacod = N'935' WHERE cod_mart = N'RPC416WW'");
|
||||
queryDiacod.add("UPDATE mtb_aart SET diacod = N'937' WHERE cod_mart = N'RPC4311SW'");
|
||||
queryDiacod.add("UPDATE mtb_aart SET diacod = N'942' WHERE cod_mart = N'RPC611AW'");
|
||||
queryDiacod.add("UPDATE mtb_aart SET diacod = N'943' WHERE cod_mart = N'RPC613AW'");
|
||||
queryDiacod.add("UPDATE mtb_aart SET diacod = N'944' WHERE cod_mart = N'RPC616AW'");
|
||||
queryDiacod.add("UPDATE mtb_aart SET diacod = N'946' WHERE cod_mart = N'RPC619AW'");
|
||||
queryDiacod.add("UPDATE mtb_aart SET diacod = N'947' WHERE cod_mart = N'RPC622AW'");
|
||||
queryDiacod.add("UPDATE mtb_aart SET diacod = N'948' WHERE cod_mart = N'RPC623AW'");
|
||||
//GREEN
|
||||
queryDiacod.add("UPDATE mtb_aart SET diacod = N'936' WHERE cod_mart = N'RPC4311'");
|
||||
queryDiacod.add("UPDATE mtb_aart SET diacod = N'939' WHERE cod_mart = N'RPC4317'");
|
||||
queryDiacod.add("UPDATE mtb_aart SET diacod = N'950' WHERE cod_mart = N'RPC6411'");
|
||||
queryDiacod.add("UPDATE mtb_aart SET diacod = N'952' WHERE cod_mart = N'RPC6416'");
|
||||
queryDiacod.add("UPDATE mtb_aart SET diacod = N'955' WHERE cod_mart = N'RPC6419'");
|
||||
queryDiacod.add("UPDATE mtb_aart SET diacod = N'958' WHERE cod_mart = N'RPC6423'");
|
||||
//MEAT
|
||||
queryDiacod.add("UPDATE mtb_aart SET diacod = N'1501' WHERE cod_mart = N'RPC4317M'");
|
||||
queryDiacod.add("UPDATE mtb_aart SET diacod = N'1850' WHERE cod_mart = N'RPC6411M'");
|
||||
queryDiacod.add("UPDATE mtb_aart SET diacod = N'957' WHERE cod_mart = N'RPC6419M'");
|
||||
|
||||
queryDiacod.add("INSERT INTO mtb_depo_intercode (cod_forn, intercode, cod_mdep, user_name, cod_vdes, email_ordine) VALUES (N'F0000', N'ACC-00048931',N'CE',NULL, N'01', null);");
|
||||
queryDiacod.add("INSERT INTO mtb_depo_intercode (cod_forn, intercode, cod_mdep, user_name, cod_vdes, email_ordine) VALUES (N'F0000', N'ACC-00063682',N'RM',NULL, N'02', null);");
|
||||
queryDiacod.add("INSERT INTO mtb_depo_intercode (cod_forn, intercode, cod_mdep, user_name, cod_vdes, email_ordine) VALUES (N'F0000', N'ACC-00053786',N'MI',NULL, N'03', null);");
|
||||
queryDiacod.add("INSERT INTO mtb_depo_intercode (cod_forn, intercode, cod_mdep, user_name, cod_vdes, email_ordine) VALUES (N'F0000', N'ACC-00060042',N'RG',NULL, N'04', null);");
|
||||
queryDiacod.add("INSERT INTO mtb_depo_intercode (cod_forn, intercode, cod_mdep, user_name, cod_vdes, email_ordine) VALUES (N'F0000', N'ACC-00055852',N'VR',NULL, N'05', null);");
|
||||
queryDiacod.add("INSERT INTO mtb_depo_intercode (cod_forn, intercode, cod_mdep, user_name, cod_vdes, email_ordine) VALUES (N'F0000', N'ACC-00069093',N'BA',NULL, N'06', null);");
|
||||
queryDiacod.add("INSERT INTO mtb_depo_intercode (cod_forn, intercode, cod_mdep, user_name, cod_vdes, email_ordine) VALUES (N'F0000', N'ACC-00069743',N'CZ',NULL, N'07', null);");
|
||||
queryDiacod.add("INSERT INTO mtb_depo_intercode (cod_forn, intercode, cod_mdep, user_name, cod_vdes, email_ordine) VALUES (N'F0000', N'ACC-00063683',N'FC',NULL, N'08', null);");
|
||||
|
||||
|
||||
for (String updateDiacodSql : queryDiacod) {
|
||||
PreparedStatement updateDefaultFlagPS = advancedDataSource.getConnection().prepareStatement(updateDiacodSql);
|
||||
updateDefaultFlagPS.setQueryTimeout(30);
|
||||
updateDefaultFlagPS.executeUpdate();
|
||||
updateDefaultFlagPS.close();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void down() throws Exception {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -6,11 +6,13 @@ import org.apache.poi.openxml4j.opc.OPCPackage;
|
||||
import org.apache.poi.ss.usermodel.*;
|
||||
import org.apache.poi.ss.util.CellUtil;
|
||||
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import java.io.*;
|
||||
import java.sql.Timestamp;
|
||||
import java.util.Date;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
public class UtilityExcel {
|
||||
|
||||
@@ -93,6 +95,10 @@ public class UtilityExcel {
|
||||
*/
|
||||
public static Iterator<Row> readXlsxFile(ImportRequestDTO requestDTO, boolean ignoreHeader) throws Exception {
|
||||
InputStream stream = new ByteArrayInputStream(Base64.decodeBase64(requestDTO.getRawContentB64()));
|
||||
return readXlsxFile(stream,ignoreHeader);
|
||||
}
|
||||
|
||||
public static Iterator<Row> readXlsxFile(InputStream stream, boolean ignoreHeader) throws Exception {
|
||||
|
||||
OPCPackage pkg = OPCPackage.open(stream);
|
||||
Workbook workbook = new XSSFWorkbook(pkg);
|
||||
|
||||
@@ -14,6 +14,7 @@ public class EmsCustomRestConstants {
|
||||
*/
|
||||
public static final String PATH_TOSCA_CLOSE_OPENED_STEPS = "closeOpenedSteps";
|
||||
public static final String PATH_TOSCA_SWITCH_ORDINE_LAVORO = "switchOrdineLavoro";
|
||||
public static final String PATH_TOSCA_IMPORT_SALES_ORDERS = "importOrdiniVendita";
|
||||
public static final String PATH_TOSCA_MIGRATE_UL_TRASFERITE = "migrateUlTrasferite";
|
||||
|
||||
|
||||
@@ -30,6 +31,6 @@ public class EmsCustomRestConstants {
|
||||
/**
|
||||
* ROSSO GARGANO
|
||||
*/
|
||||
public static final String PATH_ROSSO_GARGANO_CAMBIO_LOTTO_PROD = "cambioLottoProd";
|
||||
public static final String PATH_ROSSO_GARGANO_SYNC_CERTIFICATI_VALORIZZATI = "syncCertificatiValorizzati";
|
||||
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@ import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
@RestController
|
||||
@Scope(value = "request")
|
||||
@RequestMapping("rossogargano/mes")
|
||||
@RequestMapping("rossogargano")
|
||||
public class RossoGarganoProductionController {
|
||||
|
||||
private final Logger logger = LogManager.getLogger();
|
||||
@@ -28,12 +28,16 @@ public class RossoGarganoProductionController {
|
||||
public MultiDBTransactionManager multiDBTransactionManager;
|
||||
|
||||
|
||||
@RequestMapping(value = EmsCustomRestConstants.PATH_ROSSO_GARGANO_CAMBIO_LOTTO_PROD, method = RequestMethod.POST)
|
||||
|
||||
@RequestMapping(value = EmsCustomRestConstants.PATH_ROSSO_GARGANO_SYNC_CERTIFICATI_VALORIZZATI, method = RequestMethod.POST)
|
||||
public @ResponseBody
|
||||
ServiceRestResponse cambioLottoProduzione(HttpServletRequest request,
|
||||
@RequestParam(CommonConstants.PROFILE_DB) String profileDB) {
|
||||
ServiceRestResponse syncCertificati(HttpServletRequest request,
|
||||
@RequestParam(CommonConstants.PROFILE_DB) String profileDB,
|
||||
@RequestParam("externalProfileDb") String externalProfileDB)
|
||||
|
||||
{
|
||||
try {
|
||||
rossoGarganoProductionService.cambioLottoProduzione();
|
||||
rossoGarganoProductionService.syncCertificati(externalProfileDB);
|
||||
return ServiceRestResponse.createPositiveResponse();
|
||||
|
||||
} catch (Exception e) {
|
||||
|
||||
@@ -1,12 +1,31 @@
|
||||
package it.integry.ems.customizations.production.service;
|
||||
|
||||
import it.integry.ems.production.dto.ortofrutta.AccettazioneOrtoFruttaDTO;
|
||||
import it.integry.ems.production.service.MesProductionServiceV2;
|
||||
import it.integry.ems.production.service.OrtoFruttaProductionService;
|
||||
import it.integry.ems.service.EntityProcessor;
|
||||
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||
import it.integry.ems.system.exchange.dto.CertificatiValorizzatiDTO;
|
||||
import it.integry.ems.system.exchange.service.ExchangeImportDataManagerService;
|
||||
import it.integry.ems.system.exchange.service.ExchangeImportSchemaManagerService;
|
||||
import it.integry.ems_model.base.EquatableEntityInterface;
|
||||
import it.integry.ems_model.types.OperationType;
|
||||
import it.integry.ems_model.utility.Query;
|
||||
import it.integry.ems_model.utility.UtilityDB;
|
||||
import it.integry.ems_model.utility.UtilityLocalDate;
|
||||
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;
|
||||
|
||||
import java.sql.Connection;
|
||||
import java.time.LocalDate;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service
|
||||
@Scope("request")
|
||||
public class RossoGarganoProductionService {
|
||||
@@ -20,130 +39,340 @@ public class RossoGarganoProductionService {
|
||||
@Autowired
|
||||
private MesProductionServiceV2 mesProductionServiceV2;
|
||||
|
||||
public void cambioLottoProduzione() throws Exception {
|
||||
@Autowired
|
||||
private ExchangeImportSchemaManagerService exchangeImportSchemaManagerService;
|
||||
|
||||
// Date dataOrd = new Date();
|
||||
@Autowired
|
||||
private ExchangeImportDataManagerService exchangeImportDataManagerService;
|
||||
@Autowired
|
||||
private OrtoFruttaProductionService ortoFruttaProductionService;
|
||||
|
||||
private final Logger logger = LogManager.getLogger();
|
||||
|
||||
public void syncCertificati(String externalProfileDb) throws Exception {
|
||||
try (MultiDBTransactionManager externalTransactionManager = new MultiDBTransactionManager(externalProfileDb)) {
|
||||
importaValorizzazioniCertificati(externalTransactionManager);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void importaValorizzazioniCertificati(MultiDBTransactionManager exchangeDb) throws Exception {
|
||||
try {
|
||||
exchangeImportSchemaManagerService.syncSchema(exchangeDb.getPrimaryConnection(), ExchangeImportSchemaManagerService.SchemaType.ValorizzazioneCertificati, true);
|
||||
|
||||
final List<CertificatiValorizzatiDTO> exchangeCertificatiOld = retrieveCertificatiValorizzati(
|
||||
exchangeDb.getPrimaryConnection(),
|
||||
UtilityLocalDate.getNow().minusMonths(4),
|
||||
true, false);
|
||||
|
||||
final List<CertificatiValorizzatiDTO> exchangeCertificatiNew = retrieveCertificatiValorizzati(
|
||||
exchangeDb.getPrimaryConnection(),
|
||||
UtilityLocalDate.getNow().minusMonths(4),
|
||||
false, true);
|
||||
|
||||
List<EquatableEntityInterface> allData = exchangeImportDataManagerService
|
||||
.runSync(CertificatiValorizzatiDTO.class, exchangeCertificatiOld, exchangeCertificatiNew);
|
||||
|
||||
if (allData == null || allData.isEmpty())
|
||||
return;
|
||||
|
||||
allData = allData.stream().filter(x -> !x.getOperation().equals(OperationType.DELETE)).collect(Collectors.toList());
|
||||
|
||||
final Exception[] firstExceptionToThrow = {null};
|
||||
|
||||
final AtomicInteger[] importedCounter = {new AtomicInteger()};
|
||||
|
||||
for (EquatableEntityInterface dataToSave : allData) {
|
||||
CertificatiValorizzatiDTO cert = (CertificatiValorizzatiDTO) dataToSave;
|
||||
try {
|
||||
//
|
||||
// String sql = "SELECT cod_anag FROM " + MtbDepo.ENTITY + " WHERE cod_mdep = " + UtilityDB.valueToString(codMdep);
|
||||
// String codAnag = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
|
||||
//
|
||||
// sql = "SELECT ISNULL(MAX(num_ord), -1) FROM " + DtbOrdt.ENTITY + " " +
|
||||
// "WHERE gestione = 'L' " +
|
||||
// "AND cod_anag = " + UtilityDB.valueToString(codAnag) + " " +
|
||||
// "AND cod_jfas = " + UtilityDB.valueToString(codJfas) + " " +
|
||||
// "AND data_ord = " + UtilityDB.valueToString(dataOrd);
|
||||
//
|
||||
// Integer numOrd = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
|
||||
//
|
||||
// List<DtbOrdSteps> openedSteps = mesProductionServiceV2.getOpenedSteps(codJfas);
|
||||
//
|
||||
// if (openedSteps != null) {
|
||||
// for (DtbOrdSteps dtbOrdStep : openedSteps) {
|
||||
// mesProductionServiceV2.closeStep(dtbOrdStep.getDataOrd(), dtbOrdStep.getNumOrd(), dtbOrdStep.getGestione(), codJfas, dtbOrdStep.getIdStep(), dtbOrdStep.getIdRiga());
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// sql = "SELECT data_ord, num_ord, gestione " +
|
||||
// "FROM dtb_ordt " +
|
||||
// "WHERE num_ord <> " + UtilityDB.valueToString(numOrd) + " and flag_evaso_forzato <> 'S' and flag_evaso_prod <> 'E' AND cod_jfas = " + UtilityDB.valueToString(codJfas);
|
||||
// List<DtbOrdt> dtbOrdtsToClose = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), sql, DtbOrdt.class);
|
||||
//
|
||||
// if (dtbOrdtsToClose != null && !dtbOrdtsToClose.isEmpty()) {
|
||||
// for (DtbOrdt dtbOrdtToClose : dtbOrdtsToClose) {
|
||||
// dtbOrdtToClose
|
||||
// .setFlagEvasoProd("E")
|
||||
// .setFlagEvasoForzato("S");
|
||||
//
|
||||
// dtbOrdtToClose.setOperation(OperationType.UPDATE);
|
||||
// entityProcessor.processEntity(dtbOrdtToClose, false, multiDBTransactionManager);
|
||||
// }
|
||||
// }
|
||||
//
|
||||
//
|
||||
// String sqlLastWorkedOrder = "SELECT TOP 1 note, descrizione_attivita, num_ord, data_ord\n" +
|
||||
// "FROM dtb_ord_steps\n" +
|
||||
// "WHERE gestione = 'L'\n" +
|
||||
// " AND cod_jfas = " + UtilityDB.valueToString(codJfas) +
|
||||
// " ORDER BY data_ord DESC, num_ord DESC, id_riga desc";
|
||||
// final HashMap<String, Object> stringObjectHashMap = UtilityDB.executeSimpleQueryOnlyFirstRow(multiDBTransactionManager.getPrimaryConnection(), sqlLastWorkedOrder);
|
||||
// String lastFormato = UtilityHashMap.getValueIfExists(stringObjectHashMap, "descrizione_attivita");
|
||||
// String lastTurno = UtilityHashMap.getValueIfExists(stringObjectHashMap, "note");
|
||||
//
|
||||
// /*lastFormato = null;
|
||||
// lastFormato = "WOOD";
|
||||
// lastFormato = "GREEN";
|
||||
//
|
||||
//
|
||||
// formato = null;
|
||||
// formato = "WOOD";
|
||||
// formato = "GREEN";*/
|
||||
//
|
||||
// boolean rotateTurno = formato == null || (lastFormato != null && lastFormato.equalsIgnoreCase(formato));
|
||||
//
|
||||
// if (!rotateTurno) lastFormato = formato;
|
||||
//
|
||||
// DtbOrdt dtbOrdtToInsert = new DtbOrdt()
|
||||
// .setCodMdep(codMdep)
|
||||
// .setCodAnag(codAnag)
|
||||
// .setDataOrd(dataOrd)
|
||||
// .setCodJfas(codJfas)
|
||||
// .setGestione("L")
|
||||
// .setQtaProd(BigDecimal.ONE)
|
||||
// .setRapConvProd(BigDecimal.ONE)
|
||||
// .setDtbOrdr(new ArrayList<>())
|
||||
// .setDtbOrdSteps(new ArrayList<>());
|
||||
//
|
||||
//
|
||||
// DtbOrdSteps dtbOrdStep = new DtbOrdSteps()
|
||||
// .setCodJfas(codJfas)
|
||||
// .setDataIniz(dataOrd);
|
||||
// dtbOrdStep.setOperation(OperationType.INSERT);
|
||||
//
|
||||
// Integer idRigaStep = 1;
|
||||
// if (numOrd >= 0) {
|
||||
// sql = "SELECT MAX(id_riga) FROM " + DtbOrdSteps.ENTITY +
|
||||
// " WHERE gestione = 'L'" +
|
||||
// " AND data_ord = " + UtilityDB.valueToString(dataOrd) +
|
||||
// " AND num_ord = " + UtilityDB.valueToString(numOrd);
|
||||
//
|
||||
// idRigaStep = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
|
||||
// dtbOrdStep.setIdStep(idRigaStep);
|
||||
// int lastTurnoInt = Integer.parseInt(lastTurno.split(" ")[1]);
|
||||
//
|
||||
// if (rotateTurno) ++lastTurnoInt;
|
||||
// dtbOrdStep.setNote("Turno " + lastTurnoInt);
|
||||
// } else {
|
||||
// DtbOrdSteps dtbOrdStepZero = new DtbOrdSteps()
|
||||
// .setCodJfas(codJfas)
|
||||
// .setIdStep(0);
|
||||
//
|
||||
// dtbOrdStepZero.setOperation(OperationType.INSERT);
|
||||
// dtbOrdtToInsert.getDtbOrdSteps().add(dtbOrdStepZero);
|
||||
//
|
||||
// dtbOrdStep.setIdStep(1)
|
||||
// .setNote("Turno " + idRigaStep);
|
||||
// }
|
||||
//
|
||||
// dtbOrdStep.setDescrizioneAttivita(lastFormato);
|
||||
//
|
||||
// dtbOrdtToInsert.getDtbOrdSteps().add(dtbOrdStep);
|
||||
// dtbOrdtToInsert.setOperation(OperationType.INSERT_OR_UPDATE);
|
||||
//
|
||||
// if (numOrd >= 0) dtbOrdtToInsert.setNumOrd(numOrd);
|
||||
// else {
|
||||
// DtbOrdr dtbOrdr = new DtbOrdr()
|
||||
// .setCodJfas(codJfas)
|
||||
// .setDataInizProd(dataOrd)
|
||||
// .setQtaOrd(BigDecimal.ONE)
|
||||
// .setNumCnf(BigDecimal.ONE)
|
||||
// .setQtaCnf(BigDecimal.ONE)
|
||||
// .setDescrizione("Cassette da lavare");
|
||||
// dtbOrdr.setOperation(OperationType.INSERT);
|
||||
//
|
||||
// dtbOrdtToInsert.getDtbOrdr().add(dtbOrdr);
|
||||
// }
|
||||
//
|
||||
// entityProcessor.processEntity(dtbOrdtToInsert, multiDBTransactionManager);
|
||||
if (!syncCertificato(cert))
|
||||
continue;
|
||||
updateCertificatoImported(exchangeDb.getPrimaryConnection(), cert, true);
|
||||
multiDBTransactionManager.commitAll();
|
||||
exchangeDb.commitAll();
|
||||
logger.debug("Sincronizzati {} certificati di {}", importedCounter[0].incrementAndGet(), allData.size());
|
||||
} catch (Exception ex) {
|
||||
if (firstExceptionToThrow[0] == null) firstExceptionToThrow[0] = ex;
|
||||
|
||||
logger.error("Errore durante la sincronizzazione del certificato n. " + cert.getNumDoc() + " del " + UtilityDB.valueToString(cert.getDataDoc()), ex);
|
||||
multiDBTransactionManager.rollbackAll();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
if (firstExceptionToThrow[0] != null) throw firstExceptionToThrow[0];
|
||||
} finally {
|
||||
exchangeImportSchemaManagerService.deleteTempTables(exchangeDb.getPrimaryConnection(), ExchangeImportSchemaManagerService.SchemaType.ValorizzazioneCertificati);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private boolean syncCertificato(CertificatiValorizzatiDTO cert) throws Exception {
|
||||
AccettazioneOrtoFruttaDTO original = getOriginalAccettazione(cert);
|
||||
if (original == null)
|
||||
return false;
|
||||
AccettazioneOrtoFruttaDTO dto = original.clone();
|
||||
|
||||
|
||||
dto
|
||||
.setCodAnag(cert.getCodAnag())
|
||||
.setCodVdes(cert.getCodVdes())
|
||||
.setPrezzoFinale(cert.getValUnt())
|
||||
.setValUnt(cert.getValUnt())
|
||||
.setCodVzon(cert.getCodVzon())
|
||||
.setScarto(cert.getScartoKg())
|
||||
.setCnfRese(cert.getCasseRese())
|
||||
.setNumCnf(cert.getCasseScaricate())
|
||||
.setIndiceVariazione(cert.getIndiceVariazione())
|
||||
.setTassoRiduzione(cert.getTassoRiduzione())
|
||||
|
||||
;
|
||||
|
||||
|
||||
dto.setOriginal(original);
|
||||
ortoFruttaProductionService.accettazioneDaRaccolta(dto);
|
||||
return true;
|
||||
}
|
||||
|
||||
private AccettazioneOrtoFruttaDTO getOriginalAccettazione(CertificatiValorizzatiDTO cert) throws Exception {
|
||||
String sql = "WITH cod_mgrp_mp AS (SELECT 'MG' AS value),\n" +
|
||||
" collo AS (SELECT mtb_colt.data_collo,\n" +
|
||||
" mtb_colt.gestione,\n" +
|
||||
" mtb_colt.ser_collo,\n" +
|
||||
" mtb_colt.num_collo,\n" +
|
||||
" mtb_colt.cod_mdep,\n" +
|
||||
" mtb_colt.data_ord,\n" +
|
||||
" mtb_colt.num_ord,\n" +
|
||||
" mtb_colt.posizione,\n" +
|
||||
" mtb_colt.activity_id,\n" +
|
||||
" mtb_colt.cod_jfas,\n" +
|
||||
" mtb_colt.data_vers,\n" +
|
||||
" mtb_colt.ora_iniz_prep,\n" +
|
||||
" mtb_colt.id_pesata,\n" +
|
||||
" mtb_colt.ora_fine_prep,\n" +
|
||||
" mtb_colr.cod_mart,\n" +
|
||||
" mtb_colr.partita_mag,\n" +
|
||||
" mtb_colt.peso_kg AS peso_lordo_camion,\n" +
|
||||
" IIF(mtb_colt.peso_netto_kg = 0, mtb_colt.peso_kg,\n" +
|
||||
" mtb_colt.peso_netto_kg) AS peso_netto_camion,\n" +
|
||||
" IIF(mtb_colt.peso_netto_kg > 0, mtb_colt.peso_kg - mtb_colt.peso_netto_kg, 0) AS tara_camion,\n" +
|
||||
" mtb_colr.peso_lordo_kg AS peso_lordo_pedane,\n" +
|
||||
" mtb_colr.peso_netto_kg AS peso_netto_pedane,\n" +
|
||||
" mtb_colr.peso_lordo_kg - mtb_colr.peso_netto_kg AS tara_pedane,\n" +
|
||||
" mtb_colr.qta_col,\n" +
|
||||
" mtb_colr.qta_cnf,\n" +
|
||||
" mtb_colr.num_cnf,\n" +
|
||||
" mtb_colt.num_doc_provv,\n" +
|
||||
" mtb_colt.data_doc_provv,\n" +
|
||||
" mtb_colt.cod_dtip_provv,\n" +
|
||||
" mtb_colt.ser_doc_provv,\n" +
|
||||
" mtb_colt.data_doc,\n" +
|
||||
" mtb_colt.num_doc,\n" +
|
||||
" mtb_colt.cod_dtip,\n" +
|
||||
" mtb_colt.cod_anag,\n" +
|
||||
" mtb_colt.ser_doc,\n" +
|
||||
" mtb_aart.cod_tcol_UI,\n" +
|
||||
" tcol_art.cod_mart AS cod_mart_bin,\n" +
|
||||
" tcol_art.peso_kg AS tara_cnf_unt,\n" +
|
||||
" mtb_aart.descrizione,\n" +
|
||||
" mtb_aart.unt_mis\n" +
|
||||
" FROM mtb_colt\n" +
|
||||
" INNER JOIN mtb_colr ON mtb_colt.gestione = mtb_colr.gestione AND\n" +
|
||||
" mtb_colt.data_collo = mtb_colr.data_collo AND\n" +
|
||||
" mtb_colt.ser_collo = mtb_colr.ser_collo AND\n" +
|
||||
" mtb_colt.num_collo = mtb_colr.num_collo\n" +
|
||||
" INNER JOIN mtb_aart ON mtb_colr.cod_mart = mtb_aart.cod_mart\n" +
|
||||
" LEFT OUTER JOIN mtb_tcol ON mtb_aart.cod_tcol_UI = mtb_tcol.cod_tcol\n" +
|
||||
" LEFT OUTER JOIN mtb_aart tcol_art ON tcol_art.cod_mart = mtb_tcol.cod_mart\n" +
|
||||
" INNER JOIN cod_mgrp_mp ON mtb_aart.cod_mgrp = cod_mgrp_mp.value\n" +
|
||||
" WHERE mtb_colt.gestione = 'L'\n" +
|
||||
" AND mtb_colt.segno = 1\n" +
|
||||
" AND mtb_colt.data_doc = " + UtilityDB.valueToString(cert.getDataDoc()) + "\n" +
|
||||
" AND mtb_colt.num_doc = " + UtilityDB.valueToString(cert.getNumDoc()) + "),\n" +
|
||||
" carat AS (SELECT mtb_partita_mag_carat.activity_id,\n" +
|
||||
" mtb_partita_mag_carat.cod_mart,\n" +
|
||||
" mtb_partita_mag_carat.partita_mag,\n" +
|
||||
" MIN(CASE WHEN carat = 'Lotto Produttore' THEN val_carat END) AS lottoProduttore,\n" +
|
||||
" MIN(CASE WHEN carat = 'Modalita Raccolta' THEN val_carat END) AS modalitaRaccolta,\n" +
|
||||
" MIN(CASE WHEN carat = 'varieta' THEN val_carat END) AS varieta\n" +
|
||||
" FROM mtb_partita_mag_carat\n" +
|
||||
" INNER JOIN collo ON collo.partita_mag = mtb_partita_mag_carat.partita_mag AND\n" +
|
||||
" collo.cod_mart = mtb_partita_mag_carat.cod_mart AND\n" +
|
||||
" collo.activity_id = mtb_partita_mag_carat.activity_id\n" +
|
||||
" WHERE carat IN ('Lotto Produttore', 'Modalita Raccolta', 'varieta')\n" +
|
||||
" GROUP BY mtb_partita_mag_carat.activity_id, mtb_partita_mag_carat.cod_mart,\n" +
|
||||
" mtb_partita_mag_carat.partita_mag),\n" +
|
||||
" ordRacc AS (SELECT dtb_ordt.data_ord,\n" +
|
||||
" dtb_ordt.num_ord,\n" +
|
||||
" dtb_ordt.gestione,\n" +
|
||||
" dtb_ordt.cod_jfas,\n" +
|
||||
" dtb_ordr.partita_mag AS partita_mag,\n" +
|
||||
" dtb_ordr.riga_ord,\n" +
|
||||
" dtb_ordr.cod_mart AS cod_mart_racc,\n" +
|
||||
" dtb_ordt.partita_mag AS partita_mag_racc,\n" +
|
||||
" dtb_ordr.val_unt AS val_unt_racc\n" +
|
||||
" FROM dtb_ordt\n" +
|
||||
" INNER JOIN collo\n" +
|
||||
" ON collo.data_ord = dtb_ordt.data_ord AND collo.num_ord = dtb_ordt.num_ord AND\n" +
|
||||
" collo.gestione = dtb_ordt.gestione\n" +
|
||||
" INNER JOIN dtb_ordr ON dtb_ordr.data_ord = dtb_ordt.data_ord AND\n" +
|
||||
" dtb_ordr.num_ord = dtb_ordt.num_ord AND\n" +
|
||||
" dtb_ordr.gestione = dtb_ordt.gestione),\n" +
|
||||
" Certificato AS (SELECT dtb_doct.data_doc,\n" +
|
||||
" dtb_doct.ser_doc,\n" +
|
||||
" dtb_doct.num_doc,\n" +
|
||||
" dtb_doct.cod_anag,\n" +
|
||||
" dtb_doct.cod_dtip,\n" +
|
||||
" dtb_doct.targa,\n" +
|
||||
" dtb_doct.targa_rim,\n" +
|
||||
" dtb_doct.cod_vvet,\n" +
|
||||
" dtb_doct.cod_vzon,\n" +
|
||||
" SUM(IIF(dtb_docr.cod_mart = collo.cod_mart_bin AND dtb_docr.qta_doc < 0,\n" +
|
||||
" ABS(dtb_docr.qta_doc),\n" +
|
||||
" 0)) AS cnf_rese\n" +
|
||||
" FROM dtb_doct\n" +
|
||||
" INNER JOIN collo ON collo.cod_anag = dtb_doct.cod_anag AND\n" +
|
||||
" collo.cod_dtip = dtb_doct.cod_dtip AND\n" +
|
||||
" collo.data_doc = dtb_doct.data_doc AND\n" +
|
||||
" collo.ser_doc = dtb_doct.ser_doc AND\n" +
|
||||
" collo.num_doc = dtb_doct.num_doc\n" +
|
||||
" LEFT OUTER 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" +
|
||||
" GROUP BY dtb_doct.data_doc, dtb_doct.ser_doc, dtb_doct.num_doc, dtb_doct.cod_anag,\n" +
|
||||
" dtb_doct.cod_dtip,\n" +
|
||||
" dtb_doct.targa, dtb_doct.targa_rim, dtb_doct.cod_vvet, dtb_doct.cod_vzon),\n" +
|
||||
" ddt AS (SELECT dtb_doct.data_doc,\n" +
|
||||
" dtb_doct.ser_doc,\n" +
|
||||
" dtb_doct.num_doc,\n" +
|
||||
" dtb_doct.cod_anag,\n" +
|
||||
" dtb_doct.cod_dtip,\n" +
|
||||
" dtb_docr.cod_mart,\n" +
|
||||
" dtb_docr.val_unt,\n" +
|
||||
" dtb_docr.val_unt + ((dtb_docr.val_unt * dtb_docr.sconto5 / 100) * -1) AS prezzo_finale,\n" +
|
||||
" dtb_docr.sconto5,\n" +
|
||||
" SUM(IIF(qta_doc > 0, qta_doc, 0)) AS qta_doc,\n" +
|
||||
" SUM(IIF(qta_doc < 0, qta_doc, 0)) AS qta_scarto,\n" +
|
||||
" SUM(qta_doc) AS qta_imp,\n" +
|
||||
" SUM(importo_riga) AS tot_doc\n" +
|
||||
" FROM dtb_doct\n" +
|
||||
" INNER JOIN collo\n" +
|
||||
" ON collo.cod_anag = dtb_doct.cod_anag AND collo.cod_dtip_provv = dtb_doct.cod_dtip AND\n" +
|
||||
" collo.data_doc_provv = dtb_doct.data_doc AND\n" +
|
||||
" collo.ser_doc_provv = dtb_doct.ser_doc AND\n" +
|
||||
" collo.num_doc_provv = dtb_doct.num_doc\n" +
|
||||
" INNER JOIN ordRacc ON collo.data_ord = ordRacc.data_ord AND collo.num_ord = ordRacc.num_ord AND\n" +
|
||||
" collo.gestione = ordRacc.gestione\n" +
|
||||
" LEFT OUTER 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 AND\n" +
|
||||
" dtb_docr.cod_mart = ordRacc.cod_mart_racc\n" +
|
||||
" GROUP BY dtb_docr.val_unt, dtb_docr.cod_mart, dtb_doct.cod_dtip, dtb_doct.cod_anag, dtb_doct.ser_doc,\n" +
|
||||
" dtb_doct.data_doc, dtb_doct.num_doc, dtb_docr.sconto5)\n" +
|
||||
"\n" +
|
||||
"\n" +
|
||||
"SELECT collo.gestione AS gestione,\n" +
|
||||
" collo.data_collo AS dataCollo,\n" +
|
||||
" collo.num_collo AS numCollo,\n" +
|
||||
" collo.ser_collo AS serCollo,\n" +
|
||||
" ddt.cod_anag AS codAnag,\n" +
|
||||
" collo.cod_mdep AS codMdepProd,\n" +
|
||||
" collo.ora_fine_prep AS oraFinePrep,\n" +
|
||||
" collo.ora_iniz_prep AS oraInizPrep,\n" +
|
||||
" collo.id_pesata AS idPesata,\n" +
|
||||
" collo.data_vers AS dataVers,\n" +
|
||||
" collo.data_ord AS dataOrd,\n" +
|
||||
" collo.num_ord AS numOrd,\n" +
|
||||
" ordRacc.riga_ord AS rigaOrd,\n" +
|
||||
" collo.partita_mag AS partitaRaccolta,\n" +
|
||||
" collo.cod_mart AS codMart,\n" +
|
||||
" ordRacc.cod_jfas AS codJfas,\n" +
|
||||
" collo.descrizione AS descrizione,\n" +
|
||||
" collo.unt_mis AS untMis,\n" +
|
||||
" ordRacc.partita_mag AS partitaMag,\n" +
|
||||
" collo.qta_col AS qtaCol,\n" +
|
||||
" collo.num_cnf AS numCnf,\n" +
|
||||
" collo.qta_cnf AS qtaCnf,\n" +
|
||||
" peso_lordo_camion AS pesoLordoCamion,\n" +
|
||||
" peso_netto_pedane + (collo.tara_cnf_unt * collo.num_cnf) AS pesoNettoCamion,\n" +
|
||||
" peso_lordo_camion -\n" +
|
||||
" (peso_netto_pedane + (collo.tara_cnf_unt * collo.num_cnf)) AS pesoTaraCamion,\n" +
|
||||
" peso_netto_pedane + (collo.tara_cnf_unt * collo.num_cnf) AS pesoLordoPedane,\n" +
|
||||
" peso_netto_pedane AS pesoNettoPedane,\n" +
|
||||
" tara_pedane AS pesoTaraPedane,\n" +
|
||||
" collo.num_doc_provv AS numDocProvv,\n" +
|
||||
" collo.data_doc_provv AS dataDocProvv,\n" +
|
||||
" collo.cod_dtip_provv AS codDtipProvv,\n" +
|
||||
" collo.ser_doc_provv AS serDocProvv,\n" +
|
||||
" Certificato.targa AS targa,\n" +
|
||||
" Certificato.targa_rim AS targaRim,\n" +
|
||||
" Certificato.cod_vvet AS codVvet,\n" +
|
||||
" Certificato.cod_vzon AS codVzon,\n" +
|
||||
" collo.data_doc AS dataDoc,\n" +
|
||||
" collo.num_doc AS numDoc,\n" +
|
||||
" collo.cod_dtip AS codDtip,\n" +
|
||||
" ordRacc.val_unt_racc AS prezzoContratto,\n" +
|
||||
" ddt.prezzo_finale AS prezzoFinale,\n" +
|
||||
" Certificato.cnf_rese AS cnfRese,\n" +
|
||||
" ISNULL(collo.tara_cnf_unt, 0) AS taraCnf,\n" +
|
||||
" collo.tara_cnf_unt * collo.num_cnf AS totCnf,\n" +
|
||||
" -1 * (ddt.qta_scarto * 100) / ddt.qta_doc AS tassoRiduzione,\n" +
|
||||
" ddt.sconto5 AS indiceVariazione,\n" +
|
||||
" ddt.qta_scarto * -1 AS scarto,\n" +
|
||||
" ISNULL(ddt.qta_imp, collo.qta_col) AS nettoPagamento,\n" +
|
||||
" ISNULL(ddt.tot_doc,\n" +
|
||||
" (ISNULL(ddt.val_unt, ordRacc.val_unt_racc) * ISNULL(ddt.qta_imp, collo.qta_col))) AS importo,\n" +
|
||||
" IIF(ISNULL(ddt.num_doc, 0) > 0, 1, 0) AS docRegistrato,\n" +
|
||||
" carat.lottoProduttore,\n" +
|
||||
" carat.modalitaRaccolta,\n" +
|
||||
" carat.varieta\n" +
|
||||
"FROM collo\n" +
|
||||
" INNER JOIN ordRacc\n" +
|
||||
" ON collo.data_ord = ordRacc.data_ord AND collo.num_ord = ordRacc.num_ord AND\n" +
|
||||
" collo.gestione = ordRacc.gestione\n" +
|
||||
" LEFT OUTER JOIN Certificato\n" +
|
||||
" ON collo.cod_anag = Certificato.cod_anag AND collo.cod_dtip = Certificato.cod_dtip AND\n" +
|
||||
" collo.data_doc = Certificato.data_doc AND collo.ser_doc = Certificato.ser_doc AND\n" +
|
||||
" collo.num_doc = Certificato.num_doc\n" +
|
||||
" LEFT OUTER JOIN ddt ON collo.cod_anag = ddt.cod_anag AND collo.cod_dtip_provv = ddt.cod_dtip AND\n" +
|
||||
" collo.data_doc_provv = ddt.data_doc AND collo.ser_doc_provv = ddt.ser_doc AND\n" +
|
||||
" collo.num_doc_provv = ddt.num_doc\n" +
|
||||
" , carat";
|
||||
|
||||
return UtilityDB.executeSimpleQueryOnlyFirstRowDTO(multiDBTransactionManager.getPrimaryConnection(), sql, AccettazioneOrtoFruttaDTO.class);
|
||||
}
|
||||
|
||||
private void updateCertificatoImported(Connection connection, CertificatiValorizzatiDTO cert, boolean useTempTable) throws Exception {
|
||||
final HashMap<String, Object> importedKey = new HashMap<String, Object>() {{
|
||||
put("data_doc", cert.getDataDoc());
|
||||
put("num_doc", cert.getNumDoc());
|
||||
}};
|
||||
|
||||
exchangeImportDataManagerService.updateImportedStatus(connection, "valorizzazione_certificati", importedKey, useTempTable);
|
||||
}
|
||||
|
||||
private List<CertificatiValorizzatiDTO> retrieveCertificatiValorizzati(Connection primaryConnection, LocalDate minDate, boolean retrieveAlreadyImported, boolean useTempTable) throws Exception {
|
||||
String valorizzazioneCertificatiOriginalTableName = "valorizzazione_certificati";
|
||||
String valorizzazioneCertificatiTableName = valorizzazioneCertificatiOriginalTableName + (useTempTable ? "_tmp" : "");
|
||||
|
||||
|
||||
if (useTempTable) {
|
||||
UtilityDB.executeStatement(primaryConnection,
|
||||
"INSERT INTO " + valorizzazioneCertificatiTableName +
|
||||
" SELECT * FROM " + valorizzazioneCertificatiOriginalTableName
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
return exchangeImportDataManagerService.retrieveDataFromExchange(primaryConnection, CertificatiValorizzatiDTO.class,
|
||||
valorizzazioneCertificatiTableName, Query.format("cod_mart is not null AND data_doc > {}", minDate), retrieveAlreadyImported);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
package it.integry.ems.customizations.sales.controller;
|
||||
|
||||
import it.integry.common.var.CommonConstants;
|
||||
import it.integry.ems.customizations.constant.EmsCustomRestConstants;
|
||||
import it.integry.ems.customizations.production.service.ToscaProductionService;
|
||||
import it.integry.ems.customizations.sales.service.ToscaSalesService;
|
||||
import it.integry.ems.response.EsitoType;
|
||||
import it.integry.ems.response.ServiceRestResponse;
|
||||
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||
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 org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
@RestController
|
||||
@Scope(value = "request")
|
||||
@RequestMapping("tosca/sales")
|
||||
public class ToscaSalesController {
|
||||
private final Logger logger = LogManager.getLogger();
|
||||
|
||||
@Autowired
|
||||
public ToscaSalesService toscaSalesService;
|
||||
|
||||
@Autowired
|
||||
public MultiDBTransactionManager multiDBTransactionManager;
|
||||
|
||||
|
||||
@RequestMapping(value = EmsCustomRestConstants.PATH_TOSCA_IMPORT_SALES_ORDERS, method = RequestMethod.POST)
|
||||
public @ResponseBody
|
||||
ServiceRestResponse importOrdiniVendita(HttpServletRequest request,
|
||||
@RequestParam(CommonConstants.PROFILE_DB) String profileDB,
|
||||
@RequestPart() MultipartFile file
|
||||
) {
|
||||
try {
|
||||
toscaSalesService.importOrdiniVendita(file);
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,170 @@
|
||||
package it.integry.ems.customizations.sales.dto;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Date;
|
||||
|
||||
public class ToscaOrdineVenditaDTO {
|
||||
private String transactionNumber;
|
||||
private Date dateTransaction;
|
||||
private Long itemNumber;
|
||||
private String itemName;
|
||||
private BigDecimal quantityDelivered;
|
||||
private String depotNumber;
|
||||
private String depotName;
|
||||
private String flowDirection;
|
||||
private Integer flowTypeId;
|
||||
private String flowTypeName;
|
||||
private Long CounterPId;
|
||||
private String CounterPNr;
|
||||
private String CounterPName;
|
||||
|
||||
private String codAnag;
|
||||
private String codMart;
|
||||
private String codMdep;
|
||||
|
||||
|
||||
public String getTransactionNumber() {
|
||||
return transactionNumber;
|
||||
}
|
||||
|
||||
public ToscaOrdineVenditaDTO setTransactionNumber(String transactionNumber) {
|
||||
this.transactionNumber = transactionNumber;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Date getDateTransaction() {
|
||||
return dateTransaction;
|
||||
}
|
||||
|
||||
public ToscaOrdineVenditaDTO setDateTransaction(Date dateTransaction) {
|
||||
this.dateTransaction = dateTransaction;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Long getItemNumber() {
|
||||
return itemNumber;
|
||||
}
|
||||
|
||||
public ToscaOrdineVenditaDTO setItemNumber(Long itemNumber) {
|
||||
this.itemNumber = itemNumber;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getItemName() {
|
||||
return itemName;
|
||||
}
|
||||
|
||||
public ToscaOrdineVenditaDTO setItemName(String itemName) {
|
||||
this.itemName = itemName;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getQuantityDelivered() {
|
||||
return quantityDelivered;
|
||||
}
|
||||
|
||||
public ToscaOrdineVenditaDTO setQuantityDelivered(BigDecimal quantityDelivered) {
|
||||
this.quantityDelivered = quantityDelivered;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getDepotNumber() {
|
||||
return depotNumber;
|
||||
}
|
||||
|
||||
public ToscaOrdineVenditaDTO setDepotNumber(String depotNumber) {
|
||||
this.depotNumber = depotNumber;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getDepotName() {
|
||||
return depotName;
|
||||
}
|
||||
|
||||
public ToscaOrdineVenditaDTO setDepotName(String depotName) {
|
||||
this.depotName = depotName;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getFlowDirection() {
|
||||
return flowDirection;
|
||||
}
|
||||
|
||||
public ToscaOrdineVenditaDTO setFlowDirection(String flowDirection) {
|
||||
this.flowDirection = flowDirection;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Integer getFlowTypeId() {
|
||||
return flowTypeId;
|
||||
}
|
||||
|
||||
public ToscaOrdineVenditaDTO setFlowTypeId(Integer flowTypeId) {
|
||||
this.flowTypeId = flowTypeId;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getFlowTypeName() {
|
||||
return flowTypeName;
|
||||
}
|
||||
|
||||
public ToscaOrdineVenditaDTO setFlowTypeName(String flowTypeName) {
|
||||
this.flowTypeName = flowTypeName;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Long getCounterPId() {
|
||||
return CounterPId;
|
||||
}
|
||||
|
||||
public ToscaOrdineVenditaDTO setCounterPId(Long counterPId) {
|
||||
CounterPId = counterPId;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCounterPNr() {
|
||||
return CounterPNr;
|
||||
}
|
||||
|
||||
public ToscaOrdineVenditaDTO setCounterPNr(String counterPNr) {
|
||||
CounterPNr = counterPNr;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCounterPName() {
|
||||
return CounterPName;
|
||||
}
|
||||
|
||||
public ToscaOrdineVenditaDTO setCounterPName(String counterPName) {
|
||||
CounterPName = counterPName;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCodAnag() {
|
||||
return codAnag;
|
||||
}
|
||||
|
||||
public ToscaOrdineVenditaDTO setCodAnag(String codAnag) {
|
||||
this.codAnag = codAnag;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCodMart() {
|
||||
return codMart;
|
||||
}
|
||||
|
||||
public ToscaOrdineVenditaDTO setCodMart(String codMart) {
|
||||
this.codMart = codMart;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCodMdep() {
|
||||
return codMdep;
|
||||
}
|
||||
|
||||
public ToscaOrdineVenditaDTO setCodMdep(String codMdep) {
|
||||
this.codMdep = codMdep;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,238 @@
|
||||
package it.integry.ems.customizations.sales.service;
|
||||
|
||||
import it.integry.common.var.CommonConstants;
|
||||
import it.integry.ems.customizations.sales.dto.ToscaOrdineVenditaDTO;
|
||||
import it.integry.ems.production.service.MesProductionServiceV2;
|
||||
import it.integry.ems.service.EntityProcessor;
|
||||
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||
import it.integry.ems.utility.UtilityEntity;
|
||||
import it.integry.ems_model.entity.DtbOrdr;
|
||||
import it.integry.ems_model.entity.DtbOrdt;
|
||||
import it.integry.ems_model.entity.GtbAnag;
|
||||
import it.integry.ems_model.entity.VtbClie;
|
||||
import it.integry.ems_model.types.OperationType;
|
||||
import it.integry.ems_model.utility.*;
|
||||
import org.apache.bcel.classfile.Utility;
|
||||
import org.apache.poi.ss.usermodel.Row;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Scope;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service
|
||||
@Scope("request")
|
||||
public class ToscaSalesService {
|
||||
|
||||
@Autowired
|
||||
private MultiDBTransactionManager multiDBTransactionManager;
|
||||
|
||||
@Autowired
|
||||
private EntityProcessor entityProcessor;
|
||||
|
||||
|
||||
public void importOrdiniLavorazione() {
|
||||
|
||||
}
|
||||
|
||||
public void importOrdiniVendita(MultipartFile file) throws Exception {
|
||||
InputStream inputStream = file.getInputStream();
|
||||
|
||||
List<ToscaOrdineVenditaDTO> ordiniDaImportare = parseFile(inputStream);
|
||||
|
||||
List<Date> invalidDates = ordiniDaImportare.stream().map(ToscaOrdineVenditaDTO::getDateTransaction).distinct().filter(d -> d.before(UtilityDate.getStartOfDay(new Date()))).collect(Collectors.toList());
|
||||
if (!UtilityList.isNullOrEmpty(invalidDates))
|
||||
throw new Exception("Caricare l'impegnato per giorni passati non è consentito");
|
||||
|
||||
importAnagrafiche(ordiniDaImportare);
|
||||
|
||||
Map<String, List<ToscaOrdineVenditaDTO>> ordini = ordiniDaImportare.stream().collect(Collectors.groupingBy(ToscaOrdineVenditaDTO::getTransactionNumber));
|
||||
|
||||
for (String transactionNumber : ordini.keySet()) {
|
||||
List<ToscaOrdineVenditaDTO> rows = ordini.get(transactionNumber);
|
||||
importOrdine(transactionNumber, rows);
|
||||
}
|
||||
|
||||
clearOldOrders();
|
||||
|
||||
}
|
||||
|
||||
private List<ToscaOrdineVenditaDTO> parseFile(InputStream inputStream) throws Exception {
|
||||
Iterator<Row> rowIterator = UtilityExcel.readXlsxFile(inputStream, true);
|
||||
List<ToscaOrdineVenditaDTO> ordiniDaImportare = new ArrayList<>();
|
||||
|
||||
|
||||
while (rowIterator.hasNext()) {
|
||||
Row row = rowIterator.next();
|
||||
ToscaOrdineVenditaDTO newDTO = new ToscaOrdineVenditaDTO();
|
||||
newDTO
|
||||
.setTransactionNumber(UtilityExcel.getCellAsString(row, 0))
|
||||
.setDateTransaction(UtilityExcel.getCellAsDate(row, 1, CommonConstants.DATE_FORMAT_DMY_DASHED))
|
||||
.setItemNumber(Long.valueOf(UtilityExcel.getCellAsString(row, 2)))
|
||||
.setItemName(UtilityExcel.getCellAsString(row, 3))
|
||||
.setQuantityDelivered(new BigDecimal(UtilityExcel.getCellAsString(row, 4)))
|
||||
.setDepotNumber(UtilityExcel.getCellAsString(row, 5))
|
||||
.setDepotName(UtilityExcel.getCellAsString(row, 6))
|
||||
.setFlowDirection(UtilityExcel.getCellAsString(row, 7))
|
||||
.setFlowTypeId(Integer.valueOf(UtilityExcel.getCellAsString(row, 8)))
|
||||
.setFlowTypeName(UtilityExcel.getCellAsString(row, 9))
|
||||
.setCounterPId(Long.valueOf(UtilityExcel.getCellAsString(row, 10)))
|
||||
.setCounterPNr(UtilityExcel.getCellAsString(row, 11))
|
||||
.setCounterPName(UtilityExcel.getCellAsString(row, 12))
|
||||
.setCodAnag(findCodAnagFromDiacod(newDTO.getCounterPNr()))
|
||||
.setCodMart(findCodMartFromDiacod(String.valueOf(newDTO.getItemNumber())))
|
||||
.setCodMdep(findCodMdepFromDiacod(newDTO.getDepotNumber()))
|
||||
;
|
||||
|
||||
ordiniDaImportare.add(newDTO);
|
||||
}
|
||||
return ordiniDaImportare;
|
||||
}
|
||||
|
||||
private String findCodMdepFromDiacod(String diacod) throws Exception {
|
||||
String sql = "select cod_mdep from mtb_depo_intercode where intercode = " + UtilityDB.valueToString(diacod);
|
||||
return UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
|
||||
}
|
||||
|
||||
private String findCodMartFromDiacod(String diacod) throws Exception {
|
||||
String sql = "SELECT cod_mart from mtb_aart where diacod = " + UtilityDB.valueToString(diacod);
|
||||
return UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
|
||||
}
|
||||
|
||||
private String findCodAnagFromDiacod(String diacod) throws Exception {
|
||||
|
||||
String sql = "SELECT gtb_anag.cod_anag from gtb_anag inner join vtb_clie on vtb_clie.cod_anag = gtb_anag.cod_anag where diacod = " + UtilityDB.valueToString(diacod);
|
||||
return UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
|
||||
}
|
||||
|
||||
private void importOrdine(String transactionNumber, List<ToscaOrdineVenditaDTO> rows) throws Exception {
|
||||
ToscaOrdineVenditaDTO testata = rows.get(0);
|
||||
DtbOrdt ordine = getOrdineVendita(transactionNumber, testata.getCodMdep());
|
||||
ordine.setCodAnag(testata.getCodAnag())
|
||||
.setCodMdep(testata.getCodMdep());
|
||||
|
||||
for (ToscaOrdineVenditaDTO row : rows) {
|
||||
DtbOrdr dbRow = ordine.getDtbOrdr().stream().filter(x -> x.getCodMart().equalsIgnoreCase(row.getCodMart())).findFirst().orElse(new DtbOrdr());
|
||||
dbRow
|
||||
.setFlagEvasoForzato("N")
|
||||
.setCodMart(row.getCodMart())
|
||||
.setQtaOrd(row.getQuantityDelivered().abs())
|
||||
.setDataCons(row.getDateTransaction())
|
||||
.setOperation(OperationType.INSERT_OR_UPDATE);
|
||||
if (dbRow.getRigaOrd() == null) {
|
||||
ordine.getDtbOrdr().add(dbRow);
|
||||
}
|
||||
}
|
||||
|
||||
ordine.getDtbOrdr().stream().filter(x -> x.getOperation() == OperationType.NO_OP).forEach(x -> x.setFlagEvasoForzato("S").setOperation(OperationType.UPDATE));
|
||||
entityProcessor.processEntity(ordine, true, multiDBTransactionManager);
|
||||
|
||||
|
||||
}
|
||||
|
||||
private DtbOrdt getOrdineVendita(String transactionNumber, String codMdep) throws Exception {
|
||||
String sql = "SELECT * from dtb_ordt where gestione = 'V' and rif_ord = " + UtilityDB.valueToString(transactionNumber) + " AND cod_mdep = " + UtilityDB.valueToString(codMdep);
|
||||
DtbOrdt ordine = UtilityDB.executeSimpleQueryOnlyFirstRowDTO(multiDBTransactionManager.getPrimaryConnection(), sql, DtbOrdt.class);
|
||||
|
||||
if (ordine == null) {
|
||||
ordine = new DtbOrdt();
|
||||
ordine.setDataOrd(new Date())
|
||||
.setGestione("V");
|
||||
} else {
|
||||
List<DtbOrdr> orderRows = getRigheOrdine(ordine);
|
||||
orderRows.forEach(r -> r.setOperation(OperationType.NO_OP));
|
||||
ordine.setDtbOrdr(orderRows);
|
||||
}
|
||||
|
||||
ordine
|
||||
.setRifOrd(transactionNumber)
|
||||
.setOperation(OperationType.INSERT_OR_UPDATE);
|
||||
|
||||
return ordine;
|
||||
}
|
||||
|
||||
private List<DtbOrdr> getRigheOrdine(DtbOrdt ordine) throws Exception {
|
||||
String sql = "SELECT * from dtb_ordr where data_ord = " + UtilityDB.valueToString(ordine.getDataOrd()) + " AND num_ord = " + UtilityDB.valueToString(ordine.getNumOrd()) + " AND gestione = " + UtilityDB.valueToString(ordine.getGestione());
|
||||
return UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), sql, DtbOrdr.class);
|
||||
}
|
||||
|
||||
private void importAnagrafiche(List<ToscaOrdineVenditaDTO> ordini) throws Exception {
|
||||
String sql = "SELECT gtb_anag.* from gtb_anag inner join vtb_clie on vtb_clie.cod_anag = gtb_anag.cod_anag where diacod in (" + UtilityDB.listValueToString(ordini.stream().map(ToscaOrdineVenditaDTO::getCounterPNr).collect(Collectors.toList())) + ") ";
|
||||
List<GtbAnag> clientiEsistenti = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), sql, GtbAnag.class);
|
||||
if (UtilityList.isNullOrEmpty(clientiEsistenti))
|
||||
clientiEsistenti = new ArrayList<>();
|
||||
|
||||
for (ToscaOrdineVenditaDTO order : ordini) {
|
||||
if (!UtilityString.isNullOrEmpty(order.getCodAnag()))
|
||||
continue;
|
||||
|
||||
String codAnag = clientiEsistenti.stream().filter(x -> x.getDiacod().equalsIgnoreCase(order.getCounterPNr())).findFirst().orElse(new GtbAnag()).getCodAnag();
|
||||
if (!UtilityString.isNullOrEmpty(codAnag)) {
|
||||
order.setCodAnag(codAnag);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
String ragSoc = order.getCounterPName();
|
||||
GtbAnag gtbAnag = new GtbAnag();
|
||||
gtbAnag
|
||||
.setPrecode("C")
|
||||
.setRagSoc(ragSoc.length() >= 40 ? ragSoc.substring(0, 39) : ragSoc)
|
||||
.setNote(ragSoc)
|
||||
.setDiacod(order.getCounterPNr())
|
||||
.setOperation(OperationType.INSERT);
|
||||
|
||||
VtbClie clie = new VtbClie();
|
||||
clie.setOperation(OperationType.INSERT);
|
||||
gtbAnag.setVtbClie(clie);
|
||||
entityProcessor.processEntity(gtbAnag, true, multiDBTransactionManager);
|
||||
order.setCodAnag(gtbAnag.getCodAnag());
|
||||
clientiEsistenti.add(gtbAnag);
|
||||
}
|
||||
}
|
||||
|
||||
private void clearOldOrders() throws Exception {
|
||||
|
||||
String sql = "SELECT dtb_ordr.*\n" +
|
||||
"FROM dtb_ordt\n" +
|
||||
" INNER JOIN dtb_ordr ON dtb_ordr.gestione = dtb_ordt.gestione\n" +
|
||||
" AND dtb_ordr.data_ord = dtb_ordt.data_ord\n" +
|
||||
" AND dtb_ordr.num_ord = dtb_ordt.num_ord\n" +
|
||||
"where dtb_ordt.gestione = 'V'\n" +
|
||||
"and dtb_ordr.flag_evaso_forzato = 'N' and data_cons < CAST (getdate() as date);\n" +
|
||||
"\n";
|
||||
|
||||
List<DtbOrdr> righeOrdiniDaAnnullare = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), sql, DtbOrdr.class);
|
||||
|
||||
if (UtilityList.isNullOrEmpty(righeOrdiniDaAnnullare))
|
||||
return;
|
||||
|
||||
List<DtbOrdt> ordiniDaAnnullare = new ArrayList<>();
|
||||
|
||||
for (DtbOrdr row : righeOrdiniDaAnnullare) {
|
||||
DtbOrdt ord = ordiniDaAnnullare.stream().filter(x -> x.getDataOrd() == row.getDataOrd() && Objects.equals(x.getNumOrd(), row.getNumOrd()) && Objects.equals(x.getGestione(), row.getGestione())).findFirst().orElse(new DtbOrdt());
|
||||
row
|
||||
.setFlagEvasoForzato("S")
|
||||
.setOperation(OperationType.UPDATE)
|
||||
;
|
||||
ord.setDataOrd(row.getDataOrd())
|
||||
.setGestione(row.getGestione())
|
||||
.setNumOrd(row.getNumOrd())
|
||||
.getDtbOrdr().add(row);
|
||||
if (ord.getOperation() == null) {
|
||||
ord.setOperation(OperationType.UPDATE);
|
||||
ordiniDaAnnullare.add(ord);
|
||||
}
|
||||
}
|
||||
|
||||
entityProcessor.processEntityList(ordiniDaAnnullare, true);
|
||||
UtilityEntity.throwEntitiesException(ordiniDaAnnullare);
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -3,6 +3,7 @@ package it.integry.ems.production.controller;
|
||||
import it.integry.ems.production.dto.ortofrutta.AccettazioneOrtoFruttaDTO;
|
||||
import it.integry.ems.production.service.OrtoFruttaProductionService;
|
||||
import it.integry.ems.response.ServiceRestResponse;
|
||||
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -21,6 +22,8 @@ public class OrtoFruttaController {
|
||||
|
||||
@Autowired
|
||||
private OrtoFruttaProductionService ortoFruttaProductionService;
|
||||
@Autowired
|
||||
private MultiDBTransactionManager multiDBTransactionManager;
|
||||
|
||||
|
||||
@RequestMapping(value = "/entrata/salva", method = RequestMethod.POST)
|
||||
|
||||
@@ -1,74 +1,140 @@
|
||||
package it.integry.ems.production.dto.ortofrutta;
|
||||
|
||||
import it.integry.ems_model.annotation.SqlField;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
public class AccettazioneOrtoFruttaDTO {
|
||||
public class AccettazioneOrtoFruttaDTO implements Cloneable {
|
||||
|
||||
//dati collo
|
||||
@SqlField("gestione")
|
||||
private String gestione;
|
||||
@SqlField("dataCollo")
|
||||
private LocalDate dataCollo;
|
||||
@SqlField("numCollo")
|
||||
private Integer numCollo;
|
||||
@SqlField("serCollo")
|
||||
private String serCollo;
|
||||
@SqlField("oraFinePrep")
|
||||
private LocalDateTime oraFinePrep;
|
||||
@SqlField("oraInizPrep")
|
||||
private LocalDateTime oraInizPrep;
|
||||
@SqlField("idPesata")
|
||||
private String idPesata;
|
||||
@SqlField("dataVers")
|
||||
private LocalDateTime dataVers;
|
||||
@SqlField("dataIns")
|
||||
private LocalDateTime dataIns;
|
||||
@SqlField("dataOrd")
|
||||
private LocalDate dataOrd;
|
||||
@SqlField("numOrd")
|
||||
private Integer numOrd;
|
||||
@SqlField("rigaOrd")
|
||||
private Integer rigaOrd;
|
||||
@SqlField("partitaRaccolta")
|
||||
private String partitaRaccolta;
|
||||
@SqlField("codMart")
|
||||
private String codMart;
|
||||
@SqlField("codJfas")
|
||||
private String codJfas;
|
||||
@SqlField("descrizione")
|
||||
private String descrizione;
|
||||
@SqlField("untMis")
|
||||
private String untMis;
|
||||
@SqlField("partitaMag")
|
||||
private String partitaMag;
|
||||
@SqlField("qtaCol")
|
||||
private BigDecimal qtaCol;
|
||||
@SqlField("numCnf")
|
||||
private BigDecimal numCnf;
|
||||
@SqlField("qtaCnf")
|
||||
private BigDecimal qtaCnf;
|
||||
@SqlField("ragSocProduttore")
|
||||
private String ragSocProduttore;
|
||||
@SqlField("partIvaProduttore")
|
||||
private String partIvaProduttore;
|
||||
@SqlField("varieta")
|
||||
private String varieta;
|
||||
@SqlField("ragSocOp")
|
||||
private String ragSocOp;
|
||||
@SqlField("partIvaOp")
|
||||
private String partIvaOp;
|
||||
@SqlField("ragSocCoop")
|
||||
private String ragSocCoop;
|
||||
@SqlField("partIvaCoop")
|
||||
private String partIvaCoop;
|
||||
@SqlField("numDocProvv")
|
||||
private Integer numDocProvv;
|
||||
@SqlField("serDocProvv")
|
||||
private String serDocProvv;
|
||||
@SqlField("dataDocProvv")
|
||||
private LocalDate dataDocProvv;
|
||||
@SqlField("targa")
|
||||
private String targa;
|
||||
@SqlField("targaRim")
|
||||
private String targaRim;
|
||||
@SqlField("codVvet")
|
||||
private String codVvet;
|
||||
@SqlField("codVdes")
|
||||
private String codVdes;
|
||||
@SqlField("codAnag")
|
||||
private String codAnag;
|
||||
@SqlField("codMdep")
|
||||
private String codMdep;
|
||||
@SqlField("codMdepProd")
|
||||
private String codMdepProd;
|
||||
@SqlField("prezzoContratto")
|
||||
private BigDecimal prezzoContratto;
|
||||
@SqlField("NumericTextBox")
|
||||
private BigDecimal NumericTextBox;
|
||||
@SqlField("prezzoFinale")
|
||||
private BigDecimal prezzoFinale;
|
||||
@SqlField("cnfRese")
|
||||
private BigDecimal cnfRese;
|
||||
@SqlField("taraCnf")
|
||||
private BigDecimal taraCnf;
|
||||
@SqlField("totCnf")
|
||||
private BigDecimal totCnf;
|
||||
@SqlField("tassoRiduzione")
|
||||
private BigDecimal tassoRiduzione;
|
||||
@SqlField("scarto")
|
||||
private BigDecimal scarto;
|
||||
@SqlField("nettoPagamento")
|
||||
private BigDecimal nettoPagamento;
|
||||
@SqlField("importo")
|
||||
private BigDecimal importo;
|
||||
@SqlField("pesoLordoCamion")
|
||||
private BigDecimal pesoLordoCamion;
|
||||
@SqlField("pesoNettoCamion")
|
||||
private BigDecimal pesoNettoCamion;
|
||||
@SqlField("pesoTaraCamion")
|
||||
private BigDecimal pesoTaraCamion;
|
||||
@SqlField("pesoLordoPedane")
|
||||
private BigDecimal pesoLordoPedane;
|
||||
@SqlField("pesoNettoPedane")
|
||||
private BigDecimal pesoNettoPedane;
|
||||
@SqlField("codDtipProvv")
|
||||
private String codDtipProvv;
|
||||
@SqlField("dataDoc")
|
||||
private LocalDate dataDoc;
|
||||
@SqlField("numDoc")
|
||||
private Integer numDoc;
|
||||
@SqlField("codDtip")
|
||||
private String codDtip;
|
||||
@SqlField("valUnt")
|
||||
private BigDecimal valUnt;
|
||||
@SqlField("original")
|
||||
private AccettazioneOrtoFruttaDTO original;
|
||||
@SqlField("lottoProduttore")
|
||||
private String lottoProduttore;
|
||||
@SqlField("modalitaRaccolta")
|
||||
private String modalitaRaccolta;
|
||||
@SqlField("codVzon")
|
||||
private String codVzon;
|
||||
@SqlField("indiceVariazione")
|
||||
private BigDecimal indiceVariazione;
|
||||
|
||||
|
||||
public String getGestione() {
|
||||
@@ -603,23 +669,23 @@ public class AccettazioneOrtoFruttaDTO {
|
||||
}
|
||||
|
||||
public boolean isCertificatoEdited() {
|
||||
if (this.original == null )
|
||||
if (this.original == null)
|
||||
return false;
|
||||
|
||||
return ! this.original.getCodAnag().equalsIgnoreCase(this.codAnag)
|
||||
|| ! this.original.getCodDtip().equalsIgnoreCase(this.codDtip);
|
||||
return !this.original.getCodAnag().equalsIgnoreCase(this.codAnag)
|
||||
|| !this.original.getCodDtip().equalsIgnoreCase(this.codDtip);
|
||||
|
||||
}
|
||||
|
||||
public boolean isDDTEdited() {
|
||||
if (this.original == null )
|
||||
if (this.original == null)
|
||||
return false;
|
||||
|
||||
return ! this.original.getCodAnag().equalsIgnoreCase(this.codAnag)
|
||||
|| ! this.original.getCodDtipProvv().equalsIgnoreCase(this.codDtipProvv)
|
||||
|| ! (this.original.getNumDocProvv().equals(this.numDocProvv))
|
||||
|| ! this.original.getSerDocProvv().equalsIgnoreCase(this.serDocProvv)
|
||||
|| ! (this.original.getDataDocProvv().isEqual(this.dataDocProvv));
|
||||
return !this.original.getCodAnag().equalsIgnoreCase(this.codAnag)
|
||||
|| !this.original.getCodDtipProvv().equalsIgnoreCase(this.codDtipProvv)
|
||||
|| !(this.original.getNumDocProvv().equals(this.numDocProvv))
|
||||
|| !this.original.getSerDocProvv().equalsIgnoreCase(this.serDocProvv)
|
||||
|| !(this.original.getDataDocProvv().isEqual(this.dataDocProvv));
|
||||
|
||||
}
|
||||
|
||||
@@ -649,4 +715,22 @@ public class AccettazioneOrtoFruttaDTO {
|
||||
this.codVzon = codVzon;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public AccettazioneOrtoFruttaDTO clone() {
|
||||
try {
|
||||
return (AccettazioneOrtoFruttaDTO) super.clone();
|
||||
} catch (CloneNotSupportedException e) {
|
||||
throw new AssertionError();
|
||||
}
|
||||
}
|
||||
|
||||
public BigDecimal getIndiceVariazione() {
|
||||
return indiceVariazione;
|
||||
}
|
||||
|
||||
public AccettazioneOrtoFruttaDTO setIndiceVariazione(BigDecimal indiceVariazione) {
|
||||
this.indiceVariazione = indiceVariazione;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -149,7 +149,7 @@ public class OrtoFruttaProductionService {
|
||||
if (dto.getOriginal() != null) {
|
||||
datiPartita = UtilityDB.executeSimpleQueryDTO(
|
||||
multiDBTransactionManager.getPrimaryConnection(),
|
||||
Query.format("SELECT * from mtb_partita_mag_carat where cod_mart = {} and partita_mag = {} and carat in ({},{},{})", dto.getCodMart(), dto.getPartitaRaccolta(), caratLottoProd, caratModalitaRaccolta,caratVarietaRaccolta),
|
||||
Query.format("SELECT * from mtb_partita_mag_carat where cod_mart = {} and partita_mag = {} and carat in ({},{},{})", dto.getCodMart(), dto.getPartitaRaccolta(), caratLottoProd, caratModalitaRaccolta, caratVarietaRaccolta),
|
||||
MtbPartitaMagCarat.class);
|
||||
if (!UtilityList.isNullOrEmpty(datiPartita)) {
|
||||
if (!UtilityString.streNull(dto.getOriginal().getLottoProduttore()).equalsIgnoreCase(UtilityString.streNull(dto.getLottoProduttore()))) {
|
||||
@@ -205,7 +205,7 @@ public class OrtoFruttaProductionService {
|
||||
"SETUP",
|
||||
"SER_DOC_CAR");
|
||||
|
||||
|
||||
//todo: caso da gestire - cambio fornitore del documento
|
||||
if (dto.getOriginal() != null && dto.isCertificatoEdited()) {
|
||||
DtbDoct oldDoc = new DtbDoct();
|
||||
oldDoc
|
||||
@@ -378,7 +378,7 @@ public class OrtoFruttaProductionService {
|
||||
|
||||
|
||||
//alla creazione della bolla (DDT) creare documento di acquisto e scarico di materiale alla pianta
|
||||
if (!UtilityBigDecimal.isNullOrZero(dto.getQtaCol()) && !UtilityBigDecimal.isNullOrZero(dto.getPrezzoFinale())) {
|
||||
if (!UtilityBigDecimal.isNullOrZero(dto.getQtaCol()) && !UtilityBigDecimal.isNullOrZero(dto.getValUnt())) {
|
||||
DtbOrdt ordAcq = getOrdineAcquistoCollegato(dto.getGestione(), UtilityLocalDate.localDateToDate(dto.getDataOrd()), dto.getNumOrd());
|
||||
DtbDoct ddt = generaDdtAcq(dto, ordAcq, activityId);
|
||||
DtbDoct slav = generaScaricoLav(dto, ordAcq, activityId);
|
||||
@@ -464,6 +464,10 @@ public class OrtoFruttaProductionService {
|
||||
.setCodMdep(ordAcq.getCodMdep())
|
||||
;
|
||||
|
||||
BigDecimal qtaScarto = dto.getQtaCol().multiply(dto.getTassoRiduzione()).divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_UP);
|
||||
BigDecimal qtaCnf = dto.getQtaCol().divide(dto.getNumCnf(), 3, RoundingMode.HALF_UP);
|
||||
BigDecimal qtaDoc = dto.getQtaCol().subtract(qtaScarto);
|
||||
BigDecimal numCnf = qtaDoc.divide(qtaCnf, 2, RoundingMode.HALF_UP);
|
||||
DtbDocr row = new DtbDocr();
|
||||
row
|
||||
.setCodMart(ordAcq.getDtbOrdr().get(0).getCodMart())
|
||||
@@ -471,8 +475,11 @@ public class OrtoFruttaProductionService {
|
||||
.setDataOrd(UtilityLocalDate.localDateToDate(dto.getDataOrd()))
|
||||
.setNumOrd(dto.getNumOrd())
|
||||
.setRigaOrd(rigaOrd)
|
||||
.setQtaDoc(dto.getQtaCol())
|
||||
.setValUnt(dto.getPrezzoFinale())
|
||||
.setQtaDoc(qtaDoc)
|
||||
.setNumCnf(numCnf)
|
||||
.setQtaCnf(qtaCnf)
|
||||
.setValUnt(dto.getValUnt())
|
||||
.setSconto5(dto.getIndiceVariazione().negate())
|
||||
.setOperation(OperationType.INSERT);
|
||||
|
||||
slav.getDtbDocr().add(row);
|
||||
@@ -528,7 +535,7 @@ public class OrtoFruttaProductionService {
|
||||
.setAnnotazioni(String.format("CERT N. %d", dto.getNumDoc()))
|
||||
|
||||
;
|
||||
|
||||
BigDecimal qtaCnf = dto.getQtaCol().divide(dto.getNumCnf(), 3, RoundingMode.HALF_UP);
|
||||
DtbDocr rowPlus = new DtbDocr();
|
||||
rowPlus
|
||||
.setCodMart(ordAcq.getDtbOrdr().get(0).getCodMart())
|
||||
@@ -538,15 +545,33 @@ public class OrtoFruttaProductionService {
|
||||
.setRigaOrd(ordAcq.getDtbOrdr().get(0).getRigaOrd())
|
||||
.setQtaDoc(dto.getQtaCol())
|
||||
.setNumCnf(dto.getNumCnf())
|
||||
.setQtaCnf(dto.getQtaCol().divide(dto.getNumCnf(), 3, RoundingMode.HALF_UP))
|
||||
.setQtaCnf(qtaCnf)
|
||||
.setPesoLordo(dto.getPesoLordoPedane())
|
||||
.setValUnt(dto.getPrezzoFinale())
|
||||
.setSconto8(dto.getTassoRiduzione())
|
||||
.setValUnt(dto.getValUnt())
|
||||
.setSconto5(dto.getIndiceVariazione().negate())
|
||||
.setOperation(OperationType.INSERT);
|
||||
|
||||
if (!UtilityBigDecimal.isNullOrZero(dto.getTassoRiduzione()))
|
||||
rowPlus.setNote("SCARTO: " + dto.getTassoRiduzione() + "%");
|
||||
ddt.getDtbDocr().add(rowPlus);
|
||||
if (!UtilityBigDecimal.isNullOrZero(dto.getTassoRiduzione())) {
|
||||
DtbDocr rowScarto = new DtbDocr();
|
||||
BigDecimal qtaDoc = dto.getQtaCol().multiply(dto.getTassoRiduzione()).divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_UP);
|
||||
BigDecimal numCnf = qtaDoc.divide(qtaCnf, 2, RoundingMode.HALF_UP);
|
||||
rowScarto
|
||||
.setCodMart(ordAcq.getDtbOrdr().get(0).getCodMart())
|
||||
.setPartitaMag(ordAcq.getDtbOrdr().get(0).getPartitaMag())
|
||||
.setDataOrd(ordAcq.getDataOrd())
|
||||
.setNumOrd(ordAcq.getNumOrd())
|
||||
.setRigaOrd(ordAcq.getDtbOrdr().get(0).getRigaOrd())
|
||||
.setQtaDoc(qtaDoc.negate())
|
||||
.setNumCnf(numCnf.negate())
|
||||
.setQtaCnf(qtaCnf)
|
||||
.setPesoLordo(dto.getPesoLordoPedane())
|
||||
.setValUnt(dto.getValUnt())
|
||||
.setSconto5(dto.getIndiceVariazione().negate())
|
||||
.setNote("SCARTO: " + dto.getTassoRiduzione() + "%")
|
||||
.setOperation(OperationType.INSERT);
|
||||
|
||||
ddt.getDtbDocr().add(rowScarto);
|
||||
}
|
||||
entityProcessor.processEntity(ddt, true, multiDBTransactionManager);
|
||||
UtilityEntity.throwEntityException(ddt);
|
||||
return ddt;
|
||||
|
||||
@@ -11,6 +11,7 @@ import it.integry.ems.service.EntityProcessor;
|
||||
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||
import it.integry.ems_model.base.EntityBase;
|
||||
import it.integry.ems_model.config.EmsRestConstants;
|
||||
import it.integry.ems_model.entity.DtbDoct;
|
||||
import it.integry.ems_model.entity.MtbColr;
|
||||
import it.integry.ems_model.entity.MtbColt;
|
||||
import it.integry.ems_model.service.SetupGest;
|
||||
@@ -201,6 +202,7 @@ public class WMSMagazzinoBufferService {
|
||||
.setCodMdep(mtbColtToUpdate.getCodMdep())
|
||||
.setSaveDoc(true)
|
||||
.setColli(Collections.singletonList(mtbColtToUpdate));
|
||||
loadColliService.createDocFromColli(multiDBTransactionManager, loadColliDTO);
|
||||
DtbDoct doc = loadColliService.createDocFromColli(multiDBTransactionManager, loadColliDTO);
|
||||
entityProcessor.processEntity(doc,true,multiDBTransactionManager);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,289 @@
|
||||
package it.integry.ems.system.exchange.dto;
|
||||
|
||||
import it.integry.ems_model.annotation.SqlField;
|
||||
import it.integry.ems_model.base.EntityBase;
|
||||
import it.integry.ems_model.base.EntityInterface;
|
||||
import it.integry.ems_model.base.EntityPropertyHolder;
|
||||
import it.integry.ems_model.base.EquatableEntityInterface;
|
||||
import it.integry.ems_model.exception.EntityException;
|
||||
import it.integry.ems_model.rulescompleting.DroolsDataCompleting;
|
||||
import it.integry.ems_model.types.OperationType;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.math.BigDecimal;
|
||||
import java.sql.Connection;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
public class CertificatiValorizzatiDTO extends EntityBase implements EquatableEntityInterface<CertificatiValorizzatiDTO> {
|
||||
|
||||
private final static Logger logger = LogManager.getLogger();
|
||||
|
||||
@SqlField("data_doc")
|
||||
private LocalDate dataDoc;
|
||||
@SqlField("num_doc")
|
||||
private Long numDoc;
|
||||
@SqlField("id_pesata")
|
||||
private String idPesata;
|
||||
@SqlField("data_vers")
|
||||
private LocalDateTime dataVers;
|
||||
@SqlField("cod_mart")
|
||||
private String codMart;
|
||||
@SqlField("varieta")
|
||||
private String varieta;
|
||||
@SqlField("targa")
|
||||
private String targa;
|
||||
@SqlField("targa_rim")
|
||||
private String targaRim;
|
||||
@SqlField("cod_vvet")
|
||||
private String codVvet;
|
||||
@SqlField("cod_vdes")
|
||||
private String codVdes;
|
||||
@SqlField("cod_anag")
|
||||
private String codAnag;
|
||||
@SqlField("val_unt")
|
||||
private BigDecimal valUnt;
|
||||
@SqlField("lotto_produttore")
|
||||
private String lottoProduttore;
|
||||
@SqlField("cod_vzon")
|
||||
private String codVzon;
|
||||
@SqlField("peso_lordo_kg")
|
||||
private BigDecimal pesoLordoKg;
|
||||
@SqlField("peso_netto_kg")
|
||||
private BigDecimal pesoNettoKg;
|
||||
@SqlField("scarto_kg")
|
||||
private BigDecimal scartoKg;
|
||||
@SqlField("casse_scaricate")
|
||||
private BigDecimal casseScaricate;
|
||||
@SqlField("casse_rese")
|
||||
private BigDecimal casseRese;
|
||||
@SqlField("indice_variazione")
|
||||
private BigDecimal indiceVariazione;
|
||||
@SqlField("tasso_riduzione")
|
||||
private BigDecimal tassoRiduzione;
|
||||
|
||||
public CertificatiValorizzatiDTO() {
|
||||
super(logger);
|
||||
}
|
||||
|
||||
|
||||
public LocalDate getDataDoc() {
|
||||
return dataDoc;
|
||||
}
|
||||
|
||||
public CertificatiValorizzatiDTO setDataDoc(LocalDate dataDoc) {
|
||||
this.dataDoc = dataDoc;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Long getNumDoc() {
|
||||
return numDoc;
|
||||
}
|
||||
|
||||
public CertificatiValorizzatiDTO setNumDoc(Long numDoc) {
|
||||
this.numDoc = numDoc;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getIdPesata() {
|
||||
return idPesata;
|
||||
}
|
||||
|
||||
public CertificatiValorizzatiDTO setIdPesata(String idPesata) {
|
||||
this.idPesata = idPesata;
|
||||
return this;
|
||||
}
|
||||
|
||||
public LocalDateTime getDataVers() {
|
||||
return dataVers;
|
||||
}
|
||||
|
||||
public CertificatiValorizzatiDTO setDataVers(LocalDateTime dataVers) {
|
||||
this.dataVers = dataVers;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCodMart() {
|
||||
return codMart;
|
||||
}
|
||||
|
||||
public CertificatiValorizzatiDTO setCodMart(String codMart) {
|
||||
this.codMart = codMart;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getVarieta() {
|
||||
return varieta;
|
||||
}
|
||||
|
||||
public CertificatiValorizzatiDTO setVarieta(String varieta) {
|
||||
this.varieta = varieta;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getTarga() {
|
||||
return targa;
|
||||
}
|
||||
|
||||
public CertificatiValorizzatiDTO setTarga(String targa) {
|
||||
this.targa = targa;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getTargaRim() {
|
||||
return targaRim;
|
||||
}
|
||||
|
||||
public CertificatiValorizzatiDTO setTargaRim(String targaRim) {
|
||||
this.targaRim = targaRim;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCodVvet() {
|
||||
return codVvet;
|
||||
}
|
||||
|
||||
public CertificatiValorizzatiDTO setCodVvet(String codVvet) {
|
||||
this.codVvet = codVvet;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCodVdes() {
|
||||
return codVdes;
|
||||
}
|
||||
|
||||
public CertificatiValorizzatiDTO setCodVdes(String codVdes) {
|
||||
this.codVdes = codVdes;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCodAnag() {
|
||||
return codAnag;
|
||||
}
|
||||
|
||||
public CertificatiValorizzatiDTO setCodAnag(String codAnag) {
|
||||
this.codAnag = codAnag;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getValUnt() {
|
||||
return valUnt;
|
||||
}
|
||||
|
||||
public CertificatiValorizzatiDTO setValUnt(BigDecimal valUnt) {
|
||||
this.valUnt = valUnt;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getLottoProduttore() {
|
||||
return lottoProduttore;
|
||||
}
|
||||
|
||||
public CertificatiValorizzatiDTO setLottoProduttore(String lottoProduttore) {
|
||||
this.lottoProduttore = lottoProduttore;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCodVzon() {
|
||||
return codVzon;
|
||||
}
|
||||
|
||||
public CertificatiValorizzatiDTO setCodVzon(String codVzon) {
|
||||
this.codVzon = codVzon;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getPesoLordoKg() {
|
||||
return pesoLordoKg;
|
||||
}
|
||||
|
||||
public CertificatiValorizzatiDTO setPesoLordoKg(BigDecimal pesoLordoKg) {
|
||||
this.pesoLordoKg = pesoLordoKg;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getPesoNettoKg() {
|
||||
return pesoNettoKg;
|
||||
}
|
||||
|
||||
public CertificatiValorizzatiDTO setPesoNettoKg(BigDecimal pesoNettoKg) {
|
||||
this.pesoNettoKg = pesoNettoKg;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getScartoKg() {
|
||||
return scartoKg;
|
||||
}
|
||||
|
||||
public CertificatiValorizzatiDTO setScartoKg(BigDecimal scartoKg) {
|
||||
this.scartoKg = scartoKg;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getCasseScaricate() {
|
||||
return casseScaricate;
|
||||
}
|
||||
|
||||
public CertificatiValorizzatiDTO setCasseScaricate(BigDecimal casseScaricate) {
|
||||
this.casseScaricate = casseScaricate;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getCasseRese() {
|
||||
return casseRese;
|
||||
}
|
||||
|
||||
public CertificatiValorizzatiDTO setCasseRese(BigDecimal casseRese) {
|
||||
this.casseRese = casseRese;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getIndiceVariazione() {
|
||||
return indiceVariazione;
|
||||
}
|
||||
|
||||
public CertificatiValorizzatiDTO setIndiceVariazione(BigDecimal indiceVariazione) {
|
||||
this.indiceVariazione = indiceVariazione;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getTassoRiduzione() {
|
||||
return tassoRiduzione;
|
||||
}
|
||||
|
||||
public CertificatiValorizzatiDTO setTassoRiduzione(BigDecimal tassoRiduzione) {
|
||||
this.tassoRiduzione = tassoRiduzione;
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) return true;
|
||||
if (!(o instanceof CertificatiValorizzatiDTO)) return false;
|
||||
CertificatiValorizzatiDTO that = (CertificatiValorizzatiDTO) o;
|
||||
return Objects.equals(getDataDoc(), that.getDataDoc()) && Objects.equals(getNumDoc(), that.getNumDoc()) && Objects.equals(getIdPesata(), that.getIdPesata()) && Objects.equals(getDataVers(), that.getDataVers()) && Objects.equals(getCodMart(), that.getCodMart()) && Objects.equals(getVarieta(), that.getVarieta()) && Objects.equals(getTarga(), that.getTarga()) && Objects.equals(getTargaRim(), that.getTargaRim()) && Objects.equals(getCodVvet(), that.getCodVvet()) && Objects.equals(getCodVdes(), that.getCodVdes()) && Objects.equals(getCodAnag(), that.getCodAnag()) && Objects.equals(getValUnt(), that.getValUnt()) && Objects.equals(getLottoProduttore(), that.getLottoProduttore()) && Objects.equals(getCodVzon(), that.getCodVzon()) && Objects.equals(getPesoLordoKg(), that.getPesoLordoKg()) && Objects.equals(getPesoNettoKg(), that.getPesoNettoKg()) && Objects.equals(getScartoKg(), that.getScartoKg()) && Objects.equals(getCasseScaricate(), that.getCasseScaricate()) && Objects.equals(getCasseRese(), that.getCasseRese()) && Objects.equals(getIndiceVariazione(), that.getIndiceVariazione()) && Objects.equals(getTassoRiduzione(), that.getTassoRiduzione());
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCodeKey() {
|
||||
return Objects.hash(getDataDoc(), getNumDoc());
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(getDataDoc(), getNumDoc(), getIdPesata(), getDataVers(), getCodMart(), getVarieta(), getTarga(), getTargaRim(), getCodVvet(), getCodVdes(), getCodAnag(), getValUnt(), getLottoProduttore(), getCodVzon(), getPesoLordoKg(), getPesoNettoKg(), getScartoKg(), getCasseScaricate(), getCasseRese(), getIndiceVariazione(), getTassoRiduzione());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equalsKey(CertificatiValorizzatiDTO that) {
|
||||
if (this == that) return true;
|
||||
return Objects.equals(getDataDoc(), that.getDataDoc()) && Objects.equals(getNumDoc(), that.getNumDoc());
|
||||
|
||||
}
|
||||
}
|
||||
@@ -24,7 +24,8 @@ public class ExchangeImportSchemaManagerService {
|
||||
Articoli(4),
|
||||
PartiteMagazzinoLavorazione(5),
|
||||
VersamentoGrezzo(6),
|
||||
CampiRaccolta(7);
|
||||
CampiRaccolta(7),
|
||||
ValorizzazioneCertificati(8);
|
||||
|
||||
|
||||
private final int value;
|
||||
@@ -67,6 +68,7 @@ public class ExchangeImportSchemaManagerService {
|
||||
put(SchemaType.PartiteMagazzinoLavorazione, Arrays.asList("mtb_partita_mag_lav"));
|
||||
put(SchemaType.VersamentoGrezzo, Arrays.asList("mtb_colt_versamento_grezzo", "mtb_colr_versamento_grezzo"));
|
||||
put(SchemaType.CampiRaccolta, Collections.singletonList("campi_raccolta"));
|
||||
put(SchemaType.ValorizzazioneCertificati, Collections.singletonList("valorizzazione_certificati"));
|
||||
}};
|
||||
|
||||
public void syncSchema(Connection connection, SchemaType schemaType, boolean createTempTablesToo) throws Exception {
|
||||
|
||||
Reference in New Issue
Block a user