Author: bleny Date: 2010-11-24 11:08:19 +0000 (Wed, 24 Nov 2010) New Revision: 799 Log: update second synthesis Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSynthesisImpl.java trunk/wao-business/src/main/xmi/wao.zargo trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Synthesis.java trunk/wao-ui/src/main/webapp/Synthesis.tml Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSynthesisImpl.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSynthesisImpl.java 2010-11-23 14:59:18 UTC (rev 798) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSynthesisImpl.java 2010-11-24 11:08:19 UTC (rev 799) @@ -214,10 +214,8 @@ @Override protected BoardingResult executeGetBoardingBoats(TopiaContext transaction, SamplingFilter filter) throws Exception { Map<String, Integer> mapBoarding = new LinkedHashMap<String, Integer>(); - Map<String, Integer> mapInvalidBoarding = new LinkedHashMap<String, Integer>(); BoardingResult result = new BoardingResultImpl(); result.setBoardings(mapBoarding); - result.setInvalidBoarding(mapInvalidBoarding); // Initialize max boardings and its max key value final int MAX_BOARDINGS = 12; @@ -225,13 +223,10 @@ // Prepare map which contains for each entry the number of boardings // for the key and the number of boats for the value. - mapInvalidBoarding.put(String.valueOf(0), 0); for (int i = 1; i < MAX_BOARDINGS; i++) { mapBoarding.put(String.valueOf(i), 0); - mapInvalidBoarding.put(String.valueOf(i), 0); } mapBoarding.put(maxBoardingsKey, 0); - mapInvalidBoarding.put(maxBoardingsKey, 0); // The number of boardings is the number of finished contacts // Use fromDate to filter contacts finished from this date @@ -296,11 +291,12 @@ Date lastTideBeginDate = null; int currentBoardingCount = 1; - int currentInvalidBoardingCount = 0; int maxBoardingCount = -1; Boat maxBoardingBoat = null; + int invalidBoardingCount = 0; + // We will browse result line after line, at each line, we know what was // in the last line. By Comparing we know if it's the same boat. // If yes, check sample-row and date to count a possible invalid @@ -327,7 +323,7 @@ if (sampleRowCode.equals(lastSampleRowCode) && DateUtil.getDifferenceInMonths(lastTideBeginDate, tideBeginDate) <= 3) { - currentInvalidBoardingCount += 1; + invalidBoardingCount += 1; } } @@ -367,24 +363,12 @@ Integer oldValue = mapBoarding.get(key); mapBoarding.put(key, oldValue + 1); - // update mapInvalidBoarding - if (currentInvalidBoardingCount >= MAX_BOARDINGS) { - key = maxBoardingsKey; - } else { - key = String.valueOf(currentInvalidBoardingCount); - } - - oldValue = mapInvalidBoarding.get(key); - mapInvalidBoarding.put(key, oldValue + 1); - if (log.isDebugEnabled()) { - log.debug(lastBoatName + " made " + currentBoardingCount + " boardings and " - + currentInvalidBoardingCount + " invalid boardings"); + log.debug(lastBoatName + " made " + currentBoardingCount + " boardings"); } // re-initialize values for the new boat in the lines currentBoardingCount = 1; - currentInvalidBoardingCount = 0; } lastBoatName = boatName; @@ -394,6 +378,9 @@ result.setMaxBoardingValue(maxBoardingCount); result.setMaxBoardingBoat(maxBoardingBoat); + result.setBoardingsCount(nbBoardingsByBoat.size()); + result.setInvalidBoardingsCount(invalidBoardingCount); + result.setValidBoardingsCount(nbBoardingsByBoat.size() - invalidBoardingCount); return result; } @@ -905,16 +892,11 @@ /** return null if 0 boarding */ protected Double getIndicatorValueForBoarding(SamplingFilter filter) { BoardingResult boardingResult = getBoardingBoats(filter); - - int numberOfBoatsWithZeroInvalidBoarding = boardingResult.getInvalidBoarding().get(String.valueOf(0)); - int totalNumberOfBoarding = 0; - for (Integer numberOfBoarding : boardingResult.getBoardings().values()) { - totalNumberOfBoarding += numberOfBoarding; - } + int boardingsCount = boardingResult.getBoardingsCount(); Double rate = null; - if (totalNumberOfBoarding > 0) { - rate = ((double) numberOfBoatsWithZeroInvalidBoarding / - (double) totalNumberOfBoarding) * 100.0; + if (boardingsCount > 0) { + rate = ((double) boardingResult.getValidBoardingsCount() / + (double) boardingsCount) * 100.0; } return rate; } Modified: trunk/wao-business/src/main/xmi/wao.zargo =================================================================== (Binary files differ) Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Synthesis.java =================================================================== --- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Synthesis.java 2010-11-23 14:59:18 UTC (rev 798) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Synthesis.java 2010-11-24 11:08:19 UTC (rev 799) @@ -352,12 +352,7 @@ Map<String, Map<?, Integer>> data = new LinkedHashMap<String, Map<?, Integer>>(); - // remove column with number of boats with 0 invalid boarding, we - // don't want it to be showed in the graph. - // getBoardingResult().getInvalidBoarding().remove(String.valueOf(0)); - // put invalid first to get red color - data.put("Nombre de navires ayant effectués x embarquements invalides", getBoardingResult().getInvalidBoarding()); data.put("Nombre de navires ayant effectués x embarquements", getBoardingResult().getBoardings()); String title = "Sollicitations des navires depuis le " + Modified: trunk/wao-ui/src/main/webapp/Synthesis.tml =================================================================== --- trunk/wao-ui/src/main/webapp/Synthesis.tml 2010-11-23 14:59:18 UTC (rev 798) +++ trunk/wao-ui/src/main/webapp/Synthesis.tml 2010-11-24 11:08:19 UTC (rev 799) @@ -189,6 +189,9 @@ Navire le plus sollicité avec ${boardingResult.maxBoardingValue} embarquements : <strong>${boardingResult.maxBoardingBoat.name} (${boardingResult.maxBoardingBoat.immatriculation})</strong> </p> + <p> + Au total, ${boardingResult.invalidBoardingsCount} embarquements invalides sur ${boardingResult.boardingsCount} embarquements. + </p> </t:if> <t:if test="user.indicatorsViewer">