Author: tchemit Date: 2014-05-23 09:50:04 +0200 (Fri, 23 May 2014) New Revision: 1812 Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1812 Log: refs #5132 (report from version 3.3.5) Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/psionimport/PsionImportModel.java trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/psionimport/PsionImportService.java trunk/tutti-service/src/test/resources/psion/evo-5077.IWA Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/psionimport/PsionImportModel.java =================================================================== --- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/psionimport/PsionImportModel.java 2014-05-23 07:42:55 UTC (rev 1811) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/psionimport/PsionImportModel.java 2014-05-23 07:50:04 UTC (rev 1812) @@ -245,33 +245,6 @@ void checkSortedBatches() throws IOException { -// for (Species species : sortedBatchsBySpecies.keySet()) { -// -// Collection<PsionImportBatchModel> sortedBatches = sortedBatchsBySpecies.get(species); -// -// Map<String, Float> weightByCategory = new HashMap<>(); -// -// for (PsionImportBatchModel sortedBatch : sortedBatches) { -// Float weight = sortedBatch.getWeight(); -// if (TuttiEntities.isGreaterWeight(weight, 0)) { -// -// Float rootweight = weightByCategory.get(sortedBatch.getCategoryCode()); -// -// if (rootweight == null) { -// -// // first time -// weightByCategory.put(sortedBatch.getCategoryCode(), weight); -// } else if (!TuttiEntities.isEqualWeight(rootweight, weight)) { -// -// // can't have 2 batches with different vrac batch weight -// throw new IOException( -// t("tutti.service.psionimport.error.inconsistentVracWeight.message", species.getSurveyCode())); -// } -// -// } -// } -// } - for (Species species : sortedBatchsBySpecies.keySet()) { Collection<PsionImportBatchModel> speciesBatchesWithDoubleWeight = new ArrayList<>(); Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/psionimport/PsionImportService.java =================================================================== --- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/psionimport/PsionImportService.java 2014-05-23 07:42:55 UTC (rev 1811) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/psionimport/PsionImportService.java 2014-05-23 07:50:04 UTC (rev 1812) @@ -89,10 +89,14 @@ private static final Log log = LogFactory.getLog(PsionImportService.class); - protected static final Set<String> SEX_VALUES = Sets.newHashSet("I", "i", "F", "f", "M", "m"); + protected static final Set<String> NO_CATEGORY_VALUES = Sets.newHashSet("N", "n"); - protected static final Set<String> MATURITY_VALUES = Sets.newHashSet("1", "2", "3", "4", "5"); + protected static final Set<String> SIZE_CATEGORY_VALUES = Sets.newHashSet("G", "g", "P", "p"); + protected static final Set<String> SEX_CATEGORY_VALUES = Sets.newHashSet("I", "i", "F", "f", "M", "m"); + + protected static final Set<String> MATURITY_CATEGORY_VALUES = Sets.newHashSet("1", "2", "3", "4", "5"); + /** * All usables keywords in a psion import. * <p/> @@ -116,6 +120,8 @@ protected CaracteristicQualitativeValue unsortedCaracteristic; + protected Map<String, CaracteristicQualitativeValue> sizeCaracteristicValues; + protected Map<String, CaracteristicQualitativeValue> sexCaracteristicValues; protected Map<String, CaracteristicQualitativeValue> maturityCaracteristicValues; @@ -135,6 +141,23 @@ unsortedCaracteristic = TuttiEntities.getQualitativeValue(caracteristic, QualitativeValueId.SORTED_HORS_VRAC.getValue()); } + { // size caracteristic + + sizeCaracteristicValues = Maps.newTreeMap(); + + Caracteristic caracteristic = persistenceService.getSizeCategoryCaracteristic(); + + List<CaracteristicQualitativeValue> qualitativeValues = caracteristic.getQualitativeValue(); + + Map<Integer, CaracteristicQualitativeValue> sizeById = TuttiEntities.splitByIdAsInt(qualitativeValues); + CaracteristicQualitativeValue smallCaracteristic = sizeById.get(QualitativeValueId.SIZE_SMALL.getValue()); + sizeCaracteristicValues.put("P", smallCaracteristic); + sizeCaracteristicValues.put("p", smallCaracteristic); + CaracteristicQualitativeValue bigCaracteristic = sizeById.get(QualitativeValueId.SIZE_BIG.getValue()); + sizeCaracteristicValues.put("G", bigCaracteristic); + sizeCaracteristicValues.put("g", bigCaracteristic); + } + { // sex caracteristic sexCaracteristicValues = Maps.newTreeMap(); @@ -432,7 +455,7 @@ continue; } - if ("n".equals(value) || "N".equals(value)) { + if (NO_CATEGORY_VALUES.contains(value)) { // special case, no category @@ -452,9 +475,7 @@ if (log.isWarnEnabled()) { log.warn(error); } - importModel.addError( - error - ); + importModel.addError(error); break; } @@ -720,15 +741,23 @@ Integer caracteristicId; CaracteristicQualitativeValue caracteristicQualitativeValue; - if (SEX_VALUES.contains(categoryCode)) { + if (SIZE_CATEGORY_VALUES.contains(categoryCode)) { + // size caracteristic + caracteristicId = PmfmId2.SIZE_CATEGORY.getValue(); + caracteristicQualitativeValue = sizeCaracteristicValues.get(categoryCode); + + result = new PsionImportBatchModel.SampleCategory(caracteristicId, caracteristicQualitativeValue); + + } else if (SEX_CATEGORY_VALUES.contains(categoryCode)) { + // sex caracteristic caracteristicId = PmfmId2.SEX.getValue(); caracteristicQualitativeValue = sexCaracteristicValues.get(categoryCode); result = new PsionImportBatchModel.SampleCategory(caracteristicId, caracteristicQualitativeValue); - } else if (MATURITY_VALUES.contains(categoryCode)) { + } else if (MATURITY_CATEGORY_VALUES.contains(categoryCode)) { // maturity caracteristic caracteristicId = PmfmId2.MATURITY.getValue(); Modified: trunk/tutti-service/src/test/resources/psion/evo-5077.IWA =================================================================== --- trunk/tutti-service/src/test/resources/psion/evo-5077.IWA 2014-05-23 07:42:55 UTC (rev 1811) +++ trunk/tutti-service/src/test/resources/psion/evo-5077.IWA 2014-05-23 07:50:04 UTC (rev 1812) @@ -22,10 +22,10 @@ ESPE : PAGEERY POID : 100 TAIL : 50 -CATE : M +CATE : GM2 LONG : 16.5 ESPE : PAGEERY POID : 150 TAIL : 80 -CATE : F +CATE : PF1 LONG : 16.5