[Suiviobsmer-commits] r589 - in trunk: . wao-business wao-business/src/main/java/fr/ifremer/wao/bean wao-business/src/main/java/fr/ifremer/wao/service wao-business/src/main/xmi
Author: fdesbois Date: 2010-07-06 10:00:12 +0000 (Tue, 06 Jul 2010) New Revision: 589 Log: Evo #2352 : Cartography for contacts : - Clean pom using JAK stable (need exclusion of Jaxb snapshot dependencies) - Use boatDistrict Id in query instead of full entity (doesn't work with aggregation) Modified: trunk/pom.xml trunk/wao-business/pom.xml trunk/wao-business/src/main/java/fr/ifremer/wao/bean/PieChartDataImpl.java trunk/wao-business/src/main/java/fr/ifremer/wao/bean/SamplingFilterImpl.java trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceCartographyImpl.java trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSynthesisImpl.java trunk/wao-business/src/main/xmi/wao.zargo Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2010-07-05 16:36:59 UTC (rev 588) +++ trunk/pom.xml 2010-07-06 10:00:12 UTC (rev 589) @@ -139,9 +139,29 @@ <dependency> <groupId>de.micromata.jak</groupId> <artifactId>JavaAPIforKml</artifactId> - <version>2.2.0-SNAPSHOT</version> + <version>2.2.0</version> + <exclusions> + <exclusion> + <groupId>com.sun.xml.bind</groupId> + <artifactId>jaxb-impl</artifactId> + </exclusion> + <exclusion> + <groupId>com.sun.xml.bind</groupId> + <artifactId>jaxb-xjc</artifactId> + </exclusion> + </exclusions> </dependency> <dependency> + <groupId>com.sun.xml.bind</groupId> + <artifactId>jaxb-impl</artifactId> + <version>2.2</version> + </dependency> + <dependency> + <groupId>com.sun.xml.bind</groupId> + <artifactId>jaxb-xjc</artifactId> + <version>2.2</version> + </dependency> + <dependency> <groupId>xpp3</groupId> <artifactId>xpp3</artifactId> <version>1.1.4c</version> Modified: trunk/wao-business/pom.xml =================================================================== --- trunk/wao-business/pom.xml 2010-07-05 16:36:59 UTC (rev 588) +++ trunk/wao-business/pom.xml 2010-07-06 10:00:12 UTC (rev 589) @@ -59,6 +59,14 @@ <artifactId>JavaAPIforKml</artifactId> </dependency> <dependency> + <groupId>com.sun.xml.bind</groupId> + <artifactId>jaxb-impl</artifactId> + </dependency> + <dependency> + <groupId>com.sun.xml.bind</groupId> + <artifactId>jaxb-xjc</artifactId> + </dependency> + <dependency> <groupId>xpp3</groupId> <artifactId>xpp3</artifactId> </dependency> @@ -197,5 +205,17 @@ <developerConnection>scm:svn:svn+ssh://fdesbois at labs.libre-entreprise.org/svnroot/suiviobsmer/trunk/wao-business</developerConnection> </scm> + <!--<repositories>--> + <!--<repository>--> + <!--<id>maven2-repository.dev.java.net</id>--> + <!--<name>Java.net Maven 2 Repository</name>--> + <!--<url>http://download.java.net/maven/2</url>--> + <!--<layout>default</layout>--> + <!--<snapshots>--> + <!--<enabled>true</enabled>--> + <!--</snapshots>--> + <!--</repository>--> + <!--</repositories>--> + </project> Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/bean/PieChartDataImpl.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/bean/PieChartDataImpl.java 2010-07-05 16:36:59 UTC (rev 588) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/bean/PieChartDataImpl.java 2010-07-06 10:00:12 UTC (rev 589) @@ -1,5 +1,6 @@ package fr.ifremer.wao.bean; +import org.apache.commons.lang.StringUtils; import org.nuiton.util.StringUtil; import java.util.ArrayList; @@ -30,11 +31,6 @@ } @Override - public void addSeries(PieChartSeries series) { - this.series.add(series); - } - - @Override public void computeSeries() { for (PieChartSeries curr : series) { double value = curr.getValue(); Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/bean/SamplingFilterImpl.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/bean/SamplingFilterImpl.java 2010-07-05 16:36:59 UTC (rev 588) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/bean/SamplingFilterImpl.java 2010-07-06 10:00:12 UTC (rev 589) @@ -35,135 +35,6 @@ * @author fdesbois <fdesbois at codelutin.com> */ public class SamplingFilterImpl extends SamplingFilter { -// -// /** -// * Prepare the {@code query} for fishingZone filters. Need to know the -// * FishingZone {@code main} alias for the query. -// * -// * @param query to prepare with fishingZone filters (facadeName, sectorName) -// * @param sampleRow alias of the fishingZone in the query -// * @return the query with elements added -// * @since 1.1.2 -// */ -// protected TopiaQuery prepareQueryForFishingZone(TopiaQuery query, -// String sampleRow) { -// -// if (StringUtils.isNotEmpty(getSectorName())) { -// String sectorNameProperty = -// TopiaQuery.getProperty(sampleRow, FishingZone.SECTOR_NAME); -// query.add(sectorNameProperty, getSectorName()); -// } else if (StringUtils.isNotEmpty(getFacadeName())) { -// String facadeNameProperty = -// TopiaQuery.getProperty(sampleRow, FishingZone.FACADE_NAME); -// query.add(facadeNameProperty, getFacadeName()); -// } -// -// return query; -// } -// -// /** -// * Prepare the {@code query} with sampleRow filters. Need the {@code main} -// * alias to set SampleRow properties. -// * -// * @param query to prepare with sampleRow filters -// * @param sampleRow alias for sampleRow entity in the query -// * @return the query with filtered elements added -// */ -// @Override -// public TopiaQuery prepareQueryForSampling(TopiaQuery query, String sampleRow) { -// query = prepareQueryForSampling(query, sampleRow, null); -// return query; -// } -// -// /** -// * Prepare the {@code query} with sampleRow filters. Need the {@code main} -// * alias to set SampleRow properties. The zoneAlias can also be used if -// * the query already have the fishingZone. -// * -// * @param query to prepare with sampleRow filters -// * @param sampleRow alias for sampleRow entity in the query -// * @param zoneAlias for fishingZone entity in the query (can be null) -// * @return the query with filtered elements added -// */ -// @Override -// public TopiaQuery prepareQueryForSampling(TopiaQuery query, String sampleRow, -// String zoneAlias) { -// -// // SampleRow filter depends on SampleRow OR sectorName OR facadeName -// // sectorName and facadeName are the two FishingZone filters known -// if (getSampleRow() != null) { -// query.add(sampleRow, getSampleRow()); -// // FishingZone filter (sectorName OR facadeName) -// } else if (StringUtils.isNotEmpty(getSectorName()) || -// StringUtils.isNotEmpty(getFacadeName())) { -// -// // If zoneAlias is set, no need to create a subquery to link -// // with fishingZone -// if (zoneAlias != null) { -// query = prepareQueryForFishingZone(query, zoneAlias); -// } else { -// // Otherwise, create a subquery to retrieve sampleRows -// // corresponding to fishingZone filters -// String fishingZoneProperty = -// TopiaQuery.getProperty("SR", SampleRow.FISHING_ZONE); -// TopiaQuery subquery = new TopiaQuery(SampleRow.class, "SR"). -// addFrom(FishingZone.class, "F"). -// add("F IN elements(" + fishingZoneProperty + ")"); -// -// subquery = prepareQueryForFishingZone(subquery, "F"); -// -// query.add(sampleRow + " IN (" + subquery.fullQuery() + ")"). -// addParams(subquery.getParams()); -// } -// } -// -// // CodeDCF5 filter -// if (getCodeDCF5() != null) { -// String codeDCF5Prop = -// TopiaQuery.getProperty(sampleRow, -// SampleRow.PROFESSION, -// Profession.CODE_DCF5); -// query.add(codeDCF5Prop, Op.LIKE, "%" + getCodeDCF5() + "%"); -// } -// -// // Program filter -// if (getProgramName() != null) { -// String programProperty = -// TopiaQuery.getProperty(sampleRow, SampleRow.PROGRAM_NAME); -// query.add(programProperty, getProgramName()); -// } -// -// String periodEndProperty = -// TopiaQuery.getProperty(sampleRow, SampleRow.PERIOD_END); -// String periodBeginProperty = -// TopiaQuery.getProperty(sampleRow, SampleRow.PERIOD_BEGIN); -// -// // Period filter on sampleRow dates -// if (getPeriod() != null) { -// getPeriod().initDayOfMonthExtremities(); -// query.add(periodBeginProperty, Op.LT, getPeriod().getThruDate()). -// add(periodEndProperty, Op.GT, getPeriod().getFromDate()); -// } else if (getFromDate() != null) { -// query.add(periodEndProperty, Op.GE, getFromDate()); -// } -// -// // Company -// if (getCompany() != null) { -// String companyProperty = -// TopiaQuery.getProperty(sampleRow, SampleRow.COMPANY); -// query.add(companyProperty, getCompany()); -// } -// -// if (getNbMonthFinishedFromToday() != null) { -// // Only rows which are not finished will be kept -// Calendar calendar = new GregorianCalendar(); -// calendar.setTime(WaoUtils.getCurrentDate()); -// calendar.add(Calendar.MONTH, getNbMonthFinishedFromToday()); -// query.add(periodEndProperty, Op.GE, calendar.getTime()); -// } -// -// return query; -// } @Override public boolean isSamplingFiltered() { Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceCartographyImpl.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceCartographyImpl.java 2010-07-05 16:36:59 UTC (rev 588) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceCartographyImpl.java 2010-07-06 10:00:12 UTC (rev 589) @@ -137,14 +137,16 @@ Company company) throws TopiaException, IOException { + BoatDistrictDAO dao = WaoDAOHelper.getBoatDistrictDAO(transaction); + KmlWriter writer = KmlIOFactory.newContactWriterJak(); - Map<BoatDistrict, PieChartData> districts = + Map<String, PieChartData> districts = serviceSynthesis.getContactPieChartDataByBoatDistrict(company); - for (BoatDistrict district : districts.keySet()) { + for (String districtId : districts.keySet()) { - PieChartData data = districts.get(district); + PieChartData data = districts.get(districtId); // Replace each values by percentage data.computeSeries(); @@ -152,6 +154,8 @@ String miniChartUrl = serviceChart.getPieChartUrl(data, true); String bigChartUrl = serviceChart.getPieChartUrl(data, false); + BoatDistrict district = dao.findByTopiaId(districtId); + StringBuilder description = new StringBuilder(district.getCode()); writer.record(district, miniChartUrl, description.toString()); 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-07-05 16:36:59 UTC (rev 588) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSynthesisImpl.java 2010-07-06 10:00:12 UTC (rev 589) @@ -45,6 +45,7 @@ import fr.ifremer.wao.bean.SamplingFilter; import fr.ifremer.wao.entity.Boat; import fr.ifremer.wao.entity.BoatDistrict; +import fr.ifremer.wao.entity.BoatDistrictDAO; import fr.ifremer.wao.entity.Company; import fr.ifremer.wao.entity.Contact; import fr.ifremer.wao.entity.ContactDAO; @@ -566,7 +567,7 @@ } @Override - public Map<BoatDistrict, PieChartData> executeGetContactPieChartDataByBoatDistrict( + public Map<String, PieChartData> executeGetContactPieChartDataByBoatDistrict( TopiaContext transaction, Company company) throws TopiaException { @@ -579,33 +580,38 @@ contactProperty.boatProperty().boatDistrictProperty(); TopiaQuery query = dao.createQuery(contactProperty.$alias()). + // Only districts with no null coordinates addNotNull(boatDistrictProperty.latitude()). - addNotNull(boatDistrictProperty.longitude()); + addNotNull(boatDistrictProperty.longitude()). + // Don't take contacts refused by company or program + addWhere(contactProperty.validationCompany(), Op.NEQ, Boolean.FALSE). + addWhere(contactProperty.validationProgram(), Op.NEQ, Boolean.FALSE); if (company != null) { query.addEquals(contactProperty.observerProperty().company(), company); } - query.setSelect(boatDistrictProperty.$alias(), contactProperty.state(), "COUNT(*)"). - addGroup(boatDistrictProperty.$alias(), contactProperty.state()). - addOrder(boatDistrictProperty.$alias()); + //String countSelect = WaoQueryHelper.format("COUNT($1)", contactProperty.$alias()); + query.setSelect(boatDistrictProperty.topiaId(), contactProperty.state(), "COUNT(*)"). + addGroup(boatDistrictProperty.topiaId(), contactProperty.state()); + int realized = 0, refused = 0, other = 0, total = 0; List<Object[]> queryResults = transaction.findByQuery(query); - Map<BoatDistrict, PieChartData> results = new HashMap<BoatDistrict, PieChartData>(); + Map<String, PieChartData> results = new HashMap<String, PieChartData>(); for (Object[] row : queryResults) { - BoatDistrict district = (BoatDistrict)row[0]; + String districtId = (String)row[0]; ContactState state = ContactState.valueOf((Integer)row[1]); long count = (Long)row[2]; - PieChartData data = results.get(district); + PieChartData data = results.get(districtId); if (data == null) { data = createContactPieChartData(); - results.put(district, data); + results.put(districtId, data); } switch (state) { Modified: trunk/wao-business/src/main/xmi/wao.zargo =================================================================== (Binary files differ)
participants (1)
-
fdesbois@users.labs.libre-entreprise.org