Tony CHEMIT pushed to branch develop at ultreiaio / ird-t3 Commits: 08a664fc by Tony CHEMIT at 2018-02-20T23:38:41+01:00 [N0] Marée Echantillons seulement et gestion de l'UI du N0 (See #85) - - - - - 5b736ba8 by Tony CHEMIT at 2018-02-21T00:03:08+01:00 [N0] Calcul des temps de pêche (See #240) - - - - - 12 changed files: - t3-domain/src/main/java/fr/ird/t3/entities/data/AbstractTripTopiaDao.java - t3-domain/src/main/java/fr/ird/t3/entities/data/ActivityImpl.java - t3-domain/src/main/java/fr/ird/t3/entities/data/ComputedDataHelper.java - t3-domain/src/main/java/fr/ird/t3/entities/reference/AbstractCountryTopiaDao.java - t3-domain/src/main/java/fr/ird/t3/services/migration/T3MigrationCallbackV2_2.java - t3-domain/src/main/xmi/t3-persistence.zargo - t3-domain/src/test/java/fr/ird/t3/entities/data/TripTopiaDaoTest.java - t3-domain/src/test/java/fr/ird/t3/entities/reference/CountryTopiaDaoTest.java - t3-web/src/main/java/fr/ird/t3/web/actions/data/level0/AbstractLevel0ConfigureAction.java - t3-web/src/main/java/fr/ird/t3/web/actions/data/level2/ConfigureLevel2Step1Action.java - t3-web/src/main/java/fr/ird/t3/web/actions/data/level3/ConfigureLevel3Step1Action.java - t3-web/src/main/java/fr/ird/t3/web/actions/io/output/ExportConfigureAction.java Changes: ===================================== t3-domain/src/main/java/fr/ird/t3/entities/data/AbstractTripTopiaDao.java ===================================== --- a/t3-domain/src/main/java/fr/ird/t3/entities/data/AbstractTripTopiaDao.java +++ b/t3-domain/src/main/java/fr/ird/t3/entities/data/AbstractTripTopiaDao.java @@ -42,6 +42,13 @@ import fr.ird.t3.entities.reference.Vessel; import fr.ird.t3.entities.type.T3Date; import fr.ird.t3.entities.type.T3Point; import fr.ird.t3.entities.type.T3PointImpl; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang3.tuple.MutablePair; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.nuiton.topia.persistence.TopiaException; +import org.nuiton.topia.persistence.support.TopiaSqlQuery; + import java.io.Serializable; import java.sql.Connection; import java.sql.PreparedStatement; @@ -53,12 +60,6 @@ import java.util.Comparator; import java.util.Date; import java.util.List; import java.util.Set; -import org.apache.commons.collections.CollectionUtils; -import org.apache.commons.lang3.tuple.MutablePair; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.nuiton.topia.persistence.TopiaException; -import org.nuiton.topia.persistence.support.TopiaSqlQuery; /** * Client implementation of the Trip dao. @@ -214,8 +215,8 @@ public class AbstractTripTopiaDao<E extends Trip> extends GeneratedTripTopiaDao< } public List<Integer> findAllYearsUsedInTrip() throws TopiaException { - T3Date minDate = getFirstLandingDate(); - T3Date maxDate = getLastLandingDate(); + T3Date minDate = getFirstLandingDate(null); + T3Date maxDate = getLastLandingDate(null); int minYear = minDate.getYear(); int maxYear = maxDate.getYear(); Set<Integer> years = Sets.newHashSet(); @@ -227,9 +228,10 @@ public class AbstractTripTopiaDao<E extends Trip> extends GeneratedTripTopiaDao< return result; } - public T3Date getFirstLandingDate() throws TopiaException { + public T3Date getFirstLandingDate(Boolean samplesOnly) throws TopiaException { - String hql = " SELECT min(t.landingDate) FROM TripImpl t"; + String samplesOnlyFilter = samplesOnly == null ? "" : (" WHERE t.samplesOnly = " + samplesOnly); + String hql = " SELECT min(t.landingDate) FROM TripImpl t" + samplesOnlyFilter; Date date = findAnyOrNull(hql); // Date date = (Date) createQuery(). // executeToObject(getContext(), @@ -243,9 +245,10 @@ public class AbstractTripTopiaDao<E extends Trip> extends GeneratedTripTopiaDao< return result; } - public T3Date getLastLandingDate() throws TopiaException { + public T3Date getLastLandingDate(Boolean samplesOnly) throws TopiaException { - String hql = " SELECT max(t.landingDate) FROM TripImpl t"; + String samplesOnlyFilter = samplesOnly == null ? "" : (" WHERE t.samplesOnly = " + samplesOnly); + String hql = " SELECT max(t.landingDate) FROM TripImpl t" + samplesOnlyFilter; Date date = findAnyOrNull(hql); // Date date = (Date) createQuery(). ===================================== t3-domain/src/main/java/fr/ird/t3/entities/data/ActivityImpl.java ===================================== --- a/t3-domain/src/main/java/fr/ird/t3/entities/data/ActivityImpl.java +++ b/t3-domain/src/main/java/fr/ird/t3/entities/data/ActivityImpl.java @@ -59,6 +59,17 @@ public class ActivityImpl extends ActivityAbstract { ); protected Integer quadrant; + private transient Date date; + + @Override + public Date getDate() { + return date != null ? date : getRoute().getDate(); + } + + @Override + public void setDate(Date date) { + this.date = date; + } @Override public Trip getTrip() { ===================================== t3-domain/src/main/java/fr/ird/t3/entities/data/ComputedDataHelper.java ===================================== --- a/t3-domain/src/main/java/fr/ird/t3/entities/data/ComputedDataHelper.java +++ b/t3-domain/src/main/java/fr/ird/t3/entities/data/ComputedDataHelper.java @@ -53,6 +53,9 @@ public class ComputedDataHelper { public static <E extends ComputedDataAware> void deleteComputedDataLevel0(Collection<E> entities) { if (CollectionUtils.isNotEmpty(entities)) { for (E entity : entities) { + if (entity==null) { + continue; + } entity.deleteComputedDataLevel0(); } } ===================================== t3-domain/src/main/java/fr/ird/t3/entities/reference/AbstractCountryTopiaDao.java ===================================== --- a/t3-domain/src/main/java/fr/ird/t3/entities/reference/AbstractCountryTopiaDao.java +++ b/t3-domain/src/main/java/fr/ird/t3/entities/reference/AbstractCountryTopiaDao.java @@ -25,10 +25,11 @@ import com.google.common.collect.ImmutableMap; import com.google.common.collect.Sets; import fr.ird.t3.entities.T3Functions; import fr.ird.t3.entities.data.Trip; +import org.nuiton.topia.persistence.TopiaException; + import java.util.Collection; import java.util.HashSet; import java.util.Set; -import org.nuiton.topia.persistence.TopiaException; /** * {@link Country} user dao operations. @@ -41,14 +42,14 @@ public class AbstractCountryTopiaDao<E extends Country> extends GeneratedCountry /** * Obtains all countries used as fleet for any trip in the database. * + * @param samplesOnly if null no filter else filter on value * @return the set of fleet countries used by any trip in the database * @throws TopiaException if any problem while querying the database */ - public Set<E> findAllFleetUsedInTrip() throws TopiaException { + public Set<E> findAllFleetUsedInTrip(Boolean samplesOnly) throws TopiaException { - String hql = "SELECT DISTINCT(c) " + - "FROM CountryImpl c, TripImpl t " + - "WHERE t.vessel.fleetCountry = c.id"; + String samplesOnlyFilter = samplesOnly == null ? "" : (" AND t.samplesOnly = " + samplesOnly); + String hql = "SELECT DISTINCT(c) FROM CountryImpl c, TripImpl t WHERE t.vessel.fleetCountry = c.id" + samplesOnlyFilter; // TopiaQuery query = createQuery("c") // .addFrom(Trip.class, "t") ===================================== t3-domain/src/main/java/fr/ird/t3/services/migration/T3MigrationCallbackV2_2.java ===================================== --- a/t3-domain/src/main/java/fr/ird/t3/services/migration/T3MigrationCallbackV2_2.java +++ b/t3-domain/src/main/java/fr/ird/t3/services/migration/T3MigrationCallbackV2_2.java @@ -77,13 +77,13 @@ public class T3MigrationCallbackV2_2 extends T3MigrationCallbackSupport { for (String tripId : tripList) { int i = tripId.indexOf('#'); - String routeIdPrefix = "fr.ird.t3.entities.data.Route#" + tripId.substring(i + 1, tripId.lastIndexOf('#') + 1); + String routeIdPrefix = "fr.ird.t3.entities.data.Route#" + tripId.substring(i + 1).replace(".", "").replace("#", "") + "#"; log.info("Route prefix: " + routeIdPrefix); List<TripActivity> activityList = sqlSupport.findMultipleResult(new TopiaSqlQuery<TripActivity>() { @Override public PreparedStatement prepareQuery(Connection connection) throws SQLException { - PreparedStatement preparedStatement = connection.prepareStatement("SELECT a.topiaId, a.date FROM activity a WHERE a.trip = ?"); + PreparedStatement preparedStatement = connection.prepareStatement("SELECT a.topiaId, a.date FROM activity a WHERE a.trip = ? ORDER BY date"); preparedStatement.setString(1, tripId); return preparedStatement; } @@ -94,9 +94,8 @@ public class T3MigrationCallbackV2_2 extends T3MigrationCallbackSupport { } }); - - Set<Date> days = new LinkedHashSet<>(); int activityIndex = 0; + Set<Date> days = new LinkedHashSet<>(); for (TripActivity activity : activityList) { String dayDateStr = df.format(activity.date); @@ -105,10 +104,10 @@ public class T3MigrationCallbackV2_2 extends T3MigrationCallbackSupport { if (days.add(activity.date)) { log.info(String.format("[%s] new Route: %s", tripId, routeId)); - // create new route + activityIndex = 0; queries.add(String.format("INSERT INTO Route(topiaId, topiaVersion, topiaCreateDate, trip, trip_idx, date) VALUES('%s', 0, CURRENT_TIMESTAMP, '%s', %d, to_date('%s', 'YYY-MM-DD'));", routeId, tripId, days.size() - 1, dayDateStr)); } - queries.add(String.format("UPDATE Activity SET route = '%s', route_idx = %d , topiaVersion = topiaVersion + 1 WHERE topiaId = '%s';", routeId, (activityIndex++), activity.activity)); + queries.add(String.format("UPDATE Activity SET route = '%s', route_idx = %d , topiaVersion = topiaVersion + 1 WHERE topiaId = '%s';", routeId, activityIndex++, activity.activity)); } if (!activityList.isEmpty()) { ===================================== t3-domain/src/main/xmi/t3-persistence.zargo ===================================== Binary files a/t3-domain/src/main/xmi/t3-persistence.zargo and b/t3-domain/src/main/xmi/t3-persistence.zargo differ ===================================== t3-domain/src/test/java/fr/ird/t3/entities/data/TripTopiaDaoTest.java ===================================== --- a/t3-domain/src/test/java/fr/ird/t3/entities/data/TripTopiaDaoTest.java +++ b/t3-domain/src/test/java/fr/ird/t3/entities/data/TripTopiaDaoTest.java @@ -101,13 +101,13 @@ public class TripTopiaDaoTest extends AbstractDatabaseTest { T3PersistenceFixtures.newTrip(tx, 1, endDate.toBeginDate()); - result = dao.getFirstLandingDate(); + result = dao.getFirstLandingDate(null); Assert.assertNotNull(result); Assert.assertEquals(endDate, result); T3PersistenceFixtures.newTrip(tx, 0, startDate.toBeginDate()); - result = dao.getFirstLandingDate(); + result = dao.getFirstLandingDate(null); Assert.assertNotNull(result); Assert.assertEquals(startDate, result); } @@ -122,13 +122,13 @@ public class TripTopiaDaoTest extends AbstractDatabaseTest { T3PersistenceFixtures.newTrip(tx, 0, startDate.toBeginDate()); - result = dao.getLastLandingDate(); + result = dao.getLastLandingDate(null); Assert.assertNotNull(result); Assert.assertEquals(startDate, result); T3PersistenceFixtures.newTrip(tx, 1, endDate.toBeginDate()); - result = dao.getLastLandingDate(); + result = dao.getLastLandingDate(null); Assert.assertNotNull(result); Assert.assertEquals(endDate, result); } ===================================== t3-domain/src/test/java/fr/ird/t3/entities/reference/CountryTopiaDaoTest.java ===================================== --- a/t3-domain/src/test/java/fr/ird/t3/entities/reference/CountryTopiaDaoTest.java +++ b/t3-domain/src/test/java/fr/ird/t3/entities/reference/CountryTopiaDaoTest.java @@ -63,7 +63,7 @@ public class CountryTopiaDaoTest extends AbstractDatabaseTest { T3PersistenceFixtures.newTrip(tx, vessel); - Set<Country> result = tx.getCountryDao().findAllFleetUsedInTrip(); + Set<Country> result = tx.getCountryDao().findAllFleetUsedInTrip(null); Assert.assertNotNull(result); Assert.assertEquals(1, result.size()); Assert.assertEquals(country, result.iterator().next()); ===================================== t3-web/src/main/java/fr/ird/t3/web/actions/data/level0/AbstractLevel0ConfigureAction.java ===================================== --- a/t3-web/src/main/java/fr/ird/t3/web/actions/data/level0/AbstractLevel0ConfigureAction.java +++ b/t3-web/src/main/java/fr/ird/t3/web/actions/data/level0/AbstractLevel0ConfigureAction.java @@ -67,7 +67,7 @@ public abstract class AbstractLevel0ConfigureAction<C extends AbstractLevel0Conf @InjectDecoratedBeans(beanType = VesselSimpleType.class) protected Map<String, String> vesselSimpleTypes; - @InjectDecoratedBeans(beanType = Country.class, pathIds = "configuration.") + @InjectDecoratedBeans(beanType = Country.class) protected Map<String, String> fleets; protected AbstractLevel0ConfigureAction(Class<C> configurationType) { @@ -99,7 +99,7 @@ public abstract class AbstractLevel0ConfigureAction<C extends AbstractLevel0Conf injectOnly(InjectDecoratedBeans.class); } - public final String prepareConfiguration() throws Exception { + public final String prepareConfiguration() { if (!isConfigurationInSession() && !hasFieldErrors()) { @@ -110,7 +110,7 @@ public abstract class AbstractLevel0ConfigureAction<C extends AbstractLevel0Conf } @Override - public final String execute() throws Exception { + public final String execute() { // init action context in session prepareActionContext(); @@ -136,14 +136,14 @@ public abstract class AbstractLevel0ConfigureAction<C extends AbstractLevel0Conf */ protected void loadDefaultConfiguration(C config) throws TopiaException { - T3Date minDate = tripDAO.getFirstLandingDate(); + T3Date minDate = tripDAO.getFirstLandingDate(false); config.setMinDate(minDate); config.setBeginDate(minDate); - T3Date maxDate = tripDAO.getLastLandingDate(); + T3Date maxDate = tripDAO.getLastLandingDate(false); config.setMaxDate(maxDate); config.setEndDate(maxDate); config.setVesselSimpleTypes(sortToList(vesselSimpleTypeDAO.findAllUsedInTrip(false))); - config.setFleets(sortToList(countryDAO.findAllFleetUsedInTrip())); + config.setFleets(sortToList(countryDAO.findAllFleetUsedInTrip(false))); if (log.isInfoEnabled()) { log.info("beginDate : " + config.getBeginDate()); ===================================== t3-web/src/main/java/fr/ird/t3/web/actions/data/level2/ConfigureLevel2Step1Action.java ===================================== --- a/t3-web/src/main/java/fr/ird/t3/web/actions/data/level2/ConfigureLevel2Step1Action.java +++ b/t3-web/src/main/java/fr/ird/t3/web/actions/data/level2/ConfigureLevel2Step1Action.java @@ -201,8 +201,8 @@ public class ConfigureLevel2Step1Action extends AbstractConfigureAction<Level2Co conf.setTimeStep(3); // use first and last landing date - T3Date firstLandingDate = tripDAO.getFirstLandingDate(); - T3Date lastLandingDate = tripDAO.getLastLandingDate(); + T3Date firstLandingDate = tripDAO.getFirstLandingDate(null); + T3Date lastLandingDate = tripDAO.getLastLandingDate(null); conf.setMinDate(firstLandingDate); conf.setBeginDate(firstLandingDate); conf.setMaxDate(lastLandingDate); ===================================== t3-web/src/main/java/fr/ird/t3/web/actions/data/level3/ConfigureLevel3Step1Action.java ===================================== --- a/t3-web/src/main/java/fr/ird/t3/web/actions/data/level3/ConfigureLevel3Step1Action.java +++ b/t3-web/src/main/java/fr/ird/t3/web/actions/data/level3/ConfigureLevel3Step1Action.java @@ -196,8 +196,8 @@ public class ConfigureLevel3Step1Action extends AbstractConfigureAction<Level3Co conf.setTimeStep(3); // use first and last landing date - T3Date firstLandingDate = tripDAO.getFirstLandingDate(); - T3Date lastLandingDate = tripDAO.getLastLandingDate(); + T3Date firstLandingDate = tripDAO.getFirstLandingDate(null); + T3Date lastLandingDate = tripDAO.getLastLandingDate(null); conf.setMinDate(firstLandingDate); conf.setBeginDate(firstLandingDate); conf.setMaxDate(lastLandingDate); ===================================== t3-web/src/main/java/fr/ird/t3/web/actions/io/output/ExportConfigureAction.java ===================================== --- a/t3-web/src/main/java/fr/ird/t3/web/actions/io/output/ExportConfigureAction.java +++ b/t3-web/src/main/java/fr/ird/t3/web/actions/io/output/ExportConfigureAction.java @@ -135,15 +135,15 @@ public class ExportConfigureAction extends AbstractConfigureAction<ExportConfigu // grab data and store once for all in configuration - T3Date beginDate = tripDAO.getFirstLandingDate(); + T3Date beginDate = tripDAO.getFirstLandingDate(null); conf.setMinDate(beginDate); conf.setBeginDate(beginDate); - T3Date endDate = tripDAO.getLastLandingDate(); + T3Date endDate = tripDAO.getLastLandingDate(null); conf.setMaxDate(endDate); conf.setEndDate(endDate); - conf.setFleets(sortToList(countryDAO.findAllFleetUsedInTrip())); + conf.setFleets(sortToList(countryDAO.findAllFleetUsedInTrip(null))); conf.setOceans(sortToList(oceanDAO.findAllUsedInActivity())); View it on GitLab: https://gitlab.com/ultreiaio/ird-t3/compare/26e69f3c92f5a91d63b77a44b57598b3... --- View it on GitLab: https://gitlab.com/ultreiaio/ird-t3/compare/26e69f3c92f5a91d63b77a44b57598b3... You're receiving this email because of your account on gitlab.com.