[ 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)