Creazione servizio per archiviazione file allegati in zip

This commit is contained in:
2024-06-03 18:31:39 +02:00
parent 692a68d65e
commit 82db179601
8 changed files with 418 additions and 15 deletions

View File

@@ -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,

View 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);
}
}
}

View File

@@ -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);
} }
} }

View File

@@ -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 {
}
}

View File

@@ -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

View File

@@ -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();
}
} }

View File

@@ -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);

View File

@@ -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));
} }