branch feature/8207 created (now f7abf93)
This is an automated email from the git hooks/post-receive script. New change to branch feature/8207 in repository tutti. See https://gitlab.nuiton.org/codelutin/tutti.git at f7abf93 conversion des centimetres en millimetres avant d'envoyer à l'algo de prelevements (refs #8207) This branch includes the following new commits: new f7abf93 conversion des centimetres en millimetres avant d'envoyer à l'algo de prelevements (refs #8207) The 1 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 f7abf932f2094c96062f04ed74cb647b64e316c6 Author: Kevin Morin <morin@codelutin.com> Date: Fri Apr 1 17:04:30 2016 +0200 conversion des centimetres en millimetres avant d'envoyer à l'algo de prelevements (refs #8207) -- 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 feature/8207 in repository tutti. See https://gitlab.nuiton.org/codelutin/tutti.git commit f7abf932f2094c96062f04ed74cb647b64e316c6 Author: Kevin Morin <morin@codelutin.com> Date: Fri Apr 1 17:04:30 2016 +0200 conversion des centimetres en millimetres avant d'envoyer à l'algo de prelevements (refs #8207) --- .../main/java/fr/ifremer/tutti/util/Numbers.java | 24 ++++++++++ .../main/java/fr/ifremer/tutti/util/Weights.java | 5 +- .../service/sampling/CruiseSamplingCache.java | 54 ++++++++++++---------- .../sampling/CruiseSamplingInternalCache.java | 3 +- .../frequency/IndividualObservationUICache.java | 15 +++--- .../species/frequency/SpeciesFrequencyUIModel.java | 8 ++++ 6 files changed, 72 insertions(+), 37 deletions(-) diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/util/Numbers.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/util/Numbers.java index 1e2b081..d2e5414 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/util/Numbers.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/util/Numbers.java @@ -81,4 +81,28 @@ public class Numbers { return result; } + public static float convertToCm(float source, String sourceUnit) { + if ("mm".equals(sourceUnit)) { + // measurement in cm asked + source = source / 10; + } + return source; + } + + public static int convertToMm(float source, String sourceUnit) { + if ("cm".equals(sourceUnit)) { + // measurement in mm asked + source = source * 10; + } + return (int) source; + } + + public static float convertFromMm(float source, String targetUnit) { + if ("cm".equals(targetUnit)) { + // measurement in cm asked + source = source / 10; + } + return source; + } + } diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/util/Weights.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/util/Weights.java index c9ddfb8..2ff329d 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/util/Weights.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/util/Weights.java @@ -149,10 +149,7 @@ public class Weights { * @since 4.5 */ public static float computeWithRtp(Rtp rtp, float lengthStep, String lengthStepUnit) { - if ("mm".equals(lengthStepUnit)) { - // measurement in cm asked - lengthStep = lengthStep / 10; - } + lengthStep = Numbers.convertToCm(lengthStep, lengthStepUnit); return (float) (rtp.getA() * Math.pow(lengthStep, rtp.getB())); } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/CruiseSamplingCache.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/CruiseSamplingCache.java index 93eb2ba..629cb48 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/CruiseSamplingCache.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/CruiseSamplingCache.java @@ -38,6 +38,7 @@ import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue; import fr.ifremer.tutti.persistence.entities.referential.Species; import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation; +import fr.ifremer.tutti.util.Numbers; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -196,8 +197,9 @@ public class CruiseSamplingCache implements Closeable { Objects.requireNonNull(species); Boolean maturity = getMaturity(individualObservationBatch); - Float lengthStep = individualObservationBatch.getSize(); - Objects.requireNonNull(lengthStep); + + float lengthStep = individualObservationBatch.getSize(); + int lengthStepInMm = Numbers.convertToMm(lengthStep, individualObservationBatch.getLengthStepCaracteristic().getUnit()); CaracteristicQualitativeValue gender = individualObservationBatch.getCaracteristics().getQualitativeValue(sexCaracteristic); @@ -209,9 +211,11 @@ public class CruiseSamplingCache implements Closeable { if (highestSamplingCode == null || code > highestSamplingCode) { highestSamplingCodeBySpecies.put(species.getReferenceTaxonId(), code); } + + addSampling(fishingOperationId, optionalZone, species, gender, maturity, lengthStepInMm, samplingCode); } - addIndividualObservation(fishingOperationId, optionalZone, species, gender, maturity, lengthStep); + addIndividualObservation(fishingOperationId, optionalZone, species, gender, maturity, lengthStepInMm); } /** @@ -221,13 +225,13 @@ public class CruiseSamplingCache implements Closeable { * @param species l'espèces concernée * @param gender le sexe de l'échantillon (peut-être null) * @param maturity la maturité de l'échantillon (peut-être null) - * @param lengthStep la classe de taille de l'échantillon + * @param lengthStep la classe de taille de l'échantillon (en mm) */ public void addIndividualObservation(FishingOperation fishingOperation, Species species, CaracteristicQualitativeValue gender, Boolean maturity, - float lengthStep) { + int lengthStep) { Objects.requireNonNull(fishingOperation); Objects.requireNonNull(species); @@ -246,14 +250,14 @@ public class CruiseSamplingCache implements Closeable { * @param species l'espèces concernée * @param gender le sexe de l'échantillon (peut-être null) * @param maturity la maturité de l'échantillon (peut-être null) - * @param lengthStep la classe de taille de l'échantillon + * @param lengthStep la classe de taille de l'échantillon (en mm) */ public void addIndividualObservation(Integer fishingOperationId, Optional<Zone> optionalZone, Species species, CaracteristicQualitativeValue gender, Boolean maturity, - float lengthStep) { + int lengthStep) { Objects.requireNonNull(fishingOperationId); Objects.requireNonNull(species); @@ -319,14 +323,14 @@ public class CruiseSamplingCache implements Closeable { * @param species l'espèces concernée * @param gender le sexe de l'échantillon (peut-être null) * @param maturity la maturité de l'échantillon (peut-être null) - * @param lengthStep la classe de taille de l'échantillon + * @param lengthStep la classe de taille de l'échantillon (en mm) * @param samplingCode le code de prélèvement ajouté */ public void addSampling(FishingOperation fishingOperation, Species species, CaracteristicQualitativeValue gender, Boolean maturity, - float lengthStep, + int lengthStep, String samplingCode) { Objects.requireNonNull(fishingOperation); @@ -345,7 +349,7 @@ public class CruiseSamplingCache implements Closeable { * @param species l'espèces concernée * @param gender le sexe de l'échantillon (peut-être null) * @param maturity la maturité de l'échantillon (peut-être null) - * @param lengthStep la classe de taille de l'échantillon + * @param lengthStep la classe de taille de l'échantillon (en mm) * @param samplingCode le code de prélèvement ajouté */ public void addSampling(Integer fishingOperationId, @@ -353,7 +357,7 @@ public class CruiseSamplingCache implements Closeable { Species species, CaracteristicQualitativeValue gender, Boolean maturity, - float lengthStep, + int lengthStep, String samplingCode) { Objects.requireNonNull(fishingOperationId); @@ -413,19 +417,21 @@ public class CruiseSamplingCache implements Closeable { Objects.requireNonNull(species); Boolean maturity = getMaturity(individualObservationBatch); - Float lengthStep = individualObservationBatch.getSize(); - Objects.requireNonNull(lengthStep); + + float lengthStep = individualObservationBatch.getSize(); + int lengthStepInMm = Numbers.convertToMm(lengthStep, individualObservationBatch.getLengthStepCaracteristic().getUnit()); + CaracteristicQualitativeValue gender = individualObservationBatch.getCaracteristics().getQualitativeValue(sexCaracteristic); String samplingCode = individualObservationBatch.getSamplingCode(); if (samplingCode != null) { - removeSampling(fishingOperationId, optionalZone, species, gender, maturity, lengthStep, samplingCode); + removeSampling(fishingOperationId, optionalZone, species, gender, maturity, lengthStepInMm, samplingCode); } - removeIndividualObservation(fishingOperationId, optionalZone, species, gender, maturity, lengthStep); + removeIndividualObservation(fishingOperationId, optionalZone, species, gender, maturity, lengthStepInMm); }); @@ -438,17 +444,16 @@ public class CruiseSamplingCache implements Closeable { * @param species l'espèces concernée * @param gender le sexe de l'échantillon (peut-être null) * @param maturity la maturité de l'échantillon (peut-être null) - * @param lengthStep la classe de taille de l'échantillon + * @param lengthStep la classe de taille de l'échantillon (en mm) */ public void removeIndividualObservation(FishingOperation fishingOperation, Species species, CaracteristicQualitativeValue gender, Boolean maturity, - Float lengthStep) { + int lengthStep) { Objects.requireNonNull(fishingOperation); Objects.requireNonNull(species); - Objects.requireNonNull(lengthStep); Optional<Zone> optionalZone = tryFindZone(fishingOperation); @@ -464,19 +469,18 @@ public class CruiseSamplingCache implements Closeable { * @param species l'espèces concernée * @param gender le sexe de l'échantillon (peut-être null) * @param maturity la maturité de l'échantillon (peut-être null) - * @param lengthStep la classe de taille de l'échantillon + * @param lengthStep la classe de taille de l'échantillon (en mm) */ public void removeIndividualObservation(Integer fishingOperationId, Optional<Zone> optionalZone, Species species, CaracteristicQualitativeValue gender, Boolean maturity, - Float lengthStep) { + int lengthStep) { Objects.requireNonNull(fishingOperationId); Objects.requireNonNull(optionalZone); Objects.requireNonNull(species); - Objects.requireNonNull(lengthStep); Optional<CalcifiedPiecesSamplingDefinition> cpsDefinitionOpt = getCalcifiedPiecesSamplingDefinition(species, maturity, lengthStep); @@ -522,14 +526,14 @@ public class CruiseSamplingCache implements Closeable { * @param species l'espèces concernée * @param gender le sexe de l'échantillon (peut-être null) * @param maturity la maturité de l'échantillon (peut-être null) - * @param lengthStep la classe de taille de l'échantillon + * @param lengthStep la classe de taille de l'échantillon (en mm) * @param samplingCode le code de prélèvement supprimé */ public void removeSampling(FishingOperation fishingOperation, Species species, CaracteristicQualitativeValue gender, Boolean maturity, - float lengthStep, + int lengthStep, String samplingCode) { Objects.requireNonNull(fishingOperation); @@ -548,7 +552,7 @@ public class CruiseSamplingCache implements Closeable { * @param species l'espèces concernée * @param gender le sexe de l'échantillon (peut-être null) * @param maturity la maturité de l'échantillon (peut-être null) - * @param lengthStep la classe de taille de l'échantillon + * @param lengthStep la classe de taille de l'échantillon (en mm) * @param samplingCode le code de prélèvement supprimé */ public void removeSampling(Integer fishingOperationId, @@ -556,7 +560,7 @@ public class CruiseSamplingCache implements Closeable { Species species, CaracteristicQualitativeValue gender, Boolean maturity, - float lengthStep, + int lengthStep, String samplingCode) { Objects.requireNonNull(fishingOperationId); diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/CruiseSamplingInternalCache.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/CruiseSamplingInternalCache.java index 96afef3..bb4ff26 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/CruiseSamplingInternalCache.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/CruiseSamplingInternalCache.java @@ -52,9 +52,8 @@ class CruiseSamplingInternalCache implements Closeable { private static final String KEY_SEPARATOR = "#"; - public static String createSamplingKey(Species species, CaracteristicQualitativeValue gender, Boolean maturity, Float lengthStep) { + public static String createSamplingKey(Species species, CaracteristicQualitativeValue gender, Boolean maturity, int lengthStep) { Objects.requireNonNull(species); - Objects.requireNonNull(lengthStep); return species.getReferenceTaxonId() + KEY_SEPARATOR + (gender == null ? null : gender.getId()) + KEY_SEPARATOR + maturity diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/IndividualObservationUICache.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/IndividualObservationUICache.java index 2f5762b..a0c2f63 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/IndividualObservationUICache.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/IndividualObservationUICache.java @@ -36,6 +36,7 @@ import fr.ifremer.tutti.service.sampling.SamplingEvent; import fr.ifremer.tutti.service.sampling.SamplingListener; import fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation.IndividualObservationBatchRowModel; import fr.ifremer.tutti.ui.swing.content.operation.catches.species.edit.SpeciesBatchRowModel; +import fr.ifremer.tutti.util.Numbers; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.decorator.Decorator; @@ -160,7 +161,9 @@ public class IndividualObservationUICache implements Closeable { String nbForCruiseLabel = getLabelForSamplingNumber(nbForCruise, cpsDef.getMaxByLenghtStep()); Decorator<Species> speciesDecorator = ui.getHandler().getDecorator(Species.class, DecoratorService.WITH_SURVEY_CODE); - String key = speciesDecorator.toString(species) + " " + event.getLengthStep() + " " + uiModel.getLengthStepCaracteristicUnit(); + String key = speciesDecorator.toString(species) + + " " + Numbers.convertFromMm(event.getLengthStep(), uiModel.getLengthStepCaracteristicUnit()) + + " " + uiModel.getLengthStepCaracteristicUnit(); if (event.getGender() != null) { key += " " + event.getGender().getDescription(); } @@ -264,7 +267,7 @@ public class IndividualObservationUICache implements Closeable { species, gender, maturity, - uiModel.getLengthStep(lengthStep)); + uiModel.getLengthStepInMm(lengthStep)); if (samplingCode.isPresent()) { incrementsSamplingNb(gender, maturityQualitativeValue, lengthStep, samplingCode.get()); @@ -296,7 +299,7 @@ public class IndividualObservationUICache implements Closeable { species, gender, maturity, - uiModel.getLengthStep(lengthStep), + uiModel.getLengthStepInMm(lengthStep), samplingCode); } @@ -348,10 +351,10 @@ public class IndividualObservationUICache implements Closeable { species, gender, maturity, - uiModel.getLengthStep(lengthStep)); + uiModel.getLengthStepInMm(lengthStep)); if (samplingCode.isPresent()) { - decrementsSamplingNb(gender, maturityQualitativeValue, uiModel.getLengthStep(lengthStep), samplingCode.get()); + decrementsSamplingNb(gender, maturityQualitativeValue, lengthStep, samplingCode.get()); } } @@ -380,7 +383,7 @@ public class IndividualObservationUICache implements Closeable { species, gender, maturity, - uiModel.getLengthStep(lengthStep), + uiModel.getLengthStepInMm(lengthStep), samplingCode); } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIModel.java index fe1d875..eec8c99 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIModel.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIModel.java @@ -32,6 +32,7 @@ import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SpeciesOrBent import fr.ifremer.tutti.ui.swing.content.operation.catches.species.edit.SpeciesBatchRowModel; import fr.ifremer.tutti.ui.swing.util.computable.ComputableData; import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableUIModel; +import fr.ifremer.tutti.util.Numbers; import fr.ifremer.tutti.util.Weights; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.logging.Log; @@ -563,6 +564,13 @@ public class SpeciesFrequencyUIModel extends AbstractTuttiTableUIModel<SpeciesBa return correctIntStep / 10f; } + public int getLengthStepInMm(float lengthStep) { + int intValue = (int) (lengthStep * 10); + int intStep = (int) (step * 10); + int correctIntStep = intValue - (intValue % intStep); + return Numbers.convertToMm(correctIntStep / 10f, getLengthStepCaracteristicUnit()); + } + public Integer getTotalNumber() { return totalNumber; } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm