Retour aux projets

GMAO PARC

Deux traitements Java qui mettent à jour tout seuls le logiciel de maintenance du parc.

Contexte
Alternance chez AREA (groupe APRR)
Période
2025 – 2026
Rôle
Apprenti dans le pôle logiciels de gestion
Équipe
Avec ma tutrice en entreprise
  • Java
  • JDBC
  • PostgreSQL
  • REST API
  • Maven
  • Log4j
  • Azure DevOps

Contexte

La GMAO PARC est le logiciel qui gère tous les véhicules et matériels du groupe. Elle sert à planifier et suivre leur entretien : tracteurs, saleuses, tondeuses… Elle tourne sur CARL Source et échange des données avec l’outil RH et les outils financiers.

Deux mises à jour se faisaient encore à la main. Il fallait désactiver une par une les personnes parties de l’entreprise. C’était un problème de sécurité et de RGPD. Et quand un matériel changeait de site, son code analytique restait souvent le même. L’entretien était alors facturé au mauvais service.

  1. Outil RHSalariés et dates de fin de contrat
  2. GMAOCARL Source, véhicules et matériels
  3. Outils financiersBudgets de maintenance
Vue simplifiée des flux de données autour de la GMAO.

Ce que j’ai réalisé

  • Un traitement des matériels en Java avec JDBC. Il cherche les matériels dont le code analytique ne correspond pas à celui de leur site et les corrige dans une seule transaction.
  • Un traitement des acteurs qui utilise l’API REST de CARL Source. Il récupère les personnes dont le contrat est terminé et les passe en inactif.
  • Un socle commun aux deux traitements : accès à la base, logs, fichier d’erreurs et mail de compte rendu à la fin de chaque exécution. Les mots de passe et paramètres sont dans des fichiers externes et pas dans le code.
  • Une livraison en Fat JAR avec Maven. Le code est sur Azure DevOps et les traitements ont été testés sur les serveurs de préproduction.

Le bug qui m’a le plus appris

En test, certaines personnes n’étaient jamais désactivées. Le traitement lisait les résultats de l’API page par page. Mais chaque personne désactivée sortait de la liste. Tout se décalait et la page suivante sautait des personnes.

La solution a été de toujours relire la première page jusqu’à ce que l’API ne renvoie plus rien. La liste se vide au fur et à mesure.

  1. Obtenir un jetonConnexion à l’API CARL Source
  2. Lire la première pagePersonnes dont le contrat est terminé
  3. Les désactiverElles sortent de la liste

Retour à la première page jusqu’à ce qu’elle soit vide, puis un mail de compte rendu est envoyé.

Le fonctionnement du traitement des acteurs après la correction.

Résultat

Les deux mises à jour n’ont plus besoin de personne. J’ai aussi étudié tout le flux d’intégration RH pour préparer l’arrivée des nouvelles filiales après la réorganisation de janvier 2026. Le code est prêt pour la version 7 de CARL Source.