Skip to content

Commit

Permalink
Reprend le fichier de numérotation de REMOcRA pour l'API
Browse files Browse the repository at this point in the history
Change-Id: Ib2cbb3af8e334b4cda4cc7004d982e3c3083549d
  • Loading branch information
Emilie Genton committed Nov 5, 2024
1 parent da84ea6 commit 5f7a3a1
Showing 1 changed file with 82 additions and 60 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -348,10 +348,12 @@ protected static String computeNumero53(Hydrant hydrant) {
suffixe = "D";
break;
case "SECTEUR CHANGE RIVE GAUCHE": // Rive gauche
suffixe = "D";
suffixe = "G";
break;
case "SECTEUR CHANGE 1":
suffixe = "S1";
if ("PRIVE".equalsIgnoreCase(natureDeci)) {
suffixe = "S1";
}
break;
case "SECTEUR CHANGE 2":
if ("PRIVE".equalsIgnoreCase(natureDeci)) {
Expand Down Expand Up @@ -599,7 +601,7 @@ public static ZoneSpeciale computeZoneSpeciale(Hydrant hydrant) {
* @param hydrant Les informations de l'hydrant
* @param typeHydrant Le type d'hydrant si celui-ci n'existe pas encore en base
*/
public Hydrant setCodeZoneSpecAndNumeros(Hydrant hydrant, String typeHydrant) {
public static Hydrant setCodeZoneSpecAndNumeros(Hydrant hydrant, String typeHydrant) {
// Code
String code =
context
Expand Down Expand Up @@ -796,15 +798,15 @@ public static Integer computeNumeroInterne53(Hydrant hydrant) {
if (codeZoneSpeciale != null) {
switch (codeZoneSpeciale) {
case "SECTEUR CHANGE 1":
numInterne = computeNumeroInterne53Public(hydrant, 101, 199);
numInterne = computeNumeroInterne53ZoneSpeciale(hydrant, 101, 199);
return numInterne;
case "SECTEUR CHANGE 2":
numInterne = computeNumeroInterne53ZoneSpeciale(hydrant, 201, 299);
return numInterne;
case "SECTEUR CHANGE PRIVE":
case "SECTEUR CHANGE RIVE DROITE":
case "SECTEUR CHANGE RIVE GAUCHE":
numInterne = computeNumeroInterne53Private(hydrant);
numInterne = computeNumeroInterne53Private(hydrant, true);
return numInterne;
}
}
Expand Down Expand Up @@ -867,21 +869,41 @@ private static Integer computeNumeroInterne53Public(
}

private static Integer computeNumeroInterne53Private(Hydrant hydrant) {
return computeNumeroInterne53Private(hydrant, false);
}

private static Integer computeNumeroInterne53Private(Hydrant hydrant, boolean ignoreDECI) {
Integer numInterne = null;
if ("PIBI".equalsIgnoreCase(hydrant.getCode())) {
numInterne =
context
.resultQuery(
"select remocra.nextNumeroInterne(null, {0}, {1}, {2}, {3}, null, null, true)",
DSL.val(hydrant.getCode(), SQLDataType.VARCHAR),
DSL.val(hydrant.getNatureDeci(), SQLDataType.BIGINT),
(hydrant.getZoneSpeciale() == null)
? hydrant.getCommune()
: DSL.val(null, SQLDataType.BIGINT),
(hydrant.getZoneSpeciale() != null)
? hydrant.getZoneSpeciale()
: DSL.val(null, SQLDataType.BIGINT))
.fetchOneInto(Integer.class);
if (ignoreDECI) { // si on ignore la nature DECI ; Cas des secteurs Changé Rive Gauche/Droite
// Et Changé Privé
numInterne =
context
.resultQuery(
"select remocra.nextNumeroInterne(null, {0}, null, {1}, {2}, null, null, true)",
DSL.val(hydrant.getCode(), SQLDataType.VARCHAR),
(hydrant.getZoneSpeciale() == null)
? hydrant.getCommune()
: DSL.val(null, SQLDataType.BIGINT),
(hydrant.getZoneSpeciale() != null)
? hydrant.getZoneSpeciale()
: DSL.val(null, SQLDataType.BIGINT))
.fetchOneInto(Integer.class);
} else {
numInterne =
context
.resultQuery(
"select remocra.nextNumeroInterne(null, {0}, {1}, {2}, {3}, null, null, true)",
DSL.val(hydrant.getCode(), SQLDataType.VARCHAR),
DSL.val(hydrant.getNatureDeci(), SQLDataType.BIGINT),
(hydrant.getZoneSpeciale() == null)
? hydrant.getCommune()
: DSL.val(null, SQLDataType.BIGINT),
(hydrant.getZoneSpeciale() != null)
? hydrant.getZoneSpeciale()
: DSL.val(null, SQLDataType.BIGINT))
.fetchOneInto(Integer.class);
}
} else {
numInterne =
context
Expand Down Expand Up @@ -926,90 +948,67 @@ public static Integer computeNumeroInterne77(Hydrant hydrant) {
}

/**
* Numérotation interne du 91
*
* <pre>
* PIBI public : le premier numéro disponible à partir de 1
* PIBI privés : le premier numéro disponible à partir de 500
* PENA publics ou privés : le premier numéro disponible à partir de 800</pre>
* numéro interne en fonction du type hydrant nature et de la commune ou zone spéciale max +1 =>
* pas de remplissage
*
* @param hydrant
* @return
*/
public static Integer computeNumeroInterne91(Hydrant hydrant) {
public static Integer computeNumeroInterne83(Hydrant hydrant) {
// Retour du numéro interne s'il existe
if (hydrant.getNumeroInterne() != null && hydrant.getId() != null) {
return hydrant.getNumeroInterne();
}
Integer numInterne = null;
try {
// Dernier numéro interne dispo pour le couple (type hydrant, commune) ou (type hydrant, zone
// spéciale)
Integer idTypeHydrant =
context
.select(TYPE_HYDRANT.ID)
.from(TYPE_HYDRANT)
.from(HYDRANT)
.join(TYPE_HYDRANT_NATURE)
.on(TYPE_HYDRANT_NATURE.TYPE_HYDRANT.eq(TYPE_HYDRANT.ID))
.where(TYPE_HYDRANT_NATURE.ID.eq(hydrant.getNature()))
.on(TYPE_HYDRANT_NATURE.ID.eq(HYDRANT.NATURE))
.join(TYPE_HYDRANT)
.on(TYPE_HYDRANT.ID.eq(TYPE_HYDRANT_NATURE.TYPE_HYDRANT))
.where(HYDRANT.ID.eq(hydrant.getId()))
.fetchOneInto(Integer.class);

numInterne =
context
.resultQuery(
"select remocra.nextNumeroInterne(null, {0}, {1}, {2}, {3})",
"select remocra.nextNumeroInterne(null, {0}, {1}, {2}, false)",
DSL.val(idTypeHydrant, SQLDataType.BIGINT),
DSL.val(hydrant.getNatureDeci(), SQLDataType.BIGINT),
(hydrant.getZoneSpeciale() == null)
? hydrant.getCommune()
: DSL.val(null, SQLDataType.BIGINT),
(hydrant.getZoneSpeciale() != null)
? hydrant.getZoneSpeciale()
: DSL.val(null, SQLDataType.BIGINT))
.fetchOneInto(Integer.class);

} 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
* SDIS inconnu
*
* @param hydrant
* @return
*/
public static Integer computeNumeroInterne83(Hydrant hydrant) {
public static Integer computeNumeroInterne86(Hydrant hydrant) {
// Retour du numéro interne s'il existe
if (hydrant.getNumeroInterne() != null && hydrant.getId() != null) {
return hydrant.getNumeroInterne();
}
Integer numInterne = null;
try {
// Dernier numéro interne dispo pour le couple (type hydrant, commune) ou (type hydrant, zone
// spéciale)
Integer idTypeHydrant =
context
.select(TYPE_HYDRANT.ID)
.from(HYDRANT)
.join(TYPE_HYDRANT_NATURE)
.on(TYPE_HYDRANT_NATURE.ID.eq(HYDRANT.NATURE))
.join(TYPE_HYDRANT)
.on(TYPE_HYDRANT.ID.eq(TYPE_HYDRANT_NATURE.TYPE_HYDRANT))
.where(HYDRANT.ID.eq(hydrant.getId()))
.fetchOneInto(Integer.class);

// Dernier numéro interne dispo sans contrainte particulière
numInterne =
context
.resultQuery(
"select remocra.nextNumeroInterne(null, {0}, {1}, {2}, false)",
DSL.val(idTypeHydrant, SQLDataType.BIGINT),
(hydrant.getZoneSpeciale() == null)
? hydrant.getCommune()
: DSL.val(null, SQLDataType.BIGINT),
(hydrant.getZoneSpeciale() != null)
? hydrant.getZoneSpeciale()
: DSL.val(null, SQLDataType.BIGINT))
.resultQuery("select remocra.nextNumeroInterne(null, null, null, null, false)")
.fetchOneInto(Integer.class);
} catch (Exception e) {
numInterne = 99999;
Expand All @@ -1018,23 +1017,46 @@ public static Integer computeNumeroInterne83(Hydrant hydrant) {
}

/**
* SDIS inconnu
* Numérotation interne du 91
*
* <pre>
* PIBI public : le premier numéro disponible à partir de 1
* PIBI privés : le premier numéro disponible à partir de 500
* PENA publics ou privés : le premier numéro disponible à partir de 800</pre>
*
* @param hydrant
* @return
*/
public static Integer computeNumeroInterne86(Hydrant hydrant) {
public static Integer computeNumeroInterne91(Hydrant hydrant) {
// Retour du numéro interne s'il existe
if (hydrant.getNumeroInterne() != null && hydrant.getId() != null) {
return hydrant.getNumeroInterne();
}
Integer numInterne = null;
try {
// Dernier numéro interne dispo sans contrainte particulière
Integer idTypeHydrant =
context
.select(TYPE_HYDRANT.ID)
.from(TYPE_HYDRANT)
.join(TYPE_HYDRANT_NATURE)
.on(TYPE_HYDRANT_NATURE.TYPE_HYDRANT.eq(TYPE_HYDRANT.ID))
.where(TYPE_HYDRANT_NATURE.ID.eq(hydrant.getNature()))
.fetchOneInto(Integer.class);

numInterne =
context
.resultQuery("select remocra.nextNumeroInterne(null, null, null, null, false)")
.resultQuery(
"select remocra.nextNumeroInterne(null, {0}, {1}, {2}, {3})",
DSL.val(idTypeHydrant, SQLDataType.BIGINT),
DSL.val(hydrant.getNatureDeci(), SQLDataType.BIGINT),
(hydrant.getZoneSpeciale() == null)
? hydrant.getCommune()
: DSL.val(null, SQLDataType.BIGINT),
(hydrant.getZoneSpeciale() != null)
? hydrant.getZoneSpeciale()
: DSL.val(null, SQLDataType.BIGINT))
.fetchOneInto(Integer.class);

} catch (Exception e) {
numInterne = 99999;
}
Expand Down

0 comments on commit 5f7a3a1

Please sign in to comment.