branch develop updated (372a7e5 -> b0ff79b)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository echobase. See https://gitlab.nuiton.org/codelutin/echobase.git from 372a7e5 Livrable #8294 Merge branch 'feature/8294' into develop new 15ee4d7 Enregistrement d'un sampleData avec le numéro de spéciment lors d'un import de données biométriques (See #8295) new b0ff79b Livrable #8295 Merge branch 'feature/8295' into develop The 2 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit b0ff79b6af28d9a393141162388feea138899674 Merge: 372a7e5 15ee4d7 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Apr 29 13:07:06 2016 +0200 Livrable #8295 Merge branch 'feature/8295' into develop commit 15ee4d79238dbddae776c0481e2e01ceed415026 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Apr 29 13:07:03 2016 +0200 Enregistrement d'un sampleData avec le numéro de spéciment lors d'un import de données biométriques (See #8295) Summary of changes: .../entities/references/SampleDataTypeImpl.java | 2 ++ .../services/service/UserDbPersistenceService.java | 20 ++++++++----- .../VoyageCatchesBiometrySampleImportAction.java | 34 +++++++++++++++------- .../contexts/VoyageCatchesImportDataContext.java | 14 +++++++++ .../echobase/services/EchoBaseServiceFixtures.java | 2 +- 5 files changed, 54 insertions(+), 18 deletions(-) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository echobase. See https://gitlab.nuiton.org/codelutin/echobase.git commit 15ee4d79238dbddae776c0481e2e01ceed415026 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Apr 29 13:07:03 2016 +0200 Enregistrement d'un sampleData avec le numéro de spéciment lors d'un import de données biométriques (See #8295) --- .../entities/references/SampleDataTypeImpl.java | 2 ++ .../services/service/UserDbPersistenceService.java | 20 ++++++++----- .../VoyageCatchesBiometrySampleImportAction.java | 34 +++++++++++++++------- .../contexts/VoyageCatchesImportDataContext.java | 14 +++++++++ .../echobase/services/EchoBaseServiceFixtures.java | 2 +- 5 files changed, 54 insertions(+), 18 deletions(-) diff --git a/echobase-domain/src/main/java/fr/ifremer/echobase/entities/references/SampleDataTypeImpl.java b/echobase-domain/src/main/java/fr/ifremer/echobase/entities/references/SampleDataTypeImpl.java index 0a5e8ef..b1020bd 100644 --- a/echobase-domain/src/main/java/fr/ifremer/echobase/entities/references/SampleDataTypeImpl.java +++ b/echobase-domain/src/main/java/fr/ifremer/echobase/entities/references/SampleDataTypeImpl.java @@ -31,6 +31,8 @@ public class SampleDataTypeImpl extends SampleDataTypeAbstract { public static final String NO_PER_KG = "NoPerKg"; + public static final String SPECIMEN_INDEX = "specimenIndex"; + public static final String WEIGHT_AT_LENGTHKG = "WeightAtLengthkg"; public static final String L_TCM_1 = "LTcm1"; diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/UserDbPersistenceService.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/UserDbPersistenceService.java index e76de7a..0161d7a 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/UserDbPersistenceService.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/UserDbPersistenceService.java @@ -774,19 +774,19 @@ public class UserDbPersistenceService extends EchoBaseServiceSupport { //--- SampleData ---------------------------------------------------------// //------------------------------------------------------------------------// - public SampleData createSampleData(SampleDataType sampleDataType, - String label, - float value) { + public SampleData getSampleData(String sampleDataId) { + return persistenceContext.getSampleDataDao().forTopiaIdEquals(sampleDataId).findUnique(); + } + + public SampleData createSampleData(SampleDataType sampleDataType, String label, float value) { return persistenceContext.getSampleDataDao().create( SampleData.PROPERTY_SAMPLE_DATA_TYPE, sampleDataType, SampleData.PROPERTY_DATA_LABEL, label, - SampleData.PROPERTY_DATA_VALUE, value - ); + SampleData.PROPERTY_DATA_VALUE, value); } public SampleData createSampleData(SampleData sample) { - return persistenceContext.getSampleDataDao().create( - sample); + return persistenceContext.getSampleDataDao().create(sample); } //------------------------------------------------------------------------// @@ -797,6 +797,12 @@ public class UserDbPersistenceService extends EchoBaseServiceSupport { return persistenceContext.getSampleDataTypeDao().forNameEquals(name).findUnique(); } + public SampleDataType createSampleDataType(String sampleDataTypeName) { + return persistenceContext.getSampleDataTypeDao().create( + SampleDataType.PROPERTY_NAME, sampleDataTypeName); + } + + //------------------------------------------------------------------------// //--- SizeCategory -------------------------------------------------------// //------------------------------------------------------------------------// diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageCatchesBiometrySampleImportAction.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageCatchesBiometrySampleImportAction.java index d310fe5..ebb2c3d 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageCatchesBiometrySampleImportAction.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageCatchesBiometrySampleImportAction.java @@ -6,6 +6,7 @@ import fr.ifremer.echobase.entities.ImportFileId; import fr.ifremer.echobase.entities.data.Operation; import fr.ifremer.echobase.entities.data.Sample; import fr.ifremer.echobase.entities.data.SampleData; +import fr.ifremer.echobase.entities.references.SampleDataType; import fr.ifremer.echobase.entities.references.SampleType; import fr.ifremer.echobase.entities.references.Species; import fr.ifremer.echobase.entities.references.SpeciesCategory; @@ -35,7 +36,6 @@ public class VoyageCatchesBiometrySampleImportAction extends VoyageCatchesImport private static final Log log = LogFactory.getLog(VoyageCatchesBiometrySampleImportAction.class); private final Map<String, String> sampleIdToOperationId = new TreeMap<>(); private final Map<String, String> sampleDataIdToSampleId = new TreeMap<>(); - private final Map<String, Integer> sampleIdToNumFish = new TreeMap<>(); public VoyageCatchesBiometrySampleImportAction(VoyageCatchesImportDataContext importDataContext) { super(importDataContext, importDataContext.getConfiguration().getBiometrySampleFile()); @@ -58,6 +58,7 @@ public class VoyageCatchesBiometrySampleImportAction extends VoyageCatchesImport log.info("Starts import of subSample from file " + inputFile.getFileName()); } + SampleDataType sampleDataTypeFishIndex = importDataContext.getSampleDataTypeSpecimenIndex(); SampleType sampleTypeIndividual = importDataContext.getSampleTypeIndividualType(); Collection<Operation> operationWithTotalOrUnsortedSample = importDataContext.getVoyageOperationsWithTotalOrUnsortedSample(); SpeciesCategoryCache speciesCategoryCache = importDataContext.getSpeciesCategoryCache(); @@ -103,11 +104,13 @@ public class VoyageCatchesBiometrySampleImportAction extends VoyageCatchesImport // add to sample ids cache (need to compute imported export later) sampleIdToOperationId.put(sample.getTopiaId(), operation.getTopiaId()); - sampleIdToNumFish.put(sample.getTopiaId(), numFish); - SampleData sampleData = row.getSampleData(); + SampleData sampleDataFishIndex = persistenceService.createSampleData(sampleDataTypeFishIndex, null, (float) numFish); + sample.addSampleData(sampleDataFishIndex); + addId(result, EchoBaseUserEntityEnum.SampleData, sampleDataFishIndex, rowNumber); - SampleData sampleDataCreated = persistenceService.createSampleData(sampleData); + SampleData sampleData = row.getSampleData(); + SampleData sampleDataCreated = persistenceService.createSampleData(row.getSampleData()); sample.addSampleData(sampleDataCreated); addId(result, EchoBaseUserEntityEnum.SampleData, sampleDataCreated, rowNumber); @@ -122,32 +125,43 @@ public class VoyageCatchesBiometrySampleImportAction extends VoyageCatchesImport @Override protected void computeImportedExport(VoyageCatchesImportDataContext importDataContext, ImportDataFileResult result) { + SampleDataType sampleDataTypeFishIndex = importDataContext.getSampleDataTypeSpecimenIndex(); + + SampleData sampleDataFishIndex = null; + for (ImportFileId importFileId : filterIds(SampleData.class, result)) { String sampleDataId = importFileId.getEntityId(); + SampleData sampleData = persistenceService.getSampleData(sampleDataId); + if (sampleDataTypeFishIndex.equals(sampleData.getSampleDataType())) { + sampleDataFishIndex = sampleData; + continue; + } + String sampleId = sampleDataIdToSampleId.get(sampleDataId); Preconditions.checkNotNull(sampleId); String operationId = sampleIdToOperationId.get(sampleId); Preconditions.checkNotNull(operationId); - Integer numFish = sampleIdToNumFish.get(sampleId); - Preconditions.checkNotNull(numFish); - Operation operation = persistenceService.getOperation(operationId); Preconditions.checkNotNull(operation); Sample sample = persistenceService.getSample(sampleId); Preconditions.checkNotNull(sample); - SampleData sampleData = sample.getSampleDataByTopiaId(sampleDataId); - Preconditions.checkNotNull(sampleData); + Preconditions.checkNotNull(sample.getSampleDataByTopiaId(sampleDataId)); if (log.isInfoEnabled()) { log.info("Adding sampleData: " + sampleId + " to imported export."); } - VoyageCatchesBiometrySampleImportRow importedRow = VoyageCatchesBiometrySampleImportRow.of(operation, sample, sampleData, numFish); + Preconditions.checkNotNull(sampleDataFishIndex); + + Float numFishSampleDataValue = sampleDataFishIndex.getDataValue(); + Preconditions.checkNotNull(numFishSampleDataValue); + + VoyageCatchesBiometrySampleImportRow importedRow = VoyageCatchesBiometrySampleImportRow.of(operation, sample, sampleData, numFishSampleDataValue.intValue()); addImportedRow(result, importedRow); diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/contexts/VoyageCatchesImportDataContext.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/contexts/VoyageCatchesImportDataContext.java index c98e2f2..8db7cd7 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/contexts/VoyageCatchesImportDataContext.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/contexts/VoyageCatchesImportDataContext.java @@ -7,6 +7,7 @@ import fr.ifremer.echobase.entities.references.SampleType; import fr.ifremer.echobase.entities.references.SampleTypeImpl; import fr.ifremer.echobase.services.service.UserDbPersistenceService; import fr.ifremer.echobase.services.service.importdata.configurations.VoyageCatchesImportConfiguration; +import org.nuiton.topia.persistence.TopiaNoResultException; import java.util.Date; import java.util.Locale; @@ -26,6 +27,7 @@ public class VoyageCatchesImportDataContext extends VoyageImportDataContextSuppo private SampleDataType sampleDataTypeMeanLength; private SampleDataType sampleDataTypeMeanWeight; private SampleDataType sampleDataTypeNoPerKg; + private SampleDataType sampleDataTypeFishIndex; private SampleDataType sampleDataTypeNumberAtLength; private SampleDataType sampleDataTypeNumberAtLength05cm; private SampleDataType sampleDataTypeNumberAtLength1cm; @@ -112,6 +114,18 @@ public class VoyageCatchesImportDataContext extends VoyageImportDataContextSuppo return sampleDataTypeNoPerKg; } + public final SampleDataType getSampleDataTypeSpecimenIndex() { + if (sampleDataTypeFishIndex == null) { + try { + sampleDataTypeFishIndex = persistenceService.getSampleDataTypeByName(SampleDataTypeImpl.SPECIMEN_INDEX); + } catch (TopiaNoResultException e) { + // create on the fly... + sampleDataTypeFishIndex = persistenceService.createSampleDataType(SampleDataTypeImpl.SPECIMEN_INDEX); + } + } + return sampleDataTypeFishIndex; + } + public final SampleType getSampleTypeIndividualType() { if (sampleTypeIndividualType == null) { sampleTypeIndividualType = persistenceService.getSampleTypeByName(SampleTypeImpl.INDIVIDUAL_SAMPLE_TYPE); diff --git a/echobase-services/src/test/java/fr/ifremer/echobase/services/EchoBaseServiceFixtures.java b/echobase-services/src/test/java/fr/ifremer/echobase/services/EchoBaseServiceFixtures.java index 09df0f6..edb522b 100644 --- a/echobase-services/src/test/java/fr/ifremer/echobase/services/EchoBaseServiceFixtures.java +++ b/echobase-services/src/test/java/fr/ifremer/echobase/services/EchoBaseServiceFixtures.java @@ -104,7 +104,7 @@ public class EchoBaseServiceFixtures { } public int NB_SAMPLE_DATA_BIOMETRY() { - return 43; + return 86; } public int NB_SAMPLE() { -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository echobase. See https://gitlab.nuiton.org/codelutin/echobase.git commit b0ff79b6af28d9a393141162388feea138899674 Merge: 372a7e5 15ee4d7 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Apr 29 13:07:06 2016 +0200 Livrable #8295 Merge branch 'feature/8295' into develop .../entities/references/SampleDataTypeImpl.java | 2 ++ .../services/service/UserDbPersistenceService.java | 20 ++++++++----- .../VoyageCatchesBiometrySampleImportAction.java | 34 +++++++++++++++------- .../contexts/VoyageCatchesImportDataContext.java | 14 +++++++++ .../echobase/services/EchoBaseServiceFixtures.java | 2 +- 5 files changed, 54 insertions(+), 18 deletions(-) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm