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

Commits:

2 changed files:

Changes:

  • core/persistence/avdth/src/main/java/fr/ird/observe/persistence/avdth/data/ImportReferentialContext.java
    ... ... @@ -539,7 +539,7 @@ public class ImportReferentialContext {
    539 539
         }
    
    540 540
     
    
    541 541
         public VesselActivity getVesselActivity(String code) {
    
    542
    -        String observeVesselActivityCode = VesselActivityInterceptor.CODE_MAPPING.get(code);
    
    542
    +        String observeVesselActivityCode = VesselActivityInterceptor.getObserveCode(code);
    
    543 543
             VesselActivity result = vesselActivity.get(observeVesselActivityCode);
    
    544 544
             return Objects.requireNonNull(result, String.format("Can't find vessel activity wth code: %s", code));
    
    545 545
         }
    

  • core/persistence/avdth/src/main/java/fr/ird/observe/persistence/avdth/referential/interceptors/VesselActivityInterceptor.java
    ... ... @@ -122,14 +122,32 @@ public class VesselActivityInterceptor extends ReferentialInterceptor<VesselActi
    122 122
             }
    
    123 123
         }
    
    124 124
     
    
    125
    +    /**
    
    126
    +     * See <a href="https://gitlab.com/ultreiaio/ird-observe/-/issues/2803">2803</a>
    
    127
    +     *
    
    128
    +     * @param code the avdth code
    
    129
    +     * @return the observe code
    
    130
    +     */
    
    131
    +    public static String getObserveCode(String code) {
    
    132
    +        String realCode = CODE_MAPPING.get(code);
    
    133
    +        if (realCode == null) {
    
    134
    +            // See https://gitlab.com/ultreiaio/ird-observe/-/issues/2803
    
    135
    +            int codeAsInteger = Integer.parseInt(code);
    
    136
    +            if (codeAsInteger >= 52) {
    
    137
    +                realCode = code;
    
    138
    +            }
    
    139
    +        }
    
    140
    +        return Objects.requireNonNull(realCode, String.format("Can't find vessel activity wth code: %s", code));
    
    141
    +    }
    
    142
    +
    
    125 143
         public VesselActivityInterceptor(AvdthReferentialImportContext context) {
    
    126 144
             super(context, VesselActivity.SPI);
    
    127 145
         }
    
    128 146
     
    
    129 147
         @Override
    
    130 148
         protected VesselActivity read(Map<String, VesselActivity> existingIndex, String code) {
    
    131
    -        String realCode = CODE_MAPPING.get(code);
    
    132
    -        VesselActivity entity = super.read(existingIndex, Objects.requireNonNull(realCode));
    
    149
    +        String realCode = getObserveCode(code);
    
    150
    +        VesselActivity entity = super.read(existingIndex, realCode);
    
    133 151
             entity.setCode(code);
    
    134 152
             return entity;
    
    135 153
         }