sistemare regola attività
This commit is contained in:
@@ -44,27 +44,27 @@ rule "completeDataEffettiva"
|
|||||||
no-loop
|
no-loop
|
||||||
when
|
when
|
||||||
eval(completeRulesEnabled && customerDb == IntegryCustomerDB.Integry_Studioml)
|
eval(completeRulesEnabled && customerDb == IntegryCustomerDB.Integry_Studioml)
|
||||||
$stbActivity : StbActivity(flagTipologia == "A" && parentActivityId != null && (operation == OperationType.INSERT || operation == OperationType.UPDATE || operation == OperationType.INSERT_OR_UPDATE))
|
$stbActivity : StbActivity(flagTipologia == "A" &&
|
||||||
|
effectiveTime != null &&
|
||||||
|
parentActivityId != null && (operation == OperationType.INSERT || operation == OperationType.UPDATE || operation == OperationType.INSERT_OR_UPDATE))
|
||||||
then
|
then
|
||||||
String sql =
|
|
||||||
Query.format(
|
|
||||||
"SELECT CAST(IIF((stb_activity.effective_time IS NULL OR stb_activity.effective_time > %s), 1, 0) AS BIT) AS bool,\n" +
|
|
||||||
" stb_activity.effective_time\n" +
|
|
||||||
"FROM stb_activity\n" +
|
|
||||||
"WHERE stb_activity.activity_id = %s",
|
|
||||||
$stbActivity.getEffectiveTime(), $stbActivity.getParentActivityId()
|
|
||||||
);
|
|
||||||
HashMap<String,Object> resultQuery = UtilityDB.executeSimpleQueryOnlyFirstRow(conn, sql);
|
|
||||||
boolean result = (boolean) resultQuery.get("bool");
|
|
||||||
Date effectiveTime = (Date) resultQuery.get("effective_time");
|
|
||||||
List<StbActivity> list = new ArrayList<>();
|
List<StbActivity> list = new ArrayList<>();
|
||||||
|
if ($stbActivity.getParent() == null ) {
|
||||||
if (result) {
|
String sql =
|
||||||
StbActivity parent = new StbActivity()
|
Query.format(
|
||||||
.setActivityId($stbActivity.getParentActivityId())
|
"SELECT *\n" +
|
||||||
.setEffectiveTime(effectiveTime);
|
"FROM stb_activity\n" +
|
||||||
parent.setOperation(OperationType.UPDATE);
|
"WHERE stb_activity.activity_id = %s",
|
||||||
list.add(parent);
|
$stbActivity.getParentActivityId()
|
||||||
|
);
|
||||||
|
list = UtilityDB.executeSimpleQueryDTO(conn, sql, StbActivity.class);
|
||||||
|
if (list != null && list.size() > 0 ) {
|
||||||
|
Date data = list.get(0).getEffectiveTime();
|
||||||
|
if ( data == null || data.before($stbActivity.getEffectiveTime())){
|
||||||
|
list.get(0).setEffectiveTime($stbActivity.getEffectiveTime());
|
||||||
|
list.get(0).setOperation(OperationType.UPDATE);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
modify ( $stbActivity ) { setStbActivity(list) }
|
modify ( $stbActivity ) { setStbActivity(list) }
|
||||||
end
|
end
|
||||||
@@ -73,37 +73,43 @@ rule "completeResultId"
|
|||||||
no-loop
|
no-loop
|
||||||
when
|
when
|
||||||
eval(completeRulesEnabled && customerDb == IntegryCustomerDB.Integry_Studioml)
|
eval(completeRulesEnabled && customerDb == IntegryCustomerDB.Integry_Studioml)
|
||||||
$stbActivity : StbActivity(flagTipologia == "A" && parentActivityId != null && (operation == OperationType.INSERT || operation == OperationType.UPDATE || operation == OperationType.INSERT_OR_UPDATE))
|
$stbActivity : StbActivity(flagTipologia == "A" && parentActivityId != null &&
|
||||||
|
activityResultId != null &&
|
||||||
|
(operation == OperationType.INSERT || operation == OperationType.UPDATE || operation == OperationType.INSERT_OR_UPDATE))
|
||||||
then
|
then
|
||||||
String sql =
|
|
||||||
Query.format(
|
|
||||||
"WITH childActivityResult AS (SELECT *\n" +
|
|
||||||
" FROM stb_activity_result\n" +
|
|
||||||
" WHERE activity_result_id = %s)\n" +
|
|
||||||
"SELECT CAST(IIF(\n" +
|
|
||||||
" (stb_activity_result.flag_stato_attivita IS NULL OR\n" +
|
|
||||||
" stb_activity_result.flag_stato_attivita <> '4' OR\n" +
|
|
||||||
" stb_activity_result.flag_stato_attivita <> '3' OR\n" +
|
|
||||||
" stb_activity_result.flag_stato_attivita <> '1'),\n" +
|
|
||||||
" 1, 0) AS BIT) AS 'execute',\n" +
|
|
||||||
" IIF(childActivityResult.flag_stato_attivita <> 0, 'DA COMPLETARE', childActivityResult.activity_result_id) AS 'stato'\n" +
|
|
||||||
"FROM stb_activity\n" +
|
|
||||||
" CROSS APPLY childActivityResult\n" +
|
|
||||||
" LEFT OUTER JOIN stb_activity_result ON stb_activity_result.activity_result_id = stb_activity.activity_result_id\n" +
|
|
||||||
"WHERE stb_activity.activity_id = %s",
|
|
||||||
$stbActivity.getActivityResultId(), $stbActivity.getParentActivityId()
|
|
||||||
);
|
|
||||||
HashMap<String,Object> resultQuery = UtilityDB.executeSimpleQueryOnlyFirstRow(conn, sql);
|
|
||||||
boolean execute = (boolean) resultQuery.get("execute");
|
|
||||||
String stato = (String) resultQuery.get("stato");
|
|
||||||
List<StbActivity> list = new ArrayList<>();
|
|
||||||
|
|
||||||
if (execute) {
|
List<StbActivity> list = new ArrayList<>();
|
||||||
StbActivity parent = new StbActivity()
|
if ($stbActivity.getParent() == null ) {
|
||||||
.setActivityId($stbActivity.getParentActivityId())
|
String sql =
|
||||||
.setActivityResultId(stato);
|
Query.format(
|
||||||
parent.setOperation(OperationType.UPDATE);
|
"WITH childActivityResult AS (SELECT *\n" +
|
||||||
list.add(parent);
|
" FROM stb_activity_result\n" +
|
||||||
|
" WHERE activity_result_id = %s)\n" +
|
||||||
|
"SELECT CAST(IIF(\n" +
|
||||||
|
" (stb_activity_result.flag_stato_attivita IS NULL OR\n" +
|
||||||
|
" stb_activity_result.flag_stato_attivita <> '4' OR\n" +
|
||||||
|
" stb_activity_result.flag_stato_attivita <> '3' OR\n" +
|
||||||
|
" stb_activity_result.flag_stato_attivita <> '1'),\n" +
|
||||||
|
" 1, 0) AS BIT) AS 'execute',\n" +
|
||||||
|
" IIF(childActivityResult.flag_stato_attivita <> 0, 'DA COMPLETARE', childActivityResult.activity_result_id) AS 'stato'\n" +
|
||||||
|
"FROM stb_activity\n" +
|
||||||
|
" CROSS APPLY childActivityResult\n" +
|
||||||
|
" LEFT OUTER JOIN stb_activity_result ON stb_activity_result.activity_result_id = stb_activity.activity_result_id\n" +
|
||||||
|
"WHERE stb_activity.activity_id = %s",
|
||||||
|
$stbActivity.getActivityResultId(), $stbActivity.getParentActivityId()
|
||||||
|
);
|
||||||
|
HashMap<String,Object> resultQuery = UtilityDB.executeSimpleQueryOnlyFirstRow(conn, sql);
|
||||||
|
boolean execute = (boolean) resultQuery.get("execute");
|
||||||
|
String stato = (String) resultQuery.get("stato");
|
||||||
|
|
||||||
|
|
||||||
|
if (execute) {
|
||||||
|
StbActivity parent = new StbActivity()
|
||||||
|
.setActivityId($stbActivity.getParentActivityId())
|
||||||
|
.setActivityResultId(stato);
|
||||||
|
parent.setOperation(OperationType.UPDATE);
|
||||||
|
list.add(parent);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
modify ( $stbActivity ) { setStbActivity(list) }
|
modify ( $stbActivity ) { setStbActivity(list) }
|
||||||
end
|
end
|
||||||
Reference in New Issue
Block a user