Creazione servizio per archiviazione file allegati in zip
This commit is contained in:
@@ -7,7 +7,9 @@ import it.integry.ems.Import.base.EntityImportResponse;
|
|||||||
import it.integry.ems.Import.dto.ImportRequestDTO;
|
import it.integry.ems.Import.dto.ImportRequestDTO;
|
||||||
import it.integry.ems.download.DownloadFileHandlerService;
|
import it.integry.ems.download.DownloadFileHandlerService;
|
||||||
import it.integry.ems.download.dto.DownloadFileDto;
|
import it.integry.ems.download.dto.DownloadFileDto;
|
||||||
|
import it.integry.ems.dto.CreateZipDTO;
|
||||||
import it.integry.ems.dto.EntityHierarchy;
|
import it.integry.ems.dto.EntityHierarchy;
|
||||||
|
import it.integry.ems.exception.MissingDataException;
|
||||||
import it.integry.ems.export.base.EntityExportResponse;
|
import it.integry.ems.export.base.EntityExportResponse;
|
||||||
import it.integry.ems.export.base.EntityExportedFile;
|
import it.integry.ems.export.base.EntityExportedFile;
|
||||||
import it.integry.ems.javabeans.RequestDataDTO;
|
import it.integry.ems.javabeans.RequestDataDTO;
|
||||||
@@ -57,7 +59,9 @@ import org.springframework.web.util.HtmlUtils;
|
|||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.io.ByteArrayInputStream;
|
import java.io.ByteArrayInputStream;
|
||||||
|
import java.io.ByteArrayOutputStream;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
import java.lang.reflect.ParameterizedType;
|
import java.lang.reflect.ParameterizedType;
|
||||||
@@ -69,6 +73,7 @@ import java.util.Date;
|
|||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
import java.util.zip.ZipOutputStream;
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@Scope("request")
|
@Scope("request")
|
||||||
@@ -1086,6 +1091,11 @@ public class EmsController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@RequestMapping(value = "createZipFromFiles", method = RequestMethod.POST)
|
||||||
|
public @ResponseBody
|
||||||
|
ServiceRestResponse createZipFromFiles(@RequestBody CreateZipDTO createZipDTO) throws Exception {
|
||||||
|
return ServiceRestResponse.createPositiveResponse(emsServices.createZipFromFiles(createZipDTO));
|
||||||
|
}
|
||||||
|
|
||||||
// @RequestMapping(value = EmsRestConstants.PATH_UPLOAD_STB_EMAIL_CONTENT, method = RequestMethod.POST)
|
// @RequestMapping(value = EmsRestConstants.PATH_UPLOAD_STB_EMAIL_CONTENT, method = RequestMethod.POST)
|
||||||
// public ServiceRestResponse uploadStbFileAttachment(HttpServletRequest request, HttpServletResponse response,
|
// public ServiceRestResponse uploadStbFileAttachment(HttpServletRequest request, HttpServletResponse response,
|
||||||
|
|||||||
108
ems-core/src/main/java/it/integry/ems/dto/CreateZipDTO.java
Normal file
108
ems-core/src/main/java/it/integry/ems/dto/CreateZipDTO.java
Normal file
@@ -0,0 +1,108 @@
|
|||||||
|
package it.integry.ems.dto;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonValue;
|
||||||
|
import it.integry.ems.report.dto.JasperDTO;
|
||||||
|
import it.integry.ems_model.base.EntityBase;
|
||||||
|
import it.integry.ems_model.entity.MtbUntMis;
|
||||||
|
import it.integry.ems_model.entity.StbActivityFile;
|
||||||
|
import it.integry.ems_model.entity._enum.IBaseEnum;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class CreateZipDTO {
|
||||||
|
private List<String> listIdAttach;
|
||||||
|
|
||||||
|
private List<StbActivityFile> listStbActivityFile;
|
||||||
|
|
||||||
|
private String fileName;
|
||||||
|
|
||||||
|
private SaveMode saveMode = SaveMode.STB_FILES_ATTACHED;
|
||||||
|
|
||||||
|
private EntityBase entityToSaveTo;
|
||||||
|
|
||||||
|
public List<String> getListIdAttach() {
|
||||||
|
return listIdAttach;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CreateZipDTO setListIdAttach(List<String> listIdAttach) {
|
||||||
|
this.listIdAttach = listIdAttach;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<StbActivityFile> getListStbActivityFile() {
|
||||||
|
return listStbActivityFile;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CreateZipDTO setListStbActivityFile(List<StbActivityFile> listStbActivityFile) {
|
||||||
|
this.listStbActivityFile = listStbActivityFile;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFileName() {
|
||||||
|
return fileName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CreateZipDTO setFileName(String fileName) {
|
||||||
|
this.fileName = fileName;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public SaveMode getSaveMode() {
|
||||||
|
return saveMode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CreateZipDTO setSaveMode(SaveMode saveMode) {
|
||||||
|
this.saveMode = saveMode;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public EntityBase getEntityToSaveTo() {
|
||||||
|
return entityToSaveTo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CreateZipDTO setEntityToSaveTo(EntityBase entityToSaveTo) {
|
||||||
|
this.entityToSaveTo = entityToSaveTo;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum SaveMode implements IBaseEnum<SaveMode> {
|
||||||
|
STB_FILES_ATTACHED((short) 0),
|
||||||
|
STB_ACTIVITY_FILE((short) 1);
|
||||||
|
|
||||||
|
private final short value;
|
||||||
|
|
||||||
|
SaveMode(final short value) {
|
||||||
|
this.value = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static SaveMode from(Object value) {
|
||||||
|
short castValue = (short) value;
|
||||||
|
for (SaveMode b : SaveMode.values()) {
|
||||||
|
if (b.value == castValue)
|
||||||
|
return b;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@JsonValue
|
||||||
|
public short getValue() {
|
||||||
|
return this.value;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Object get() {
|
||||||
|
return this.value;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SaveMode fromInternal(Object val) {
|
||||||
|
return from(val);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return String.valueOf(value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
package it.integry.ems.exception;
|
package it.integry.ems.exception;
|
||||||
|
|
||||||
public class MissingDataException extends Exception {
|
public class MissingDataException extends Exception {
|
||||||
public MissingDataException(String method) {
|
public MissingDataException(String error) {
|
||||||
super("Dati mancanti in " + method);
|
super("Dati mancanti: " + error);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,143 @@
|
|||||||
|
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_20240603182627 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
|
||||||
|
createOrUpdateFunction("CountAllegatiCommessa", "CREATE FUNCTION [dbo].[CountAllegatiCommessa](@codJcom VARCHAR(10), @userName VARCHAR(40))\n" +
|
||||||
|
" RETURNS INTEGER\n" +
|
||||||
|
" AS\n" +
|
||||||
|
" BEGIN\n" +
|
||||||
|
" DECLARE @countAllegati INTEGER\n" +
|
||||||
|
"\n" +
|
||||||
|
" SELECT @countAllegati = SUM(cnt)\n" +
|
||||||
|
" FROM (SELECT COUNT(file_name) AS cnt\n" +
|
||||||
|
" FROM stb_activity_file\n" +
|
||||||
|
" WHERE id IN (SELECT stb_activity.activity_id\n" +
|
||||||
|
" FROM jtb_comt\n" +
|
||||||
|
" INNER JOIN stb_activity ON jtb_comt.cod_jcom = stb_activity.cod_jcom AND\n" +
|
||||||
|
" stb_activity.parent_activity_id IS NULL\n" +
|
||||||
|
" INNER JOIN stb_activity_type\n" +
|
||||||
|
" ON stb_activity.activity_type_id =\n" +
|
||||||
|
" stb_activity_type.activity_type_id AND\n" +
|
||||||
|
" stb_activity_type.flag_tipologia = 'P'\n" +
|
||||||
|
" WHERE jtb_comt.cod_jcom = @codJcom)\n" +
|
||||||
|
"\n" +
|
||||||
|
" UNION ALL\n" +
|
||||||
|
"\n" +
|
||||||
|
" SELECT COUNT(stb_activity_file.file_name) AS cnt\n" +
|
||||||
|
" FROM stb_activity\n" +
|
||||||
|
" INNER JOIN stb_activity_file ON stb_activity.activity_id = stb_activity_file.id\n" +
|
||||||
|
" WHERE stb_activity.cod_jcom = @codJcom\n" +
|
||||||
|
" AND activity_type_id IN (SELECT activity_type_id\n" +
|
||||||
|
" FROM srl_activity_type_user\n" +
|
||||||
|
" INNER JOIN jrl_flav_users\n" +
|
||||||
|
" ON srl_activity_type_user.user_name = jrl_flav_users.user_name\n" +
|
||||||
|
" INNER JOIN wtb_users\n" +
|
||||||
|
" ON wtb_users.User_name =\n" +
|
||||||
|
" jrl_flav_users.user_name AND\n" +
|
||||||
|
" wtb_users.user_name = @userName)\n" +
|
||||||
|
" AND @userName IN (stb_activity.user_creator, stb_activity.user_name)\n" +
|
||||||
|
"\n" +
|
||||||
|
" UNION ALL\n" +
|
||||||
|
"\n" +
|
||||||
|
" SELECT COUNT(filename) AS cnt\n" +
|
||||||
|
" FROM dtb_doc_pdf\n" +
|
||||||
|
" INNER JOIN\n" +
|
||||||
|
" (SELECT dtb_doct.num_doc,\n" +
|
||||||
|
" dtb_doct.data_doc,\n" +
|
||||||
|
" dtb_doct.cod_dtip,\n" +
|
||||||
|
" dtb_doct.cod_anag,\n" +
|
||||||
|
" dtb_doct.ser_doc,\n" +
|
||||||
|
" dtb_doct.cod_jcom,\n" +
|
||||||
|
" dtb_doct.gestione,\n" +
|
||||||
|
" MAX(versione) AS versione,\n" +
|
||||||
|
" dtb_ordt.data_ord,\n" +
|
||||||
|
" dtb_ordt.num_ord,\n" +
|
||||||
|
" dtb_ordt.num_ord_provv\n" +
|
||||||
|
" FROM dtb_doc_pdf\n" +
|
||||||
|
" INNER JOIN dtb_doct\n" +
|
||||||
|
" ON dtb_doct.data_doc = dtb_doc_pdf.data_doc AND\n" +
|
||||||
|
" dtb_doct.num_doc = dtb_doc_pdf.num_doc AND\n" +
|
||||||
|
" dtb_doct.cod_dtip = dtb_doc_pdf.cod_dtip AND\n" +
|
||||||
|
" dtb_doct.cod_anag = dtb_doc_pdf.cod_anag AND\n" +
|
||||||
|
" dtb_doct.ser_doc = dtb_doc_pdf.ser_doc\n" +
|
||||||
|
" INNER JOIN dtb_docr ON dtb_doct.data_doc = dtb_docr.data_doc AND\n" +
|
||||||
|
" dtb_doct.num_doc = dtb_docr.num_doc AND\n" +
|
||||||
|
" dtb_doct.ser_doc = dtb_docr.ser_doc AND\n" +
|
||||||
|
" dtb_doct.cod_dtip = dtb_docr.cod_dtip AND\n" +
|
||||||
|
" dtb_doct.cod_anag = dtb_docr.cod_anag\n" +
|
||||||
|
" LEFT OUTER JOIN dtb_ordt\n" +
|
||||||
|
" ON dtb_doct.gestione = dtb_ordt.gestione AND\n" +
|
||||||
|
" dtb_doct.data_ord = dtb_ordt.data_ord AND\n" +
|
||||||
|
" dtb_doct.num_ord = dtb_ordt.num_ord\n" +
|
||||||
|
" WHERE (filecontent IS NOT NULL OR ref_uuid IS NOT NULL)\n" +
|
||||||
|
" GROUP BY dtb_doct.num_doc, dtb_doct.data_doc, dtb_doct.cod_dtip,\n" +
|
||||||
|
" dtb_doct.cod_anag, dtb_doct.ser_doc,\n" +
|
||||||
|
" dtb_doct.cod_jcom, dtb_doct.gestione, dtb_ordt.data_ord,\n" +
|
||||||
|
" dtb_ordt.num_ord, dtb_ordt.num_ord_provv) t\n" +
|
||||||
|
" ON dtb_doc_pdf.num_doc = t.num_doc AND\n" +
|
||||||
|
" dtb_doc_pdf.data_doc = t.data_doc AND\n" +
|
||||||
|
" dtb_doc_pdf.cod_dtip = t.cod_dtip AND\n" +
|
||||||
|
" dtb_doc_pdf.cod_anag = t.cod_anag AND\n" +
|
||||||
|
" dtb_doc_pdf.ser_doc = t.ser_doc AND\n" +
|
||||||
|
" dtb_doc_pdf.versione = t.versione\n" +
|
||||||
|
" WHERE cod_jcom = @codJcom\n" +
|
||||||
|
"\n" +
|
||||||
|
" UNION ALL\n" +
|
||||||
|
"\n" +
|
||||||
|
" SELECT COUNT(stb_files_attached.file_name) AS cnt\n" +
|
||||||
|
" FROM stb_files_attached,\n" +
|
||||||
|
" drl_ord_attached,\n" +
|
||||||
|
" dtb_ordt\n" +
|
||||||
|
" WHERE stb_files_attached.id_attach = drl_ord_attached.id_attach\n" +
|
||||||
|
" AND drl_ord_attached.gestione = dtb_ordt.gestione\n" +
|
||||||
|
" AND drl_ord_attached.data_ord = dtb_ordt.data_ord\n" +
|
||||||
|
" AND drl_ord_attached.num_ord = dtb_ordt.num_ord\n" +
|
||||||
|
" AND dtb_ordt.cod_jcom = @codJcom\n" +
|
||||||
|
"\n" +
|
||||||
|
" UNION ALL\n" +
|
||||||
|
"\n" +
|
||||||
|
" SELECT COUNT(stb_files_attached.file_name) AS cnt\n" +
|
||||||
|
" FROM stb_files_attached,\n" +
|
||||||
|
" drl_doc_attached,\n" +
|
||||||
|
" dtb_docr\n" +
|
||||||
|
" WHERE stb_files_attached.id_attach = drl_doc_attached.id_attach\n" +
|
||||||
|
" AND drl_doc_attached.cod_anag = dtb_docr.cod_anag\n" +
|
||||||
|
" AND drl_doc_attached.cod_dtip = dtb_docr.cod_dtip\n" +
|
||||||
|
" AND drl_doc_attached.data_doc = dtb_docr.data_doc\n" +
|
||||||
|
" AND drl_doc_attached.ser_doc = dtb_docr.ser_doc\n" +
|
||||||
|
" AND drl_doc_attached.num_doc = dtb_docr.num_doc\n" +
|
||||||
|
" AND dtb_docr.cod_jcom = @codJcom) t\n" +
|
||||||
|
"\n" +
|
||||||
|
" RETURN @countAllegati\n" +
|
||||||
|
" END");
|
||||||
|
|
||||||
|
String value = null;
|
||||||
|
|
||||||
|
if (isCustomer(IntegryCustomer.Materica)) {
|
||||||
|
executeStatement("INSERT INTO stb_activity_type (activity_type_id, estimated_duration, cod_jfas, user_name, flag_tipologia,\n" +
|
||||||
|
" flag_attiva, link_gest, flag_sal, flag_set_alarm, flag_generate_mov,\n" +
|
||||||
|
" flag_view_calendar)\n" +
|
||||||
|
"VALUES (N'ESPORTAZIONE', 0.10000, N'COM', NULL, N'A', N'S', NULL, N'N', N'N', N'S', 0)");
|
||||||
|
|
||||||
|
value = "ESPORTAZIONE";
|
||||||
|
}
|
||||||
|
|
||||||
|
createSetup("PVM", "CONTATTI_COMMESSE", "TIPO_ATTIVITA_ARCHIVIO", value,
|
||||||
|
"Tipo di attività da assegnare alla creazione di archivi commessa", "ACTIVITY_TYPE");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void down() throws Exception {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -13,10 +13,8 @@ import it.integry.ems.Import.dto.AnomalieDTO;
|
|||||||
import it.integry.ems.Import.dto.ImportRequestDTO;
|
import it.integry.ems.Import.dto.ImportRequestDTO;
|
||||||
import it.integry.ems.Import.enums.EntityImportType;
|
import it.integry.ems.Import.enums.EntityImportType;
|
||||||
import it.integry.ems.datasource.DataSource;
|
import it.integry.ems.datasource.DataSource;
|
||||||
import it.integry.ems.dto.ApplicationInfoDTO;
|
import it.integry.ems.dto.*;
|
||||||
import it.integry.ems.dto.DatabaseEngineInfoDTO;
|
import it.integry.ems.exception.MissingDataException;
|
||||||
import it.integry.ems.dto.DatabaseInfoDTO;
|
|
||||||
import it.integry.ems.dto.EntityHierarchy;
|
|
||||||
import it.integry.ems.export.base.EntityExportResponse;
|
import it.integry.ems.export.base.EntityExportResponse;
|
||||||
import it.integry.ems.export.base.EntityExporterUtility;
|
import it.integry.ems.export.base.EntityExporterUtility;
|
||||||
import it.integry.ems.export.base.IEntityExporter;
|
import it.integry.ems.export.base.IEntityExporter;
|
||||||
@@ -38,22 +36,18 @@ import it.integry.ems.sync.MultiDBTransaction.AdvancedDataSource;
|
|||||||
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||||
import it.integry.ems.utility.UtilityDebug;
|
import it.integry.ems.utility.UtilityDebug;
|
||||||
import it.integry.ems.utility.UtilityDirs;
|
import it.integry.ems.utility.UtilityDirs;
|
||||||
|
import it.integry.ems.utility.UtilityEntity;
|
||||||
import it.integry.ems.utility.UtilityFile;
|
import it.integry.ems.utility.UtilityFile;
|
||||||
import it.integry.ems_model.annotation.Master;
|
import it.integry.ems_model.annotation.Master;
|
||||||
import it.integry.ems_model.annotation.SqlField;
|
import it.integry.ems_model.annotation.SqlField;
|
||||||
import it.integry.ems_model.base.EntityBase;
|
import it.integry.ems_model.base.EntityBase;
|
||||||
import it.integry.ems_model.base.EntityPropertyHolder;
|
import it.integry.ems_model.base.EntityPropertyHolder;
|
||||||
import it.integry.ems_model.config.EmsRestConstants;
|
import it.integry.ems_model.config.EmsRestConstants;
|
||||||
import it.integry.ems_model.entity.Azienda;
|
import it.integry.ems_model.entity.*;
|
||||||
import it.integry.ems_model.entity.MrlPartitaMagAttached;
|
|
||||||
import it.integry.ems_model.entity.StbFilesAttached;
|
|
||||||
import it.integry.ems_model.entity.WtbUsersInfo;
|
|
||||||
import it.integry.ems_model.exception.EntityException;
|
import it.integry.ems_model.exception.EntityException;
|
||||||
import it.integry.ems_model.service.SetupGest;
|
import it.integry.ems_model.service.SetupGest;
|
||||||
import it.integry.ems_model.types.OperationType;
|
import it.integry.ems_model.types.OperationType;
|
||||||
import it.integry.ems_model.utility.UtilityDB;
|
import it.integry.ems_model.utility.*;
|
||||||
import it.integry.ems_model.utility.UtilityHashMap;
|
|
||||||
import it.integry.ems_model.utility.UtilityString;
|
|
||||||
import it.integry.security.utility.RestUtil;
|
import it.integry.security.utility.RestUtil;
|
||||||
import org.apache.commons.codec.binary.Base64;
|
import org.apache.commons.codec.binary.Base64;
|
||||||
import org.apache.commons.io.FileUtils;
|
import org.apache.commons.io.FileUtils;
|
||||||
@@ -78,7 +72,10 @@ import java.lang.management.RuntimeMXBean;
|
|||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
import java.util.zip.ZipOutputStream;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
@Scope("request")
|
@Scope("request")
|
||||||
@@ -584,6 +581,137 @@ public class EmsServices {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String createZipFromFiles(CreateZipDTO createZipDTO) throws Exception {
|
||||||
|
if (createZipDTO == null) {
|
||||||
|
throw new MissingDataException("createZipFromFiles");
|
||||||
|
}
|
||||||
|
|
||||||
|
String downloadUrl = null;
|
||||||
|
|
||||||
|
try (ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||||
|
ZipOutputStream zos = new ZipOutputStream(baos)) {
|
||||||
|
if (createZipDTO.getListIdAttach() != null && !createZipDTO.getListIdAttach().isEmpty()) {
|
||||||
|
List<StbFilesAttached> filesAttachedList = createZipDTO.getListIdAttach().stream()
|
||||||
|
.map(idAttach -> {
|
||||||
|
StbFilesAttached stbFilesAttached = new StbFilesAttached()
|
||||||
|
.setIdAttach(idAttach);
|
||||||
|
|
||||||
|
stbFilesAttached.setOperation(OperationType.SELECT_OBJECT);
|
||||||
|
|
||||||
|
return stbFilesAttached;
|
||||||
|
})
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
List<EntityBase> entityBases = Collections.unmodifiableList(entityProcessor.processEntityList(filesAttachedList, true));
|
||||||
|
|
||||||
|
UtilityEntity.throwEntitiesException(entityBases);
|
||||||
|
|
||||||
|
filesAttachedList = UtilityEntity.toCustomEntity(entityBases);
|
||||||
|
|
||||||
|
for (StbFilesAttached stbFilesAttached : filesAttachedList) {
|
||||||
|
UtilityZip.addFileToArchive(zos, stbFilesAttached.getFileName(), stbFilesAttached.getContent());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (createZipDTO.getListStbActivityFile() != null && !createZipDTO.getListStbActivityFile().isEmpty()) {
|
||||||
|
List<StbActivityFile> activityFiles = createZipDTO.getListStbActivityFile().stream()
|
||||||
|
.filter(stbActivityFile -> !UtilityString.isNullOrEmpty(stbActivityFile.getFileName()))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
List<StbActivityFile> listStbActivityFileIds = createZipDTO.getListStbActivityFile().stream()
|
||||||
|
.filter(stbActivityFile -> UtilityString.isNullOrEmpty(stbActivityFile.getFileName()))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
if (!listStbActivityFileIds.isEmpty()) {
|
||||||
|
for (StbActivityFile stbActivityFile : listStbActivityFileIds) {
|
||||||
|
String sql = Query.format(
|
||||||
|
"SELECT file_name FROM stb_activity_file WHERE id = %s",
|
||||||
|
stbActivityFile.getId()
|
||||||
|
);
|
||||||
|
|
||||||
|
List<String> fileNames = UtilityDB.executeSimpleQueryOnlyFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
|
||||||
|
|
||||||
|
for (String fileName : fileNames) {
|
||||||
|
StbActivityFile stbActivityFileWithFilename = new StbActivityFile()
|
||||||
|
.setId(stbActivityFile.getId())
|
||||||
|
.setFileName(fileName);
|
||||||
|
|
||||||
|
activityFiles.add(stbActivityFileWithFilename);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
activityFiles = activityFiles.stream()
|
||||||
|
.peek(activityFile -> activityFile.setOperation(OperationType.SELECT_OBJECT))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
List<EntityBase> entityBases = entityProcessor.processEntityList(activityFiles, true);
|
||||||
|
|
||||||
|
UtilityEntity.throwEntitiesException(entityBases);
|
||||||
|
|
||||||
|
activityFiles = UtilityEntity.toCustomEntity(entityBases);
|
||||||
|
|
||||||
|
for (StbActivityFile stbActivityFile : activityFiles) {
|
||||||
|
UtilityZip.addFileToArchive(zos, stbActivityFile.getFileName(), stbActivityFile.getContent());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (baos.size() > 0) {
|
||||||
|
zos.close();
|
||||||
|
|
||||||
|
String fileName = UtilityString.isNull(createZipDTO.getFileName(), UtilityLocalDate.formatDate(LocalDateTime.now(), "dd-MM-yyyy HH:mm:ss")) + ".zip";
|
||||||
|
|
||||||
|
switch (createZipDTO.getSaveMode()) {
|
||||||
|
case STB_FILES_ATTACHED:
|
||||||
|
StbFilesAttached zipFile = this.uploadStbFilesAttached(
|
||||||
|
null,
|
||||||
|
fileName,
|
||||||
|
baos.toByteArray(),
|
||||||
|
null, null, null, null);
|
||||||
|
|
||||||
|
if (zipFile != null) {
|
||||||
|
downloadUrl = String.format("%s/%s/%s", EmsRestConstants.PATH_DOWNLOAD_STB_FILE_ATTACHMENT, zipFile.getIdAttach(), zipFile.getFileName());
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
case STB_ACTIVITY_FILE:
|
||||||
|
StbActivity stbActivity = createZipDTO.getEntityToSaveTo() instanceof StbActivity ? (StbActivity) createZipDTO.getEntityToSaveTo() : null;
|
||||||
|
|
||||||
|
if (stbActivity == null) {
|
||||||
|
throw new MissingDataException("Dati mancanti in createZipFromFiles");
|
||||||
|
}
|
||||||
|
|
||||||
|
StbActivityFile activityFile = new StbActivityFile()
|
||||||
|
.setFileName(fileName)
|
||||||
|
.setLastUpd(new Date())
|
||||||
|
.setOriginalSize(baos.size())
|
||||||
|
.setContent(baos.toByteArray());
|
||||||
|
|
||||||
|
activityFile.setOperation(OperationType.INSERT);
|
||||||
|
|
||||||
|
stbActivity.setStbActivityFile(new ArrayList<>());
|
||||||
|
|
||||||
|
stbActivity.getStbActivityFile().add(activityFile);
|
||||||
|
|
||||||
|
stbActivity.setOperation(OperationType.INSERT_OR_UPDATE);
|
||||||
|
|
||||||
|
entityProcessor.processEntity(stbActivity, multiDBTransactionManager);
|
||||||
|
|
||||||
|
if (stbActivity.getActivityId() != null) {
|
||||||
|
downloadUrl = String.format("%s/%s/%s", EmsRestConstants.PATH_DOWNLOAD_STB_ACTIVITY_FILE_ATTACHMENT, stbActivity.getActivityId(), fileName);
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
throw new Exception("Unknown save mode " + createZipDTO.getSaveMode());
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
throw new Exception("Nessun file creato in createZipFromFiles");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return downloadUrl;
|
||||||
|
}
|
||||||
|
|
||||||
public void cleanDirectories() throws Exception {
|
public void cleanDirectories() throws Exception {
|
||||||
//Mi leggo tutte le configurazioni che hanno i GG_CANC_FILE abilitati
|
//Mi leggo tutte le configurazioni che hanno i GG_CANC_FILE abilitati
|
||||||
|
|||||||
@@ -91,4 +91,14 @@ public class UtilityZip {
|
|||||||
|
|
||||||
return zipOutputStream;
|
return zipOutputStream;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void addFileToArchive(ZipOutputStream zipOutputStream, String fileName, byte[] content) throws IOException {
|
||||||
|
ZipEntry zipEntry = new ZipEntry(fileName);
|
||||||
|
|
||||||
|
zipEntry.setSize(content.length);
|
||||||
|
|
||||||
|
zipOutputStream.putNextEntry(zipEntry);
|
||||||
|
zipOutputStream.write(content);
|
||||||
|
zipOutputStream.closeEntry();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -796,10 +796,9 @@ public class DocumentController {
|
|||||||
@RequestParam(defaultValue = "false") boolean requestThumbnail) {
|
@RequestParam(defaultValue = "false") boolean requestThumbnail) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
String completeFileName = request.getRequestURI().substring(request.getRequestURI().lastIndexOf("/") + 1);
|
|
||||||
StbActivityFile stbActivityFile = new StbActivityFile()
|
StbActivityFile stbActivityFile = new StbActivityFile()
|
||||||
.setId(id)
|
.setId(id)
|
||||||
.setFileName(completeFileName);
|
.setFileName(fileName);
|
||||||
stbActivityFile.setOperation(OperationType.SELECT_OBJECT);
|
stbActivityFile.setOperation(OperationType.SELECT_OBJECT);
|
||||||
|
|
||||||
stbActivityFile = entityProcessor.processEntity(stbActivityFile, multiDBTransactionManager);
|
stbActivityFile = entityProcessor.processEntity(stbActivityFile, multiDBTransactionManager);
|
||||||
|
|||||||
@@ -16,6 +16,8 @@ import it.integry.ems_model.utility.Query;
|
|||||||
import it.integry.ems_model.utility.UtilityDB;
|
import it.integry.ems_model.utility.UtilityDB;
|
||||||
import it.integry.ems_model.utility.UtilityLocalDate;
|
import it.integry.ems_model.utility.UtilityLocalDate;
|
||||||
import it.integry.ems_model.utility.UtilityString;
|
import it.integry.ems_model.utility.UtilityString;
|
||||||
|
import org.apache.logging.log4j.LogManager;
|
||||||
|
import org.apache.logging.log4j.Logger;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.context.annotation.Scope;
|
import org.springframework.context.annotation.Scope;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@@ -38,6 +40,7 @@ import java.util.stream.Stream;
|
|||||||
@Service
|
@Service
|
||||||
@Scope(value = "request")
|
@Scope(value = "request")
|
||||||
public class SystemMigrationService {
|
public class SystemMigrationService {
|
||||||
|
private final Logger logger = LogManager.getLogger();
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private MultiDBTransactionManager multiDBTransactionManager;
|
private MultiDBTransactionManager multiDBTransactionManager;
|
||||||
@@ -280,6 +283,8 @@ public class SystemMigrationService {
|
|||||||
final String migrationsJavaPath = baseProjectPath + "java\\it\\integry\\ems\\migration\\model\\";
|
final String migrationsJavaPath = baseProjectPath + "java\\it\\integry\\ems\\migration\\model\\";
|
||||||
final String migrationsJavaFile = migrationsJavaPath + migrationClassName + ".java";
|
final String migrationsJavaFile = migrationsJavaPath + migrationClassName + ".java";
|
||||||
writeContentToFile(migrationsJavaFile, classBuilder.toString(), true);
|
writeContentToFile(migrationsJavaFile, classBuilder.toString(), true);
|
||||||
|
|
||||||
|
logger.info(String.format("Created migration file: %s", migrationClassName));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user