Skip to content

Commit

Permalink
fix: modules initialize queries to dao
Browse files Browse the repository at this point in the history
  • Loading branch information
lmanelphe committed Jan 2, 2024
1 parent cd17df2 commit 340e428
Show file tree
Hide file tree
Showing 2 changed files with 140 additions and 70 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -258,6 +258,129 @@ public void initializeNormage(VObject viewNormage) {

vObjectService.initialize(viewNormage, query, dataObjectService.getView(dataModelNormage), defaultInputFields);
}

/**
* Query to get control rules view
*
* @param viewControle
*/
public void initializeControle(VObject viewControle) {

ViewEnum dataModelControle = ViewEnum.IHM_CONTROLE_REGLE;

ArcPreparedStatementBuilder query = new ArcPreparedStatementBuilder();

query.append(SQL.SELECT);
query.append(query.sqlListeOfColumnsFromModel(dataModelControle));
query.append(SQL.FROM);
query.append(dataObjectService.getView(dataModelControle));
query.append(SQL.WHERE);
query.append(sqlEqualWithFirstSelectedRecord(ColumnEnum.ID_NORME));
query.append(SQL.AND);
query.append(sqlEqualWithFirstSelectedRecord(ColumnEnum.PERIODICITE));
query.append(SQL.AND);
query.append(sqlEqualWithFirstSelectedRecord(ColumnEnum.VALIDITE_INF));
query.append(SQL.AND);
query.append(sqlEqualWithFirstSelectedRecord(ColumnEnum.VALIDITE_SUP));
query.append(SQL.AND);
query.append(sqlEqualWithFirstSelectedRecord(ColumnEnum.VERSION));

// build the default value when adding a record
Map<String, String> defaultInputFields = buildDefaultInputFieldsWithFirstSelectedRecord(ColumnEnum.ID_NORME,
ColumnEnum.PERIODICITE, ColumnEnum.VALIDITE_INF, ColumnEnum.VALIDITE_SUP, ColumnEnum.VERSION);

vObjectService.initialize(viewControle, query, dataObjectService.getView(dataModelControle), defaultInputFields);
}

/**
* Query to get mapping rules view
*
* @param viewMapping
*/
public void initializeMapping(VObject viewMapping) {

ViewEnum dataModelMapping = ViewEnum.IHM_MAPPING_REGLE;

ArcPreparedStatementBuilder query = new ArcPreparedStatementBuilder();
query.append("SELECT mapping.id_regle, mapping.id_norme, mapping.validite_inf, mapping.validite_sup, mapping.version, mapping.periodicite, mapping.variable_sortie, mapping.expr_regle_col, mapping.commentaire, variables.type_variable_metier type_sortie, variables.nom_table_metier nom_table_metier /*, variables.nom_table_metier nom_table_metier */ ");
query.append("\n FROM arc.ihm_mapping_regle mapping INNER JOIN arc.ihm_jeuderegle jdr");
query.append("\n ON mapping.id_norme = jdr.id_norme AND mapping.periodicite = jdr.periodicite AND mapping.validite_inf = jdr.validite_inf AND mapping.validite_sup = jdr.validite_sup AND mapping.version = jdr.version");
query.append("\n INNER JOIN arc.ihm_norme norme");
query.append("\n ON norme.id_norme = jdr.id_norme AND norme.periodicite = jdr.periodicite");
query.append("\n LEFT JOIN (SELECT id_famille, nom_variable_metier, type_variable_metier, string_agg(nom_table_metier,',') as nom_table_metier FROM arc.ihm_mod_variable_metier group by id_famille, nom_variable_metier, type_variable_metier) variables");
query.append("\n ON variables.id_famille = norme.id_famille AND variables.nom_variable_metier = mapping.variable_sortie");
query.append(SQL.WHERE + "mapping.");
query.append(sqlEqualWithFirstSelectedRecord(ColumnEnum.ID_NORME));
query.append(SQL.AND + "mapping.");
query.append(sqlEqualWithFirstSelectedRecord(ColumnEnum.PERIODICITE));
query.append(SQL.AND + "mapping.");
query.append(sqlEqualWithFirstSelectedRecord(ColumnEnum.VALIDITE_INF));
query.append(SQL.AND + "mapping.");
query.append(sqlEqualWithFirstSelectedRecord(ColumnEnum.VALIDITE_SUP));
query.append(SQL.AND + "mapping.");
query.append(sqlEqualWithFirstSelectedRecord(ColumnEnum.VERSION));

// build the default value when adding a record
Map<String, String> defaultInputFields = buildDefaultInputFieldsWithFirstSelectedRecord(ColumnEnum.ID_NORME,
ColumnEnum.PERIODICITE, ColumnEnum.VALIDITE_INF, ColumnEnum.VALIDITE_SUP, ColumnEnum.VERSION);

vObjectService.initialize(viewMapping, query, dataObjectService.getView(dataModelMapping), defaultInputFields);
}

