[
https://issues.apache.org/jira/browse/FINERACT-1937?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Mihaly Dallos reassigned FINERACT-1937:
---------------------------------------
Assignee: Norbert Táskai
> Is catch up COB running query is faulty
> ---------------------------------------
>
> Key: FINERACT-1937
> URL: https://issues.apache.org/jira/browse/FINERACT-1937
> Project: Apache Fineract
> Issue Type: Bug
> Reporter: Norbert Táskai
> Assignee: Norbert Táskai
> Priority: Major
>
> {{public List<Long> getRunningJobsIdsByExecutionParameter(String jobName,
> String jobCustomParamKeyName, String parameterKeyName, String
> parameterValue) \{
> final StringBuilder sqlStatementBuilder = new StringBuilder();
> String jsonString = gson.toJson(new JobParameterDTO(parameterKeyName,
> parameterValue));
> sqlStatementBuilder.append(
> "SELECT bje.JOB_EXECUTION_ID FROM BATCH_JOB_INSTANCE bji
> INNER JOIN BATCH_JOB_EXECUTION bje ON bji.JOB_INSTANCE_ID =
> bje.JOB_INSTANCE_ID INNER JOIN BATCH_JOB_EXECUTION_PARAMS bjep ON
> bje.JOB_EXECUTION_ID = bjep.JOB_EXECUTION_ID"
> + " WHERE bje.STATUS IN (:statuses) AND bji.JOB_NAME
> = :jobName AND bjep.KEY_NAME = :jobCustomParamKeyName AND bjep.LONG_VAL IN ("
> + getSubQueryForCustomJobParameters()
> + ") AND bje.JOB_INSTANCE_ID NOT IN (SELECT
> bje.JOB_INSTANCE_ID FROM BATCH_JOB_INSTANCE bji INNER JOIN
> BATCH_JOB_EXECUTION bje ON bji.JOB_INSTANCE_ID = bje.JOB_INSTANCE_ID"
> + " WHERE bje.STATUS = :completedStatus AND
> bji.JOB_NAME = :jobName)");
> return namedParameterJdbcTemplate.queryForList(
> sqlStatementBuilder.toString(), Map.of("statuses",
> List.of(STARTED.name(), STARTING.name()), "jobName", jobName,
> "completedStatus", COMPLETED.name(),
> "jobCustomParamKeyName", jobCustomParamKeyName, "jsonString", jsonString),
> Long.class);
> }}}
>
> Below should be updated to not use the job explorer to fetch the business
> date rather the query should be used.
> {{ List<Long> runningCatchUpExecutionIds =
> jobExecutionRepository.getRunningJobsIdsByExecutionParameter(LoanCOBConstant.JOB_NAME,
> LoanCOBConstant.LOAN_COB_CUSTOM_JOB_PARAMETER_KEY,
> LoanCOBConstant.IS_CATCH_UP_PARAMETER_NAME, "true");
> return runningCatchUpExecutionIds //
> .stream() //
> .findFirst() //
> .map(jobExplorer::getJobExecution) //
> .map(JobExecution::getExecutionContext) //
> .map(executionContext ->
> executionContext.getString(LoanCOBConstant.BUSINESS_DATE_PARAMETER_NAME)) //
> .map(result -> new IsCatchUpRunningDTO(true,
> LocalDate.parse(result, DateTimeFormatter.ISO_DATE))) //
> .orElse(new IsCatchUpRunningDTO(false, null));}}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)