Migliorie Sincronizzazioni
This commit is contained in:
@@ -37,7 +37,6 @@ public class RemoteSynchronizationSetupController {
|
||||
InsertPublicationItemResponseDTO response = new InsertPublicationItemResponseDTO()
|
||||
.setId(remoteSynchronizationSetupService.addPublicationItem(groupId, publicationToInsert));
|
||||
|
||||
|
||||
return ServiceRestResponse.createPositiveResponse(response);
|
||||
}
|
||||
|
||||
@@ -56,4 +55,11 @@ public class RemoteSynchronizationSetupController {
|
||||
}
|
||||
|
||||
|
||||
@RequestMapping(value = "publications/{publicationId}/edit", method = RequestMethod.POST)
|
||||
public ServiceRestResponse editPublication(@PathVariable long publicationId, @RequestBody PublicationDTO publicationToEdit) throws Exception {
|
||||
remoteSynchronizationSetupService.editPublication(publicationId, publicationToEdit);
|
||||
return ServiceRestResponse.createPositiveResponse();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -8,14 +8,17 @@ public class PublicationDTO {
|
||||
private String entityName;
|
||||
private String whereCondSql;
|
||||
private String recalcColumns;
|
||||
private boolean active;
|
||||
private boolean exportHistory;
|
||||
private Boolean active;
|
||||
private Boolean exportHistory;
|
||||
private Boolean readyToTransmit;
|
||||
private String whereCond;
|
||||
|
||||
|
||||
public static PublicationDTO fromStbPublicationDetail(StbPublicationsDetail stbPublicationsDetail) {
|
||||
return new PublicationDTO()
|
||||
.setActive(stbPublicationsDetail.isActive())
|
||||
.setExportHistory(stbPublicationsDetail.isExportHistory())
|
||||
.setReadyToTransmit(stbPublicationsDetail.isReadyToTransmit())
|
||||
.setId(stbPublicationsDetail.getId())
|
||||
.setRecalcColumns(stbPublicationsDetail.getRecalcColumnsField())
|
||||
.setEntityName(stbPublicationsDetail.getEntityName())
|
||||
@@ -59,24 +62,33 @@ public class PublicationDTO {
|
||||
return this;
|
||||
}
|
||||
|
||||
public boolean isActive() {
|
||||
public Boolean getActive() {
|
||||
return active;
|
||||
}
|
||||
|
||||
public PublicationDTO setActive(boolean active) {
|
||||
public PublicationDTO setActive(Boolean active) {
|
||||
this.active = active;
|
||||
return this;
|
||||
}
|
||||
|
||||
public boolean isExportHistory() {
|
||||
public Boolean getExportHistory() {
|
||||
return exportHistory;
|
||||
}
|
||||
|
||||
public PublicationDTO setExportHistory(boolean exportHistory) {
|
||||
public PublicationDTO setExportHistory(Boolean exportHistory) {
|
||||
this.exportHistory = exportHistory;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Boolean getReadyToTransmit() {
|
||||
return readyToTransmit;
|
||||
}
|
||||
|
||||
public PublicationDTO setReadyToTransmit(Boolean readyToTransmit) {
|
||||
this.readyToTransmit = readyToTransmit;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getWhereCond() {
|
||||
return whereCond;
|
||||
}
|
||||
|
||||
@@ -8,6 +8,9 @@ public class PublicationGroupDTO {
|
||||
private long id;
|
||||
private String description;
|
||||
|
||||
private boolean canStartExport;
|
||||
private boolean canBeDeleted;
|
||||
|
||||
private List<PublicationDTO> publications = new ArrayList<>();
|
||||
|
||||
public long getId() {
|
||||
@@ -28,6 +31,24 @@ public class PublicationGroupDTO {
|
||||
return this;
|
||||
}
|
||||
|
||||
public boolean isCanStartExport() {
|
||||
return canStartExport;
|
||||
}
|
||||
|
||||
public PublicationGroupDTO setCanStartExport(boolean canStartExport) {
|
||||
this.canStartExport = canStartExport;
|
||||
return this;
|
||||
}
|
||||
|
||||
public boolean isCanBeDeleted() {
|
||||
return canBeDeleted;
|
||||
}
|
||||
|
||||
public PublicationGroupDTO setCanBeDeleted(boolean canBeDeleted) {
|
||||
this.canBeDeleted = canBeDeleted;
|
||||
return this;
|
||||
}
|
||||
|
||||
public List<PublicationDTO> getPublications() {
|
||||
return publications;
|
||||
}
|
||||
@@ -36,4 +57,5 @@ public class PublicationGroupDTO {
|
||||
this.publications = publications;
|
||||
return this;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -10,16 +10,13 @@ import it.integry.ems_model.base.EntityBase;
|
||||
import it.integry.ems_model.base.EntityPropertyHolder;
|
||||
import it.integry.ems_model.entity.StbPublicationsDetail;
|
||||
import it.integry.ems_model.utility.Query;
|
||||
import it.integry.ems_model.utility.UtilityLocalDate;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Scope;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
@Service
|
||||
@Scope(value = "request")
|
||||
@@ -54,17 +51,17 @@ public class RemoteSynchronizationService {
|
||||
}
|
||||
|
||||
public List<ExportHistoryStatusDTO> getPublicationStatus() {
|
||||
int totalCount = new Random().nextInt(1000000);
|
||||
int currentCount = new Random().nextInt(totalCount);
|
||||
// int totalCount = new Random().nextInt(1000000);
|
||||
// int currentCount = new Random().nextInt(totalCount);
|
||||
//
|
||||
// return Collections.singletonList(new ExportHistoryStatusDTO()
|
||||
// .setPublicationGroupId(1)
|
||||
// .setProcessedCount(currentCount)
|
||||
// .setTotalCount(totalCount)
|
||||
// .setStartedAt(UtilityLocalDate.getNowTime().minusMinutes(10))
|
||||
// .setEstimatedEnd(UtilityLocalDate.getNowTime().plusMinutes(15))
|
||||
// .setSpeedPerMinute(500));
|
||||
|
||||
return Collections.singletonList(new ExportHistoryStatusDTO()
|
||||
.setPublicationGroupId(1)
|
||||
.setProcessedCount(currentCount)
|
||||
.setTotalCount(totalCount)
|
||||
.setStartedAt(UtilityLocalDate.getNowTime().minusMinutes(10))
|
||||
.setEstimatedEnd(UtilityLocalDate.getNowTime().plusMinutes(15))
|
||||
.setSpeedPerMinute(500));
|
||||
|
||||
// return asyncHistoryManager.getStatus();
|
||||
return asyncHistoryManager.getStatus();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,12 +2,13 @@ package it.integry.ems.sync.service;
|
||||
|
||||
import it.integry.ems.exception.PrimaryDatabaseNotPresentException;
|
||||
import it.integry.ems.service.EntityProcessor;
|
||||
import it.integry.ems.sync.AsyncHistoryManager;
|
||||
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||
import it.integry.ems.sync.dto.ExportHistoryStatusDTO;
|
||||
import it.integry.ems.sync.dto.PublicationDTO;
|
||||
import it.integry.ems.sync.dto.PublicationGroupDTO;
|
||||
import it.integry.ems.utility.UtilityEntity;
|
||||
import it.integry.ems_model.base.EntityBase;
|
||||
import it.integry.ems_model.base.EntityPropertyHolder;
|
||||
import it.integry.ems_model.entity.StbPublications;
|
||||
import it.integry.ems_model.entity.StbPublicationsDetail;
|
||||
import it.integry.ems_model.types.OperationType;
|
||||
@@ -44,7 +45,7 @@ public class RemoteSynchronizationSetupService {
|
||||
private EntityProcessor entityProcessor;
|
||||
|
||||
@Autowired
|
||||
private EntityPropertyHolder entityPropertyHolder;
|
||||
private AsyncHistoryManager asyncHistoryManager;
|
||||
|
||||
public List<PublicationGroupDTO> retrievePublications() throws Exception {
|
||||
|
||||
@@ -63,6 +64,7 @@ public class RemoteSynchronizationSetupService {
|
||||
|
||||
List<PublicationGroupDTO> publicationGroups = new ArrayList<>();
|
||||
|
||||
final List<ExportHistoryStatusDTO> currentExportStatus = asyncHistoryManager.getStatus();
|
||||
|
||||
for (StbPublications stbPublication : stbPublicationsToRetrieve) {
|
||||
|
||||
@@ -76,6 +78,12 @@ public class RemoteSynchronizationSetupService {
|
||||
.map(PublicationDTO::fromStbPublicationDetail)
|
||||
.collect(toList());
|
||||
publicationGroupDTO.setPublications(publications);
|
||||
|
||||
boolean atLeastOneActiveToExport = publications.stream().anyMatch(publicationDTO -> publicationDTO.getExportHistory() && publicationDTO.getActive());
|
||||
boolean alreadyExporting = currentExportStatus.stream().anyMatch(x -> x.getPublicationGroupId() == publicationGroupDTO.getId());
|
||||
|
||||
publicationGroupDTO.setCanStartExport(atLeastOneActiveToExport && !alreadyExporting);
|
||||
publicationGroupDTO.setCanBeDeleted(!alreadyExporting);
|
||||
}
|
||||
|
||||
return publicationGroups;
|
||||
@@ -94,18 +102,18 @@ public class RemoteSynchronizationSetupService {
|
||||
|
||||
|
||||
public long addPublicationItem(long groupId, @NotNull PublicationDTO publicationToInsert) throws Exception {
|
||||
if(checkIfPublicationExists(groupId, publicationToInsert))
|
||||
if (checkIfPublicationExists(groupId, publicationToInsert))
|
||||
throw new Exception("Esiste già una pubblicazione per " + publicationToInsert.getEntityName() + " con gli stessi parametri");
|
||||
|
||||
final StbPublicationsDetail stbPublicationsDetail = new StbPublicationsDetail()
|
||||
.setStbPublicationId(groupId)
|
||||
.setEntityName(publicationToInsert.getEntityName())
|
||||
.setEntityName(publicationToInsert.getEntityName().toUpperCase())
|
||||
.setWhereCondSql(publicationToInsert.getWhereCondSql())
|
||||
.setRecalcColumns(publicationToInsert.getRecalcColumns())
|
||||
.setActive(publicationToInsert.isActive())
|
||||
.setActive(publicationToInsert.getActive())
|
||||
.setWhereCondField(publicationToInsert.getWhereCond())
|
||||
.setExportHistory(publicationToInsert.isExportHistory())
|
||||
.setReadyToTransmit(!publicationToInsert.isExportHistory());
|
||||
.setExportHistory(publicationToInsert.getExportHistory())
|
||||
.setReadyToTransmit(!publicationToInsert.getReadyToTransmit());
|
||||
stbPublicationsDetail.setOperation(OperationType.INSERT);
|
||||
|
||||
StbPublications stbPublications = new StbPublications()
|
||||
@@ -126,7 +134,7 @@ public class RemoteSynchronizationSetupService {
|
||||
.setEntityName(x.getEntityName())
|
||||
.setWhereCondSql(x.getWhereCondSql())
|
||||
.setRecalcColumns(x.getRecalcColumns())
|
||||
.setActive(x.isActive())
|
||||
.setActive(x.getActive())
|
||||
.setWhereCondField(x.getWhereCond());
|
||||
stbPublicationsDetail.setOperation(OperationType.INSERT);
|
||||
return stbPublicationsDetail;
|
||||
@@ -175,6 +183,41 @@ public class RemoteSynchronizationSetupService {
|
||||
UtilityEntity.throwEntitiesException(savedEntities);
|
||||
}
|
||||
|
||||
public void editPublication(long publicationId, PublicationDTO publicationDTO) throws Exception {
|
||||
StbPublicationsDetail stbPublicationsDetail = new StbPublicationsDetail()
|
||||
.setId(publicationId);
|
||||
stbPublicationsDetail.setOperation(OperationType.SELECT_OBJECT);
|
||||
|
||||
stbPublicationsDetail = entityProcessor.processEntity(stbPublicationsDetail, multiDBTransactionManager);
|
||||
|
||||
if(publicationDTO.getExportHistory() != null)
|
||||
stbPublicationsDetail.setExportHistory(publicationDTO.getExportHistory());
|
||||
|
||||
if(publicationDTO.getActive() != null)
|
||||
stbPublicationsDetail.setActive(publicationDTO.getActive());
|
||||
|
||||
if(publicationDTO.getEntityName() != null)
|
||||
stbPublicationsDetail.setEntityName(publicationDTO.getEntityName());
|
||||
|
||||
if(publicationDTO.getRecalcColumns() != null)
|
||||
stbPublicationsDetail.setRecalcColumns(publicationDTO.getRecalcColumns());
|
||||
|
||||
if(publicationDTO.getWhereCond() != null)
|
||||
stbPublicationsDetail.setWhereCondField(publicationDTO.getWhereCond());
|
||||
|
||||
if(publicationDTO.getWhereCondSql() != null)
|
||||
stbPublicationsDetail.setWhereCondSql(publicationDTO.getWhereCondSql());
|
||||
|
||||
stbPublicationsDetail.setOperation(OperationType.UPDATE);
|
||||
|
||||
StbPublications stbPublication = new StbPublications()
|
||||
.setId(stbPublicationsDetail.getStbPublicationId());
|
||||
stbPublication.getStbPublicationsDetails().add(stbPublicationsDetail);
|
||||
stbPublication.setOperation(OperationType.NO_OP);
|
||||
|
||||
entityProcessor.processEntity(stbPublication, multiDBTransactionManager);
|
||||
}
|
||||
|
||||
public void deletePublicationsGroup(long publicationGroup) throws Exception {
|
||||
StbPublications tmpStbPublications = new StbPublications()
|
||||
.setId(publicationGroup);
|
||||
|
||||
Reference in New Issue
Block a user