[Git][ultreiaio/ird-t3][develop] [N0.2] Ne calculer le RF2 que si l'une des marées de la strate a un défaut de logbook (See #312)
Tony CHEMIT pushed to branch develop at ultreiaio / ird-t3 Commits: 2ca9ec8e by Tony CHEMIT at 2018-04-11T13:21:13Z [N0.2] Ne calculer le RF2 que si l'une des marées de la strate a un défaut de logbook (See #312) - - - - - 3 changed files: - t3-actions/src/main/java/fr/ird/t3/actions/data/level0/ComputeRF2Action.java - t3-actions/src/main/resources/i18n/t3-actions_en_GB.properties - t3-actions/src/main/resources/i18n/t3-actions_fr_FR.properties Changes: ===================================== t3-actions/src/main/java/fr/ird/t3/actions/data/level0/ComputeRF2Action.java ===================================== --- a/t3-actions/src/main/java/fr/ird/t3/actions/data/level0/ComputeRF2Action.java +++ b/t3-actions/src/main/java/fr/ird/t3/actions/data/level0/ComputeRF2Action.java @@ -128,22 +128,22 @@ public class ComputeRF2Action extends AbstractLevel0Action<ComputeRF2Configurati setSpeciesByCountry(result); tripDone = TreeMultimap.create(); List<Trip> tripList = getUsableTrips(landingHarbours, true); - log.info("Trip count: "+tripList.size()); + log.info("Trip count: " + tripList.size()); setTrips(tripList); completeTripsByVessel = ArrayListMultimap.create(); // get all trips group by the vessel ListMultimap<Vessel, Trip> tripsByVessel = TripTopiaDao.groupByVessel(tripList); - log.info("Trip vessel count: "+tripsByVessel.keySet().size()); + log.info("Trip vessel count: " + tripsByVessel.keySet().size()); // compute for each vessel list of complete trip for (Map.Entry<Vessel, Collection<Trip>> entry : tripsByVessel.asMap().entrySet()) { Vessel vessel = entry.getKey(); List<Trip> tripsForVessel = new ArrayList<>(entry.getValue()); - log.info("Trip vessel ["+vessel.getLabel1()+"] count: "+tripsForVessel.size()); + log.info("Trip vessel [" + vessel.getLabel1() + "] count: " + tripsForVessel.size()); TripTopiaDao.sortTrips(tripsForVessel); // get all complete trips List<CompleteTrip> completeTrips = tripDAO.toCompleteTrip(tripsForVessel); - log.info("Complete trip vessel ["+vessel.getLabel1()+"] count: "+completeTrips.size()); + log.info("Complete trip vessel [" + vessel.getLabel1() + "] count: " + completeTrips.size()); completeTripsByVessel.putAll(vessel, completeTrips); } @@ -169,8 +169,10 @@ public class ComputeRF2Action extends AbstractLevel0Action<ComputeRF2Configurati boolean computeRf2 = !getConfiguration().isConfigurationEmpty(); - if (species.isEmpty()) { - log.info(String.format("Won't compute rf2 for any stratum of fleet %s since no species found for it.", countryStr)); + if (computeRf2 && species.isEmpty()) { + String message = l(locale, "t3.level0.computeRF2.skip.missing.species", harbourStr, countryStr); + log.info(message); + addInfoMessage(message); computeRf2 = false; } for (VesselSimpleType vesselSimpleType : vesselSimpleTypes) { @@ -191,6 +193,32 @@ public class ComputeRF2Action extends AbstractLevel0Action<ComputeRF2Configurati T3Date month = entry.getKey(); Collection<CompleteTrip> stratumTrips = entry.getValue(); nbStratum++; + boolean computeThisStratum = computeRf2; + if (computeRf2) { + // check that at least on trip miss logbook + computeThisStratum = false; + for (CompleteTrip completeTrip : stratumTrips) { + if (computeThisStratum) { + break; + } + for (Trip trip : completeTrip) { + if (trip.getElementaryCatchTotalWeightRf1(species) == 0) { + + // no logbook on this + computeThisStratum = true; + String message = l(locale, "t3.level0.computeRF2.found.missing.logbook", harbourStr, countryStr, vesselSimpleTypeStr, decorate(trip)); + log.info(message); + addInfoMessage(message); + break; + } + } + } + if (!computeThisStratum) { + String message = l(locale, "t3.level0.computeRF2.skip.missing.logbook", harbourStr, countryStr, vesselSimpleTypeStr); + log.info(message); + addInfoMessage(message); + } + } String message = l(locale, "t3.level0.computeRF2.nbTrips.for.stratum", stratumTrips.size(), nbStratum, @@ -200,7 +228,7 @@ public class ComputeRF2Action extends AbstractLevel0Action<ComputeRF2Configurati month); log.info(message); addInfoMessage(message); - executeForStratum(harbour, fleet, vesselSimpleType, month, species, stratumTrips, computeRf2); + executeForStratum(harbour, fleet, vesselSimpleType, month, species, stratumTrips, computeThisStratum); } } } @@ -269,7 +297,9 @@ public class ComputeRF2Action extends AbstractLevel0Action<ComputeRF2Configurati } // do the rf2 stratum computation float rf2 = computeRf2 ? computeRF2ForStratum(trips, species) : 1f; - addInfoMessage(l(locale, "t3.level0.computeRF2.computed.rf2.for.stratum", rf2)); + if (computeRf2) { + addInfoMessage(l(locale, "t3.level0.computeRF2.computed.rf2.for.stratum", rf2)); + } // assign rf2 value to the entity raisingFactor.setRaisingFactorValue(rf2); if (!rFCreated) { @@ -308,12 +338,12 @@ public class ComputeRF2Action extends AbstractLevel0Action<ComputeRF2Configurati tripCatchWeight = trip.getElementaryCatchTotalWeightRf1(species); } totalCatchWeight += tripCatchWeight; - if (canLog(tripStr,"compute")) { + if (canLog(tripStr, "compute")) { addInfoMessage(l(locale, "t3.level0.computeRF2.resume.rf1.for.trip", tripStr, tripCatchWeight, tripLandingWeight)); } } else { // this trip does not have any landing catches for given species - if (canLog(tripStr,"compute")) { + if (canLog(tripStr, "compute")) { addWarningMessage(l(locale, "t3.level0.computeRF2.resume.skip.for.trip", tripStr)); } } ===================================== t3-actions/src/main/resources/i18n/t3-actions_en_GB.properties ===================================== --- a/t3-actions/src/main/resources/i18n/t3-actions_en_GB.properties +++ b/t3-actions/src/main/resources/i18n/t3-actions_en_GB.properties @@ -38,10 +38,13 @@ t3.level0.computeRF1.warning.too.high.rf1=For complete trip %s from %s to %s com t3.level0.computeRF1.warning.too.low.rf1=For complete trip %s from %s to %s computed rf1 is too small (less than %s) t3.level0.computeRF1.warning.trip.is.not.complete=Trip %s is not compelte, can not compute any rf1 for it t3.level0.computeRF2.computed.rf2.for.stratum=Computed rf2 for stratum \: %s +t3.level0.computeRF2.found.missing.logbook=Stratum [%s/%s/%s] - found a trip {%s} without logbook, will compute rf2. t3.level0.computeRF2.nbTrips.for.stratum=%s complete trip(s) for Stratum (%s) [%s/%s/%s/%s] t3.level0.computeRF2.resume.rf1.for.trip=Trip %s total rf1 catches weight %s / total landing weight %s t3.level0.computeRF2.resume.skip.for.trip=Trip %s has not elementary landing (trip not used to compute rf2) t3.level0.computeRF2.resume.total.rf1=Sum total rf1 catches weight %s / Sum total landing weight %s +t3.level0.computeRF2.skip.missing.logbook=Stratum [%s/%s/%s] - won't compute rf2, since no logbook is missing. +t3.level0.computeRF2.skip.missing.species=Strate [%s/%s/???] - won't compute rf2, since no species found the fleet. t3.level0.computeSetDurationAndPositiveSetCount.error.noSetDurationFound=SetDuration data not found (ocean %s, fleet %s, school type %s, year %s) t3.level0.computeTripEffort=Trip efforts %s (fishing %s, search %s) t3.level0.computeTripEffortSkipForDay=Trip %s, day without fishing time (only activities of type « at harbour » or « under way without prospection ») ===================================== t3-actions/src/main/resources/i18n/t3-actions_fr_FR.properties ===================================== --- a/t3-actions/src/main/resources/i18n/t3-actions_fr_FR.properties +++ b/t3-actions/src/main/resources/i18n/t3-actions_fr_FR.properties @@ -38,10 +38,13 @@ t3.level0.computeRF1.warning.too.high.rf1=Pour la marée complète %s de %s à % t3.level0.computeRF1.warning.too.low.rf1=Pour la marée complète %s de %s à %s le rf1 calculé %s est trop petit (inférieur à %s) t3.level0.computeRF1.warning.trip.is.not.complete=La marée %s n'est pas complète, calcul du rf1 impossible t3.level0.computeRF2.computed.rf2.for.stratum=Valeur du rf2 calculé pour la strate \: %s +t3.level0.computeRF2.found.missing.logbook=Strate [%s/%s/%s] - une marée {%s} sans logbook a été trouvée, calcul du rf2 programmé. t3.level0.computeRF2.nbTrips.for.stratum=%s marée(s) complête(s) pour la Strate (%s) [%s/%s/%s/%s] t3.level0.computeRF2.resume.rf1.for.trip=Marée %s Poids total des captures rf1isées %s / Poids total des ventes %s t3.level0.computeRF2.resume.skip.for.trip=La marée %s ne possède pas de lots commerciaux (non prise en compte dans le calcul du rf2) t3.level0.computeRF2.resume.total.rf1=Poids cumulé des captures rf1isées %s / Poids cumulé des ventes %s +t3.level0.computeRF2.skip.missing.logbook=Strate [%s/%s/%s] - le rf2 ne sera pas calculé, aucun logbook manquant. +t3.level0.computeRF2.skip.missing.species=Strate [%s/%s/???] - le rf2 ne sera pas calculé, pas d'espèce trouvé pour la flotte. t3.level0.computeSetDurationAndPositiveSetCount.error.noSetDurationFound=Donnée SetDuration non trouvée (ocean %s, flotte %s, type de banc %s, année %s) t3.level0.computeTripEffort=Efforts de la marée %s (pêche %s, recherche %s) t3.level0.computeTripEffortSkipForDay=Marée %s, jour sans temps de pêche (uniquement des activités « au port » ou « route sans veille ») View it on GitLab: https://gitlab.com/ultreiaio/ird-t3/commit/2ca9ec8e77cb3595ed7584116d7513cf3... --- View it on GitLab: https://gitlab.com/ultreiaio/ird-t3/commit/2ca9ec8e77cb3595ed7584116d7513cf3... You're receiving this email because of your account on gitlab.com.
participants (1)
-
Tony CHEMIT