Merge branch 'develop' into feature/Feature-ORDL
This commit is contained in:
@@ -289,6 +289,9 @@ public abstract class BaseMigration implements MigrationModelInterface {
|
||||
boolean flagTipoJson, boolean flagTipoColore, String tipoSetup, boolean flagMultiValue,
|
||||
String query) throws Exception {
|
||||
|
||||
if (!UtilityDebug.isDebugExecution() && existsSetup(gestName, section, keySection))
|
||||
return;
|
||||
|
||||
if (!UtilityString.isNullOrEmpty(query) && UtilityString.isNullOrEmpty(codQuery)) {
|
||||
codQuery = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(advancedDataSource.getConnection(),
|
||||
Query.format("SELECT cod_query FROM stb_gest_setup_query WHERE query_default = %s", query));
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
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;
|
||||
|
||||
public class Migration_20240902104948 extends BaseMigration implements MigrationModelInterface {
|
||||
|
||||
@Override
|
||||
public void up() throws Exception {
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
|
||||
String value = null;
|
||||
|
||||
if (isCustomer(IntegryCustomer.Carelli)) {
|
||||
value = "114BA|114SS|114SR";
|
||||
}
|
||||
|
||||
createSetup("PVM", "DOC_INTERNI", "REQUEST_NUM_DOC", value,
|
||||
"Inserire i tipi documento per i quali deve essere richiesto il numero documento", false, null, false, false,
|
||||
false, false, false, null, false, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void down() throws Exception {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
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.IntegryCustomerDB;
|
||||
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||
|
||||
public class Migration_20240902130713 extends BaseMigration implements MigrationModelInterface {
|
||||
|
||||
@Override
|
||||
public void up() throws Exception {
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
|
||||
createSetup("PVM", "DOC_INTERNI", "CHECK_RIF_DOC", null,
|
||||
"Tipi documento da controllare", false, null, false, false,
|
||||
false, false, false, "dtb_tipi", false, null);
|
||||
|
||||
if (isCustomerDb(IntegryCustomerDB.Carelli_Carelli, IntegryCustomerDB.Carelli_GestFood, IntegryCustomerDB.Carelli_Panimal)){
|
||||
executeInsertStatement("INSERT INTO stb_gest_setup_det VALUES ('PVM', 'DOC_INTERNI', 'CHECK_RIF_DOC', 'dtb_tipi', 'FRUMA', 'BA|BA0|BA1')");
|
||||
}
|
||||
|
||||
if (isCustomerDb(IntegryCustomerDB.Carelli_Format)){
|
||||
executeInsertStatement("INSERT INTO stb_gest_setup_det VALUES ('PVM', 'DOC_INTERNI', 'CHECK_RIF_DOC', 'dtb_tipi', '114BA', 'RETEC|RECLF|RECLA')");
|
||||
executeInsertStatement("INSERT INTO stb_gest_setup_det VALUES ('PVM', 'DOC_INTERNI', 'CHECK_RIF_DOC', 'dtb_tipi', '114SS', 'RETEC|RECLF|RECLA')");
|
||||
executeInsertStatement("INSERT INTO stb_gest_setup_det VALUES ('PVM', 'DOC_INTERNI', 'CHECK_RIF_DOC', 'dtb_tipi', '114SR', 'RETEC|RECLF|RECLA')");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void down() throws Exception {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package it.integry.ems.migration.model;
|
||||
|
||||
import it.integry.ems.migration._base.BaseMigration;
|
||||
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||
|
||||
public class Migration_20240902154922 extends BaseMigration implements MigrationModelInterface {
|
||||
|
||||
@Override
|
||||
public void up() throws Exception {
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
|
||||
createSetupQuery("SI_NO", "SI_NO", "SELECT 'S' UNION ALL SELECT 'N'");
|
||||
createSetup("DATI_AZIENDA", "FATTURAZIONE_ELETTRONICA", "INSERT_IVA", "S",
|
||||
"Inserisce il castellatto iva dal file xml", false, "SI_NO", false, false,
|
||||
false, false, false, null, false, "SELECT 'S' UNION ALL SELECT 'N'");
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void down() throws Exception {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package it.integry.ems.migration.model;
|
||||
|
||||
import it.integry.ems.migration._base.BaseMigration;
|
||||
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||
|
||||
public class Migration_20240902160634 extends BaseMigration implements MigrationModelInterface {
|
||||
|
||||
@Override
|
||||
public void up() throws Exception {
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
|
||||
createSetup("DATI_AZIENDA", "FATTURAZIONE_ELETTRONICA", "INSERT_DDT", "N",
|
||||
"Inserisce i DDT leggendo le info dalla fattura elettronica", false, "SI_NO", false, false,
|
||||
false, false, false, null, false, "SELECT 'S' UNION ALL SELECT 'N'");
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void down() throws Exception {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package it.integry.ems.migration.model;
|
||||
|
||||
import it.integry.ems.migration._base.BaseMigration;
|
||||
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||
|
||||
public class Migration_20240906164323 extends BaseMigration implements MigrationModelInterface {
|
||||
|
||||
@Override
|
||||
public void up() throws Exception {
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
|
||||
executeStatement("update stb_menu set flag_attivo = 'N' where cod_opz in ('vg107', 'ag030','ag031','lg081','lg082', 'vg106', 'ag032')" );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void down() throws Exception {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -37,6 +37,4 @@ public interface IObjectStorageService {
|
||||
boolean isEnabled();
|
||||
|
||||
List<String> listFiles(@Nonnull MultiDBTransactionManager multiDBTransactionManager) throws Exception;
|
||||
|
||||
boolean bulkDelete(@Nonnull MultiDBTransactionManager multiDBTransactionManager, @Nonnull List<String> objectNameList) throws Exception;
|
||||
}
|
||||
|
||||
@@ -1,19 +1,17 @@
|
||||
package it.integry.ems.object_storage.minio;
|
||||
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.google.common.io.ByteStreams;
|
||||
import io.minio.*;
|
||||
import io.minio.errors.*;
|
||||
import io.minio.messages.DeleteError;
|
||||
import io.minio.messages.DeleteObject;
|
||||
import io.minio.messages.Item;
|
||||
import it.integry.annotations.PostContextConstruct;
|
||||
import it.integry.ems.exception.PrimaryDatabaseNotPresentException;
|
||||
import it.integry.ems.object_storage.interfaces.IObjectStorageService;
|
||||
import it.integry.ems.service.HttpRestWrapper;
|
||||
import it.integry.ems.settings.Model.MinIOSettingsModel;
|
||||
import it.integry.ems.settings.Model.SettingsModel;
|
||||
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||
import org.apache.http.entity.ContentType;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -24,13 +22,11 @@ import javax.annotation.Nonnull;
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.StringWriter;
|
||||
import java.security.InvalidKeyException;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.sql.Connection;
|
||||
import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -241,11 +237,16 @@ public class MinIOService implements IObjectStorageService {
|
||||
.map(DeleteObject::new)
|
||||
.collect(Collectors.toList());
|
||||
|
||||
this.mMinioClient.removeObjects(RemoveObjectsArgs.builder()
|
||||
final Iterable<Result<DeleteError>> results = this.mMinioClient.removeObjects(RemoveObjectsArgs.builder()
|
||||
.bucket(getBucketName(multiDBTransactionManager))
|
||||
.objects(objectsToDelete)
|
||||
.build());
|
||||
|
||||
for (final Result<DeleteError> result : results) {
|
||||
final DeleteError deleteError = result.get();
|
||||
deleteError.code();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -259,50 +260,19 @@ public class MinIOService implements IObjectStorageService {
|
||||
this.checkStatus();
|
||||
this.checkConnection();
|
||||
|
||||
String url = String.format("http://%s/scandir.php", settingsModel.getMinioConfiguration().getHost());
|
||||
StringBuilder srb = new StringBuilder();
|
||||
final Iterable<Result<Item>> results = this.mMinioClient.listObjects(ListObjectsArgs.builder()
|
||||
.bucket(getBucketName(multiDBTransactionManager))
|
||||
.build());
|
||||
|
||||
HashMap<String, String> queryParam = new HashMap<>();
|
||||
queryParam.put("bucket", getBucketName(multiDBTransactionManager));
|
||||
ArrayList<String> files = new ArrayList<>();
|
||||
|
||||
int statusResponse = HttpRestWrapper.callGenericGet(url, null, null, srb, queryParam);
|
||||
|
||||
if (statusResponse == 200) {
|
||||
for (final Result<Item> result : results) {
|
||||
final Item item = result.get();
|
||||
files.add(item.objectName());
|
||||
}
|
||||
|
||||
ObjectMapper mapper = new ObjectMapper();
|
||||
JsonNode jsonNode = mapper.readTree(srb.toString());
|
||||
|
||||
ArrayList<String> files = new ArrayList<>(jsonNode.size());
|
||||
|
||||
jsonNode.forEach(x -> {
|
||||
files.add(x.asText().replaceAll("\"", ""));
|
||||
});
|
||||
|
||||
return files;
|
||||
} else return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean bulkDelete(@Nonnull MultiDBTransactionManager multiDBTransactionManager, @Nonnull List<String> objectNameList) throws Exception {
|
||||
this.checkStatus();
|
||||
this.checkConnection();
|
||||
|
||||
String url = String.format("http://%s/deleteBucketContent.php", settingsModel.getMinioConfiguration().getHost());
|
||||
StringBuilder srb = new StringBuilder();
|
||||
|
||||
HashMap<String, String> queryParam = new HashMap<>();
|
||||
queryParam.put("bucket", getBucketName(multiDBTransactionManager));
|
||||
|
||||
ObjectMapper mapper = new ObjectMapper();
|
||||
StringWriter writer = new StringWriter();
|
||||
mapper.writeValue(writer, objectNameList);
|
||||
String dtoJson = writer.toString();
|
||||
|
||||
int statusResponse = HttpRestWrapper.callGeneric(url, null, null, dtoJson, ContentType.APPLICATION_JSON, srb, queryParam);
|
||||
|
||||
if (statusResponse == 200) {
|
||||
return true;
|
||||
} else return false;
|
||||
return files;
|
||||
}
|
||||
|
||||
private void checkStatus() throws MinIONotEnabledException {
|
||||
|
||||
@@ -557,7 +557,7 @@ public class AccountingRules extends QueryRules {
|
||||
if (ctbScad.getImpDare() == null)
|
||||
impDare = ctbMovr.getImpDare();
|
||||
else
|
||||
impDare = ctbScad.getImpDare().divide(cambioScad).setScale(5, RoundingMode.HALF_UP);
|
||||
impDare = ctbScad.getImpDare().divide(cambioScad, 5, RoundingMode.HALF_UP);
|
||||
}
|
||||
if (UtilityBigDecimal.greaterThan(ctbMovr.getImpAvere(), BigDecimal.ZERO)) {
|
||||
if (ctbScad.getImpAvere() == null)
|
||||
|
||||
@@ -937,6 +937,7 @@ public abstract class EntityBase implements Serializable, Cloneable, EntityInter
|
||||
final List<Field> childs = entityHolder.getEntityChildrenFields(getClass());
|
||||
|
||||
for (Field entityChildField : childs) {
|
||||
entityChildField.setAccessible(true);
|
||||
Object entityChildRef = entityChildField.get(clonedEntity);
|
||||
if (entityChildRef instanceof List) {
|
||||
for (EntityBase entityChild : (List<EntityBase>) entityChildRef) {
|
||||
|
||||
@@ -12,6 +12,8 @@ import java.math.BigDecimal;
|
||||
import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
@@ -58,6 +60,8 @@ public class UtilityQuery {
|
||||
|
||||
if (value instanceof Date)
|
||||
sbWhereCond.append(keys[k] + (value == null ? " IS NULL" : " = " + UtilityDB.valueDateToString((Date) value, CommonConstants.DATETIME_FORMAT_YMD)));
|
||||
else if (value instanceof LocalDate || value instanceof LocalDateTime)
|
||||
sbWhereCond.append(keys[k] + (value == null ? " IS NULL" : " = " + UtilityDB.valueToString(value)));
|
||||
else if (value instanceof Integer || value instanceof Long || value instanceof Float || value instanceof Double || value instanceof BigDecimal)
|
||||
sbWhereCond.append(keys[k] + (value == null ? " IS NULL" : " = " + UtilityDB.valueToString(value)));
|
||||
else {
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -1,5 +1,6 @@
|
||||
package it.integry.ems.activity.dto;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import it.integry.ems_model.annotation.SqlField;
|
||||
|
||||
import java.util.Date;
|
||||
@@ -27,7 +28,7 @@ public class TreeViewDTO {
|
||||
@SqlField("row")
|
||||
private int row;
|
||||
|
||||
@SqlField("isFinished")
|
||||
@JsonProperty("isFinished")
|
||||
private boolean isFinished;
|
||||
|
||||
@SqlField("esito")
|
||||
@@ -99,12 +100,12 @@ public class TreeViewDTO {
|
||||
return this;
|
||||
}
|
||||
|
||||
public boolean isFinished() {
|
||||
public boolean getIsFinished() {
|
||||
return isFinished;
|
||||
}
|
||||
|
||||
public TreeViewDTO setFinished(boolean finished) {
|
||||
isFinished = finished;
|
||||
public TreeViewDTO setIsFinished(boolean isFinished) {
|
||||
this.isFinished = isFinished;
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
@@ -924,15 +924,6 @@ public class ActivityService {
|
||||
" ISNULL(parent.activity_description, 'Altre Attività') AS 'parent_activity_description',\n" +
|
||||
" creator.full_name AS 'user_creator_name',\n" +
|
||||
" parent.activity_type_id AS 'parent_activity_type',\n" +
|
||||
" CASE\n" +
|
||||
" WHEN stb_activity_result.flag_stato_attivita IS NULL THEN 0 --backlog\n" +
|
||||
" WHEN stb_activity_result.flag_stato_attivita = 0 THEN 1 --programmato\n" +
|
||||
" WHEN stb_activity_result.flag_stato_attivita = 1 THEN 2 --in corso\n" +
|
||||
" WHEN stb_activity_result.flag_stato_attivita = 2 AND\n" +
|
||||
" stb_activity_result.flag_activity_result = -1 THEN 3 --sospesa\n" +
|
||||
" WHEN stb_activity_result.flag_stato_attivita = 2 AND\n" +
|
||||
" stb_activity_result.flag_activity_result = 1 THEN 4 --test\n" +
|
||||
" ELSE 5 /*completata*/ END AS stato_attivita,\n" +
|
||||
" CAST(ISNULL(integry_tag.is_bug, 0) AS BIT) AS is_bug,\n" +
|
||||
" integry_tag.tags,\n" +
|
||||
" DENSE_RANK() OVER (ORDER BY parent.project_description, parent.activity_description) AS 'id_processo',\n" +
|
||||
@@ -972,8 +963,6 @@ public class ActivityService {
|
||||
" ON stb_activity.parent_activity_id = parent.activity_id\n" +
|
||||
" WHERE stb_activity.flag_tipologia = 'P') parent\n" +
|
||||
" ON stb_activity.parent_activity_id = parent.activity_id\n" +
|
||||
" LEFT OUTER JOIN stb_activity_result\n" +
|
||||
" ON stb_activity.activity_result_id = stb_activity_result.activity_result_id\n" +
|
||||
" LEFT OUTER JOIN integry_tag ON stb_activity.activity_id = integry_tag.activity_id\n";
|
||||
|
||||
if (daInstallare) {
|
||||
@@ -1038,7 +1027,16 @@ public class ActivityService {
|
||||
" CAST(ISNULL(sottoattivita.done_previous_month, 0) AS BIT) AS done_previous_month,\n" +
|
||||
" CAST(ISNULL(sottoattivita.done_this_quarter, 0) AS BIT) AS done_this_quarter,\n" +
|
||||
" CAST(ISNULL(sottoattivita.done_previous_quarter, 0) AS BIT) AS done_previous_quarter,\n" +
|
||||
" stato_attivita,\n" +
|
||||
" CASE\n" +
|
||||
" WHEN stb_activity_result.flag_stato_attivita IS NULL and ISNULL(sottoattivita.ore, 0) = 0 THEN 0 --backlog\n" +
|
||||
" WHEN stb_activity_result.flag_stato_attivita = 0 THEN 1 --programmato\n" +
|
||||
" WHEN stb_activity_result.flag_stato_attivita IS NULL and ISNULL(sottoattivita.ore, 0) <> 0 THEN 2 --in corso\n" +
|
||||
" WHEN stb_activity_result.flag_stato_attivita = 1 THEN 2 --in corso\n" +
|
||||
" WHEN stb_activity_result.flag_stato_attivita = 2 AND\n" +
|
||||
" stb_activity_result.flag_activity_result = -1 THEN 3 --sospesa\n" +
|
||||
" WHEN stb_activity_result.flag_stato_attivita = 2 AND\n" +
|
||||
" stb_activity_result.flag_activity_result = 1 THEN 4 --test\n" +
|
||||
" ELSE 5 /*completata*/ END AS stato_attivita,\n" +
|
||||
" is_bug,\n" +
|
||||
" tags,\n" +
|
||||
" CAST(CASE WHEN estimated_enddate < CAST(GETDATE() AS DATE) THEN 1 ELSE 0 END AS BIT) AS scaduta,\n" +
|
||||
@@ -1060,6 +1058,8 @@ public class ActivityService {
|
||||
" task.aCanone as a_canone " +
|
||||
"FROM processi\n" +
|
||||
" LEFT OUTER JOIN sottoattivita ON processi.activity_id = sottoattivita.parent_activity_id\n" +
|
||||
" LEFT OUTER JOIN stb_activity_result\n" +
|
||||
" ON processi.esito = stb_activity_result.activity_result_id\n" +
|
||||
" OUTER APPLY ( SELECT CAST(MAX(CASE WHEN task.cod_jfas <> 'C01' THEN 0 ELSE 1 END) AS BIT) AS daPagare,\n" +
|
||||
" CAST(MAX(CASE WHEN task.cod_jfas = 'C01' THEN 0 ELSE 1 END) AS BIT) AS aCanone \n" +
|
||||
" FROM stb_activity task WHERE processi.activity_id = task.parent_activity_id) task ";
|
||||
|
||||
@@ -161,11 +161,15 @@ public class PassiveInvoiceRecapObject {
|
||||
|
||||
/*Dati DDT*/
|
||||
for (DatiDDTType datiDDT : body.getDatiGenerali().getDatiDDT()){
|
||||
DtbFatturePassiveDdt dtbFatturePassiveDdt = new DtbFatturePassiveDdt()
|
||||
.setNumero(datiDDT.getNumeroDDT())
|
||||
.setData(datiDDT.getDataDDT().toGregorianCalendar().getTime());
|
||||
|
||||
object.getDdt().add(dtbFatturePassiveDdt);
|
||||
Date dataDDT = datiDDT.getDataDDT().toGregorianCalendar().getTime();
|
||||
if ( !object.getDdt().stream()
|
||||
.anyMatch(x-> x.getNumero().equalsIgnoreCase(datiDDT.getNumeroDDT())
|
||||
&& UtilityDate.equals(x.getData(), dataDDT))) {
|
||||
DtbFatturePassiveDdt dtbFatturePassiveDdt = new DtbFatturePassiveDdt()
|
||||
.setNumero(datiDDT.getNumeroDDT())
|
||||
.setData(dataDDT);
|
||||
object.getDdt().add(dtbFatturePassiveDdt);
|
||||
}
|
||||
}
|
||||
|
||||
/*Verifica esistenza IBAN del fornitore*/
|
||||
|
||||
@@ -369,7 +369,7 @@ public class DigitalInvoiceBackupService {
|
||||
Session session = Session.getInstance(new Properties());
|
||||
|
||||
for (FileItem receipt : receipts) {
|
||||
String name = receipt.getFileName();
|
||||
String name = receipt.getFileName().toLowerCase();
|
||||
String content = receipt.getFileb64Content();
|
||||
Pattern pattern = Pattern.compile("(.{0,})(.xml|.zip|.eml|.msg|.p7m){1}");
|
||||
Matcher matcher = pattern.matcher(name);
|
||||
|
||||
@@ -82,6 +82,9 @@ public class OrdiniImporter extends BaseEntityImporter<List<EntityBase>> impleme
|
||||
case GSE:
|
||||
result = getContextBean(OrdiniImportService.class).importGSEOrder(type, format, requestDto);
|
||||
break;
|
||||
case TOSCA:
|
||||
result = getContextBean(OrdiniImportService.class).importOrdiniToscaExcel(type, format, requestDto);
|
||||
break;
|
||||
|
||||
default:
|
||||
throw new Exception("Tipo " + format + " non supportato");
|
||||
@@ -111,7 +114,8 @@ public class OrdiniImporter extends BaseEntityImporter<List<EntityBase>> impleme
|
||||
MAGENTO("MAGENTO"),
|
||||
EURITMO("EURITMO"),
|
||||
GS("GS"),
|
||||
GSE("GSE");
|
||||
GSE("GSE"),
|
||||
TOSCA("TOSCA");
|
||||
|
||||
private String text;
|
||||
|
||||
|
||||
@@ -275,4 +275,11 @@ public class OrdiniImportService {
|
||||
|
||||
return entityBases;
|
||||
}
|
||||
|
||||
public List<EntityBase> importOrdiniToscaExcel(String type, String format, ImportRequestDTO requestDTO) throws Exception {
|
||||
Connection conn = multiDBTransactionManager.getPrimaryConnection();
|
||||
HashMap<String, String> setup = setupGest.getImportSetupSection(conn, type, format);
|
||||
// requestDTO.get
|
||||
return new ArrayList<>();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -99,7 +99,8 @@ public class ImportListiniAcquistoApuliaCarrefourService {
|
||||
* la logica del prezzo netto netto.
|
||||
*/
|
||||
|
||||
List<ListinoApuliaCarrefourDTO> variazioniListini = getVariazioni(type, format, setup, dataImport, dataInizVarizioni, conn);
|
||||
boolean importVarFuture = setup.get("IMPORT_VAR_FUTURE").equalsIgnoreCase("S");
|
||||
List<ListinoApuliaCarrefourDTO> variazioniListini = getVariazioni(type, format, setup, dataImport, dataInizVarizioni, conn, importVarFuture);
|
||||
|
||||
Date dataOraImport = new Date();
|
||||
List<MtbLisaData> righeListino =
|
||||
@@ -136,51 +137,6 @@ public class ImportListiniAcquistoApuliaCarrefourService {
|
||||
}
|
||||
).toList();
|
||||
|
||||
if (setup.get("IMPORT_VAR_FUTURE").equalsIgnoreCase("S")) {
|
||||
sql = "SELECT mtb_lisa_apulia_succ.cod_alis,\n" +
|
||||
" mtb_lisa_apulia_succ.data_prz_acq AS data_iniz,\n" +
|
||||
" mtb_lisa_apulia_succ.cod_art_for AS cod_art_for,\n" +
|
||||
" mtb_lisa_apulia_succ.prz_acq AS prz_acq,\n" +
|
||||
" mtb_lisa_apulia_succ.descrizione AS descr_art_forn,\n" +
|
||||
" mtb_lisa_apulia_succ.barcode AS cod_barre,\n" +
|
||||
" mtb_lisa_apulia_succ.unt_mis_acq,\n" +
|
||||
" mtb_lisa_apulia_succ.qta_cnf,\n" +
|
||||
" mtb_lisa_apulia_succ.colli_x_pedane,\n" +
|
||||
" mtb_lisa_apulia_succ.linea,\n" +
|
||||
" mtb_lisa_apulia_succ.prz_ven_sugg,\n" +
|
||||
" mtb_lisa_apulia_succ.cod_aliq,\n" +
|
||||
" mtb_lisa_apulia_succ.prz_base_prop as prz_vend_sug,\n" +
|
||||
" mtb_lisa_apulia_succ.perc_premio as perc_promo,\n" +
|
||||
" IsNull(mtb_lisa_apulia_succ.val_premio, 0) as val_promo\n" +
|
||||
"FROM mtb_lisa_apulia_succ\n" +
|
||||
"WHERE mtb_lisa_apulia_succ.data_prz_acq > " + UtilityDB.valueDateToString(dataImport, CommonConstants.DATE_FORMAT_YMD) + "\n" +
|
||||
" AND mtb_lisa_apulia_succ.cod_alis NOT IN (SELECT value_string AS cod_alis\n" +
|
||||
" FROM dbo.parsestringintoarray(\n" +
|
||||
" (SELECT dbo.getgestsetup('IMPORT_LISTINI ACQUISTO',\n" +
|
||||
" 'APULIA_CARREFOUR',\n" +
|
||||
" 'LISTINI_DA_ESCLUDERE')),\n" +
|
||||
" '|'))";
|
||||
|
||||
List<MtbLisaData> mtbLisaData = new ResultSetMapper()
|
||||
.mapQuerySetToList(conn, sql, MtbLisaData.class, OperationType.INSERT_OR_UPDATE);
|
||||
if (mtbLisaData != null) {
|
||||
Stream.of(mtbLisaData)
|
||||
.forEach(
|
||||
x -> x
|
||||
.setPrzVenSug(UtilityBigDecimal.isNull(x.getPrzVenSug(), BigDecimal.ZERO))
|
||||
.setPerc1(BigDecimal.ZERO)
|
||||
.setPerc2(BigDecimal.ZERO)
|
||||
.setPerc3(BigDecimal.ZERO)
|
||||
.setPerc4(BigDecimal.ZERO)
|
||||
.setPercOneri(UtilityBigDecimal.isNull(x.getPercOneri(), BigDecimal.ZERO))
|
||||
.setValOneri(UtilityBigDecimal.isNull(x.getValOneri(), BigDecimal.ZERO))
|
||||
.setPercPromo(UtilityBigDecimal.isNull(x.getPercPromo(), BigDecimal.ZERO))
|
||||
.setValPromo(BigDecimal.ZERO)
|
||||
);
|
||||
righeListino.addAll(mtbLisaData);
|
||||
}
|
||||
}
|
||||
|
||||
List<String> listCond =
|
||||
Stream.of(righeListino)
|
||||
.filter(x->x.getQtaCnf() != null )
|
||||
@@ -239,8 +195,10 @@ public class ImportListiniAcquistoApuliaCarrefourService {
|
||||
|
||||
for (Map.Entry<AtbListData, List<MtbLisaData>> listino : listini) {
|
||||
AtbListData atbListData = listino.getKey();
|
||||
if ( UtilityLocalDate.isAfterToday(UtilityLocalDate.localDateTimeFromDate(atbListData.getDataIniz())))
|
||||
if ( UtilityLocalDate.isAfterToday(UtilityLocalDate.localDateTimeFromDate(atbListData.getDataIniz()))) {
|
||||
atbListData.setOperation(OperationType.INSERT_OR_UPDATE);
|
||||
listino.getValue().stream().forEach(x->x.setOperation(OperationType.INSERT_OR_UPDATE));
|
||||
}
|
||||
|
||||
atbListData.setMtbLisaData(listino.getValue());
|
||||
entityProcessor.processEntity(atbListData, multiDBTransactionManager);
|
||||
@@ -263,8 +221,10 @@ public class ImportListiniAcquistoApuliaCarrefourService {
|
||||
return entityRet;
|
||||
}
|
||||
|
||||
private static List<ListinoApuliaCarrefourDTO> getVariazioni(String type, String format, Map<String, String> setup, Date dataImport, Date dataInizVarizioni, Connection conn) throws SQLException, DataConverterNotFoundException, InstantiationException, IllegalAccessException {
|
||||
String sql;
|
||||
private static List<ListinoApuliaCarrefourDTO> getVariazioni(String type, String format, Map<String, String> setup, Date dataImport, Date dataInizVarizioni,
|
||||
Connection conn, boolean importVarFuture) throws Exception {
|
||||
|
||||
|
||||
BigDecimal percOneri = new BigDecimal(UtilityHashMap.getValueIfExists(setup, "PERC_ONERI:DIR", "0"));
|
||||
BigDecimal percOneriRif = new BigDecimal(UtilityHashMap.getValueIfExists(setup, "PERC_ONERI:RIF", "0"));
|
||||
|
||||
@@ -289,106 +249,105 @@ public class ImportListiniAcquistoApuliaCarrefourService {
|
||||
+ "ELSE IsNull(apulia.data_prz_acq, " + UtilityDB.valueDateToString(dataImport, CommonConstants.DATE_FORMAT_YMD) + ") END ";
|
||||
}
|
||||
|
||||
sql =
|
||||
("SELECT ISNULL(apulia.cod_alis, lisa.cod_alis) AS cod_alis,\n" +
|
||||
" [COLUMN_DATA_INIZ] AS data_iniz,\n" +
|
||||
" ISNULL(apulia.cod_art_for, lisa.cod_art_for) AS cod_art_for,\n" +
|
||||
" CASE WHEN apulia.cod_alis IS NOT NULL THEN apulia.prz_acq ELSE NULL END AS prz_acq,\n" +
|
||||
" apulia.descrizione AS descrizione,\n" +
|
||||
" apulia.barcode AS barcode,\n" +
|
||||
" apulia.unt_mis_acq AS unt_mis_acq,\n" +
|
||||
" apulia.qta_cnf AS qta_cnf,\n" +
|
||||
" apulia.colli_x_pedane AS colli_x_pedane,\n" +
|
||||
" CASE\n" +
|
||||
" WHEN lisa.cod_art_for IS NULL THEN apulia.prz_base_prop\n" +
|
||||
" ELSE lisa.prz_ven_sug END AS prz_ven_sug,\n" +
|
||||
" CASE\n" +
|
||||
" WHEN lisa.cod_art_for IS NULL AND apulia.cod_art_for IS NOT NULL THEN 'I'\n" +
|
||||
" WHEN lisa.cod_art_for IS NOT NULL AND apulia.cod_art_for IS NULL THEN 'D'\n" +
|
||||
" ELSE 'U' END AS tipo_variazione,\n" +
|
||||
" lisa.data_iniz AS data_iniz_lisa,\n" +
|
||||
" [COLUMN_PERC_ONERI] AS perc_oneri,\n" +
|
||||
" COUNT(*)\n" +
|
||||
" OVER (PARTITION BY ISNULL(apulia.cod_alis, lisa.cod_alis), [COLUMN_DATA_INIZ], ISNULL(apulia.cod_art_for, lisa.cod_art_for)) AS count_art_for,\n" +
|
||||
" apulia.cod_aliq,\n" +
|
||||
" apulia.prz_base_prop,\n" +
|
||||
" apulia.perc_premio AS prec_promo,\n" +
|
||||
" ISNULL(apulia.val_premio, 0) AS val_promo\n" +
|
||||
"FROM (SELECT DISTINCT mtb_lisa_apulia_succ.cod_alis,\n" +
|
||||
" mtb_lisa_apulia_succ.data_prz_acq,\n" +
|
||||
" mtb_lisa_apulia_succ.cod_art_for AS cod_art_for,\n" +
|
||||
" mtb_lisa_apulia_succ.prz_acq AS prz_acq,\n" +
|
||||
" mtb_lisa_apulia_succ.descrizione,\n" +
|
||||
" mtb_lisa_apulia_succ.barcode,\n" +
|
||||
" mtb_lisa_apulia_succ.descrizione_divisione_forn,\n" +
|
||||
" mtb_lisa_apulia_succ.partita_iva_forn,\n" +
|
||||
" mtb_lisa_apulia_succ.unt_mis_acq,\n" +
|
||||
" mtb_lisa_apulia_succ.qta_cnf,\n" +
|
||||
" mtb_lisa_apulia_succ.colli_x_pedane,\n" +
|
||||
" mtb_lisa_apulia_succ.linea,\n" +
|
||||
" CASE WHEN mtb_lisa_apulia_succ.cod_alis LIKE 'AP%' and IsNumeric(RIGHT(cod_alis,3)) = 1 THEN 'RIF' ELSE 'DIR' END tipo_listino,\n" +
|
||||
" mtb_lisa_apulia_succ.anno_contratto,\n" +
|
||||
" mtb_lisa_apulia_succ.perc_contratto,\n" +
|
||||
" mtb_lisa_apulia_succ.rag_soc_forn,\n" +
|
||||
" mtb_lisa_apulia_succ.prz_ven_sugg,\n" +
|
||||
" mtb_lisa_apulia_succ.cod_forn,\n" +
|
||||
" mtb_lisa_apulia_succ.cod_aliq,\n" +
|
||||
" mtb_lisa_apulia_succ.prz_base_prop,\n" +
|
||||
" mtb_lisa_apulia_succ.perc_premio,\n" +
|
||||
" mtb_lisa_apulia_succ.val_premio\n" +
|
||||
" FROM mtb_lisa_apulia_succ\n" +
|
||||
" WHERE mtb_lisa_apulia_succ.data_prz_acq <= [DATA_IMPORT]\n" +
|
||||
" AND mtb_lisa_apulia_succ.cod_alis NOT IN (SELECT value_string AS cod_alis\n" +
|
||||
" FROM dbo.parsestringintoarray(\n" +
|
||||
" (SELECT dbo.getgestsetup('IMPORT_[TYPE]',\n" +
|
||||
" '[FORMAT]',\n" +
|
||||
" 'LISTINI_DA_ESCLUDERE')),\n" +
|
||||
" '|'))) apulia\n" +
|
||||
" FULL OUTER JOIN (SELECT lisa.cod_alis,\n" +
|
||||
" cod_art_for,\n" +
|
||||
" prz_acq,\n" +
|
||||
" val_promo,\n" +
|
||||
" perc_oneri,\n" +
|
||||
" prz_ven_sug,\n" +
|
||||
" CASE WHEN data_iniz < '2020/01/01' THEN '2020/01/01' ELSE data_iniz END AS data_iniz,\n" +
|
||||
" tipo_variazione\n" +
|
||||
" FROM dbo.getlistinoacquisto([DATA_IMPORT], NULL, NULL, NULL, 'N', NULL) lisa\n" +
|
||||
" LEFT OUTER JOIN (SELECT value_string AS cod_alis\n" +
|
||||
" FROM dbo.parsestringintoarray(\n" +
|
||||
" (SELECT dbo.getgestsetup('IMPORT_[TYPE]',\n" +
|
||||
" '[FORMAT]',\n" +
|
||||
" 'LISTINI_DA_ESCLUDERE')),\n" +
|
||||
" '|')) listini_esclusi\n" +
|
||||
" ON lisa.cod_alis = listini_esclusi.cod_alis\n" +
|
||||
" WHERE lisa.cod_alis LIKE 'AP%'\n" +
|
||||
" AND lisa.tipo_variazione <> 'D'\n" +
|
||||
" AND lisa.tipo_variazione IS NOT NULL\n" +
|
||||
" AND listini_esclusi.cod_alis IS NULL) lisa\n" +
|
||||
" ON apulia.cod_alis = lisa.cod_alis AND apulia.cod_art_for = lisa.cod_art_for\n" +
|
||||
" LEFT OUTER JOIN mtb_lisa ON apulia.cod_alis = mtb_lisa.cod_alis AND apulia.cod_art_for = mtb_lisa.cod_art_for\n" +
|
||||
" LEFT OUTER JOIN mtb_aart ON mtb_lisa.cod_mart = mtb_aart.cod_mart\n" +
|
||||
" LEFT OUTER JOIN (SELECT mtb_grup.cod_mgrp,\n" +
|
||||
" REPLACE(key_section, 'PERC_ONERI:', '') AS tipo_listino,\n" +
|
||||
" ISNULL(CONVERT(NUMERIC(20, 5), stb_gest_setup_det.value), 0) AS perc_oneri\n" +
|
||||
" FROM mtb_grup\n" +
|
||||
" LEFT OUTER JOIN stb_gest_setup_det ON gest_name = 'IMPORT_[TYPE]' AND\n" +
|
||||
" section = '[FORMAT]' AND\n" +
|
||||
" key_section LIKE 'PERC_ONERI%' AND\n" +
|
||||
" mtb_grup.cod_mgrp =\n" +
|
||||
" stb_gest_setup_det.val_col_rif) oneri\n" +
|
||||
" ON apulia.tipo_listino = oneri.tipo_listino AND mtb_aart.cod_mgrp = oneri.cod_mgrp\n" +
|
||||
"WHERE (apulia.data_prz_acq >= [DATA_INIZ_VAR] OR \n " +
|
||||
" ISNULL(lisa.cod_art_for, '') <> ISNULL(apulia.cod_art_for, '')) AND \n"+
|
||||
" (ISNULL(lisa.prz_acq, 0) <> ISNULL(apulia.prz_acq, 0) OR\n" +
|
||||
" ISNULL(lisa.perc_oneri, 0) <> [COLUMN_PERC_ONERI] OR\n" +
|
||||
" ISNULL(lisa.cod_art_for, '') <> ISNULL(apulia.cod_art_for, '') OR\n" +
|
||||
" ISNULL(lisa.val_promo, 0) <> ISNULL(apulia.val_premio, 0))")
|
||||
.replace("[COLUMN_DATA_INIZ]", calcDataIniz)
|
||||
.replace("[TYPE]", type)
|
||||
.replace("[FORMAT]", format)
|
||||
.replace("[COLUMN_PERC_ONERI]", columnPercOneri)
|
||||
.replace("[DATA_INIZ_VAR]",UtilityDB.valueDateToString(dataInizVarizioni, CommonConstants.DATE_FORMAT_YMD) )
|
||||
.replace("[DATA_IMPORT]", UtilityDB.valueDateToString(dataImport, CommonConstants.DATE_FORMAT_YMD));
|
||||
String sql = ("SELECT ISNULL(apulia.cod_alis, lisa.cod_alis) AS cod_alis,\n" +
|
||||
" iif(apulia.data_prz_acq is not null and apulia.data_prz_acq > [COLUMN_DATA_INIZ],apulia.data_prz_acq, [COLUMN_DATA_INIZ]) AS data_iniz,\n" +
|
||||
" ISNULL(apulia.cod_art_for, lisa.cod_art_for) AS cod_art_for,\n" +
|
||||
" CASE WHEN apulia.cod_alis IS NOT NULL THEN apulia.prz_acq ELSE NULL END AS prz_acq,\n" +
|
||||
" apulia.descrizione AS descrizione,\n" +
|
||||
" apulia.barcode AS barcode,\n" +
|
||||
" apulia.unt_mis_acq AS unt_mis_acq,\n" +
|
||||
" apulia.qta_cnf AS qta_cnf,\n" +
|
||||
" apulia.colli_x_pedane AS colli_x_pedane,\n" +
|
||||
" CASE\n" +
|
||||
" WHEN lisa.cod_art_for IS NULL THEN apulia.prz_base_prop\n" +
|
||||
" ELSE lisa.prz_ven_sug END AS prz_ven_sug,\n" +
|
||||
" CASE\n" +
|
||||
" WHEN lisa.cod_art_for IS NULL AND apulia.cod_art_for IS NOT NULL THEN 'I'\n" +
|
||||
" WHEN lisa.cod_art_for IS NOT NULL AND apulia.cod_art_for IS NULL THEN 'D'\n" +
|
||||
" ELSE 'U' END AS tipo_variazione,\n" +
|
||||
" lisa.data_iniz AS data_iniz_lisa,\n" +
|
||||
" [COLUMN_PERC_ONERI] AS perc_oneri,\n" +
|
||||
" COUNT(*)\n" +
|
||||
" OVER (PARTITION BY ISNULL(apulia.cod_alis, lisa.cod_alis), [COLUMN_DATA_INIZ], ISNULL(apulia.cod_art_for, lisa.cod_art_for)) AS count_art_for,\n" +
|
||||
" apulia.cod_aliq,\n" +
|
||||
" apulia.prz_base_prop,\n" +
|
||||
" apulia.perc_premio AS prec_promo,\n" +
|
||||
" ISNULL(apulia.val_premio, 0) AS val_promo\n" +
|
||||
"FROM (SELECT DISTINCT mtb_lisa_apulia_succ.cod_alis,\n" +
|
||||
" mtb_lisa_apulia_succ.data_prz_acq,\n" +
|
||||
" mtb_lisa_apulia_succ.cod_art_for AS cod_art_for,\n" +
|
||||
" mtb_lisa_apulia_succ.prz_acq AS prz_acq,\n" +
|
||||
" mtb_lisa_apulia_succ.descrizione,\n" +
|
||||
" mtb_lisa_apulia_succ.barcode,\n" +
|
||||
" mtb_lisa_apulia_succ.descrizione_divisione_forn,\n" +
|
||||
" mtb_lisa_apulia_succ.partita_iva_forn,\n" +
|
||||
" mtb_lisa_apulia_succ.unt_mis_acq,\n" +
|
||||
" mtb_lisa_apulia_succ.qta_cnf,\n" +
|
||||
" mtb_lisa_apulia_succ.colli_x_pedane,\n" +
|
||||
" mtb_lisa_apulia_succ.linea,\n" +
|
||||
" CASE WHEN mtb_lisa_apulia_succ.cod_alis LIKE 'AP%' and IsNumeric(RIGHT(cod_alis,3)) = 1 THEN 'RIF' ELSE 'DIR' END tipo_listino,\n" +
|
||||
" mtb_lisa_apulia_succ.anno_contratto,\n" +
|
||||
" mtb_lisa_apulia_succ.perc_contratto,\n" +
|
||||
" mtb_lisa_apulia_succ.rag_soc_forn,\n" +
|
||||
" mtb_lisa_apulia_succ.prz_ven_sugg,\n" +
|
||||
" mtb_lisa_apulia_succ.cod_forn,\n" +
|
||||
" mtb_lisa_apulia_succ.cod_aliq,\n" +
|
||||
" mtb_lisa_apulia_succ.prz_base_prop,\n" +
|
||||
" mtb_lisa_apulia_succ.perc_premio,\n" +
|
||||
" mtb_lisa_apulia_succ.val_premio\n" +
|
||||
" FROM mtb_lisa_apulia_succ\n" +
|
||||
" WHERE " + (importVarFuture?"":"mtb_lisa_apulia_succ.data_prz_acq <= [DATA_IMPORT] AND \n") +
|
||||
" mtb_lisa_apulia_succ.cod_alis NOT IN (SELECT value_string AS cod_alis\n" +
|
||||
" FROM dbo.parsestringintoarray(\n" +
|
||||
" (SELECT dbo.getgestsetup('IMPORT_[TYPE]',\n" +
|
||||
" '[FORMAT]',\n" +
|
||||
" 'LISTINI_DA_ESCLUDERE')),\n" +
|
||||
" '|'))) apulia\n" +
|
||||
" FULL OUTER JOIN (SELECT lisa.cod_alis,\n" +
|
||||
" cod_art_for,\n" +
|
||||
" prz_acq,\n" +
|
||||
" val_promo,\n" +
|
||||
" perc_oneri,\n" +
|
||||
" prz_ven_sug,\n" +
|
||||
" CASE WHEN data_iniz < '2020/01/01' THEN '2020/01/01' ELSE data_iniz END AS data_iniz,\n" +
|
||||
" tipo_variazione\n" +
|
||||
" FROM dbo.getlistinoacquisto([DATA_IMPORT], NULL, NULL, NULL, 'N', NULL) lisa\n" +
|
||||
" LEFT OUTER JOIN (SELECT value_string AS cod_alis\n" +
|
||||
" FROM dbo.parsestringintoarray(\n" +
|
||||
" (SELECT dbo.getgestsetup('IMPORT_[TYPE]',\n" +
|
||||
" '[FORMAT]',\n" +
|
||||
" 'LISTINI_DA_ESCLUDERE')),\n" +
|
||||
" '|')) listini_esclusi\n" +
|
||||
" ON lisa.cod_alis = listini_esclusi.cod_alis\n" +
|
||||
" WHERE lisa.cod_alis LIKE 'AP%'\n" +
|
||||
" AND lisa.tipo_variazione <> 'D'\n" +
|
||||
" AND lisa.tipo_variazione IS NOT NULL\n" +
|
||||
" AND listini_esclusi.cod_alis IS NULL) lisa\n" +
|
||||
" ON apulia.cod_alis = lisa.cod_alis AND apulia.cod_art_for = lisa.cod_art_for\n" +
|
||||
" LEFT OUTER JOIN mtb_lisa ON apulia.cod_alis = mtb_lisa.cod_alis AND apulia.cod_art_for = mtb_lisa.cod_art_for\n" +
|
||||
" LEFT OUTER JOIN mtb_aart ON mtb_lisa.cod_mart = mtb_aart.cod_mart\n" +
|
||||
" LEFT OUTER JOIN (SELECT mtb_grup.cod_mgrp,\n" +
|
||||
" REPLACE(key_section, 'PERC_ONERI:', '') AS tipo_listino,\n" +
|
||||
" ISNULL(CONVERT(NUMERIC(20, 5), stb_gest_setup_det.value), 0) AS perc_oneri\n" +
|
||||
" FROM mtb_grup\n" +
|
||||
" LEFT OUTER JOIN stb_gest_setup_det ON gest_name = 'IMPORT_[TYPE]' AND\n" +
|
||||
" section = '[FORMAT]' AND\n" +
|
||||
" key_section LIKE 'PERC_ONERI%' AND\n" +
|
||||
" mtb_grup.cod_mgrp =\n" +
|
||||
" stb_gest_setup_det.val_col_rif) oneri\n" +
|
||||
" ON apulia.tipo_listino = oneri.tipo_listino AND mtb_aart.cod_mgrp = oneri.cod_mgrp\n" +
|
||||
"WHERE (apulia.data_prz_acq >= [DATA_INIZ_VAR] OR \n " +
|
||||
" ISNULL(lisa.cod_art_for, '') <> ISNULL(apulia.cod_art_for, '')) AND \n" +
|
||||
" (ISNULL(lisa.prz_acq, 0) <> ISNULL(apulia.prz_acq, 0) OR\n" +
|
||||
" ISNULL(lisa.perc_oneri, 0) <> [COLUMN_PERC_ONERI] OR\n" +
|
||||
" ISNULL(lisa.cod_art_for, '') <> ISNULL(apulia.cod_art_for, '') OR\n" +
|
||||
" ISNULL(lisa.val_promo, 0) <> ISNULL(apulia.val_premio, 0)) " )
|
||||
.replace("[COLUMN_DATA_INIZ]", calcDataIniz)
|
||||
.replace("[TYPE]", type)
|
||||
.replace("[FORMAT]", format)
|
||||
.replace("[COLUMN_PERC_ONERI]", columnPercOneri)
|
||||
.replace("[DATA_INIZ_VAR]", UtilityDB.valueDateToString(dataInizVarizioni, CommonConstants.DATE_FORMAT_YMD))
|
||||
.replace("[DATA_IMPORT]", UtilityDB.valueDateToString(dataImport, CommonConstants.DATE_FORMAT_YMD));
|
||||
|
||||
List<ListinoApuliaCarrefourDTO> variazioniListini = UtilityDB.executeSimpleQueryDTO(conn, sql, ListinoApuliaCarrefourDTO.class);
|
||||
return variazioniListini;
|
||||
|
||||
@@ -56,6 +56,7 @@ public class AgribookFieldService {
|
||||
.setNazione("IT")
|
||||
.setLat(dto.getLat())
|
||||
.setLng(dto.getLng())
|
||||
.setCodVzon(dto.getCodVzon())
|
||||
.setPartIva(dto.getPartIva())
|
||||
.setRagSocLegale(dto.getRagSocLegale())
|
||||
.setCodFiscLegale(dto.getCodFiscLegale())
|
||||
@@ -139,6 +140,7 @@ public class AgribookFieldService {
|
||||
.setCodAnag(dto.getCodAnag())
|
||||
.setCodMdep(codMdepDest)
|
||||
.setCodVdes(codVdes)
|
||||
.setCodVzon(dto.getCodVzon())
|
||||
.setDataInizProd(UtilityLocalDate.localDateToDate(dto.getDataInizProd()))
|
||||
.setDtbOrdr(ordrList)
|
||||
.setOperation(OperationType.INSERT);
|
||||
|
||||
@@ -31,6 +31,7 @@ public class AgribookNewFieldRequestDTO {
|
||||
private String datiCatastali;
|
||||
private String note;
|
||||
private String varieta;
|
||||
private String codVzon;
|
||||
private LocalDate dataInizProd;
|
||||
private LocalDate dataOrd;
|
||||
|
||||
@@ -285,4 +286,13 @@ public class AgribookNewFieldRequestDTO {
|
||||
this.provLegale = provLegale;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCodVzon() {
|
||||
return codVzon;
|
||||
}
|
||||
|
||||
public AgribookNewFieldRequestDTO setCodVzon(String codVzon) {
|
||||
this.codVzon = codVzon;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -78,10 +78,10 @@ public class ProductionController {
|
||||
return ServiceRestResponse.createPositiveResponse(productionService.chiudiOrdineLavorazione(chiusuraLavorazioneDTO));
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/creaOrdineProd", method = RequestMethod.POST)
|
||||
@RequestMapping(value = "/saveOrdineProd", method = RequestMethod.POST)
|
||||
public @ResponseBody
|
||||
ServiceRestResponse creaOrdineProd(@RequestBody CreaOrdineProdDTO creaOrdineProdDTO) throws Exception {
|
||||
return ServiceRestResponse.createPositiveResponse(productionService.creaOrdineProd(creaOrdineProdDTO));
|
||||
ServiceRestResponse saveOrdineProd(@RequestBody CreaOrdineProdDTO creaOrdineProdDTO) throws Exception {
|
||||
return ServiceRestResponse.createPositiveResponse(productionService.saveOrdineProd(creaOrdineProdDTO));
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/getArtsProdByCodMart", method = RequestMethod.GET)
|
||||
|
||||
@@ -7,14 +7,17 @@ import java.util.List;
|
||||
|
||||
public class CreaOrdineProdDTO {
|
||||
private LocalDate dataOrd;
|
||||
private Integer numOrd;
|
||||
private String codAnag;
|
||||
private String codVdes;
|
||||
private String codVzon;
|
||||
private String codMdep;
|
||||
private String codMart;
|
||||
private String partitaMag;
|
||||
private BigDecimal numCnf;
|
||||
private BigDecimal valUnt;
|
||||
private BigDecimal colliPedana;
|
||||
private BigDecimal qtaOrd;
|
||||
private String untOrd;
|
||||
private List<ModificheDistintaDTO> modificheDistinta = new ArrayList<>();
|
||||
private String descrizionePartita;
|
||||
@@ -28,6 +31,15 @@ public class CreaOrdineProdDTO {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Integer getNumOrd() {
|
||||
return numOrd;
|
||||
}
|
||||
|
||||
public CreaOrdineProdDTO setNumOrd(Integer numOrd) {
|
||||
this.numOrd = numOrd;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCodAnag() {
|
||||
return codAnag;
|
||||
}
|
||||
@@ -126,4 +138,22 @@ public class CreaOrdineProdDTO {
|
||||
this.descrizionePartita = descrizionePartita;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getQtaOrd() {
|
||||
return qtaOrd;
|
||||
}
|
||||
|
||||
public CreaOrdineProdDTO setQtaOrd(BigDecimal qtaOrd) {
|
||||
this.qtaOrd = qtaOrd;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCodVzon() {
|
||||
return codVzon;
|
||||
}
|
||||
|
||||
public CreaOrdineProdDTO setCodVzon(String codVzon) {
|
||||
this.codVzon = codVzon;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -68,6 +68,7 @@ public class AccettazioneOrtoFruttaDTO {
|
||||
private AccettazioneOrtoFruttaDTO original;
|
||||
private String lottoProduttore;
|
||||
private String modalitaRaccolta;
|
||||
private String codVzon;
|
||||
|
||||
|
||||
public String getGestione() {
|
||||
@@ -639,4 +640,13 @@ public class AccettazioneOrtoFruttaDTO {
|
||||
this.modalitaRaccolta = modalitaRaccolta;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCodVzon() {
|
||||
return codVzon;
|
||||
}
|
||||
|
||||
public AccettazioneOrtoFruttaDTO setCodVzon(String codVzon) {
|
||||
this.codVzon = codVzon;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -142,13 +142,14 @@ public class OrtoFruttaProductionService {
|
||||
List<MtbPartitaMagCarat> datiPartita;
|
||||
MtbPartitaMagCarat lottoProd = new MtbPartitaMagCarat();
|
||||
MtbPartitaMagCarat modalitaRaccolta = new MtbPartitaMagCarat();
|
||||
MtbPartitaMagCarat varietaRaccolta = new MtbPartitaMagCarat();
|
||||
String caratLottoProd = "Lotto Produttore";
|
||||
String caratModalitaRaccolta = "Modalita Raccolta";
|
||||
String caratVarietaRaccolta = "Varieta";
|
||||
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),
|
||||
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()))) {
|
||||
@@ -158,6 +159,9 @@ public class OrtoFruttaProductionService {
|
||||
if (!UtilityString.streNull(dto.getOriginal().getModalitaRaccolta()).equalsIgnoreCase(UtilityString.streNull(dto.getModalitaRaccolta()))) {
|
||||
modalitaRaccolta = datiPartita.stream().filter(x -> x.getCarat().equalsIgnoreCase(caratModalitaRaccolta)).findFirst().orElse(new MtbPartitaMagCarat());
|
||||
}
|
||||
if (!UtilityString.streNull(dto.getOriginal().getModalitaRaccolta()).equalsIgnoreCase(UtilityString.streNull(dto.getModalitaRaccolta()))) {
|
||||
varietaRaccolta = datiPartita.stream().filter(x -> x.getCarat().equalsIgnoreCase(caratVarietaRaccolta)).findFirst().orElse(new MtbPartitaMagCarat());
|
||||
}
|
||||
}
|
||||
}
|
||||
lottoProd
|
||||
@@ -173,7 +177,7 @@ public class OrtoFruttaProductionService {
|
||||
.setActivityId(activityId)
|
||||
.setDataRilevazione(LocalDateTime.now())
|
||||
.setOperation(OperationType.INSERT_OR_UPDATE);
|
||||
modalitaRaccolta
|
||||
varietaRaccolta
|
||||
.setCarat(caratVarietaRaccolta)
|
||||
.setValCarat(dto.getVarieta())
|
||||
.setActivityId(activityId)
|
||||
@@ -182,6 +186,7 @@ public class OrtoFruttaProductionService {
|
||||
datiPartita = new ArrayList<>();
|
||||
datiPartita.add(lottoProd);
|
||||
datiPartita.add(modalitaRaccolta);
|
||||
datiPartita.add(varietaRaccolta);
|
||||
|
||||
MtbPartitaMag part = new MtbPartitaMag();
|
||||
part
|
||||
@@ -231,6 +236,7 @@ public class OrtoFruttaProductionService {
|
||||
.setTargaRim(dto.getTargaRim())
|
||||
.setActivityId(activityId)
|
||||
.setCodVvet(dto.getCodVvet())
|
||||
.setCodVzon(dto.getCodVzon())
|
||||
.setOperation(OperationType.INSERT_OR_UPDATE);
|
||||
|
||||
entityProcessor.processEntity(docLav, true, multiDBTransactionManager);
|
||||
@@ -514,6 +520,7 @@ public class OrtoFruttaProductionService {
|
||||
.setCodAnag(dto.getCodAnag())
|
||||
.setCodVdes(ordAcq.getCodVdes())
|
||||
.setSerDoc(dto.getSerDocProvv())
|
||||
.setCodVzon(dto.getCodVzon())
|
||||
.setDataOrd(ordAcq.getDataOrd())
|
||||
.setNumOrd(ordAcq.getNumOrd())
|
||||
.setCodMdep(ordAcq.getCodMdep())
|
||||
|
||||
@@ -10,8 +10,6 @@ import it.integry.ems.exception.PrimaryDatabaseNotPresentException;
|
||||
import it.integry.ems.production.dto.*;
|
||||
import it.integry.ems.rules.businessLogic.LoadColliService;
|
||||
import it.integry.ems.rules.businessLogic.dto.LoadColliDTO;
|
||||
import it.integry.ems.rules.completing.PartitaMagRules;
|
||||
import it.integry.ems.rules.completing.dto.DatiPartitaMagDTO;
|
||||
import it.integry.ems.service.EntityProcessor;
|
||||
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||
import it.integry.ems.utility.UtilityEntity;
|
||||
@@ -965,7 +963,7 @@ public class ProductionService {
|
||||
return ordineLav;
|
||||
}
|
||||
|
||||
public DtbOrdt creaOrdineProd(CreaOrdineProdDTO creaOrdineProdDTO) throws Exception {
|
||||
public DtbOrdt saveOrdineProd(CreaOrdineProdDTO creaOrdineProdDTO) throws Exception {
|
||||
if (ObjectUtils.anyNull(
|
||||
creaOrdineProdDTO.getDataOrd(),
|
||||
creaOrdineProdDTO.getCodAnag(),
|
||||
@@ -979,26 +977,32 @@ public class ProductionService {
|
||||
|
||||
Date dataOrd = Date.from(creaOrdineProdDTO.getDataOrd().atStartOfDay(ZoneId.systemDefault()).toInstant());
|
||||
|
||||
DtbOrdr rigaOrdProd = new DtbOrdr()
|
||||
.setCodMart(creaOrdineProdDTO.getCodMart())
|
||||
DtbOrdr rigaOrdProd = getRigaOrdProdFromOrdLav(dataOrd, creaOrdineProdDTO.getNumOrd());
|
||||
if (rigaOrdProd == null) {
|
||||
rigaOrdProd = new DtbOrdr();
|
||||
}
|
||||
rigaOrdProd.setCodMart(creaOrdineProdDTO.getCodMart())
|
||||
.setPartitaMag(creaOrdineProdDTO.getPartitaMag())
|
||||
.setValUnt(creaOrdineProdDTO.getValUnt())
|
||||
.setNumCnf(creaOrdineProdDTO.getNumCnf())
|
||||
.setQtaOrd(creaOrdineProdDTO.getQtaOrd())
|
||||
.setColliPedana(creaOrdineProdDTO.getColliPedana())
|
||||
.setUntOrd(creaOrdineProdDTO.getUntOrd());
|
||||
.setUntOrd(creaOrdineProdDTO.getUntOrd())
|
||||
.setOperation(creaOrdineProdDTO.getNumOrd() != null ? OperationType.UPDATE : OperationType.INSERT_OR_UPDATE);
|
||||
|
||||
rigaOrdProd.setOperation(OperationType.INSERT);
|
||||
|
||||
DtbOrdt testataOrdProd = new DtbOrdt()
|
||||
.setGestione("A")
|
||||
.setGestione(UtilityString.isNull(rigaOrdProd.getGestione(), "A"))
|
||||
.setGestioneRif("A")
|
||||
.setDataOrd(dataOrd)
|
||||
.setNumOrd(rigaOrdProd.getNumOrd())
|
||||
.setCodAnag(creaOrdineProdDTO.getCodAnag())
|
||||
.setCodVdes(creaOrdineProdDTO.getCodVdes())
|
||||
.setCodMdep(creaOrdineProdDTO.getCodMdep())
|
||||
.setCodVzon(creaOrdineProdDTO.getCodVzon())
|
||||
.addDtbOrdr(rigaOrdProd);
|
||||
|
||||
testataOrdProd.setOperation(OperationType.INSERT);
|
||||
testataOrdProd.setOperation(creaOrdineProdDTO.getNumOrd() != null ? OperationType.UPDATE : OperationType.INSERT_OR_UPDATE);
|
||||
|
||||
entityProcessor.processEntity(testataOrdProd, multiDBTransactionManager);
|
||||
UtilityEntity.throwEntityException(testataOrdProd);
|
||||
@@ -1011,6 +1015,7 @@ public class ProductionService {
|
||||
DtbOrdt ordLav = new DtbOrdt();
|
||||
ordLav.setOperation(OperationType.NO_OP);
|
||||
ordLav.setGestione("L")
|
||||
.setCodVzon(creaOrdineProdDTO.getCodVzon())
|
||||
.setDataOrd(rigaOrdProd.getDataOrdRif())
|
||||
.setNumOrd(rigaOrdProd.getNumOrdRif());
|
||||
for (ModificheDistintaDTO mod : creaOrdineProdDTO.getModificheDistinta()) {
|
||||
@@ -1036,6 +1041,22 @@ public class ProductionService {
|
||||
return testataOrdProd;
|
||||
}
|
||||
|
||||
private DtbOrdr getRigaOrdProdFromOrdLav(Date dataOrd, Integer numOrd) throws Exception {
|
||||
String sql = Query.format(
|
||||
"SELECT rowProd.*\n" +
|
||||
"FROM dtb_ordr rowProd\n" +
|
||||
" INNER JOIN dtb_ordt ordLav ON\n" +
|
||||
" ordLav.data_ord_rif = rowProd.data_ord\n" +
|
||||
" AND ordLav.num_ord_rif = rowProd.num_ord\n" +
|
||||
" AND rowProd.gestione = 'A'\n" +
|
||||
" AND ordLav.gestione = 'L'\n" +
|
||||
" AND ordLav.riga_ord_rif = rowProd.riga_ord\n" +
|
||||
"WHERE ordLav.data_ord = %s and ordLav.num_ord = %s",
|
||||
UtilityDate.formatDate(dataOrd, CommonConstants.DATE_FORMAT_YMD), numOrd);
|
||||
|
||||
return UtilityDB.executeSimpleQueryOnlyFirstRowDTO(multiDBTransactionManager.getPrimaryConnection(), sql, DtbOrdr.class);
|
||||
}
|
||||
|
||||
public List<MtbAart> getArtsProdByCodMart(String codMart) throws SQLException, IOException, PrimaryDatabaseNotPresentException, DataConverterNotFoundException, InstantiationException, IllegalAccessException {
|
||||
String sql = Query.format(
|
||||
"SELECT cod_prod AS cod_mart,\n" +
|
||||
|
||||
@@ -102,7 +102,7 @@ public class VariazioniPvExportServices {
|
||||
String codVlis = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), query);
|
||||
if (!UtilityString.isNullOrEmpty(codVlis)) {
|
||||
whereCond = "vtb_list.cod_vlis = " + UtilityDB.valueToString(codVlis);
|
||||
variazioniPvDTO.setWhereCondArt(whereCond);
|
||||
variazioniPvDTO.setWhereCondLisv(whereCond);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -767,14 +767,15 @@ public class PvmService {
|
||||
String filtroArticoli = setupGest.getSetup(conn, "PVM", "DOC_INTERNI", "FILTRO_ARTICOLI");
|
||||
String campoFiltro = setupGest.getSetup(conn, "PVM", "DOC_INTERNI", "CAMPO_FILTRO_ARTICOLI");
|
||||
if (!UtilityString.isNullOrEmpty(filtroArticoli)) {
|
||||
ObjectMapper objectMapper = new ObjectMapper();
|
||||
TypeReference<List<FiltroArtDTO>> mapType = new TypeReference<List<FiltroArtDTO>>() {
|
||||
};
|
||||
filtroDTO = objectMapper.readValue(filtroArticoli, mapType);
|
||||
final Optional<FiltroArtDTO> filtro = Stream.of(filtroDTO)
|
||||
filtroDTO = jsonObjectMapper.readValue(filtroArticoli, mapType);
|
||||
|
||||
final java.util.Optional<FiltroArtDTO> filtro = filtroDTO.stream()
|
||||
.filter(filtroArtDTO -> filtroArtDTO.getCodDtip().equalsIgnoreCase(codDtip) &&
|
||||
filtroArtDTO.getCodMdep() == null || filtroArtDTO.getCodMdep().equalsIgnoreCase(codMdep))
|
||||
(filtroArtDTO.getCodMdep() == null || filtroArtDTO.getCodMdep().equalsIgnoreCase(codMdep)))
|
||||
.findFirst();
|
||||
|
||||
if (filtro.isPresent()) {
|
||||
whereCondArticoli = filtro.get().getWhereCond();
|
||||
}
|
||||
@@ -2906,7 +2907,7 @@ public class PvmService {
|
||||
|
||||
} else if ("L".equalsIgnoreCase(gestione) && docFromPickingDTO.getColli().size() == 1 && isDocNote(whereCondColli)) {
|
||||
//Salviamo solo la data documento
|
||||
query = "SELECT gestione, data_collo , ser_collo , num_collo , Cast(getDate() as date) as data_doc, cod_dtip_provv as cod_dtip FROM mtb_colt ";
|
||||
query = "SELECT gestione, data_collo , ser_collo , num_collo , CAST(getDate() AS DATE) AS data_doc, cod_dtip_provv AS cod_dtip FROM mtb_colt ";
|
||||
query = UtilityDB.addwhereCond(query, whereCondColli, false);
|
||||
|
||||
MtbColt collo = UtilityDB.executeSimpleQueryOnlyFirstRowDTO(multiDBTransactionManager.getPrimaryConnection(), query, MtbColt.class);
|
||||
@@ -2968,12 +2969,12 @@ public class PvmService {
|
||||
" mtb_colt.data_ord, " +
|
||||
" mtb_colt.num_ord, " +
|
||||
" mtb_colt.gestione + '|' + " +
|
||||
" case when mtb_colt.gestione = 'L' THEN '' ELSE mtb_colt.cod_anag END + '|' + " +
|
||||
" case when mtb_colt.gestione = 'L' THEN '' ELSE IsNull(mtb_colt.cod_vdes,'') END + '|' + " +
|
||||
" case when mtb_colt.gestione = 'L' THEN '' ELSE IsNull(dtb_ordt.listino,'') END + '|' + " +
|
||||
" mtb_colt.cod_mdep as gruppo, " +
|
||||
" CASE WHEN mtb_colt.gestione = 'L' THEN '' ELSE mtb_colt.cod_anag END + '|' + " +
|
||||
" CASE WHEN mtb_colt.gestione = 'L' THEN '' ELSE IsNull(mtb_colt.cod_vdes,'') END + '|' + " +
|
||||
" CASE WHEN mtb_colt.gestione = 'L' THEN '' ELSE IsNull(dtb_ordt.listino,'') END + '|' + " +
|
||||
" mtb_colt.cod_mdep AS gruppo, " +
|
||||
" vtb_clie.cod_dtip_sped, " +
|
||||
" Round(sum(qta_col), 3) as tot_qta " +
|
||||
" Round(SUM(qta_col), 3) AS tot_qta " +
|
||||
" FROM mtb_colt INNER JOIN mtb_colr ON mtb_colt.gestione = mtb_colr.gestione AND " +
|
||||
" mtb_colt.data_collo = mtb_colr.data_collo AND " +
|
||||
" mtb_colt.ser_collo = mtb_colr.ser_collo AND " +
|
||||
@@ -2993,9 +2994,9 @@ public class PvmService {
|
||||
" mtb_colt.num_ord, " +
|
||||
" vtb_clie.cod_dtip_sped, " +
|
||||
" mtb_colt.gestione + '|' + " +
|
||||
" case when mtb_colt.gestione = 'L' THEN '' ELSE mtb_colt.cod_anag END + '|' + " +
|
||||
" case when mtb_colt.gestione = 'L' THEN '' ELSE IsNull(mtb_colt.cod_vdes,'') END + '|' + " +
|
||||
" case when mtb_colt.gestione = 'L' THEN '' ELSE IsNull(dtb_ordt.listino,'') END + '|' + " +
|
||||
" CASE WHEN mtb_colt.gestione = 'L' THEN '' ELSE mtb_colt.cod_anag END + '|' + " +
|
||||
" CASE WHEN mtb_colt.gestione = 'L' THEN '' ELSE IsNull(mtb_colt.cod_vdes,'') END + '|' + " +
|
||||
" CASE WHEN mtb_colt.gestione = 'L' THEN '' ELSE IsNull(dtb_ordt.listino,'') END + '|' + " +
|
||||
" mtb_colt.cod_mdep " +
|
||||
"ORDER BY mtb_colt.gestione, mtb_colt.cod_anag, mtb_colt.cod_vdes, mtb_colt.cod_mdep, mtb_colt.data_collo, mtb_colt.num_collo ";
|
||||
query = UtilityDB.addwhereCond(query, whereCondColli, false);
|
||||
@@ -3197,12 +3198,12 @@ public class PvmService {
|
||||
|
||||
query =
|
||||
"SELECT wtb_users.user_name, wtb_users.password, wtb_users_info.format_file, COUNT(wtb_users_info.format_file) over (partition by wtb_users_info.user_name) as count_export" +
|
||||
" FROM wtb_users " +
|
||||
" FROM wtb_users " +
|
||||
"INNER JOIN wtb_users_info ON wtb_users.User_name = wtb_users_info.user_name " +
|
||||
"LEFT OUTER JOIN wtb_clie ON wtb_users.User_name = wtb_clie.user_name AND wtb_users_info.export_type = 'DOCUMENTI VENDITA' " +
|
||||
"LEFT OUTER JOIN wtb_forn ON wtb_users.User_name = wtb_forn.user_name AND wtb_users_info.export_type <> 'DOCUMENTI VENDITA'" +
|
||||
" WHERE wtb_users_info.flag_state = 'S' and " +
|
||||
" wtb_users_info.export_type = " + UtilityDB.valueToString(exportType);
|
||||
" WHERE wtb_users_info.flag_state = 'S' and " +
|
||||
" wtb_users_info.export_type = " + UtilityDB.valueToString(exportType);
|
||||
|
||||
query = UtilityDB.addwhereCond(query, whereCondAnag, true);
|
||||
HashMap<String, Object> datiExport = UtilityDB.executeSimpleQueryOnlyFirstRow(multiDBTransactionManager.getPrimaryConnection(), query);
|
||||
|
||||
@@ -638,7 +638,6 @@ public class GiacenzaService {
|
||||
" ON k.cod_mart = r.cod_mart),\n" +
|
||||
" final AS (SELECT cod_mart, qta_inv, data_inventario\n" +
|
||||
" FROM inv\n" +
|
||||
" WHERE qta_inv != 0\n" +
|
||||
" UNION\n" +
|
||||
" SELECT mtb_comp.cod_mart,\n" +
|
||||
" ROUND(SUM(ISNULL(qta_inv, 0)) / SUM(qta_std), 2),\n" +
|
||||
|
||||
@@ -22,15 +22,16 @@ public class WMSDocumentController {
|
||||
@Autowired
|
||||
private WMSDocumentService wmsDocumentService;
|
||||
|
||||
@RequestMapping(value = "/checkFruma", method = RequestMethod.GET)
|
||||
@RequestMapping(value = "/checkDoc", method = RequestMethod.GET)
|
||||
public @ResponseBody
|
||||
ServiceRestResponse checkDocument(@RequestParam(CommonConstants.PROFILE_DB) String profileDB,
|
||||
@RequestParam String fornitore,
|
||||
@RequestParam String numDoc,
|
||||
@RequestParam Date dataDoc) throws Exception {
|
||||
@RequestParam(required = false) String fornitore,
|
||||
@RequestParam(required = false) String numDoc,
|
||||
@RequestParam(required = false) String tipoDoc,
|
||||
@RequestParam(required = false) Date dataDoc) throws Exception {
|
||||
|
||||
return ServiceRestResponse.createPositiveResponse(
|
||||
wmsDocumentService.checkFrumaDoc(fornitore, numDoc, dataDoc)
|
||||
wmsDocumentService.checkDoc(fornitore, numDoc, dataDoc, tipoDoc)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@ import it.integry.ems.retail.wms.documenti.dto.DocumentArtDTO;
|
||||
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||
import it.integry.ems_model.entity.MtbUntMis;
|
||||
import it.integry.ems_model.entity._enum.GestioneEnum;
|
||||
import it.integry.ems_model.service.SetupGest;
|
||||
import it.integry.ems_model.utility.Query;
|
||||
import it.integry.ems_model.utility.UtilityDB;
|
||||
import it.integry.ems_model.utility.UtilityString;
|
||||
@@ -15,6 +16,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Scope;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.sql.Connection;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@@ -32,36 +34,35 @@ public class WMSDocumentService {
|
||||
@Autowired
|
||||
private MultiDBTransactionManager multiDBTransactionManager;
|
||||
|
||||
public Boolean checkFrumaDoc(String fornitore, String numDoc, Date dataDoc) throws Exception {
|
||||
String sql =
|
||||
Query.format("SELECT *\n" +
|
||||
@Autowired
|
||||
private SetupGest setupGest;
|
||||
|
||||
public Boolean checkDoc(String fornitore, String numDoc, Date dataDoc, String tipoDoc) throws Exception {
|
||||
Connection conn = multiDBTransactionManager.getPrimaryConnection();
|
||||
String doc = setupGest.getSetupDet(conn, "PVM", "DOC_INTERNI", "CHECK_RIF_DOC", tipoDoc);
|
||||
|
||||
if (doc == null) return true;
|
||||
|
||||
String sql = Query.format("SELECT gestione FROM dtb_tipi WHERE cod_dtip = %s", tipoDoc);
|
||||
String gestione = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(conn, sql);
|
||||
|
||||
sql =
|
||||
String.format("SELECT *\n" +
|
||||
"FROM wdtb_doct\n" +
|
||||
"WHERE wdtb_doct.data_doc = %s\n" +
|
||||
" AND wdtb_doct.cod_anag = %s\n" +
|
||||
(gestione.equalsIgnoreCase("L") ? "" : " AND wdtb_doct.cod_anag = " + UtilityDB.valueToString(fornitore) + "\n") +
|
||||
" AND wdtb_doct.num_doc = %s\n" +
|
||||
" AND wdtb_doct.gestione = 'A'\n",
|
||||
dataDoc,
|
||||
fornitore,
|
||||
numDoc
|
||||
" AND wdtb_doct.cod_dtip IN (%S)\n",
|
||||
UtilityDB.valueToString(dataDoc),
|
||||
UtilityDB.valueToString(numDoc),
|
||||
UtilityDB.listValueToString(Arrays.asList(doc.split("\\|")))
|
||||
);
|
||||
|
||||
List<HashMap<String, Object>> hashMaps = UtilityDB.executeSimpleQuery(multiDBTransactionManager.getPrimaryConnection(), sql);
|
||||
|
||||
if ( hashMaps.isEmpty() ) {
|
||||
if (hashMaps.isEmpty()) {
|
||||
|
||||
sql =
|
||||
Query.format("SELECT *\n" +
|
||||
"FROM dtb_doct\n" +
|
||||
" INNER JOIN dtb_tipi ON dtb_doct.cod_dtip = dtb_tipi.cod_dtip\n" +
|
||||
"WHERE dtb_doct.data_doc = %s\n" +
|
||||
" AND dtb_doct.cod_anag = %s\n" +
|
||||
" AND dtb_doct.num_doc = %s\n" +
|
||||
" AND dtb_tipi.gestione = 'A'\n" +
|
||||
" AND dtb_tipi.segno_qta_car >= 1",
|
||||
dataDoc,
|
||||
fornitore,
|
||||
numDoc
|
||||
);
|
||||
sql = sql.replaceAll("wdtb_doct", "dtb_doct");
|
||||
|
||||
hashMaps = UtilityDB.executeSimpleQuery(multiDBTransactionManager.getPrimaryConnection(), sql);
|
||||
}
|
||||
|
||||
@@ -28,6 +28,7 @@ import it.integry.ems.service.PrinterService;
|
||||
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||
import it.integry.ems.user.UserSession;
|
||||
import it.integry.ems.utility.UtilityEntity;
|
||||
import it.integry.ems.utility.UtilityLogger;
|
||||
import it.integry.ems_model.base.EntityBase;
|
||||
import it.integry.ems_model.db.ResultSetMapper;
|
||||
import it.integry.ems_model.entity.*;
|
||||
@@ -2182,9 +2183,11 @@ public class WMSGenericService {
|
||||
}
|
||||
|
||||
if (!UtilityBigDecimal.equalsTo(qtaScaricata, qtaDaScaricare)) {
|
||||
anomalieList.add(AnomalieDTO.warning("Non è stato possibile scaricare tutta la quantita di materia prima richiesta dalla posizione " + scaricoMateriaPrimaDTO.getPosizione() +
|
||||
String warning = "Non è stato possibile scaricare tutta la quantita di materia prima richiesta dalla posizione " + scaricoMateriaPrimaDTO.getPosizione() +
|
||||
" dell'articolo " + giacInPosizioneMapByCodMart.getKey() + ". " +
|
||||
"E' stata richiesta una quantità di " + UtilityBigDecimal.round(qtaDaScaricare, 3) + " e non è stato possibile scaricarne " + UtilityBigDecimal.round(qtaDaScaricare.subtract(qtaScaricata), 3)));
|
||||
"E' stata richiesta una quantità di " + UtilityBigDecimal.round(qtaDaScaricare, 3) + " e non è stato possibile scaricarne " + UtilityBigDecimal.round(qtaDaScaricare.subtract(qtaScaricata), 3);
|
||||
logger.error(warning);
|
||||
anomalieList.add(AnomalieDTO.warning(warning));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1387,15 +1387,9 @@ public class SystemController {
|
||||
|
||||
@RequestMapping(value = EmsRestConstants.PATH_OBJECT_STORAGE_ORPHAN_FILES_CLEANER, method = RequestMethod.POST)
|
||||
public ServiceRestResponse objectStorageOrphanFilesCleaner(HttpServletRequest request,
|
||||
@RequestParam(CommonConstants.PROFILE_DB) String configuration) {
|
||||
|
||||
try {
|
||||
systemService.minioOrphanFilesCleaner();
|
||||
return ServiceRestResponse.createPositiveResponse();
|
||||
} catch (Exception ex) {
|
||||
logger.error(request.getRequestURI(), ex);
|
||||
return new ServiceRestResponse(EsitoType.KO, configuration, ex);
|
||||
}
|
||||
@RequestParam(CommonConstants.PROFILE_DB) String configuration) throws Exception {
|
||||
systemService.minioOrphanFilesCleaner();
|
||||
return ServiceRestResponse.createPositiveResponse();
|
||||
}
|
||||
|
||||
@RequestMapping(value = EmsRestConstants.PATH_DEFAULT_AZIENDA, method = RequestMethod.GET)
|
||||
@@ -1693,7 +1687,7 @@ public class SystemController {
|
||||
|
||||
final List<MtbColt> mtbColtsToFix = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), queryRetrieveColli, MtbColt.class);
|
||||
|
||||
if(mtbColtsToFix == null || mtbColtsToFix.isEmpty())
|
||||
if (mtbColtsToFix == null || mtbColtsToFix.isEmpty())
|
||||
return ServiceRestResponse.createPositiveResponse();
|
||||
|
||||
for (MtbColt mtbColtToFix : mtbColtsToFix) {
|
||||
|
||||
@@ -57,6 +57,8 @@ public class CertificatiSinfoOneDTO {
|
||||
private BigDecimal scartoCq;
|
||||
@SqlField("cod_vvet")
|
||||
private String codVvet;
|
||||
@SqlField("cod_vzon")
|
||||
private String codVzon;
|
||||
@SqlField("vettore")
|
||||
private String vettore;
|
||||
|
||||
@@ -293,4 +295,13 @@ public class CertificatiSinfoOneDTO {
|
||||
this.vettore = vettore;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCodVzon() {
|
||||
return codVzon;
|
||||
}
|
||||
|
||||
public CertificatiSinfoOneDTO setCodVzon(String codVzon) {
|
||||
this.codVzon = codVzon;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -80,6 +80,8 @@ public class ExchangeCampiRaccoltaDTO implements EquatableEntityInterface<Exchan
|
||||
private boolean newPartita;
|
||||
@SqlField("note")
|
||||
private String note;
|
||||
@SqlField("codVzon")
|
||||
private String codVzon;
|
||||
|
||||
public String getCodAnag() {
|
||||
return codAnag;
|
||||
@@ -321,7 +323,37 @@ public class ExchangeCampiRaccoltaDTO implements EquatableEntityInterface<Exchan
|
||||
if (this == o) return true;
|
||||
if (!(o instanceof ExchangeCampiRaccoltaDTO)) return false;
|
||||
ExchangeCampiRaccoltaDTO that = (ExchangeCampiRaccoltaDTO) o;
|
||||
return isNewDest() == that.isNewDest() && isNewPartita() == that.isNewPartita() && Objects.equals(getPartitaMag(), that.getPartitaMag()) && Objects.equals(getCodAnag(), that.getCodAnag()) && Objects.equals(getRagSoc(), that.getRagSoc()) && Objects.equals(getCodVdes(), that.getCodVdes()) && Objects.equals(getProduttore(), that.getProduttore()) && Objects.equals(getCooperativa(), that.getCooperativa()) && Objects.equals(getIndirizzoCoop(), that.getIndirizzoCoop()) && Objects.equals(getCittaCoop(), that.getCittaCoop()) && Objects.equals(getCapCoop(), that.getCapCoop()) && Objects.equals(getProvCoop(), that.getProvCoop()) && Objects.equals(getPartIvaCoop(), that.getPartIvaCoop()) && Objects.equals(getOp(), that.getOp()) && Objects.equals(getCodAnagProd(), that.getCodAnagProd()) && Objects.equals(getRagSocProd(), that.getRagSocProd()) && Objects.equals(getIndirizzoProd(), that.getIndirizzoProd()) && Objects.equals(getCittaProd(), that.getCittaProd()) && Objects.equals(getCapProd(), that.getCapProd()) && Objects.equals(getProvProd(), that.getProvProd()) && Objects.equals(getPartIvaProd(), that.getPartIvaProd()) && Objects.equals(getCodMartMp(), that.getCodMartMp()) && Objects.equals(getCodMartMg(), that.getCodMartMg()) && Objects.equals(getVarieta(), that.getVarieta()) && Objects.equals(getLottoFornitore(), that.getLottoFornitore()) && Objects.equals(getValUnt(), that.getValUnt()) && Objects.equals(getUntMis(), that.getUntMis()) && Objects.equals(getQtaAttesa(), that.getQtaAttesa()) && Objects.equals(getDataInizProd(), that.getDataInizProd()) && Objects.equals(getNote(), that.getNote());
|
||||
return isNewDest() == that.isNewDest() &&
|
||||
isNewPartita() == that.isNewPartita() &&
|
||||
Objects.equals(getPartitaMag(), that.getPartitaMag()) &&
|
||||
Objects.equals(getCodAnag(), that.getCodAnag()) &&
|
||||
Objects.equals(getRagSoc(), that.getRagSoc()) &&
|
||||
Objects.equals(getCodVdes(), that.getCodVdes()) &&
|
||||
Objects.equals(getProduttore(), that.getProduttore()) &&
|
||||
Objects.equals(getCooperativa(), that.getCooperativa()) &&
|
||||
Objects.equals(getIndirizzoCoop(), that.getIndirizzoCoop()) &&
|
||||
Objects.equals(getCittaCoop(), that.getCittaCoop()) &&
|
||||
Objects.equals(getCapCoop(), that.getCapCoop()) &&
|
||||
Objects.equals(getProvCoop(), that.getProvCoop()) &&
|
||||
Objects.equals(getPartIvaCoop(), that.getPartIvaCoop()) &&
|
||||
Objects.equals(getOp(), that.getOp()) &&
|
||||
Objects.equals(getCodAnagProd(), that.getCodAnagProd()) &&
|
||||
Objects.equals(getRagSocProd(), that.getRagSocProd()) &&
|
||||
Objects.equals(getIndirizzoProd(), that.getIndirizzoProd()) &&
|
||||
Objects.equals(getCittaProd(), that.getCittaProd()) &&
|
||||
Objects.equals(getCapProd(), that.getCapProd()) &&
|
||||
Objects.equals(getProvProd(), that.getProvProd()) &&
|
||||
Objects.equals(getPartIvaProd(), that.getPartIvaProd()) &&
|
||||
Objects.equals(getCodMartMp(), that.getCodMartMp()) &&
|
||||
Objects.equals(getCodMartMg(), that.getCodMartMg()) &&
|
||||
Objects.equals(getVarieta(), that.getVarieta()) &&
|
||||
Objects.equals(getLottoFornitore(), that.getLottoFornitore()) &&
|
||||
Objects.equals(getValUnt(), that.getValUnt()) &&
|
||||
Objects.equals(getUntMis(), that.getUntMis()) &&
|
||||
Objects.equals(getQtaAttesa(), that.getQtaAttesa()) &&
|
||||
Objects.equals(getDataInizProd(), that.getDataInizProd()) &&
|
||||
Objects.equals(getNote(), that.getNote()) &&
|
||||
Objects.equals(getCodVzon(), that.getCodVzon()) ;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -606,4 +638,13 @@ public class ExchangeCampiRaccoltaDTO implements EquatableEntityInterface<Exchan
|
||||
this.newPartita = newPartita;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCodVzon() {
|
||||
return codVzon;
|
||||
}
|
||||
|
||||
public ExchangeCampiRaccoltaDTO setCodVzon(String codVzon) {
|
||||
this.codVzon = codVzon;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,12 +21,13 @@ import org.springframework.stereotype.Service;
|
||||
|
||||
import java.sql.Connection;
|
||||
import java.time.LocalDate;
|
||||
import java.util.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static java.util.stream.Collectors.groupingBy;
|
||||
|
||||
@SuppressWarnings("rawtypes")
|
||||
@Service
|
||||
public class ExchangeColliImportService {
|
||||
@@ -89,7 +90,7 @@ public class ExchangeColliImportService {
|
||||
testataTableName = null;
|
||||
}
|
||||
|
||||
final List<MtbColt> exchangeImportedMtbColts = importColliLavorazione(
|
||||
List<MtbColt> exchangeImportedMtbColts = importColliLavorazione(
|
||||
exchangeMultiDb.getPrimaryConnection(),
|
||||
UtilityLocalDate.getNow().minusWeeks(1),
|
||||
UtilityLocalDate.getNow(),
|
||||
@@ -101,7 +102,6 @@ public class ExchangeColliImportService {
|
||||
UtilityLocalDate.getNow(),
|
||||
false, useTempTable, testataTableName, righeTableName);
|
||||
|
||||
|
||||
List<EquatableEntityInterface> importedMtbColts = exchangeImportedMtbColts.stream()
|
||||
.map(x -> (EquatableEntityInterface) x)
|
||||
.collect(Collectors.toList());
|
||||
@@ -113,7 +113,11 @@ public class ExchangeColliImportService {
|
||||
List<EquatableEntityInterface> allMtbColts = exchangeImportDataManagerService
|
||||
.runSync(MtbColt.class, importedMtbColts, updatedMtbColts);
|
||||
|
||||
allMtbColts.forEach(x -> x.setOperation(x.getOperation() == OperationType.INSERT ? OperationType.INSERT_OR_UPDATE : x.getOperation()));
|
||||
allMtbColts.forEach(x -> {
|
||||
x.setOperation(x.getOperation() == OperationType.INSERT ? OperationType.INSERT_OR_UPDATE : x.getOperation());
|
||||
((MtbColt)x).getMtbColr().forEach(y -> y.setOperation(y.getOperation() == OperationType.INSERT ? OperationType.INSERT_OR_UPDATE : y.getOperation()));
|
||||
});
|
||||
|
||||
|
||||
AtomicInteger importedCounter = new AtomicInteger();
|
||||
|
||||
@@ -185,10 +189,6 @@ public class ExchangeColliImportService {
|
||||
mtbColrLavTableName, Query.format("data_collo BETWEEN {} AND {}", minDate, maxDate), retrieveAlreadyImported);
|
||||
|
||||
|
||||
final Map<Integer, List<MtbColr>> testGroupBy = mtbColrLav.parallelStream()
|
||||
.collect(groupingBy(x -> Objects.hash(x.getGestione(), x.getNumCollo(), x.getDataCollo(), x.getSerCollo())));
|
||||
|
||||
|
||||
mtbColtLav
|
||||
.parallelStream()
|
||||
.forEach(x -> {
|
||||
@@ -251,6 +251,7 @@ public class ExchangeColliImportService {
|
||||
" data_ora_lordo AS dataOraLordo,\n" +
|
||||
" CONVERT(NUMERIC(15, 3), sconto8) AS sconto8,\n" +
|
||||
" cod_vettore AS cod_vvet,\n" +
|
||||
" cod_vzon AS cod_vzon,\n" +
|
||||
" vettore AS vettore,\n" +
|
||||
" CONVERT(NUMERIC(15, 3), PMB_SCARTO_CQ) AS scartoCq\n " +
|
||||
"FROM s1_Certificati\n" +
|
||||
|
||||
@@ -82,23 +82,12 @@ public class ExchangeDocumentImportService {
|
||||
List<EquatableEntityInterface> allRigheData = exchangeImportDataManagerService
|
||||
.runSync(DtbDocr.class, exchangeImportedRigheData, exchangeUpdatedRigheData);
|
||||
|
||||
allTestateData.parallelStream().forEach(x -> ((DtbDoct) x).setUpdProgMaga(false));
|
||||
allTestateData.parallelStream().forEach(x -> {
|
||||
((DtbDoct) x).setUpdProgMaga(false);
|
||||
// .setOperation(x.getOperation() == OperationType.INSERT ? OperationType.INSERT_OR_UPDATE : x.getOperation());
|
||||
// ((DtbDoct) x).getDtbDocr().parallelStream().forEach(y -> y.setOperation(y.getOperation() == OperationType.INSERT ? OperationType.INSERT_OR_UPDATE : y.getOperation()));
|
||||
|
||||
allTestateData.parallelStream()
|
||||
.map(x -> (DtbDoct) x)
|
||||
.forEach(x ->
|
||||
x.setDtbDocr(allRigheData.stream()
|
||||
.map(y -> (DtbDocr) y)
|
||||
.filter(y ->
|
||||
Objects.hash(x.getDataDoc(), x.getNumDoc(), x.getSerDoc(), x.getCodAnag(), x.getCodDtip()) ==
|
||||
Objects.hash(y.getDataDoc(), y.getNumDoc(), y.getSerDoc(), y.getCodAnag(), y.getCodDtip()) &&
|
||||
|
||||
(Objects.equals(x.getCodAnag(), y.getCodAnag()) &&
|
||||
Objects.equals(x.getCodDtip(), y.getCodDtip()) &&
|
||||
Objects.equals(x.getDataDoc(), y.getDataDoc()) &&
|
||||
Objects.equals(x.getNumDoc(), y.getNumDoc()) &&
|
||||
Objects.equals(x.getSerDoc(), y.getSerDoc())))
|
||||
.collect(Collectors.toList())));
|
||||
});
|
||||
|
||||
allRigheData.stream()
|
||||
.map(x -> (DtbDocr) x)
|
||||
@@ -118,12 +107,29 @@ public class ExchangeDocumentImportService {
|
||||
.setDataDoc(x.getDataDoc())
|
||||
.setNumDoc(x.getNumDoc())
|
||||
.setCodDtip(x.getCodDtip())
|
||||
.setCodAnag(x.getCodAnag());
|
||||
.setCodAnag(x.getCodAnag())
|
||||
.setUpdProgMaga(false);
|
||||
|
||||
testata.setOperation(OperationType.UPDATE);
|
||||
allTestateData.add(testata);
|
||||
});
|
||||
|
||||
allTestateData.parallelStream()
|
||||
.map(x -> (DtbDoct) x)
|
||||
.forEach(x ->
|
||||
x.setDtbDocr(allRigheData.stream()
|
||||
.map(y -> (DtbDocr) y)
|
||||
.filter(y ->
|
||||
Objects.hash(x.getDataDoc(), x.getNumDoc(), x.getSerDoc(), x.getCodAnag(), x.getCodDtip()) ==
|
||||
Objects.hash(y.getDataDoc(), y.getNumDoc(), y.getSerDoc(), y.getCodAnag(), y.getCodDtip()) &&
|
||||
|
||||
(Objects.equals(x.getCodAnag(), y.getCodAnag()) &&
|
||||
Objects.equals(x.getCodDtip(), y.getCodDtip()) &&
|
||||
Objects.equals(x.getDataDoc(), y.getDataDoc()) &&
|
||||
Objects.equals(x.getNumDoc(), y.getNumDoc()) &&
|
||||
Objects.equals(x.getSerDoc(), y.getSerDoc())))
|
||||
.collect(Collectors.toList())));
|
||||
|
||||
List<EquatableEntityInterface> allData = allTestateData;
|
||||
|
||||
final Exception[] firstExceptionToThrow = {null};
|
||||
|
||||
@@ -182,7 +182,7 @@ public class ExchangeOrdiniImportService {
|
||||
x.setDtbOrdr(finalDtbOrdrLav.stream()
|
||||
.filter(y ->
|
||||
Objects.hash(x.getDataOrd(), x.getGestione(), x.getNumOrd()) ==
|
||||
Objects.hash(y.getDataOrd(), y.getGestione(), y.getNumOrd()) &&
|
||||
Objects.hash(y.getDataOrd(), y.getGestione(), y.getNumOrd()) &&
|
||||
(Objects.equals(x.getDataOrd(), y.getDataOrd()) && Objects.equals(x.getNumOrd(), y.getNumOrd()) &&
|
||||
Objects.equals(x.getGestione(), y.getGestione())))
|
||||
.collect(Collectors.toList()));
|
||||
@@ -220,7 +220,7 @@ public class ExchangeOrdiniImportService {
|
||||
final List<ExchangeCampiRaccoltaDTO> exchangeCampiRaccOld = retrieveCampiDiRaccolta(
|
||||
exchangeMultiDb.getPrimaryConnection(),
|
||||
UtilityLocalDate.getNow().minusMonths(1),
|
||||
true,false);
|
||||
true, false);
|
||||
|
||||
final List<ExchangeCampiRaccoltaDTO> exchangeCampiRaccNew = retrieveCampiDiRaccolta(
|
||||
exchangeMultiDb.getPrimaryConnection(),
|
||||
@@ -234,28 +234,28 @@ public class ExchangeOrdiniImportService {
|
||||
|
||||
final AtomicInteger[] importedCounter = {new AtomicInteger()};
|
||||
|
||||
for (EquatableEntityInterface dataToSave : allData) {
|
||||
ExchangeCampiRaccoltaDTO field = (ExchangeCampiRaccoltaDTO)dataToSave;
|
||||
try {
|
||||
importField(internalMultiDb,field);
|
||||
for (EquatableEntityInterface dataToSave : allData) {
|
||||
ExchangeCampiRaccoltaDTO field = (ExchangeCampiRaccoltaDTO) dataToSave;
|
||||
try {
|
||||
importField(internalMultiDb, field);
|
||||
|
||||
singleFieldUpdateImported(exchangeMultiDb.getPrimaryConnection(), field, true);
|
||||
internalMultiDb.commitAll();
|
||||
exchangeMultiDb.commitAll();
|
||||
logger.debug("Importati {} campi di {}", importedCounter[0].incrementAndGet(), allData.size());
|
||||
} catch (Exception ex) {
|
||||
if (firstExceptionToThrow[0] == null) firstExceptionToThrow[0] = ex;
|
||||
|
||||
singleFieldUpdateImported(exchangeMultiDb.getPrimaryConnection(), field, true);
|
||||
internalMultiDb.commitAll();
|
||||
exchangeMultiDb.commitAll();
|
||||
logger.debug("Importati {} campi di {}", importedCounter[0].incrementAndGet(), allData.size());
|
||||
} catch (Exception ex) {
|
||||
if (firstExceptionToThrow[0] == null) firstExceptionToThrow[0] = ex;
|
||||
|
||||
logger.error("Errore durante l'importazione dell'campo [fornitore: " + field.getCodAnag() + " - "+field.getCodVdes()+"," +
|
||||
"articolo: " + field.getCodMartMp() + "," +
|
||||
"partita: " + field.getLottoFornitore() + "]", ex);
|
||||
internalMultiDb.rollbackAll();
|
||||
|
||||
}
|
||||
logger.error("Errore durante l'importazione dell'campo [fornitore: " + field.getCodAnag() + " - " + field.getCodVdes() + "," +
|
||||
"articolo: " + field.getCodMartMp() + "," +
|
||||
"partita: " + field.getLottoFornitore() + "]", ex);
|
||||
internalMultiDb.rollbackAll();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
if (firstExceptionToThrow[0] != null) throw firstExceptionToThrow[0];
|
||||
} finally {
|
||||
@@ -264,41 +264,50 @@ public class ExchangeOrdiniImportService {
|
||||
|
||||
}
|
||||
|
||||
private void importField(MultiDBTransactionManager multiDb,ExchangeCampiRaccoltaDTO field) throws Exception{
|
||||
if (UtilityString.isNullOrEmpty(field.getCodAnag())){
|
||||
private void importField(MultiDBTransactionManager multiDb, ExchangeCampiRaccoltaDTO field) throws Exception {
|
||||
if (UtilityString.isNullOrEmpty(field.getCodAnag())) {
|
||||
return;
|
||||
}
|
||||
if (field.isNewPartita()){
|
||||
AgribookNewFieldRequestDTO dto = new AgribookNewFieldRequestDTO();
|
||||
dto.setCodAnag(field.getCodAnag())
|
||||
.setCodVdes(field.getCodVdes())
|
||||
.setNewDes(field.isNewDest())
|
||||
.setCodMart(field.getCodMartMp())
|
||||
.setPartitaMag(field.getPartitaMag())
|
||||
.setQtaAttesa(field.getQtaAttesa())
|
||||
.setValUnt(field.getValUnt())
|
||||
.setUntMis(field.getUntMis())
|
||||
.setDestinatario(field.getProduttore())
|
||||
.setIndirizzo(field.getIndirizzoProd())
|
||||
.setCap(field.getCapProd())
|
||||
.setCitta(field.getCittaProd())
|
||||
.setProv(field.getProvProd())
|
||||
.setLat(null)
|
||||
.setLng(null)
|
||||
.setRagSocLegale(field.getCooperativa())
|
||||
.setPartIvaLegale(field.getPartIvaCoop())
|
||||
.setCodFiscLegale(field.getPartIvaCoop())
|
||||
.setIndirizzoLegale(field.getIndirizzoCoop())
|
||||
.setCapLegale(field.getCapCoop())
|
||||
.setCittaLegale(field.getCittaCoop())
|
||||
.setProvLegale(field.getProvCoop())
|
||||
.setPartIva(field.getPartIvaProd())
|
||||
.setDatiCatastali(null)
|
||||
.setNote(field.getNote())
|
||||
.setVarieta(field.getVarieta())
|
||||
.setDataInizProd(field.getDataInizProd())
|
||||
.setDataOrd(field.getDataInizProd());
|
||||
agribookFieldService.createField(multiDb,dto, ROSSOGARGANO_EXCHANGE_USER,new RequestDataDTO());
|
||||
switch (field.getOperation()) {
|
||||
case INSERT:
|
||||
|
||||
AgribookNewFieldRequestDTO dto = new AgribookNewFieldRequestDTO();
|
||||
dto.setCodAnag(field.getCodAnag())
|
||||
.setCodVdes(field.getCodVdes())
|
||||
.setNewDes(field.isNewDest())
|
||||
.setCodMart(field.getCodMartMp())
|
||||
.setPartitaMag(field.getPartitaMag())
|
||||
.setQtaAttesa(field.getQtaAttesa())
|
||||
.setValUnt(field.getValUnt())
|
||||
.setUntMis(field.getUntMis())
|
||||
.setDestinatario(field.getProduttore())
|
||||
.setIndirizzo(field.getIndirizzoProd())
|
||||
.setCap(field.getCapProd())
|
||||
.setCitta(field.getCittaProd())
|
||||
.setProv(field.getProvProd())
|
||||
.setLat(null)
|
||||
.setLng(null)
|
||||
.setRagSocLegale(field.getCooperativa())
|
||||
.setPartIvaLegale(field.getPartIvaCoop())
|
||||
.setCodFiscLegale(field.getPartIvaCoop())
|
||||
.setIndirizzoLegale(field.getIndirizzoCoop())
|
||||
.setCapLegale(field.getCapCoop())
|
||||
.setCittaLegale(field.getCittaCoop())
|
||||
.setProvLegale(field.getProvCoop())
|
||||
.setPartIva(field.getPartIvaProd())
|
||||
.setDatiCatastali(null)
|
||||
.setNote(field.getNote())
|
||||
.setVarieta(field.getVarieta())
|
||||
.setDataInizProd(field.getDataInizProd())
|
||||
.setCodVzon(field.getCodVzon())
|
||||
.setDataOrd(field.getDataInizProd());
|
||||
agribookFieldService.createField(multiDb, dto, ROSSOGARGANO_EXCHANGE_USER, new RequestDataDTO());
|
||||
|
||||
break;
|
||||
case UPDATE:
|
||||
break;
|
||||
case DELETE:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -200,6 +200,7 @@ public class SystemService {
|
||||
" stb_user.password_endtime," +
|
||||
" stb_user.e_mail," +
|
||||
" stb_user.Last_access_datetime," +
|
||||
" stb_user.cod_lang," +
|
||||
" stb_user.flag_password_expiring," +
|
||||
" CASE WHEN stb_user.key_group = '3' AND stb_user.user_code IS NULL THEN wtb_clie.cod_anag ELSE stb_user.user_code END AS user_code," +
|
||||
" wtb_depo.cod_mdep," +
|
||||
@@ -944,26 +945,7 @@ public class SystemService {
|
||||
}
|
||||
}
|
||||
|
||||
boolean bulkDelete = setupGest.getSetupBoolean("DATI_AZIENDA", "MINIO", "ENABLE_BULK_DELETE");
|
||||
|
||||
if (bulkDelete)
|
||||
minIOService.bulkDelete(multiDBTransactionManager, toDelete);
|
||||
else {
|
||||
|
||||
for (int i = 0; i < toDelete.size(); i++) {
|
||||
if (executor.getQueue().size() > (cores * 4)) {
|
||||
Thread.sleep(500);
|
||||
i--;
|
||||
continue;
|
||||
}
|
||||
|
||||
MinioOrphanTaskDeleter task = new MinioOrphanTaskDeleter(toDelete.get(i), minIOService, multiDBTransactionManager);
|
||||
executor.execute(task);
|
||||
}
|
||||
|
||||
executor.shutdown();
|
||||
executor.awaitTermination(Long.MAX_VALUE, TimeUnit.NANOSECONDS);
|
||||
}
|
||||
this.minIOService.deleteObjects(toDelete, multiDBTransactionManager);
|
||||
}
|
||||
|
||||
public Object implodeWordDoc() throws Docx4JException {
|
||||
|
||||
Reference in New Issue
Block a user