Skip to content

Commit

Permalink
Modifie la numérotation du 78...
Browse files Browse the repository at this point in the history
... pour prendre en compte les PEI sur le domaine Autoroute

Issue #224893

Change-Id: Icd8cca3eec10b0a106bd048b71c30d46f545d1f9
  • Loading branch information
hboAtol authored and Renaud-Kieffer committed Nov 13, 2024
1 parent dbac69e commit c39c004
Show file tree
Hide file tree
Showing 2 changed files with 124 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -458,28 +458,36 @@ protected static String computeNumero77(Hydrant hydrant) {
}

/**
* Pour les PEI du domaine non autoroute
* <code insee commune><numéro interne> ou <code insee commune>A<numéro interne>
* sans espace
* avec num_interne sur 4 chiffres pour Autoroutes
* sinon num_interne sur 5 chiffres
* Pour les PEI sur autoroute : nom de l'autoroute (Zone spéciale) + num interne sur 7 positions
* Exemple : 8904300012 ou 89043A0012 pour les Autoroutes
*
* @param hydrant
* @return
*/
protected static String computeNumero78(Hydrant hydrant) {
StringBuilder sb = new StringBuilder();
String codeDomaine =
context
.select(TYPE_HYDRANT_DOMAINE.CODE)
.from(TYPE_HYDRANT_DOMAINE)
.where(TYPE_HYDRANT_DOMAINE.ID.eq(hydrant.getDomaine()))
.fetchOneInto(String.class);
sb.append(getHydrantCommune(hydrant).getInsee());
StringBuilder sb = new StringBuilder();
if ("AUTOROUTE".equals(codeDomaine)) {
sb.append("A");
return sb.append(String.format("%04d", hydrant.getNumeroInterne())).toString();
String codeZS =
(getHydrantZoneSpeciale(hydrant) != null)
? getHydrantZoneSpeciale(hydrant).getCode()
: null;

sb.append(codeZS);
return sb.append(String.format("%07d", hydrant.getNumeroInterne())).toString();
}

sb.append(getHydrantCommune(hydrant).getInsee());
return sb.append(String.format("%05d", hydrant.getNumeroInterne())).toString();
}

