1 package fr.ifremer.tutti.service.genericformat.exportactions;
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.adagio.core.dao.referential.ObjectTypeCode;
28 import fr.ifremer.tutti.persistence.entities.data.Attachment;
29 import fr.ifremer.tutti.persistence.entities.data.CatchBatch;
30 import fr.ifremer.tutti.persistence.entities.data.Cruise;
31 import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
32 import fr.ifremer.tutti.service.PersistenceService;
33 import fr.ifremer.tutti.service.genericformat.GenericFormatExportContext;
34 import fr.ifremer.tutti.service.genericformat.GenericFormatExportOperationContext;
35 import fr.ifremer.tutti.service.genericformat.csv.AttachmentRow;
36 import fr.ifremer.tutti.service.genericformat.csv.OperationRow;
37 import fr.ifremer.tutti.service.genericformat.producer.CsvProducerForAttachment;
38
39 import java.util.ArrayList;
40 import java.util.List;
41
42
43
44
45
46
47
48 public class CreateOperationRowsAction extends ExportFishingOperationActionSupport {
49
50 private final PersistenceService persistenceService;
51
52 public CreateOperationRowsAction(PersistenceService persistenceService) {
53 this.persistenceService = persistenceService;
54 }
55
56 @Override
57 public boolean doExecute(GenericFormatExportContext exportContext, GenericFormatExportOperationContext operationContext) {
58 return true;
59 }
60
61 @Override
62 public void execute(GenericFormatExportContext exportContext, GenericFormatExportOperationContext operationContext) {
63
64 FishingOperation operation = operationContext.getOperation();
65 Cruise cruise = operationContext.getCruise();
66 CatchBatch catchBatch = operationContext.getCatchBatch();
67
68 boolean exportSpecies = exportContext.isExportSpecies();
69 boolean exportBenthos = exportContext.isExportBenthos();
70 boolean exportMarineLitter = exportContext.isExportMarineLitter();
71
72 OperationRow operationRow = exportContext.getProducerForOperation().getDataToExport(cruise, operation, catchBatch);
73
74 operationRow.computeCatchValues(exportSpecies, exportBenthos, exportMarineLitter);
75
76 operationContext.setOperationRow(operationRow);
77
78 if (exportContext.isExportAttachments()) {
79
80 List<AttachmentRow> attachmentRows = getAttachmentRows(exportContext, operation, catchBatch);
81 operationContext.addAttachmentRows(attachmentRows);
82
83 }
84
85 }
86
87 protected List<AttachmentRow> getAttachmentRows(GenericFormatExportContext exportContext, FishingOperation operation, CatchBatch catchBatch) {
88
89 List<AttachmentRow> attachmentRows = new ArrayList<>();
90
91 CsvProducerForAttachment producerForAttachment = exportContext.getProducerForAttachment();
92 {
93
94 List<Attachment> attachments = persistenceService.getAllAttachments(ObjectTypeCode.OPERATION, operation.getIdAsInt());
95 producerForAttachment.addAttachments(attachments, attachmentRows);
96
97 }
98
99 if (catchBatch != null) {
100
101 List<Attachment> attachments = persistenceService.getAllAttachments(ObjectTypeCode.CATCH_BATCH, catchBatch.getIdAsInt());
102 producerForAttachment.addAttachments(attachments, attachmentRows);
103
104 }
105
106 return attachmentRows;
107
108 }
109
110 }