Subversion Repositories Integrator Subversion

Rev

Rev 583 | Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
582 blopes 1
package br.com.ec.domain.service.impl;
2
 
3
import java.util.ArrayList;
4
import java.util.Arrays;
5
import java.util.Iterator;
6
import java.util.List;
7
 
8
import org.springframework.stereotype.Service;
9
 
10
import br.com.ec.core.generic.AbstractService;
11
import br.com.ec.core.generic.GenericRepository;
12
import br.com.ec.core.util.DataUtils;
13
import br.com.ec.core.util.VerificadorUtil;
14
import br.com.ec.core.validador.Validador;
15
import br.com.ec.domain.dto.AlertasGeralDTO;
16
import br.com.ec.domain.dto.RankingModeloDTO;
17
import br.com.ec.domain.dto.RankingProdutoDTO;
18
import br.com.ec.domain.dto.consulta.ParametrosConsultaModelosMaisVendidosDTO;
19
import br.com.ec.domain.dto.consulta.ParametrosConsultaProdutosVendidosDTO;
20
import br.com.ec.domain.model.SubtipoProduto;
21
import br.com.ec.domain.model.tipos.TipoProduto;
22
import br.com.ec.domain.service.AlertasService;
23
import br.com.ec.domain.service.LojaService;
24
import br.com.ec.domain.service.ModeloService;
25
import br.com.ec.domain.service.SubtipoProdutoService;
26
import br.com.ec.domain.service.VendaService;
27
 
28
@Service
29
public class AlertasServiceImpl extends AbstractService<AlertasGeralDTO> implements AlertasService {
30
 
31
        private LojaService lojaService;
32
        private ModeloService modeloService;
33
 
34
        private SubtipoProdutoService subtipoProdutoService;
35
        private VendaService vendaService;
36
 
37
        public AlertasServiceImpl(Validador validador, LojaService lojaService, ModeloService modeloService, SubtipoProdutoService subtipoProdutoService,
38
                        VendaService vendaService) {
39
                super(validador);
40
                this.lojaService = lojaService;
41
                this.modeloService = modeloService;
42
                this.subtipoProdutoService = subtipoProdutoService;
43
                this.vendaService = vendaService;
44
        }
45
 
46
        @Override
47
        protected GenericRepository<AlertasGeralDTO> getRepository() {
48
                return null;
49
        }
50
 
51
        @Override
52
        public AlertasGeralDTO consultarAlertasComprasGeral(AlertasGeralDTO alertasGeralDTO) {
53
                // CONSULTAR TODOS OS PRODUTOS VENDIDOS NOS ULTIMOS 90 DIAS
54
                List<RankingProdutoDTO> rankingProdutosDTO = new ArrayList<RankingProdutoDTO>();
55
 
56
                ParametrosConsultaProdutosVendidosDTO parametrosConsulta = new ParametrosConsultaProdutosVendidosDTO();
57
                parametrosConsulta.setDataFinal(DataUtils.getDataAtual());
58
                parametrosConsulta.setDataInicial(DataUtils.acrescentarDias(DataUtils.getDataAtual(), alertasGeralDTO.getQuantidadeDiasVendas()*-1));
59
 
60
                for (TipoProduto tipoProdutoSelecionado : alertasGeralDTO.getTiposProdutoSelecionados()) {
61
                        parametrosConsulta.setTipoProduto(tipoProdutoSelecionado.getValor());
62
                        rankingProdutosDTO.addAll(vendaService.consultarProdutosVendidos(parametrosConsulta));
63
                }
64
 
65
                for (RankingProdutoDTO rankingProdutoDTO : rankingProdutosDTO) {
66
                        System.out.print(rankingProdutoDTO.getProduto().getCodigo() + " : " + rankingProdutoDTO.getProduto().getDescricaoCompleta() + " :: ");
67
                        if (VerificadorUtil.naoEstaNulo(rankingProdutoDTO.getProduto().getSubtipoProduto())) {
68
                                System.out.print(rankingProdutoDTO.getProduto().getSubtipoProduto().getDescricao());
69
                        } else {
70
                                System.out.print("NÃO TEM SUBTIPO");
71
                        }
72
                        System.out.println(" - VENDAS: " + rankingProdutoDTO.getQuantidadeVendas() + ", ESTOQUE: " + rankingProdutoDTO.getQuantidadeEstoque());
73
                }
74
 
75
                // VERIFICAR ITENS POR TIPO, SEM SUBTIPO
76
 
77
 
78
                // CONSULTAR ITENS SEM SUBTIPO: TOTAL DE VENDAS (90 DIAS), TOTAL DE ESTOQUE, TEMPO DE ESTOQUE E QNT PARA COMPRAR (90 DIAS)
79
                /*
80
                List<SubtipoProduto> subtiposProduto = new ArrayList<SubtipoProduto>();
81
                for (TipoProduto tipoProduto : tiposProduto) {
82
                        if (!tipoProduto.getValor().equals(TipoProduto.CAPA.getValor())) {
83
                                subtiposProduto.addAll(subtipoProdutoService.consultarPorTipo(tipoProduto.getValor()));
84
                        }
85
                }
86
                */
87
                // ALERTA PARA CADA PRODUTO COM MENOS DE 15 DIAS
88
 
89
                // LISTA DE TODOS OS SUBTIPOS DO TIPO
90
                // CONSULTAR ITENS DO SUBTIPO: TOTAL DE VENDAS (90 DIAS), TOTAL DE ESTOQUE, TEMPO DE ESTOQUE E QNT PARA COMPRAR (90 DIAS)
91
                // ALERTA PARA CADA SUBTIPO COM MENOS DE 15 DIAS DE ESTOQUE
92
 
93
                // PERMITIR DETALHAR A LISTA DOS ITENS DO SUBTIPO
94
 
95
                return alertasGeralDTO;
96
        }
97
 
98
        private List<RankingModeloDTO> consultarModelosMaisVendidos(AlertasGeralDTO alertasGeralDTO) {
99
                List<RankingModeloDTO> modelosMaisVendidos = new ArrayList<RankingModeloDTO>();
100
                ParametrosConsultaModelosMaisVendidosDTO parametrosConsulta = new ParametrosConsultaModelosMaisVendidosDTO();
101
                parametrosConsulta.setDataFinal(DataUtils.getDataAtual());
102
                parametrosConsulta.setDataInicial(DataUtils.acrescentarDias(DataUtils.getDataAtual(), alertasGeralDTO.getQuantidadeDiasVendas()*-1));
103
                modelosMaisVendidos.addAll(vendaService.consultarRankingModelos(parametrosConsulta, alertasGeralDTO.getAdicionarModelosFavoritosSemVendas()));
104
                return modelosMaisVendidos;
105
        }
106
 
107
}