feat : store details

pull/5/head
Frédérik Benoist 2023-11-21 00:35:09 +01:00
parent 3569639644
commit 04c854af2f
13 changed files with 994 additions and 376 deletions

View File

@ -1,5 +1,10 @@
package com.example.services; 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.GET;
import javax.ws.rs.Path; import javax.ws.rs.Path;
import javax.ws.rs.Produces; import javax.ws.rs.Produces;
@ -14,12 +19,16 @@ import java.sql.DriverManager;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.sql.SQLException; import java.sql.SQLException;
import java.sql.Timestamp;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@Path("/items") @Path("/items")
public class ItemService { public class ItemService {
private static final Logger logger = LoggerFactory.getLogger(DatabaseConnectDOTSOFT.class);
@GET @GET
@Path("/get") @Path("/get")
@ -39,10 +48,10 @@ public class ItemService {
DriverManager.setLoginTimeout(5); // Définir le timeout à 5 secondes DriverManager.setLoginTimeout(5); // Définir le timeout à 5 secondes
try (DatabaseConnectXSTORE databaseConnection = new DatabaseConnectXSTORE(dbHost, "dtv")) { 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)) { try (PreparedStatement statement = databaseConnection.getConnection().prepareStatement(query)) {
// Concaténer % au paramètre itemId // Concatenate % to parameter itemId
statement.setString(1, itemId + "%"); statement.setString(1, itemId + "%");
try (ResultSet resultSet = statement.executeQuery()) { try (ResultSet resultSet = statement.executeQuery()) {
@ -99,287 +108,190 @@ public class ItemService {
item.setDimension2(resultSet.getString("DIMENSION2")); item.setDimension2(resultSet.getString("DIMENSION2"));
item.setDimension3(resultSet.getString("DIMENSION3")); item.setDimension3(resultSet.getString("DIMENSION3"));
item.setExternalSystem(resultSet.getString("EXTERNAL_SYSTEM")); 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.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.setUpdateUserId(resultSet.getString("UPDATE_USER_ID"));
item.setRecordState(resultSet.getString("RECORD_STATE")); item.setRecordState(resultSet.getString("RECORD_STATE"));
return item; return item;
} }
public class Item { @GET
private Long organizationId; @Path("/getItemDetails")
private String itemId; @Produces(MediaType.APPLICATION_JSON)
private String orgCode; public Response getItemDetails(
private String orgValue; @QueryParam("dbHost") String dbHost,
private String name; @QueryParam("itemId") String itemId) {
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 if (dbHost == null) {
return Response.status(Response.Status.BAD_REQUEST).entity("{\"error\":\"dbHost parameter is required\"}").build();
public Long getOrganizationId() {
return organizationId;
} }
public void setOrganizationId(Long organizationId) { if (itemId == null) {
this.organizationId = organizationId; return Response.status(Response.Status.BAD_REQUEST).entity("{\"error\":\"itemId parameter is required\"}").build();
} }
public String getItemId() { try {
return itemId; ItemDetails itemDetails = retrieveItemDetails(dbHost,itemId);
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();
}
} }
public void setItemId(String itemId) { /**
this.itemId = itemId; * 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<Item> itemList = new ArrayList<>();
List<ItemOption> itemOptionList = new ArrayList<>();
List<ItemPrices> 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);
} }
public String getOrgCode() { itemDetails.setItems(itemList);
return orgCode;
} }
public void setOrgCode(String orgCode) {
this.orgCode = orgCode;
} }
public String getOrgValue() { // item option section
return orgValue; 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);
} }
public void setOrgValue(String orgValue) { itemDetails.setItemOptions(itemOptionList);
this.orgValue = orgValue; }
} }
public String getName() { // item option price
return name; 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);
} }
public void setName(String name) { itemDetails.setItemPrices(itemPricesList);
this.name = name; }
}
} catch (SQLException e) {
e.printStackTrace();
// Handle exceptions correctly in a production environment
} }
public String getDescription() { // Return the complete ItemDetails object
return description; return itemDetails;
} }
public void setDescription(String description) { private Item mapResultSetToItemDetails(ResultSet resultSet) throws SQLException {
this.description = description; 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;
} }
public String getMerchLevel1() { private ItemOption mapResultSetToItemOptionDetails(ResultSet resultSet) throws SQLException {
return merchLevel1; 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;
} }
public void setMerchLevel1(String merchLevel1) { private ItemPrices mapResultSetToItemPricesDetails(ResultSet resultSet) throws SQLException {
this.merchLevel1 = merchLevel1;
}
public String getMerchLevel2() { ItemPrices itemPrices = new ItemPrices();
return merchLevel2;
}
public void setMerchLevel2(String merchLevel2) { itemPrices.setItemId(resultSet.getString("ITEM_ID"));
this.merchLevel2 = merchLevel2; 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"));
public String getMerchLevel3() { return itemPrices;
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;
}
} }
} }

View File

@ -12,6 +12,7 @@ import javax.ws.rs.core.Response;
import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import java.sql.Date;
import java.sql.DriverManager; import java.sql.DriverManager;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
@ -22,8 +23,13 @@ import java.util.List;
import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock; import java.util.concurrent.locks.ReentrantLock;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@Path("/stores") @Path("/stores")
public class StoreService { public class StoreService {
private static final Logger logger = LoggerFactory.getLogger(DatabaseConnectDOTSOFT.class);
private static List<Store> cachedStoreList; private static List<Store> cachedStoreList;
private static final Lock cacheLock = new ReentrantLock(); private static final Lock cacheLock = new ReentrantLock();
@ -118,11 +124,13 @@ public class StoreService {
DriverManager.setLoginTimeout(5); // Définir le timeout à 5 secondes DriverManager.setLoginTimeout(5); // Définir le timeout à 5 secondes
try (DatabaseConnectDOTSOFT databaseConnection = new DatabaseConnectDOTSOFT("com02")) { 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 " + "st.tel1 AS telephone " +
"FROM COM02.STRUCTURE st " + "FROM COM02.STRUCTURE st " +
"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 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); try (PreparedStatement statement = databaseConnection.getConnection().prepareStatement(query);
ResultSet resultSet = statement.executeQuery()) { ResultSet resultSet = statement.executeQuery()) {
@ -216,6 +224,7 @@ public class StoreService {
"FROM COM02.STRUCTURE st " + "FROM COM02.STRUCTURE st " +
"WHERE st.id_structure = ?"; "WHERE st.id_structure = ?";
logger.info(storeQuery);
try (PreparedStatement storeStatement = databaseConnection.getConnection().prepareStatement(storeQuery)) { try (PreparedStatement storeStatement = databaseConnection.getConnection().prepareStatement(storeQuery)) {
storeStatement.setInt(1, storeId); // Set the value of the parameter 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) { } catch (SQLException e) {
e.printStackTrace(); e.printStackTrace();
// Handle exceptions correctly in a production environment // Handle exceptions correctly in a production environment
@ -235,12 +269,13 @@ public class StoreService {
try (DatabaseConnectXSTORE databaseConnection = new DatabaseConnectXSTORE(dbHost,"dtv")) { try (DatabaseConnectXSTORE databaseConnection = new DatabaseConnectXSTORE(dbHost,"dtv")) {
// Replication section // Replication section
String replicationQuery = "SELECT 1 AS replicationOk, " + String replicationQuery = "SELECT COUNT(*) AS pendingReplications, " +
"5 AS pendingReplications, " + "MIN(crq.CREATE_DATE) AS minPendingReplicationDate, " +
"TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') AS minReplicationDate, " + "MAX(crq.CREATE_DATE) AS maxPendingReplicationDate, " +
"TO_CHAR(SYSDATE + INTERVAL '1' DAY, 'YYYY-MM-DD HH24:MI:SS') AS maxReplicationDate " + "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 DUAL"; "FROM repqueue.CTL_REPLICATION_QUEUE crq";
logger.info(replicationQuery);
try (PreparedStatement storeStatement = databaseConnection.getConnection().prepareStatement(replicationQuery); try (PreparedStatement storeStatement = databaseConnection.getConnection().prepareStatement(replicationQuery);
ResultSet storeReplicationResultSet = storeStatement.executeQuery()) { 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. // 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) { } catch (SQLException e) {
e.printStackTrace(); e.printStackTrace();
// Handle exceptions correctly in a production environment // Handle exceptions correctly in a production environment
@ -287,18 +306,21 @@ public class StoreService {
} }
private StoreReplication mapResultSetToStoreReplication(ResultSet resultSet) throws SQLException { private StoreReplication mapResultSetToStoreReplication(ResultSet resultSet) throws SQLException {
boolean replicationOk = resultSet.getBoolean("replicationOk"); boolean pendingReplicationOk = resultSet.getBoolean("pendingReplicationOk");
int pendingReplications = resultSet.getInt("pendingReplications"); int pendingReplications = resultSet.getInt("pendingReplications");
String minReplicationDate = resultSet.getString("minReplicationDate"); Date minPendingReplicationDate = resultSet.getDate("minPendingReplicationDate");
String maxReplicationDate = resultSet.getString("maxReplicationDate"); 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 { private BackOfficeTransaction mapResultSetToBackOfficetransaction(ResultSet resultSet) throws SQLException {
int totalTicketsInCaisse = resultSet.getInt("totalTicketsInCaisse"); boolean backOfficeTransactionOk = resultSet.getBoolean("backOfficeTransactionOk");
int totalTicketsInBackOffice = resultSet.getInt("totalTicketsInBackOffice"); int backofficeTransactions = resultSet.getInt("backOfficeTransactions");
Date minBackofficeTransactionDate = resultSet.getDate("minBackOfficeTransactionDate");
Date maxBackofficeTransactionDate = resultSet.getDate("maxBackOfficeTransactionDate");
Date backOfficeBusinessDate = resultSet.getDate("backOfficeBusinessDate");
return new StoreTicket(totalTicketsInCaisse, totalTicketsInBackOffice); return new BackOfficeTransaction(backOfficeTransactionOk, backofficeTransactions, minBackofficeTransactionDate, maxBackofficeTransactionDate, backOfficeBusinessDate);
} }
} }

View File

@ -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;
}
}

View File

@ -0,0 +1,43 @@
package com.example.services.item;
import java.util.List;
public class ItemDetails {
private List<Item> items;
private List<ItemOption> itemOptions;
private List<ItemPrices> itemPrices;
public ItemDetails() {
// Default constructor required for JSON deserialization
}
public ItemDetails(List<Item> items, List<ItemOption> itemOptions, List<ItemPrices> itemPrices) {
this.items = items;
this.itemOptions = itemOptions;
this.itemPrices = itemPrices;
}
public List<Item> getItems() {
return items;
}
public void setItems(List<Item> items) {
this.items = items;
}
public List<ItemOption> getItemOptions() {
return itemOptions;
}
public void setItemOptions(List<ItemOption> itemOptions) {
this.itemOptions = itemOptions;
}
public List<ItemPrices> getItemPrices() {
return itemPrices;
}
public void setItemPrices(List<ItemPrices> itemPrices) {
this.itemPrices = itemPrices;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -9,7 +9,9 @@ public class Store {
// Default constructor // Default constructor
public Store() {} public Store() {
// Default constructor required for JSON deserialization
}
// Constructor with parameters // Constructor with parameters
public Store(Integer id_structure, String nom, String ip, String telephone, String photoLink) { public Store(Integer id_structure, String nom, String ip, String telephone, String photoLink) {

View File

@ -3,16 +3,16 @@ package com.example.services.store;
public class StoreDetails { public class StoreDetails {
private Store store; private Store store;
private StoreReplication replication; private StoreReplication replication;
private StoreTicket tickets; private BackOfficeTransaction transaction;
public StoreDetails() { public StoreDetails() {
// Constructeur par défaut nécessaire pour la désérialisation JSON // 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.store = store;
this.replication = replication; this.replication = replication;
this.tickets = tickets; this.transaction = transaction;
} }
public Store getStore() { public Store getStore() {
@ -31,14 +31,12 @@ public class StoreDetails {
this.replication = replication; this.replication = replication;
} }
public StoreTicket getTickets() { public BackOfficeTransaction getTransaction() {
return tickets; return transaction;
} }
public void setTickets(StoreTicket tickets) { public void setTransaction(BackOfficeTransaction transaction) {
this.tickets = tickets; this.transaction = transaction;
} }
// Ajoutez éventuellement d'autres méthodes ou personnalisez selon vos besoins
} }

View File

@ -1,10 +1,13 @@
package com.example.services.store; package com.example.services.store;
import java.sql.Date;
import java.text.SimpleDateFormat;
public class StoreReplication { 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 int pendingReplications;
private String minReplicationDate; private Date minPendingReplicationDate;
private String maxReplicationDate; private Date maxPendingReplicationDate;
// Constructeur par défaut // Constructeur par défaut
public StoreReplication() { public StoreReplication() {
@ -12,21 +15,21 @@ public class StoreReplication {
} }
// Constructeur avec paramètres // Constructeur avec paramètres
public StoreReplication(boolean replicationOk, int pendingReplications, String minReplicationDate, String maxReplicationDate) { public StoreReplication(boolean pendingReplicationOk, int pendingReplications, Date minPendingReplicationDate, Date maxPendingReplicationDate) {
this.replicationOk = replicationOk; this.pendingReplicationOk = pendingReplicationOk;
this.pendingReplications = pendingReplications; this.pendingReplications = pendingReplications;
this.minReplicationDate = minReplicationDate; this.minPendingReplicationDate = maxPendingReplicationDate;
this.maxReplicationDate = maxReplicationDate; this.maxPendingReplicationDate = maxPendingReplicationDate;
} }
// Getters et setters // Getters et setters
public boolean isReplicationOk() { public boolean isPendingReplicationOk() {
return replicationOk; return pendingReplicationOk;
} }
public void setReplicationOk(boolean replicationOk) { public void setPendingReplicationOk(boolean replicationOk) {
this.replicationOk = replicationOk; this.pendingReplicationOk = replicationOk;
} }
public int getPendingReplications() { public int getPendingReplications() {
@ -37,19 +40,30 @@ public class StoreReplication {
this.pendingReplications = pendingReplications; this.pendingReplications = pendingReplications;
} }
public String getMinReplicationDate() { public String getMinPendingReplicationDate() {
return minReplicationDate; if (minPendingReplicationDate != null) {
SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
return dateFormat.format(minPendingReplicationDate);
} else {
return "";
}
} }
public void setMinReplicationDate(String minReplicationDate) { public void setMinReplicationDate(Date minPendingReplicationDate) {
this.minReplicationDate = minReplicationDate; this.minPendingReplicationDate = minPendingReplicationDate;
} }
public String getMaxReplicationDate() { public String getMaxPendingReplicationDate() {
return maxReplicationDate; if (maxPendingReplicationDate != null) {
SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
return dateFormat.format(maxPendingReplicationDate);
} else {
return "";
}
} }
public void setMaxReplicationDate(String maxReplicationDate) {
this.maxReplicationDate = maxReplicationDate; public void setMaxReplicationDate(Date maxPendingReplicationDate) {
this.maxPendingReplicationDate = maxPendingReplicationDate;
} }
} }

View File

@ -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;
}
}

View File

@ -9,7 +9,7 @@ preprod.db.oai.password=base
preprod.db.com02.password=B1Xto9pAbtBCOxuecG7W preprod.db.com02.password=B1Xto9pAbtBCOxuecG7W
# Production environment settings (prod) # 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.oai.password=base
prod.db.com02.password=com20 prod.db.com02.password=com20

View File

@ -1,2 +1,2 @@
# Indicates the current environment (dev, preprod, prod, etc.). # Indicates the current environment (dev, preprod, prod, etc.).
environment=dev environment=preprod