/**
* Query to get expressions view
*
* @param viewExpression
*/
public void initializeExpression(VObject viewExpression) {

ViewEnum dataModelExpression = ViewEnum.IHM_EXPRESSION;

ArcPreparedStatementBuilder query = new ArcPreparedStatementBuilder();

query.append(SQL.SELECT);
query.append(query.sqlListeOfColumnsFromModel(dataModelExpression));
query.append(SQL.FROM);
query.append(dataObjectService.getView(dataModelExpression));
query.append(SQL.WHERE);
query.append(sqlEqualWithFirstSelectedRecord(ColumnEnum.ID_NORME));
query.append(SQL.AND);
query.append(sqlEqualWithFirstSelectedRecord(ColumnEnum.PERIODICITE));
query.append(SQL.AND);
query.append(sqlEqualWithFirstSelectedRecord(ColumnEnum.VALIDITE_INF));
query.append(SQL.AND);
query.append(sqlEqualWithFirstSelectedRecord(ColumnEnum.VALIDITE_SUP));
query.append(SQL.AND);
query.append(sqlEqualWithFirstSelectedRecord(ColumnEnum.VERSION));

// build the default value when adding a record
Map<String, String> defaultInputFields = buildDefaultInputFieldsWithFirstSelectedRecord(ColumnEnum.ID_NORME,
ColumnEnum.PERIODICITE, ColumnEnum.VALIDITE_INF, ColumnEnum.VALIDITE_SUP, ColumnEnum.VERSION);

vObjectService.initialize(viewExpression, query, dataObjectService.getView(dataModelExpression), defaultInputFields);
}

/**
* Query to get ruleset view for copy
*
* @param viewExpression
*/
public void initializeJeuxDeReglesCopie(VObject viewJeuxDeReglesCopie) {

ViewEnum dataModelJeuxDeReglesCopie = ViewEnum.IHM_JEUDEREGLE;

ArcPreparedStatementBuilder query = new ArcPreparedStatementBuilder();

query.append(SQL.SELECT);
query.append("id_norme, periodicite, validite_inf, validite_sup, version, etat");
query.append(SQL.FROM);
query.append(dataObjectService.getView(dataModelJeuxDeReglesCopie));

// build the default value when adding a record
Map<String, String> defaultInputFields = new HashMap<>();

vObjectService.initialize(viewJeuxDeReglesCopie, query, dataObjectService.getView(dataModelJeuxDeReglesCopie), defaultInputFields);
}

