sistemare regola attività

This commit is contained in:
2025-02-10 14:06:51 +01:00
parent 12cf184235
commit fe3c1e3dca

View File

@@ -44,27 +44,27 @@ rule "completeDataEffettiva"
no-loop
when
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
List<StbActivity> list = new ArrayList<>();
if ($stbActivity.getParent() == null ) {
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" +
"SELECT *\n" +
"FROM stb_activity\n" +
"WHERE stb_activity.activity_id = %s",
$stbActivity.getEffectiveTime(), $stbActivity.getParentActivityId()
$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<>();
if (result) {
StbActivity parent = new StbActivity()
.setActivityId($stbActivity.getParentActivityId())
.setEffectiveTime(effectiveTime);
parent.setOperation(OperationType.UPDATE);
list.add(parent);
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) }
end
@@ -73,8 +73,13 @@ rule "completeResultId"
no-loop
when
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
List<StbActivity> list = new ArrayList<>();
if ($stbActivity.getParent() == null ) {
String sql =
Query.format(
"WITH childActivityResult AS (SELECT *\n" +
@@ -96,7 +101,7 @@ then
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) {
StbActivity parent = new StbActivity()
@@ -105,5 +110,6 @@ then
parent.setOperation(OperationType.UPDATE);
list.add(parent);
}
}
modify ( $stbActivity ) { setStbActivity(list) }
end