From 04c854af2f8aa069b4628f3254216d18400e59c3 Mon Sep 17 00:00:00 2001 From: fbenoist68 Date: Tue, 21 Nov 2023 00:35:09 +0100 Subject: [PATCH] feat : store details --- .../com/example/services/ItemService.java | 462 +++++++----------- .../com/example/services/StoreService.java | 88 ++-- .../java/com/example/services/item/Item.java | 294 +++++++++++ .../example/services/item/ItemDetails.java | 43 ++ .../com/example/services/item/ItemOption.java | 124 +++++ .../com/example/services/item/ItemPrices.java | 159 ++++++ .../services/store/BackOfficeTransaction.java | 85 ++++ .../com/example/services/store/Store.java | 4 +- .../example/services/store/StoreDetails.java | 16 +- .../services/store/StoreReplication.java | 56 ++- .../example/services/store/StoreTicket.java | 35 -- src/main/resources/db.properties | 2 +- src/main/resources/env.properties | 2 +- 13 files changed, 994 insertions(+), 376 deletions(-) create mode 100644 src/main/java/com/example/services/item/Item.java create mode 100644 src/main/java/com/example/services/item/ItemDetails.java create mode 100644 src/main/java/com/example/services/item/ItemOption.java create mode 100644 src/main/java/com/example/services/item/ItemPrices.java create mode 100644 src/main/java/com/example/services/store/BackOfficeTransaction.java delete mode 100644 src/main/java/com/example/services/store/StoreTicket.java diff --git a/src/main/java/com/example/services/ItemService.java b/src/main/java/com/example/services/ItemService.java index 5a69d6a..70d586a 100644 --- a/src/main/java/com/example/services/ItemService.java +++ b/src/main/java/com/example/services/ItemService.java @@ -1,5 +1,10 @@ package com.example.services; +import com.example.services.item.Item; +import com.example.services.item.ItemDetails; +import com.example.services.item.ItemOption; +import com.example.services.item.ItemPrices; + import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; @@ -14,12 +19,16 @@ import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; -import java.sql.Timestamp; import java.util.ArrayList; import java.util.List; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + + @Path("/items") public class ItemService { + private static final Logger logger = LoggerFactory.getLogger(DatabaseConnectDOTSOFT.class); @GET @Path("/get") @@ -39,10 +48,10 @@ public class ItemService { DriverManager.setLoginTimeout(5); // Définir le timeout à 5 secondes try (DatabaseConnectXSTORE databaseConnection = new DatabaseConnectXSTORE(dbHost, "dtv")) { - String query = "SELECT * FROM ITM_ITEM WHERE ITEM_ID LIKE ?" ; + String query = "SELECT * FROM dtv.ITM_ITEM WHERE ORGANIZATION_ID = 1 AND ITEM_ID LIKE ?"; try (PreparedStatement statement = databaseConnection.getConnection().prepareStatement(query)) { - // Concaténer % au paramètre itemId + // Concatenate % to parameter itemId statement.setString(1, itemId + "%"); try (ResultSet resultSet = statement.executeQuery()) { @@ -99,287 +108,190 @@ public class ItemService { item.setDimension2(resultSet.getString("DIMENSION2")); item.setDimension3(resultSet.getString("DIMENSION3")); item.setExternalSystem(resultSet.getString("EXTERNAL_SYSTEM")); - item.setCreateDate(resultSet.getTimestamp("CREATE_DATE")); + item.setCreateDate(resultSet.getDate("CREATE_DATE")); item.setCreateUserId(resultSet.getString("CREATE_USER_ID")); - item.setUpdateDate(resultSet.getTimestamp("UPDATE_DATE")); + item.setUpdateDate(resultSet.getDate("UPDATE_DATE")); item.setUpdateUserId(resultSet.getString("UPDATE_USER_ID")); item.setRecordState(resultSet.getString("RECORD_STATE")); return item; } - public class Item { - private Long organizationId; - private String itemId; - private String orgCode; - private String orgValue; - private String name; - private String description; - private String merchLevel1; - private String merchLevel2; - private String merchLevel3; - private String merchLevel4; - private Integer listPrice; - private Integer measureReqFlag; - private String itemLevelCode; - private String parentItemId; - private Integer notInventoriedFlag; - private Integer serializedItemFlag; - private String itemTypeCode; - private String dtvClassName; - private String dimensionSystem; - private Integer disallowMatrixDisplayFlag; - private String itemMatrixColor; - private String dimension1; - private String dimension2; - private String dimension3; - private String externalSystem; - private Timestamp createDate; - private String createUserId; - private Timestamp updateDate; - private String updateUserId; - private String recordState; - - // Getters and Setters for all fields - - public Long getOrganizationId() { - return organizationId; + @GET + @Path("/getItemDetails") + @Produces(MediaType.APPLICATION_JSON) + public Response getItemDetails( + @QueryParam("dbHost") String dbHost, + @QueryParam("itemId") String itemId) { + + if (dbHost == null) { + return Response.status(Response.Status.BAD_REQUEST).entity("{\"error\":\"dbHost parameter is required\"}").build(); + } + + if (itemId == null) { + return Response.status(Response.Status.BAD_REQUEST).entity("{\"error\":\"itemId parameter is required\"}").build(); } - public void setOrganizationId(Long organizationId) { - this.organizationId = organizationId; - } + try { + ItemDetails itemDetails = retrieveItemDetails(dbHost,itemId); - public String getItemId() { - return itemId; - } - - public void setItemId(String itemId) { - this.itemId = itemId; - } - - public String getOrgCode() { - return orgCode; - } - - public void setOrgCode(String orgCode) { - this.orgCode = orgCode; - } - - public String getOrgValue() { - return orgValue; - } - - public void setOrgValue(String orgValue) { - this.orgValue = orgValue; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public String getMerchLevel1() { - return merchLevel1; - } - - public void setMerchLevel1(String merchLevel1) { - this.merchLevel1 = merchLevel1; - } - - public String getMerchLevel2() { - return merchLevel2; - } - - public void setMerchLevel2(String merchLevel2) { - this.merchLevel2 = merchLevel2; - } - - public String getMerchLevel3() { - return merchLevel3; - } - - public void setMerchLevel3(String merchLevel3) { - this.merchLevel3 = merchLevel3; - } - - public String getMerchLevel4() { - return merchLevel4; - } - - public void setMerchLevel4(String merchLevel4) { - this.merchLevel4 = merchLevel4; - } - - public Integer getListPrice() { - return listPrice; - } - - public void setListPrice(Integer listPrice) { - this.listPrice = listPrice; - } - - public Integer getMeasureReqFlag() { - return measureReqFlag; - } - - public void setMeasureReqFlag(Integer measureReqFlag) { - this.measureReqFlag = measureReqFlag; - } - - public String getItemLevelCode() { - return itemLevelCode; - } - - public void setItemLevelCode(String itemLevelCode) { - this.itemLevelCode = itemLevelCode; - } - - public String getParentItemId() { - return parentItemId; - } - - public void setParentItemId(String parentItemId) { - this.parentItemId = parentItemId; - } - - public Integer getNotInventoriedFlag() { - return notInventoriedFlag; - } - - public void setNotInventoriedFlag(Integer notInventoriedFlag) { - this.notInventoriedFlag = notInventoriedFlag; - } - - public Integer getSerializedItemFlag() { - return serializedItemFlag; - } - - public void setSerializedItemFlag(Integer serializedItemFlag) { - this.serializedItemFlag = serializedItemFlag; - } - - public String getItemTypeCode() { - return itemTypeCode; - } - - public void setItemTypeCode(String itemTypeCode) { - this.itemTypeCode = itemTypeCode; - } - - public String getDtvClassName() { - return dtvClassName; - } - - public void setDtvClassName(String dtvClassName) { - this.dtvClassName = dtvClassName; - } - - public String getDimensionSystem() { - return dimensionSystem; - } - - public void setDimensionSystem(String dimensionSystem) { - this.dimensionSystem = dimensionSystem; - } - - public Integer getDisallowMatrixDisplayFlag() { - return disallowMatrixDisplayFlag; - } - - public void setDisallowMatrixDisplayFlag(Integer disallowMatrixDisplayFlag) { - this.disallowMatrixDisplayFlag = disallowMatrixDisplayFlag; - } - - public String getItemMatrixColor() { - return itemMatrixColor; - } - - public void setItemMatrixColor(String itemMatrixColor) { - this.itemMatrixColor = itemMatrixColor; - } - - public String getDimension1() { - return dimension1; - } - - public void setDimension1(String dimension1) { - this.dimension1 = dimension1; - } - - public String getDimension2() { - return dimension2; - } - - public void setDimension2(String dimension2) { - this.dimension2 = dimension2; - } - - public String getDimension3() { - return dimension3; - } - - public void setDimension3(String dimension3) { - this.dimension3 = dimension3; - } - - public String getExternalSystem() { - return externalSystem; - } - - public void setExternalSystem(String externalSystem) { - this.externalSystem = externalSystem; - } - - public Timestamp getCreateDate() { - return createDate; - } - - public void setCreateDate(Timestamp createDate) { - this.createDate = createDate; - } - - public String getCreateUserId() { - return createUserId; - } - - public void setCreateUserId(String createUserId) { - this.createUserId = createUserId; - } - - public Timestamp getUpdateDate() { - return updateDate; - } - - public void setUpdateDate(Timestamp updateDate) { - this.updateDate = updateDate; - } - - public String getUpdateUserId() { - return updateUserId; - } - - public void setUpdateUserId(String updateUserId) { - this.updateUserId = updateUserId; - } - - public String getRecordState() { - return recordState; - } - - public void setRecordState(String recordState) { - this.recordState = recordState; + if (itemDetails != null) { + ObjectMapper objectMapper = new ObjectMapper(); + try { + String jsonResponse = objectMapper.writeValueAsString(itemDetails); + return Response.ok(jsonResponse).build(); + } catch (JsonProcessingException e) { + e.printStackTrace(); + return Response.status(Response.Status.INTERNAL_SERVER_ERROR) + .entity("{\"error\":\"Error converting ItemDetails to JSON\"}") + .build(); + } + } else { + return Response.status(Response.Status.NOT_FOUND).entity("{\"error\":\"Item details not found\"}").build(); + } + } catch (RuntimeException e) { + // Capture the RuntimeException to manage SQL errors + e.printStackTrace(); + return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity("{\"error\":\"" + e.getMessage() + "\"}").build(); } } -} + + /** + * Retrieves itemDetails from the database. + * + * @return a list of items retrieved from the database + */ + private ItemDetails retrieveItemDetails(String dbHost, String itemId) { + DriverManager.setLoginTimeout(5); + + ItemDetails itemDetails = new ItemDetails(); // Declare object outside try blocks + + List itemList = new ArrayList<>(); + List itemOptionList = new ArrayList<>(); + List itemPricesList = new ArrayList<>(); + + try (DatabaseConnectXSTORE databaseConnection = new DatabaseConnectXSTORE(dbHost,"dtv")) { + // Item section + String itemQuery = "SELECT item_id,item_lvlcode,parent_item_id,item_typcode,create_date,create_user_id,update_date,update_user_id " + + "FROM dtv.itm_item " + + "WHERE organization_id = 1 AND item_id LIKE ?"; + + logger.info(itemQuery); + try (PreparedStatement itemStatement = databaseConnection.getConnection().prepareStatement(itemQuery)) { + // Concatenate % to parameter itemId + itemStatement.setString(1, itemId + "%"); + + try (ResultSet itemResultSet = itemStatement.executeQuery()) { + while (itemResultSet.next()) { + Item item = mapResultSetToItemDetails(itemResultSet); + itemList.add(item); + } + + itemDetails.setItems(itemList); + } + + } + + // item option section + String itemOptionQuery = "SELECT item_id,level_code,level_value,item_availability_code,tax_group_id,Vendor,season_code,create_date,create_user_id,update_date,update_user_id " + + "FROM dtv.itm_item_options " + + "WHERE organization_id = 1 AND item_id LIKE ?"; + + logger.info(itemOptionQuery); + try (PreparedStatement itemOptionStatement = databaseConnection.getConnection().prepareStatement(itemOptionQuery)) { + // Concatenate % to parameter itemId + itemOptionStatement.setString(1, itemId + "%"); + + try (ResultSet itemOptionResultSet = itemOptionStatement.executeQuery()) { + while (itemOptionResultSet.next()) { + ItemOption itemOption = mapResultSetToItemOptionDetails(itemOptionResultSet); + itemOptionList.add(itemOption); + } + + itemDetails.setItemOptions(itemOptionList); + } + } + + // item option price + String itemPricesQuery = "SELECT item_id, level_code, level_value, itm_price_property_code, effective_date, expiration_date, price, price_qty, external_id, external_system, create_date, create_user_id, update_date, update_user_id " + + "FROM dtv.itm_item_prices " + + "WHERE organization_id = 1 AND item_id LIKE ?"; + + logger.info(itemPricesQuery); + try (PreparedStatement itemPricesStatement = databaseConnection.getConnection().prepareStatement(itemPricesQuery)) { + // Concatenate % to parameter itemId + itemPricesStatement.setString(1, itemId + "%"); + + try (ResultSet itemPricesResultSet = itemPricesStatement.executeQuery()) { + while (itemPricesResultSet.next()) { + ItemPrices itemPrices = mapResultSetToItemPricesDetails(itemPricesResultSet); + itemPricesList.add(itemPrices); + } + + itemDetails.setItemPrices(itemPricesList); + } + } + } catch (SQLException e) { + e.printStackTrace(); + // Handle exceptions correctly in a production environment + } + + // Return the complete ItemDetails object + return itemDetails; + } + + private Item mapResultSetToItemDetails(ResultSet resultSet) throws SQLException { + Item item = new Item(); + + item.setItemId(resultSet.getString("ITEM_ID")); + item.setItemLevelCode(resultSet.getString("ITEM_LVLCODE")); + item.setParentItemId(resultSet.getString("PARENT_ITEM_ID")); + item.setItemTypeCode(resultSet.getString("ITEM_TYPCODE")); + item.setCreateDate(resultSet.getDate("CREATE_DATE")); + item.setCreateUserId(resultSet.getString("CREATE_USER_ID")); + item.setUpdateDate(resultSet.getDate("UPDATE_DATE")); + item.setUpdateUserId(resultSet.getString("UPDATE_USER_ID")); + + return item; + } + + private ItemOption mapResultSetToItemOptionDetails(ResultSet resultSet) throws SQLException { + ItemOption itemOption = new ItemOption(); + + itemOption.setItemId(resultSet.getString("ITEM_ID")); + itemOption.setLevelCode(resultSet.getString("LEVEL_CODE")); + itemOption.setLevelValue(resultSet.getString("LEVEL_VALUE")); + itemOption.setItemAvailabilityCode(resultSet.getString("ITEM_AVAILABILITY_CODE")); + itemOption.setTaxGroupId(resultSet.getString("TAX_GROUP_ID")); + itemOption.setVendor(resultSet.getString("VENDOR")); + itemOption.setSeasonCode(resultSet.getString("SEASON_CODE")); + itemOption.setCreateDate(resultSet.getDate("CREATE_DATE")); + itemOption.setCreateUserId(resultSet.getString("CREATE_USER_ID")); + itemOption.setUpdateDate(resultSet.getDate("UPDATE_DATE")); + itemOption.setUpdateUserId(resultSet.getString("UPDATE_USER_ID")); + + return itemOption; + } + + private ItemPrices mapResultSetToItemPricesDetails(ResultSet resultSet) throws SQLException { + + ItemPrices itemPrices = new ItemPrices(); + + itemPrices.setItemId(resultSet.getString("ITEM_ID")); + itemPrices.setLevelCode(resultSet.getString("LEVEL_CODE")); + itemPrices.setLevelValue(resultSet.getString("LEVEL_VALUE")); + itemPrices.setItmPricePropertyCode(resultSet.getString("ITM_PRICE_PROPERTY_CODE")); + itemPrices.setEffectiveDate(resultSet.getDate("EFFECTIVE_DATE")); + itemPrices.setExpirationDate(resultSet.getDate("EXPIRATION_DATE")); + itemPrices.setPrice(resultSet.getDouble("PRICE")); + itemPrices.setPriceQty(resultSet.getDouble("PRICE_QTY")); + itemPrices.setExternalId(resultSet.getString("EXTERNAL_ID")); + itemPrices.setExternalSystem(resultSet.getString("EXTERNAL_SYSTEM")); + itemPrices.setCreateDate(resultSet.getDate("CREATE_DATE")); + itemPrices.setCreateUserId(resultSet.getString("CREATE_USER_ID")); + itemPrices.setUpdateDate(resultSet.getDate("UPDATE_DATE")); + itemPrices.setUpdateUserId(resultSet.getString("UPDATE_USER_ID")); + + return itemPrices; + } +} \ No newline at end of file diff --git a/src/main/java/com/example/services/StoreService.java b/src/main/java/com/example/services/StoreService.java index a03f368..2ad33eb 100644 --- a/src/main/java/com/example/services/StoreService.java +++ b/src/main/java/com/example/services/StoreService.java @@ -12,6 +12,7 @@ import javax.ws.rs.core.Response; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; +import java.sql.Date; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; @@ -22,8 +23,13 @@ import java.util.List; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + @Path("/stores") public class StoreService { + private static final Logger logger = LoggerFactory.getLogger(DatabaseConnectDOTSOFT.class); + private static List cachedStoreList; private static final Lock cacheLock = new ReentrantLock(); @@ -118,11 +124,13 @@ public class StoreService { DriverManager.setLoginTimeout(5); // Définir le timeout à 5 secondes try (DatabaseConnectDOTSOFT databaseConnection = new DatabaseConnectDOTSOFT("com02")) { - String query = "SELECT st.id_structure, TRIM(st.nom) as nom, '10.100.0.18' AS ip, " + + String query = "SELECT st.id_structure, TRIM(st.nom) as nom, hsc.ip, " + "st.tel1 AS telephone " + "FROM COM02.STRUCTURE st " + "LEFT OUTER JOIN omni.ASPD_XSTO_STRUCTURE axs ON st.ID_STRUCTURE = axs.ID_STRUCTURE " + - "WHERE st.id_structure < 50"; + "JOIN COM02.hotline_structure_caisse hsc ON hsc.id_structure = st.id_structure AND hsc.id_caisse = 1 " + + "WHERE st.id_structure < 50 AND hsc.ip IS NOT NULL AND st.ID_NIVEAU=4 AND st.STATUT=2 " + + "ORDER BY st.id_structure"; try (PreparedStatement statement = databaseConnection.getConnection().prepareStatement(query); ResultSet resultSet = statement.executeQuery()) { @@ -215,7 +223,8 @@ public class StoreService { "st.tel1 AS telephone, 'https://mp4.ikksgroup.com/photos/1/6/5/7/3/16573-large.JPG' as photoLink " + "FROM COM02.STRUCTURE st " + "WHERE st.id_structure = ?"; - + + logger.info(storeQuery); try (PreparedStatement storeStatement = databaseConnection.getConnection().prepareStatement(storeQuery)) { storeStatement.setInt(1, storeId); // Set the value of the parameter @@ -228,6 +237,31 @@ public class StoreService { } } } + + // Transaction section + String transactionQuery = "SELECT COUNT(*) as backOfficeTransactions, " + + " MIN(cf.fdate_integration) AS minBackOfficeTransactionDate, " + + " MAX(cf.fdate_integration) AS maxBackOfficeTransactionDate, " + + " TRUNC(MAX(cf.fdate)) AS backOfficeBusinessDate, " + + " CASE WHEN TRUNC(MAX(cf.fdate)) = TRUNC(SYSDATE )THEN 1 ELSE 0 END AS backOfficeTransactionOk "+ + "FROM com02.client_facture cf " + + "WHERE cf.id_structure = ? " + + "AND TRUNC(cf.fdate_integration) = TRUNC(SYSDATE-2) " + //TODO : changer la date + "AND cf.version_info = 'XSTORE'"; + + logger.info(transactionQuery); + try (PreparedStatement transactionStatement = databaseConnection.getConnection().prepareStatement(transactionQuery)) { + transactionStatement.setInt(1, storeId); // Set the value of the parameter + + try (ResultSet transactionResultSet = transactionStatement.executeQuery()) { + if (transactionResultSet.next()) { + BackOfficeTransaction storetransaction = mapResultSetToBackOfficetransaction(transactionResultSet); + storeDetails.setTransaction(storetransaction); + } else { + // Adjust to the desired behavior if no results are found for the transaction section. + } + } + } } catch (SQLException e) { e.printStackTrace(); // Handle exceptions correctly in a production environment @@ -235,12 +269,13 @@ public class StoreService { try (DatabaseConnectXSTORE databaseConnection = new DatabaseConnectXSTORE(dbHost,"dtv")) { // Replication section - String replicationQuery = "SELECT 1 AS replicationOk, " + - "5 AS pendingReplications, " + - "TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') AS minReplicationDate, " + - "TO_CHAR(SYSDATE + INTERVAL '1' DAY, 'YYYY-MM-DD HH24:MI:SS') AS maxReplicationDate " + - "FROM DUAL"; + String replicationQuery = "SELECT COUNT(*) AS pendingReplications, " + + "MIN(crq.CREATE_DATE) AS minPendingReplicationDate, " + + "MAX(crq.CREATE_DATE) AS maxPendingReplicationDate, " + + "CASE WHEN MIN(crq.CREATE_DATE) IS NULL OR MIN(crq.CREATE_DATE) > SYSDATE - INTERVAL '5' MINUTE THEN 1 ELSE 0 END AS pendingReplicationOk "+ + "FROM repqueue.CTL_REPLICATION_QUEUE crq"; + logger.info(replicationQuery); try (PreparedStatement storeStatement = databaseConnection.getConnection().prepareStatement(replicationQuery); ResultSet storeReplicationResultSet = storeStatement.executeQuery()) { @@ -251,22 +286,6 @@ public class StoreService { // Adjust to the desired behavior if no results are found for the Replication section. } } - - // Ticket section - String ticketQuery = "SELECT 10 AS totalTicketsInCaisse, " + - "15 AS totalTicketsInBackOffice " + - "FROM DUAL"; - - try (PreparedStatement ticketStatement = databaseConnection.getConnection().prepareStatement(ticketQuery); - ResultSet ticketResultSet = ticketStatement.executeQuery()) { - - if (ticketResultSet.next()) { - StoreTicket storeTicket = mapResultSetToStoreTicket(ticketResultSet); - storeDetails.setTickets(storeTicket); - } else { - // Adjust to the desired behavior if no results are found for the Ticket section. - } - } } catch (SQLException e) { e.printStackTrace(); // Handle exceptions correctly in a production environment @@ -287,18 +306,21 @@ public class StoreService { } private StoreReplication mapResultSetToStoreReplication(ResultSet resultSet) throws SQLException { - boolean replicationOk = resultSet.getBoolean("replicationOk"); + boolean pendingReplicationOk = resultSet.getBoolean("pendingReplicationOk"); int pendingReplications = resultSet.getInt("pendingReplications"); - String minReplicationDate = resultSet.getString("minReplicationDate"); - String maxReplicationDate = resultSet.getString("maxReplicationDate"); + Date minPendingReplicationDate = resultSet.getDate("minPendingReplicationDate"); + Date maxPendingReplicationDate = resultSet.getDate("maxPendingReplicationDate"); - return new StoreReplication(replicationOk, pendingReplications, minReplicationDate, maxReplicationDate); + return new StoreReplication(pendingReplicationOk, pendingReplications, minPendingReplicationDate, maxPendingReplicationDate); } - private StoreTicket mapResultSetToStoreTicket(ResultSet resultSet) throws SQLException { - int totalTicketsInCaisse = resultSet.getInt("totalTicketsInCaisse"); - int totalTicketsInBackOffice = resultSet.getInt("totalTicketsInBackOffice"); - - return new StoreTicket(totalTicketsInCaisse, totalTicketsInBackOffice); + private BackOfficeTransaction mapResultSetToBackOfficetransaction(ResultSet resultSet) throws SQLException { + boolean backOfficeTransactionOk = resultSet.getBoolean("backOfficeTransactionOk"); + int backofficeTransactions = resultSet.getInt("backOfficeTransactions"); + Date minBackofficeTransactionDate = resultSet.getDate("minBackOfficeTransactionDate"); + Date maxBackofficeTransactionDate = resultSet.getDate("maxBackOfficeTransactionDate"); + Date backOfficeBusinessDate = resultSet.getDate("backOfficeBusinessDate"); + + return new BackOfficeTransaction(backOfficeTransactionOk, backofficeTransactions, minBackofficeTransactionDate, maxBackofficeTransactionDate, backOfficeBusinessDate); } } diff --git a/src/main/java/com/example/services/item/Item.java b/src/main/java/com/example/services/item/Item.java new file mode 100644 index 0000000..f916787 --- /dev/null +++ b/src/main/java/com/example/services/item/Item.java @@ -0,0 +1,294 @@ +package com.example.services.item; + +import java.sql.Date; +import java.text.SimpleDateFormat; + + public class Item { + private Long organizationId; + private String itemId; + private String orgCode; + private String orgValue; + private String name; + private String description; + private String merchLevel1; + private String merchLevel2; + private String merchLevel3; + private String merchLevel4; + private Integer listPrice; + private Integer measureReqFlag; + private String itemLevelCode; + private String parentItemId; + private Integer notInventoriedFlag; + private Integer serializedItemFlag; + private String itemTypeCode; + private String dtvClassName; + private String dimensionSystem; + private Integer disallowMatrixDisplayFlag; + private String itemMatrixColor; + private String dimension1; + private String dimension2; + private String dimension3; + private String externalSystem; + private Date createDate; + private String createUserId; + private Date updateDate; + private String updateUserId; + private String recordState; + + // Constructeur par défaut + public Item() { + // Default constructor required for JSON deserialization + } + + // Getters and Setters for all fields + + public Long getOrganizationId() { + return organizationId; + } + + public void setOrganizationId(Long organizationId) { + this.organizationId = organizationId; + } + + public String getItemId() { + return itemId; + } + + public void setItemId(String itemId) { + this.itemId = itemId; + } + + public String getOrgCode() { + return orgCode; + } + + public void setOrgCode(String orgCode) { + this.orgCode = orgCode; + } + + public String getOrgValue() { + return orgValue; + } + + public void setOrgValue(String orgValue) { + this.orgValue = orgValue; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getMerchLevel1() { + return merchLevel1; + } + + public void setMerchLevel1(String merchLevel1) { + this.merchLevel1 = merchLevel1; + } + + public String getMerchLevel2() { + return merchLevel2; + } + + public void setMerchLevel2(String merchLevel2) { + this.merchLevel2 = merchLevel2; + } + + public String getMerchLevel3() { + return merchLevel3; + } + + public void setMerchLevel3(String merchLevel3) { + this.merchLevel3 = merchLevel3; + } + + public String getMerchLevel4() { + return merchLevel4; + } + + public void setMerchLevel4(String merchLevel4) { + this.merchLevel4 = merchLevel4; + } + + public Integer getListPrice() { + return listPrice; + } + + public void setListPrice(Integer listPrice) { + this.listPrice = listPrice; + } + + public Integer getMeasureReqFlag() { + return measureReqFlag; + } + + public void setMeasureReqFlag(Integer measureReqFlag) { + this.measureReqFlag = measureReqFlag; + } + + public String getItemLevelCode() { + return itemLevelCode; + } + + public void setItemLevelCode(String itemLevelCode) { + this.itemLevelCode = itemLevelCode; + } + + public String getParentItemId() { + return parentItemId; + } + + public void setParentItemId(String parentItemId) { + this.parentItemId = parentItemId; + } + + public Integer getNotInventoriedFlag() { + return notInventoriedFlag; + } + + public void setNotInventoriedFlag(Integer notInventoriedFlag) { + this.notInventoriedFlag = notInventoriedFlag; + } + + public Integer getSerializedItemFlag() { + return serializedItemFlag; + } + + public void setSerializedItemFlag(Integer serializedItemFlag) { + this.serializedItemFlag = serializedItemFlag; + } + + public String getItemTypeCode() { + return itemTypeCode; + } + + public void setItemTypeCode(String itemTypeCode) { + this.itemTypeCode = itemTypeCode; + } + + public String getDtvClassName() { + return dtvClassName; + } + + public void setDtvClassName(String dtvClassName) { + this.dtvClassName = dtvClassName; + } + + public String getDimensionSystem() { + return dimensionSystem; + } + + public void setDimensionSystem(String dimensionSystem) { + this.dimensionSystem = dimensionSystem; + } + + public Integer getDisallowMatrixDisplayFlag() { + return disallowMatrixDisplayFlag; + } + + public void setDisallowMatrixDisplayFlag(Integer disallowMatrixDisplayFlag) { + this.disallowMatrixDisplayFlag = disallowMatrixDisplayFlag; + } + + public String getItemMatrixColor() { + return itemMatrixColor; + } + + public void setItemMatrixColor(String itemMatrixColor) { + this.itemMatrixColor = itemMatrixColor; + } + + public String getDimension1() { + return dimension1; + } + + public void setDimension1(String dimension1) { + this.dimension1 = dimension1; + } + + public String getDimension2() { + return dimension2; + } + + public void setDimension2(String dimension2) { + this.dimension2 = dimension2; + } + + public String getDimension3() { + return dimension3; + } + + public void setDimension3(String dimension3) { + this.dimension3 = dimension3; + } + + public String getExternalSystem() { + return externalSystem; + } + + public void setExternalSystem(String externalSystem) { + this.externalSystem = externalSystem; + } + + public String getCreateDate() { + if (createDate != null) { + SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); + return dateFormat.format(createDate); + } else { + return ""; + } + } + + public void setCreateDate(Date createDate) { + this.createDate = createDate; + } + + public String getCreateUserId() { + return createUserId; + } + + public void setCreateUserId(String createUserId) { + this.createUserId = createUserId; + } + + public String getUpdateDate() { + if (updateDate != null) { + SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); + return dateFormat.format(updateDate); + } else { + return ""; + } + } + + public void setUpdateDate(Date updateDate) { + this.updateDate = updateDate; + } + + public String getUpdateUserId() { + return updateUserId; + } + + public void setUpdateUserId(String updateUserId) { + this.updateUserId = updateUserId; + } + + public String getRecordState() { + return recordState; + } + + public void setRecordState(String recordState) { + this.recordState = recordState; + } +} \ No newline at end of file diff --git a/src/main/java/com/example/services/item/ItemDetails.java b/src/main/java/com/example/services/item/ItemDetails.java new file mode 100644 index 0000000..abcbb62 --- /dev/null +++ b/src/main/java/com/example/services/item/ItemDetails.java @@ -0,0 +1,43 @@ +package com.example.services.item; + +import java.util.List; + +public class ItemDetails { + private List items; + private List itemOptions; + private List itemPrices; + + public ItemDetails() { + // Default constructor required for JSON deserialization + } + + public ItemDetails(List items, List itemOptions, List itemPrices) { + this.items = items; + this.itemOptions = itemOptions; + this.itemPrices = itemPrices; + } + + public List getItems() { + return items; + } + + public void setItems(List items) { + this.items = items; + } + + public List getItemOptions() { + return itemOptions; + } + + public void setItemOptions(List itemOptions) { + this.itemOptions = itemOptions; + } + + public List getItemPrices() { + return itemPrices; + } + + public void setItemPrices(List itemPrices) { + this.itemPrices = itemPrices; + } +} diff --git a/src/main/java/com/example/services/item/ItemOption.java b/src/main/java/com/example/services/item/ItemOption.java new file mode 100644 index 0000000..9585a6e --- /dev/null +++ b/src/main/java/com/example/services/item/ItemOption.java @@ -0,0 +1,124 @@ +package com.example.services.item; + +import java.sql.Date; +import java.text.SimpleDateFormat; + +public class ItemOption { + private String itemId; + private String levelCode; + private String levelValue; + private String itemAvailabilityCode; + private String taxGroupId; + private String vendor; + private String seasonCode; + private Date createDate; + private String createUserId; + private Date updateDate; + private String updateUserId; + + + public ItemOption() { + // Default constructor required for JSON deserialization + } + + // Getters and Setters for all fields + + public String getItemId() { + return itemId; + } + + public void setItemId(String itemId) { + this.itemId = itemId; + } + + public String getLevelCode() { + return levelCode; + } + + public void setLevelCode(String levelCode) { + this.levelCode = levelCode; + } + + public String getLevelValue() { + return levelValue; + } + + public void setLevelValue(String levelValue) { + this.levelValue = levelValue; + } + + public String getItemAvailabilityCode() { + return itemAvailabilityCode; + } + + public void setItemAvailabilityCode(String itemAvailabilityCode) { + this.itemAvailabilityCode = itemAvailabilityCode; + } + + public String getTaxGroupId() { + return taxGroupId; + } + + public void setTaxGroupId(String taxGroupId) { + this.taxGroupId = taxGroupId; + } + + public String getVendor() { + return vendor; + } + + public void setVendor(String vendor) { + this.vendor = vendor; + } + + public String getSeasonCode() { + return seasonCode; + } + + public void setSeasonCode(String seasonCode) { + this.seasonCode = seasonCode; + } + + public String getCreateDate() { + if (createDate != null) { + SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); + return dateFormat.format(createDate); + } else { + return ""; + } + } + + public void setCreateDate(Date createDate) { + this.createDate = createDate; + } + + public String getCreateUserId() { + return createUserId; + } + + public void setCreateUserId(String createUserId) { + this.createUserId = createUserId; + } + + public String getUpdateDate() { + if (updateDate != null) { + SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); + return dateFormat.format(updateDate); + } else { + return ""; + } + } + + public void setUpdateDate(Date updateDate) { + this.updateDate = updateDate; + } + + public String getUpdateUserId() { + return updateUserId; + } + + public void setUpdateUserId(String updateUserId) { + this.updateUserId = updateUserId; + } +} + diff --git a/src/main/java/com/example/services/item/ItemPrices.java b/src/main/java/com/example/services/item/ItemPrices.java new file mode 100644 index 0000000..a2f6917 --- /dev/null +++ b/src/main/java/com/example/services/item/ItemPrices.java @@ -0,0 +1,159 @@ +package com.example.services.item; + +import java.sql.Date; +import java.text.SimpleDateFormat; + +public class ItemPrices { + private String itemId; + private String levelCode; + private String levelValue; + private String itmPricePropertyCode; + private Date effectiveDate; + private Date expirationDate; + private Double price; + private Double priceQty; + private String externalId; + private String externalSystem; + private Date createDate; + private String createUserId; + private Date updateDate; + private String updateUserId; + + public ItemPrices() { + // Default constructor required for JSON deserialization + } + + // Getters and Setters for all fields + + public String getItemId() { + return itemId; + } + + public void setItemId(String itemId) { + this.itemId = itemId; + } + + public String getLevelCode() { + return levelCode; + } + + public void setLevelCode(String levelCode) { + this.levelCode = levelCode; + } + + public String getLevelValue() { + return levelValue; + } + + public void setLevelValue(String levelValue) { + this.levelValue = levelValue; + } + + public String getItmPricePropertyCode() { + return itmPricePropertyCode; + } + + public void setItmPricePropertyCode(String itmPricePropertyCode) { + this.itmPricePropertyCode = itmPricePropertyCode; + } + + public String getEffectiveDate() { + if (effectiveDate != null) { + SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); + return dateFormat.format(effectiveDate); + } else { + return ""; + } + } + + public void setEffectiveDate(Date effectiveDate) { + this.effectiveDate = effectiveDate; + } + + public String getExpirationDate() { + if (expirationDate != null) { + SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); + return dateFormat.format(expirationDate); + } else { + return ""; + } + } + + public void setExpirationDate(Date expirationDate) { + this.expirationDate = expirationDate; + } + + public Double getPrice() { + return price; + } + + public void setPrice(Double price) { + this.price = price; + } + + public Double getPriceQty() { + return priceQty; + } + + public void setPriceQty(Double priceQty) { + this.priceQty = priceQty; + } + + public String getExternalId() { + return externalId; + } + + public void setExternalId(String externalId) { + this.externalId = externalId; + } + + public String getExternalSystem() { + return externalSystem; + } + + public void setExternalSystem(String externalSystem) { + this.externalSystem = externalSystem; + } + + public String getCreateDate() { + if (createDate != null) { + SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); + return dateFormat.format(createDate); + } else { + return ""; + } + } + + public void setCreateDate(Date createDate) { + this.createDate = createDate; + } + + public String getCreateUserId() { + return createUserId; + } + + public void setCreateUserId(String createUserId) { + this.createUserId = createUserId; + } + + public String getUpdateDate() { + if (updateDate != null) { + SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); + return dateFormat.format(updateDate); + } else { + return ""; + } + } + + public void setUpdateDate(Date updateDate) { + this.updateDate = updateDate; + } + + public String getUpdateUserId() { + return updateUserId; + } + + public void setUpdateUserId(String updateUserId) { + this.updateUserId = updateUserId; + } +} \ No newline at end of file diff --git a/src/main/java/com/example/services/store/BackOfficeTransaction.java b/src/main/java/com/example/services/store/BackOfficeTransaction.java new file mode 100644 index 0000000..fb88302 --- /dev/null +++ b/src/main/java/com/example/services/store/BackOfficeTransaction.java @@ -0,0 +1,85 @@ +package com.example.services.store; + +import java.sql.Date; +import java.text.SimpleDateFormat; + +public class BackOfficeTransaction { + private boolean backOfficeTransactionOk; + private int backOfficeTransactions; + private Date minBackOfficeTransactionDate; + private Date maxBackOfficeTransactionDate; + private Date backOfficeBusinessDate; + + + // Constructeur par défaut + public BackOfficeTransaction() { + // Default constructor required for JSON deserialization + } + + // Constructeur avec paramètres + public BackOfficeTransaction(boolean backOfficeTransactionOk, int backOfficeTransactions, Date minbackOfficeTransactionDate, Date maxbackOfficeTransactionDate, Date backOfficeBusinessDate) { + this.backOfficeTransactionOk = backOfficeTransactionOk; + this.backOfficeTransactions = backOfficeTransactions; + this.minBackOfficeTransactionDate = minbackOfficeTransactionDate; + this.maxBackOfficeTransactionDate = maxbackOfficeTransactionDate; + this.backOfficeBusinessDate = backOfficeBusinessDate; + } + + // Getters et setters + + public boolean isBackOfficeTransactionOk() { + return backOfficeTransactionOk; + } + + public void setBackOfficeTransactionOk(boolean backOfficeTransactionOk) { + this.backOfficeTransactionOk = backOfficeTransactionOk; + } + + public int getBackOfficeTransactions() { + return backOfficeTransactions; + } + + public void setBackOfficeTransactions(int backOfficeTransactions) { + this.backOfficeTransactions = backOfficeTransactions; + } + + public String getMinBackOfficeTransactionDate() { + if (minBackOfficeTransactionDate != null) { + SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); + return dateFormat.format(minBackOfficeTransactionDate); + } else { + return ""; + } + } + + public void setMinBackOfficeTransactionDate(Date minBackOfficeTransactionDate) { + this.minBackOfficeTransactionDate = minBackOfficeTransactionDate; + } + + public String getMaxBackOfficeTransactionDate() { + if (maxBackOfficeTransactionDate != null) { + SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); + return dateFormat.format(maxBackOfficeTransactionDate); + } else { + return ""; + } + } + + public void setMaxBackOfficeTransactionDate(Date maxBackOfficeTransactionDate) { + this.maxBackOfficeTransactionDate = maxBackOfficeTransactionDate; + } + + public String getBackOfficeBusinessDate() { + if (backOfficeBusinessDate != null) { + SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy"); + return dateFormat.format(backOfficeBusinessDate); + } else { + return ""; + } + } + + + public void setBackOfficeBusinessDate(Date backOfficeBusinessDate) { + this.backOfficeBusinessDate = backOfficeBusinessDate; + } +} diff --git a/src/main/java/com/example/services/store/Store.java b/src/main/java/com/example/services/store/Store.java index 0024b8b..b4e3104 100644 --- a/src/main/java/com/example/services/store/Store.java +++ b/src/main/java/com/example/services/store/Store.java @@ -9,7 +9,9 @@ public class Store { // Default constructor - public Store() {} + public Store() { + // Default constructor required for JSON deserialization + } // Constructor with parameters public Store(Integer id_structure, String nom, String ip, String telephone, String photoLink) { diff --git a/src/main/java/com/example/services/store/StoreDetails.java b/src/main/java/com/example/services/store/StoreDetails.java index e10c35c..2b66db3 100644 --- a/src/main/java/com/example/services/store/StoreDetails.java +++ b/src/main/java/com/example/services/store/StoreDetails.java @@ -3,16 +3,16 @@ package com.example.services.store; public class StoreDetails { private Store store; private StoreReplication replication; - private StoreTicket tickets; + private BackOfficeTransaction transaction; public StoreDetails() { // Constructeur par défaut nécessaire pour la désérialisation JSON } - public StoreDetails(Store store, StoreReplication replication, StoreTicket tickets) { + public StoreDetails(Store store, StoreReplication replication, BackOfficeTransaction transaction) { this.store = store; this.replication = replication; - this.tickets = tickets; + this.transaction = transaction; } public Store getStore() { @@ -31,14 +31,12 @@ public class StoreDetails { this.replication = replication; } - public StoreTicket getTickets() { - return tickets; + public BackOfficeTransaction getTransaction() { + return transaction; } - public void setTickets(StoreTicket tickets) { - this.tickets = tickets; + public void setTransaction(BackOfficeTransaction transaction) { + this.transaction = transaction; } - - // Ajoutez éventuellement d'autres méthodes ou personnalisez selon vos besoins } diff --git a/src/main/java/com/example/services/store/StoreReplication.java b/src/main/java/com/example/services/store/StoreReplication.java index 8805dd6..4b588b2 100644 --- a/src/main/java/com/example/services/store/StoreReplication.java +++ b/src/main/java/com/example/services/store/StoreReplication.java @@ -1,10 +1,13 @@ package com.example.services.store; +import java.sql.Date; +import java.text.SimpleDateFormat; + public class StoreReplication { - private boolean replicationOk; // Ajoutez les propriétés nécessaires pour la partie réplication + private boolean pendingReplicationOk; private int pendingReplications; - private String minReplicationDate; - private String maxReplicationDate; + private Date minPendingReplicationDate; + private Date maxPendingReplicationDate; // Constructeur par défaut public StoreReplication() { @@ -12,21 +15,21 @@ public class StoreReplication { } // Constructeur avec paramètres - public StoreReplication(boolean replicationOk, int pendingReplications, String minReplicationDate, String maxReplicationDate) { - this.replicationOk = replicationOk; + public StoreReplication(boolean pendingReplicationOk, int pendingReplications, Date minPendingReplicationDate, Date maxPendingReplicationDate) { + this.pendingReplicationOk = pendingReplicationOk; this.pendingReplications = pendingReplications; - this.minReplicationDate = minReplicationDate; - this.maxReplicationDate = maxReplicationDate; + this.minPendingReplicationDate = maxPendingReplicationDate; + this.maxPendingReplicationDate = maxPendingReplicationDate; } // Getters et setters - public boolean isReplicationOk() { - return replicationOk; + public boolean isPendingReplicationOk() { + return pendingReplicationOk; } - public void setReplicationOk(boolean replicationOk) { - this.replicationOk = replicationOk; + public void setPendingReplicationOk(boolean replicationOk) { + this.pendingReplicationOk = replicationOk; } public int getPendingReplications() { @@ -37,19 +40,30 @@ public class StoreReplication { this.pendingReplications = pendingReplications; } - public String getMinReplicationDate() { - return minReplicationDate; + public String getMinPendingReplicationDate() { + if (minPendingReplicationDate != null) { + SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); + return dateFormat.format(minPendingReplicationDate); + } else { + return ""; + } + } + + public void setMinReplicationDate(Date minPendingReplicationDate) { + this.minPendingReplicationDate = minPendingReplicationDate; } - public void setMinReplicationDate(String minReplicationDate) { - this.minReplicationDate = minReplicationDate; + public String getMaxPendingReplicationDate() { + if (maxPendingReplicationDate != null) { + SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); + return dateFormat.format(maxPendingReplicationDate); + } else { + return ""; + } } + - public String getMaxReplicationDate() { - return maxReplicationDate; - } - - public void setMaxReplicationDate(String maxReplicationDate) { - this.maxReplicationDate = maxReplicationDate; + public void setMaxReplicationDate(Date maxPendingReplicationDate) { + this.maxPendingReplicationDate = maxPendingReplicationDate; } } diff --git a/src/main/java/com/example/services/store/StoreTicket.java b/src/main/java/com/example/services/store/StoreTicket.java deleted file mode 100644 index cca2a23..0000000 --- a/src/main/java/com/example/services/store/StoreTicket.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.example.services.store; - -public class StoreTicket { - private int cashRegisterTickets; // Ajoutez les propriétés nécessaires pour la partie tickets - private int backOfficeTickets; - - // Constructeur par défaut - public StoreTicket() { - // Default constructor required for JSON deserialization - } - - // Constructeur avec paramètres - public StoreTicket(int cashRegisterTickets, int backOfficeTickets) { - this.cashRegisterTickets = cashRegisterTickets; - this.backOfficeTickets = backOfficeTickets; - } - - // Getters et setters - - public int getCashRegisterTickets() { - return cashRegisterTickets; - } - - public void setCashRegisterTickets(int cashRegisterTickets) { - this.cashRegisterTickets = cashRegisterTickets; - } - - public int getBackOfficeTickets() { - return backOfficeTickets; - } - - public void setBackOfficeTickets(int backOfficeTickets) { - this.backOfficeTickets = backOfficeTickets; - } -} diff --git a/src/main/resources/db.properties b/src/main/resources/db.properties index 398f598..34ea8ca 100644 --- a/src/main/resources/db.properties +++ b/src/main/resources/db.properties @@ -9,7 +9,7 @@ preprod.db.oai.password=base preprod.db.com02.password=B1Xto9pAbtBCOxuecG7W # Production environment settings (prod) -prod.db.url=jdbc:oracle:thin:@prod-host:1521/PRODDB +prod.db.url=jdbc:oracle:thin:@paspdi-mgmt.adic.lan.adic.lan:1521/IASPDI prod.db.oai.password=base prod.db.com02.password=com20 diff --git a/src/main/resources/env.properties b/src/main/resources/env.properties index 4f140de..40b8a7c 100644 --- a/src/main/resources/env.properties +++ b/src/main/resources/env.properties @@ -1,2 +1,2 @@ # Indicates the current environment (dev, preprod, prod, etc.). -environment=dev \ No newline at end of file +environment=preprod \ No newline at end of file