sistemare regola attività
This commit is contained in:
@@ -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
|
||||
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<>();
|
||||
|
||||
if (result) {
|
||||
StbActivity parent = new StbActivity()
|
||||
.setActivityId($stbActivity.getParentActivityId())
|
||||
.setEffectiveTime(effectiveTime);
|
||||
parent.setOperation(OperationType.UPDATE);
|
||||
list.add(parent);
|
||||
if ($stbActivity.getParent() == null ) {
|
||||
String sql =
|
||||
Query.format(
|
||||
"SELECT *\n" +
|
||||
"FROM stb_activity\n" +
|
||||
"WHERE stb_activity.activity_id = %s",
|
||||
$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) }
|
||||
end
|
||||
@@ -73,37 +73,43 @@ 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
|
||||
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) {
|
||||
StbActivity parent = new StbActivity()
|
||||
.setActivityId($stbActivity.getParentActivityId())
|
||||
.setActivityResultId(stato);
|
||||
parent.setOperation(OperationType.UPDATE);
|
||||
list.add(parent);
|
||||
List<StbActivity> list = new ArrayList<>();
|
||||
if ($stbActivity.getParent() == null ) {
|
||||
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");
|
||||
|
||||
|
||||
if (execute) {
|
||||
StbActivity parent = new StbActivity()
|
||||
.setActivityId($stbActivity.getParentActivityId())
|
||||
.setActivityResultId(stato);
|
||||
parent.setOperation(OperationType.UPDATE);
|
||||
list.add(parent);
|
||||
}
|
||||
}
|
||||
modify ( $stbActivity ) { setStbActivity(list) }
|
||||
end
|
||||
Reference in New Issue
Block a user