merge develop to SI-685
diff --git a/addressImport/src/main/java/org/eclipse/openk/gridfailureinformation/importadresses/repository/StationRepository.java b/addressImport/src/main/java/org/eclipse/openk/gridfailureinformation/importadresses/repository/StationRepository.java
index f4d1ad8..030d2db 100644
--- a/addressImport/src/main/java/org/eclipse/openk/gridfailureinformation/importadresses/repository/StationRepository.java
+++ b/addressImport/src/main/java/org/eclipse/openk/gridfailureinformation/importadresses/repository/StationRepository.java
@@ -27,5 +27,5 @@
List<TblStation> findAll();
- Optional<TblStation> findByG3efid(Long g3efid);
+ Optional<TblStation> findByStationId(String stationId);
}
diff --git a/addressImport/src/main/java/org/eclipse/openk/gridfailureinformation/importadresses/service/StationService.java b/addressImport/src/main/java/org/eclipse/openk/gridfailureinformation/importadresses/service/StationService.java
index 8e937cd..7464a76 100644
--- a/addressImport/src/main/java/org/eclipse/openk/gridfailureinformation/importadresses/service/StationService.java
+++ b/addressImport/src/main/java/org/eclipse/openk/gridfailureinformation/importadresses/service/StationService.java
@@ -46,11 +46,18 @@
public StationDto updateOrInsertStationByG3efid(StationDto stationDto) {
try {
- Optional<TblStation> optTblStation = stationRepository.findByG3efid(stationDto.getG3efid());
+ Optional<TblStation> optTblStation = stationRepository.findByStationId(stationDto.getStationId());
if (optTblStation.isPresent() ) {
TblStation tblStationToSave = optTblStation.get();
+ tblStationToSave.setSdox1(stationDto.getSdox1());
+ tblStationToSave.setSdoy1(stationDto.getSdoy1());
+ tblStationToSave.setG3efid(stationDto.getG3efid());
+ tblStationToSave.setStationName(stationDto.getStationName());
+ tblStationToSave.setLatitude(stationDto.getLatitude());
+ tblStationToSave.setLongitude(stationDto.getLongitude());
+
TblStation savedStation = stationRepository.save(tblStationToSave);
return stationMapper.toStationDto(savedStation);
} else {
diff --git a/addressImport/src/test/java/org/eclipse/openk/gridfailureinformation/importadresses/service/StationServiceTest.java b/addressImport/src/test/java/org/eclipse/openk/gridfailureinformation/importadresses/service/StationServiceTest.java
index 414bab9..f5855c9 100644
--- a/addressImport/src/test/java/org/eclipse/openk/gridfailureinformation/importadresses/service/StationServiceTest.java
+++ b/addressImport/src/test/java/org/eclipse/openk/gridfailureinformation/importadresses/service/StationServiceTest.java
@@ -59,7 +59,7 @@
StationDto stationDto = MockDataHelper.mockStationDto(1);
stationDto.setUuid(null);
- when(stationRepository.findByG3efid(any(Long.class))).thenReturn(Optional.empty());
+ when(stationRepository.findByStationId(any(String.class))).thenReturn(Optional.empty());
when(stationRepository.save(any(TblStation.class)))
.then((Answer<TblStation>) invocation -> {
Object[] args = invocation.getArguments();
@@ -79,7 +79,7 @@
TblStation tblStation = stationMapper.toTableStation(stationDto);
- when(stationRepository.findByG3efid(any(Long.class))).thenReturn(Optional.of(tblStation));
+ when(stationRepository.findByStationId(any(String.class))).thenReturn(Optional.of(tblStation));
when(stationRepository.save(any(TblStation.class)))
.then((Answer<TblStation>) invocation -> {
Object[] args = invocation.getArguments();
@@ -97,7 +97,7 @@
StationDto stationDto = MockDataHelper.mockStationDto(1);
TblStation tblStation = stationMapper.toTableStation(stationDto);
- when(stationRepository.findByG3efid(any(Long.class))).thenReturn(Optional.of(tblStation));
+ when(stationRepository.findByStationId(any(String.class))).thenReturn(Optional.of(tblStation));
when(stationRepository.save(any(TblStation.class)))
.thenThrow(new IllegalArgumentException());
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/GridFailureInformationApplication.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/GridFailureInformationApplication.java
index ffd65c0..65d544c 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/GridFailureInformationApplication.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/GridFailureInformationApplication.java
@@ -2,6 +2,7 @@
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@@ -10,6 +11,7 @@
@EnableSwagger2
@EnableFeignClients
@EnableJpaAuditing(modifyOnCreate=true, auditorAwareRef="auditProvider")
+@EnableConfigurationProperties
public class GridFailureInformationApplication {
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/GfiGrid.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/GfiGrid.java
index b4bc353..62c37a0 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/GfiGrid.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/GfiGrid.java
@@ -21,6 +21,7 @@
import org.eclipse.openk.gridfailureinformation.bpmn.base.ProcessTask;
import org.eclipse.openk.gridfailureinformation.bpmn.base.tasks.DecisionTask;
import org.eclipse.openk.gridfailureinformation.bpmn.impl.tasks.*;
+import org.eclipse.openk.gridfailureinformation.constants.Constants;
import org.springframework.stereotype.Component;
import static org.eclipse.openk.gridfailureinformation.bpmn.base.tasks.DecisionTask.OutputPort.NO;
@@ -30,6 +31,7 @@
@Log4j2
@Component
public class GfiGrid extends ProcessGrid {
+
public GfiGrid() throws ProcessException {
DecisionTask decidePlanned = new DecideFailureInfoPlanned();
@@ -53,8 +55,14 @@
ProcessTask publishMessage = register( QUALIFIED,
new UIStoreFailureInformationTask( "State QUALIFIED UI Task", true));
+ ProcessTask storeForceEditStatusQualified = register( CHECKED_FOR_PUBLISH_, new StoreEditStatusTask( QUALIFIED ) );
+ ProcessTask publishMessageToChannels = new PublishFailureToChannelsTask();
+ ProcessTask storePublicationStatus = new StorePublishStatusTask(Constants.PUB_STATUS_VEROEFFENTLICHT);
+ ProcessTask updateMessage = new UIStoreFailureInformationTask( "State Updated UI Task", true);
+
DecisionTask decideUpdated = new DecideFailureInfoUpdated();
ProcessTask storeEditStatusUpdated = new ShortcutTask( UPDATED );
+ ProcessTask resetPublishedFlagOnChannels = new ResetPublishedFlagOnChannelsTask();
ProcessTask completedEndpoint = register( COMPLETED,
new UIStoreFailureInformationTask( "State COMPETED UI Task", true));
@@ -80,7 +88,12 @@
decideUpdated.connectOutputTo(YES, storeEditStatusUpdated);
decideUpdated.connectOutputTo(NO, completedEndpoint);
- storeEditStatusUpdated.connectOutputTo(qualifyMessage);
+ storeForceEditStatusQualified.connectOutputTo(publishMessageToChannels);
+ publishMessageToChannels.connectOutputTo(storePublicationStatus);
+ storePublicationStatus.connectOutputTo(updateMessage);
+
+ storeEditStatusUpdated.connectOutputTo(resetPublishedFlagOnChannels);
+ resetPublishedFlagOnChannels.connectOutputTo(qualifyMessage);
}
}
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/GfiProcessEnvironment.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/GfiProcessEnvironment.java
index 2a97b6e..c94463a 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/GfiProcessEnvironment.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/GfiProcessEnvironment.java
@@ -3,8 +3,10 @@
import lombok.Data;
import org.eclipse.openk.gridfailureinformation.mapper.FailureInformationMapper;
import org.eclipse.openk.gridfailureinformation.repository.FailureClassificationRepository;
+import org.eclipse.openk.gridfailureinformation.repository.FailureInformationPublicationChannelRepository;
import org.eclipse.openk.gridfailureinformation.repository.FailureInformationRepository;
import org.eclipse.openk.gridfailureinformation.repository.StatusRepository;
+import org.eclipse.openk.gridfailureinformation.service.ExportService;
import org.eclipse.openk.gridfailureinformation.service.FailureInformationService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -27,4 +29,10 @@
@Autowired
private FailureInformationMapper failureInformationMapper;
+ @Autowired
+ private FailureInformationPublicationChannelRepository channelRepository;
+
+ @Autowired
+ private ExportService exportService;
+
}
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/GfiProcessState.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/GfiProcessState.java
index 8150d7f..f2488c8 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/GfiProcessState.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/GfiProcessState.java
@@ -27,6 +27,7 @@
QUALIFIED (5),
UPDATED (6),
COMPLETED (7),
+ CHECKED_FOR_PUBLISH_ ( 20),// NOSONAR virtual state not for storing in db
UNDEFINED_ (-1); // NOSONAR
private final long statusValue;
@@ -55,6 +56,8 @@
return UPDATED;
case 7:
return COMPLETED;
+ case 20:
+ return CHECKED_FOR_PUBLISH_;
default:
log.error("Invalid statusValue:"+statusValue);
return UNDEFINED_;
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/tasks/ProcessHelper.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/tasks/ProcessHelper.java
index 4a3cb3b..2e35f34 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/tasks/ProcessHelper.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/tasks/ProcessHelper.java
@@ -6,8 +6,10 @@
import org.eclipse.openk.gridfailureinformation.bpmn.impl.GfiProcessEnvironment;
import org.eclipse.openk.gridfailureinformation.bpmn.impl.GfiProcessState;
import org.eclipse.openk.gridfailureinformation.exceptions.InternalServerErrorException;
+import org.eclipse.openk.gridfailureinformation.exceptions.NotFoundException;
import org.eclipse.openk.gridfailureinformation.model.RefFailureClassification;
import org.eclipse.openk.gridfailureinformation.model.RefStatus;
+import org.eclipse.openk.gridfailureinformation.model.TblFailureInformation;
import org.eclipse.openk.gridfailureinformation.viewmodel.FailureInformationDto;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@@ -49,4 +51,29 @@
return GfiProcessState.fromValue(optRefStatus.get().getId());
}
+ public FailureInformationDto storeEditStatus( FailureInformationDto dto, GfiProcessState newState ) {
+ UUID statusUuid = environment.getStatusRepository()
+ .findById(newState.getStatusValue())
+ .orElseThrow( () -> new NotFoundException( "status.not.found"))
+ .getUuid();
+
+ dto.setStatusInternId(statusUuid);
+ return environment.getFailureInformationService().storeFailureInfo(dto, GfiProcessState.NEW);
+ }
+
+ public void publishFailureInformation( FailureInformationDto dto ) {
+ String[] channels = new String[dto.getPublicationChannels().size()];
+ environment.getExportService().exportFailureInformation(dto.getUuid(),
+ dto.getPublicationChannels().toArray(channels));
+ }
+
+ public void resetPublishedStateForChannels( FailureInformationDto dto ) {
+ TblFailureInformation tblFailureInformation = environment.getFailureInformationRepository().findByUuid(dto.getUuid())
+ .orElseThrow(() -> new NotFoundException("failure.information.not.found"));
+ tblFailureInformation.getPublicationChannelList().forEach(x -> {
+ x.setPublished(false);
+ environment.getChannelRepository().save(x);
+ });
+ }
+
}
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/tasks/PublishFailureToChannelsTask.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/tasks/PublishFailureToChannelsTask.java
new file mode 100644
index 0000000..a3185e8
--- /dev/null
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/tasks/PublishFailureToChannelsTask.java
@@ -0,0 +1,35 @@
+/*
+ *******************************************************************************
+ * Copyright (c) 2018 Contributors to the Eclipse Foundation
+ *
+ * See the NOTICE file(s) distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *******************************************************************************
+*/
+
+package org.eclipse.openk.gridfailureinformation.bpmn.impl.tasks;
+
+import lombok.extern.log4j.Log4j2;
+import org.eclipse.openk.gridfailureinformation.bpmn.base.tasks.ServiceTask;
+import org.eclipse.openk.gridfailureinformation.bpmn.impl.GfiProcessSubject;
+
+@Log4j2
+public class PublishFailureToChannelsTask extends ServiceTask<GfiProcessSubject> {
+
+ public PublishFailureToChannelsTask() {
+ super("Meldung an Kanäle veröffentlichen");
+ }
+
+ @Override
+ protected void onLeaveStep(GfiProcessSubject subject) {
+ subject.getProcessHelper().publishFailureInformation( subject.getFailureInformationDto() );
+
+ log.debug("PublishFailureToChannelsTask onLeaveStep");
+ }
+}
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/tasks/ResetPublishedFlagOnChannelsTask.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/tasks/ResetPublishedFlagOnChannelsTask.java
new file mode 100644
index 0000000..e377de1
--- /dev/null
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/tasks/ResetPublishedFlagOnChannelsTask.java
@@ -0,0 +1,34 @@
+/*
+ *******************************************************************************
+ * Copyright (c) 2018 Contributors to the Eclipse Foundation
+ *
+ * See the NOTICE file(s) distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *******************************************************************************
+*/
+
+package org.eclipse.openk.gridfailureinformation.bpmn.impl.tasks;
+
+import lombok.extern.log4j.Log4j2;
+import org.eclipse.openk.gridfailureinformation.bpmn.base.tasks.ServiceTask;
+import org.eclipse.openk.gridfailureinformation.bpmn.impl.GfiProcessSubject;
+
+@Log4j2
+public class ResetPublishedFlagOnChannelsTask extends ServiceTask<GfiProcessSubject> {
+
+ public ResetPublishedFlagOnChannelsTask() {
+ super("Reset published state on channels");
+ }
+
+ @Override
+ protected void onLeaveStep(GfiProcessSubject subject) {
+ subject.getProcessHelper().resetPublishedStateForChannels( subject.getFailureInformationDto() );
+ log.debug("ResetPublishedFlagOnChannelsTask onLeaveStep");
+ }
+}
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/tasks/ShortcutTask.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/tasks/ShortcutTask.java
index 46901ff..17cbb47 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/tasks/ShortcutTask.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/tasks/ShortcutTask.java
@@ -26,7 +26,7 @@
public ShortcutTask(GfiProcessState stateToSave) {
- super("Bearbeitungsstatus-Status setzen: "+stateToSave);
+ super("Bearbeitungsstatus-Status (Shortcut) setzen: "+stateToSave);
this.stateToSave = stateToSave;
}
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/tasks/StoreEditStatusTask.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/tasks/StoreEditStatusTask.java
new file mode 100644
index 0000000..8db9277
--- /dev/null
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/tasks/StoreEditStatusTask.java
@@ -0,0 +1,40 @@
+/*
+ *******************************************************************************
+ * Copyright (c) 2018 Contributors to the Eclipse Foundation
+ *
+ * See the NOTICE file(s) distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *******************************************************************************
+*/
+
+package org.eclipse.openk.gridfailureinformation.bpmn.impl.tasks;
+
+import lombok.extern.log4j.Log4j2;
+import org.eclipse.openk.gridfailureinformation.bpmn.base.tasks.ServiceTask;
+import org.eclipse.openk.gridfailureinformation.bpmn.impl.GfiProcessState;
+import org.eclipse.openk.gridfailureinformation.bpmn.impl.GfiProcessSubject;
+
+@Log4j2
+public class StoreEditStatusTask extends ServiceTask<GfiProcessSubject> {
+ protected final GfiProcessState stateToSave;
+
+
+ public StoreEditStatusTask(GfiProcessState stateToSave) {
+ super("Bearbeitungsstatus-Status setzen: "+stateToSave);
+ this.stateToSave = stateToSave;
+ }
+
+ @Override
+ protected void onLeaveStep(GfiProcessSubject subject) {
+ subject.setFailureInformationDto(
+ subject.getProcessHelper().storeEditStatus( subject.getFailureInformationDto(), stateToSave)
+ );
+ log.debug("StorEditStatusTask onLeaveStep");
+ }
+}
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/tasks/StorePublishStatusTask.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/tasks/StorePublishStatusTask.java
new file mode 100644
index 0000000..2019b3e
--- /dev/null
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/tasks/StorePublishStatusTask.java
@@ -0,0 +1,41 @@
+/*
+ *******************************************************************************
+ * Copyright (c) 2018 Contributors to the Eclipse Foundation
+ *
+ * See the NOTICE file(s) distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *******************************************************************************
+*/
+
+package org.eclipse.openk.gridfailureinformation.bpmn.impl.tasks;
+
+import lombok.extern.log4j.Log4j2;
+import org.eclipse.openk.gridfailureinformation.bpmn.base.tasks.ServiceTask;
+import org.eclipse.openk.gridfailureinformation.bpmn.impl.GfiProcessSubject;
+
+@Log4j2
+public class StorePublishStatusTask extends ServiceTask<GfiProcessSubject> {
+ protected final String publicationStatusToSave;
+
+
+ public StorePublishStatusTask(String publicationStatusToSave) {
+ super("Veröffentlichungsstatus setzen: "+publicationStatusToSave);
+ this.publicationStatusToSave = publicationStatusToSave;
+ }
+
+ @Override
+ protected void onLeaveStep(GfiProcessSubject subject) {
+ subject.getFailureInformationDto().setPublicationStatus(publicationStatusToSave);
+ subject.setFailureInformationDto(
+ subject.getProcessHelper().storeFailureFromViewModel( subject.getFailureInformationDto() )
+ );
+
+ log.debug("StorePublicationStatusTask onLeaveStep");
+ }
+}
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/config/FESettings.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/config/FESettings.java
index 91abb6e..b9e03b3 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/config/FESettings.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/config/FESettings.java
@@ -1,20 +1,28 @@
package org.eclipse.openk.gridfailureinformation.config;
-import lombok.extern.log4j.Log4j2;
+import lombok.Getter;
+import lombok.Setter;
+import org.eclipse.openk.gridfailureinformation.config.rabbitMq.RabbitMqChannel;
import org.springframework.beans.factory.annotation.Value;
-import org.springframework.context.annotation.PropertySource;
-import org.springframework.stereotype.Component;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Configuration;
-@Log4j2
-@Component
-@PropertySource(value={"classpath:application.yml"})
+import java.util.ArrayList;
+import java.util.List;
+
+@Getter
+@Setter
+@Configuration
+@ConfigurationProperties(prefix = "spring.rabbitmq", ignoreUnknownFields = true)
public class FESettings {
- @Value("${spring.settings.exportChannels:}")
- public String[] exportChannels;
+ private List<RabbitMqChannel> channels = new ArrayList<>();
+
@Value("${spring.settings.overviewMapInitialZoom}")
public String overviewMapInitialZoom;
@Value("${spring.settings.detailMapInitialZoom}")
public String detailMapInitialZoom;
-}
\ No newline at end of file
+
+}
+
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/config/RabbitMqConfig.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/config/RabbitMqConfig.java
deleted file mode 100644
index 9750f38..0000000
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/config/RabbitMqConfig.java
+++ /dev/null
@@ -1,89 +0,0 @@
-package org.eclipse.openk.gridfailureinformation.config;
-
-import lombok.Data;
-import lombok.extern.log4j.Log4j2;
-import org.springframework.amqp.core.*;
-import org.springframework.amqp.rabbit.annotation.EnableRabbit;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.context.annotation.*;
-import org.springframework.integration.annotation.ServiceActivator;
-import org.springframework.integration.channel.DirectChannel;
-import org.springframework.messaging.MessageChannel;
-import org.springframework.messaging.MessageHandler;
-
-//@Profile("!test")
-@Configuration
-@Log4j2
-@EnableRabbit
-@Data
-public class RabbitMqConfig {
-
- // RabbitMQ Configurationen für Failure-Info Import
- @Value("${spring.rabbitmq.import_exchange}")
- public String importExchangeName;
- @Value("${spring.rabbitmq.failure_import_queue}")
- public String failureImportQueueName;
- @Value("${spring.rabbitmq.failure_import_routingkey}")
- public String failureImportRoutingKeyName;
-
- // RabbitMQ Configurationen für Mail-Export
- @Value("${spring.rabbitmq.export_exchange}")
- public String exportExchangeName;
- @Value("${spring.rabbitmq.mail_export_queue}")
- public String mailExportQueueName;
- @Value("${spring.rabbitmq.mail_export_routingkey}")
- public String mailExportRoutingKeyName;
-
- @Autowired
- private org.springframework.amqp.rabbit.core.RabbitTemplate rabbitTemplate;
-
- @Bean
- public DirectExchange importExchange() {
- return new DirectExchange(importExchangeName);
- }
-// @Bean
-// public MessageChannel failureImportChannel() {
-// return new DirectChannel();
-// }
- @Bean
- public Queue failureImportQueue() { return new Queue(failureImportQueueName); }
- @Bean
- public Binding failureImportBinding() { return BindingBuilder.bind(failureImportQueue()).to(importExchange()).with(failureImportRoutingKeyName); }
-
-
- @Bean
- public DirectExchange exportExchange() {
- return new DirectExchange(exportExchangeName);
- }
- @Bean
- public MessageChannel mailExportChannel() { return new DirectChannel(); }
- @Bean
- public Queue mailExportQueue() { return new Queue(mailExportQueueName); }
- @Bean
- public Binding mailExportBinding() { return BindingBuilder.bind(mailExportQueue()).to(exportExchange()).with(mailExportRoutingKeyName); }
-
-// @Bean
-// @ServiceActivator(inputChannel = "failureImportChannel")
-// public MessageHandler failureMessageHandler() {
-//
-// return message -> rabbitTemplate.convertAndSend(importExchangeName, failureImportRoutingKeyName, message.getPayload(), message1 -> {
-// message1.getMessageProperties().getHeaders().put("metaId", message.getHeaders().get("metaId"));
-// message1.getMessageProperties().getHeaders().put("description", message.getHeaders().get("description"));
-// message1.getMessageProperties().getHeaders().put("source", message.getHeaders().get("source"));
-// return message1;
-// });
-// }
-
- @Bean
- @ServiceActivator(inputChannel = "mailExportChannel")
- public MessageHandler mailMessageHandler() {
-
- return message -> rabbitTemplate.convertAndSend(exportExchangeName, mailExportRoutingKeyName, message.getPayload(), message1 -> {
- message1.getMessageProperties().getHeaders().put("metaId", message.getHeaders().get("metaId"));
- message1.getMessageProperties().getHeaders().put("description", message.getHeaders().get("description"));
- message1.getMessageProperties().getHeaders().put("source", message.getHeaders().get("source"));
- return message1;
- });
- }
-}
\ No newline at end of file
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/config/rabbitMq/RabbitMqChannel.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/config/rabbitMq/RabbitMqChannel.java
new file mode 100644
index 0000000..290c12c
--- /dev/null
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/config/rabbitMq/RabbitMqChannel.java
@@ -0,0 +1,16 @@
+package org.eclipse.openk.gridfailureinformation.config.rabbitMq;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@AllArgsConstructor
+@NoArgsConstructor
+@Data
+public class RabbitMqChannel {
+
+ public String name;
+ public String exportqueue;
+ public String exportkey;
+
+}
\ No newline at end of file
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/config/rabbitMq/RabbitMqConfig.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/config/rabbitMq/RabbitMqConfig.java
new file mode 100644
index 0000000..53922ae
--- /dev/null
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/config/rabbitMq/RabbitMqConfig.java
@@ -0,0 +1,49 @@
+package org.eclipse.openk.gridfailureinformation.config.rabbitMq;
+
+import lombok.Data;
+import lombok.extern.log4j.Log4j2;
+import org.springframework.amqp.core.BindingBuilder;
+import org.springframework.amqp.core.DirectExchange;
+import org.springframework.amqp.core.Queue;
+import org.springframework.amqp.rabbit.annotation.EnableRabbit;
+import org.springframework.amqp.rabbit.core.RabbitAdmin;
+import org.springframework.amqp.rabbit.core.RabbitTemplate;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Profile;
+
+import javax.annotation.PostConstruct;
+
+@Profile("!test")
+@Configuration
+@Log4j2
+@EnableRabbit
+@Data
+public class RabbitMqConfig {
+
+ @Autowired
+ private RabbitTemplate rabbitTemplate;
+
+ @Autowired
+ private RabbitMqProperties rabbitMqProperties;
+
+ @PostConstruct
+ private void buildAllQueues(){
+
+// log.warn("RabbitMqHost: " + rabbitMqProperties.getHost());
+// log.warn("RabbitMqExchange: " + rabbitMqProperties.getExport_exchange());
+// log.warn("RabbitMq Anzahl Channels: " + rabbitMqProperties.getChannels().size());
+
+ // Neuerstellung Exchange und Queues falls diese nicht vorhanden sind (passiert nur dann!)
+ RabbitAdmin admin = new RabbitAdmin(rabbitTemplate);
+ DirectExchange exchange = new DirectExchange(rabbitMqProperties.getExport_exchange());
+ admin.declareExchange(exchange);
+
+ for(RabbitMqChannel rabbitMqchannel: rabbitMqProperties.getChannels()) {
+
+ Queue queue = new Queue(rabbitMqchannel.getExportqueue());
+ admin.declareQueue(queue);
+ admin.declareBinding(BindingBuilder.bind(queue).to(exchange).with(rabbitMqchannel.getExportkey()));
+ }
+ }
+}
\ No newline at end of file
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/config/rabbitMq/RabbitMqProperties.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/config/rabbitMq/RabbitMqProperties.java
new file mode 100644
index 0000000..a255897
--- /dev/null
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/config/rabbitMq/RabbitMqProperties.java
@@ -0,0 +1,37 @@
+package org.eclipse.openk.gridfailureinformation.config.rabbitMq;
+
+import lombok.Getter;
+import lombok.Setter;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Configuration;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Getter
+@Setter
+@Configuration
+@ConfigurationProperties(prefix = "spring.rabbitmq", ignoreUnknownFields = true)
+public class RabbitMqProperties {
+
+ private String host;
+ private String port;
+ private String username;
+ private String password;
+
+ private String import_exchange;
+ private String failure_import_queue;
+ private String failure_import_routingkey;
+
+ private String export_exchange;
+
+ private List<RabbitMqChannel> channels = new ArrayList<>();
+
+}
+
+
+
+
+
+
+
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/constants/Constants.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/constants/Constants.java
index 09c4784..e50a1ff 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/constants/Constants.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/constants/Constants.java
@@ -29,6 +29,7 @@
public static final String EXTERNAL_SHORT = "E";
public static final String FAILURE_INFO_UUID_NOT_EXISTING = "failure.info.uuid.not.existing";
public static final String STATUS_NOT_EXISTING = "status.not.existing";
+ public static final String PUB_STATUS_VEROEFFENTLICHT = "Veröffentlicht";
private Constants() {
// empty Constructor for the sake of SONAR
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/controller/FailureInformationController.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/controller/FailureInformationController.java
index 5754e69..44c3516 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/controller/FailureInformationController.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/controller/FailureInformationController.java
@@ -93,13 +93,21 @@
@ApiResponse(code = 200, message = "Störungsinformation wurde aktualisiert"),
@ApiResponse(code = 400, message = "Ungültige Eingabe"),
@ApiResponse(code = 404, message = "Nicht gefunden")})
- public ResponseEntity updateFailureInfo(@PathVariable UUID failureInfoUuid, @Validated @RequestBody FailureInformationDto failureInfoDto) {
+ public ResponseEntity updateFailureInfo(
+ @PathVariable UUID failureInfoUuid,
+ @RequestParam( defaultValue = "false" ) @ApiParam( "Save and publish the failure to the distribution channels") boolean saveForPublish,
+ @Validated @RequestBody FailureInformationDto failureInfoDto) {
if (!failureInfoDto.getUuid().equals(failureInfoUuid)) {
throw new BadRequestException("invalid.uuid.path.object");
}
- failureInformationService.updateFailureInfo(failureInfoDto);
+ if( saveForPublish ) {
+ failureInformationService.updateAndPublish(failureInfoDto);
+ }
+ else {
+ failureInformationService.updateFailureInfo(failureInfoDto);
+ }
return ResponseEntity.ok().build();
}
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/controller/FailureInformationStationController.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/controller/FailureInformationStationController.java
index 14e84ce..7f49b89 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/controller/FailureInformationStationController.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/controller/FailureInformationStationController.java
@@ -68,13 +68,13 @@
})
public ResponseEntity<FailureInformationStationDto> assignStationToFailureInfo(
@PathVariable UUID failureInfoUuid,
- @Validated @RequestBody StationDto dgDto) {
+ @Validated @RequestBody StationDto stationDto) {
- FailureInformationStationDto savedFailureInfoStationDto = failureInformationStationService.insertFailureInfoStation(failureInfoUuid, dgDto);
+ FailureInformationStationDto savedFailureInfoStationDto = failureInformationStationService.insertFailureInfoStation(failureInfoUuid, stationDto);
URI location = ServletUriComponentsBuilder
.fromCurrentRequestUri()
.path("/{stationid}")
- .buildAndExpand(savedFailureInfoStationDto.getStationId())
+ .buildAndExpand(savedFailureInfoStationDto.getStationStationId())
.toUri();
return ResponseEntity.created(location).body(savedFailureInfoStationDto);
}
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/mapper/FESettingsMapper.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/mapper/FESettingsMapper.java
deleted file mode 100644
index cd8e925..0000000
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/mapper/FESettingsMapper.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- *******************************************************************************
- * Copyright (c) 2019 Contributors to the Eclipse Foundation
- *
- * See the NOTICE file(s) distributed with this work for additional
- * information regarding copyright ownership.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v. 2.0 which is available at
- * http://www.eclipse.org/legal/epl-2.0.
- *
- * SPDX-License-Identifier: EPL-2.0
- *******************************************************************************
- */
-package org.eclipse.openk.gridfailureinformation.mapper;
-
-import org.eclipse.openk.gridfailureinformation.config.FESettings;
-import org.eclipse.openk.gridfailureinformation.viewmodel.FESettingsDto;
-import org.mapstruct.Mapper;
-import org.mapstruct.ReportingPolicy;
-
-@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE)
-public interface FESettingsMapper {
- FESettingsDto toFESettingsDto(FESettings feSettings);
-}
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/mapper/FailureInformationMapper.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/mapper/FailureInformationMapper.java
index b12905a..e3a8d09 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/mapper/FailureInformationMapper.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/mapper/FailureInformationMapper.java
@@ -16,6 +16,7 @@
import org.eclipse.openk.gridfailureinformation.model.TblDistributionGroup;
import org.eclipse.openk.gridfailureinformation.model.TblFailureInformation;
+import org.eclipse.openk.gridfailureinformation.model.TblFailureInformationPublicationChannel;
import org.eclipse.openk.gridfailureinformation.model.TblStation;
import org.eclipse.openk.gridfailureinformation.viewmodel.FailureInformationDto;
import org.eclipse.openk.gridfailureinformation.viewmodel.ForeignFailureDataDto;
@@ -23,6 +24,7 @@
import java.util.LinkedList;
import java.util.List;
+import java.util.Set;
import java.util.stream.Collectors;
@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE)
@@ -73,12 +75,16 @@
failureInformationDto.setDistributionGroupUuids( sourceList != null ? sourceList.stream().map(TblDistributionGroup::getUuid).collect(Collectors.toList()) : new LinkedList<>());
}
-
@AfterMapping
- default void populateStationUuids(TblFailureInformation source, @MappingTarget FailureInformationDto failureInformationDto){
- List<TblStation> sourceList = source.getStations();
+ default void populateStationIds(TblFailureInformation source, @MappingTarget FailureInformationDto failureInformationDto){
+ Set<TblStation> stations = source.getStations();
- failureInformationDto.setStationUuids( sourceList != null ? sourceList.stream().map(TblStation::getUuid).collect(Collectors.toList()) : new LinkedList<>());
+ failureInformationDto.setStationIds( stations != null ? stations.stream().map(TblStation::getUuid).collect(Collectors.toList()) : new LinkedList<>());
}
+ @AfterMapping
+ default void populatePublicationChannels(TblFailureInformation source, @MappingTarget FailureInformationDto failureInformationDto){
+ List<TblFailureInformationPublicationChannel> sourceList = source.getPublicationChannelList();
+ failureInformationDto.setPublicationChannels( sourceList != null ? sourceList.stream().map(TblFailureInformationPublicationChannel::getPublicationChannel).collect(Collectors.toList()) : new LinkedList<>());
+ }
}
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/mapper/FailureInformationStationMapper.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/mapper/FailureInformationStationMapper.java
index 8bca705..4c96501 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/mapper/FailureInformationStationMapper.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/mapper/FailureInformationStationMapper.java
@@ -24,15 +24,13 @@
@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface FailureInformationStationMapper {
@Mappings({
- @Mapping(source = "fkTblFailureInformation", target = "failureInformationId"),
- @Mapping(source = "fkTblStation", target = "stationId")
+ @Mapping(source = "fkTblFailureInformation", target = "failureInformationId")
})
FailureInformationStationDto toFailureInfoStationDto(TblFailureInformationStation tblFailureInformationStation);
@Mappings({
- @Mapping(target = "fkTblFailureInformation", source = "failureInformationId"),
- @Mapping(target = "fkTblStation", source = "stationId")
+ @Mapping(target = "fkTblFailureInformation", source = "failureInformationId")
})
TblFailureInformationStation toTblFailureInformationStation(FailureInformationStationDto failureInformationStationDto);
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/model/TblFailureInformation.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/model/TblFailureInformation.java
index 58204de..9c40084 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/model/TblFailureInformation.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/model/TblFailureInformation.java
@@ -23,10 +23,7 @@
import javax.persistence.*;
import java.math.BigDecimal;
-import java.util.Date;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.UUID;
+import java.util.*;
@Data
@Entity
@@ -118,14 +115,17 @@
)
private List<TblDistributionGroup> distributionGroups = new LinkedList<>();
- @ManyToMany
+ @ManyToMany(fetch = FetchType.EAGER)
@JoinTable(
name = "tblFailureInformationStation",
joinColumns = {@JoinColumn(name = "fkTblFailureInformation")},
- inverseJoinColumns = {@JoinColumn(name = "fkTblStation")}
+ inverseJoinColumns = {@JoinColumn(name = "stationStationId", referencedColumnName="stationId") }
)
- private List<TblStation> stations = new LinkedList<>();
+ private Set<TblStation> stations = new HashSet<>();
@OneToOne(mappedBy = "tblFailureInformation")
private TblFailureInformationReminderMailSent failureInformationReminderMailSent;
+ @OneToMany(cascade=CascadeType.ALL, mappedBy="tblFailureInformation", orphanRemoval = true)
+ private List<TblFailureInformationPublicationChannel> publicationChannelList = new ArrayList<>();
+
}
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/model/TblFailureInformationPublicationChannel.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/model/TblFailureInformationPublicationChannel.java
new file mode 100644
index 0000000..3be8bc6
--- /dev/null
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/model/TblFailureInformationPublicationChannel.java
@@ -0,0 +1,44 @@
+/*
+ *******************************************************************************
+ * Copyright (c) 2019 Contributors to the Eclipse Foundation
+ *
+ * See the NOTICE file(s) distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *******************************************************************************
+*/
+package org.eclipse.openk.gridfailureinformation.model;
+
+import lombok.Data;
+
+import javax.persistence.*;
+
+@Data
+@Entity
+public class TblFailureInformationPublicationChannel {
+ @Id
+ @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "tbl_failure_information_publication_channel_seq")
+ @SequenceGenerator(name = "tbl_failure_information_publication_channel_seq", sequenceName = "tbl_failure_information_publication_channel_seq", allocationSize = 1)
+ @Column(name = "id", updatable = false)
+ private Long id;
+
+ @ManyToOne
+ @JoinColumn( name = "fk_tbl_failure_information")
+ //@NotNull
+ private TblFailureInformation tblFailureInformation;
+ //@NotNull
+ private String publicationChannel;
+ //@NotNull
+ private boolean published;
+
+
+
+// @ManyToOne
+// private Supplier supplier;
+
+}
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/model/TblFailureInformationStation.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/model/TblFailureInformationStation.java
index 4a94e8a..07725ef 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/model/TblFailureInformationStation.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/model/TblFailureInformationStation.java
@@ -28,6 +28,6 @@
private Long id;
private Long fkTblFailureInformation;
- private Long fkTblStation;
+ private String stationStationId;
}
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/model/TblStation.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/model/TblStation.java
index 232e4d0..ba7e3e3 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/model/TblStation.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/model/TblStation.java
@@ -17,12 +17,14 @@
import lombok.Data;
import javax.persistence.*;
+import java.io.Serializable;
import java.math.BigDecimal;
import java.util.UUID;
@Data
@Entity
-public class TblStation {
+public class TblStation implements Serializable {
+ private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "tbl_station_id_seq")
@SequenceGenerator(name = "tbl_station_id_seq", sequenceName = "tbl_station_id_seq", allocationSize = 1)
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/repository/DistributionGroupMemberRepository.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/repository/DistributionGroupMemberRepository.java
index cfbc964..cf27c88 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/repository/DistributionGroupMemberRepository.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/repository/DistributionGroupMemberRepository.java
@@ -33,7 +33,7 @@
Optional<TblDistributionGroupMember> findByUuid(UUID uuid);
@Query("select a from TblDistributionGroupMember a where a.tblDistributionGroup.uuid = :groupUuid")
- List<TblDistributionGroupMember> findByTblDistributionGroupUuid(UUID groupUuid);
+ List<TblDistributionGroupMember> findByTblDistributionGroupUuid(@Param("groupUuid") UUID groupUuid);
@Query("select count(*) from TblDistributionGroupMember a where a.tblDistributionGroup.id=:groupId and a.contactId=:contactId and uuid <>:memberUuid")
Long countByDistributionGroupIdAndContactIdAndIsNotSame( @Param("groupId") Long groupId, @Param("contactId") UUID contactId, @Param("memberUuid") UUID memberUuid);
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/repository/FailureInformationPublicationChannelRepository.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/repository/FailureInformationPublicationChannelRepository.java
new file mode 100644
index 0000000..481e0bd
--- /dev/null
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/repository/FailureInformationPublicationChannelRepository.java
@@ -0,0 +1,32 @@
+/*
+ *******************************************************************************
+ * Copyright (c) 2019 Contributors to the Eclipse Foundation
+ *
+ * See the NOTICE file(s) distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *******************************************************************************
+ */
+
+package org.eclipse.openk.gridfailureinformation.repository;
+
+import org.eclipse.openk.gridfailureinformation.model.TblFailureInformation;
+import org.eclipse.openk.gridfailureinformation.model.TblFailureInformationPublicationChannel;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Repository
+public interface FailureInformationPublicationChannelRepository extends JpaRepository<TblFailureInformationPublicationChannel, Long > {
+
+ List<TblFailureInformationPublicationChannel> findByTblFailureInformation(TblFailureInformation tblFailureInformation);
+ //List<TblFailureInformationPublicationChannel> findByPublicationChannel(String publicationChannel);
+ int countByTblFailureInformationAndPublicationChannel(TblFailureInformation tblFailureInformation, String publicationChannel);
+
+}
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/repository/FailureInformationStationRepository.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/repository/FailureInformationStationRepository.java
index bd0d4b1..ac31132 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/repository/FailureInformationStationRepository.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/repository/FailureInformationStationRepository.java
@@ -24,6 +24,6 @@
@Repository
public interface FailureInformationStationRepository extends JpaRepository<TblFailureInformationStation, Long > {
- Optional<TblFailureInformationStation> findByFkTblFailureInformationAndFkTblStation(Long failureInfoId, Long stationId);
+ Optional<TblFailureInformationStation> findByFkTblFailureInformationAndStationStationId(Long failureInfoId, String stationStationId);
}
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/repository/StationRepository.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/repository/StationRepository.java
index f00a4c9..990acf7 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/repository/StationRepository.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/repository/StationRepository.java
@@ -17,8 +17,6 @@
import org.eclipse.openk.gridfailureinformation.model.TblStation;
import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
@@ -32,9 +30,6 @@
Optional<TblStation> findByUuid(UUID uuid);
- @Query("select s from TblStation s where s.stationId = :stationid and s.stationName = :stationname")
- List<TblStation> findStationsByIdAndName(@Param("stationid") String stationid, @Param("stationname") String stationname);
-
Optional<TblStation> findByStationId(String stationId);
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/ExportService.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/ExportService.java
index d035547..bceae11 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/ExportService.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/ExportService.java
@@ -2,40 +2,43 @@
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.log4j.Log4j2;
-import org.eclipse.openk.gridfailureinformation.config.RabbitMqConfig;
import org.eclipse.openk.gridfailureinformation.config.ResourceConfig;
+import org.eclipse.openk.gridfailureinformation.config.rabbitMq.RabbitMqChannel;
+import org.eclipse.openk.gridfailureinformation.config.rabbitMq.RabbitMqProperties;
import org.eclipse.openk.gridfailureinformation.exceptions.InternalServerErrorException;
import org.eclipse.openk.gridfailureinformation.exceptions.NotFoundException;
import org.eclipse.openk.gridfailureinformation.mapper.FailureInformationMapper;
import org.eclipse.openk.gridfailureinformation.model.*;
+import org.eclipse.openk.gridfailureinformation.repository.FailureInformationPublicationChannelRepository;
import org.eclipse.openk.gridfailureinformation.repository.FailureInformationRepository;
import org.eclipse.openk.gridfailureinformation.viewmodel.DistributionGroupMemberDto;
import org.eclipse.openk.gridfailureinformation.viewmodel.DistributionTextPlaceholderDto;
-import org.eclipse.openk.gridfailureinformation.viewmodel.MailMessageDto;
+import org.eclipse.openk.gridfailureinformation.viewmodel.RabbitMqMessageDto;
import org.springframework.amqp.core.BindingBuilder;
import org.springframework.amqp.core.DirectExchange;
import org.springframework.amqp.core.Queue;
import org.springframework.amqp.rabbit.core.RabbitAdmin;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
-import org.springframework.messaging.MessageChannel;
-import org.springframework.messaging.support.MessageBuilder;
+import org.springframework.context.annotation.PropertySource;
+import org.springframework.core.env.Environment;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*;
+import java.util.stream.Collectors;
@Service
@Log4j2
@Validated
@EnableConfigurationProperties
+@PropertySource(value = "classpath:config-${spring.profiles.active}.yml", ignoreResourceNotFound = true)
public class ExportService {
@Autowired
- private RabbitMqConfig rabbitMqConfig;
+ private RabbitMqProperties rabbitMqProperties;
@Autowired
private org.springframework.amqp.rabbit.core.RabbitTemplate rabbitTemplate;
@@ -50,8 +53,7 @@
private FailureInformationRepository failureInformationRepository;
@Autowired
- @Qualifier("mailExportChannel")
- private MessageChannel mailExportChannel;
+ private FailureInformationPublicationChannelRepository publicationChannelRepository;
@Autowired
private ObjectMapper objectMapper;
@@ -59,111 +61,181 @@
@Autowired
private ResourceConfig resourceConfig;
+ private @Autowired Environment environment;
+
private static final String SUBJECT_DATE_PATTERN_APPLIED = "EEEE', den' dd.MM.yy 'um' HH:mm:ss";
-
- String mailChannel = "MAIL";
- String smsChannel = "SMS";
- String faxChannel = "FAX";
-
protected Map<String,String> contentReplaceMap;
+ protected int countExportedMessages;
- public boolean exportFailureInformation(UUID uuid, String[]channels){
- int countExportedMessages = 0;
- if(Arrays.asList(channels).contains(mailChannel)){
- checkExchangeAndQueueOnRabbitMq();
+ public boolean exportFailureInformation(UUID uuid, String[] targetChannels){
+ countExportedMessages = 0;
+
+ for(String targetChannel: targetChannels){
+
+ RabbitMqChannel rChannel = getAvailableRabbitMqChannel(targetChannel);
+ if(getAvailableRabbitMqChannel(targetChannel) == null){
+ log.warn("channel.not.existing");
+ continue;
+ }
+
+ checkExchangeAndQueueOnRabbitMq(rChannel.getExportqueue(), rChannel.getExportkey());
//Holen der Störinfo
TblFailureInformation existingTblFailureInfo = failureInformationRepository.findByUuid( uuid )
.orElseThrow(NotFoundException::new);
- //Holen der Verteilergruppen (Pro Verteilergruppe eine Message auf RabbitMQ)
- List<TblDistributionGroup> distributionGroups = existingTblFailureInfo.getDistributionGroups();
- if(distributionGroups == null || distributionGroups.isEmpty()){
- log.warn("no distribution group found for failureInfo: "
- + existingTblFailureInfo.getUuid().toString());
- return false;
- }
+ if( !isChannelAlreadyPublished( targetChannel, existingTblFailureInfo)) {
- for(TblDistributionGroup distributionGroup: distributionGroups){
- MailMessageDto mailMessageDto = new MailMessageDto();
- mailMessageDto.setFailureInformationDto(failureInformationMapper.toFailureInformationDto(existingTblFailureInfo));
-
- //Verteiler müssen aufgelöst werden in einzelne Mailadressen
- mailMessageDto.setMailDistributionGroup(distributionGroup.getName());
-
- // Holen der zugeordneten Mail-Adressen
- List<String> mailAddresses= new ArrayList<>();
- List<DistributionGroupMemberDto> memberList = distributionGroupMemberService.getMembersByGroupId(distributionGroup.getUuid());
- memberList.stream()
- .filter(x -> x.getEmail() != null)
- .forEach(x -> mailAddresses.add(x.getEmail()));
- if(mailAddresses.isEmpty()){
- log.warn("no mail addresses found for distribution group: "
- + distributionGroup.getUuid().toString());
- break;
+ //Holen der Verteilergruppen (Pro Verteilergruppe eine Message auf RabbitMQ)
+ List<TblDistributionGroup> distributionGroups = existingTblFailureInfo.getDistributionGroups();
+ if (distributionGroups == null || distributionGroups.isEmpty()) {
+ log.warn("no distribution group found for failureInfo: "
+ + existingTblFailureInfo.getUuid().toString());
+ return false;
}
- mailMessageDto.setMailAddresses(mailAddresses);
- //Holen des zum Verteiler zugehörigen Textes
- //Ersatz der gekennzeichneten Stellen im Text mit vorhandenen Infos
- String emailBody = distributionGroup.getDistributionText();
- String preparedEmailBody = prepareEMailBody(emailBody, existingTblFailureInfo);
- mailMessageDto.setMailtext(preparedEmailBody);
-
- //Versenden des Objekts/der Objekte über RabbitMQ
- try {
- mailExportChannel.send(
- MessageBuilder.withPayload(
- objectMapper.writeValueAsString(mailMessageDto))
- //.setHeader("metaId", mailMessageDto.getMetaId())
- //.setHeader("description", mailMessageDto.getDescription())
- //.setHeader("source", mailMessageDto.getSource())
- .build());
-
- countExportedMessages++;
- } catch (Exception e) {
- log.debug(e.getMessage(), e);
- throw new InternalServerErrorException("could.not.push.mail");
+ for (TblDistributionGroup distributionGroup : distributionGroups) {
+ prepareMessage(existingTblFailureInfo, distributionGroup, rChannel.getExportkey());
}
+
+ // mark channel as published
+ markChannelAsPublished(targetChannel, existingTblFailureInfo);
}
-
- }
-
- if(Arrays.asList(channels).contains(smsChannel)){
-
- }
-
- if(Arrays.asList(channels).contains(faxChannel)){
-
}
return countExportedMessages > 0;
}
- protected void checkExchangeAndQueueOnRabbitMq(){
+ private boolean isChannelAlreadyPublished(String targetChannel, TblFailureInformation existingTblFailureInfo) {
+ if( existingTblFailureInfo.getPublicationChannelList() == null ) {
+ return true;
+ }
+ Optional<TblFailureInformationPublicationChannel> tf =
+ existingTblFailureInfo.getPublicationChannelList().stream()
+ .filter( x -> x.getPublicationChannel().equals(targetChannel) )
+ .findFirst();
+
+ if( tf.isPresent() ) {
+ return tf.get().isPublished();
+ }
+ else {
+ log.debug("Channel '"+targetChannel+"' has already been published for FailureInfo '"+
+ existingTblFailureInfo.getUuid()+"' and has been skipped.");
+ return true;
+ }
+ }
+
+ private void markChannelAsPublished(String targetChannel, TblFailureInformation existingTblFailureInfo) {
+ Optional<TblFailureInformationPublicationChannel> pubChannelToSave = existingTblFailureInfo.getPublicationChannelList().stream()
+ .filter( x->x.getPublicationChannel().equals(targetChannel))
+ .findFirst();
+
+ if( pubChannelToSave.isPresent() ) {
+ pubChannelToSave.get().setPublished(true);
+ publicationChannelRepository.save(pubChannelToSave.get());
+ }
+ else {
+ log.warn("A message cannot be published to a channel that is not selected");
+ }
+ }
+
+ protected RabbitMqChannel getAvailableRabbitMqChannel(String targetChannel){
+
+ List<RabbitMqChannel> rabbitMqChannels = rabbitMqProperties.getChannels();
+ List<RabbitMqChannel> filteredChannelList= rabbitMqChannels.stream().filter(channel -> channel.getName().contains(targetChannel)).collect(Collectors.toList());
+
+ if(!filteredChannelList.isEmpty()){
+ return filteredChannelList.get(0);
+ }
+ else{
+ return null;
+ }
+
+
+ }
+
+ private void prepareMessage(TblFailureInformation existingTblFailureInfo, TblDistributionGroup distributionGroup, String exportKey){
+
+ List<String> mailAddresses= new ArrayList<>();
+ List<String> mobileNumbers= new ArrayList<>();
+
+ RabbitMqMessageDto rabbitMqMessageDto = new RabbitMqMessageDto();
+ rabbitMqMessageDto.setFailureInformationDto(failureInformationMapper.toFailureInformationDto(existingTblFailureInfo));
+
+ //Eintrag Verteilergruppe ins MessageDto
+ rabbitMqMessageDto.setDistributionGroup(distributionGroup.getName());
+
+ // der dem Verteiler zugeordneten Personen
+ List<DistributionGroupMemberDto> memberList = distributionGroupMemberService.getMembersByGroupId(distributionGroup.getUuid());
+
+ //Holen der Mailadressen der dem Verteiler zugeordneten Personen und Eintrag ins MessageDto
+ memberList.stream()
+ .filter(x -> x.getEmail() != null)
+ .forEach(x -> mailAddresses.add(x.getEmail()));
+
+ if(mailAddresses.isEmpty()){
+ log.warn("no mail addresses found for distribution group: "
+ + distributionGroup.getUuid().toString());
+ return;
+ }
+ rabbitMqMessageDto.setMailAddresses(mailAddresses);
+
+ //Holen der Mobilnummern der dem Verteiler zugeordneten Personen und Eintrag ins MessageDto
+ memberList.stream()
+ .filter(x -> x.getMobileNumber() != null)
+ .forEach(x -> mobileNumbers.add(x.getMobileNumber()));
+
+ if(mobileNumbers.isEmpty()){
+ log.warn("no mobile numbers found for distribution group: "
+ + distributionGroup.getUuid().toString());
+ return;
+ }
+ rabbitMqMessageDto.setMobileNumbers(mobileNumbers);
+
+ //Holen des zum Verteiler zugehörigen Textes
+ //Ersatz der gekennzeichneten Stellen im Text mit vorhandenen Infos und Eintrag ins MessageDto
+ String distributionText = distributionGroup.getDistributionText();
+ String preparedBody = prepareBody(distributionText, existingTblFailureInfo);
+ rabbitMqMessageDto.setBody(preparedBody);
+
+ sendMessageToRabbitMq(rabbitMqMessageDto, exportKey);
+
+ }
+
+ private void sendMessageToRabbitMq(RabbitMqMessageDto rabbitMqMessageDto, String exportKey){
+ try{
+ rabbitTemplate.convertAndSend(rabbitMqProperties.getExport_exchange(), exportKey, objectMapper.writeValueAsString(rabbitMqMessageDto));
+ countExportedMessages++;
+ } catch (Exception e) {
+ log.debug(e.getMessage(), e);
+ throw new InternalServerErrorException("could.not.push.rabbitMqMessage");
+ }
+ }
+
+ protected void checkExchangeAndQueueOnRabbitMq(String exportQueue, String exportKey){
// Neuerstellung Exchange und Queue falls diese nicht vorhanden sind (passiert nur dann!)
RabbitAdmin admin = new RabbitAdmin(rabbitTemplate);
- DirectExchange exchange =new DirectExchange(rabbitMqConfig.exportExchangeName);
+ DirectExchange exchange =new DirectExchange(rabbitMqProperties.getExport_exchange());
admin.declareExchange(exchange);
- Queue queue = new Queue(rabbitMqConfig.mailExportQueueName);
+ Queue queue = new Queue(exportQueue);
admin.declareQueue(queue);
- admin.declareBinding(BindingBuilder.bind(queue).to(exchange).with(rabbitMqConfig.mailExportRoutingKeyName));
+ admin.declareBinding(BindingBuilder.bind(queue).to(exchange).with(exportKey));
}
- protected String prepareEMailBody(String emailBody, TblFailureInformation tblFailureInfo) {
+ protected String prepareBody(String body, TblFailureInformation tblFailureInfo) {
createContentReplaceHashMap(tblFailureInfo);
for (Map.Entry<String, String> stringStringEntry : contentReplaceMap.entrySet()) {
if(stringStringEntry.getKey() != null && stringStringEntry.getValue() != null) {
- emailBody = emailBody.replace(stringStringEntry.getKey(), stringStringEntry.getValue());
+ body = body.replace(stringStringEntry.getKey(), stringStringEntry.getValue());
}
}
- return emailBody;
+ return body;
}
protected void createContentReplaceHashMap(TblFailureInformation tblFailureInfo){ // NOSONAR
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/FailureInformationService.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/FailureInformationService.java
index 3563b74..6e536ab 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/FailureInformationService.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/FailureInformationService.java
@@ -82,6 +82,9 @@
private DistributionGroupRepository distributionGroupRepository;
@Autowired
+ private FailureInformationPublicationChannelRepository failureInformationPublicationChannelRepository;
+
+ @Autowired
private GfiGrid grid;
@Autowired
@@ -95,7 +98,6 @@
return enrichFailureInfo(failureInformationMapper.toFailureInformationDto(existingTblFailureInfo));
}
-
public Page<FailureInformationDto> findFailureInformations(Pageable pageable) {
Page<FailureInformationDto> retPage = failureInformationRepository
.findByTblFailureInformationCondensedIdIsNullOrderByFailureBeginDescIdAsc(pageable)
@@ -139,7 +141,18 @@
@Transactional
public FailureInformationDto updateFailureInfo(FailureInformationDto failureInfoDto) {
- return processGrid(failureInfoDto);
+ return processGrid(failureInfoDto, null);
+ }
+
+ @Transactional
+ public FailureInformationDto updateAndPublish( FailureInformationDto failureInformationDto) {
+ if( getRefStatus(failureInformationDto).getId() != GfiProcessState.QUALIFIED.getStatusValue()) {
+ throw new BadRequestException("Publishing is only possible with state 'qualified'");
+ }
+ if( failureInformationDto.getPublicationChannels().size() == 0) {
+ throw new BadRequestException("Publishing is only possible with at least one selected channel");
+ }
+ return processGrid(failureInformationDto, GfiProcessState.CHECKED_FOR_PUBLISH_);
}
@@ -171,15 +184,21 @@
TblFailureInformation tblFailureInformationSaved = failureInformationRepository.save(tblFailureInformationToSave);
FailureInformationDto failureInformationDto = failureInformationMapper.toFailureInformationDto(tblFailureInformationSaved);
+
return enrichFailureInfo(failureInformationDto);
}
- private FailureInformationDto processGrid(FailureInformationDto failureInfoDto) {
- RefStatus refStatus = getRefStatus(failureInfoDto);
-
+ private FailureInformationDto processGrid(FailureInformationDto failureInfoDto, GfiProcessState forcedState) {
GfiProcessSubject subject = GfiProcessSubject.of(failureInfoDto, processHelper );
- subject.setStateInDb(GfiProcessState.fromValue(refStatus.getId()));
+ if( forcedState != null ) {
+ subject.setStateInDb(forcedState); // use forced state
+ }
+ else {
+ // use state from db
+ RefStatus refStatus = getRefStatus(failureInfoDto);
+ subject.setStateInDb(GfiProcessState.fromValue(refStatus.getId()));
+ }
try {
grid.recover( subject ).start(subject::getStateInDb);
} catch (ProcessException e) {
@@ -199,24 +218,84 @@
private void setFromGridFailureInformationDto( TblFailureInformation destTblFailureInformation, FailureInformationDto sourceDto ) {
- if( sourceDto.getBranchId() != null ) {
- destTblFailureInformation.setRefBranch( branchRepository
- .findByUuid(sourceDto.getBranchId())
- .orElseThrow(() -> new NotFoundException("branch.uuid.not.existing")));
- }
- else {
- destTblFailureInformation.setRefBranch(null);
+ resolveBranch(destTblFailureInformation, sourceDto);
+ resolveFailureClassification(destTblFailureInformation, sourceDto);
+ resolveStatii(destTblFailureInformation, sourceDto);
+ resolveRadius(destTblFailureInformation, sourceDto);
+ resolveExpectedReason(destTblFailureInformation, sourceDto);
+ resolveCondensed(destTblFailureInformation, sourceDto);
+
+ if(sourceDto.getPublicationChannels() != null){
+ updatePublicationChannels(sourceDto, destTblFailureInformation);
}
- if( sourceDto.getFailureClassificationId() != null ) {
- destTblFailureInformation.setRefFailureClassification( failureClassificationRepository
- .findByUuid(sourceDto.getFailureClassificationId())
- .orElseThrow(() -> new NotFoundException("failure.classification.uuid.not.existing")));
+ resolveStationIds(destTblFailureInformation, sourceDto);
+ resolveDistributionGroups(destTblFailureInformation, sourceDto);
+ }
+
+ private void resolveDistributionGroups(TblFailureInformation destTblFailureInformation, FailureInformationDto sourceDto) {
+ if( sourceDto.getDistributionGroupUuids() != null ) {
+ resolveDistributionGroupUuids(destTblFailureInformation, sourceDto);
}
else {
- destTblFailureInformation.setRefFailureClassification(null);
+ destTblFailureInformation.setDistributionGroups(null);
}
+ }
+ private void resolveStationIds(TblFailureInformation destTblFailureInformation, FailureInformationDto sourceDto) {
+ if( sourceDto.getStationIds() != null ) {
+ List<TblStation> stationList = new ArrayList<>();
+
+ for (UUID stationUuid: sourceDto.getStationIds()) {
+ stationList.add(stationRepository.findByUuid(stationUuid).orElseThrow(() -> new NotFoundException("station.uuid.not.existing")));
+ }
+
+ destTblFailureInformation.setStations(stationList.stream().collect(Collectors.toSet()));
+ }
+ }
+
+ private void resolveDistributionGroupUuids(TblFailureInformation destTblFailureInformation, FailureInformationDto sourceDto) {
+ List<TblDistributionGroup> distributionGroupList = new ArrayList<>();
+
+ for (UUID distributionGroupUuid : sourceDto.getDistributionGroupUuids()) {
+ distributionGroupList.add(distributionGroupRepository.findByUuid(distributionGroupUuid).orElseThrow(() -> new NotFoundException("distribution.group.uuid.not.existing")));
+ }
+ }
+
+ private void resolveCondensed(TblFailureInformation destTblFailureInformation, FailureInformationDto sourceDto) {
+ if( sourceDto.getFailureInformationCondensedId() != null ) {
+ destTblFailureInformation.setTblFailureInformationCondensed( failureInformationRepository
+ .findByUuid(sourceDto.getFailureInformationCondensedId())
+ .orElseThrow(() -> new NotFoundException(Constants.FAILURE_INFO_UUID_NOT_EXISTING)));
+ }
+ else {
+ destTblFailureInformation.setTblFailureInformationCondensed(null);
+ }
+ }
+
+ private void resolveExpectedReason(TblFailureInformation destTblFailureInformation, FailureInformationDto sourceDto) {
+ if( sourceDto.getExpectedReasonId() != null ) {
+ destTblFailureInformation.setRefExpectedReason( expectedReasonRepository
+ .findByUuid(sourceDto.getExpectedReasonId())
+ .orElseThrow(() -> new NotFoundException("expected.reason.uuid.not.existing")));
+ }
+ else {
+ destTblFailureInformation.setRefExpectedReason(null);
+ }
+ }
+
+ private void resolveRadius(TblFailureInformation destTblFailureInformation, FailureInformationDto sourceDto) {
+ if( sourceDto.getRadiusId() != null ) {
+ destTblFailureInformation.setRefRadius( radiusRepository
+ .findByUuid(sourceDto.getRadiusId())
+ .orElseThrow(() -> new NotFoundException("radius.uuid.not.existing")));
+ }
+ else {
+ destTblFailureInformation.setRefRadius(null);
+ }
+ }
+
+ private void resolveStatii(TblFailureInformation destTblFailureInformation, FailureInformationDto sourceDto) {
if( sourceDto.getStatusInternId() != null ) {
destTblFailureInformation.setRefStatusIntern( statusRepository
.findByUuid(sourceDto.getStatusInternId())
@@ -234,59 +313,58 @@
else {
destTblFailureInformation.setRefStatusExtern(null);
}
+ }
- if( sourceDto.getRadiusId() != null ) {
- destTblFailureInformation.setRefRadius( radiusRepository
- .findByUuid(sourceDto.getRadiusId())
- .orElseThrow(() -> new NotFoundException("radius.uuid.not.existing")));
+ private void resolveFailureClassification(TblFailureInformation destTblFailureInformation, FailureInformationDto sourceDto) {
+ if( sourceDto.getFailureClassificationId() != null ) {
+ destTblFailureInformation.setRefFailureClassification( failureClassificationRepository
+ .findByUuid(sourceDto.getFailureClassificationId())
+ .orElseThrow(() -> new NotFoundException("failure.classification.uuid.not.existing")));
}
else {
- destTblFailureInformation.setRefRadius(null);
+ destTblFailureInformation.setRefFailureClassification(null);
}
+ }
- if( sourceDto.getExpectedReasonId() != null ) {
- destTblFailureInformation.setRefExpectedReason( expectedReasonRepository
- .findByUuid(sourceDto.getExpectedReasonId())
- .orElseThrow(() -> new NotFoundException("expected.reason.uuid.not.existing")));
+ private void resolveBranch(TblFailureInformation destTblFailureInformation, FailureInformationDto sourceDto) {
+ if( sourceDto.getBranchId() != null ) {
+ destTblFailureInformation.setRefBranch( branchRepository
+ .findByUuid(sourceDto.getBranchId())
+ .orElseThrow(() -> new NotFoundException("branch.uuid.not.existing")));
}
else {
- destTblFailureInformation.setRefExpectedReason(null);
+ destTblFailureInformation.setRefBranch(null);
+ }
+ }
+
+ protected void updatePublicationChannels(FailureInformationDto sourceDto, TblFailureInformation destTblFailureInformation ){
+
+ // Löschen zugeordneter Kanäle mit published = false
+ TblFailureInformation existingTblFailureInformation = failureInformationRepository.findByUuid(sourceDto.getUuid())
+ .orElseThrow(() -> new NotFoundException(Constants.FAILURE_INFO_UUID_NOT_EXISTING));
+
+ List<TblFailureInformationPublicationChannel> existingChannelsList =
+ existingTblFailureInformation.getPublicationChannelList();
+
+ List<TblFailureInformationPublicationChannel>filteredList = existingChannelsList.stream().filter(x -> !x.isPublished()).collect(Collectors.toList());
+
+ for(TblFailureInformationPublicationChannel channel: filteredList){
+ existingChannelsList.remove(channel);
}
- if( sourceDto.getFailureInformationCondensedId() != null ) {
- destTblFailureInformation.setTblFailureInformationCondensed( failureInformationRepository
- .findByUuid(sourceDto.getFailureInformationCondensedId())
- .orElseThrow(() -> new NotFoundException(Constants.FAILURE_INFO_UUID_NOT_EXISTING)));
- }
- else {
- destTblFailureInformation.setTblFailureInformationCondensed(null);
- }
+ //Hinzufügen zugeordneter Kanäle in der Zuordnungstabelle mit published= false (check, damit kein Kanal doppelt)
+ List<String> newChannelList = sourceDto.getPublicationChannels();
+ for(String newChannel: newChannelList){
+ if(existingChannelsList.stream().filter(x->x.getPublicationChannel().equals(newChannel)).count() == 0){
+ TblFailureInformationPublicationChannel tblFailureInformationPublicationChannel = new TblFailureInformationPublicationChannel();
+ tblFailureInformationPublicationChannel.setTblFailureInformation(existingTblFailureInformation);
+ tblFailureInformationPublicationChannel.setPublicationChannel(newChannel);
+ tblFailureInformationPublicationChannel.setPublished(false);
- if( sourceDto.getStationUuids() != null ) {
- List<TblStation> stationList = new ArrayList<TblStation>();
-
- for (UUID stationUuid: sourceDto.getStationUuids()) {
- stationList.add(stationRepository.findByUuid(stationUuid).orElseThrow(() -> new NotFoundException("station.uuid.not.existing")));
+ existingChannelsList.add(tblFailureInformationPublicationChannel);
}
-
- destTblFailureInformation.setStations(stationList);
}
- else {
- destTblFailureInformation.setStations(null);
- }
-
- if( sourceDto.getDistributionGroupUuids() != null ) {
- List<TblDistributionGroup> distributionGroupList = new ArrayList<TblDistributionGroup>();
-
- for (UUID distributionGroupUuid: sourceDto.getDistributionGroupUuids()) {
- distributionGroupList.add(distributionGroupRepository.findByUuid(distributionGroupUuid).orElseThrow(() -> new NotFoundException("distribution.group.uuid.not.existing")));
- }
-
- destTblFailureInformation.setDistributionGroups(distributionGroupList);
- }
- else {
- destTblFailureInformation.setDistributionGroups(null);
- }
+ destTblFailureInformation.setPublicationChannelList(existingChannelsList);
}
private void setVersionNumber(TblFailureInformation tblFailureInformation){
@@ -548,7 +626,7 @@
private void addPolygonAddressPoints(FailureInformationDto failureInformationDto){
// Stationen ermitteln
- List<UUID> stationUuids = failureInformationDto.getStationUuids();
+ List<UUID> stationUuids = failureInformationDto.getStationIds();
if(stationUuids.isEmpty()) {
log.debug("No station ids found for failureInfo: " + failureInformationDto.getUuid().toString());
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/FailureInformationStationService.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/FailureInformationStationService.java
index f42386e..f72c773 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/FailureInformationStationService.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/FailureInformationStationService.java
@@ -33,6 +33,7 @@
import javax.transaction.Transactional;
import java.util.List;
+import java.util.Set;
import java.util.UUID;
import java.util.stream.Collectors;
@@ -75,16 +76,18 @@
TblStation station = stationRepository.findByUuid(groupDto.getUuid())
.orElseThrow(() -> new NotFoundException("station.uuid.not.existing"));
- List<TblStation> stations = failureInformation.getStations();
- for (TblStation group : stations) {
- if (group.getUuid().equals(groupDto.getUuid())) {
- throw new OperationDeniedException(OperationType.INSERT, "assignment.already.existing");
+ Set<TblStation> stations = failureInformation.getStations();
+ if (!stations.isEmpty()) {
+ for (TblStation group : stations) {
+ if (group.getUuid().equals(groupDto.getUuid())) {
+ throw new OperationDeniedException(OperationType.INSERT, "assignment.already.existing");
+ }
}
}
TblFailureInformationStation assignmentToSave = new TblFailureInformationStation();
assignmentToSave.setFkTblFailureInformation(failureInformation.getId());
- assignmentToSave.setFkTblStation(station.getId());
+ assignmentToSave.setStationStationId(station.getStationId());
TblFailureInformationStation savedFailureInfoGroup = failureInformationStationRepository.save(assignmentToSave);
@@ -101,7 +104,7 @@
.orElseThrow( () -> new BadRequestException("station.uuid.not.existing"));
TblFailureInformationStation tblFailureInformationStation
- = failureInformationStationRepository.findByFkTblFailureInformationAndFkTblStation(failureInformation.getId(), station.getId())
+ = failureInformationStationRepository.findByFkTblFailureInformationAndStationStationId(failureInformation.getId(), station.getStationId())
.orElseThrow(() -> new BadRequestException("failure.info.station.not.existing"));
failureInformationStationRepository.delete(tblFailureInformationStation);
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/ImportService.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/ImportService.java
index 095edf5..79d56b1 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/ImportService.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/ImportService.java
@@ -5,14 +5,14 @@
import org.eclipse.openk.gridfailureinformation.exceptions.InternalServerErrorException;
import org.eclipse.openk.gridfailureinformation.mapper.FailureInformationMapper;
import org.eclipse.openk.gridfailureinformation.util.ImportDataValidator;
-import org.eclipse.openk.gridfailureinformation.viewmodel.FailureInformationDto;
-import org.eclipse.openk.gridfailureinformation.viewmodel.ForeignFailureDataDto;
-import org.eclipse.openk.gridfailureinformation.viewmodel.ImportDataDto;
-import org.eclipse.openk.gridfailureinformation.viewmodel.RadiusDto;
+import org.eclipse.openk.gridfailureinformation.viewmodel.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
+import java.util.LinkedList;
+import java.util.List;
import java.util.Optional;
import java.util.UUID;
@@ -34,6 +34,9 @@
StatusService statusService;
@Autowired
+ StationService stationService;
+
+ @Autowired
FailureInformationMapper failureInformationMapper;
@Autowired
@@ -52,7 +55,7 @@
}
-
+ @Transactional
private FailureInformationDto doImport(ImportDataDto importDataDto, ForeignFailureDataDto foreignFailureDataDto) {
FailureInformationDto existingDto = failureInformationService.findByObjectReferenceExternalSystem(importDataDto.getAssembledRefId());
@@ -117,7 +120,13 @@
failureInformationDto.setPostcode(foreignFailureDataDto.getPostcode());
failureInformationDto.setPressureLevel(foreignFailureDataDto.getPressureLevel());
failureInformationDto.setStationDescription(foreignFailureDataDto.getStationDescription());
- failureInformationDto.setStationId(foreignFailureDataDto.getStationId());
+ String foreignStationId = foreignFailureDataDto.getStationId();
+ failureInformationDto.setStationId(foreignStationId);
+ failureInformationDto.setStationIds(new LinkedList<>());
+ if( foreignStationId != null && !foreignStationId.isEmpty()) {
+ importStation(failureInformationDto.getStationIds(), foreignStationId);
+ }
+
failureInformationDto.setStreet(foreignFailureDataDto.getStreet());
failureInformationDto.setVoltageLevel(foreignFailureDataDto.getVoltageLevel());
@@ -134,6 +143,16 @@
failureInformationDto.setObjectReferenceExternalSystem(importDataDto.getAssembledRefId());
}
+ private void importStation(List<UUID> targetList, String stationIdToImport) {
+ StationDto selectedStation = stationService.getStationsById( stationIdToImport );
+ if( selectedStation != null ) {
+ targetList.add(selectedStation.getUuid());
+ }
+ if( !stationIdToImport.isEmpty() && targetList.isEmpty() ) {
+ log.warn("Import message delivered a stationId("+stationIdToImport+") that could not be resolved!");
+ }
+ }
+
private void importRadius(long foreignRadius, FailureInformationDto failureInformationDto) {
Optional<RadiusDto> bestFitHigh = radiusService.getRadii().stream()
.filter( r -> r.getRadius() >= foreignRadius )
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/SettingsService.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/SettingsService.java
index d4c5eb4..b69eb45 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/SettingsService.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/SettingsService.java
@@ -16,11 +16,14 @@
import lombok.extern.log4j.Log4j2;
import org.eclipse.openk.gridfailureinformation.config.FESettings;
-import org.eclipse.openk.gridfailureinformation.mapper.FESettingsMapper;
+import org.eclipse.openk.gridfailureinformation.config.rabbitMq.RabbitMqChannel;
import org.eclipse.openk.gridfailureinformation.viewmodel.FESettingsDto;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import java.util.LinkedList;
+import java.util.List;
+
@Service
@Log4j2
public class SettingsService {
@@ -28,12 +31,21 @@
@Autowired
private FESettings feSettings;
- @Autowired
- private FESettingsMapper feSettingsMapper;
-
public FESettingsDto getFESettings(){
- return feSettingsMapper.toFESettingsDto(feSettings);
+ FESettingsDto feSettingsDto = new FESettingsDto();
+ List<RabbitMqChannel> rabbitMqChannels = feSettings.getChannels();
+
+ List<String> channelNames = new LinkedList();
+ for(RabbitMqChannel channel: rabbitMqChannels){
+ channelNames.add(channel.getName());
+ }
+
+ feSettingsDto.setExportChannels(channelNames);
+ feSettingsDto.setDetailMapInitialZoom(feSettings.getDetailMapInitialZoom());
+ feSettingsDto.setOverviewMapInitialZoom(feSettings.getOverviewMapInitialZoom());
+
+ return feSettingsDto;
}
}
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/StationService.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/StationService.java
index 03d2cf8..db229af 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/StationService.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/StationService.java
@@ -15,12 +15,14 @@
package org.eclipse.openk.gridfailureinformation.service;
import org.eclipse.openk.gridfailureinformation.mapper.StationMapper;
+import org.eclipse.openk.gridfailureinformation.model.TblStation;
import org.eclipse.openk.gridfailureinformation.repository.StationRepository;
import org.eclipse.openk.gridfailureinformation.viewmodel.StationDto;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
+import java.util.Optional;
import java.util.stream.Collectors;
@Service
@@ -39,10 +41,12 @@
}
- public List<StationDto> getStationsByIdAndName(String stationId, String stationName) {
- return stationRepository.findStationsByIdAndName(stationId, stationName).stream()
- .map(stationMapper::toStationDto)
- .collect(Collectors.toList());
+ public StationDto getStationsById(String stationId) {
+ Optional<TblStation> tblStation = stationRepository.findByStationId(stationId);
+ if( tblStation.isPresent()) {
+ return stationMapper.toStationDto(tblStation.get());
+ }
+ return null;
}
}
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/viewmodel/FESettingsDto.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/viewmodel/FESettingsDto.java
index a4f6c66..e02af47 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/viewmodel/FESettingsDto.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/viewmodel/FESettingsDto.java
@@ -15,11 +15,13 @@
package org.eclipse.openk.gridfailureinformation.viewmodel;
import lombok.Data;
+
import java.io.Serializable;
+import java.util.List;
@Data
public class FESettingsDto implements Serializable {
- public String[] exportChannels;
+ public List<String> exportChannels;
public String overviewMapInitialZoom;
public String detailMapInitialZoom;
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/viewmodel/FailureInformationDto.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/viewmodel/FailureInformationDto.java
index c1faa9e..c2cbecc 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/viewmodel/FailureInformationDto.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/viewmodel/FailureInformationDto.java
@@ -100,6 +100,8 @@
private List<UUID> distributionGroupUuids;
- private List<UUID> stationUuids;
+ private List<UUID> stationIds;
+
+ private List<String> publicationChannels;
}
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/viewmodel/FailureInformationStationDto.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/viewmodel/FailureInformationStationDto.java
index 9143cf5..aaaa064 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/viewmodel/FailureInformationStationDto.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/viewmodel/FailureInformationStationDto.java
@@ -22,7 +22,7 @@
public class FailureInformationStationDto implements Serializable {
private Long failureInformationId;
- private Long stationId;
+ private String stationStationId;
}
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/viewmodel/MailMessageDto.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/viewmodel/RabbitMqMessageDto.java
similarity index 77%
rename from gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/viewmodel/MailMessageDto.java
rename to gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/viewmodel/RabbitMqMessageDto.java
index a5ea93a..1b44912 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/viewmodel/MailMessageDto.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/viewmodel/RabbitMqMessageDto.java
@@ -16,23 +16,20 @@
import lombok.Data;
-import javax.validation.Valid;
import javax.validation.constraints.NotNull;
-import javax.validation.constraints.Pattern;
-import javax.validation.constraints.Size;
import java.io.Serializable;
import java.util.List;
@Data
-public class MailMessageDto implements Serializable {
+public class RabbitMqMessageDto implements Serializable {
- private String mailDistributionGroup;
+ private String distributionGroup;
- @NotNull
private List<String> mailAddresses;
+ private List<String> mobileNumbers;
@NotNull
- private String mailtext;
+ private String body;
private FailureInformationDto failureInformationDto;
diff --git a/gfsBackendService/src/main/resources/application.yml b/gfsBackendService/src/main/resources/application.yml
index f8dbb70..6047a3a 100644
--- a/gfsBackendService/src/main/resources/application.yml
+++ b/gfsBackendService/src/main/resources/application.yml
@@ -27,14 +27,23 @@
failure_import_queue: failureImportQueue
failure_import_routingkey: importExchange.failureImportKey
export_exchange: exportExchange
- mail_export_queue: mailExportQueue
- mail_export_routingkey: mailExportQueue.mailExportKey
+ channels:
+ - name: MAIL
+ exportqueue: mail_export_queue_test_ina
+ exportkey: mail_export_key_test_ina
+ - name: SMS
+ exportqueue: sms_export_queue_test_ina
+ exportkey: sms_export_key_test_ina
+ - name: FAX
+ exportqueue: fax_export_queue_test_ina
+ exportkey: fax_export_key_test_ina
+ - name: XY
+ exportqueue: xy_export_queue_test_ina
+ exportkey: xy_export_key_test_ina
settings:
- exportChannels: MAIL, SMS, FAX
overviewMapInitialZoom: 6
detailMapInitialZoom: 13
-
server:
max-http-header-size: 262144
@@ -95,6 +104,8 @@
listener:
simple:
auto-startup: false
+
+
jpa:
hibernate:
ddl-auto: create
diff --git a/gfsBackendService/src/main/resources/application_localdev.yml b/gfsBackendService/src/main/resources/application_localdev.yml
index 2f5a8c4..e686c93 100644
--- a/gfsBackendService/src/main/resources/application_localdev.yml
+++ b/gfsBackendService/src/main/resources/application_localdev.yml
@@ -23,17 +23,28 @@
port: 5672
username: ${GFI_RABBITMQ_USERNAME}
password: ${GFI_RABBITMQ_PASSWORD}
- import_exchange: importExchangeLocalDev
- failure_import_queue: failureImportQueueLocalDev
- failure_import_routingkey: importExchangeLocalDev.failureImportKeyLocalDev
+ import_exchange: importExchangeLocalDev_fd
+ failure_import_queue: failureImportQueueLocalDev_fd
+ failure_import_routingkey: importExchangeLocalDev.failureImportKeyLocalDev_fd
export_exchange: exportExchangeLocalDev
- mail_export_queue: mailExportQueueLocalDev
- mail_export_routingkey: mailExportQueueLocalDev.mailExportKeyLocalDev
+ channels:
+ - name: MAIL
+ exportqueue: mail_export_queue_test_ina_localdev
+ exportkey: mail_export_key_test_ina_localdev
+ - name: SMS
+ exportqueue: sms_export_queue_test_ina_localdev
+ exportkey: sms_export_key_test_ina_localdev
+ - name: FAX
+ exportqueue: fax_export_queue_test_ina_localdev
+ exportkey: fax_export_key_test_ina_localdev
+ - name: XY
+ exportqueue: xy_export_queue_test_ina_localdev
+ exportkey: xy_export_key_test_ina_localdev
settings:
- exportChannels: MAIL, SMS, FAX
overviewMapInitialZoom: 6
detailMapInitialZoom: 13
-
+ jpa:
+ show-sql: false
server:
diff --git a/gfsBackendService/src/main/resources/db/migration/V0_x30__CREATE_GFI_DB.sql b/gfsBackendService/src/main/resources/db/migration/V0_33__CREATE_GFI_DB.sql
similarity index 71%
copy from gfsBackendService/src/main/resources/db/migration/V0_x30__CREATE_GFI_DB.sql
copy to gfsBackendService/src/main/resources/db/migration/V0_33__CREATE_GFI_DB.sql
index f870d7b..ccc439b 100644
--- a/gfsBackendService/src/main/resources/db/migration/V0_x30__CREATE_GFI_DB.sql
+++ b/gfsBackendService/src/main/resources/db/migration/V0_33__CREATE_GFI_DB.sql
@@ -53,6 +53,9 @@
DROP TABLE IF EXISTS public.TBL_FAILURE_INFORMATION_STATION CASCADE;
DROP SEQUENCE IF EXISTS public.TBL_FAILURE_INFORMATION_STATION_ID_SEQ;
+DROP TABLE IF EXISTS public.TBL_FAILURE_INFORMATION_REMINDER_MAIL_SENT CASCADE;
+DROP SEQUENCE IF EXISTS public.TBL_FAILURE_INFORMATION_REMINDER_MAIL_SENT_ID_SEQ;
+
-- ---------------------------------------------
-- TABLE VERSION
-- ---------------------------------------------
@@ -134,6 +137,36 @@
-- ---------------------------------------------
+-- TABLE REF_FAILURE_TYPE
+-- ---------------------------------------------
+CREATE SEQUENCE public.ref_failure_type_id_seq
+ INCREMENT 1
+ MINVALUE 1
+ MAXVALUE 9223372036854775807
+ START 1
+ CACHE 1;
+ALTER TABLE public.ref_failure_type_id_seq
+ OWNER TO GFI_SERVICE;
+
+CREATE TABLE public.REF_FAILURE_TYPE
+(
+ ID integer NOT NULL DEFAULT nextval('REF_FAILURE_TYPE_ID_SEQ'::regclass),
+ UUID uuid NOT NULL,
+ TYPE character varying(50) NOT NULL,
+ DESCRIPTION character varying(255) NULL,
+ CONSTRAINT REF_FAILURE_TYPE_PKEY PRIMARY KEY (id)
+);
+
+ALTER TABLE public.REF_FAILURE_TYPE
+ OWNER TO GFI_SERVICE;
+GRANT ALL ON TABLE public.REF_FAILURE_TYPE TO GFI_SERVICE;
+
+
+INSERT INTO public.REF_FAILURE_TYPE (UUID, TYPE, DESCRIPTION) VALUES ( '44a2aaed-8910-4116-b0c4-0855f8d3c28d', 'Information', NULL );
+INSERT INTO public.REF_FAILURE_TYPE (UUID, TYPE, DESCRIPTION) VALUES ( '94e880c4-3127-47d5-aaee-5f778462ab0c', 'zu veröffentlichende Meldung', 'Standardwert' );
+INSERT INTO public.REF_FAILURE_TYPE (UUID, TYPE, DESCRIPTION) VALUES ( '658245bd-bdc4-47dd-bc90-0336f9471410', 'unterlagerte Störung', 'nicht zu veröffentlichen' );
+
+-- ---------------------------------------------
-- TABLE REF_BRANCH
-- ---------------------------------------------
CREATE SEQUENCE public.ref_branch_id_seq
@@ -253,6 +286,7 @@
UUID uuid NOT NULL,
VERSION_NUMBER integer NOT NULL,
FK_REF_FAILURE_CLASSIFICATION integer,
+ FK_REF_FAILURE_TYPE integer,
TITLE character varying(255) NULL,
DESCRIPTION character varying(255) NULL,
RESPONSIBILITY character varying(255),
@@ -265,6 +299,7 @@
FAILURE_BEGIN timestamp NOT NULL,
FAILURE_END_PLANNED timestamp,
FAILURE_END_RESUPPLIED timestamp,
+ INTERNAL_REMARK character varying(1024),
POSTCODE character varying(30),
CITY character varying(255),
DISTRICT character varying(255),
@@ -291,6 +326,9 @@
CONSTRAINT TBL_FAIL_INF__FCLASS_FKEY FOREIGN KEY (FK_REF_FAILURE_CLASSIFICATION)
REFERENCES public.REF_FAILURE_CLASSIFICATION (ID) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
+ CONSTRAINT TBL_FAIL_INF_FTYPE_FKEY FOREIGN KEY (FK_REF_FAILURE_TYPE)
+ REFERENCES public.REF_FAILURE_TYPE (ID) MATCH SIMPLE
+ ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT TBL_FAIL_INF_STATUSINT_FKEY FOREIGN KEY (FK_REF_STATUS_INTERN)
REFERENCES public.REF_STATUS (ID) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
@@ -309,11 +347,11 @@
OWNER TO GFI_SERVICE;
GRANT ALL ON TABLE public.TBL_FAILURE_INFORMATION TO GFI_SERVICE;
-INSERT INTO public.tbl_failure_information(UUID, VERSION_NUMBER, FK_REF_FAILURE_CLASSIFICATION, TITLE, DESCRIPTION, RESPONSIBILITY, INTERN_EXTERN, FK_REF_STATUS_INTERN, FK_REF_STATUS_EXTERN, FK_REF_BRANCH, VOLTAGE_LEVEL, PRESSURE_LEVEL, FAILURE_BEGIN, FAILURE_END_PLANNED, FAILURE_END_RESUPPLIED, POSTCODE, CITY, DISTRICT, STREET, HOUSENUMBER, STATION_ID, STATION_DESCRIPTION, STATION_COORDS, FK_REF_RADIUS, LONGITUDE, LATITUDE, OBJECT_REFERENCE_EXTERNAL_SYSTEM, PUBLICATION_STATUS, PUBLICATION_FREETEXT, FK_REF_EXPECTED_REASON, CONDENSED, CONDENSED_COUNT, FK_TBL_FAILURE_INFORMATION_CONDENSED, CREATE_DATE, CREATE_USER, MOD_DATE, MOD_USER)
-VALUES ('6432a9c9-0384-44af-9bb8-34f2878d7b49',3, 1, 'Stromausfall Murr', 'Es gibt einen Stromausfall im Bereich Murr/Westbezirk', 'Rolf Rudis', 'I', 1, 1, 1,'NS', null, '2021-01-19 00:00:00', '2021-01-22 00:00:00', '2021-01-22 12:00:00', '71711', 'Murr', 'Westbezirk', 'Ferdinand-Porsche-Straße', '2', '52863a', 'Trafo 1', '124,2323', 2, 9.247952, 48.955700, 'Link - extenes System', 'veröffentlicht', 'Freitext für die Veröffentlichung: Defekt an Trafostation', 1, false, 0, null, '2020-01-22 15:32:15', 'SCRIPT', '2020-01-24 08:02:44', 'SCRIPT');
+INSERT INTO public.tbl_failure_information(UUID, VERSION_NUMBER, FK_REF_FAILURE_CLASSIFICATION, FK_REF_FAILURE_TYPE, TITLE, DESCRIPTION, RESPONSIBILITY, INTERN_EXTERN, FK_REF_STATUS_INTERN, FK_REF_STATUS_EXTERN, FK_REF_BRANCH, VOLTAGE_LEVEL, PRESSURE_LEVEL, FAILURE_BEGIN, FAILURE_END_PLANNED, FAILURE_END_RESUPPLIED, INTERNAL_REMARK, POSTCODE, CITY, DISTRICT, STREET, HOUSENUMBER, STATION_ID, STATION_DESCRIPTION, STATION_COORDS, FK_REF_RADIUS, LONGITUDE, LATITUDE, OBJECT_REFERENCE_EXTERNAL_SYSTEM, PUBLICATION_STATUS, PUBLICATION_FREETEXT, FK_REF_EXPECTED_REASON, CONDENSED, CONDENSED_COUNT, FK_TBL_FAILURE_INFORMATION_CONDENSED, CREATE_DATE, CREATE_USER, MOD_DATE, MOD_USER)
+VALUES ('6432a9c9-0384-44af-9bb8-34f2878d7b49',3, 1, 1, 'Stromausfall Murr', 'Es gibt einen Stromausfall im Bereich Murr/Westbezirk', 'Rolf Rudis', 'I', 1, 1, 1, 'NS', null, '2021-01-19 00:00:00', '2021-01-22 00:00:00', '2021-01-22 12:00:00', 'Der Bagger grub zu tief', '71711', 'Murr', 'Westbezirk', 'Ferdinand-Porsche-Straße', '2', '52863a', 'Trafo 1', '124,2323', 2, 9.247952, 48.955700, 'Link - extenes System', 'veröffentlicht', 'Freitext für die Veröffentlichung: Defekt an Trafostation', 1, false, 0, null, '2020-01-22 15:32:15', 'SCRIPT', '2020-01-24 08:02:44', 'SCRIPT');
-INSERT INTO public.tbl_failure_information(UUID, VERSION_NUMBER, FK_REF_FAILURE_CLASSIFICATION, TITLE, DESCRIPTION, RESPONSIBILITY, INTERN_EXTERN, FK_REF_STATUS_INTERN, FK_REF_STATUS_EXTERN, FK_REF_BRANCH, VOLTAGE_LEVEL, PRESSURE_LEVEL, FAILURE_BEGIN, FAILURE_END_PLANNED, FAILURE_END_RESUPPLIED, POSTCODE, CITY, DISTRICT, STREET, HOUSENUMBER, STATION_ID, STATION_DESCRIPTION, STATION_COORDS, FK_REF_RADIUS, LONGITUDE, LATITUDE, OBJECT_REFERENCE_EXTERNAL_SYSTEM, PUBLICATION_STATUS, PUBLICATION_FREETEXT, FK_REF_EXPECTED_REASON, CONDENSED, CONDENSED_COUNT, FK_TBL_FAILURE_INFORMATION_CONDENSED, CREATE_DATE, CREATE_USER, MOD_DATE, MOD_USER)
-VALUES ('37aef635-d0d4-4c47-ac25-c0d16c29e35c', 1, 2, 'Gasleck Oldenburg', 'Es gibt ein Gasleck in Oldenburg', 'Bernd Britzel', 'E', 2, 2, 3, 'NS', 'HD', '2021-05-19 00:00:00', '2021-05-22 00:00:00', '2021-05-22 12:00:00', '26133', 'Oldenburg', null, 'Cloppenburger Str.', '302', '1234863-b234', 'ertf', '124,2323', 4, 8.210150, 53.111820, 'Link - extenes System', 'nicht veröffentlicht', 'Freitext: Eine Gasleitung wurde beschädigt', 4, false, 0, null, '2020-02-03 15:15:15', 'SCRIPT', '2020-02-24 20:08:41', 'SCRIPT');
+INSERT INTO public.tbl_failure_information(UUID, VERSION_NUMBER, FK_REF_FAILURE_CLASSIFICATION, FK_REF_FAILURE_TYPE, TITLE, DESCRIPTION, RESPONSIBILITY, INTERN_EXTERN, FK_REF_STATUS_INTERN, FK_REF_STATUS_EXTERN, FK_REF_BRANCH, VOLTAGE_LEVEL, PRESSURE_LEVEL, FAILURE_BEGIN, FAILURE_END_PLANNED, FAILURE_END_RESUPPLIED, INTERNAL_REMARK, POSTCODE, CITY, DISTRICT, STREET, HOUSENUMBER, STATION_ID, STATION_DESCRIPTION, STATION_COORDS, FK_REF_RADIUS, LONGITUDE, LATITUDE, OBJECT_REFERENCE_EXTERNAL_SYSTEM, PUBLICATION_STATUS, PUBLICATION_FREETEXT, FK_REF_EXPECTED_REASON, CONDENSED, CONDENSED_COUNT, FK_TBL_FAILURE_INFORMATION_CONDENSED, CREATE_DATE, CREATE_USER, MOD_DATE, MOD_USER)
+VALUES ('37aef635-d0d4-4c47-ac25-c0d16c29e35c', 1, 2, 2, 'Gasleck Oldenburg', 'Es gibt ein Gasleck in Oldenburg', 'Bernd Britzel', 'E', 2, 2, 3, 'NS', 'HD', '2021-05-19 00:00:00', '2021-05-22 00:00:00', '2021-05-22 12:00:00', 'HD betroffen', '26133', 'Oldenburg', null, 'Cloppenburger Str.', '302', '1234863-b234', 'ertf', '124,2323', 4, 8.210150, 53.111820, 'Link - extenes System', 'nicht veröffentlicht', 'Freitext: Eine Gasleitung wurde beschädigt', 4, false, 0, null, '2020-02-03 15:15:15', 'SCRIPT', '2020-02-24 20:08:41', 'SCRIPT');
-- ---------------------------------------------
@@ -343,7 +381,7 @@
GRANT ALL ON TABLE public.TBL_DISTRIBUTION_GROUP TO GFI_SERVICE;
INSERT INTO public.tbl_distribution_group(UUID, NAME, DISTRIBUTION_TEXT)
-VALUES('5f5017fe-887a-11ea-bc55-0242ac130003', 'Verteiler technisch - intern', 'Subject: Die Störung (Sparte: $Sparte$) mit Beginn: $Störungsbeginn_gemeldet$ wurde in den Status veröffentlicht geändert.
+VALUES('5f5017fe-887a-11ea-bc55-0242ac130003', 'Verteiler technisch - intern', 'Subject: Die Meldung $Title$ mit Beginn: $FailureBegin$ wurde in den Status veröffentlicht geändert.
Body:
Verteiler fachlich TEST
@@ -358,7 +396,7 @@
Ihre Admin-Meister-Team der PTA GmbH');
INSERT INTO public.tbl_distribution_group(UUID, NAME, DISTRIBUTION_TEXT)
-VALUES('5f502046-887a-11ea-bc55-0242ac130003', 'Verteiler fachlich - intern', 'Subject: Die Störung (Sparte: $Sparte$) mit Beginn: $Störungsbeginn_gemeldet$ wurde in den Status veröffentlicht geändert.
+VALUES('5f502046-887a-11ea-bc55-0242ac130003', 'Verteiler fachlich - intern', 'Subject: Die Störmeldung mit Beginn: $Störungsbeginn_gemeldet$ und dem Voraussichtlicher Grund: $Voraussichtlicher_Grund$" wurde in den Status veröffentlicht geändert.
Body:
Verteiler fachlich TEST
@@ -474,13 +512,10 @@
(
id integer NOT NULL DEFAULT nextval('tbl_failure_information_station_id_seq'::regclass),
fk_tbl_failure_information integer NOT NULL,
- fk_tbl_station integer NOT NULL,
+ station_station_id character varying(30) NOT NULL,
CONSTRAINT tbl_failure_information_station_pkey PRIMARY KEY (id),
CONSTRAINT tbl_fail_inf_station__failure_information_id_fkey FOREIGN KEY (fk_tbl_failure_information)
REFERENCES public.tbl_failure_information (id) MATCH SIMPLE
- ON UPDATE NO ACTION ON DELETE NO ACTION,
- CONSTRAINT tbl_fail_inf_station__station_fkey FOREIGN KEY (fk_tbl_station)
- REFERENCES public.tbl_station (id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)
WITH (
@@ -490,6 +525,39 @@
OWNER TO gfi_service;
GRANT ALL ON TABLE public.tbl_failure_information_station TO gfi_service;
+-- ---------------------------------------------
+-- TABLE TBL_FAILURE_INFORMATION_REMINDER_MAIL_SENT
+-- ---------------------------------------------
+CREATE SEQUENCE public.tbl_failure_information_reminder_mail_sent_id_seq
+ INCREMENT 1
+ MINVALUE 1
+ MAXVALUE 9223372036854775807
+ START 1
+ CACHE 1;
+ALTER TABLE public.tbl_failure_information_reminder_mail_sent_id_seq
+ OWNER TO gfi_service;
+
+CREATE TABLE public.tbl_failure_information_reminder_mail_sent
+(
+ id integer NOT NULL DEFAULT nextval('tbl_failure_information_reminder_mail_sent_id_seq'::regclass),
+ fk_tbl_failure_information integer NOT NULL,
+ mail_sent BOOLEAN NOT NULL,
+ date_mail_sent TIMESTAMP NOT NULL,
+ CONSTRAINT tbl_failure_information_reminder_mail_sent_pkey PRIMARY KEY (id),
+ CONSTRAINT tbl_fail_inf_reminder_mail_sent__failure_information_id_fkey FOREIGN KEY (fk_tbl_failure_information)
+ REFERENCES public.tbl_failure_information (id) MATCH SIMPLE
+ ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+ OIDS=FALSE
+);
+ALTER TABLE public.tbl_failure_information_reminder_mail_sent
+ OWNER TO gfi_service;
+GRANT ALL ON TABLE public.tbl_failure_information_reminder_mail_sent TO gfi_service;
+
+INSERT INTO public.tbl_failure_information_reminder_mail_sent(FK_TBL_FAILURE_INFORMATION, MAIL_SENT, DATE_MAIL_SENT)
+VALUES(1, true, '2020-05-31 23:30:00');
+
-- ----------------------------------------------------------------------------
-- ----------------------------------------------------------------------------
-- HISTORY-TABLES
@@ -524,6 +592,7 @@
UUID uuid,
VERSION_NUMBER integer,
FK_REF_FAILURE_CLASSIFICATION integer,
+ FK_REF_FAILURE_TYPE integer,
TITLE character varying(255) NULL,
DESCRIPTION character varying(255) NULL,
RESPONSIBILITY character varying (255),
@@ -536,6 +605,7 @@
FAILURE_BEGIN timestamp without time zone,
FAILURE_END_PLANNED timestamp without time zone,
FAILURE_END_RESUPPLIED timestamp without time zone,
+ INTERNAL_REMARK character varying (1024),
POSTCODE character varying (30),
CITY character varying (255),
DISTRICT character varying (255),
@@ -568,11 +638,11 @@
OWNER TO gfi_service;
GRANT ALL ON TABLE PUBLIC.HTBL_FAILURE_INFORMATION TO gfi_service;
-INSERT INTO public.htbl_failure_information(HACTION, HDATE, HUSER, ID, UUID, VERSION_NUMBER, FK_REF_FAILURE_CLASSIFICATION, TITLE, DESCRIPTION, RESPONSIBILITY, INTERN_EXTERN, FK_REF_STATUS_INTERN, FK_REF_STATUS_EXTERN, FK_REF_BRANCH, VOLTAGE_LEVEL, PRESSURE_LEVEL, FAILURE_BEGIN, FAILURE_END_PLANNED, FAILURE_END_RESUPPLIED, POSTCODE, CITY, DISTRICT, STREET, HOUSENUMBER, STATION_ID, STATION_DESCRIPTION, STATION_COORDS, FK_REF_RADIUS, LONGITUDE, LATITUDE, OBJECT_REFERENCE_EXTERNAL_SYSTEM, PUBLICATION_STATUS, PUBLICATION_FREETEXT, FK_REF_EXPECTED_REASON, FK_TBL_FAILURE_INFORMATION_CONDENSED, CONDENSED, CONDENSED_COUNT, CREATE_DATE, CREATE_USER, MOD_DATE, MOD_USER)
-VALUES (1, '2020-03-13 00:00:00', 'SCRIPT', 1, '6432a9c9-0384-44af-9bb8-34f2878d7b49', 1, 1, 'Stromausfall Murr', 'Es gibt einen Stromausfall im Bereich Murr/Westbezirk', 'Rolf Rudis', 'I', 1, 1, 1, 'NS', null, '2021-01-19 00:00:00', '2021-01-22 00:00:00', '2021-01-22 12:00:00', '71711', 'Murr', 'Westbezirk', 'Ferdinand-Porsche-Straße', '2', '52863a', 'Trafo 1', '124,2323', 2, 9.247952, 48.955700, 'Link - extenes System', 'veröffentlicht', 'Freitext für die Veröffentlichung: Defekt an Trafostation', 1, null, false, 0, '2020-01-22 15:32:15', 'SCRIPT', '2020-01-24 08:02:44', 'SCRIPT');
+INSERT INTO public.htbl_failure_information(HACTION, HDATE, HUSER, ID, UUID, VERSION_NUMBER, FK_REF_FAILURE_CLASSIFICATION, FK_REF_FAILURE_TYPE, TITLE, DESCRIPTION, RESPONSIBILITY, INTERN_EXTERN, FK_REF_STATUS_INTERN, FK_REF_STATUS_EXTERN, FK_REF_BRANCH, VOLTAGE_LEVEL, PRESSURE_LEVEL, FAILURE_BEGIN, FAILURE_END_PLANNED, FAILURE_END_RESUPPLIED, INTERNAL_REMARK, POSTCODE, CITY, DISTRICT, STREET, HOUSENUMBER, STATION_ID, STATION_DESCRIPTION, STATION_COORDS, FK_REF_RADIUS, LONGITUDE, LATITUDE, OBJECT_REFERENCE_EXTERNAL_SYSTEM, PUBLICATION_STATUS, PUBLICATION_FREETEXT, FK_REF_EXPECTED_REASON, FK_TBL_FAILURE_INFORMATION_CONDENSED, CONDENSED, CONDENSED_COUNT, CREATE_DATE, CREATE_USER, MOD_DATE, MOD_USER)
+VALUES (1, '2020-03-13 00:00:00', 'SCRIPT', 1, '6432a9c9-0384-44af-9bb8-34f2878d7b49', 1, 1, 1, 'Stromausfall Murr', 'Es gibt einen Stromausfall im Bereich Murr/Westbezirk', 'Rolf Rudis', 'I', 1, 1, 1, 'NS', null, '2021-01-19 00:00:00', '2021-01-22 00:00:00', '2021-01-22 12:00:00', 'Der Bagger grub zu tief', '71711', 'Murr', 'Westbezirk', 'Ferdinand-Porsche-Straße', '2', '52863a', 'Trafo 1', '124,2323', 2, 9.247952, 48.955700, 'Link - extenes System', 'veröffentlicht', 'Freitext für die Veröffentlichung: Defekt an Trafostation', 1, null, false, 0, '2020-01-22 15:32:15', 'SCRIPT', '2020-01-24 08:02:44', 'SCRIPT');
-INSERT INTO public.htbl_failure_information(HACTION, HDATE, HUSER, ID, UUID, VERSION_NUMBER, FK_REF_FAILURE_CLASSIFICATION, TITLE, DESCRIPTION, RESPONSIBILITY, INTERN_EXTERN, FK_REF_STATUS_INTERN, FK_REF_STATUS_EXTERN, FK_REF_BRANCH, VOLTAGE_LEVEL, PRESSURE_LEVEL, FAILURE_BEGIN, FAILURE_END_PLANNED, FAILURE_END_RESUPPLIED, POSTCODE, CITY, DISTRICT, STREET, HOUSENUMBER, STATION_ID, STATION_DESCRIPTION, STATION_COORDS, FK_REF_RADIUS, LONGITUDE, LATITUDE, OBJECT_REFERENCE_EXTERNAL_SYSTEM, PUBLICATION_STATUS, PUBLICATION_FREETEXT, FK_REF_EXPECTED_REASON, FK_TBL_FAILURE_INFORMATION_CONDENSED, CONDENSED, CONDENSED_COUNT, CREATE_DATE, CREATE_USER, MOD_DATE, MOD_USER)
-VALUES (2, '2020-03-13 00:00:00', 'SCRIPT', 2, '37aef635-d0d4-4c47-ac25-c0d16c29e35c', 1, 2, 'Gasleck Oldenburg', 'Es gibt ein Gasleck in Oldenburg', 'Bernd Britzel', 'E', 2, 2, 3, 'NS', 'HD', '2021-05-19 00:00:00', '2021-05-22 00:00:00', '2021-05-22 12:00:00', '26133', 'Oldenburg', null, 'Cloppenburger Str.', '302', '1234863-b234', 'ertf', '124,2323', 4, 8.210150, 53.111820, 'Link - extenes System', 'nicht veröffentlicht', 'Freitext: Eine Gasleitung wurde beschädigt', 4, null, false, 0, '2020-02-03 15:15:15', 'SCRIPT', '2020-02-24 20:08:41', 'SCRIPT');
+INSERT INTO public.htbl_failure_information(HACTION, HDATE, HUSER, ID, UUID, VERSION_NUMBER, FK_REF_FAILURE_CLASSIFICATION, FK_REF_FAILURE_TYPE, TITLE, DESCRIPTION, RESPONSIBILITY, INTERN_EXTERN, FK_REF_STATUS_INTERN, FK_REF_STATUS_EXTERN, FK_REF_BRANCH, VOLTAGE_LEVEL, PRESSURE_LEVEL, FAILURE_BEGIN, FAILURE_END_PLANNED, FAILURE_END_RESUPPLIED, INTERNAL_REMARK, POSTCODE, CITY, DISTRICT, STREET, HOUSENUMBER, STATION_ID, STATION_DESCRIPTION, STATION_COORDS, FK_REF_RADIUS, LONGITUDE, LATITUDE, OBJECT_REFERENCE_EXTERNAL_SYSTEM, PUBLICATION_STATUS, PUBLICATION_FREETEXT, FK_REF_EXPECTED_REASON, FK_TBL_FAILURE_INFORMATION_CONDENSED, CONDENSED, CONDENSED_COUNT, CREATE_DATE, CREATE_USER, MOD_DATE, MOD_USER)
+VALUES (2, '2020-03-13 00:00:00', 'SCRIPT', 2, '37aef635-d0d4-4c47-ac25-c0d16c29e35c', 1, 2, 2, 'Gasleck Oldenburg', 'Es gibt ein Gasleck in Oldenburg', 'Bernd Britzel', 'E', 2, 2, 3, 'NS', 'HD', '2021-05-19 00:00:00', '2021-05-22 00:00:00', '2021-05-22 12:00:00', 'HD betroffen', '26133', 'Oldenburg', null, 'Cloppenburger Str.', '302', '1234863-b234', 'ertf', '124,2323', 4, 8.210150, 53.111820, 'Link - extenes System', 'nicht veröffentlicht', 'Freitext: Eine Gasleitung wurde beschädigt', 4, null, false, 0, '2020-02-03 15:15:15', 'SCRIPT', '2020-02-24 20:08:41', 'SCRIPT');
-- ----------------------------------------------------------------------------
@@ -683,7 +753,7 @@
$BODY$
BEGIN
INSERT INTO HTBL_FAILURE_INFORMATION (
- ID,UUID,VERSION_NUMBER,FK_REF_FAILURE_CLASSIFICATION,TITLE,DESCRIPTION,RESPONSIBILITY,INTERN_EXTERN,FK_REF_STATUS_INTERN,FK_REF_STATUS_EXTERN,FK_REF_BRANCH,VOLTAGE_LEVEL,PRESSURE_LEVEL,FAILURE_BEGIN,FAILURE_END_PLANNED,FAILURE_END_RESUPPLIED,POSTCODE,CITY,DISTRICT,STREET,HOUSENUMBER,STATION_ID,STATION_DESCRIPTION,STATION_COORDS,FK_REF_RADIUS,LONGITUDE,LATITUDE,FK_TBL_FAILURE_INFORMATION_CONDENSED,CONDENSED,CONDENSED_COUNT,OBJECT_REFERENCE_EXTERNAL_SYSTEM,PUBLICATION_STATUS,PUBLICATION_FREETEXT,FK_REF_EXPECTED_REASON,CREATE_DATE,CREATE_USER,MOD_DATE,MOD_USER,
+ ID,UUID,VERSION_NUMBER,FK_REF_FAILURE_CLASSIFICATION,FK_REF_FAILURE_TYPE,TITLE,DESCRIPTION,RESPONSIBILITY,INTERN_EXTERN,FK_REF_STATUS_INTERN,FK_REF_STATUS_EXTERN,FK_REF_BRANCH,VOLTAGE_LEVEL,PRESSURE_LEVEL,FAILURE_BEGIN,FAILURE_END_PLANNED,FAILURE_END_RESUPPLIED,INTERNAL_REMARK,POSTCODE,CITY,DISTRICT,STREET,HOUSENUMBER,STATION_ID,STATION_DESCRIPTION,STATION_COORDS,FK_REF_RADIUS,LONGITUDE,LATITUDE,FK_TBL_FAILURE_INFORMATION_CONDENSED,CONDENSED,CONDENSED_COUNT,OBJECT_REFERENCE_EXTERNAL_SYSTEM,PUBLICATION_STATUS,PUBLICATION_FREETEXT,FK_REF_EXPECTED_REASON,CREATE_DATE,CREATE_USER,MOD_DATE,MOD_USER,
HACTION,
HDATE,
@@ -691,7 +761,7 @@
)
VALUES (
- NEW.ID,NEW.UUID,NEW.VERSION_NUMBER,NEW.FK_REF_FAILURE_CLASSIFICATION,NEW.TITLE,NEW.DESCRIPTION,NEW.RESPONSIBILITY,NEW.INTERN_EXTERN,NEW.FK_REF_STATUS_INTERN,NEW.FK_REF_STATUS_EXTERN,NEW.FK_REF_BRANCH,NEW.VOLTAGE_LEVEL,NEW.PRESSURE_LEVEL,NEW.FAILURE_BEGIN,NEW.FAILURE_END_PLANNED,NEW.FAILURE_END_RESUPPLIED,NEW.POSTCODE,NEW.CITY,NEW.DISTRICT,NEW.STREET,NEW.HOUSENUMBER,NEW.STATION_ID,NEW.STATION_DESCRIPTION,NEW.STATION_COORDS,NEW.FK_REF_RADIUS,NEW.LONGITUDE,NEW.LATITUDE,NEW.FK_TBL_FAILURE_INFORMATION_CONDENSED,NEW.CONDENSED,NEW.CONDENSED_COUNT,NEW.OBJECT_REFERENCE_EXTERNAL_SYSTEM,NEW.PUBLICATION_STATUS,NEW.PUBLICATION_FREETEXT,NEW.FK_REF_EXPECTED_REASON,NEW.CREATE_DATE,NEW.CREATE_USER,NEW.MOD_DATE,NEW.MOD_USER,
+ NEW.ID,NEW.UUID,NEW.VERSION_NUMBER,NEW.FK_REF_FAILURE_CLASSIFICATION,NEW.FK_REF_FAILURE_TYPE,NEW.TITLE,NEW.DESCRIPTION,NEW.RESPONSIBILITY,NEW.INTERN_EXTERN,NEW.FK_REF_STATUS_INTERN,NEW.FK_REF_STATUS_EXTERN,NEW.FK_REF_BRANCH,NEW.VOLTAGE_LEVEL,NEW.PRESSURE_LEVEL,NEW.FAILURE_BEGIN,NEW.FAILURE_END_PLANNED,NEW.FAILURE_END_RESUPPLIED,NEW.INTERNAL_REMARK,NEW.POSTCODE,NEW.CITY,NEW.DISTRICT,NEW.STREET,NEW.HOUSENUMBER,NEW.STATION_ID,NEW.STATION_DESCRIPTION,NEW.STATION_COORDS,NEW.FK_REF_RADIUS,NEW.LONGITUDE,NEW.LATITUDE,NEW.FK_TBL_FAILURE_INFORMATION_CONDENSED,NEW.CONDENSED,NEW.CONDENSED_COUNT,NEW.OBJECT_REFERENCE_EXTERNAL_SYSTEM,NEW.PUBLICATION_STATUS,NEW.PUBLICATION_FREETEXT,NEW.FK_REF_EXPECTED_REASON,NEW.CREATE_DATE,NEW.CREATE_USER,NEW.MOD_DATE,NEW.MOD_USER,
1,
current_timestamp,
@@ -724,14 +794,14 @@
$BODY$
BEGIN
INSERT INTO HTBL_FAILURE_INFORMATION (
- ID,UUID,VERSION_NUMBER,FK_REF_FAILURE_CLASSIFICATION,TITLE,DESCRIPTION,RESPONSIBILITY,INTERN_EXTERN,FK_REF_STATUS_INTERN,FK_REF_STATUS_EXTERN,FK_REF_BRANCH,VOLTAGE_LEVEL,PRESSURE_LEVEL,FAILURE_BEGIN,FAILURE_END_PLANNED,FAILURE_END_RESUPPLIED,POSTCODE,CITY,DISTRICT,STREET,HOUSENUMBER,STATION_ID,STATION_DESCRIPTION,STATION_COORDS,FK_REF_RADIUS,LONGITUDE,LATITUDE,FK_TBL_FAILURE_INFORMATION_CONDENSED,CONDENSED,CONDENSED_COUNT,OBJECT_REFERENCE_EXTERNAL_SYSTEM,PUBLICATION_STATUS,PUBLICATION_FREETEXT,FK_REF_EXPECTED_REASON,CREATE_DATE,CREATE_USER,MOD_DATE,MOD_USER,
+ ID,UUID,VERSION_NUMBER,FK_REF_FAILURE_CLASSIFICATION,FK_REF_FAILURE_TYPE,TITLE,DESCRIPTION,RESPONSIBILITY,INTERN_EXTERN,FK_REF_STATUS_INTERN,FK_REF_STATUS_EXTERN,FK_REF_BRANCH,VOLTAGE_LEVEL,PRESSURE_LEVEL,FAILURE_BEGIN,FAILURE_END_PLANNED,FAILURE_END_RESUPPLIED,INTERNAL_REMARK,POSTCODE,CITY,DISTRICT,STREET,HOUSENUMBER,STATION_ID,STATION_DESCRIPTION,STATION_COORDS,FK_REF_RADIUS,LONGITUDE,LATITUDE,FK_TBL_FAILURE_INFORMATION_CONDENSED,CONDENSED,CONDENSED_COUNT,OBJECT_REFERENCE_EXTERNAL_SYSTEM,PUBLICATION_STATUS,PUBLICATION_FREETEXT,FK_REF_EXPECTED_REASON,CREATE_DATE,CREATE_USER,MOD_DATE,MOD_USER,
HACTION,
HDATE,
HUSER
)
VALUES (
- NEW.ID,NEW.UUID,NEW.VERSION_NUMBER,NEW.FK_REF_FAILURE_CLASSIFICATION,NEW.TITLE,NEW.DESCRIPTION,NEW.RESPONSIBILITY,NEW.INTERN_EXTERN,NEW.FK_REF_STATUS_INTERN,NEW.FK_REF_STATUS_EXTERN,NEW.FK_REF_BRANCH,NEW.VOLTAGE_LEVEL,NEW.PRESSURE_LEVEL,NEW.FAILURE_BEGIN,NEW.FAILURE_END_PLANNED,NEW.FAILURE_END_RESUPPLIED,NEW.POSTCODE,NEW.CITY,NEW.DISTRICT,NEW.STREET,NEW.HOUSENUMBER,NEW.STATION_ID,NEW.STATION_DESCRIPTION,NEW.STATION_COORDS,NEW.FK_REF_RADIUS,NEW.LONGITUDE,NEW.LATITUDE,NEW.FK_TBL_FAILURE_INFORMATION_CONDENSED,NEW.CONDENSED,NEW.CONDENSED_COUNT,NEW.OBJECT_REFERENCE_EXTERNAL_SYSTEM,NEW.PUBLICATION_STATUS,NEW.PUBLICATION_FREETEXT,NEW.FK_REF_EXPECTED_REASON,NEW.CREATE_DATE,NEW.CREATE_USER,NEW.MOD_DATE,NEW.MOD_USER,
+ NEW.ID,NEW.UUID,NEW.VERSION_NUMBER,NEW.FK_REF_FAILURE_CLASSIFICATION,NEW.FK_REF_FAILURE_TYPE,NEW.TITLE,NEW.DESCRIPTION,NEW.RESPONSIBILITY,NEW.INTERN_EXTERN,NEW.FK_REF_STATUS_INTERN,NEW.FK_REF_STATUS_EXTERN,NEW.FK_REF_BRANCH,NEW.VOLTAGE_LEVEL,NEW.PRESSURE_LEVEL,NEW.FAILURE_BEGIN,NEW.FAILURE_END_PLANNED,NEW.FAILURE_END_RESUPPLIED,NEW.INTERNAL_REMARK,NEW.POSTCODE,NEW.CITY,NEW.DISTRICT,NEW.STREET,NEW.HOUSENUMBER,NEW.STATION_ID,NEW.STATION_DESCRIPTION,NEW.STATION_COORDS,NEW.FK_REF_RADIUS,NEW.LONGITUDE,NEW.LATITUDE,NEW.FK_TBL_FAILURE_INFORMATION_CONDENSED,NEW.CONDENSED,NEW.CONDENSED_COUNT,NEW.OBJECT_REFERENCE_EXTERNAL_SYSTEM,NEW.PUBLICATION_STATUS,NEW.PUBLICATION_FREETEXT,NEW.FK_REF_EXPECTED_REASON,NEW.CREATE_DATE,NEW.CREATE_USER,NEW.MOD_DATE,NEW.MOD_USER,
2,
current_timestamp,
NEW.MOD_USER
@@ -765,14 +835,14 @@
IF TG_OP = 'DELETE' THEN
INSERT INTO HTBL_FAILURE_INFORMATION (
- ID,UUID,VERSION_NUMBER,FK_REF_FAILURE_CLASSIFICATION,TITLE,DESCRIPTION,RESPONSIBILITY,INTERN_EXTERN,FK_REF_STATUS_INTERN,FK_REF_STATUS_EXTERN,FK_REF_BRANCH,VOLTAGE_LEVEL,PRESSURE_LEVEL,FAILURE_BEGIN,FAILURE_END_PLANNED,FAILURE_END_RESUPPLIED,POSTCODE,CITY,DISTRICT,STREET,HOUSENUMBER,STATION_ID,STATION_DESCRIPTION,STATION_COORDS,FK_REF_RADIUS,LONGITUDE,LATITUDE,FK_TBL_FAILURE_INFORMATION_CONDENSED,CONDENSED,CONDENSED_COUNT,OBJECT_REFERENCE_EXTERNAL_SYSTEM,PUBLICATION_STATUS,PUBLICATION_FREETEXT,FK_REF_EXPECTED_REASON,CREATE_DATE,CREATE_USER,MOD_DATE,MOD_USER,
+ ID,UUID,VERSION_NUMBER,FK_REF_FAILURE_CLASSIFICATION,FK_REF_FAILURE_TYPE,TITLE,DESCRIPTION,RESPONSIBILITY,INTERN_EXTERN,FK_REF_STATUS_INTERN,FK_REF_STATUS_EXTERN,FK_REF_BRANCH,VOLTAGE_LEVEL,PRESSURE_LEVEL,FAILURE_BEGIN,FAILURE_END_PLANNED,FAILURE_END_RESUPPLIED,INTERNAL_REMARK,POSTCODE,CITY,DISTRICT,STREET,HOUSENUMBER,STATION_ID,STATION_DESCRIPTION,STATION_COORDS,FK_REF_RADIUS,LONGITUDE,LATITUDE,FK_TBL_FAILURE_INFORMATION_CONDENSED,CONDENSED,CONDENSED_COUNT,OBJECT_REFERENCE_EXTERNAL_SYSTEM,PUBLICATION_STATUS,PUBLICATION_FREETEXT,FK_REF_EXPECTED_REASON,CREATE_DATE,CREATE_USER,MOD_DATE,MOD_USER,
HACTION,
HDATE,
HUSER
)
VALUES (
- OLD.ID,OLD.UUID,OLD.VERSION_NUMBER,OLD.FK_REF_FAILURE_CLASSIFICATION,OLD.TITLE,OLD.DESCRIPTION,OLD.RESPONSIBILITY,OLD.INTERN_EXTERN,OLD.FK_REF_STATUS_INTERN,OLD.FK_REF_STATUS_EXTERN,OLD.FK_REF_BRANCH,OLD.VOLTAGE_LEVEL,OLD.PRESSURE_LEVEL,OLD.FAILURE_BEGIN,OLD.FAILURE_END_PLANNED,OLD.FAILURE_END_RESUPPLIED,OLD.POSTCODE,OLD.CITY,OLD.DISTRICT,OLD.STREET,OLD.HOUSENUMBER,OLD.STATION_ID,OLD.STATION_DESCRIPTION,OLD.STATION_COORDS,OLD.FK_REF_RADIUS,OLD.LONGITUDE,OLD.LATITUDE,OLD.FK_TBL_FAILURE_INFORMATION_CONDENSED,OLD.CONDENSED,OLD.CONDENSED_COUNT,OLD.OBJECT_REFERENCE_EXTERNAL_SYSTEM,OLD.PUBLICATION_STATUS,OLD.PUBLICATION_FREETEXT,OLD.FK_REF_EXPECTED_REASON,OLD.CREATE_DATE,OLD.CREATE_USER,OLD.MOD_DATE,OLD.MOD_USER,
+ OLD.ID,OLD.UUID,OLD.VERSION_NUMBER,OLD.FK_REF_FAILURE_CLASSIFICATION,OLD.FK_REF_FAILURE_TYPE,OLD.TITLE,OLD.DESCRIPTION,OLD.RESPONSIBILITY,OLD.INTERN_EXTERN,OLD.FK_REF_STATUS_INTERN,OLD.FK_REF_STATUS_EXTERN,OLD.FK_REF_BRANCH,OLD.VOLTAGE_LEVEL,OLD.PRESSURE_LEVEL,OLD.FAILURE_BEGIN,OLD.FAILURE_END_PLANNED,OLD.FAILURE_END_RESUPPLIED,OLD.INTERNAL_REMARK,OLD.POSTCODE,OLD.CITY,OLD.DISTRICT,OLD.STREET,OLD.HOUSENUMBER,OLD.STATION_ID,OLD.STATION_DESCRIPTION,OLD.STATION_COORDS,OLD.FK_REF_RADIUS,OLD.LONGITUDE,OLD.LATITUDE,OLD.FK_TBL_FAILURE_INFORMATION_CONDENSED,OLD.CONDENSED,OLD.CONDENSED_COUNT,OLD.OBJECT_REFERENCE_EXTERNAL_SYSTEM,OLD.PUBLICATION_STATUS,OLD.PUBLICATION_FREETEXT,OLD.FK_REF_EXPECTED_REASON,OLD.CREATE_DATE,OLD.CREATE_USER,OLD.MOD_DATE,OLD.MOD_USER,
3,
current_timestamp,
diff --git a/gfsBackendService/src/main/resources/db/migration/V0_x30__CREATE_GFI_DB.sql b/gfsBackendService/src/main/resources/db/migration/V0_34__CREATE_GFI_DB.sql
similarity index 71%
copy from gfsBackendService/src/main/resources/db/migration/V0_x30__CREATE_GFI_DB.sql
copy to gfsBackendService/src/main/resources/db/migration/V0_34__CREATE_GFI_DB.sql
index f870d7b..3aa153e 100644
--- a/gfsBackendService/src/main/resources/db/migration/V0_x30__CREATE_GFI_DB.sql
+++ b/gfsBackendService/src/main/resources/db/migration/V0_34__CREATE_GFI_DB.sql
@@ -50,8 +50,8 @@
DROP TABLE IF EXISTS public.TBL_FAILURE_INFORMATION_DISTRIBUTION_GROUP CASCADE;
DROP SEQUENCE IF EXISTS public.TBL_FAILURE_INFORMATION_DISTRIBUTION_GROUP_ID_SEQ;
-DROP TABLE IF EXISTS public.TBL_FAILURE_INFORMATION_STATION CASCADE;
-DROP SEQUENCE IF EXISTS public.TBL_FAILURE_INFORMATION_STATION_ID_SEQ;
+DROP TABLE IF EXISTS public.TBL_FAILURE_INFORMATION_PUBLICATION_CHANNEL;
+DROP SEQUENCE IF EXISTS public.TBL_FAILURE_INFORMATION_PUBLICATION_CHANNEL_SEQ
-- ---------------------------------------------
-- TABLE VERSION
@@ -134,6 +134,36 @@
-- ---------------------------------------------
+-- TABLE REF_FAILURE_TYPE
+-- ---------------------------------------------
+CREATE SEQUENCE public.ref_failure_type_id_seq
+ INCREMENT 1
+ MINVALUE 1
+ MAXVALUE 9223372036854775807
+ START 1
+ CACHE 1;
+ALTER TABLE public.ref_failure_type_id_seq
+ OWNER TO GFI_SERVICE;
+
+CREATE TABLE public.REF_FAILURE_TYPE
+(
+ ID integer NOT NULL DEFAULT nextval('REF_FAILURE_TYPE_ID_SEQ'::regclass),
+ UUID uuid NOT NULL,
+ TYPE character varying(50) NOT NULL,
+ DESCRIPTION character varying(255) NULL,
+ CONSTRAINT REF_FAILURE_TYPE_PKEY PRIMARY KEY (id)
+);
+
+ALTER TABLE public.REF_FAILURE_TYPE
+ OWNER TO GFI_SERVICE;
+GRANT ALL ON TABLE public.REF_FAILURE_TYPE TO GFI_SERVICE;
+
+
+INSERT INTO public.REF_FAILURE_TYPE (UUID, TYPE, DESCRIPTION) VALUES ( '44a2aaed-8910-4116-b0c4-0855f8d3c28d', 'Information', NULL );
+INSERT INTO public.REF_FAILURE_TYPE (UUID, TYPE, DESCRIPTION) VALUES ( '94e880c4-3127-47d5-aaee-5f778462ab0c', 'zu veröffentlichende Meldung', 'Standardwert' );
+INSERT INTO public.REF_FAILURE_TYPE (UUID, TYPE, DESCRIPTION) VALUES ( '658245bd-bdc4-47dd-bc90-0336f9471410', 'unterlagerte Störung', 'nicht zu veröffentlichen' );
+
+-- ---------------------------------------------
-- TABLE REF_BRANCH
-- ---------------------------------------------
CREATE SEQUENCE public.ref_branch_id_seq
@@ -253,6 +283,7 @@
UUID uuid NOT NULL,
VERSION_NUMBER integer NOT NULL,
FK_REF_FAILURE_CLASSIFICATION integer,
+ FK_REF_FAILURE_TYPE integer,
TITLE character varying(255) NULL,
DESCRIPTION character varying(255) NULL,
RESPONSIBILITY character varying(255),
@@ -265,6 +296,7 @@
FAILURE_BEGIN timestamp NOT NULL,
FAILURE_END_PLANNED timestamp,
FAILURE_END_RESUPPLIED timestamp,
+ INTERNAL_REMARK character varying(1024),
POSTCODE character varying(30),
CITY character varying(255),
DISTRICT character varying(255),
@@ -291,6 +323,9 @@
CONSTRAINT TBL_FAIL_INF__FCLASS_FKEY FOREIGN KEY (FK_REF_FAILURE_CLASSIFICATION)
REFERENCES public.REF_FAILURE_CLASSIFICATION (ID) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
+ CONSTRAINT TBL_FAIL_INF_FTYPE_FKEY FOREIGN KEY (FK_REF_FAILURE_TYPE)
+ REFERENCES public.REF_FAILURE_TYPE (ID) MATCH SIMPLE
+ ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT TBL_FAIL_INF_STATUSINT_FKEY FOREIGN KEY (FK_REF_STATUS_INTERN)
REFERENCES public.REF_STATUS (ID) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
@@ -309,11 +344,11 @@
OWNER TO GFI_SERVICE;
GRANT ALL ON TABLE public.TBL_FAILURE_INFORMATION TO GFI_SERVICE;
-INSERT INTO public.tbl_failure_information(UUID, VERSION_NUMBER, FK_REF_FAILURE_CLASSIFICATION, TITLE, DESCRIPTION, RESPONSIBILITY, INTERN_EXTERN, FK_REF_STATUS_INTERN, FK_REF_STATUS_EXTERN, FK_REF_BRANCH, VOLTAGE_LEVEL, PRESSURE_LEVEL, FAILURE_BEGIN, FAILURE_END_PLANNED, FAILURE_END_RESUPPLIED, POSTCODE, CITY, DISTRICT, STREET, HOUSENUMBER, STATION_ID, STATION_DESCRIPTION, STATION_COORDS, FK_REF_RADIUS, LONGITUDE, LATITUDE, OBJECT_REFERENCE_EXTERNAL_SYSTEM, PUBLICATION_STATUS, PUBLICATION_FREETEXT, FK_REF_EXPECTED_REASON, CONDENSED, CONDENSED_COUNT, FK_TBL_FAILURE_INFORMATION_CONDENSED, CREATE_DATE, CREATE_USER, MOD_DATE, MOD_USER)
-VALUES ('6432a9c9-0384-44af-9bb8-34f2878d7b49',3, 1, 'Stromausfall Murr', 'Es gibt einen Stromausfall im Bereich Murr/Westbezirk', 'Rolf Rudis', 'I', 1, 1, 1,'NS', null, '2021-01-19 00:00:00', '2021-01-22 00:00:00', '2021-01-22 12:00:00', '71711', 'Murr', 'Westbezirk', 'Ferdinand-Porsche-Straße', '2', '52863a', 'Trafo 1', '124,2323', 2, 9.247952, 48.955700, 'Link - extenes System', 'veröffentlicht', 'Freitext für die Veröffentlichung: Defekt an Trafostation', 1, false, 0, null, '2020-01-22 15:32:15', 'SCRIPT', '2020-01-24 08:02:44', 'SCRIPT');
+INSERT INTO public.tbl_failure_information(UUID, VERSION_NUMBER, FK_REF_FAILURE_CLASSIFICATION, FK_REF_FAILURE_TYPE, TITLE, DESCRIPTION, RESPONSIBILITY, INTERN_EXTERN, FK_REF_STATUS_INTERN, FK_REF_STATUS_EXTERN, FK_REF_BRANCH, VOLTAGE_LEVEL, PRESSURE_LEVEL, FAILURE_BEGIN, FAILURE_END_PLANNED, FAILURE_END_RESUPPLIED, INTERNAL_REMARK, POSTCODE, CITY, DISTRICT, STREET, HOUSENUMBER, STATION_ID, STATION_DESCRIPTION, STATION_COORDS, FK_REF_RADIUS, LONGITUDE, LATITUDE, OBJECT_REFERENCE_EXTERNAL_SYSTEM, PUBLICATION_STATUS, PUBLICATION_FREETEXT, FK_REF_EXPECTED_REASON, CONDENSED, CONDENSED_COUNT, FK_TBL_FAILURE_INFORMATION_CONDENSED, CREATE_DATE, CREATE_USER, MOD_DATE, MOD_USER)
+VALUES ('6432a9c9-0384-44af-9bb8-34f2878d7b49',3, 1, 1, 'Stromausfall Murr', 'Es gibt einen Stromausfall im Bereich Murr/Westbezirk', 'Rolf Rudis', 'I', 1, 1, 1, 'NS', null, '2021-01-19 00:00:00', '2021-01-22 00:00:00', '2021-01-22 12:00:00', 'Der Bagger grub zu tief', '71711', 'Murr', 'Westbezirk', 'Ferdinand-Porsche-Straße', '2', '52863a', 'Trafo 1', '124,2323', 2, 9.247952, 48.955700, 'Link - extenes System', 'veröffentlicht', 'Freitext für die Veröffentlichung: Defekt an Trafostation', 1, false, 0, null, '2020-01-22 15:32:15', 'SCRIPT', '2020-01-24 08:02:44', 'SCRIPT');
-INSERT INTO public.tbl_failure_information(UUID, VERSION_NUMBER, FK_REF_FAILURE_CLASSIFICATION, TITLE, DESCRIPTION, RESPONSIBILITY, INTERN_EXTERN, FK_REF_STATUS_INTERN, FK_REF_STATUS_EXTERN, FK_REF_BRANCH, VOLTAGE_LEVEL, PRESSURE_LEVEL, FAILURE_BEGIN, FAILURE_END_PLANNED, FAILURE_END_RESUPPLIED, POSTCODE, CITY, DISTRICT, STREET, HOUSENUMBER, STATION_ID, STATION_DESCRIPTION, STATION_COORDS, FK_REF_RADIUS, LONGITUDE, LATITUDE, OBJECT_REFERENCE_EXTERNAL_SYSTEM, PUBLICATION_STATUS, PUBLICATION_FREETEXT, FK_REF_EXPECTED_REASON, CONDENSED, CONDENSED_COUNT, FK_TBL_FAILURE_INFORMATION_CONDENSED, CREATE_DATE, CREATE_USER, MOD_DATE, MOD_USER)
-VALUES ('37aef635-d0d4-4c47-ac25-c0d16c29e35c', 1, 2, 'Gasleck Oldenburg', 'Es gibt ein Gasleck in Oldenburg', 'Bernd Britzel', 'E', 2, 2, 3, 'NS', 'HD', '2021-05-19 00:00:00', '2021-05-22 00:00:00', '2021-05-22 12:00:00', '26133', 'Oldenburg', null, 'Cloppenburger Str.', '302', '1234863-b234', 'ertf', '124,2323', 4, 8.210150, 53.111820, 'Link - extenes System', 'nicht veröffentlicht', 'Freitext: Eine Gasleitung wurde beschädigt', 4, false, 0, null, '2020-02-03 15:15:15', 'SCRIPT', '2020-02-24 20:08:41', 'SCRIPT');
+INSERT INTO public.tbl_failure_information(UUID, VERSION_NUMBER, FK_REF_FAILURE_CLASSIFICATION, FK_REF_FAILURE_TYPE, TITLE, DESCRIPTION, RESPONSIBILITY, INTERN_EXTERN, FK_REF_STATUS_INTERN, FK_REF_STATUS_EXTERN, FK_REF_BRANCH, VOLTAGE_LEVEL, PRESSURE_LEVEL, FAILURE_BEGIN, FAILURE_END_PLANNED, FAILURE_END_RESUPPLIED, INTERNAL_REMARK, POSTCODE, CITY, DISTRICT, STREET, HOUSENUMBER, STATION_ID, STATION_DESCRIPTION, STATION_COORDS, FK_REF_RADIUS, LONGITUDE, LATITUDE, OBJECT_REFERENCE_EXTERNAL_SYSTEM, PUBLICATION_STATUS, PUBLICATION_FREETEXT, FK_REF_EXPECTED_REASON, CONDENSED, CONDENSED_COUNT, FK_TBL_FAILURE_INFORMATION_CONDENSED, CREATE_DATE, CREATE_USER, MOD_DATE, MOD_USER)
+VALUES ('37aef635-d0d4-4c47-ac25-c0d16c29e35c', 1, 2, 2, 'Gasleck Oldenburg', 'Es gibt ein Gasleck in Oldenburg', 'Bernd Britzel', 'E', 2, 2, 3, 'NS', 'HD', '2021-05-19 00:00:00', '2021-05-22 00:00:00', '2021-05-22 12:00:00', 'HD betroffen', '26133', 'Oldenburg', null, 'Cloppenburger Str.', '302', '1234863-b234', 'ertf', '124,2323', 4, 8.210150, 53.111820, 'Link - extenes System', 'nicht veröffentlicht', 'Freitext: Eine Gasleitung wurde beschädigt', 4, false, 0, null, '2020-02-03 15:15:15', 'SCRIPT', '2020-02-24 20:08:41', 'SCRIPT');
-- ---------------------------------------------
@@ -343,7 +378,7 @@
GRANT ALL ON TABLE public.TBL_DISTRIBUTION_GROUP TO GFI_SERVICE;
INSERT INTO public.tbl_distribution_group(UUID, NAME, DISTRIBUTION_TEXT)
-VALUES('5f5017fe-887a-11ea-bc55-0242ac130003', 'Verteiler technisch - intern', 'Subject: Die Störung (Sparte: $Sparte$) mit Beginn: $Störungsbeginn_gemeldet$ wurde in den Status veröffentlicht geändert.
+VALUES('5f5017fe-887a-11ea-bc55-0242ac130003', 'Verteiler technisch - intern', 'Subject: Die Meldung $Title$ mit Beginn: $FailureBegin$ wurde in den Status veröffentlicht geändert.
Body:
Verteiler fachlich TEST
@@ -358,7 +393,7 @@
Ihre Admin-Meister-Team der PTA GmbH');
INSERT INTO public.tbl_distribution_group(UUID, NAME, DISTRIBUTION_TEXT)
-VALUES('5f502046-887a-11ea-bc55-0242ac130003', 'Verteiler fachlich - intern', 'Subject: Die Störung (Sparte: $Sparte$) mit Beginn: $Störungsbeginn_gemeldet$ wurde in den Status veröffentlicht geändert.
+VALUES('5f502046-887a-11ea-bc55-0242ac130003', 'Verteiler fachlich - intern', 'Subject: Die Meldung $Title$ mit Beginn: $FailureBegin$ wurde in den Status veröffentlicht geändert.
Body:
Verteiler fachlich TEST
@@ -458,37 +493,42 @@
INSERT INTO public.tbl_failure_information_distribution_group(FK_TBL_FAILURE_INFORMATION, FK_TBL_DISTRIBUTION_GROUP)
VALUES(2, 2);
+
-- ---------------------------------------------
--- TABLE TBL_FAILURE_INFORMATION_STATION
+-- TABLE TBL_FAILURE_INFORMATION_PUBLICATION_CHANNEL
-- ---------------------------------------------
-CREATE SEQUENCE public.tbl_failure_information_station_id_seq
+
+CREATE SEQUENCE public.tbl_failure_information_publication_channel_seq
INCREMENT 1
MINVALUE 1
MAXVALUE 9223372036854775807
START 1
CACHE 1;
-ALTER TABLE public.tbl_failure_information_station_id_seq
+ALTER TABLE public.tbl_failure_information_publication_channel_seq
OWNER TO gfi_service;
-CREATE TABLE public.tbl_failure_information_station
+
+CREATE TABLE public.tbl_failure_information_publication_channel
(
- id integer NOT NULL DEFAULT nextval('tbl_failure_information_station_id_seq'::regclass),
+ id integer NOT NULL DEFAULT nextval('tbl_failure_information_publication_channel_seq'::regclass),
fk_tbl_failure_information integer NOT NULL,
- fk_tbl_station integer NOT NULL,
- CONSTRAINT tbl_failure_information_station_pkey PRIMARY KEY (id),
- CONSTRAINT tbl_fail_inf_station__failure_information_id_fkey FOREIGN KEY (fk_tbl_failure_information)
+ publication_channel character varying(50) NOT NULL,
+ published boolean NOT NULL,
+ CONSTRAINT tbl_failure_information_publication_channel_pkey PRIMARY KEY (id),
+ CONSTRAINT tbl_failure_information_id_fkey FOREIGN KEY (fk_tbl_failure_information)
REFERENCES public.tbl_failure_information (id) MATCH SIMPLE
- ON UPDATE NO ACTION ON DELETE NO ACTION,
- CONSTRAINT tbl_fail_inf_station__station_fkey FOREIGN KEY (fk_tbl_station)
- REFERENCES public.tbl_station (id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
-)
-WITH (
- OIDS=FALSE
);
-ALTER TABLE public.tbl_failure_information_station
- OWNER TO gfi_service;
-GRANT ALL ON TABLE public.tbl_failure_information_station TO gfi_service;
+
+ALTER TABLE public.tbl_failure_information_publication_channel
+ OWNER TO postgres;
+GRANT ALL ON TABLE public.tbl_failure_information_publication_channel TO gfi_service;
+
+INSERT INTO public.tbl_failure_information_publication_channel(FK_TBL_FAILURE_INFORMATION, PUBLICATION_CHANNEL, PUBLISHED)
+VALUES(1, 'MAIL', false);
+
+
+
-- ----------------------------------------------------------------------------
-- ----------------------------------------------------------------------------
@@ -524,6 +564,7 @@
UUID uuid,
VERSION_NUMBER integer,
FK_REF_FAILURE_CLASSIFICATION integer,
+ FK_REF_FAILURE_TYPE integer,
TITLE character varying(255) NULL,
DESCRIPTION character varying(255) NULL,
RESPONSIBILITY character varying (255),
@@ -536,6 +577,7 @@
FAILURE_BEGIN timestamp without time zone,
FAILURE_END_PLANNED timestamp without time zone,
FAILURE_END_RESUPPLIED timestamp without time zone,
+ INTERNAL_REMARK character varying (1024),
POSTCODE character varying (30),
CITY character varying (255),
DISTRICT character varying (255),
@@ -568,11 +610,11 @@
OWNER TO gfi_service;
GRANT ALL ON TABLE PUBLIC.HTBL_FAILURE_INFORMATION TO gfi_service;
-INSERT INTO public.htbl_failure_information(HACTION, HDATE, HUSER, ID, UUID, VERSION_NUMBER, FK_REF_FAILURE_CLASSIFICATION, TITLE, DESCRIPTION, RESPONSIBILITY, INTERN_EXTERN, FK_REF_STATUS_INTERN, FK_REF_STATUS_EXTERN, FK_REF_BRANCH, VOLTAGE_LEVEL, PRESSURE_LEVEL, FAILURE_BEGIN, FAILURE_END_PLANNED, FAILURE_END_RESUPPLIED, POSTCODE, CITY, DISTRICT, STREET, HOUSENUMBER, STATION_ID, STATION_DESCRIPTION, STATION_COORDS, FK_REF_RADIUS, LONGITUDE, LATITUDE, OBJECT_REFERENCE_EXTERNAL_SYSTEM, PUBLICATION_STATUS, PUBLICATION_FREETEXT, FK_REF_EXPECTED_REASON, FK_TBL_FAILURE_INFORMATION_CONDENSED, CONDENSED, CONDENSED_COUNT, CREATE_DATE, CREATE_USER, MOD_DATE, MOD_USER)
-VALUES (1, '2020-03-13 00:00:00', 'SCRIPT', 1, '6432a9c9-0384-44af-9bb8-34f2878d7b49', 1, 1, 'Stromausfall Murr', 'Es gibt einen Stromausfall im Bereich Murr/Westbezirk', 'Rolf Rudis', 'I', 1, 1, 1, 'NS', null, '2021-01-19 00:00:00', '2021-01-22 00:00:00', '2021-01-22 12:00:00', '71711', 'Murr', 'Westbezirk', 'Ferdinand-Porsche-Straße', '2', '52863a', 'Trafo 1', '124,2323', 2, 9.247952, 48.955700, 'Link - extenes System', 'veröffentlicht', 'Freitext für die Veröffentlichung: Defekt an Trafostation', 1, null, false, 0, '2020-01-22 15:32:15', 'SCRIPT', '2020-01-24 08:02:44', 'SCRIPT');
+INSERT INTO public.htbl_failure_information(HACTION, HDATE, HUSER, ID, UUID, VERSION_NUMBER, FK_REF_FAILURE_CLASSIFICATION, FK_REF_FAILURE_TYPE, TITLE, DESCRIPTION, RESPONSIBILITY, INTERN_EXTERN, FK_REF_STATUS_INTERN, FK_REF_STATUS_EXTERN, FK_REF_BRANCH, VOLTAGE_LEVEL, PRESSURE_LEVEL, FAILURE_BEGIN, FAILURE_END_PLANNED, FAILURE_END_RESUPPLIED, INTERNAL_REMARK, POSTCODE, CITY, DISTRICT, STREET, HOUSENUMBER, STATION_ID, STATION_DESCRIPTION, STATION_COORDS, FK_REF_RADIUS, LONGITUDE, LATITUDE, OBJECT_REFERENCE_EXTERNAL_SYSTEM, PUBLICATION_STATUS, PUBLICATION_FREETEXT, FK_REF_EXPECTED_REASON, FK_TBL_FAILURE_INFORMATION_CONDENSED, CONDENSED, CONDENSED_COUNT, CREATE_DATE, CREATE_USER, MOD_DATE, MOD_USER)
+VALUES (1, '2020-03-13 00:00:00', 'SCRIPT', 1, '6432a9c9-0384-44af-9bb8-34f2878d7b49', 1, 1, 1, 'Stromausfall Murr', 'Es gibt einen Stromausfall im Bereich Murr/Westbezirk', 'Rolf Rudis', 'I', 1, 1, 1, 'NS', null, '2021-01-19 00:00:00', '2021-01-22 00:00:00', '2021-01-22 12:00:00', 'Der Bagger grub zu tief', '71711', 'Murr', 'Westbezirk', 'Ferdinand-Porsche-Straße', '2', '52863a', 'Trafo 1', '124,2323', 2, 9.247952, 48.955700, 'Link - extenes System', 'veröffentlicht', 'Freitext für die Veröffentlichung: Defekt an Trafostation', 1, null, false, 0, '2020-01-22 15:32:15', 'SCRIPT', '2020-01-24 08:02:44', 'SCRIPT');
-INSERT INTO public.htbl_failure_information(HACTION, HDATE, HUSER, ID, UUID, VERSION_NUMBER, FK_REF_FAILURE_CLASSIFICATION, TITLE, DESCRIPTION, RESPONSIBILITY, INTERN_EXTERN, FK_REF_STATUS_INTERN, FK_REF_STATUS_EXTERN, FK_REF_BRANCH, VOLTAGE_LEVEL, PRESSURE_LEVEL, FAILURE_BEGIN, FAILURE_END_PLANNED, FAILURE_END_RESUPPLIED, POSTCODE, CITY, DISTRICT, STREET, HOUSENUMBER, STATION_ID, STATION_DESCRIPTION, STATION_COORDS, FK_REF_RADIUS, LONGITUDE, LATITUDE, OBJECT_REFERENCE_EXTERNAL_SYSTEM, PUBLICATION_STATUS, PUBLICATION_FREETEXT, FK_REF_EXPECTED_REASON, FK_TBL_FAILURE_INFORMATION_CONDENSED, CONDENSED, CONDENSED_COUNT, CREATE_DATE, CREATE_USER, MOD_DATE, MOD_USER)
-VALUES (2, '2020-03-13 00:00:00', 'SCRIPT', 2, '37aef635-d0d4-4c47-ac25-c0d16c29e35c', 1, 2, 'Gasleck Oldenburg', 'Es gibt ein Gasleck in Oldenburg', 'Bernd Britzel', 'E', 2, 2, 3, 'NS', 'HD', '2021-05-19 00:00:00', '2021-05-22 00:00:00', '2021-05-22 12:00:00', '26133', 'Oldenburg', null, 'Cloppenburger Str.', '302', '1234863-b234', 'ertf', '124,2323', 4, 8.210150, 53.111820, 'Link - extenes System', 'nicht veröffentlicht', 'Freitext: Eine Gasleitung wurde beschädigt', 4, null, false, 0, '2020-02-03 15:15:15', 'SCRIPT', '2020-02-24 20:08:41', 'SCRIPT');
+INSERT INTO public.htbl_failure_information(HACTION, HDATE, HUSER, ID, UUID, VERSION_NUMBER, FK_REF_FAILURE_CLASSIFICATION, FK_REF_FAILURE_TYPE, TITLE, DESCRIPTION, RESPONSIBILITY, INTERN_EXTERN, FK_REF_STATUS_INTERN, FK_REF_STATUS_EXTERN, FK_REF_BRANCH, VOLTAGE_LEVEL, PRESSURE_LEVEL, FAILURE_BEGIN, FAILURE_END_PLANNED, FAILURE_END_RESUPPLIED, INTERNAL_REMARK, POSTCODE, CITY, DISTRICT, STREET, HOUSENUMBER, STATION_ID, STATION_DESCRIPTION, STATION_COORDS, FK_REF_RADIUS, LONGITUDE, LATITUDE, OBJECT_REFERENCE_EXTERNAL_SYSTEM, PUBLICATION_STATUS, PUBLICATION_FREETEXT, FK_REF_EXPECTED_REASON, FK_TBL_FAILURE_INFORMATION_CONDENSED, CONDENSED, CONDENSED_COUNT, CREATE_DATE, CREATE_USER, MOD_DATE, MOD_USER)
+VALUES (2, '2020-03-13 00:00:00', 'SCRIPT', 2, '37aef635-d0d4-4c47-ac25-c0d16c29e35c', 1, 2, 2, 'Gasleck Oldenburg', 'Es gibt ein Gasleck in Oldenburg', 'Bernd Britzel', 'E', 2, 2, 3, 'NS', 'HD', '2021-05-19 00:00:00', '2021-05-22 00:00:00', '2021-05-22 12:00:00', 'HD betroffen', '26133', 'Oldenburg', null, 'Cloppenburger Str.', '302', '1234863-b234', 'ertf', '124,2323', 4, 8.210150, 53.111820, 'Link - extenes System', 'nicht veröffentlicht', 'Freitext: Eine Gasleitung wurde beschädigt', 4, null, false, 0, '2020-02-03 15:15:15', 'SCRIPT', '2020-02-24 20:08:41', 'SCRIPT');
-- ----------------------------------------------------------------------------
@@ -683,7 +725,7 @@
$BODY$
BEGIN
INSERT INTO HTBL_FAILURE_INFORMATION (
- ID,UUID,VERSION_NUMBER,FK_REF_FAILURE_CLASSIFICATION,TITLE,DESCRIPTION,RESPONSIBILITY,INTERN_EXTERN,FK_REF_STATUS_INTERN,FK_REF_STATUS_EXTERN,FK_REF_BRANCH,VOLTAGE_LEVEL,PRESSURE_LEVEL,FAILURE_BEGIN,FAILURE_END_PLANNED,FAILURE_END_RESUPPLIED,POSTCODE,CITY,DISTRICT,STREET,HOUSENUMBER,STATION_ID,STATION_DESCRIPTION,STATION_COORDS,FK_REF_RADIUS,LONGITUDE,LATITUDE,FK_TBL_FAILURE_INFORMATION_CONDENSED,CONDENSED,CONDENSED_COUNT,OBJECT_REFERENCE_EXTERNAL_SYSTEM,PUBLICATION_STATUS,PUBLICATION_FREETEXT,FK_REF_EXPECTED_REASON,CREATE_DATE,CREATE_USER,MOD_DATE,MOD_USER,
+ ID,UUID,VERSION_NUMBER,FK_REF_FAILURE_CLASSIFICATION,FK_REF_FAILURE_TYPE,TITLE,DESCRIPTION,RESPONSIBILITY,INTERN_EXTERN,FK_REF_STATUS_INTERN,FK_REF_STATUS_EXTERN,FK_REF_BRANCH,VOLTAGE_LEVEL,PRESSURE_LEVEL,FAILURE_BEGIN,FAILURE_END_PLANNED,FAILURE_END_RESUPPLIED,INTERNAL_REMARK,POSTCODE,CITY,DISTRICT,STREET,HOUSENUMBER,STATION_ID,STATION_DESCRIPTION,STATION_COORDS,FK_REF_RADIUS,LONGITUDE,LATITUDE,FK_TBL_FAILURE_INFORMATION_CONDENSED,CONDENSED,CONDENSED_COUNT,OBJECT_REFERENCE_EXTERNAL_SYSTEM,PUBLICATION_STATUS,PUBLICATION_FREETEXT,FK_REF_EXPECTED_REASON,CREATE_DATE,CREATE_USER,MOD_DATE,MOD_USER,
HACTION,
HDATE,
@@ -691,7 +733,7 @@
)
VALUES (
- NEW.ID,NEW.UUID,NEW.VERSION_NUMBER,NEW.FK_REF_FAILURE_CLASSIFICATION,NEW.TITLE,NEW.DESCRIPTION,NEW.RESPONSIBILITY,NEW.INTERN_EXTERN,NEW.FK_REF_STATUS_INTERN,NEW.FK_REF_STATUS_EXTERN,NEW.FK_REF_BRANCH,NEW.VOLTAGE_LEVEL,NEW.PRESSURE_LEVEL,NEW.FAILURE_BEGIN,NEW.FAILURE_END_PLANNED,NEW.FAILURE_END_RESUPPLIED,NEW.POSTCODE,NEW.CITY,NEW.DISTRICT,NEW.STREET,NEW.HOUSENUMBER,NEW.STATION_ID,NEW.STATION_DESCRIPTION,NEW.STATION_COORDS,NEW.FK_REF_RADIUS,NEW.LONGITUDE,NEW.LATITUDE,NEW.FK_TBL_FAILURE_INFORMATION_CONDENSED,NEW.CONDENSED,NEW.CONDENSED_COUNT,NEW.OBJECT_REFERENCE_EXTERNAL_SYSTEM,NEW.PUBLICATION_STATUS,NEW.PUBLICATION_FREETEXT,NEW.FK_REF_EXPECTED_REASON,NEW.CREATE_DATE,NEW.CREATE_USER,NEW.MOD_DATE,NEW.MOD_USER,
+ NEW.ID,NEW.UUID,NEW.VERSION_NUMBER,NEW.FK_REF_FAILURE_CLASSIFICATION,NEW.FK_REF_FAILURE_TYPE,NEW.TITLE,NEW.DESCRIPTION,NEW.RESPONSIBILITY,NEW.INTERN_EXTERN,NEW.FK_REF_STATUS_INTERN,NEW.FK_REF_STATUS_EXTERN,NEW.FK_REF_BRANCH,NEW.VOLTAGE_LEVEL,NEW.PRESSURE_LEVEL,NEW.FAILURE_BEGIN,NEW.FAILURE_END_PLANNED,NEW.FAILURE_END_RESUPPLIED,NEW.INTERNAL_REMARK,NEW.POSTCODE,NEW.CITY,NEW.DISTRICT,NEW.STREET,NEW.HOUSENUMBER,NEW.STATION_ID,NEW.STATION_DESCRIPTION,NEW.STATION_COORDS,NEW.FK_REF_RADIUS,NEW.LONGITUDE,NEW.LATITUDE,NEW.FK_TBL_FAILURE_INFORMATION_CONDENSED,NEW.CONDENSED,NEW.CONDENSED_COUNT,NEW.OBJECT_REFERENCE_EXTERNAL_SYSTEM,NEW.PUBLICATION_STATUS,NEW.PUBLICATION_FREETEXT,NEW.FK_REF_EXPECTED_REASON,NEW.CREATE_DATE,NEW.CREATE_USER,NEW.MOD_DATE,NEW.MOD_USER,
1,
current_timestamp,
@@ -724,14 +766,14 @@
$BODY$
BEGIN
INSERT INTO HTBL_FAILURE_INFORMATION (
- ID,UUID,VERSION_NUMBER,FK_REF_FAILURE_CLASSIFICATION,TITLE,DESCRIPTION,RESPONSIBILITY,INTERN_EXTERN,FK_REF_STATUS_INTERN,FK_REF_STATUS_EXTERN,FK_REF_BRANCH,VOLTAGE_LEVEL,PRESSURE_LEVEL,FAILURE_BEGIN,FAILURE_END_PLANNED,FAILURE_END_RESUPPLIED,POSTCODE,CITY,DISTRICT,STREET,HOUSENUMBER,STATION_ID,STATION_DESCRIPTION,STATION_COORDS,FK_REF_RADIUS,LONGITUDE,LATITUDE,FK_TBL_FAILURE_INFORMATION_CONDENSED,CONDENSED,CONDENSED_COUNT,OBJECT_REFERENCE_EXTERNAL_SYSTEM,PUBLICATION_STATUS,PUBLICATION_FREETEXT,FK_REF_EXPECTED_REASON,CREATE_DATE,CREATE_USER,MOD_DATE,MOD_USER,
+ ID,UUID,VERSION_NUMBER,FK_REF_FAILURE_CLASSIFICATION,FK_REF_FAILURE_TYPE,TITLE,DESCRIPTION,RESPONSIBILITY,INTERN_EXTERN,FK_REF_STATUS_INTERN,FK_REF_STATUS_EXTERN,FK_REF_BRANCH,VOLTAGE_LEVEL,PRESSURE_LEVEL,FAILURE_BEGIN,FAILURE_END_PLANNED,FAILURE_END_RESUPPLIED,INTERNAL_REMARK,POSTCODE,CITY,DISTRICT,STREET,HOUSENUMBER,STATION_ID,STATION_DESCRIPTION,STATION_COORDS,FK_REF_RADIUS,LONGITUDE,LATITUDE,FK_TBL_FAILURE_INFORMATION_CONDENSED,CONDENSED,CONDENSED_COUNT,OBJECT_REFERENCE_EXTERNAL_SYSTEM,PUBLICATION_STATUS,PUBLICATION_FREETEXT,FK_REF_EXPECTED_REASON,CREATE_DATE,CREATE_USER,MOD_DATE,MOD_USER,
HACTION,
HDATE,
HUSER
)
VALUES (
- NEW.ID,NEW.UUID,NEW.VERSION_NUMBER,NEW.FK_REF_FAILURE_CLASSIFICATION,NEW.TITLE,NEW.DESCRIPTION,NEW.RESPONSIBILITY,NEW.INTERN_EXTERN,NEW.FK_REF_STATUS_INTERN,NEW.FK_REF_STATUS_EXTERN,NEW.FK_REF_BRANCH,NEW.VOLTAGE_LEVEL,NEW.PRESSURE_LEVEL,NEW.FAILURE_BEGIN,NEW.FAILURE_END_PLANNED,NEW.FAILURE_END_RESUPPLIED,NEW.POSTCODE,NEW.CITY,NEW.DISTRICT,NEW.STREET,NEW.HOUSENUMBER,NEW.STATION_ID,NEW.STATION_DESCRIPTION,NEW.STATION_COORDS,NEW.FK_REF_RADIUS,NEW.LONGITUDE,NEW.LATITUDE,NEW.FK_TBL_FAILURE_INFORMATION_CONDENSED,NEW.CONDENSED,NEW.CONDENSED_COUNT,NEW.OBJECT_REFERENCE_EXTERNAL_SYSTEM,NEW.PUBLICATION_STATUS,NEW.PUBLICATION_FREETEXT,NEW.FK_REF_EXPECTED_REASON,NEW.CREATE_DATE,NEW.CREATE_USER,NEW.MOD_DATE,NEW.MOD_USER,
+ NEW.ID,NEW.UUID,NEW.VERSION_NUMBER,NEW.FK_REF_FAILURE_CLASSIFICATION,NEW.FK_REF_FAILURE_TYPE,NEW.TITLE,NEW.DESCRIPTION,NEW.RESPONSIBILITY,NEW.INTERN_EXTERN,NEW.FK_REF_STATUS_INTERN,NEW.FK_REF_STATUS_EXTERN,NEW.FK_REF_BRANCH,NEW.VOLTAGE_LEVEL,NEW.PRESSURE_LEVEL,NEW.FAILURE_BEGIN,NEW.FAILURE_END_PLANNED,NEW.FAILURE_END_RESUPPLIED,NEW.INTERNAL_REMARK,NEW.POSTCODE,NEW.CITY,NEW.DISTRICT,NEW.STREET,NEW.HOUSENUMBER,NEW.STATION_ID,NEW.STATION_DESCRIPTION,NEW.STATION_COORDS,NEW.FK_REF_RADIUS,NEW.LONGITUDE,NEW.LATITUDE,NEW.FK_TBL_FAILURE_INFORMATION_CONDENSED,NEW.CONDENSED,NEW.CONDENSED_COUNT,NEW.OBJECT_REFERENCE_EXTERNAL_SYSTEM,NEW.PUBLICATION_STATUS,NEW.PUBLICATION_FREETEXT,NEW.FK_REF_EXPECTED_REASON,NEW.CREATE_DATE,NEW.CREATE_USER,NEW.MOD_DATE,NEW.MOD_USER,
2,
current_timestamp,
NEW.MOD_USER
@@ -765,14 +807,14 @@
IF TG_OP = 'DELETE' THEN
INSERT INTO HTBL_FAILURE_INFORMATION (
- ID,UUID,VERSION_NUMBER,FK_REF_FAILURE_CLASSIFICATION,TITLE,DESCRIPTION,RESPONSIBILITY,INTERN_EXTERN,FK_REF_STATUS_INTERN,FK_REF_STATUS_EXTERN,FK_REF_BRANCH,VOLTAGE_LEVEL,PRESSURE_LEVEL,FAILURE_BEGIN,FAILURE_END_PLANNED,FAILURE_END_RESUPPLIED,POSTCODE,CITY,DISTRICT,STREET,HOUSENUMBER,STATION_ID,STATION_DESCRIPTION,STATION_COORDS,FK_REF_RADIUS,LONGITUDE,LATITUDE,FK_TBL_FAILURE_INFORMATION_CONDENSED,CONDENSED,CONDENSED_COUNT,OBJECT_REFERENCE_EXTERNAL_SYSTEM,PUBLICATION_STATUS,PUBLICATION_FREETEXT,FK_REF_EXPECTED_REASON,CREATE_DATE,CREATE_USER,MOD_DATE,MOD_USER,
+ ID,UUID,VERSION_NUMBER,FK_REF_FAILURE_CLASSIFICATION,FK_REF_FAILURE_TYPE,TITLE,DESCRIPTION,RESPONSIBILITY,INTERN_EXTERN,FK_REF_STATUS_INTERN,FK_REF_STATUS_EXTERN,FK_REF_BRANCH,VOLTAGE_LEVEL,PRESSURE_LEVEL,FAILURE_BEGIN,FAILURE_END_PLANNED,FAILURE_END_RESUPPLIED,INTERNAL_REMARK,POSTCODE,CITY,DISTRICT,STREET,HOUSENUMBER,STATION_ID,STATION_DESCRIPTION,STATION_COORDS,FK_REF_RADIUS,LONGITUDE,LATITUDE,FK_TBL_FAILURE_INFORMATION_CONDENSED,CONDENSED,CONDENSED_COUNT,OBJECT_REFERENCE_EXTERNAL_SYSTEM,PUBLICATION_STATUS,PUBLICATION_FREETEXT,FK_REF_EXPECTED_REASON,CREATE_DATE,CREATE_USER,MOD_DATE,MOD_USER,
HACTION,
HDATE,
HUSER
)
VALUES (
- OLD.ID,OLD.UUID,OLD.VERSION_NUMBER,OLD.FK_REF_FAILURE_CLASSIFICATION,OLD.TITLE,OLD.DESCRIPTION,OLD.RESPONSIBILITY,OLD.INTERN_EXTERN,OLD.FK_REF_STATUS_INTERN,OLD.FK_REF_STATUS_EXTERN,OLD.FK_REF_BRANCH,OLD.VOLTAGE_LEVEL,OLD.PRESSURE_LEVEL,OLD.FAILURE_BEGIN,OLD.FAILURE_END_PLANNED,OLD.FAILURE_END_RESUPPLIED,OLD.POSTCODE,OLD.CITY,OLD.DISTRICT,OLD.STREET,OLD.HOUSENUMBER,OLD.STATION_ID,OLD.STATION_DESCRIPTION,OLD.STATION_COORDS,OLD.FK_REF_RADIUS,OLD.LONGITUDE,OLD.LATITUDE,OLD.FK_TBL_FAILURE_INFORMATION_CONDENSED,OLD.CONDENSED,OLD.CONDENSED_COUNT,OLD.OBJECT_REFERENCE_EXTERNAL_SYSTEM,OLD.PUBLICATION_STATUS,OLD.PUBLICATION_FREETEXT,OLD.FK_REF_EXPECTED_REASON,OLD.CREATE_DATE,OLD.CREATE_USER,OLD.MOD_DATE,OLD.MOD_USER,
+ OLD.ID,OLD.UUID,OLD.VERSION_NUMBER,OLD.FK_REF_FAILURE_CLASSIFICATION,OLD.FK_REF_FAILURE_TYPE,OLD.TITLE,OLD.DESCRIPTION,OLD.RESPONSIBILITY,OLD.INTERN_EXTERN,OLD.FK_REF_STATUS_INTERN,OLD.FK_REF_STATUS_EXTERN,OLD.FK_REF_BRANCH,OLD.VOLTAGE_LEVEL,OLD.PRESSURE_LEVEL,OLD.FAILURE_BEGIN,OLD.FAILURE_END_PLANNED,OLD.FAILURE_END_RESUPPLIED,OLD.INTERNAL_REMARK,OLD.POSTCODE,OLD.CITY,OLD.DISTRICT,OLD.STREET,OLD.HOUSENUMBER,OLD.STATION_ID,OLD.STATION_DESCRIPTION,OLD.STATION_COORDS,OLD.FK_REF_RADIUS,OLD.LONGITUDE,OLD.LATITUDE,OLD.FK_TBL_FAILURE_INFORMATION_CONDENSED,OLD.CONDENSED,OLD.CONDENSED_COUNT,OLD.OBJECT_REFERENCE_EXTERNAL_SYSTEM,OLD.PUBLICATION_STATUS,OLD.PUBLICATION_FREETEXT,OLD.FK_REF_EXPECTED_REASON,OLD.CREATE_DATE,OLD.CREATE_USER,OLD.MOD_DATE,OLD.MOD_USER,
3,
current_timestamp,
diff --git a/gfsBackendService/src/main/resources/db/migration/V0_x30__CREATE_GFI_DB.sql b/gfsBackendService/src/main/resources/db/migration/V0_35__CREATE_GFI_DB.sql
similarity index 97%
rename from gfsBackendService/src/main/resources/db/migration/V0_x30__CREATE_GFI_DB.sql
rename to gfsBackendService/src/main/resources/db/migration/V0_35__CREATE_GFI_DB.sql
index f870d7b..c0add31 100644
--- a/gfsBackendService/src/main/resources/db/migration/V0_x30__CREATE_GFI_DB.sql
+++ b/gfsBackendService/src/main/resources/db/migration/V0_35__CREATE_GFI_DB.sql
@@ -50,8 +50,8 @@
DROP TABLE IF EXISTS public.TBL_FAILURE_INFORMATION_DISTRIBUTION_GROUP CASCADE;
DROP SEQUENCE IF EXISTS public.TBL_FAILURE_INFORMATION_DISTRIBUTION_GROUP_ID_SEQ;
-DROP TABLE IF EXISTS public.TBL_FAILURE_INFORMATION_STATION CASCADE;
-DROP SEQUENCE IF EXISTS public.TBL_FAILURE_INFORMATION_STATION_ID_SEQ;
+DROP TABLE IF EXISTS public.TBL_FAILURE_INFORMATION_PUBLICATION_CHANNEL;
+DROP SEQUENCE IF EXISTS public.TBL_FAILURE_INFORMATION_PUBLICATION_CHANNEL_SEQ
-- ---------------------------------------------
-- TABLE VERSION
@@ -132,7 +132,6 @@
INSERT INTO public.REF_FAILURE_CLASSIFICATION (UUID, CLASSIFICATION, DESCRIPTION) VALUES ( '9255fb79-c57a-4448-a69c-5d57994f0c91', 'Störung', NULL );
INSERT INTO public.REF_FAILURE_CLASSIFICATION (UUID, CLASSIFICATION, DESCRIPTION) VALUES ( '8ec1e144-5230-4d43-a3df-f62dd64bb855', 'geplante Maßnahme', NULL );
-
-- ---------------------------------------------
-- TABLE REF_BRANCH
-- ---------------------------------------------
@@ -458,37 +457,42 @@
INSERT INTO public.tbl_failure_information_distribution_group(FK_TBL_FAILURE_INFORMATION, FK_TBL_DISTRIBUTION_GROUP)
VALUES(2, 2);
+
-- ---------------------------------------------
--- TABLE TBL_FAILURE_INFORMATION_STATION
+-- TABLE TBL_FAILURE_INFORMATION_PUBLICATION_CHANNEL
-- ---------------------------------------------
-CREATE SEQUENCE public.tbl_failure_information_station_id_seq
+
+CREATE SEQUENCE public.tbl_failure_information_publication_channel_seq
INCREMENT 1
MINVALUE 1
MAXVALUE 9223372036854775807
START 1
CACHE 1;
-ALTER TABLE public.tbl_failure_information_station_id_seq
+ALTER TABLE public.tbl_failure_information_publication_channel_seq
OWNER TO gfi_service;
-CREATE TABLE public.tbl_failure_information_station
+
+CREATE TABLE public.tbl_failure_information_publication_channel
(
- id integer NOT NULL DEFAULT nextval('tbl_failure_information_station_id_seq'::regclass),
+ id integer NOT NULL DEFAULT nextval('tbl_failure_information_publication_channel_seq'::regclass),
fk_tbl_failure_information integer NOT NULL,
- fk_tbl_station integer NOT NULL,
- CONSTRAINT tbl_failure_information_station_pkey PRIMARY KEY (id),
- CONSTRAINT tbl_fail_inf_station__failure_information_id_fkey FOREIGN KEY (fk_tbl_failure_information)
+ publication_channel character varying(50) NOT NULL,
+ published boolean NOT NULL,
+ CONSTRAINT tbl_failure_information_publication_channel_pkey PRIMARY KEY (id),
+ CONSTRAINT tbl_failure_information_id_fkey FOREIGN KEY (fk_tbl_failure_information)
REFERENCES public.tbl_failure_information (id) MATCH SIMPLE
- ON UPDATE NO ACTION ON DELETE NO ACTION,
- CONSTRAINT tbl_fail_inf_station__station_fkey FOREIGN KEY (fk_tbl_station)
- REFERENCES public.tbl_station (id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
-)
-WITH (
- OIDS=FALSE
);
-ALTER TABLE public.tbl_failure_information_station
- OWNER TO gfi_service;
-GRANT ALL ON TABLE public.tbl_failure_information_station TO gfi_service;
+
+ALTER TABLE public.tbl_failure_information_publication_channel
+ OWNER TO postgres;
+GRANT ALL ON TABLE public.tbl_failure_information_publication_channel TO gfi_service;
+
+INSERT INTO public.tbl_failure_information_publication_channel(FK_TBL_FAILURE_INFORMATION, PUBLICATION_CHANNEL, PUBLISHED)
+VALUES(1, 'MAIL', false);
+
+
+
-- ----------------------------------------------------------------------------
-- ----------------------------------------------------------------------------
diff --git a/gfsBackendService/src/main/resources/messages.properties b/gfsBackendService/src/main/resources/messages.properties
index 9354f78..565883d 100644
--- a/gfsBackendService/src/main/resources/messages.properties
+++ b/gfsBackendService/src/main/resources/messages.properties
@@ -12,6 +12,7 @@
station.id.not.existing=Die \u00fcbergebene Id einer Station existiert nicht.
no.addresses.for.station.id = Für die in der Störungsmeldung angegebene Station existieren keine Adressen.
no.station.id.available=In der \u00fcbergebenen Störungsmeldung ist keine Station angegeben.
-could.not.push.mail=Die \u00fcbergebene Störungsmeldung konnte nicht an die Mail-Queue übergeben werden.
+could.not.push.rabbitMqMessage =Die \u00fcbergebene Störungsmeldung konnte nicht an RabbitMq übergeben werden.
+channel.not.existing=der \u00fcbergebene Kanal f\u00fcr den Versand einer Nachricht existiert nicht.
diff --git a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/StorePublishStatusTaskTest.java b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/StorePublishStatusTaskTest.java
new file mode 100644
index 0000000..debb85a
--- /dev/null
+++ b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/StorePublishStatusTaskTest.java
@@ -0,0 +1,100 @@
+/*
+ *******************************************************************************
+ * Copyright (c) 2018 Contributors to the Eclipse Foundation
+ *
+ * See the NOTICE file(s) distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *******************************************************************************
+ */
+
+package org.eclipse.openk.gridfailureinformation.bpmn.impl;
+
+import org.eclipse.openk.gridfailureinformation.bpmn.base.ProcessException;
+import org.eclipse.openk.gridfailureinformation.bpmn.impl.tasks.ProcessHelper;
+import org.eclipse.openk.gridfailureinformation.bpmn.impl.tasks.StorePublishStatusTask;
+import org.eclipse.openk.gridfailureinformation.config.TestConfiguration;
+import org.eclipse.openk.gridfailureinformation.constants.Constants;
+import org.eclipse.openk.gridfailureinformation.model.RefStatus;
+import org.eclipse.openk.gridfailureinformation.model.TblAddress;
+import org.eclipse.openk.gridfailureinformation.model.TblFailureInformation;
+import org.eclipse.openk.gridfailureinformation.model.TblStation;
+import org.eclipse.openk.gridfailureinformation.repository.AddressRepository;
+import org.eclipse.openk.gridfailureinformation.repository.FailureInformationRepository;
+import org.eclipse.openk.gridfailureinformation.repository.StationRepository;
+import org.eclipse.openk.gridfailureinformation.repository.StatusRepository;
+import org.eclipse.openk.gridfailureinformation.service.FailureInformationService;
+import org.eclipse.openk.gridfailureinformation.support.MockDataHelper;
+import org.eclipse.openk.gridfailureinformation.viewmodel.FailureInformationDto;
+import org.junit.jupiter.api.Test;
+import org.mockito.stubbing.Answer;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
+import org.springframework.boot.test.mock.mockito.MockBean;
+import org.springframework.test.context.ContextConfiguration;
+
+import java.util.List;
+import java.util.Optional;
+import java.util.UUID;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.Mockito.when;
+
+@DataJpaTest
+@ContextConfiguration(classes = {TestConfiguration.class})
+public class StorePublishStatusTaskTest {
+
+
+ @Qualifier("myFailureInformationService")
+ @Autowired
+ private FailureInformationService failureInformationService;
+
+ @MockBean
+ private ProcessHelper processHelper;
+ @MockBean
+ private StatusRepository statusRepository;
+ @MockBean
+ private FailureInformationRepository failureInformationRepository;
+ @MockBean
+ private StationRepository stationRepository;
+ @MockBean
+ private AddressRepository addressRepository;
+
+ @Test
+ public void shouldSetCorrectStatusOnLeaveStep() throws ProcessException {
+ RefStatus refStatus = MockDataHelper.mockRefStatus();
+
+ FailureInformationDto fiDto = MockDataHelper.mockFailureInformationDto();
+ fiDto.setStatusInternId(UUID.randomUUID());
+
+ TblFailureInformation fiTbl = MockDataHelper.mockTblFailureInformation();
+ fiTbl.setId(777L);
+ TblStation tblStation = MockDataHelper.mockTblStation();
+ List<TblAddress> addressList = MockDataHelper.mockTblAddressList();
+
+ when(processHelper.getProcessStateFromStatusUuid(any( UUID.class ))).thenReturn(GfiProcessState.CANCELED);
+ when(statusRepository.findByUuid(any( UUID.class ))).thenReturn(Optional.of(refStatus));
+ when(failureInformationRepository.findByUuid(any(UUID.class))).thenReturn(Optional.of(fiTbl));
+ when(stationRepository.findByStationId(anyString())).thenReturn(Optional.of(tblStation));
+ when(addressRepository.findByStationId(anyString())).thenReturn(addressList);
+ when( processHelper.storeFailureFromViewModel(any(FailureInformationDto.class)))
+ .then((Answer<FailureInformationDto>) invocation -> {
+ Object[] args = invocation.getArguments();
+ return (FailureInformationDto) args[0];
+ });
+
+ fiTbl.setPublicationStatus("nothing");
+ StorePublishStatusTask testTask = new StorePublishStatusTask(Constants.PUB_STATUS_VEROEFFENTLICHT);
+ GfiProcessSubject subject = GfiProcessSubject.of(fiDto, processHelper);
+ testTask.leaveStep(subject);
+ assertEquals(Constants.PUB_STATUS_VEROEFFENTLICHT, subject.getFailureInformationDto().getPublicationStatus());
+ }
+}
diff --git a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/config/TestConfiguration.java b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/config/TestConfiguration.java
index 4d74dc8..c184ce9 100644
--- a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/config/TestConfiguration.java
+++ b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/config/TestConfiguration.java
@@ -21,28 +21,31 @@
import org.eclipse.openk.gridfailureinformation.bpmn.impl.GfiGrid;
import org.eclipse.openk.gridfailureinformation.bpmn.impl.GfiProcessEnvironment;
import org.eclipse.openk.gridfailureinformation.bpmn.impl.tasks.ProcessHelper;
+import org.eclipse.openk.gridfailureinformation.config.rabbitMq.RabbitMqConfig;
+import org.eclipse.openk.gridfailureinformation.config.rabbitMq.RabbitMqProperties;
import org.eclipse.openk.gridfailureinformation.mapper.*;
import org.eclipse.openk.gridfailureinformation.service.*;
import org.eclipse.openk.gridfailureinformation.util.ImportDataValidator;
import org.mockito.Mockito;
+import org.springframework.amqp.core.DirectExchange;
+import org.springframework.amqp.rabbit.connection.ConnectionFactory;
+import org.springframework.amqp.rabbit.core.RabbitAdmin;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.boot.test.context.ConfigFileApplicationContextInitializer;
import org.springframework.context.annotation.Bean;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
-import org.springframework.integration.channel.DirectChannel;
-import org.springframework.messaging.MessageChannel;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.TestPropertySource;
+import static org.mockito.Mockito.when;
+
@EnableJpaRepositories(basePackages = "org.eclipse.openk.gridfailureinformation")
@EntityScan(basePackageClasses = GridFailureInformationApplication.class)
@ContextConfiguration( initializers = {ConfigFileApplicationContextInitializer.class})
@TestPropertySource("spring.config.location=classpath:application.yml")
public class TestConfiguration {
- @Bean
- FESettingsMapper feSettingsMapper(){return new FESettingsMapperImpl();}
@Bean
SettingsService settingsService(){return new SettingsService();}
@@ -51,9 +54,13 @@
FESettings fESettings(){return new FESettings();}
@Bean
- public RabbitTemplate rabbitTemplate() {
- return Mockito.mock(RabbitTemplate.class);
- }
+ @Qualifier("exchange")
+ public DirectExchange exchange(){return Mockito.mock(DirectExchange.class);}
+
+ @Bean
+ @Qualifier("rabbitAdmin")
+ public RabbitAdmin rabbitAdmin(){return Mockito.mock(RabbitAdmin.class);}
+
@Bean
@Qualifier("rabbitMqConfig")
@@ -62,8 +69,26 @@
}
@Bean
- @Qualifier("mailExportChannel")
- MessageChannel mailExportChannel() { return Mockito.mock(DirectChannel.class); }
+ @Qualifier("rabbitTemplate")
+ public RabbitTemplate rabbitTemplate(){
+
+ RabbitTemplate rt = Mockito.mock(RabbitTemplate.class);
+ ConnectionFactory cf = Mockito.mock(ConnectionFactory.class);
+ //rt.setConnectionFactory(cf);
+
+ when(rt.getConnectionFactory()).thenReturn(cf);
+
+ return rt;
+
+ }
+
+ @Bean
+ @Qualifier("rabbitMqProperties")
+ public RabbitMqProperties rabbitMqProperties() {
+ return Mockito.mock(RabbitMqProperties.class);
+ }
+
+
@Bean
ResourceConfig resourceConfig(){return new ResourceConfig();}
diff --git a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/controller/FailureInformationControllerTest.java b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/controller/FailureInformationControllerTest.java
index 29c7bff..f85cc79 100644
--- a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/controller/FailureInformationControllerTest.java
+++ b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/controller/FailureInformationControllerTest.java
@@ -40,7 +40,7 @@
import static org.hamcrest.Matchers.is;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.when;
+import static org.mockito.Mockito.*;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
@@ -96,9 +96,23 @@
.contentType(MediaType.APPLICATION_JSON)
.content(new ObjectMapper().writeValueAsString(failureInfoDto)))
.andExpect(status().is2xxSuccessful());
+
+ verify(failureInformationService, times(1)).updateFailureInfo(eq(failureInfoDto));
}
+ @Test
+ public void shouldUpdateFailureInformationForPublish() throws Exception {
+ FailureInformationDto failureInfoDto = MockDataHelper.mockFailureInformationDto();
+
+ mockMvc.perform(put("/grid-failure-informations/{failureInfoUuid}?saveForPublish=true", failureInfoDto.getUuid().toString())
+ .contentType(MediaType.APPLICATION_JSON)
+ .content(new ObjectMapper().writeValueAsString(failureInfoDto)))
+ .andExpect(status().is2xxSuccessful());
+
+ verify(failureInformationService, times(1)).updateAndPublish(eq(failureInfoDto));
+ }
+
@Test
public void shouldNotUpdateFailureInformationDueToException() throws Exception {
diff --git a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/controller/FailureInformationStationControllerTest.java b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/controller/FailureInformationStationControllerTest.java
index 64b08b4..ea5c553 100644
--- a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/controller/FailureInformationStationControllerTest.java
+++ b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/controller/FailureInformationStationControllerTest.java
@@ -61,15 +61,15 @@
@Test
public void shouldAssignStationToFailureInfo() throws Exception {
- FailureInformationStationDto failureInfoGroupDto = MockDataHelper.mockFailureInformationStationDto();
+ FailureInformationStationDto failureInfoStationDto = MockDataHelper.mockFailureInformationStationDto();
- when( failureInformationStationService.insertFailureInfoStation(any(UUID.class), any(StationDto.class))).thenReturn(failureInfoGroupDto);
+ when( failureInformationStationService.insertFailureInfoStation(any(UUID.class), any(StationDto.class))).thenReturn(failureInfoStationDto);
mockMvc.perform(post("/grid-failure-informations/" + UUID.randomUUID().toString() + "/stations")
.contentType(MediaType.APPLICATION_JSON)
- .content(new ObjectMapper().writeValueAsString(failureInfoGroupDto)))
- .andExpect(jsonPath("$.failureInformationId", is(failureInfoGroupDto.getFailureInformationId().intValue())))
- .andExpect(jsonPath("$.stationId", is(failureInfoGroupDto.getStationId().intValue())))
+ .content(new ObjectMapper().writeValueAsString(failureInfoStationDto)))
+ .andExpect(jsonPath("$.failureInformationId", is(failureInfoStationDto.getFailureInformationId().intValue())))
+ .andExpect(jsonPath("$.stationStationId", is(failureInfoStationDto.getStationStationId())))
.andExpect(status().is2xxSuccessful());
}
diff --git a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/service/DistributionTextPlacehoderServiceTest.java b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/service/DistributionTextPlacehoderServiceTest.java
index de80009..ad83170 100644
--- a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/service/DistributionTextPlacehoderServiceTest.java
+++ b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/service/DistributionTextPlacehoderServiceTest.java
@@ -38,7 +38,6 @@
DistributionTextPlaceholderDto placeholderDto = placeholderService.getPlaceholder();
assertEquals("$Klassifikation$", placeholderDto.getFailureClassification());
- assertEquals("$Typ$", placeholderDto.getFailureType());
assertEquals("$Zuständigkeit$", placeholderDto.getResponsibility());
assertEquals("$Spannungsebene$", placeholderDto.getVoltageLevel());
assertEquals("$Störungsbeginn_gemeldet$", placeholderDto.getFailureBegin());
diff --git a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/service/ExportServiceTest.java b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/service/ExportServiceTest.java
index 4f030c3..a35175c 100644
--- a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/service/ExportServiceTest.java
+++ b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/service/ExportServiceTest.java
@@ -14,38 +14,27 @@
*/
package org.eclipse.openk.gridfailureinformation.service;
-import org.eclipse.openk.gridfailureinformation.bpmn.impl.GfiProcessState;
import org.eclipse.openk.gridfailureinformation.config.TestConfiguration;
-import org.eclipse.openk.gridfailureinformation.exceptions.InternalServerErrorException;
import org.eclipse.openk.gridfailureinformation.mapper.FailureInformationMapper;
import org.eclipse.openk.gridfailureinformation.model.TblDistributionGroup;
-import org.eclipse.openk.gridfailureinformation.model.TblDistributionGroupMember;
import org.eclipse.openk.gridfailureinformation.model.TblFailureInformation;
import org.eclipse.openk.gridfailureinformation.repository.DistributionGroupMemberRepository;
import org.eclipse.openk.gridfailureinformation.repository.FailureInformationRepository;
import org.eclipse.openk.gridfailureinformation.support.MockDataHelper;
-import org.eclipse.openk.gridfailureinformation.util.ImportDataValidator;
-import org.eclipse.openk.gridfailureinformation.viewmodel.*;
+import org.eclipse.openk.gridfailureinformation.viewmodel.DistributionGroupMemberDto;
import org.junit.jupiter.api.Test;
-import org.mockito.InjectMocks;
-import org.mockito.Mock;
-import org.mockito.Mockito;
-import org.mockito.Spy;
-import org.mockito.stubbing.Answer;
-import org.powermock.reflect.Whitebox;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.messaging.Message;
import org.springframework.messaging.MessageChannel;
-import org.springframework.messaging.support.MessageBuilder;
import org.springframework.test.context.ContextConfiguration;
-import java.math.BigDecimal;
-import java.util.*;
+import java.util.List;
+import java.util.Optional;
+import java.util.UUID;
-import static org.junit.jupiter.api.Assertions.*;
+import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.mockito.Mockito.*;
@DataJpaTest
@@ -75,29 +64,31 @@
@Autowired
private ExportService exportService;
- @Test
- public void shouldExportFailureInfoAsMails() throws Exception {
-
- ExportService exportServiceLocal = spy(exportService);
-
- TblFailureInformation tblFailureInformation = MockDataHelper.mockTblFailureInformation();
- List<TblDistributionGroup> listTblDistributionGroups= MockDataHelper.mockDistributionGroupList();
- tblFailureInformation.setDistributionGroups(listTblDistributionGroups);
- List<DistributionGroupMemberDto> listTblDistributionGroupMemberDtos = MockDataHelper.mockDistributionGroupMemberDtoList();
-
- when (failureInformationRepository.findByUuid( any(UUID.class))).thenReturn(Optional.of(tblFailureInformation));
- when(distributionGroupMemberService.getMembersByGroupId(any(UUID.class))).thenReturn(listTblDistributionGroupMemberDtos);
- doNothing().when(exportServiceLocal).checkExchangeAndQueueOnRabbitMq();
- when(mailExportChannel.send(any(Message.class))).thenReturn(true);
-
- String[] channels = {"MAIL"};
-
- boolean isMailPushed = exportServiceLocal.exportFailureInformation(UUID.randomUUID(), channels);
-
- Mockito.verify(mailExportChannel, times(2)).send(any(Message.class));
- assertTrue(isMailPushed);
-
- }
+// @Test
+// public void shouldExportFailureInfoAsMail() throws Exception {
+//
+// ExportService exportServiceLocal = spy(exportService);
+//
+// TblFailureInformation tblFailureInformation = MockDataHelper.mockTblFailureInformation();
+// List<TblDistributionGroup> listTblDistributionGroups= MockDataHelper.mockDistributionGroupList();
+// RabbitMqChannel rabbitMqChannel = MockDataHelper.mockRabbitMqChannel();
+// tblFailureInformation.setDistributionGroups(listTblDistributionGroups);
+// List<DistributionGroupMemberDto> listTblDistributionGroupMemberDtos = MockDataHelper.mockDistributionGroupMemberDtoList();
+//
+// when (failureInformationRepository.findByUuid( any(UUID.class))).thenReturn(Optional.of(tblFailureInformation));
+// when(distributionGroupMemberService.getMembersByGroupId(any(UUID.class))).thenReturn(listTblDistributionGroupMemberDtos);
+// doNothing().when(exportServiceLocal).checkExchangeAndQueueOnRabbitMq(anyString(), anyString());
+// doReturn(rabbitMqChannel).when(exportServiceLocal.getAvailableRabbitMqChannel(anyString()));
+// when(mailExportChannel.send(any(Message.class))).thenReturn(true);
+//
+// String[] channels = {"MAIL"};
+//
+// boolean isMailPushed = exportServiceLocal.exportFailureInformation(UUID.randomUUID(), channels);
+//
+// Mockito.verify(mailExportChannel, times(2)).send(any(Message.class));
+// assertTrue(isMailPushed);
+//
+// }
@Test
public void shouldNotExportFailureInfoAsMails_noDistributionGroups() throws Exception {
@@ -111,7 +102,7 @@
when (failureInformationRepository.findByUuid( any(UUID.class))).thenReturn(Optional.of(tblFailureInformation));
when(distributionGroupMemberService.getMembersByGroupId(any(UUID.class))).thenReturn(listTblDistributionGroupMemberDtos);
- doNothing().when(exportServiceLocal).checkExchangeAndQueueOnRabbitMq();
+ doNothing().when(exportServiceLocal).checkExchangeAndQueueOnRabbitMq(anyString(), anyString());
when(mailExportChannel.send(any(Message.class))).thenReturn(true);
String[] channels = {"MAIL"};
@@ -137,7 +128,7 @@
when (failureInformationRepository.findByUuid( any(UUID.class))).thenReturn(Optional.of(tblFailureInformation));
when(distributionGroupMemberService.getMembersByGroupId(any(UUID.class))).thenReturn(listTblDistributionGroupMemberDtos);
- doNothing().when(exportServiceLocal).checkExchangeAndQueueOnRabbitMq();
+ doNothing().when(exportServiceLocal).checkExchangeAndQueueOnRabbitMq(anyString(), anyString());
when(mailExportChannel.send(any(Message.class))).thenReturn(true);
String[] channels = {"MAIL"};
@@ -163,7 +154,7 @@
when (failureInformationRepository.findByUuid( any(UUID.class))).thenReturn(Optional.of(tblFailureInformation));
when(distributionGroupMemberService.getMembersByGroupId(any(UUID.class))).thenReturn(listTblDistributionGroupMemberDtos);
- doNothing().when(exportServiceLocal).checkExchangeAndQueueOnRabbitMq();
+ doNothing().when(exportServiceLocal).checkExchangeAndQueueOnRabbitMq(anyString(), anyString());
when(mailExportChannel.send(any(Message.class))).thenReturn(true);
String[] channels = {"TEST", "TEST2"};
diff --git a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/service/FailureInformationServiceTest.java b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/service/FailureInformationServiceTest.java
index 736cc95..983212a 100644
--- a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/service/FailureInformationServiceTest.java
+++ b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/service/FailureInformationServiceTest.java
@@ -34,10 +34,7 @@
import org.springframework.test.context.ContextConfiguration;
import java.sql.Date;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Optional;
-import java.util.UUID;
+import java.util.*;
import static org.junit.jupiter.api.Assertions.*;
import static org.mockito.ArgumentMatchers.*;
@@ -235,7 +232,63 @@
assertEquals(fiTbl.getStationCoords(), savedDto.getStationCoords());
assertEquals(fiTbl.getLongitude(), savedDto.getLongitude());
assertEquals(fiTbl.getLatitude(), savedDto.getLatitude());
- assertEquals(5, savedDto.getAddressPolygonPoints().size());
+// assertEquals(5, savedDto.getAddressPolygonPoints().size()); _fd reverseMapping of stations
+ }
+
+ @Test
+ public void shouldUpdateFailureInformation_updateChannels1() {
+
+ FailureInformationDto fiDto = MockDataHelper.mockFailureInformationDto();
+ LinkedList<String> channelList = new LinkedList<String>();
+ channelList.add("MOCKXX"); //neuer Channel entspricht keinem bereits existierendem Channel
+ channelList.add("MOCKYY"); //neuer Channel entspricht keinem bereits existierendem Channel
+ fiDto.setPublicationChannels(channelList);
+
+ TblFailureInformation tblFi = MockDataHelper.mockTblFailureInformation();
+ TblFailureInformation existingTblFi = MockDataHelper.mockTblFailureInformation();
+
+ TblFailureInformationPublicationChannel tblFailureInformationPublicationChannel1 = MockDataHelper.mockTblFailureInformationPublicationChannel();
+ TblFailureInformationPublicationChannel tblFailureInformationPublicationChannel2 = MockDataHelper.mockTblFailureInformationPublicationChannel2();
+
+ List<TblFailureInformationPublicationChannel> rmqChannels = new LinkedList<>();
+ rmqChannels.add(tblFailureInformationPublicationChannel1);
+ rmqChannels.add(tblFailureInformationPublicationChannel2);
+ existingTblFi.setPublicationChannelList(rmqChannels);
+
+ when( failureInformationRepository.findByUuid(any(UUID.class))).thenReturn(Optional.of(existingTblFi));
+
+ failureInformationService.updatePublicationChannels(fiDto, tblFi);
+
+ assertEquals(4, tblFi.getPublicationChannelList().size()); //zu den zwei bereits existierenden Channels kommen zwei weitere hinzu
+
+ }
+
+ @Test
+ public void shouldUpdateFailureInformation_updateChannels2() {
+
+ FailureInformationDto fiDto = MockDataHelper.mockFailureInformationDto();
+ LinkedList<String> channelList = new LinkedList<String>();
+ channelList.add("MOCKMAIL"); // neuer Channel entspricht einem bereits existierendem Channel
+ channelList.add("MOCKSMS"); // neuer Channel entspricht einem bereits existierendem Channel
+ fiDto.setPublicationChannels(channelList);
+
+ TblFailureInformation tblFi = MockDataHelper.mockTblFailureInformation();
+ TblFailureInformation existingTblFi = MockDataHelper.mockTblFailureInformation();
+
+ TblFailureInformationPublicationChannel tblFailureInformationPublicationChannel1 = MockDataHelper.mockTblFailureInformationPublicationChannel();
+ TblFailureInformationPublicationChannel tblFailureInformationPublicationChannel2 = MockDataHelper.mockTblFailureInformationPublicationChannel2();
+
+ List<TblFailureInformationPublicationChannel> rmqChannels = new LinkedList<>();
+ rmqChannels.add(tblFailureInformationPublicationChannel1);
+ rmqChannels.add(tblFailureInformationPublicationChannel2);
+ existingTblFi.setPublicationChannelList(rmqChannels);
+
+ when( failureInformationRepository.findByUuid(any(UUID.class))).thenReturn(Optional.of(existingTblFi));
+
+ failureInformationService.updatePublicationChannels(fiDto, tblFi);
+
+ assertEquals(2, tblFi.getPublicationChannelList().size()); //es bleibt bei den bereits existierenden 2 Channels
+
}
@Test
@@ -435,7 +488,7 @@
TblDistributionGroup tblDistributionGroup = MockDataHelper.mockTblDistributionGroup();
when(statusRepository.findById(anyLong())).thenReturn(Optional.of(refStatus));
- when(failureInformationRepository.findByUuid(any(UUID.class))).thenReturn(Optional.of(fiTbl));
+ when(failureInformationRepository.findByUuid(any(UUID.class))).thenReturn(Optional.of(fiTbl), Optional.of(fiTbl));
when(branchRepository.findByUuid(any(UUID.class))).thenReturn(Optional.of(refBranch));
when(failureClassificationRepository.findByUuid(any(UUID.class))).thenReturn(Optional.of(refFailureClassification));
when(statusRepository.findByUuid(any(UUID.class))).thenReturn(Optional.of(refStatus));
diff --git a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/service/FailureInformationStationServiceTest.java b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/service/FailureInformationStationServiceTest.java
index 1df0bb4..66e026c 100644
--- a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/service/FailureInformationStationServiceTest.java
+++ b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/service/FailureInformationStationServiceTest.java
@@ -93,8 +93,8 @@
FailureInformationStationDto savedDto = failureInformationStationService.insertFailureInfoStation(UUID.randomUUID(), stationDto);
- assertNotNull(savedDto.getStationId());
- assertEquals(savedDto.getStationId(), failureInfoGroup.getFkTblStation());
+ assertNotNull(savedDto.getStationStationId());
+ assertEquals(savedDto.getStationStationId(), failureInfoGroup.getStationStationId());
assertEquals(savedDto.getFailureInformationId(), failureInfoGroup.getFkTblFailureInformation());
}
@@ -106,7 +106,7 @@
when(failureInformationRepository.findByUuid(any(UUID.class))).thenReturn(Optional.of(failureInformation));
when(stationRepository.findByUuid(any(UUID.class))).thenReturn(Optional.of(station));
- when(failureInformationStationRepository.findByFkTblFailureInformationAndFkTblStation(anyLong(), anyLong())).thenReturn(Optional.of(failureInfoStation));
+ when(failureInformationStationRepository.findByFkTblFailureInformationAndStationStationId(anyLong(), anyString())).thenReturn(Optional.of(failureInfoStation));
Mockito.doNothing().when(failureInformationStationRepository).delete( isA( TblFailureInformationStation.class ));
failureInformationStationService.deleteFailureInfoStation(UUID.randomUUID(), UUID.randomUUID());
diff --git a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/service/StationServiceTest.java b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/service/StationServiceTest.java
index 56f4dc5..242a4e2 100644
--- a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/service/StationServiceTest.java
+++ b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/service/StationServiceTest.java
@@ -27,6 +27,7 @@
import org.springframework.test.context.ContextConfiguration;
import java.util.List;
+import java.util.Optional;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.ArgumentMatchers.any;
@@ -58,13 +59,10 @@
@Test
public void shouldFindASingleBranchByIdAndName() {
TblStation mockTblStation = MockDataHelper.mockTblStation();
- List<TblStation> mockTblStationList = MockDataHelper.mockTblStationList();
- when(stationRepository.findStationsByIdAndName(any(String.class), any(String.class))).thenReturn(mockTblStationList);
- List<StationDto> stationDtoList = stationService.getStationsByIdAndName("xyz", "abc");
+ when(stationRepository.findByStationId(any(String.class))).thenReturn(Optional.of(mockTblStation));
+ StationDto stationDto = stationService.getStationsById("xyz");
- assertEquals(stationDtoList.size(), mockTblStationList.size());
- assertEquals(2, stationDtoList.size());
- assertEquals(stationDtoList.get(1).getUuid(), mockTblStationList.get(1).getUuid());
+ assertEquals(stationDto.getUuid(), mockTblStation.getUuid());
}
diff --git a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/support/MockDataHelper.java b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/support/MockDataHelper.java
index 862b29e..dad19bd 100644
--- a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/support/MockDataHelper.java
+++ b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/support/MockDataHelper.java
@@ -15,6 +15,7 @@
package org.eclipse.openk.gridfailureinformation.support;
import org.eclipse.openk.gridfailureinformation.bpmn.impl.GfiProcessState;
+import org.eclipse.openk.gridfailureinformation.config.rabbitMq.RabbitMqChannel;
import org.eclipse.openk.gridfailureinformation.constants.Constants;
import org.eclipse.openk.gridfailureinformation.model.*;
import org.eclipse.openk.gridfailureinformation.viewmodel.*;
@@ -28,6 +29,7 @@
import java.util.LinkedList;
import java.util.List;
import java.util.UUID;
+import java.util.stream.Collectors;
import static org.eclipse.openk.gridfailureinformation.constants.Constants.INTERNAL_SHORT;
@@ -103,7 +105,8 @@
dto.setModUser("schlonzh");
dto.setDistributionGroupUuids(mockUuidList());
- dto.setStationUuids(mockUuidList());
+ dto.setStationIds(mockUuidList());
+ //dto.setPublicationChannels(mockPublicationChannelList());
return dto;
}
@@ -149,7 +152,7 @@
obj.setRefStatusIntern(mockRefStatus());
obj.setDistributionGroups(mockDistributionGroupList());
- obj.setStations(mockTblStationList());
+ obj.setStations(mockTblStationList().stream().collect(Collectors.toSet()));
return obj;
}
@@ -196,7 +199,7 @@
obj.setRefStatusIntern(mockRefStatus());
obj.setDistributionGroups(mockDistributionGroupList());
- obj.setStations(mockTblStationList());
+ obj.setStations(mockTblStationList().stream().collect(Collectors.toSet()));
return obj;
}
@@ -906,7 +909,7 @@
public static List<TblStation> mockTblStationList(){
- List<TblStation> stationList = new ArrayList();
+ List<TblStation> stationList = new LinkedList();
stationList.add(mockTblStation());
stationList.add(mockTblStation2());
return stationList;
@@ -1189,9 +1192,25 @@
return distributionGroupMemberDtoList;
}
+ public static RabbitMqChannel mockRabbitMqChannel(){
+ RabbitMqChannel rChannel = new RabbitMqChannel();
+ rChannel.setName("MOCKMAIL");
+ rChannel.setExportkey("mockmail_export_key");
+ rChannel.setExportqueue("mockmail_export_queue");
+ return rChannel;
+ }
+
+ public static RabbitMqChannel mockRabbitMqChannel2(){
+ RabbitMqChannel rChannel = new RabbitMqChannel();
+ rChannel.setName("MOCKSMS");
+ rChannel.setExportkey("mocksms_export_key");
+ rChannel.setExportqueue("mocksms_export_queue");
+ return rChannel;
+ }
+
public static TblFailureInformationStation mockTblFailureInformationStation() {
TblFailureInformationStation tblFailureInformationStation = new TblFailureInformationStation();
- tblFailureInformationStation.setFkTblStation(12345L);
+ tblFailureInformationStation.setStationStationId("23456");
tblFailureInformationStation.setFkTblFailureInformation(98765L);
tblFailureInformationStation.setId(299L);
return tblFailureInformationStation;
@@ -1200,7 +1219,7 @@
public static FailureInformationStationDto mockFailureInformationStationDto() {
FailureInformationStationDto failureInfoGroupDto = new FailureInformationStationDto();
failureInfoGroupDto.setFailureInformationId(13579L);
- failureInfoGroupDto.setStationId(97531L);
+ failureInfoGroupDto.setStationStationId("97531");
return failureInfoGroupDto;
}
@@ -1220,4 +1239,31 @@
return failureInfoGroupDto;
}
+ public static List<String> mockPublicationChannelList(){
+ List<String> publicationChannels= new LinkedList<String>();
+ publicationChannels.add("MOCKMAIL");
+ publicationChannels.add("MOCKSMS");
+ publicationChannels.add("MOCKXY");
+
+ return publicationChannels;
+ }
+
+ public static TblFailureInformationPublicationChannel mockTblFailureInformationPublicationChannel(){
+ TblFailureInformationPublicationChannel tfipChannel = new TblFailureInformationPublicationChannel();
+ tfipChannel.setId(1L);
+ tfipChannel.setTblFailureInformation(mockTblFailureInformation());
+ tfipChannel.setPublicationChannel("MOCKMAIL");
+ tfipChannel.setPublished(true);
+ return tfipChannel;
+ }
+
+ public static TblFailureInformationPublicationChannel mockTblFailureInformationPublicationChannel2(){
+ TblFailureInformationPublicationChannel tfipChannel = new TblFailureInformationPublicationChannel();
+ tfipChannel.setId(1L);
+ tfipChannel.setTblFailureInformation(mockTblFailureInformation());
+ tfipChannel.setPublicationChannel("MOCKSMS");
+ tfipChannel.setPublished(true);
+ return tfipChannel;
+ }
+
}
diff --git a/testImportGridFailures/src/main/resources/application_localdev.yml b/testImportGridFailures/src/main/resources/application_localdev.yml
index c366b8e..48bebce 100644
--- a/testImportGridFailures/src/main/resources/application_localdev.yml
+++ b/testImportGridFailures/src/main/resources/application_localdev.yml
@@ -22,9 +22,9 @@
port: 5672
username: ${GFI_RABBITMQ_USERNAME}
password: ${GFI_RABBITMQ_PASSWORD}
- import_exchange: importExchangeLocalDev
- failure_import_queue: failureImportQueueLocalDev
- failure_import_routingkey: importExchangeLocalDev.failureImportKeyLocalDev
+ import_exchange: importExchangeLocalDev_fd
+ failure_import_queue: failureImportQueueLocalDev_fd
+ failure_import_routingkey: importExchangeLocalDev.failureImportKeyLocalDev_fd
eureka:
client: