Subversion Repositories SmartDukaan

Rev

Rev 23767 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

package com.smartdukaan.cron.migrations;

import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.Arrays;
import java.util.List;

import org.apache.commons.lang.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;

import com.spice.profitmandi.dao.entity.transaction.LineItemImei;
import com.spice.profitmandi.dao.entity.transaction.Order;
import com.spice.profitmandi.dao.repository.transaction.LineItemImeisRepository;
import com.spice.profitmandi.dao.repository.transaction.OrderRepository;

@Component
@Transactional(rollbackFor = Throwable.class)
public class RunOnceTasks {

        private static final Logger LOGGER = LogManager.getLogger(RunOnceTasks.class);

        private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
        @Autowired
        private OrderRepository orderRepository;
        
        @Autowired
        private LineItemImeisRepository lineItemImeisRepository;

        public void migarateLineItemsToNewTable() {
                LOGGER.info("Before Migrated LineItems Successfully");
                LocalDateTime endDate = LocalDateTime.now();
                LocalDateTime startDate = LocalDateTime.of(LocalDate.of(2017, 07, 1), LocalTime.MIDNIGHT);
                List<Order> orders = orderRepository.selectAllByDatesBetween(startDate,  endDate);
                for (Order order : orders) {
                        String serialNumbers = order.getLineItem().getSerialNumber();
                        if(!StringUtils.isEmpty(serialNumbers)) {
                                List<String> serialNumberList = Arrays.asList(serialNumbers.split(","));
                                for(String serialNumber : serialNumberList) {
                                        int lineItemId=order.getLineItem().getId();
                                        LineItemImei lineItemImei = new LineItemImei();
                                        lineItemImei.setSerialNumber(serialNumber);
                                        lineItemImei.setLineItemId(lineItemId);
                                        lineItemImeisRepository.persist(lineItemImei);
                                }
                        } else {
                                LOGGER.info("Serial Numbers dont exist for Order {}", order.getId());
                        }
                }
                LOGGER.info("Migrated LineItems Successfully");
        }
}