Tony CHEMIT pushed to branch develop at ultreiaio / ird-t3

Commits:

9 changed files:

Changes:

  • t3-actions/src/main/java/fr/ird/t3/actions/data/level2/L2CatchStratum.java
    ... ... @@ -229,4 +229,15 @@ public class L2CatchStratum extends CatchStratum<Level2Configuration, Level2Acti
    229 229
             return sampleWeightModelFroAllSpecies;
    
    230 230
         }
    
    231 231
     
    
    232
    +    public void resetCorrectedElementaryCatches() {
    
    233
    +        for (Activity activity : getActivities().keySet()) {
    
    234
    +            if (activity.isCorrectedElementaryCatchNotEmpty()) {
    
    235
    +                for (CorrectedElementaryCatch correctedElementaryCatch : activity.getCorrectedElementaryCatch()) {
    
    236
    +                    if (correctedElementaryCatch.getCorrectedCatchWeight()==null) {
    
    237
    +                        correctedElementaryCatch.setCorrectedCatchWeight(correctedElementaryCatch.getCatchWeight());
    
    238
    +                    }
    
    239
    +                }
    
    240
    +            }
    
    241
    +        }
    
    242
    +    }
    
    232 243
     }

  • t3-actions/src/main/java/fr/ird/t3/actions/data/level2/Level2Action.java
    ... ... @@ -155,8 +155,9 @@ public class Level2Action extends T3Action<Level2Configuration> {
    155 155
                         Collections.singleton(SchoolTypeTopiaDao.SCHOOL_TYPE_INDETERMINATE_ID),
    
    156 156
                         stratumConfiguration.getBeginDate(),
    
    157 157
                         stratumConfiguration.getEndDate()).keySet();
    
    158
    +            inputContext.loadActivities(activityIds);
    
    158 159
                 for (String activityId : activityIds) {
    
    159
    -                for (CorrectedElementaryCatch correctedElementaryCatch : inputContext.getCorrectedElementaryCatch(activityId)) {
    
    160
    +                for (CorrectedElementaryCatch correctedElementaryCatch : inputContext.getActivityCache().forId(activityId).getCorrectedElementaryCatch()) {
    
    160 161
                         correctedElementaryCatch.setCorrectedCatchWeight(correctedElementaryCatch.getCatchWeight());
    
    161 162
                     }
    
    162 163
                 }
    
    ... ... @@ -173,6 +174,9 @@ public class Level2Action extends T3Action<Level2Configuration> {
    173 174
                     result.setSubstitutionLevel(0);
    
    174 175
                     incrementsProgression();
    
    175 176
                 } else {
    
    177
    +                catchStratum.resetCorrectedElementaryCatches();
    
    178
    +                //flushTransaction("clean stratum " + stratumConfiguration.getStratumIndex());
    
    179
    +
    
    176 180
                     // compute sample stratum
    
    177 181
                     try (L2SampleStratum sampleStratum = L2SampleStratum.newSampleStratum(stratumConfiguration, catchStratum, weightCategories, species, this)) {
    
    178 182
                         incrementsProgression();
    
    ... ... @@ -187,6 +191,8 @@ public class Level2Action extends T3Action<Level2Configuration> {
    187 191
                             addWarningMessage(message);
    
    188 192
                             // mark it as 999 level to make it appear at top of a reverse list
    
    189 193
                             result.setSubstitutionLevel(999);
    
    194
    +                        result.addNbActivities(catchStratum.getNbActivities());
    
    195
    +                        result.addNbActivitiesWithSample(catchStratum.getNbActivitiesWithSample());
    
    190 196
                             // Fill back  CorrectedElementaryCatch.CatchWeight to CorrectedElementaryCatch.CorrectedCatchWeight
    
    191 197
                             int activityIndex = 1;
    
    192 198
                             int nbActivities = catchStratum.getNbActivities();
    

  • t3-actions/src/main/java/fr/ird/t3/actions/data/level3/Level3Action.java
    ... ... @@ -196,6 +196,8 @@ public class Level3Action extends T3Action<Level3Configuration> {
    196 196
                             addWarningMessage(message);
    
    197 197
                             // mark it as 999 level to make it appear at top of a reverse list
    
    198 198
                             result.setSubstitutionLevel(999);
    
    199
    +                        result.addNbActivities(catchStratum.getNbActivities());
    
    200
    +                        result.addNbActivitiesWithSample(catchStratum.getNbActivitiesWithSample());
    
    199 201
     //                        FIXME-269 Should we fill at least stratumLevelN3?
    
    200 202
                         } else {
    
    201 203
                             // can use this sampleStratum
    

  • t3-domain/src/main/java/fr/ird/t3/actions/stratum/CatchStratumLoader.java
    ... ... @@ -67,6 +67,7 @@ public abstract class CatchStratumLoader<C extends LevelConfigurationWithStratum
    67 67
         protected Map<Activity, Integer> filterActivities(S configuration, Map<String, Integer> activityIds) {
    
    68 68
             Map<Activity, Integer> result = new HashMap<>();
    
    69 69
             if (activityIds != null && activityIds.size() > 0) {
    
    70
    +            configuration.loadActivities(activityIds.keySet());
    
    70 71
                 Set<Vessel> possibleVessels = configuration.getPossibleCatchVessels();
    
    71 72
                 WeightCategoryTreatment weightCategoryTreatment = configuration.getWeightCategoryTreatment();
    
    72 73
                 for (Map.Entry<String, Integer> e : activityIds.entrySet()) {
    

  • t3-domain/src/main/java/fr/ird/t3/actions/stratum/LevelInputContext.java
    ... ... @@ -274,4 +274,8 @@ public abstract class LevelInputContext<C extends LevelConfigurationWithStratum,
    274 274
         public void clear() {
    
    275 275
             activityCache.clear();
    
    276 276
         }
    
    277
    +
    
    278
    +    public void loadActivities(Set<String> activityIds) {
    
    279
    +        activityCache.load(activityIds);
    
    280
    +    }
    
    277 281
     }

  • t3-domain/src/main/java/fr/ird/t3/actions/stratum/SampleStratumLoader.java
    ... ... @@ -163,6 +163,7 @@ public abstract class SampleStratumLoader<C extends LevelConfigurationWithStratu
    163 163
             Set<Activity> result = new HashSet<>();
    
    164 164
             T configuration = getSampleStratum().getConfiguration();
    
    165 165
             Set<Vessel> possibleVessels = configuration.getPossibleSampleVessels();
    
    166
    +        configuration.loadActivities(activityIds);
    
    166 167
             WeightCategoryTreatment weightCategoryTreatment = configuration.getWeightCategoryTreatment();
    
    167 168
             for (String activityId : activityIds) {
    
    168 169
                 Activity activity = configuration.getActivity(activityId);
    

  • t3-domain/src/main/java/fr/ird/t3/actions/stratum/StratumConfiguration.java
    ... ... @@ -187,6 +187,10 @@ public class StratumConfiguration<C extends LevelConfigurationWithStratum, A ext
    187 187
             return inputContext.getActivityCache().forId(activityId);
    
    188 188
         }
    
    189 189
     
    
    190
    +    public void loadActivities(Set<String> activityIds) {
    
    191
    +        inputContext.getActivityCache().load(activityIds);
    
    192
    +    }
    
    193
    +
    
    190 194
         @Override
    
    191 195
         public String toString() {
    
    192 196
             return String.format("%s [schoolType: %s, zone: %s, startDate:%s, endDate:%s, weightCategory: %s]", super.toString(), schoolType.getLabel1(), zone.getTopiaId(), beginDate, endDate, weightCategoryTreatment);
    

  • t3-domain/src/main/java/fr/ird/t3/entities/cache/ActivityCache.java
    ... ... @@ -25,8 +25,11 @@ import fr.ird.t3.entities.data.ActivityTopiaDao;
    25 25
     import org.apache.commons.logging.Log;
    
    26 26
     import org.apache.commons.logging.LogFactory;
    
    27 27
     
    
    28
    +import java.util.LinkedHashSet;
    
    28 29
     import java.util.Map;
    
    30
    +import java.util.Set;
    
    29 31
     import java.util.TreeMap;
    
    32
    +import java.util.TreeSet;
    
    30 33
     
    
    31 34
     /**
    
    32 35
      * Created by tchemit on 23/03/2018.
    
    ... ... @@ -47,13 +50,32 @@ public class ActivityCache {
    47 50
         public Activity forId(String activityId) {
    
    48 51
             Activity result = cache.get(activityId);
    
    49 52
             if (result == null) {
    
    50
    -            log.info(String.format("Cache Activity [%d] for %s", cache.size(), activityId));
    
    53
    +            log.debug(String.format("Cache Activity [%d] for %s", cache.size(), activityId));
    
    51 54
                 cache.put(activityId, result = activityDAO.forTopiaIdEquals(activityId).findUnique());
    
    55
    +            if (cache.size() % 100 == 0) {
    
    56
    +                log.info(String.format("Cache Activity [%d]", cache.size()));
    
    57
    +            }
    
    52 58
             }
    
    53 59
             return result;
    
    54 60
         }
    
    55 61
     
    
    62
    +    public void load(Set<String> ids) {
    
    63
    +        Set<String> result = new LinkedHashSet<>(ids);
    
    64
    +        result.removeAll(cache.keySet());
    
    65
    +        if (!result.isEmpty()) {
    
    66
    +            for (Activity activity : activityDAO.forTopiaIdIn(result).findAll()) {
    
    67
    +                String activityId = activity.getTopiaId();
    
    68
    +                log.debug(String.format("Cache Activity [%d] for %s", cache.size(), activityId));
    
    69
    +                cache.put(activityId, activity);
    
    70
    +                if (cache.size() % 100 == 0) {
    
    71
    +                    log.info(String.format("Cache Activity [%d]", cache.size()));
    
    72
    +                }
    
    73
    +            }
    
    74
    +        }
    
    75
    +    }
    
    76
    +
    
    56 77
         public void clear() {
    
    78
    +        log.info(String.format("Clear Cache Activity [%d]", cache.size()));
    
    57 79
             cache.clear();
    
    58 80
         }
    
    59 81
     }

  • t3-domain/src/main/java/fr/ird/t3/models/WeightCompositionModelHelper.java
    ... ... @@ -190,14 +190,16 @@ public final class WeightCompositionModelHelper {
    190 190
                         inResume
    
    191 191
                 );
    
    192 192
             }
    
    193
    -        WeightCompositionModelHelper.decorateModel(
    
    194
    -                header,
    
    195
    -                decoratorService,
    
    196
    -                model,
    
    197
    -                subModel,
    
    198
    -                null,
    
    199
    -                inResume
    
    200
    -        );
    
    193
    +        if (model.getWeightCategories().size() > 1) {
    
    194
    +            WeightCompositionModelHelper.decorateModel(
    
    195
    +                    header,
    
    196
    +                    decoratorService,
    
    197
    +                    model,
    
    198
    +                    subModel,
    
    199
    +                    null,
    
    200
    +                    inResume
    
    201
    +            );
    
    202
    +        }
    
    201 203
             return inResume.toString();
    
    202 204
         }
    
    203 205