1 package fr.ifremer.dali.service.observation;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 import fr.ifremer.dali.dto.configuration.programStrategy.ProgStratDTO;
27 import fr.ifremer.dali.dto.configuration.programStrategy.ProgramDTO;
28 import fr.ifremer.dali.dto.data.sampling.SamplingOperationDTO;
29 import fr.ifremer.dali.dto.data.survey.CampaignDTO;
30 import fr.ifremer.dali.dto.data.survey.SurveyDTO;
31 import fr.ifremer.dali.dto.data.survey.SurveyFilterDTO;
32 import fr.ifremer.dali.dto.referential.*;
33 import fr.ifremer.dali.dto.referential.pmfm.PmfmDTO;
34 import fr.ifremer.dali.dto.system.QualificationHistoryDTO;
35 import fr.ifremer.dali.dto.system.ValidationHistoryDTO;
36 import fr.ifremer.quadrige3.core.ProgressionCoreModel;
37 import org.springframework.security.access.prepost.PreAuthorize;
38 import org.springframework.transaction.annotation.Propagation;
39 import org.springframework.transaction.annotation.Transactional;
40
41 import java.time.LocalDate;
42 import java.util.Collection;
43 import java.util.Date;
44 import java.util.List;
45
46
47
48
49 @Transactional(readOnly = true)
50 public interface ObservationService {
51
52
53
54
55
56
57
58 List<SurveyDTO> getSurveys(SurveyFilterDTO surveyFilter);
59
60
61
62
63
64
65
66 SurveyDTO getSurvey(Integer surveyId);
67
68
69
70
71
72
73
74 SurveyDTO getSurveyWithoutPmfmFiltering(Integer surveyId);
75
76
77
78
79
80
81 @Transactional()
82 @PreAuthorize("hasPermission(null, T(fr.ifremer.quadrige3.core.security.QuadrigeUserAuthority).USER)")
83 void saveSurveys(Collection<? extends SurveyDTO> surveys, ProgressionCoreModel progressionModel);
84
85
86
87
88
89
90 @Transactional()
91 @PreAuthorize("hasPermission(null, T(fr.ifremer.quadrige3.core.security.QuadrigeUserAuthority).USER)")
92 void saveSurvey(SurveyDTO survey);
93
94
95
96
97
98
99 @Transactional()
100 @PreAuthorize("hasPermission(null, T(fr.ifremer.quadrige3.core.security.QuadrigeUserAuthority).USER)")
101 void deleteSurveys(List<Integer> surveyIds);
102
103
104
105
106
107
108
109 void loadSamplingOperationsFromSurvey(SurveyDTO survey, boolean withIndividualMeasurements);
110
111
112
113
114
115
116
117
118 @PreAuthorize("hasPermission(null, T(fr.ifremer.quadrige3.core.security.QuadrigeUserAuthority).USER)")
119 SamplingOperationDTO newSamplingOperation(SurveyDTO survey, List<PmfmDTO> pmfms);
120
121
122
123
124
125
126
127
128
129 @PreAuthorize("hasPermission(null, T(fr.ifremer.quadrige3.core.security.QuadrigeUserAuthority).USER)")
130 SurveyDTO duplicateSurvey(SurveyDTO survey, boolean fullDuplication, boolean copyCoordinates);
131
132
133
134
135
136
137
138
139
140 List<ProgramDTO> getAvailablePrograms(Integer locationId, LocalDate date, boolean forceNoContext);
141
142 List<CampaignDTO> getAvailableCampaigns(LocalDate date, boolean forceNoContext);
143
144
145
146
147
148
149
150 List<AnalysisInstrumentDTO> getAvailableAnalysisInstruments(boolean forceNoContext);
151
152
153
154
155
156
157
158 List<SamplingEquipmentDTO> getAvailableSamplingEquipments(boolean forceNoContext);
159
160
161
162
163
164
165
166 List<LocationDTO> getAvailableLocations(boolean forceNoContext);
167
168
169
170
171
172
173
174
175
176 List<LocationDTO> getAvailableLocations(Integer campaignId, String programCode, boolean forceNoContext);
177
178
179
180
181
182
183
184
185 List<TaxonGroupDTO> getAvailableTaxonGroups(TaxonDTO taxon, boolean forceNoContext);
186
187
188
189
190
191
192
193
194 List<TaxonDTO> getAvailableTaxons(TaxonGroupDTO taxonGroup, boolean forceNoContext);
195
196
197
198
199
200
201
202 List<PmfmDTO> getAvailablePmfms(boolean forceNoContext);
203
204
205
206
207
208
209
210 List<DepartmentDTO> getAvailableDepartments(boolean forceNoContext);
211
212
213
214
215
216
217
218 List<PersonDTO> getAvailableUsers(boolean forceNoFilter);
219
220
221
222
223
224
225
226
227 @Transactional(propagation = Propagation.NEVER)
228 @PreAuthorize("hasPermission(null, T(fr.ifremer.quadrige3.core.security.QuadrigeUserAuthority).VALIDATOR)")
229 void validateSurveys(Collection<? extends SurveyDTO> surveys, String validationComment, ProgressionCoreModel progressionModel);
230
231
232
233
234
235
236
237
238 @Transactional(propagation = Propagation.NEVER)
239 @PreAuthorize("hasPermission(null, T(fr.ifremer.quadrige3.core.security.QuadrigeUserAuthority).VALIDATOR)")
240 void unvalidateSurveys(Collection<? extends SurveyDTO> surveys, String unvalidationComment, ProgressionCoreModel progressionModel);
241
242
243
244
245
246
247
248
249 @Transactional(propagation = Propagation.NEVER)
250 @PreAuthorize("hasPermission(null, T(fr.ifremer.quadrige3.core.security.QuadrigeUserAuthority).QUALIFIER)")
251 void qualifySurveys(Collection<? extends SurveyDTO> surveys, String qualificationComment, QualityLevelDTO qualityLevel, ProgressionCoreModel progressionModel);
252
253 List<ValidationHistoryDTO> getValidationHistory(int surveyId);
254
255 List<QualificationHistoryDTO> getQualificationHistory(int surveyId);
256
257
258
259
260
261
262
263
264 long countSurveysWithProgramAndLocations(String programCode, List<Integer> locationIds);
265
266 long countSurveysWithProgramLocationAndOutsideDates(String programCode, int appliedStrategyId, int locationId, LocalDate startDate, LocalDate endDate);
267
268 long countSurveysWithProgramLocationAndInsideDates(String programCode, int appliedStrategyId, int locationId, LocalDate startDate, LocalDate endDate);
269
270 long countSurveysWithProgramLocationAndOutsideDates(ProgStratDTO progStrat, int locationId);
271
272 long countSurveysWithCampaign(int campaignId);
273
274 List<QualityLevelDTO> getQualityLevels();
275 }