Skip to content

Commit 38813cf

Browse files
Avaries VMS - Clôturer les avaries quand ils émettent à quai et automatiser l'envoi de la notification de reprise (#3490)
## Linked issues - Resolve #3221 @louptheron J'ai fait - [x] data : - Une émission clôture une avarie, qu'elle soit à quai ou en mer - Archivage et notification systématique (au préalable les navires en statut autre que "Au port" passaient en "Fin d'avarie" et la notification n'était pas envoyée automatiquement, il fallait une action humaine) - [x] Back : suppression du `stage` `END_OF_MALFUNCTION`. - [x] il reste à virer la colonne du kanban dans le front Il reste les données historiques en base de données, notamment les actions de changement de `stage` qui incluent le `stage` `END_OF_MALFUNCTION` donc au-delà de la suppression de la colonne "Fin d'avarie" dans le kanban il faut peut-être faire gaffe à comment vont s'afficher les changements de stage dans l'historique de ces avaries : ![image](https://github.com/user-attachments/assets/2636697a-538e-48fd-a4a0-770a98db242f) C'est pour cette raison que je n'ai pas supprimé la valeur `END_OF_MALFUNCTION` de l'Enum en back. Ou alors il faut penser à une migration pour virer toutes ces data et supprimer complètement ce stage des données.
2 parents e27282b + 1ed1ee5 commit 38813cf

File tree

28 files changed

+141
-508
lines changed

28 files changed

+141
-508
lines changed

backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/beacon_malfunction/ArchiveBeaconMalfunctions.kt

Lines changed: 0 additions & 18 deletions
This file was deleted.

backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/beacon_malfunction/UpdateBeaconMalfunction.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@ class UpdateBeaconMalfunction(
2323
require(vesselStatus != null || stage != null) {
2424
"No value to update"
2525
}
26-
if (stage == Stage.END_OF_MALFUNCTION) {
26+
if (stage == Stage.ARCHIVED) {
2727
require(endOfBeaconMalfunctionReason != null) {
28-
"Cannot end malfunction without giving an endOfBeaconMalfunctionReason"
28+
"Cannot archive malfunction without giving an endOfBeaconMalfunctionReason"
2929
}
3030
}
3131

backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/vessel/GetVesselBeaconMalfunctions.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ class GetVesselBeaconMalfunctions(
3333

3434
val resume = VesselBeaconMalfunctionsResume.fromBeaconMalfunctions(beaconMalfunctionsWithDetails)
3535
val currentBeaconMalfunction = beaconMalfunctionsWithDetails.find {
36-
it.beaconMalfunction.stage != Stage.ARCHIVED && it.beaconMalfunction.stage != Stage.END_OF_MALFUNCTION
36+
it.beaconMalfunction.stage != Stage.ARCHIVED
3737
}
3838
val history = beaconMalfunctionsWithDetails.filter {
3939
it.beaconMalfunction.id != currentBeaconMalfunction?.beaconMalfunction?.id

backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/bff/BeaconMalfunctionController.kt

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ class BeaconMalfunctionController(
2222
private val getBeaconMalfunction: GetBeaconMalfunction,
2323
private val saveBeaconMalfunctionComment: SaveBeaconMalfunctionComment,
2424
private val requestNotification: RequestNotification,
25-
private val archiveBeaconMalfunctions: ArchiveBeaconMalfunctions,
2625
) {
2726

2827
@GetMapping(value = [""])
@@ -52,16 +51,6 @@ class BeaconMalfunctionController(
5251
}
5352
}
5453

55-
@PutMapping(value = ["/archive"], consumes = ["application/json"])
56-
@Operation(summary = "Archive multiple beacon malfunctions")
57-
fun archiveBeaconMalfunctions(
58-
@RequestBody ids: List<Int>,
59-
): List<BeaconMalfunctionResumeAndDetailsDataOutput> {
60-
return archiveBeaconMalfunctions.execute(ids).map {
61-
BeaconMalfunctionResumeAndDetailsDataOutput.fromBeaconMalfunctionResumeAndDetails(it)
62-
}
63-
}
64-
6554
@ResponseStatus(HttpStatus.CREATED)
6655
@PostMapping(value = ["/{beaconMalfunctionId}/comments"], consumes = ["application/json"])
6756
@Operation(summary = "Save a beacon malfunction comment and return the updated beacon malfunction")

backend/src/main/resources/db/testdata/V666.15__Insert_dummy_beacons_malfunctions.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ VALUES (1, 'FAK000999999', 'CALLME', 'DONTSINK', 'GB', 'INTERNAL_REFERENCE_NUMBE
77
'INITIAL_ENCOUNTER', NOW() - ('1 WEEK')::interval, null, NOW(), null, 1,
88
'MALFUNCTION_AT_SEA_INITIAL_NOTIFICATION', 'FGEDX85', 'ACTIVATED'),
99
(2, 'FAK000999999', 'CALLME', 'DONTSINK', 'GB', 'INTERNAL_REFERENCE_NUMBER', 'PHENOMENE', 'AT_SEA',
10-
'END_OF_MALFUNCTION', NOW() - ('8 WEEKS')::interval, NOW() - ('6 WEEKS')::interval,
10+
'ARCHIVED', NOW() - ('8 WEEKS')::interval, NOW() - ('6 WEEKS')::interval,
1111
NOW() - ('6 WEEKS')::interval, 'RESUMED_TRANSMISSION', 1, null, 'FGEDX85', 'ACTIVATED'),
1212
(3, 'U_W0NTFINDME', 'QGDF', 'TALK2ME', 'FR', 'IRCS', 'MALOTRU', 'NO_NEWS', 'FOUR_HOUR_REPORT',
1313
NOW() - ('2 WEEK')::interval, null, NOW() - ('1 WEEK')::interval, null, 2, null, '123456', 'UNSUPERVISED'),

backend/src/main/resources/db/testdata/V666.17__Insert_dummy_beacons_malfunction_actions.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ VALUES (3, 'STAGE', 'INITIAL_ENCOUNTER', 'AT_QUAY', NOW() - ('2 WEEK')::interval
33
(3, 'STAGE', 'AT_QUAY', 'FOUR_HOUR_REPORT', NOW() - ('1 WEEK')::interval),
44
(3, 'VESSEL_STATUS', 'AT_SEA', 'NO_NEWS', NOW() - ('1 DAY')::interval),
55
(1, 'VESSEL_STATUS', 'AT_PORT', 'ACTIVITY_DETECTED', NOW() - ('4 DAYS')::interval),
6-
(2, 'STAGE', 'INITIAL_ENCOUNTER', 'END_OF_MALFUNCTION', NOW() - ('6 WEEK')::interval);
6+
(2, 'STAGE', 'INITIAL_ENCOUNTER', 'ARCHIVED', NOW() - ('6 WEEK')::interval);

backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/beacon_malfunctions/VesselBeaconMalfunctionsResumeUTests.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ class VesselBeaconMalfunctionsResumeUTests {
2020
beaconMalfunction = BeaconMalfunction(
2121
1, "FR224226850", "1236514", "IRCS",
2222
"fr", VesselIdentifier.INTERNAL_REFERENCE_NUMBER, "BIDUBULE", VesselStatus.AT_SEA,
23-
Stage.END_OF_MALFUNCTION, now.minusYears(2), null, now.minusYears(2),
23+
Stage.ARCHIVED, now.minusYears(2), null, now.minusYears(2),
2424
beaconNumber = "123465", beaconStatusAtMalfunctionCreation = BeaconStatus.ACTIVATED, vesselId = 123,
2525
),
2626
comments = listOf(
@@ -45,7 +45,7 @@ class VesselBeaconMalfunctionsResumeUTests {
4545
beaconMalfunction = BeaconMalfunction(
4646
2, "FR224226850", "1236514", "IRCS",
4747
"fr", VesselIdentifier.INTERNAL_REFERENCE_NUMBER, "BIDUBULE", VesselStatus.AT_SEA,
48-
Stage.END_OF_MALFUNCTION, now.minusMinutes(23), null, now.minusMinutes(23),
48+
Stage.ARCHIVED, now.minusMinutes(23), null, now.minusMinutes(23),
4949
beaconNumber = "123465", beaconStatusAtMalfunctionCreation = BeaconStatus.ACTIVATED, vesselId = 123,
5050
),
5151
comments = listOf(
@@ -70,7 +70,7 @@ class VesselBeaconMalfunctionsResumeUTests {
7070
beaconMalfunction = BeaconMalfunction(
7171
3, "FR224226850", "1236514", "IRCS",
7272
"fr", VesselIdentifier.INTERNAL_REFERENCE_NUMBER, "BIDUBULE", VesselStatus.AT_SEA,
73-
Stage.END_OF_MALFUNCTION, now.minusMinutes(5), null, now.minusMinutes(5),
73+
Stage.ARCHIVED, now.minusMinutes(5), null, now.minusMinutes(5),
7474
beaconNumber = "123465", beaconStatusAtMalfunctionCreation = BeaconStatus.ACTIVATED, vesselId = 123,
7575
),
7676
comments = listOf(
@@ -102,7 +102,7 @@ class VesselBeaconMalfunctionsResumeUTests {
102102
beaconMalfunction = BeaconMalfunction(
103103
4, "FR224226850", "1236514", "IRCS",
104104
"fr", VesselIdentifier.INTERNAL_REFERENCE_NUMBER, "BIDUBULE", VesselStatus.AT_PORT,
105-
Stage.END_OF_MALFUNCTION, lastBeaconDateTime, null, lastBeaconDateTime,
105+
Stage.ARCHIVED, lastBeaconDateTime, null, lastBeaconDateTime,
106106
beaconNumber = "123465", beaconStatusAtMalfunctionCreation = BeaconStatus.ACTIVATED, vesselId = 123,
107107
),
108108
comments = listOf(
@@ -152,7 +152,7 @@ class VesselBeaconMalfunctionsResumeUTests {
152152
beaconMalfunction = BeaconMalfunction(
153153
1, "FR224226850", "1236514", "IRCS",
154154
"fr", VesselIdentifier.INTERNAL_REFERENCE_NUMBER, "BIDUBULE", VesselStatus.AT_SEA,
155-
Stage.END_OF_MALFUNCTION, lastBeaconDateTime, null, lastBeaconDateTime,
155+
Stage.ARCHIVED, lastBeaconDateTime, null, lastBeaconDateTime,
156156
beaconNumber = "123465", beaconStatusAtMalfunctionCreation = BeaconStatus.ACTIVATED, vesselId = 123,
157157
),
158158
comments = listOf(
@@ -169,7 +169,7 @@ class VesselBeaconMalfunctionsResumeUTests {
169169
beaconMalfunction = BeaconMalfunction(
170170
2, "FR224226852", "1236514", "IRCS",
171171
"fr", VesselIdentifier.INTERNAL_REFERENCE_NUMBER, "BIDUBULE", VesselStatus.AT_PORT,
172-
Stage.END_OF_MALFUNCTION, now, null, now,
172+
Stage.ARCHIVED, now, null, now,
173173
beaconNumber = "123465", beaconStatusAtMalfunctionCreation = BeaconStatus.ACTIVATED, vesselId = 123,
174174
),
175175
comments = listOf(

backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/beacon_malfunction/ArchiveBeaconMalfunctionsUTests.kt

Lines changed: 0 additions & 127 deletions
This file was deleted.

backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/beacon_malfunction/GetAllBeaconMalfunctionsUTests.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ class GetAllBeaconMalfunctionsUTests {
7373
),
7474
BeaconMalfunction(
7575
2, "FR224226850", "1236514", "IRCS",
76-
null, VesselIdentifier.INTERNAL_REFERENCE_NUMBER, "BIDUBULE", VesselStatus.AT_SEA, Stage.END_OF_MALFUNCTION,
76+
null, VesselIdentifier.INTERNAL_REFERENCE_NUMBER, "BIDUBULE", VesselStatus.AT_SEA, Stage.TARGETING_VESSEL,
7777
ZonedDateTime.now(), ZonedDateTime.now(), ZonedDateTime.now(),
7878
beaconNumber = "123465", beaconStatusAtMalfunctionCreation = BeaconStatus.ACTIVATED, endOfBeaconMalfunctionReason = EndOfBeaconMalfunctionReason.RESUMED_TRANSMISSION, vesselId = 123,
7979
),

backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/beacon_malfunction/GetBeaconMalfunctionUTests.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ class GetBeaconMalfunctionUTests {
4040
.willReturn(
4141
BeaconMalfunction(
4242
1, "FR224226850", "1236514", "IRCS",
43-
null, VesselIdentifier.INTERNAL_REFERENCE_NUMBER, "BIDUBULE", VesselStatus.AT_SEA, Stage.END_OF_MALFUNCTION,
43+
null, VesselIdentifier.INTERNAL_REFERENCE_NUMBER, "BIDUBULE", VesselStatus.AT_SEA, Stage.ARCHIVED,
4444
ZonedDateTime.now(), null, ZonedDateTime.now(),
4545
beaconNumber = "123465", beaconStatusAtMalfunctionCreation = BeaconStatus.ACTIVATED, vesselId = 1,
4646
),
@@ -55,7 +55,7 @@ class GetBeaconMalfunctionUTests {
5555
listOf(
5656
BeaconMalfunction(
5757
1, "FR224226850", "1236514", "IRCS",
58-
null, VesselIdentifier.INTERNAL_REFERENCE_NUMBER, "BIDUBULE", VesselStatus.AT_SEA, Stage.END_OF_MALFUNCTION,
58+
null, VesselIdentifier.INTERNAL_REFERENCE_NUMBER, "BIDUBULE", VesselStatus.AT_SEA, Stage.ARCHIVED,
5959
ZonedDateTime.now(), null, ZonedDateTime.now(),
6060
beaconNumber = "123465", beaconStatusAtMalfunctionCreation = BeaconStatus.ACTIVATED, vesselId = 1,
6161
),

backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/beacon_malfunction/GetVesselBeaconMalfunctionsUTests.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ class GetVesselBeaconMalfunctionsUTests {
4040
listOf(
4141
BeaconMalfunction(
4242
1, "FR224226850", "1236514", "IRCS",
43-
null, VesselIdentifier.INTERNAL_REFERENCE_NUMBER, "BIDUBULE", VesselStatus.AT_SEA, Stage.END_OF_MALFUNCTION,
43+
null, VesselIdentifier.INTERNAL_REFERENCE_NUMBER, "BIDUBULE", VesselStatus.AT_SEA, Stage.ARCHIVED,
4444
ZonedDateTime.now(), null, ZonedDateTime.now(),
4545
beaconNumber = "123465", beaconStatusAtMalfunctionCreation = BeaconStatus.ACTIVATED, vesselId = 1,
4646
),

backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/beacon_malfunction/UpdateBeaconMalfunctionUTests.kt

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,20 +49,22 @@ class UpdateBeaconMalfunctionUTests {
4949
}
5050

5151
@Test
52-
fun `execute Should throw an exception When the Stage is END_OF_MALFUNCTION but there si no endOfBeaconMalfunctionReason`() {
52+
fun `execute Should throw an exception When the Stage is ARCHIVED but there si no endOfBeaconMalfunctionReason`() {
5353
// When
5454
val throwable = catchThrowable {
5555
UpdateBeaconMalfunction(
5656
beaconMalfunctionsRepository,
5757
beaconMalfunctionActionRepository,
5858
getBeaconMalfunction,
5959
)
60-
.execute(1, null, Stage.END_OF_MALFUNCTION, null)
60+
.execute(1, null, Stage.ARCHIVED, null)
6161
}
6262

6363
// Then
6464
assertThat(throwable).isInstanceOf(IllegalArgumentException::class.java)
65-
assertThat(throwable.message).contains("Cannot end malfunction without giving an endOfBeaconMalfunctionReason")
65+
assertThat(throwable.message).contains(
66+
"Cannot archive malfunction without giving an endOfBeaconMalfunctionReason",
67+
)
6668
}
6769

6870
@Test

0 commit comments

Comments
 (0)