[ 
https://issues.apache.org/jira/browse/FINERACT-1937?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mihaly Dallos updated FINERACT-1937:
------------------------------------
    Labels: PepperSoup  (was: )

> 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
>              Labels: PepperSoup
>             Fix For: 1.9.0
>
>
> {{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)

Reply via email to