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 4942e8678b0076aab5e2e1f044587296d136384b Author: jcouteau <couteau@codelutin.com> Date: Thu Feb 13 17:43:32 2020 +0100 fixes #10217 : Mise à jour de l'export Biotic pour la base CIEM --- .../service/atlantos/xml/XmlBioticExport.java | 82 +++++++++------------- 1 file changed, 35 insertions(+), 47 deletions(-) diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/atlantos/xml/XmlBioticExport.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/atlantos/xml/XmlBioticExport.java index 3a7611ca..7e9a0bc4 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/atlantos/xml/XmlBioticExport.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/atlantos/xml/XmlBioticExport.java @@ -278,7 +278,7 @@ public class XmlBioticExport implements EchoBaseService { if (lengthClass != null) { lengthClassValue = Float.parseFloat(lengthClass) * 10; } - String codeCatLCkey = codeCatKey+"#"+lengthClassValue.intValue(); + String codeCatLCkey = codeCatKey + "#" + lengthClassValue.intValue(); //get speciesCategoryWeight and speciesCategoryNumber Float speciesCategoryWeight = speciesCategoryWeights.get(codeCatKey); @@ -433,7 +433,7 @@ public class XmlBioticExport implements EchoBaseService { SpeciesCategory category = subsample.getSpeciesCategory(); String lengthClass = sampleDataValues.get("LengthClass"); - Float lengthClassValue = 0f; + float lengthClassValue = 0f; if (lengthClass != null) { lengthClassValue = Float.parseFloat(lengthClass) * 10; } @@ -448,77 +448,65 @@ public class XmlBioticExport implements EchoBaseService { xml.create("SpeciesValidity", "IDREF", vocabulary.getVocabularyCode("AC_SpeciesValidity_1")); if (category.getSizeCategory().getName().equals("0")) { - xml.create("SpeciesCategory", - 1); + xml.create("SpeciesCategory", 1); + } else if (category.getSizeCategory().getName().equals("G")){ + xml.create("SpeciesCategory", 2); } - if (category.getSizeCategory().getName().equals("G")){ - xml.create("SpeciesCategory", - 2); - } - xml.create("SpeciesCategoryNumber", - speciesCategoryNumber); + xml.create("SpeciesCategoryNumber", speciesCategoryNumber); xml.create("WeightUnit", "IDREF", vocabulary.getVocabularyCode("AC_WeightUnit_kg")); - xml.create("SpeciesCategoryWeight", - speciesCategoryWeight); + xml.create("SpeciesCategoryWeight", roundWith3Digits(speciesCategoryWeight)); xml.create("SpeciesSex"); if (subsampledNumber != null && subsampledNumber != 0) { //case catch of type subsample - xml.create("SubsampledNumber", - subsampledNumber); + xml.create("SubsampledNumber", subsampledNumber); if (weightAtLength != null && subsampledWeight != null) { - xml.create("SubsamplingFactor", - Float.parseFloat(weightAtLength) / subsampledWeight); + xml.create("SubsamplingFactor", Float.parseFloat(weightAtLength) / subsampledWeight); } else { - xml.create("SubsamplingFactor", - 0); - } - String subsampledWeightString = subsampledWeight.toString(); - //keep only 3 digits in decimal value for speciesCategoryWeight to prevent from rounds in calculus - if (subsampledWeightString.contains(".")){ - int dotIndex = subsampledWeightString.indexOf("."); - if (subsampledWeightString.length()>((dotIndex+3)+1)) { - subsampledWeightString = subsampledWeightString.substring(0, dotIndex + 3); - } + xml.create("SubsamplingFactor", 0); } - xml.create("SubsampleWeight", - subsampledWeightString); + xml.create("SubsampleWeight", roundWith3Digits(subsampledWeight)); } else { //Case catch of type total - xml.create("SubsampledNumber", - speciesCategoryNumber); + xml.create("SubsampledNumber", speciesCategoryNumber); if (weightAtLength != null && subsampledWeight != null) { - xml.create("SubsamplingFactor", - Float.parseFloat(weightAtLength) / speciesCategoryNumber); + xml.create("SubsamplingFactor", Float.parseFloat(weightAtLength) / speciesCategoryNumber); } else { - xml.create("SubsamplingFactor", - 0); + xml.create("SubsamplingFactor", 0); } - - - xml.create("SubsampleWeight", - speciesCategoryWeight); - + xml.create("SubsampleWeight", roundWith3Digits(speciesCategoryWeight)); } if (lengthClassValue!= 0) { xml.create("LengthCode", "IDREF", vocabulary.getVocabularyCode("AC_LengthCode_mm")); - xml.create("LengthClass", - lengthClassValue.intValue()); + xml.create("LengthClass", (int) lengthClassValue); xml.create("LengthType", "IDREF", vocabulary.getVocabularyCode("AC_LengthMeasurementType_1")); - xml.create("NumberAtLength", - numberAtLength); - xml.create("WeightAtLength", - weightAtLength != null ? weightAtLength : 0); + xml.create("NumberAtLength", numberAtLength); + xml.create("WeightAtLength", weightAtLength != null ? roundWith3Digits(weightAtLength) : 0); } } - + + public String roundWith3Digits(String weightString) { + //keep only 3 digits in decimal value for speciesCategoryWeight to prevent from rounds in calculus + if (weightString.contains(".")){ + int dotIndex = weightString.indexOf("."); + if (weightString.length()>((dotIndex+4)+1)) { + weightString = weightString.substring(0, dotIndex + 4); + } + } + return weightString; + } + + public String roundWith3Digits(Float weight) { + return roundWith3Digits(weight.toString()); + } + public void exportBiology(Sample individualSample, XmlWriter xml) throws IOException { - Map<String, Float> dataValues = new HashMap<String, Float>(); + Map<String, Float> dataValues = new HashMap<>(); Collection<SampleData> datas = individualSample.getSampleData(); for (SampleData data : datas) { String name = data.getSampleDataType().getName(); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.