Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.myer.pricing.onlinestore.export.job;
- import java.sql.PreparedStatement;
- import java.sql.SQLException;
- import java.util.Date;
- import java.util.List;
- import org.springframework.batch.core.Job;
- import org.springframework.batch.core.Step;
- import org.springframework.batch.core.StepContribution;
- import org.springframework.batch.core.configuration.annotation.JobScope;
- import org.springframework.batch.core.launch.support.RunIdIncrementer;
- import org.springframework.batch.core.scope.context.ChunkContext;
- import org.springframework.batch.core.step.tasklet.Tasklet;
- import org.springframework.batch.repeat.RepeatStatus;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.beans.factory.annotation.Qualifier;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.context.annotation.Import;
- import org.springframework.jdbc.core.BeanPropertyRowMapper;
- import org.springframework.jdbc.core.JdbcTemplate;
- import org.springframework.jdbc.core.PreparedStatementSetter;
- import com.myer.pricing.onlinestore.export.constants.JobParamConstants;
- import com.myer.pricing.onlinestore.export.job.common.CommonExportFromStagingDbJobConfig;
- import com.myer.pricing.onlinestore.export.model.PromotionStartDateEndDateGrouping;
- /**
- * Master List export job from the online pricing staging db.
- *
- * @author Richard Riviere
- *
- */
- @Configuration
- @Import(CommonExportFromStagingDbJobConfig.class)
- public class ExportMasterListCsvJobConfig {
- public static final String JOB_NAME = "exportMasterListCsv";
- @Autowired
- private CommonExportFromStagingDbJobConfig commonJobConfig;
- @Value("${exportMasterListCsv.generatePromoStartDateEndDateGroupings.promoStartDateEndDateSql}")
- private String promoStartDateEndDateSql;
- @Bean
- public Job exportMasterListCsvJob(
- @Qualifier("createJobDatesStep") Step createJobDatesStep,
- @Qualifier("createJobDatesCreator") JobDatesCreator createJobDatesCreator) {
- List<PromotionStartDateEndDateGrouping> grps = createJobDatesCreator.getPromotionStartDateEndDateGroupings();
- System.err.println("jobDatesCreator: "+ grps);
- return commonJobConfig.jobBuilderFactory.get(JOB_NAME)
- .incrementer(new RunIdIncrementer())
- .start(createJobDatesStep)
- .build();
- }
- @Bean
- public Step createJobDatesStep(
- @Qualifier("createJobDatesTasklet") Tasklet createJobDatesTasklet) {
- //createJobDatesTasklet.setConfiguration();
- return commonJobConfig.stepBuilderFactory
- .get("createJobDatesStep")
- .tasklet(createJobDatesTasklet)
- .build();
- }
- private List<PromotionStartDateEndDateGrouping> getJobDatesDates(Date jobFromDate){
- JdbcTemplate jdbcTemplate = new JdbcTemplate(commonJobConfig.onlineStagingDb);
- List<PromotionStartDateEndDateGrouping> promotionStartDateEndDateGroupings =
- jdbcTemplate.query(
- promoStartDateEndDateSql,
- new PreparedStatementSetter() {
- public void setValues(PreparedStatement preparedStatement) throws SQLException {
- preparedStatement.setDate(1, new java.sql.Date(jobFromDate.getTime()));
- }
- },
- BeanPropertyRowMapper.newInstance(PromotionStartDateEndDateGrouping.class));
- System.err.println("getJobDatesDates:" + promotionStartDateEndDateGroupings);
- return promotionStartDateEndDateGroupings;
- }
- @Bean
- @JobScope
- public JobDatesCreator createJobDatesCreator(
- @Value("#{jobParameters['" + JobParamConstants.PARAM_FROM_DATE + "']}") Date jobFromDate,
- @Value("#{jobParameters['" + JobParamConstants.PARAM_TO_DATE + "']}") Date jobToDate) {
- JobDatesCreator result = new JobDatesCreator();
- result.init();
- result.setJobFromDate(jobFromDate);
- result.setJobToDate(jobToDate);
- return result;
- }
- @Bean
- @JobScope
- public Tasklet createJobDatesTasklet(
- @Value("${exportMasterListCsv.generatePromoStartDateEndDateGroupings.promoStartDateEndDateSql}") String promoStartDateEndDateSql,
- @Value("#{jobParameters['" + JobParamConstants.PARAM_FROM_DATE + "']}") Date jobFromDate,
- @Value("#{jobParameters['" + JobParamConstants.PARAM_TO_DATE + "']}") Date jobToDate) {
- return new Tasklet() {
- @Override
- public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) throws Exception {
- JdbcTemplate jdbcTemplate = new JdbcTemplate(commonJobConfig.onlineStagingDb);
- List<PromotionStartDateEndDateGrouping> promotionStartDateEndDateGroupings =
- jdbcTemplate.query(
- promoStartDateEndDateSql,
- new PreparedStatementSetter() {
- public void setValues(PreparedStatement preparedStatement) throws SQLException {
- preparedStatement.setDate(1, new java.sql.Date(jobFromDate.getTime()));
- }
- },
- BeanPropertyRowMapper.newInstance(PromotionStartDateEndDateGrouping.class));
- System.err.println("promotionStartDateEndDateGroupings: " + promotionStartDateEndDateGroupings);
- return RepeatStatus.FINISHED;
- }
- };
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement