Migliorie Sincronizzazioni
This commit is contained in:
@@ -37,7 +37,6 @@ public class RemoteSynchronizationSetupController {
|
|||||||
InsertPublicationItemResponseDTO response = new InsertPublicationItemResponseDTO()
|
InsertPublicationItemResponseDTO response = new InsertPublicationItemResponseDTO()
|
||||||
.setId(remoteSynchronizationSetupService.addPublicationItem(groupId, publicationToInsert));
|
.setId(remoteSynchronizationSetupService.addPublicationItem(groupId, publicationToInsert));
|
||||||
|
|
||||||
|
|
||||||
return ServiceRestResponse.createPositiveResponse(response);
|
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 entityName;
|
||||||
private String whereCondSql;
|
private String whereCondSql;
|
||||||
private String recalcColumns;
|
private String recalcColumns;
|
||||||
private boolean active;
|
private Boolean active;
|
||||||
private boolean exportHistory;
|
private Boolean exportHistory;
|
||||||
|
private Boolean readyToTransmit;
|
||||||
private String whereCond;
|
private String whereCond;
|
||||||
|
|
||||||
|
|
||||||
public static PublicationDTO fromStbPublicationDetail(StbPublicationsDetail stbPublicationsDetail) {
|
public static PublicationDTO fromStbPublicationDetail(StbPublicationsDetail stbPublicationsDetail) {
|
||||||
return new PublicationDTO()
|
return new PublicationDTO()
|
||||||
.setActive(stbPublicationsDetail.isActive())
|
.setActive(stbPublicationsDetail.isActive())
|
||||||
|
.setExportHistory(stbPublicationsDetail.isExportHistory())
|
||||||
|
.setReadyToTransmit(stbPublicationsDetail.isReadyToTransmit())
|
||||||
.setId(stbPublicationsDetail.getId())
|
.setId(stbPublicationsDetail.getId())
|
||||||
.setRecalcColumns(stbPublicationsDetail.getRecalcColumnsField())
|
.setRecalcColumns(stbPublicationsDetail.getRecalcColumnsField())
|
||||||
.setEntityName(stbPublicationsDetail.getEntityName())
|
.setEntityName(stbPublicationsDetail.getEntityName())
|
||||||
@@ -59,24 +62,33 @@ public class PublicationDTO {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isActive() {
|
public Boolean getActive() {
|
||||||
return active;
|
return active;
|
||||||
}
|
}
|
||||||
|
|
||||||
public PublicationDTO setActive(boolean active) {
|
public PublicationDTO setActive(Boolean active) {
|
||||||
this.active = active;
|
this.active = active;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isExportHistory() {
|
public Boolean getExportHistory() {
|
||||||
return exportHistory;
|
return exportHistory;
|
||||||
}
|
}
|
||||||
|
|
||||||
public PublicationDTO setExportHistory(boolean exportHistory) {
|
public PublicationDTO setExportHistory(Boolean exportHistory) {
|
||||||
this.exportHistory = exportHistory;
|
this.exportHistory = exportHistory;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Boolean getReadyToTransmit() {
|
||||||
|
return readyToTransmit;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PublicationDTO setReadyToTransmit(Boolean readyToTransmit) {
|
||||||
|
this.readyToTransmit = readyToTransmit;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public String getWhereCond() {
|
public String getWhereCond() {
|
||||||
return whereCond;
|
return whereCond;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,6 +8,9 @@ public class PublicationGroupDTO {
|
|||||||
private long id;
|
private long id;
|
||||||
private String description;
|
private String description;
|
||||||
|
|
||||||
|
private boolean canStartExport;
|
||||||
|
private boolean canBeDeleted;
|
||||||
|
|
||||||
private List<PublicationDTO> publications = new ArrayList<>();
|
private List<PublicationDTO> publications = new ArrayList<>();
|
||||||
|
|
||||||
public long getId() {
|
public long getId() {
|
||||||
@@ -28,6 +31,24 @@ public class PublicationGroupDTO {
|
|||||||
return this;
|
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() {
|
public List<PublicationDTO> getPublications() {
|
||||||
return publications;
|
return publications;
|
||||||
}
|
}
|
||||||
@@ -36,4 +57,5 @@ public class PublicationGroupDTO {
|
|||||||
this.publications = publications;
|
this.publications = publications;
|
||||||
return this;
|
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.base.EntityPropertyHolder;
|
||||||
import it.integry.ems_model.entity.StbPublicationsDetail;
|
import it.integry.ems_model.entity.StbPublicationsDetail;
|
||||||
import it.integry.ems_model.utility.Query;
|
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.LogManager;
|
||||||
import org.apache.logging.log4j.Logger;
|
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;
|
||||||
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Random;
|
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
@Scope(value = "request")
|
@Scope(value = "request")
|
||||||
@@ -54,17 +51,17 @@ public class RemoteSynchronizationService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public List<ExportHistoryStatusDTO> getPublicationStatus() {
|
public List<ExportHistoryStatusDTO> getPublicationStatus() {
|
||||||
int totalCount = new Random().nextInt(1000000);
|
// int totalCount = new Random().nextInt(1000000);
|
||||||
int currentCount = new Random().nextInt(totalCount);
|
// 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()
|
return asyncHistoryManager.getStatus();
|
||||||
.setPublicationGroupId(1)
|
|
||||||
.setProcessedCount(currentCount)
|
|
||||||
.setTotalCount(totalCount)
|
|
||||||
.setStartedAt(UtilityLocalDate.getNowTime().minusMinutes(10))
|
|
||||||
.setEstimatedEnd(UtilityLocalDate.getNowTime().plusMinutes(15))
|
|
||||||
.setSpeedPerMinute(500));
|
|
||||||
|
|
||||||
// return asyncHistoryManager.getStatus();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,12 +2,13 @@ package it.integry.ems.sync.service;
|
|||||||
|
|
||||||
import it.integry.ems.exception.PrimaryDatabaseNotPresentException;
|
import it.integry.ems.exception.PrimaryDatabaseNotPresentException;
|
||||||
import it.integry.ems.service.EntityProcessor;
|
import it.integry.ems.service.EntityProcessor;
|
||||||
|
import it.integry.ems.sync.AsyncHistoryManager;
|
||||||
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
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.PublicationDTO;
|
||||||
import it.integry.ems.sync.dto.PublicationGroupDTO;
|
import it.integry.ems.sync.dto.PublicationGroupDTO;
|
||||||
import it.integry.ems.utility.UtilityEntity;
|
import it.integry.ems.utility.UtilityEntity;
|
||||||
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.entity.StbPublications;
|
import it.integry.ems_model.entity.StbPublications;
|
||||||
import it.integry.ems_model.entity.StbPublicationsDetail;
|
import it.integry.ems_model.entity.StbPublicationsDetail;
|
||||||
import it.integry.ems_model.types.OperationType;
|
import it.integry.ems_model.types.OperationType;
|
||||||
@@ -44,7 +45,7 @@ public class RemoteSynchronizationSetupService {
|
|||||||
private EntityProcessor entityProcessor;
|
private EntityProcessor entityProcessor;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private EntityPropertyHolder entityPropertyHolder;
|
private AsyncHistoryManager asyncHistoryManager;
|
||||||
|
|
||||||
public List<PublicationGroupDTO> retrievePublications() throws Exception {
|
public List<PublicationGroupDTO> retrievePublications() throws Exception {
|
||||||
|
|
||||||
@@ -63,6 +64,7 @@ public class RemoteSynchronizationSetupService {
|
|||||||
|
|
||||||
List<PublicationGroupDTO> publicationGroups = new ArrayList<>();
|
List<PublicationGroupDTO> publicationGroups = new ArrayList<>();
|
||||||
|
|
||||||
|
final List<ExportHistoryStatusDTO> currentExportStatus = asyncHistoryManager.getStatus();
|
||||||
|
|
||||||
for (StbPublications stbPublication : stbPublicationsToRetrieve) {
|
for (StbPublications stbPublication : stbPublicationsToRetrieve) {
|
||||||
|
|
||||||
@@ -76,6 +78,12 @@ public class RemoteSynchronizationSetupService {
|
|||||||
.map(PublicationDTO::fromStbPublicationDetail)
|
.map(PublicationDTO::fromStbPublicationDetail)
|
||||||
.collect(toList());
|
.collect(toList());
|
||||||
publicationGroupDTO.setPublications(publications);
|
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;
|
return publicationGroups;
|
||||||
@@ -99,13 +107,13 @@ public class RemoteSynchronizationSetupService {
|
|||||||
|
|
||||||
final StbPublicationsDetail stbPublicationsDetail = new StbPublicationsDetail()
|
final StbPublicationsDetail stbPublicationsDetail = new StbPublicationsDetail()
|
||||||
.setStbPublicationId(groupId)
|
.setStbPublicationId(groupId)
|
||||||
.setEntityName(publicationToInsert.getEntityName())
|
.setEntityName(publicationToInsert.getEntityName().toUpperCase())
|
||||||
.setWhereCondSql(publicationToInsert.getWhereCondSql())
|
.setWhereCondSql(publicationToInsert.getWhereCondSql())
|
||||||
.setRecalcColumns(publicationToInsert.getRecalcColumns())
|
.setRecalcColumns(publicationToInsert.getRecalcColumns())
|
||||||
.setActive(publicationToInsert.isActive())
|
.setActive(publicationToInsert.getActive())
|
||||||
.setWhereCondField(publicationToInsert.getWhereCond())
|
.setWhereCondField(publicationToInsert.getWhereCond())
|
||||||
.setExportHistory(publicationToInsert.isExportHistory())
|
.setExportHistory(publicationToInsert.getExportHistory())
|
||||||
.setReadyToTransmit(!publicationToInsert.isExportHistory());
|
.setReadyToTransmit(!publicationToInsert.getReadyToTransmit());
|
||||||
stbPublicationsDetail.setOperation(OperationType.INSERT);
|
stbPublicationsDetail.setOperation(OperationType.INSERT);
|
||||||
|
|
||||||
StbPublications stbPublications = new StbPublications()
|
StbPublications stbPublications = new StbPublications()
|
||||||
@@ -126,7 +134,7 @@ public class RemoteSynchronizationSetupService {
|
|||||||
.setEntityName(x.getEntityName())
|
.setEntityName(x.getEntityName())
|
||||||
.setWhereCondSql(x.getWhereCondSql())
|
.setWhereCondSql(x.getWhereCondSql())
|
||||||
.setRecalcColumns(x.getRecalcColumns())
|
.setRecalcColumns(x.getRecalcColumns())
|
||||||
.setActive(x.isActive())
|
.setActive(x.getActive())
|
||||||
.setWhereCondField(x.getWhereCond());
|
.setWhereCondField(x.getWhereCond());
|
||||||
stbPublicationsDetail.setOperation(OperationType.INSERT);
|
stbPublicationsDetail.setOperation(OperationType.INSERT);
|
||||||
return stbPublicationsDetail;
|
return stbPublicationsDetail;
|
||||||
@@ -175,6 +183,41 @@ public class RemoteSynchronizationSetupService {
|
|||||||
UtilityEntity.throwEntitiesException(savedEntities);
|
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 {
|
public void deletePublicationsGroup(long publicationGroup) throws Exception {
|
||||||
StbPublications tmpStbPublications = new StbPublications()
|
StbPublications tmpStbPublications = new StbPublications()
|
||||||
.setId(publicationGroup);
|
.setId(publicationGroup);
|
||||||
|
|||||||
Reference in New Issue
Block a user