Subversion Repositories SmartDukaan

Rev

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

package com.spice.profitmandi.service.inventory;

import com.spice.profitmandi.dao.entity.inventory.PartnerAgeingModel;
import com.spice.profitmandi.dao.repository.fofo.ActivatedImeiRepository;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import javax.persistence.TypedQuery;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;


@Component
public class AgeingServiceImpl implements AgeingService {

    @Autowired
    ActivatedImeiRepository activatedImeiRepository;
    @Autowired
    private SessionFactory sessionFactory;

    @Override
    public Map<String, AgeingModel> getAllAgeingForSecondary() {
        Session session = sessionFactory.getCurrentSession();
        final TypedQuery<AgeingModel> typedQuerySimilar = session.createNamedQuery("BrandAgeingLimit.imeisToSecondaryAlert", AgeingModel.class);
        List<AgeingModel> ageingModels = typedQuerySimilar.getResultList();
        return ageingModels.stream().collect(Collectors.toMap(x -> x.getSerialNumber(), x -> x, (u, v) -> u.getInvoiceDate().isBefore(v.getInvoiceDate()) ? u : v));
    }

    @Override
    public List<PartnerAgeingModel> getAllAgeingForTertiary() {
        Session session = sessionFactory.getCurrentSession();
        final TypedQuery<PartnerAgeingModel> imeisToTertiaryQuery = session.createNamedQuery("BrandAgeingLimit.imeisToTertiaryAlert", PartnerAgeingModel.class);
        return imeisToTertiaryQuery.getResultList();
    }

    @Override
    public List<PartnerAgeingModel> filterAgedInventory(Set<Integer> inventoryItemIds) {
        Session session = sessionFactory.getCurrentSession();
        final TypedQuery<PartnerAgeingModel> imeisToTertiaryQuery = session.createNamedQuery("BrandAgeingLimit.getByInventoryItemIds", PartnerAgeingModel.class);
        imeisToTertiaryQuery.setParameter("inventoryItemIds", inventoryItemIds);
        return imeisToTertiaryQuery.getResultList();

    }
}