Aggiunto checkDbDistributore
This commit is contained in:
@@ -14,6 +14,7 @@ import it.integry.ems_model.utility.UtilityDB;
|
|||||||
import it.integry.ems_model.utility.UtilityDate;
|
import it.integry.ems_model.utility.UtilityDate;
|
||||||
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.LogManager;
|
||||||
import org.apache.logging.log4j.Logger;
|
import org.apache.logging.log4j.Logger;
|
||||||
|
import org.docx4j.wml.U;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.web.context.ContextLoader;
|
import org.springframework.web.context.ContextLoader;
|
||||||
@@ -53,6 +54,30 @@ public class GrigliaAcquistoHandlerService {
|
|||||||
//return !UtilityDebug.isDebugExecution() && !UtilityDebug.isIntegryServer() && settingsModel.isPrimaryInstance();
|
//return !UtilityDebug.isDebugExecution() && !UtilityDebug.isIntegryServer() && settingsModel.isPrimaryInstance();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private HashMap<String, Object> checkDbDistributore(MultiDBTransactionManager multiDBTransactionManager) throws Exception{
|
||||||
|
HashMap<String, Object> returnHashMap = new HashMap<>();
|
||||||
|
String dbName = multiDBTransactionManager.getPrimaryDatasource().getDbName();
|
||||||
|
|
||||||
|
String sql = "SELECT db_distributore FROM azienda";
|
||||||
|
String dbDistributore = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
|
||||||
|
returnHashMap.put("dbDistributore", dbDistributore);
|
||||||
|
|
||||||
|
if (dbDistributore == null){
|
||||||
|
returnHashMap.put("existSync", false);
|
||||||
|
return returnHashMap;
|
||||||
|
}
|
||||||
|
|
||||||
|
sql = "SELECT CAST(COUNT(*) AS BIT)\n" +
|
||||||
|
"FROM " + dbDistributore + ".dbo.stb_subscription\n" +
|
||||||
|
"WHERE table_name = 'atb_griglie'\n" +
|
||||||
|
" AND flag_attivo = 'S'\n" +
|
||||||
|
" AND user_name = " + UtilityDB.valueToString(dbName);
|
||||||
|
boolean existSync = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
|
||||||
|
returnHashMap.put("existSync", existSync);
|
||||||
|
|
||||||
|
return returnHashMap;
|
||||||
|
}
|
||||||
|
|
||||||
public void internalCache(HashMap<String, List<GrigliaAcquistoDTO>> grigliaAcquistoCachedData) {
|
public void internalCache(HashMap<String, List<GrigliaAcquistoDTO>> grigliaAcquistoCachedData) {
|
||||||
try {
|
try {
|
||||||
String historyProfileDb = settingsController.getHistoryProfileDb();
|
String historyProfileDb = settingsController.getHistoryProfileDb();
|
||||||
@@ -64,53 +89,54 @@ public class GrigliaAcquistoHandlerService {
|
|||||||
.collect(Collectors.groupingBy(AvailableConnectionsModel::getDbName));
|
.collect(Collectors.groupingBy(AvailableConnectionsModel::getDbName));
|
||||||
|
|
||||||
for (String dbName : databases.keySet()) {
|
for (String dbName : databases.keySet()) {
|
||||||
if (dbName.equalsIgnoreCase("carelli")){
|
String profileName = databases.get(dbName).get(0).getProfileName();
|
||||||
String profileName = databases.get(dbName).get(0).getProfileName();
|
MultiDBTransactionManager multiDBTransactionManager = new MultiDBTransactionManager(profileName, false);
|
||||||
|
|
||||||
|
HashMap<String, Object> checkDbDistributore = checkDbDistributore(multiDBTransactionManager);
|
||||||
|
boolean existSync = (boolean) checkDbDistributore.get("existSync");
|
||||||
|
|
||||||
|
if (!existSync){
|
||||||
Date startDate = new Date();
|
Date startDate = new Date();
|
||||||
MultiDBTransactionManager multiDBTransactionManager = new MultiDBTransactionManager(profileName, false);
|
|
||||||
|
|
||||||
List<GrigliaAcquistoDTO> grigliaAcquistoDTO = getGrigliaAcquisto(multiDBTransactionManager);
|
List<GrigliaAcquistoDTO> grigliaAcquistoDTO = getGrigliaAcquisto(multiDBTransactionManager);
|
||||||
grigliaAcquistoCachedData.put(dbName, grigliaAcquistoDTO);
|
grigliaAcquistoCachedData.put(dbName, grigliaAcquistoDTO);
|
||||||
|
|
||||||
logger.trace(profileName + " - Griglia acquisto: Timing " + ((new Date().getTime() - startDate.getTime()) / 1000) + " secs");
|
logger.trace(profileName + " - Griglia acquisto: Timing " + ((new Date().getTime() - startDate.getTime()) / 1000) + " secs");
|
||||||
|
|
||||||
multiDBTransactionManager.closeAll();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
multiDBTransactionManager.closeAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
logger.error(e.getMessage(), e);
|
logger.error(e.getMessage(), e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String a = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<GrigliaAcquistoDTO> getGrigliaAcquisto(MultiDBTransactionManager multiDBTransactionManager) throws Exception {
|
private List<GrigliaAcquistoDTO> getGrigliaAcquisto(MultiDBTransactionManager multiDBTransactionManager) throws Exception {
|
||||||
List<GrigliaAcquistoDTO> grigliaAcquisto = new ArrayList<>();
|
List<GrigliaAcquistoDTO> grigliaAcquisto = new ArrayList<>();
|
||||||
|
|
||||||
// for (int i = 0; i < DAYS; i++) {
|
for (int i = 0; i < DAYS; i++) {
|
||||||
// Date dataValidita = UtilityDate.getTodayWithoutTime();
|
Date dataValidita = UtilityDate.getTodayWithoutTime();
|
||||||
// dataValidita = UtilityDate.dateAdd(dataValidita, i);
|
dataValidita = UtilityDate.dateAdd(dataValidita, i);
|
||||||
//
|
|
||||||
// String sql = "SELECT cod_alis,\n" +
|
|
||||||
// " cod_mdep,\n" +
|
|
||||||
// " " + UtilityDB.valueDateToString(dataValidita, CommonConstants.DATE_FORMAT_YMD) + " AS data_validita,\n" +
|
|
||||||
// " note,\n" +
|
|
||||||
// " cod_art_for,\n" +
|
|
||||||
// " cod_mart,\n" +
|
|
||||||
// " tipo_assortimento,\n" +
|
|
||||||
// " tipo_variazione,\n" +
|
|
||||||
// " last_griglia\n" +
|
|
||||||
// "FROM dbo.getGrigliaAcquisto(" + UtilityDB.valueDateToString(dataValidita, CommonConstants.DATE_FORMAT_YMD) + ", NULL, NULL, NULL, NULL)\n" +
|
|
||||||
// "WHERE tipo_variazione <> 'D'";
|
|
||||||
//
|
|
||||||
// List<GrigliaAcquistoDTO> tempGrigliaAcquisto = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), sql, GrigliaAcquistoDTO.class);
|
|
||||||
// if (tempGrigliaAcquisto != null && !tempGrigliaAcquisto.isEmpty())
|
|
||||||
// grigliaAcquisto.addAll(tempGrigliaAcquisto);
|
|
||||||
// }
|
|
||||||
|
|
||||||
String sql = "select * from grigliAcquistoCache";
|
String sql = "SELECT cod_alis,\n" +
|
||||||
|
" cod_mdep,\n" +
|
||||||
|
" " + UtilityDB.valueDateToString(dataValidita, CommonConstants.DATE_FORMAT_YMD) + " AS data_validita,\n" +
|
||||||
|
" note,\n" +
|
||||||
|
" cod_art_for,\n" +
|
||||||
|
" cod_mart,\n" +
|
||||||
|
" tipo_assortimento,\n" +
|
||||||
|
" tipo_variazione,\n" +
|
||||||
|
" last_griglia\n" +
|
||||||
|
"FROM dbo.getGrigliaAcquisto(" + UtilityDB.valueDateToString(dataValidita, CommonConstants.DATE_FORMAT_YMD) + ", NULL, NULL, NULL, NULL)\n" +
|
||||||
|
"WHERE tipo_variazione <> 'D'";
|
||||||
|
|
||||||
grigliaAcquisto = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), sql, GrigliaAcquistoDTO.class);
|
List<GrigliaAcquistoDTO> tempGrigliaAcquisto = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), sql, GrigliaAcquistoDTO.class);
|
||||||
|
if (tempGrigliaAcquisto != null && !tempGrigliaAcquisto.isEmpty())
|
||||||
|
grigliaAcquisto.addAll(tempGrigliaAcquisto);
|
||||||
|
}
|
||||||
|
|
||||||
return grigliaAcquisto;
|
return grigliaAcquisto;
|
||||||
}
|
}
|
||||||
@@ -121,8 +147,18 @@ public class GrigliaAcquistoHandlerService {
|
|||||||
if (!saveCache()) {
|
if (!saveCache()) {
|
||||||
return getGrigliaAcquisto(multiDBTransactionManager);
|
return getGrigliaAcquisto(multiDBTransactionManager);
|
||||||
} else {
|
} else {
|
||||||
|
List<GrigliaAcquistoDTO> setupList;
|
||||||
|
HashMap<String, Object> checkDbDistributore = checkDbDistributore(multiDBTransactionManager);
|
||||||
String dbName = multiDBTransactionManager.getPrimaryDatasource().getDbName();
|
String dbName = multiDBTransactionManager.getPrimaryDatasource().getDbName();
|
||||||
List<GrigliaAcquistoDTO> setupList = grigliaAcquistoCachedData.get(dbName);
|
boolean existSync = (boolean) checkDbDistributore.get("existSync");
|
||||||
|
String dbDistributore = (String) checkDbDistributore.get("dbDistributore");
|
||||||
|
|
||||||
|
if (existSync){
|
||||||
|
setupList = grigliaAcquistoCachedData.get(dbDistributore);
|
||||||
|
}else{
|
||||||
|
setupList = grigliaAcquistoCachedData.get(dbName);
|
||||||
|
}
|
||||||
|
|
||||||
if (setupList == null)
|
if (setupList == null)
|
||||||
return getGrigliaAcquisto(multiDBTransactionManager);
|
return getGrigliaAcquisto(multiDBTransactionManager);
|
||||||
return setupList;
|
return setupList;
|
||||||
|
|||||||
Reference in New Issue
Block a user