Expand Down Expand Up @@ -692,7 +700,6 @@ public static Integer computeNumeroInterne(Hydrant hydrant) {
case M_01:
case M_42:
case M_61:
case M_78:
return NumeroUtilRepository.computeNumeroInterne01(hydrant);
case M_39:
return NumeroUtilRepository.computeNumeroInterne39(hydrant);
Expand All @@ -705,6 +712,8 @@ public static Integer computeNumeroInterne(Hydrant hydrant) {
case M_77:
case M_973:
return NumeroUtilRepository.computeNumeroInterne77(hydrant);
case M_78:
return NumeroUtilRepository.computeNumeroInterne78(hydrant);
case M_86:
return NumeroUtilRepository.computeNumeroInterne86(hydrant);
case M_91:
Expand Down Expand Up @@ -1046,6 +1055,54 @@ public static Integer computeNumeroInterne77(Hydrant hydrant) {
return numInterne;
}

/**
* Si PEI sur un domaine non autoroute, numéro interne en fonction de la commune max +1 => pas de
* remplissage Si le PEI est sur le domaine autoroute, on se sert de sa zone spéciale pour faire
* un max +1
*
* @param hydrant
* @return
*/
public static Integer computeNumeroInterne78(Hydrant hydrant) {
// Retour du numéro interne s'il existe
if (hydrant.getNumeroInterne() != null && hydrant.getId() != null) {
return hydrant.getNumeroInterne();
}
Integer numInterne;
try {
String codeDomaine =
context
.select(TYPE_HYDRANT_DOMAINE.CODE)
.from(TYPE_HYDRANT_DOMAINE)
.where(TYPE_HYDRANT_DOMAINE.ID.eq(hydrant.getDomaine()))
.fetchOneInto(String.class);

if ("AUTOROUTE".equals(codeDomaine)) {
// On va chercher le max + 1 de la zone spéciale concernée
numInterne =
context
.select(DSL.coalesce(DSL.max(HYDRANT.NUMERO_INTERNE), 0))
.from(HYDRANT)
.where(HYDRANT.ZONE_SPECIALE.eq(hydrant.getZoneSpeciale()))
.fetchOneInto(Integer.class);
} else {
// On va chercher le max + 1 sur la commune
numInterne =
context
.select(DSL.coalesce(DSL.max(HYDRANT.NUMERO_INTERNE), 0))
.from(HYDRANT)
.where(HYDRANT.COMMUNE.eq(hydrant.getCommune()))
.fetchOneInto(Integer.class);
}

// On prend le suivant
numInterne++;
} catch (Exception e) {
numInterne = 99999;
}
return numInterne;
}

/**
* numéro interne en fonction du type hydrant nature et de la commune ou zone spéciale max +1 =>
* pas de remplissage
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -459,28 +459,36 @@ protected static String computeNumero77(Hydrant hydrant) {
}

/**
* Pour les PEI du domaine non autoroute
* <code insee commune><numéro interne> ou <code insee commune>A<numéro interne>
* sans espace
* avec num_interne sur 4 chiffres pour Autoroutes
* sinon num_interne sur 5 chiffres
* Pour les PEI sur autoroute : nom de l'autoroute (Zone spéciale) + num interne sur 7 positions
* Exemple : 8904300012 ou 89043A0012 pour les Autoroutes
*
* @param hydrant
* @return
*/
protected static String computeNumero78(Hydrant hydrant) {
StringBuilder sb = new StringBuilder();
String codeDomaine =
context
.select(TYPE_HYDRANT_DOMAINE.CODE)
.from(TYPE_HYDRANT_DOMAINE)
.where(TYPE_HYDRANT_DOMAINE.ID.eq(hydrant.getDomaine()))
.fetchOneInto(String.class);
sb.append(getHydrantCommune(hydrant).getInsee());
StringBuilder sb = new StringBuilder();
if ("AUTOROUTE".equals(codeDomaine)) {
sb.append("A");
return sb.append(String.format("%04d", hydrant.getNumeroInterne())).toString();
String codeZS =
(getHydrantZoneSpeciale(hydrant) != null)
? getHydrantZoneSpeciale(hydrant).getCode()
: null;

sb.append(codeZS);
return sb.append(String.format("%07d", hydrant.getNumeroInterne())).toString();
}

sb.append(getHydrantCommune(hydrant).getInsee());
return sb.append(String.format("%05d", hydrant.getNumeroInterne())).toString();
}

Expand Down Expand Up @@ -692,7 +700,6 @@ public static Integer computeNumeroInterne(Hydrant hydrant) {
case M_01:
case M_42:
case M_61:
case M_78:
return NumeroUtilRepository.computeNumeroInterne01(hydrant);
case M_39:
return NumeroUtilRepository.computeNumeroInterne39(hydrant);
Expand All @@ -705,6 +712,8 @@ public static Integer computeNumeroInterne(Hydrant hydrant) {
case M_77:
case M_973:
return NumeroUtilRepository.computeNumeroInterne77(hydrant);
case M_78:
return NumeroUtilRepository.computeNumeroInterne78(hydrant);
case M_86:
return NumeroUtilRepository.computeNumeroInterne86(hydrant);
case M_91:
Expand Down Expand Up @@ -1046,6 +1055,54 @@ public static Integer computeNumeroInterne77(Hydrant hydrant) {
return numInterne;
}

/**
* Si PEI sur un domaine non autoroute, numéro interne en fonction de la commune max +1 => pas de
* remplissage Si le PEI est sur le domaine autoroute, on se sert de sa zone spéciale pour faire
* un max +1
*
* @param hydrant
* @return
*/
public static Integer computeNumeroInterne78(Hydrant hydrant) {
// Retour du numéro interne s'il existe
if (hydrant.getNumeroInterne() != null && hydrant.getId() != null) {
return hydrant.getNumeroInterne();
}
Integer numInterne;
try {
String codeDomaine =
context
.select(TYPE_HYDRANT_DOMAINE.CODE)
.from(TYPE_HYDRANT_DOMAINE)
.where(TYPE_HYDRANT_DOMAINE.ID.eq(hydrant.getDomaine()))
.fetchOneInto(String.class);

if ("AUTOROUTE".equals(codeDomaine)) {
// On va chercher le max + 1 de la zone spéciale concernée
numInterne =
context
.select(DSL.coalesce(DSL.max(HYDRANT.NUMERO_INTERNE), 0))
.from(HYDRANT)
.where(HYDRANT.ZONE_SPECIALE.eq(hydrant.getZoneSpeciale()))
.fetchOneInto(Integer.class);
} else {
// On va chercher le max + 1 sur la commune
numInterne =
context
.select(DSL.coalesce(DSL.max(HYDRANT.NUMERO_INTERNE), 0))
.from(HYDRANT)
.where(HYDRANT.COMMUNE.eq(hydrant.getCommune()))
.fetchOneInto(Integer.class);
}

// On prend le suivant
numInterne++;
} catch (Exception e) {
numInterne = 99999;
}
return numInterne;
}

/**
* numéro interne en fonction du type hydrant nature et de la commune ou zone spéciale max +1 =>
* pas de remplissage
Expand Down

0 comments on commit c39c004

Please sign in to comment.