/**
* generate a blank rules set for mapping based on variables declared in data
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

Expand All @@ -15,7 +14,6 @@
import org.springframework.web.context.WebApplicationContext;

import fr.insee.arc.core.dataobjects.ArcPreparedStatementBuilder;
import fr.insee.arc.core.dataobjects.ViewEnum;
import fr.insee.arc.utils.utils.LoggerHelper;
import fr.insee.arc.web.gui.all.model.GuiModules;
import fr.insee.arc.web.gui.all.service.ArcWebGenericService;
Expand Down Expand Up @@ -66,17 +64,13 @@ public void putAllVObjects(ModelNorme model) {
//
putVObject(views.getViewNormage(), t -> initializeNormage(t, views.getViewJeuxDeRegles(), views.getViewModules()));
//
putVObject(views.getViewControle(), t -> initializeControle(t, views.getViewJeuxDeRegles(), views.getViewModules(),
dataObjectService.getView(ViewEnum.IHM_CONTROLE_REGLE) ));
putVObject(views.getViewControle(), t -> initializeControle(t, views.getViewJeuxDeRegles(), views.getViewModules()));
//
putVObject(views.getViewMapping(), t -> initializeMapping(t, views.getViewJeuxDeRegles(), views.getViewModules(),
dataObjectService.getView(ViewEnum.IHM_MAPPING_REGLE) ));
putVObject(views.getViewMapping(), t -> initializeMapping(t, views.getViewJeuxDeRegles(), views.getViewModules()));
//
putVObject(views.getViewExpression(), t -> initializeExpression(t, views.getViewJeuxDeRegles(), views.getViewModules(),
dataObjectService.getView(ViewEnum.IHM_EXPRESSION) ));
putVObject(views.getViewExpression(), t -> initializeExpression(t, views.getViewJeuxDeRegles(), views.getViewModules()));
//
putVObject(views.getViewJeuxDeReglesCopie(), t -> initializeJeuxDeReglesCopie(t,
dataObjectService.getView(ViewEnum.IHM_JEUDEREGLE) , getScope()));
putVObject(views.getViewJeuxDeReglesCopie(), t -> initializeJeuxDeReglesCopie(t, getScope()));
}

@Override
Expand Down Expand Up @@ -204,52 +198,33 @@ public void initializeNormage(VObject viewNormage, VObject viewRulesSet, VObject
* Initialize the {@link VObject} of a control ruleset. Only
* get the load rule link to the selected rule set.
*/
public void initializeControle(VObject moduleView, VObject viewRulesSet, VObject viewModules, String theTableName) {
public void initializeControle(VObject viewControle, VObject viewRulesSet, VObject viewModules) {
Map<String, List<String>> selection = viewRulesSet.mapContentSelected();
List<List<String>> moduleSelection =viewModules.listContentSelected();

if (!selection.isEmpty() && !moduleSelection.isEmpty()
&& moduleSelection.get(0).get(1).equals(moduleIdentifier(GuiModules.control)))
{
Map<String, String> type = viewRulesSet.mapHeadersType();
ArcPreparedStatementBuilder requete = new ArcPreparedStatementBuilder();
requete.append("select id_norme,periodicite,validite_inf,validite_sup,version,id_regle,id_classe,rubrique_pere,rubrique_fils,borne_inf,borne_sup,condition,blocking_threshold,error_row_processing,pre_action,xsd_ordre,xsd_label_fils,xsd_role,commentaire from arc.ihm_controle_regle");
whereRuleSetEquals(requete, selection, type);

vObjectService.initialize(moduleView, requete, theTableName, defaultRuleInputFields(selection));
dao.setSelectedRecords(selection);
dao.initializeControle(viewControle);
} else {
vObjectService.destroy(moduleView);
vObjectService.destroy(viewControle);
}
}

/**
* Initialize the {@link VObject} of the mapping rule. Only
* get the load rule link to the selected rule set.
*/
public void initializeMapping(VObject viewMapping, VObject viewRulesSet, VObject viewModules, String theTableName) {
public void initializeMapping(VObject viewMapping, VObject viewRulesSet, VObject viewModules) {
Map<String, List<String>> selection = viewRulesSet.mapContentSelected();
List<List<String>> moduleSelection =viewModules.listContentSelected();

if (!selection.isEmpty() && !moduleSelection.isEmpty()
&& moduleSelection.get(0).get(1).equals(moduleIdentifier(GuiModules.mapmodel)))
{
Map<String, String> type = viewRulesSet.mapHeadersType();

ArcPreparedStatementBuilder requete = new ArcPreparedStatementBuilder(
"SELECT mapping.id_regle, mapping.id_norme, mapping.validite_inf, mapping.validite_sup, mapping.version, mapping.periodicite, mapping.variable_sortie, mapping.expr_regle_col, mapping.commentaire, variables.type_variable_metier type_sortie, variables.nom_table_metier nom_table_metier /*, variables.nom_table_metier nom_table_metier */ ");
requete.append("\n FROM arc.ihm_mapping_regle mapping INNER JOIN arc.ihm_jeuderegle jdr");
requete.append("\n ON mapping.id_norme = jdr.id_norme AND mapping.periodicite = jdr.periodicite AND mapping.validite_inf = jdr.validite_inf AND mapping.validite_sup = jdr.validite_sup AND mapping.version = jdr.version");
requete.append("\n INNER JOIN arc.ihm_norme norme");
requete.append("\n ON norme.id_norme = jdr.id_norme AND norme.periodicite = jdr.periodicite");
requete.append("\n LEFT JOIN (SELECT id_famille, nom_variable_metier, type_variable_metier, string_agg(nom_table_metier,',') as nom_table_metier FROM arc.ihm_mod_variable_metier group by id_famille, nom_variable_metier, type_variable_metier) variables");
requete.append("\n ON variables.id_famille = norme.id_famille AND variables.nom_variable_metier = mapping.variable_sortie");
requete.append("\n WHERE mapping.id_norme" + requete.sqlEqual(selection.get("id_norme").get(0), type.get("id_norme")));
requete.append("\n AND mapping.periodicite" + requete.sqlEqual(selection.get("periodicite").get(0), type.get("periodicite")));
requete.append("\n AND mapping.validite_inf" + requete.sqlEqual(selection.get("validite_inf").get(0), type.get("validite_inf")));
requete.append("\n AND mapping.validite_sup" + requete.sqlEqual(selection.get("validite_sup").get(0), type.get("validite_sup")));
requete.append("\n AND mapping.version" + requete.sqlEqual(selection.get("version").get(0), type.get("version")));

vObjectService.initialize(viewMapping,requete,theTableName, defaultRuleInputFields(selection));
dao.setSelectedRecords(selection);
dao.initializeMapping(viewMapping);
} else {
vObjectService.destroy(viewMapping);
}
Expand All @@ -259,21 +234,17 @@ public void initializeMapping(VObject viewMapping, VObject viewRulesSet, VObject
* Initialize the {@link VObject} of the expression. Only
* get the load rule link to the selected rule set.
*/
public void initializeExpression(VObject moduleView, VObject viewRulesSet, VObject viewModules, String theTableName) {
loggerDispatcher.info(String.format("Initialize view table %s", theTableName), LOGGER);
public void initializeExpression(VObject viewExpression, VObject viewRulesSet, VObject viewModules) {
Map<String, List<String>> selection = viewRulesSet.mapContentSelected();
List<List<String>> moduleSelection =viewModules.listContentSelected();

if (!selection.isEmpty() && !moduleSelection.isEmpty()
&& moduleSelection.get(0).get(1).equals(moduleIdentifier(GuiModules.expression)))
{
Map<String, String> type = viewRulesSet.mapHeadersType();
ArcPreparedStatementBuilder requete = new ArcPreparedStatementBuilder();;
requete.append("select id_norme,periodicite,validite_inf,validite_sup,version,id_regle,expr_nom, expr_valeur, commentaire from arc.ihm_expression");
whereRuleSetEquals(requete, selection, type);
vObjectService.initialize(moduleView, requete, theTableName, defaultRuleInputFields(selection));
dao.setSelectedRecords(selection);
dao.initializeExpression(viewExpression);
} else {
vObjectService.destroy(moduleView);
vObjectService.destroy(viewExpression);
}
}

Expand All @@ -283,20 +254,15 @@ public void initializeExpression(VObject moduleView, VObject viewRulesSet, VObje
*
* @param viewJeuxDeReglesCopie
*/
public void initializeJeuxDeReglesCopie(VObject viewJeuxDeReglesCopie, String theTableName, String scope) {
public void initializeJeuxDeReglesCopie(VObject viewJeuxDeReglesCopie, String scope) {
LoggerHelper.info(LOGGER, "initializeJeuxDeReglesCopie");
if (scope != null) {
ArcPreparedStatementBuilder requete = new ArcPreparedStatementBuilder();
requete.append("select id_norme, periodicite, validite_inf, validite_sup, version, etat from arc.ihm_jeuderegle ");
Map<String, String> defaultInputFields = new HashMap<>();
vObjectService.initialize(viewJeuxDeReglesCopie, requete, theTableName, defaultInputFields);
dao.initializeJeuxDeReglesCopie(viewJeuxDeReglesCopie);
} else {
vObjectService.destroy(viewJeuxDeReglesCopie);
}

}



/** Appends a where clause for rulesets. */
protected void whereRuleSetEquals(ArcPreparedStatementBuilder requete, Map<String, List<String>> selection,
Expand All @@ -319,25 +285,6 @@ private static String moduleIdentifier(GuiModules moduleName)
return InteractorNorme.ACTION_NAME+"."+moduleName.toString();
}


/**
* Default fields for arc rules set
* @param selection
* @return
*/
private Map<String, String> defaultRuleInputFields(Map<String, List<String>> selection) {
Map<String, String> defaultInputFields = new HashMap<>();
defaultInputFields.put("id_norme", selection.get("id_norme").get(0));
defaultInputFields.put("periodicite", selection.get("periodicite").get(0));
defaultInputFields.put("validite_inf", selection.get("validite_inf").get(0));
defaultInputFields.put("validite_sup", selection.get("validite_sup").get(0));
defaultInputFields.put("version", selection.get("version").get(0));
return defaultInputFields;
}




/**
* @return the selectedJeuDeRegle
*/
Expand Down

0 comments on commit 340e428

Please sign in to comment.