|
From: <de...@us...> - 2014-01-31 20:53:35
|
Revision: 8594
http://sourceforge.net/p/fudaa/svn/8594
Author: deniger
Date: 2014-01-31 20:53:28 +0000 (Fri, 31 Jan 2014)
Log Message:
-----------
CRUE-626
Modified Paths:
--------------
trunk/soft/fudaa-crue/crue-core/src/main/java/org/fudaa/dodico/crue/common/transformer/DateDurationConverter.java
trunk/soft/fudaa-crue/crue-core/src/test/java/org/fudaa/dodico/crue/common/DateDurationConverterTest.java
trunk/soft/fudaa-crue/crue-emh/src/main/java/org/fudaa/dodico/crue/metier/emh/ResultatTimeKey.java
trunk/soft/fudaa-crue/crue-emh/src/test/java/org/fudaa/dodico/crue/metier/emh/ResultatPasDeTempsTest.java
trunk/soft/fudaa-crue/crue-io/src/main/java/org/fudaa/dodico/crue/io/neuf/DHReader.java
trunk/soft/fudaa-crue/crue-io/src/main/java/org/fudaa/dodico/crue/io/neuf/FCBReader.java
trunk/soft/fudaa-crue/crue-io/src/main/java/org/fudaa/dodico/crue/io/res/RCalTimeStepBuilder.java
trunk/soft/fudaa-crue/crue-project/src/test/resources/integration/v1_1_1/Etu3-0.zip
trunk/soft/fudaa-crue/crue-project/src/test/resources/integration/v1_1_1/Etu3-1.zip
trunk/soft/fudaa-crue/crue-project/src/test/resources/integration/v1_1_1/Etu3-2.zip
trunk/soft/fudaa-crue/crue-project/src/test/resources/integration/v1_1_1/Etu3-3.zip
trunk/soft/fudaa-crue/crue-project/src/test/resources/integration/v1_1_1/Etu3-4.zip
trunk/soft/fudaa-crue/crue-project/src/test/resources/integration/v1_1_1/Etu3-5.zip
trunk/soft/fudaa-crue/crue-project/src/test/resources/integration/v1_1_1/Etu4-0.zip
trunk/soft/fudaa-crue/crue-project/src/test/resources/integration/v1_1_1/Etu4-1.zip
trunk/soft/fudaa-crue/crue-project/src/test/resources/integration/v1_1_1/Etu5-0.zip
trunk/soft/fudaa-crue/crue-project/src/test/resources/integration/v1_1_1/Etu6-0.zip
trunk/soft/fudaa-crue/crue-project/src/test/resources/integration/v1_1_1/Etu7-0.zip
trunk/soft/fudaa-crue/crue-project/src/test/resources/integration/v1_1_1/Etu7-1.zip
trunk/soft/fudaa-crue/crue-project/src/test/resources/integration/v1_1_1/Etu7-2.zip
Modified: trunk/soft/fudaa-crue/crue-core/src/main/java/org/fudaa/dodico/crue/common/transformer/DateDurationConverter.java
===================================================================
--- trunk/soft/fudaa-crue/crue-core/src/main/java/org/fudaa/dodico/crue/common/transformer/DateDurationConverter.java 2014-01-31 18:19:15 UTC (rev 8593)
+++ trunk/soft/fudaa-crue/crue-core/src/main/java/org/fudaa/dodico/crue/common/transformer/DateDurationConverter.java 2014-01-31 20:53:28 UTC (rev 8594)
@@ -25,16 +25,26 @@
*/
public final static LocalDateTime ZERO_DATE = new LocalDateTime(01, 01, 01, 0, 0, 0, 0);
public final static DateTimeFormatter MEDIUM_DATE_TIME = DateTimeFormat.mediumDateTime();
+ private static final PeriodFormatter JJHHMMSS = new PeriodFormatterBuilder().printZeroAlways().minimumPrintedDigits(2).appendDays().
+ appendLiteral(":").
+ appendHours().appendLiteral(":").
+ appendMinutes().appendLiteral(":")
+ .appendSecondsWithOptionalMillis().toFormatter();
+ private static final PeriodFormatter HHMMSS = new PeriodFormatterBuilder().printZeroAlways().minimumPrintedDigits(2).
+ appendHours().appendLiteral(":").
+ appendMinutes().appendLiteral(":")
+ .appendSecondsWithOptionalMillis().toFormatter();
private static final PeriodFormatter XSD_DURATION_FORMATTER = new PeriodFormatterBuilder().printZeroAlways().appendLiteral(
"P0Y0M").appendDays().appendSuffix(
- "D").appendSeparatorIfFieldsAfter("T").appendHours().appendSuffix("H").appendMinutes().appendSuffix("M").appendSecondsWithOptionalMillis().
+ "D").appendSeparatorIfFieldsAfter("T").appendHours().appendSuffix("H").appendMinutes().appendSuffix("M").
+ appendSecondsWithOptionalMillis().
appendSuffix(
- "S").toFormatter();
+ "S").toFormatter();
private static final PeriodFormatter CRUE_DURATION_FORMATTER = new PeriodFormatterBuilder().printZeroAlways().appendDays().appendLiteral(
" ").appendHours().appendLiteral(" ").appendMinutes().appendLiteral(" ").appendSecondsWithOptionalMillis().toFormatter();
private static final DateTimeFormatter XSD_DATE_FORMATTER = ISODateTimeFormat.dateHourMinuteSecondMillis();
- public static final DateTimeFormatter XSD_DATE_FORMATTER_UI =
- new DateTimeFormatterBuilder()
+ public static final DateTimeFormatter XSD_DATE_FORMATTER_UI
+ = new DateTimeFormatterBuilder()
.append(ISODateTimeFormat.date())
.appendLiteral(' ')
.append(ISODateTimeFormat.hourMinuteSecondMillis())
@@ -196,6 +206,10 @@
return CRUE_DURATION_FORMATTER.print(durationToDaysHourMinSecPeriod(d));
}
+ public static boolean isGreaterThanDay(long millis) {
+ return millis > 1000 * 3600 * 24;
+ }
+
/**
* @param d la duration a traiter
* @return la period avec les jour/heures/minutes/secondes
@@ -207,6 +221,21 @@
return d.toPeriod(PeriodType.dayTime(), ISOChronology.getInstanceUTC());
}
+ public static String durationToDDHHMMSS(final Duration d, boolean useDay) {
+ if (useDay) {
+ return durationToDDHHMMSS(d);
+ }
+ return durationToHHMMSS(d);
+ }
+
+ public static String durationToDDHHMMSS(final Duration d) {
+ return JJHHMMSS.print(durationToDaysHourMinSecPeriod(d));
+ }
+
+ public static String durationToHHMMSS(final Duration d) {
+ return HHMMSS.print(d.toPeriod(PeriodType.time()));
+ }
+
/**
* @param d
* @return le format xsd en transformant les mois/années en nombre de jour
Modified: trunk/soft/fudaa-crue/crue-core/src/test/java/org/fudaa/dodico/crue/common/DateDurationConverterTest.java
===================================================================
--- trunk/soft/fudaa-crue/crue-core/src/test/java/org/fudaa/dodico/crue/common/DateDurationConverterTest.java 2014-01-31 18:19:15 UTC (rev 8593)
+++ trunk/soft/fudaa-crue/crue-core/src/test/java/org/fudaa/dodico/crue/common/DateDurationConverterTest.java 2014-01-31 20:53:28 UTC (rev 8594)
@@ -9,7 +9,6 @@
import org.joda.time.LocalDateTime;
import org.joda.time.Period;
-
/**
* @author deniger
*/
@@ -17,6 +16,20 @@
private static final long NB_MILLIS_BY_HOUR = 3600000;
+ public void testFormatter() {
+ Duration d = DateDurationConverter.getDuration(1, 2, 3, 64);
+ assertEquals("01:02:04:04",
+ DateDurationConverter.durationToDDHHMMSS(d));
+ assertEquals("26:04:04",
+ DateDurationConverter.durationToHHMMSS(d));
+ d = DateDurationConverter.getDuration(3, 0, 0, 1);
+ assertEquals("72:00:01",
+ DateDurationConverter.durationToHHMMSS(d));
+ assertEquals("03:00:00:01",
+ DateDurationConverter.durationToDDHHMMSS(d));
+
+ }
+
/**
* Test la conversion {@link DateDurationConverter#getPeriod(int, int, int, int)}.
*/
@@ -32,7 +45,7 @@
final long expected = 1 * 24 * NB_MILLIS_BY_HOUR + 25 * NB_MILLIS_BY_HOUR + 3 * 60000 + 62000;
assertEquals(expected, DateDurationConverter.getDuration(1, 25, 3, 62).getMillis());
}
-
+
public void testMillis() {
String res = DateDurationConverter.durationToXsd(new Duration(123L));
assertEquals("P0Y0M0DT0H0M0.123S", res);
Modified: trunk/soft/fudaa-crue/crue-emh/src/main/java/org/fudaa/dodico/crue/metier/emh/ResultatTimeKey.java
===================================================================
--- trunk/soft/fudaa-crue/crue-emh/src/main/java/org/fudaa/dodico/crue/metier/emh/ResultatTimeKey.java 2014-01-31 18:19:15 UTC (rev 8593)
+++ trunk/soft/fudaa-crue/crue-emh/src/main/java/org/fudaa/dodico/crue/metier/emh/ResultatTimeKey.java 2014-01-31 20:53:28 UTC (rev 8594)
@@ -29,10 +29,10 @@
transitoire = false;
}
- public ResultatTimeKey(String nomCalcul, long duree) {
+ public ResultatTimeKey(String nomCalcul, long duree, boolean useDay) {
this.nomCalcul = nomCalcul;
this.duree = duree;
- temps = DateDurationConverter.durationToXsd(new Duration(duree));
+ temps = DateDurationConverter.durationToDDHHMMSS(new Duration(duree), useDay);
transitoire = true;
}
Modified: trunk/soft/fudaa-crue/crue-emh/src/test/java/org/fudaa/dodico/crue/metier/emh/ResultatPasDeTempsTest.java
===================================================================
--- trunk/soft/fudaa-crue/crue-emh/src/test/java/org/fudaa/dodico/crue/metier/emh/ResultatPasDeTempsTest.java 2014-01-31 18:19:15 UTC (rev 8593)
+++ trunk/soft/fudaa-crue/crue-emh/src/test/java/org/fudaa/dodico/crue/metier/emh/ResultatPasDeTempsTest.java 2014-01-31 20:53:28 UTC (rev 8594)
@@ -44,7 +44,8 @@
@Test
public void testEquivalence() {
- List<ResultatTimeKey> times = Arrays.asList(new ResultatTimeKey("CC"), new ResultatTimeKey("CC_T1", 0), new ResultatTimeKey("CC_T1", 10), new ResultatTimeKey("CC_T2", 10), new ResultatTimeKey("CC_T2", 20));
+ List<ResultatTimeKey> times = Arrays.asList(new ResultatTimeKey("CC"), new ResultatTimeKey("CC_T1", 0, false), new ResultatTimeKey("CC_T1", 10,
+ false), new ResultatTimeKey("CC_T2", 10, false), new ResultatTimeKey("CC_T2", 20, false));
ResultatPasDeTempsDelegate delegate = new DefaultDelegate(times);
ResultatPasDeTemps res = new ResultatPasDeTemps(delegate);
ResultatTimeKey in = new ResultatTimeKey("CQ");
@@ -52,12 +53,12 @@
for (ResultatTimeKey resultatTimeKey : times) {
assertEquals(resultatTimeKey, res.getEquivalentTempsSimu(resultatTimeKey));
}
- in = new ResultatTimeKey("CT_T1Bis", 0);
+ in = new ResultatTimeKey("CT_T1Bis", 0, false);
assertEquals(times.get(1), res.getEquivalentTempsSimu(in));
- in = new ResultatTimeKey("CT_T1Bis", 10);
+ in = new ResultatTimeKey("CT_T1Bis", 10, false);
assertEquals(times.get(2), res.getEquivalentTempsSimu(in));
- in = new ResultatTimeKey("CT_T2Bis", 20);
+ in = new ResultatTimeKey("CT_T2Bis", 20, false);
assertEquals(times.get(4), res.getEquivalentTempsSimu(in));
}
-}
\ No newline at end of file
+}
Modified: trunk/soft/fudaa-crue/crue-io/src/main/java/org/fudaa/dodico/crue/io/neuf/DHReader.java
===================================================================
--- trunk/soft/fudaa-crue/crue-io/src/main/java/org/fudaa/dodico/crue/io/neuf/DHReader.java 2014-01-31 18:19:15 UTC (rev 8593)
+++ trunk/soft/fudaa-crue/crue-io/src/main/java/org/fudaa/dodico/crue/io/neuf/DHReader.java 2014-01-31 20:53:28 UTC (rev 8594)
@@ -11,6 +11,7 @@
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
+import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
@@ -83,7 +84,6 @@
import org.fudaa.dodico.crue.metier.emh.OrdCalcScenario;
import org.fudaa.dodico.crue.metier.emh.OrdCalcTransIniCalcPrecedent;
import org.fudaa.dodico.crue.metier.emh.OrdPrtCIniModeleBase;
-import org.fudaa.dodico.crue.metier.emh.ParamCalcScenario;
import org.fudaa.dodico.crue.metier.emh.ParamNumCalcPseudoPerm;
import org.fudaa.dodico.crue.metier.emh.ParamNumCalcTrans;
import org.fudaa.dodico.crue.metier.emh.ParamNumModeleBase;
@@ -102,7 +102,6 @@
import org.fudaa.dodico.crue.metier.helper.LoiHelper;
import org.fudaa.dodico.fortran.FortranReader;
import org.joda.time.Duration;
-import org.joda.time.LocalDateTime;
/**
* Reader pour le format Dh crue 9. C'est la methode {@link #readAllDonnees(CrueIOResu)} qui fait le travail. Ensuite elle dispatche les taches entre {@link #readDonneesGenerales(CompositeReader, CrueData, int)},
@@ -129,6 +128,14 @@
*/
private final Set<String> emhsWithSensOuvInitialized = new HashSet<String>();
+ DecimalFormat calulFormat = new DecimalFormat();
+
+ public DHReader() {
+ calulFormat.setParseIntegerOnly(true);
+ calulFormat.setMinimumIntegerDigits(2);
+
+ }
+
@Override
public void stop() {
// ne fait rien pour l'instant
@@ -320,7 +327,8 @@
final Duration duration = DateDurationConverter.getDuration(reader.intField(idx++), reader.intField(idx++),
reader.intField(idx++), reader.doubleField(idx++));
if (isFiner()) {
- LOGGER.log(Level.FINER, "DATE: Ligne {0} read date {1}", new Object[]{reader.getCurrent().getLineNumber(), DateDurationConverter.durationToXsd(duration)});
+ LOGGER.log(Level.FINER, "DATE: Ligne {0} read date {1}", new Object[]{reader.getCurrent().getLineNumber(), DateDurationConverter.durationToXsd(
+ duration)});
}
return duration;
@@ -473,7 +481,8 @@
} else if (iligne == 2) { // Ligne E3
final double coefRempliPourBrancheI = reader.doubleField(0);
if (isFine()) {
- LOGGER.log(Level.FINE, "ligne:{0}-> le niveau initial de la branche {1} est {2}", new Object[]{reader.getCurrent().getLineNumber(), brancheName, coefRempliPourBrancheI});
+ LOGGER.log(Level.FINE, "ligne:{0}-> le niveau initial de la branche {1} est {2}",
+ new Object[]{reader.getCurrent().getLineNumber(), brancheName, coefRempliPourBrancheI});
}
final int size = sectionsBranche.size();
CatEMHSection sectionEMH = null;
@@ -510,7 +519,8 @@
} else {
final double niveauEau = reader.doubleField(i);
if (isFine()) {
- LOGGER.log(Level.FINE, "ligne:{0}-> le niveau initial du noeud {1} est {2}", new Object[]{reader.getCurrent().getLineNumber(), noeudName, niveauEau}); //$NON-NLS-1$ //$NON-NLS-2$
+ LOGGER.log(Level.FINE, "ligne:{0}-> le niveau initial du noeud {1} est {2}",
+ new Object[]{reader.getCurrent().getLineNumber(), noeudName, niveauEau}); //$NON-NLS-1$ //$NON-NLS-2$
}
final CatEMHNoeud noeud = res.findNoeudByReference(noeudName);
@@ -553,7 +563,8 @@
} else {
final double coefRuis = reader.doubleField(i);
if (isFine()) {
- LOGGER.log(Level.FINE, "ligne:{0}-> le coefficient de ruissellement {1} est {2}", new Object[]{reader.getCurrent().getLineNumber(), noeudName, coefRuis}); //$NON-NLS-1$ //$NON-NLS-2$
+ LOGGER.log(Level.FINE, "ligne:{0}-> le coefficient de ruissellement {1} est {2}",
+ new Object[]{reader.getCurrent().getLineNumber(), noeudName, coefRuis}); //$NON-NLS-1$ //$NON-NLS-2$
}
final CatEMHNoeud noeud = res.findNoeudByReference(noeudName);
@@ -671,10 +682,14 @@
reader.readLine();
final Duration dtperm = readDuration(reader);
final int nbField = reader.getNumberOfFields();
- final double tolz = nbField > 4 ? reader.doubleField(4) : cruePropertyDefinitionContainer.getDefaultDoubleValue(CrueConfigMetierConstants.PROP_TOL_MAX_Z);
- final double tolq = nbField > 5 ? reader.doubleField(5) : cruePropertyDefinitionContainer.getDefaultDoubleValue(CrueConfigMetierConstants.PROP_TOL_MAX_Q);
- final int icalmx = nbField > 6 ? reader.intField(6) : cruePropertyDefinitionContainer.getDefaultIntValue(CrueConfigMetierConstants.PROP_NBR_PDT_MAX);
- final int ndecou = nbField > 8 ? reader.intField(8) : cruePropertyDefinitionContainer.getDefaultIntValue(CrueConfigMetierConstants.PROP_NBR_PDT_DECOUP);
+ final double tolz = nbField > 4 ? reader.doubleField(4) : cruePropertyDefinitionContainer.getDefaultDoubleValue(
+ CrueConfigMetierConstants.PROP_TOL_MAX_Z);
+ final double tolq = nbField > 5 ? reader.doubleField(5) : cruePropertyDefinitionContainer.getDefaultDoubleValue(
+ CrueConfigMetierConstants.PROP_TOL_MAX_Q);
+ final int icalmx = nbField > 6 ? reader.intField(6) : cruePropertyDefinitionContainer.getDefaultIntValue(
+ CrueConfigMetierConstants.PROP_NBR_PDT_MAX);
+ final int ndecou = nbField > 8 ? reader.intField(8) : cruePropertyDefinitionContainer.getDefaultIntValue(
+ CrueConfigMetierConstants.PROP_NBR_PDT_DECOUP);
if (isFine()) {
LOGGER.log(Level.FINE, "dtperm{0} | tolz {1}tolq {2} icalmx {3} ndecou{4}", new Object[]{dtperm, tolz, tolq, icalmx, ndecou});
}
@@ -720,7 +735,8 @@
Integer.valueOf(limtyp));
} else {
if (isFine()) {
- LOGGER.log(Level.FINE, "{0}: numPoint={1} limtype={2} soit {3}", new Object[]{reader.getCurrent().getLineNumber(), nomEmh, limtyp, typesConditionLimites.get(limtyp)});
+ LOGGER.log(Level.FINE, "{0}: numPoint={1} limtype={2} soit {3}",
+ new Object[]{reader.getCurrent().getLineNumber(), nomEmh, limtyp, typesConditionLimites.get(limtyp)});
}
// Ajout de la condition aux limites à l'EMH correspondante
@@ -869,7 +885,7 @@
final CalcPseudoPerm calcPerm = new CalcPseudoPerm();
- calcPerm.setNom(CruePrefix.P_CALCUL + "P" + (nbEtatPermanent + 1));
+ calcPerm.setNom(CruePrefix.P_CALCUL + "P" + calulFormat.format(nbEtatPermanent + 1));
calcPerm.setCommentaire("Calcul pseudo-permanent " + (nbEtatPermanent + 1));
// pour le premier on prend en compte la reprise éventuelle
final boolean first = ocal.getOrdCalc().isEmpty();
@@ -900,7 +916,6 @@
dclm = listeDCLMs.get(0);
// listeRefs.add(emh);
-
if (dclm instanceof CalcPseudoPermNoeudQapp) {
CalcPseudoPermNoeudQapp nncQapp = null;
@@ -940,7 +955,6 @@
if (CollectionUtils.isNotEmpty(listeDCLMs)) {
dclm = listeDCLMs.get(0);
-
if (dclm instanceof CalcPseudoPermBrancheOrificeManoeuvre) {
CalcPseudoPermBrancheOrificeManoeuvre brancheOrOuv = null;
@@ -1043,7 +1057,6 @@
Duration transDureeCalc = readDuration(reader, 4);
final int nts = reader.intField(16);
-
final ParamNumModeleBase pnum = res.getOrCreatePNUM();
final PdtCst pdtCst = new PdtCst();
pdtCst.setPdtCst(pasDeTemps);
@@ -1089,7 +1102,7 @@
// Un seul calcul transitoire possible en version crue 9
final CalcTrans calcTrans = new CalcTrans();
- calcTrans.setNom(CruePrefix.P_CALCUL + "T1");
+ calcTrans.setNom(CruePrefix.P_CALCUL + "T01");
calcTrans.setCommentaire("Calcul transitoire 1");
dclm.addCalcTrans(calcTrans);
final OrdCalcTransIniCalcPrecedent prec = new OrdCalcTransIniCalcPrecedent(dataLinked.getCrueConfigMetier());
@@ -1526,7 +1539,6 @@
dlhy.addLois(loiFF);
}
-
}
}
@@ -1592,9 +1604,7 @@
final CrueData metier = readRegles(res, reader);
// lecture ligne B
-
// Ligne B : ICAL, CRU, COFQRQ, ISORTI, ILE, TREPJ, TREPH, TREPM, TREPS
-
// ICAL = 0 : reprise de calcul en transitoire
// ICAL = 1 : succession de calculs en régime permanent
// ICAL = 2 : stabilisation d'une ligne d'eau initiale par une suite de calculs en régime permanent, puis calcul en
@@ -1649,7 +1659,6 @@
crueData.setMethodesInterpolation(methodesInterpolation);
// Pas d'enregistrement de "ile" qui sert pour l'algo uniquement
-
// Remplissage des données métier en fonction de la valeur de "ical"
// final CrueData metier = metier;
if (ical == 0) {
Modified: trunk/soft/fudaa-crue/crue-io/src/main/java/org/fudaa/dodico/crue/io/neuf/FCBReader.java
===================================================================
--- trunk/soft/fudaa-crue/crue-io/src/main/java/org/fudaa/dodico/crue/io/neuf/FCBReader.java 2014-01-31 18:19:15 UTC (rev 8593)
+++ trunk/soft/fudaa-crue/crue-io/src/main/java/org/fudaa/dodico/crue/io/neuf/FCBReader.java 2014-01-31 20:53:28 UTC (rev 8594)
@@ -42,6 +42,7 @@
// on sait que le premier entier doit etre 800; soit la longueur des 10 commentaires comportant
// 256 caractères.
final int firstInt = 10 * sizeTitre;
+
// on lit le premier enregistrement qui fait 800 p
/*
* final int readAll =
@@ -85,7 +86,10 @@
// past r8 : pas de temps d'impression des résultats, en secondes.
// transformer en single ->ok
- /**final double r8 = **/bf.getFloat();
+ /**
+ * final double r8 = *
+ */
+ bf.getFloat();
// icodav i4 : présence (1) ou non (0) d'une régulation
// icodav==0 ou 2 pas de regulation
@@ -106,14 +110,12 @@
helper.getStingFromBuffer(nbCharTitreDCDh);
// -- on passe a la ligne contenant ibmax et iparam --//
-
// on arrive a la ligne des profils --//
// write(ifi2) (tit(ipro),sngl(dist(ipro)),zfond(nuprfl(ipro)), ipro,ipro=1,iprm)
// on recupere l'indice du début des profils.
readProfils(infos, nbProfils);
// -- on passe la boucle de nbbranches lignes--//
-
readBranches(infos, nbBranches);
// -- ensuite on lit les points si ou ils sont affiches--//
@@ -212,9 +214,15 @@
CalcTrans collectCalcTrans = EMHHelper.collectCalcTrans(ordCalc).get(0);//un seul calcul transitoire
String nomCalcul = collectCalcTrans.getNom();
int nbPdt = pdtNormal.size();
+ long max = 0;
for (int i = 0; i < nbPdt; i++) {
long duree = DateDurationConverter.toMillis(pdtNormal.get(i));
- final ResultatTimeKey resultatKey = new ResultatTimeKey(nomCalcul, duree);
+ max = Math.max(max, duree);
+ }
+ boolean useDay = DateDurationConverter.isGreaterThanDay(max);
+ for (int i = 0; i < nbPdt; i++) {
+ long duree = DateDurationConverter.toMillis(pdtNormal.get(i));
+ final ResultatTimeKey resultatKey = new ResultatTimeKey(nomCalcul, duree, useDay);
indexByResultatKey.put(resultatKey, i);
orderedResultatKey.add(resultatKey);
}
@@ -222,7 +230,7 @@
else {
if (ordCalc.size() != pdtNormal.size()) {
analyze_.addSevereError("io.fcb.nbResultatPseudoPermanentNonConcordant.erreur", Integer.toString(pdtNormal.size()),
- Integer.toString(ordCalc.size()));
+ Integer.toString(ordCalc.size()));
} else {
int nbPdt = pdtNormal.size();
for (int i = 0; i < nbPdt; i++) {
@@ -233,7 +241,7 @@
}
}
infos.setPdt(new Crue9ResultatCalculPasDeTemps(posNormal, pdtNormal, regul, ruinouNormal,
- indexByResultatKey, orderedResultatKey));
+ indexByResultatKey, orderedResultatKey));
}
Modified: trunk/soft/fudaa-crue/crue-io/src/main/java/org/fudaa/dodico/crue/io/res/RCalTimeStepBuilder.java
===================================================================
--- trunk/soft/fudaa-crue/crue-io/src/main/java/org/fudaa/dodico/crue/io/res/RCalTimeStepBuilder.java 2014-01-31 18:19:15 UTC (rev 8593)
+++ trunk/soft/fudaa-crue/crue-io/src/main/java/org/fudaa/dodico/crue/io/res/RCalTimeStepBuilder.java 2014-01-31 20:53:28 UTC (rev 8594)
@@ -70,12 +70,23 @@
String delimiteurChaineTrans = in.getParametrage().getDelimiteurChaine("ResPdt");
List<ResCalcTransDao> resCalcTranss = in.getResCalcTranss();
if (CollectionUtils.isNotEmpty(resCalcTranss)) {
+ long max = 0;
for (ResCalcTransDao resCalcTransDao : resCalcTranss) {
List<ResPdtDao> resPdts = resCalcTransDao.getResPdts();
if (CollectionUtils.isNotEmpty(resPdts)) {
for (ResPdtDao resPdtDao : resPdts) {
+ final long millis = DateDurationConverter.getDuration(resPdtDao.getTempsSimu()).getMillis();
+ max = Math.max(max, millis);
+ }
+ }
+ }
+ boolean useDay = DateDurationConverter.isGreaterThanDay(max);
+ for (ResCalcTransDao resCalcTransDao : resCalcTranss) {
+ List<ResPdtDao> resPdts = resCalcTransDao.getResPdts();
+ if (CollectionUtils.isNotEmpty(resPdts)) {
+ for (ResPdtDao resPdtDao : resPdts) {
ResultatTimeKey key = new ResultatTimeKey(resCalcTransDao.getNomRef(), DateDurationConverter.getDuration(
- resPdtDao.getTempsSimu()).getMillis());
+ resPdtDao.getTempsSimu()).getMillis(), useDay);
ResultatEntry entry = new ResultatEntry(key);
entry.setBinFile(new File(rcalDir, resPdtDao.getHref()));
entry.setOffsetInBytes(in.getParametrage().getBytes(resPdtDao.getOffsetMot()));
Modified: trunk/soft/fudaa-crue/crue-project/src/test/resources/integration/v1_1_1/Etu3-0.zip
===================================================================
(Binary files differ)
Modified: trunk/soft/fudaa-crue/crue-project/src/test/resources/integration/v1_1_1/Etu3-1.zip
===================================================================
(Binary files differ)
Modified: trunk/soft/fudaa-crue/crue-project/src/test/resources/integration/v1_1_1/Etu3-2.zip
===================================================================
(Binary files differ)
Modified: trunk/soft/fudaa-crue/crue-project/src/test/resources/integration/v1_1_1/Etu3-3.zip
===================================================================
(Binary files differ)
Modified: trunk/soft/fudaa-crue/crue-project/src/test/resources/integration/v1_1_1/Etu3-4.zip
===================================================================
(Binary files differ)
Modified: trunk/soft/fudaa-crue/crue-project/src/test/resources/integration/v1_1_1/Etu3-5.zip
===================================================================
(Binary files differ)
Modified: trunk/soft/fudaa-crue/crue-project/src/test/resources/integration/v1_1_1/Etu4-0.zip
===================================================================
(Binary files differ)
Modified: trunk/soft/fudaa-crue/crue-project/src/test/resources/integration/v1_1_1/Etu4-1.zip
===================================================================
(Binary files differ)
Modified: trunk/soft/fudaa-crue/crue-project/src/test/resources/integration/v1_1_1/Etu5-0.zip
===================================================================
(Binary files differ)
Modified: trunk/soft/fudaa-crue/crue-project/src/test/resources/integration/v1_1_1/Etu6-0.zip
===================================================================
(Binary files differ)
Modified: trunk/soft/fudaa-crue/crue-project/src/test/resources/integration/v1_1_1/Etu7-0.zip
===================================================================
(Binary files differ)
Modified: trunk/soft/fudaa-crue/crue-project/src/test/resources/integration/v1_1_1/Etu7-1.zip
===================================================================
(Binary files differ)
Modified: trunk/soft/fudaa-crue/crue-project/src/test/resources/integration/v1_1_1/Etu7-2.zip
===================================================================
(Binary files differ)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|