1 package fr.ifremer.tutti.service.genericformat.importactions;
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
27 import fr.ifremer.tutti.service.genericformat.GenericFormatCheckDataService;
28 import fr.ifremer.tutti.service.genericformat.GenericFormatImportContext;
29 import fr.ifremer.tutti.service.genericformat.GenericFormatImportOperationContext;
30 import org.apache.commons.logging.Log;
31 import org.apache.commons.logging.LogFactory;
32
33 import java.util.Set;
34
35 import static org.nuiton.i18n.I18n.t;
36
37
38
39
40
41
42
43 public class DoCheckWeightAction extends ImportActionSupport {
44
45
46 private static final Log log = LogFactory.getLog(DoCheckWeightAction.class);
47
48 private final GenericFormatCheckDataService checkDataService;
49
50 public DoCheckWeightAction(GenericFormatImportContext importContext, GenericFormatCheckDataService checkDataService) {
51 super(importContext);
52 this.checkDataService = checkDataService;
53 }
54
55 @Override
56 protected boolean canExecute() {
57 return importContext.getImportRequest().isCheckWeights()
58 && importContext.isTechnicalFilesValid()
59 && importContext.getOperationFileResult().isValid()
60 && importContext.getCatchFileResult().isValid()
61 && importContext.getMarineLitterFileResult().isValid();
62 }
63
64 @Override
65 protected void doExecute() {
66
67 if (log.isInfoEnabled()) {
68 log.info("Will check weights.");
69 }
70
71 importContext.doActionOnCruiseContexts((cruiseContext, progressionModel) -> {
72
73 for (GenericFormatImportOperationContext operationContext : cruiseContext) {
74
75 progressionModel.increments(t("tutti.service.genericFormat.checkWeights.fishingOperation", cruiseContext.getCruiseLabel(), operationContext.getFishingOperationLabel()));
76
77 Set<String> errors = checkDataService.checkFishingOperation(operationContext.getFishingOperation().getIdAsInt());
78 operationContext.addCheckErrors(errors);
79
80 }
81
82 });
83
84 }
85
86 }