From a9837bf4f18eb2e036d4523db8ea770b1ff494bf Mon Sep 17 00:00:00 2001 From: fbenoist68 Date: Tue, 19 Dec 2023 08:03:10 +0100 Subject: [PATCH] feat: add date_migration --- .../com/example/services/StoreService.java | 35 ++++++++++++++++--- .../com/example/services/store/Store.java | 19 +++++++++- 2 files changed, 48 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/example/services/StoreService.java b/src/main/java/com/example/services/StoreService.java index eab128b..54c0cbd 100644 --- a/src/main/java/com/example/services/StoreService.java +++ b/src/main/java/com/example/services/StoreService.java @@ -65,11 +65,13 @@ public class StoreService { " WHERE" + " hsc2.id_structure = st.id_structure" + " AND hsc2.id_caisse BETWEEN 20 AND 39) AS caisses," + - " REPLACE(REPLACE(TRIM(st.adresse1), chr(10), ''), chr(13), '') AS adresse" + + " REPLACE(REPLACE(TRIM(st.adresse1), chr(10), ''), chr(13), '') AS adresse," + + " axs.date_stock as date_migration" + " FROM COM02.structure st" + " JOIN com02.PARAM_PAYS pp ON pp.id_pays = st.id_pays" + " LEFT OUTER JOIN mobretail.mp_etab_param metabp ON metabp.id_etab = st.id_structure" + " LEFT OUTER JOIN mobretail.mr_photo mpprinc ON mpprinc.id_photo = metabp.id_photo_principale" + + " LEFT OUTER JOIN omni.ASPD_XSTO_STRUCTURE axs ON st.ID_STRUCTURE = axs.ID_STRUCTURE " + " WHERE st.id_structure = ?"; logger.info(query); @@ -100,6 +102,24 @@ public class StoreService { } } + /** + * Sets cachedStoreList to null, forcing a reload of stores from the database on the next call to /stores. + * + * @return A response indicating success + */ + @GET + @Path("/reload") + public Response reloadStores() { + cacheLock.lock(); + try { + cachedStoreList = null; + } finally { + cacheLock.unlock(); + } + + return Response.ok("{\"status\":\"Cache cleared\"}").build(); + } + /** * Retrieves all stores from the database and returns them as a JSON response. * @@ -156,12 +176,13 @@ public class StoreService { " WHERE" + " hsc2.id_structure = st.id_structure" + " AND hsc2.id_caisse BETWEEN 20 AND 39) AS caisses," + - " REPLACE(REPLACE(TRIM(st.adresse1), chr(10), ''), chr(13), '') AS adresse" + + " REPLACE(REPLACE(TRIM(st.adresse1), chr(10), ''), chr(13), '') AS adresse," + + " axs.date_stock as date_migration" + " FROM COM02.structure st" + " JOIN com02.PARAM_PAYS pp ON pp.id_pays = st.id_pays" + " LEFT OUTER JOIN mobretail.mp_etab_param metabp ON metabp.id_etab = st.id_structure" + " LEFT OUTER JOIN mobretail.mr_photo mpprinc ON mpprinc.id_photo = metabp.id_photo_principale" + - " LEFT OUTER JOIN omni.ASPD_XSTO_STRUCTURE axs ON st.ID_STRUCTURE = axs.ID_STRUCTURE " + + " LEFT OUTER JOIN omni.ASPD_XSTO_STRUCTURE axs ON st.ID_STRUCTURE = axs.ID_STRUCTURE" + " WHERE axs.date_stock is not null AND st.ID_NIVEAU=4 AND st.STATUT=2 AND st.id_canal_distribution = 1 and st.magasin_demo = 0" + " ORDER BY st.id_structure"; @@ -358,6 +379,7 @@ public class StoreService { store.setPays(resultSet.getString("PAYS")); store.setCaisses(resultSet.getString("CAISSES")); store.setAdresse(resultSet.getString("ADRESSE")); + store.setDate_migration(resultSet.getDate("DATE_MIGRATION")); return store; } @@ -568,11 +590,13 @@ public class StoreService { " WHERE" + " hsc2.id_structure = st.id_structure" + " AND hsc2.id_caisse BETWEEN 20 AND 39) AS caisses," + - " REPLACE(REPLACE(TRIM(st.adresse1), chr(10), ''), chr(13), '') AS adresse" + + " REPLACE(REPLACE(TRIM(st.adresse1), chr(10), ''), chr(13), '') AS adresse," + + " axs.date_stock as date_migration" + " FROM COM02.structure st" + " JOIN com02.PARAM_PAYS pp ON pp.id_pays = st.id_pays" + " LEFT OUTER JOIN mobretail.mp_etab_param metabp ON metabp.id_etab = st.id_structure" + " LEFT OUTER JOIN mobretail.mr_photo mpprinc ON mpprinc.id_photo = metabp.id_photo_principale" + + " LEFT OUTER JOIN omni.ASPD_XSTO_STRUCTURE axs ON st.ID_STRUCTURE = axs.ID_STRUCTURE " + " WHERE st.id_structure = ?"; logger.info(storeQuery); @@ -630,8 +654,9 @@ public class StoreService { String pays = resultSet.getString("pays"); String caisses = resultSet.getString("caisses"); String adresse = resultSet.getString("adresse"); + Date date_migration = resultSet.getDate("date_migration"); - return new Store(id_structure, nom, telephone, photoLink, enseigne, pays, caisses, adresse); + return new Store(id_structure, nom, telephone, photoLink, enseigne, pays, caisses, adresse, date_migration); } private StoreReplication mapResultSetToStoreReplication(ResultSet resultSet) throws SQLException { diff --git a/src/main/java/com/example/services/store/Store.java b/src/main/java/com/example/services/store/Store.java index 284ecfd..6f5b947 100644 --- a/src/main/java/com/example/services/store/Store.java +++ b/src/main/java/com/example/services/store/Store.java @@ -1,5 +1,7 @@ package com.example.services.store; +import java.sql.Date; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; @@ -16,6 +18,7 @@ public class Store { private Integer nbcaisses; private String adresse; private List caisses; + private Date date_migration; // Default constructor public Store() { @@ -23,7 +26,7 @@ public class Store { } // Constructor with parameters - public Store(Integer id_structure, String nom, String telephone, String photoLink, String enseigne, String pays, String caisses, String adresse) { + public Store(Integer id_structure, String nom, String telephone, String photoLink, String enseigne, String pays, String caisses, String adresse, Date date_migration) { this.id_structure = id_structure; this.nom = nom; this.telephone = telephone; @@ -31,6 +34,7 @@ public class Store { this.enseigne = enseigne; this.pays = pays; this.adresse = adresse; + this.date_migration = date_migration; setCaisses(caisses); } @@ -117,6 +121,19 @@ public class Store { Collections.sort(this.caisses, Comparator.comparing(Caisse::getId_caisse)); } + public String getDate_migration() { + if (date_migration != null) { + SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); + return dateFormat.format(date_migration); + } else { + return ""; + } + } + + public void setDate_migration(Date date_migration) { + this.date_migration = date_migration; + } + public class Caisse { private Integer id_caisse; private String ip;