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 org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.docx4j.wml.U;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.web.context.ContextLoader;
|
||||
@@ -53,6 +54,30 @@ public class GrigliaAcquistoHandlerService {
|
||||
//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) {
|
||||
try {
|
||||
String historyProfileDb = settingsController.getHistoryProfileDb();
|
||||
@@ -64,53 +89,54 @@ public class GrigliaAcquistoHandlerService {
|
||||
.collect(Collectors.groupingBy(AvailableConnectionsModel::getDbName));
|
||||
|
||||
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();
|
||||
MultiDBTransactionManager multiDBTransactionManager = new MultiDBTransactionManager(profileName, false);
|
||||
|
||||
List<GrigliaAcquistoDTO> grigliaAcquistoDTO = getGrigliaAcquisto(multiDBTransactionManager);
|
||||
grigliaAcquistoCachedData.put(dbName, grigliaAcquistoDTO);
|
||||
|
||||
logger.trace(profileName + " - Griglia acquisto: Timing " + ((new Date().getTime() - startDate.getTime()) / 1000) + " secs");
|
||||
|
||||
multiDBTransactionManager.closeAll();
|
||||
}
|
||||
|
||||
multiDBTransactionManager.closeAll();
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
logger.error(e.getMessage(), e);
|
||||
}
|
||||
|
||||
String a = "";
|
||||
}
|
||||
|
||||
private List<GrigliaAcquistoDTO> getGrigliaAcquisto(MultiDBTransactionManager multiDBTransactionManager) throws Exception {
|
||||
List<GrigliaAcquistoDTO> grigliaAcquisto = new ArrayList<>();
|
||||
|
||||
// for (int i = 0; i < DAYS; i++) {
|
||||
// Date dataValidita = UtilityDate.getTodayWithoutTime();
|
||||
// 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);
|
||||
// }
|
||||
for (int i = 0; i < DAYS; i++) {
|
||||
Date dataValidita = UtilityDate.getTodayWithoutTime();
|
||||
dataValidita = UtilityDate.dateAdd(dataValidita, i);
|
||||
|
||||
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;
|
||||
}
|
||||
@@ -121,8 +147,18 @@ public class GrigliaAcquistoHandlerService {
|
||||
if (!saveCache()) {
|
||||
return getGrigliaAcquisto(multiDBTransactionManager);
|
||||
} else {
|
||||
List<GrigliaAcquistoDTO> setupList;
|
||||
HashMap<String, Object> checkDbDistributore = checkDbDistributore(multiDBTransactionManager);
|
||||
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)
|
||||
return getGrigliaAcquisto(multiDBTransactionManager);
|
||||
return setupList;
|
||||
|
||||
Reference in New Issue
Block a user