Commit b3da30de9354e26885256f52f90297ec8b6d79c1

Authored by erick.sato
2 parents d73ad7a1 00289f1f
Exists in master

Merge remote-tracking branch 'remotes/origin/adm-1.14.0'

cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/MovimentoEstoqueDao.java
... ... @@ -114,7 +114,7 @@ public interface MovimentoEstoqueDao extends CitGenericDAO {
114 114 * @param dataFim
115 115 * @return
116 116 */
117   - List<Map<String, Object>> getQuantidadeMaterialAtendido(MaterialConsumo materialConsumo, EstruturaOrganizacional almoxarifado, EstruturaOrganizacional unidadeRequisitante, Calendar dataInicio, Calendar dataFim);
  117 + List<Map<String, Object>> getQuantidadeMaterialAtendido(MaterialConsumo materialConsumo, EstruturaOrganizacional almoxarifado, EstruturaOrganizacional unidadeRequisitante, Calendar dataInicio, Calendar dataFim, List<Long> idsDominiosTipoStatusRequisicao);
118 118  
119 119 /**
120 120 * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p>
... ...
cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/RequisicaoConsumoItemDao.java
... ... @@ -25,6 +25,6 @@ public interface RequisicaoConsumoItemDao extends CitGenericDAO {
25 25 * @param statusFinalizado
26 26 * @return
27 27 */
28   - Long findRequisicaoAnteriorPorMaterial(MaterialConsumo materialConsumo, EstruturaOrganizacional unidadeRequisitante, Dominio statusFinalizado);
  28 + Long findRequisicaoAnteriorPorMaterial(MaterialConsumo materialConsumo, EstruturaOrganizacional unidadeRequisitante, Dominio statusFinalizado, Dominio statusParcialmenteAtendida, Dominio statusAtendida);
29 29  
30 30 }
... ...
cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/impl/MovimentoEstoqueDaoHibernate.java
... ... @@ -19,6 +19,7 @@ import br.com.centralit.framework.dao.arquitetura.CitGenericDAOImpl;
19 19 import br.com.centralit.framework.dao.arquitetura.SearchSeven;
20 20 import br.com.centralit.framework.model.Organizacao;
21 21 import br.com.centralit.framework.model.arquitetura.PersistentObjectAudit;
  22 +import br.com.centralit.framework.util.UtilColecao;
22 23 import br.com.centralit.framework.util.UtilObjeto;
23 24  
24 25 import com.googlecode.genericdao.search.Field;
... ... @@ -171,7 +172,7 @@ public class MovimentoEstoqueDaoHibernate extends CitGenericDAOImpl implements M
171 172 * {@inheritDoc}
172 173 */
173 174 @Override
174   - public List<Map<String, Object>> getQuantidadeMaterialAtendido(MaterialConsumo materialConsumo, EstruturaOrganizacional almoxarifado, EstruturaOrganizacional unidadeRequisitante, Calendar dataInicio, Calendar dataFim) {
  175 + public List<Map<String, Object>> getQuantidadeMaterialAtendido(MaterialConsumo materialConsumo, EstruturaOrganizacional almoxarifado, EstruturaOrganizacional unidadeRequisitante, Calendar dataInicio, Calendar dataFim, List<Long> idsDominiosTipoStatusRequisicao) {
175 176  
176 177 SearchSeven search = new SearchSeven();
177 178  
... ... @@ -190,6 +191,10 @@ public class MovimentoEstoqueDaoHibernate extends CitGenericDAOImpl implements M
190 191 search.addFilterEqual("atendimentoRequisicaoConsumoItem.requisicaoConsumoItem.requisicaoConsumo.unidadeRequisitante.id", unidadeRequisitante.getId());
191 192 }
192 193  
  194 + if(!UtilColecao.isVazio(idsDominiosTipoStatusRequisicao)){
  195 + search.addFilterIn("atendimentoRequisicaoConsumoItem.requisicaoConsumoItem.requisicaoConsumo.tipoStatusRequisicao.id", idsDominiosTipoStatusRequisicao);
  196 + }
  197 +
193 198 if(UtilObjeto.isReferencia(dataInicio) && UtilObjeto.isReferencia(dataFim)){
194 199  
195 200 search.addFilterAnd(
... ...
cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/impl/RequisicaoConsumoItemDaoHibernate.java
... ... @@ -158,20 +158,22 @@ public class RequisicaoConsumoItemDaoHibernate extends CitGenericDAOImpl impleme
158 158 * {@inheritDoc}
159 159 */
160 160 @Override
161   - public Long findRequisicaoAnteriorPorMaterial(MaterialConsumo materialConsumo, EstruturaOrganizacional unidadeRequisitante, Dominio dominioStatus) {
  161 + public Long findRequisicaoAnteriorPorMaterial(MaterialConsumo materialConsumo, EstruturaOrganizacional unidadeRequisitante, Dominio statusFinalizado, Dominio statusParcialmenteAtendida, Dominio statusAtendida) {
162 162  
163 163 StringBuilder str = new StringBuilder();
164 164 str.append("select RequisicaoConsumo.id ");
165 165 str.append("from RequisicaoConsumoItem as RequisicaoConsumoItem ");
166 166 str.append("inner join RequisicaoConsumo RequisicaoConsumo on RequisicaoConsumo.id = RequisicaoConsumoItem.requisicaoconsumo_id ");
167   - str.append("where RequisicaoConsumo.tipostatusrequisicao_id = :dominioStatus AND RequisicaoConsumoItem.materialConsumo_id = :idMaterial AND RequisicaoConsumo.unidaderequisitante_id = :idUnidadeRequisitante ");
  167 + str.append("where (RequisicaoConsumo.tipostatusrequisicao_id = :dominioFinalizado OR RequisicaoConsumo.tipostatusrequisicao_id = :dominioParcialmenteAtendida OR RequisicaoConsumo.tipostatusrequisicao_id = :dominioAtendida) AND RequisicaoConsumoItem.materialConsumo_id = :idMaterial AND RequisicaoConsumo.unidaderequisitante_id = :idUnidadeRequisitante ");
168 168 str.append("order by RequisicaoConsumo.id desc");
169 169  
170 170 Query query = em().createNativeQuery(str.toString());
171 171  
172 172 query.setParameter("idMaterial", materialConsumo.getId());
173 173 query.setParameter("idUnidadeRequisitante", unidadeRequisitante.getId());
174   - query.setParameter("dominioStatus", dominioStatus.getId());
  174 + query.setParameter("dominioFinalizado", statusFinalizado.getId());
  175 + query.setParameter("dominioParcialmenteAtendida", statusParcialmenteAtendida.getId());
  176 + query.setParameter("dominioAtendida", statusAtendida.getId());
175 177  
176 178 query.setMaxResults(1);
177 179  
... ...
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/MovimentoEstoqueService.java
... ... @@ -2,6 +2,7 @@ package br.com.centralit.api.service;
2 2  
3 3 import java.math.BigDecimal;
4 4 import java.util.Calendar;
  5 +import java.util.List;
5 6  
6 7 import br.com.centralit.api.model.AtendimentoRequisicaoConsumo;
7 8 import br.com.centralit.api.model.AtendimentoRequisicaoConsumoItem;
... ... @@ -150,7 +151,7 @@ public interface MovimentoEstoqueService extends GenericService&lt;MovimentoEstoque
150 151 * @param dataFim
151 152 * @return
152 153 */
153   - BigDecimal getMediaQuantidadeMaterial(MaterialConsumo materialConsumo, EstruturaOrganizacional almoxarifado, EstruturaOrganizacional unidadeRequisitante, Calendar dataInicio, Calendar dataFim, Boolean mensal);
  154 + BigDecimal getMediaQuantidadeMaterial(MaterialConsumo materialConsumo, EstruturaOrganizacional almoxarifado, EstruturaOrganizacional unidadeRequisitante, Calendar dataInicio, Calendar dataFim, Boolean mensal, List<Long> idsDominiosTipoStatusRequisicao);
154 155  
155 156 /**
156 157 * Método responsável por recuperar a quantidade movimentada de um determinado material de consumo em uma determinada referência.
... ...
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/AtendimentoRequisicaoConsumoItemServiceImpl.java
1 1 package br.com.centralit.api.service.impl;
2 2  
  3 +import java.util.ArrayList;
3 4 import java.util.Calendar;
4 5 import java.util.Collection;
  6 +import java.util.List;
5 7  
6 8 import org.springframework.beans.factory.annotation.Autowired;
7 9 import org.springframework.beans.factory.annotation.Qualifier;
... ... @@ -10,10 +12,12 @@ import org.springframework.validation.Validator;
10 12  
11 13 import br.com.centralit.api.dao.AtendimentoRequisicaoConsumoItemDao;
12 14 import br.com.centralit.api.model.AtendimentoRequisicaoConsumoItem;
  15 +import br.com.centralit.api.model.DominioAlmoxarifado;
13 16 import br.com.centralit.api.model.RequisicaoConsumo;
14 17 import br.com.centralit.api.model.RequisicaoConsumoItem;
15 18 import br.com.centralit.api.service.AtendimentoRequisicaoConsumoItemService;
16 19 import br.com.centralit.api.service.ContaContabilMovimentoService;
  20 +import br.com.centralit.api.service.DominioService;
17 21 import br.com.centralit.api.service.MaterialConsumoService;
18 22 import br.com.centralit.api.service.MovimentoEstoqueService;
19 23 import br.com.centralit.api.service.RequisicaoConsumoItemService;
... ... @@ -22,6 +26,7 @@ import br.com.centralit.api.viewHelper.AtendimentoVH;
22 26 import br.com.centralit.api.viewHelper.InformacoesAtendimentoVH;
23 27 import br.com.centralit.framework.exception.BusinessException;
24 28 import br.com.centralit.framework.exception.CodigoErro;
  29 +import br.com.centralit.framework.model.Dominio;
25 30 import br.com.centralit.framework.service.arquitetura.GenericServiceImpl;
26 31 import br.com.centralit.framework.util.UtilDate;
27 32 import br.com.centralit.framework.util.UtilObjeto;
... ... @@ -66,6 +71,9 @@ public class AtendimentoRequisicaoConsumoItemServiceImpl extends GenericServiceI
66 71  
67 72 @Autowired
68 73 private ContaContabilMovimentoService contaContabilMovimentoService;
  74 +
  75 + @Autowired
  76 + private DominioService dominioService;
69 77  
70 78 /**
71 79 * Responsável pela criação de novas instâncias desta classe.
... ... @@ -148,6 +156,14 @@ public class AtendimentoRequisicaoConsumoItemServiceImpl extends GenericServiceI
148 156 */
149 157 @Override
150 158 public InformacoesAtendimentoVH getInformacoesParaRequisicao(AtendimentoRequisicaoConsumoItem atendimentoRequisicaoConsumoItem) {
  159 +
  160 + List<Long> idsDominiosTipoStatusRequisicao = new ArrayList<>();
  161 + Dominio statusFinalizado = this.dominioService.findByChaveAndCodigo(DominioAlmoxarifado.TIPO_STATUS_REQUISICAO, DominioAlmoxarifado.TIPO_STATUS_FINALIZADA);
  162 + idsDominiosTipoStatusRequisicao.add(statusFinalizado.getId());
  163 + Dominio statusParcialmenteAtendida = this.dominioService.findByChaveAndCodigo(DominioAlmoxarifado.TIPO_STATUS_REQUISICAO, DominioAlmoxarifado.TIPO_STATUS_ATENDIDA_PARCIALMENTE);
  164 + idsDominiosTipoStatusRequisicao.add(statusParcialmenteAtendida.getId());
  165 + Dominio statusAtendida = this.dominioService.findByChaveAndCodigo(DominioAlmoxarifado.TIPO_STATUS_REQUISICAO, DominioAlmoxarifado.TIPO_STATUS_ATENDIDA);
  166 + idsDominiosTipoStatusRequisicao.add(statusAtendida.getId());
151 167  
152 168 RequisicaoConsumoItem requisicaoConsumoItem = this.requisicaoConsumoItemService.find(atendimentoRequisicaoConsumoItem.getRequisicaoConsumoItem().getId());
153 169  
... ... @@ -163,7 +179,7 @@ public class AtendimentoRequisicaoConsumoItemServiceImpl extends GenericServiceI
163 179  
164 180 informacoesAtendimentoVH.setConsumoExercicioAtual(this.movimentoEstoqueService.getMediaQuantidadeMaterial(requisicaoConsumoItem.getMaterialConsumo(),
165 181 requisicaoConsumoItem.getRequisicaoConsumo().getAlmoxarifado(), requisicaoConsumoItem.getRequisicaoConsumo().getUnidadeRequisitante(),
166   - primeiroDiaAnoAtual, ultimoDiaAnoAtual, Boolean.FALSE));
  182 + primeiroDiaAnoAtual, ultimoDiaAnoAtual, Boolean.FALSE, idsDominiosTipoStatusRequisicao));
167 183  
168 184 Calendar primeiroDiaAnoAnterior = UtilDate.dateToCalendar(UtilDate.getPrimeiroDiaDoAno(Integer.parseInt(UtilDate.getAnoAtual()) - 1));
169 185  
... ... @@ -171,7 +187,7 @@ public class AtendimentoRequisicaoConsumoItemServiceImpl extends GenericServiceI
171 187  
172 188 informacoesAtendimentoVH.setConsumoExercicioAnterior(this.movimentoEstoqueService.getMediaQuantidadeMaterial(requisicaoConsumoItem.getMaterialConsumo(),
173 189 requisicaoConsumoItem.getRequisicaoConsumo().getAlmoxarifado(), requisicaoConsumoItem.getRequisicaoConsumo().getUnidadeRequisitante(),
174   - primeiroDiaAnoAnterior, ultimoDiaAnoAnterior, Boolean.FALSE));
  190 + primeiroDiaAnoAnterior, ultimoDiaAnoAnterior, Boolean.FALSE, idsDominiosTipoStatusRequisicao));
175 191  
176 192 Calendar data12MesesAtras = UtilDate.dateToCalendar(UtilDate.somaMeses(UtilDate.calendarUltimoDiaDoMes(Calendar.getInstance()).getTime(), -12));
177 193  
... ... @@ -179,13 +195,13 @@ public class AtendimentoRequisicaoConsumoItemServiceImpl extends GenericServiceI
179 195  
180 196 informacoesAtendimentoVH.setConsumo12meses(this.movimentoEstoqueService.getMediaQuantidadeMaterial(requisicaoConsumoItem.getMaterialConsumo(),
181 197 requisicaoConsumoItem.getRequisicaoConsumo().getAlmoxarifado(), requisicaoConsumoItem.getRequisicaoConsumo().getUnidadeRequisitante(),
182   - data12MesesAtras, dataMesAtual, Boolean.FALSE));
  198 + data12MesesAtras, dataMesAtual, Boolean.FALSE, idsDominiosTipoStatusRequisicao));
183 199  
184 200 informacoesAtendimentoVH.setConsumoMedioMensalMaterial(this.movimentoEstoqueService.getMediaQuantidadeMaterial(requisicaoConsumoItem.getMaterialConsumo(),
185   - requisicaoConsumoItem.getRequisicaoConsumo().getAlmoxarifado(), null, null, null, Boolean.TRUE));
  201 + requisicaoConsumoItem.getRequisicaoConsumo().getAlmoxarifado(), null, null, null, Boolean.TRUE, idsDominiosTipoStatusRequisicao));
186 202  
187 203 informacoesAtendimentoVH.setConsumoMedioMensalUR(this.movimentoEstoqueService.getMediaQuantidadeMaterial(requisicaoConsumoItem.getMaterialConsumo(),
188   - requisicaoConsumoItem.getRequisicaoConsumo().getAlmoxarifado(), requisicaoConsumoItem.getRequisicaoConsumo().getUnidadeRequisitante(), null, null, Boolean.TRUE));
  204 + requisicaoConsumoItem.getRequisicaoConsumo().getAlmoxarifado(), requisicaoConsumoItem.getRequisicaoConsumo().getUnidadeRequisitante(), null, null, Boolean.TRUE, idsDominiosTipoStatusRequisicao));
189 205  
190 206 return informacoesAtendimentoVH;
191 207 }
... ...
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/MovimentoEstoqueServiceImpl.java
... ... @@ -438,11 +438,11 @@ public class MovimentoEstoqueServiceImpl extends GenericServiceImpl&lt;MovimentoEst
438 438 * {@inheritDoc}
439 439 */
440 440 @Override
441   - public BigDecimal getMediaQuantidadeMaterial(MaterialConsumo materialConsumo, EstruturaOrganizacional almoxarifado, EstruturaOrganizacional unidadeRequisitante, Calendar dataInicio, Calendar dataFim, Boolean mensal) {
  441 + public BigDecimal getMediaQuantidadeMaterial(MaterialConsumo materialConsumo, EstruturaOrganizacional almoxarifado, EstruturaOrganizacional unidadeRequisitante, Calendar dataInicio, Calendar dataFim, Boolean mensal, List<Long> idsDominiosTipoStatusRequisicao) {
442 442  
443 443 BigDecimal result = BigDecimal.valueOf(0);
444 444  
445   - List<Map<String, Object>> valoresAtendidos = this.movimentoEstoqueDao.getQuantidadeMaterialAtendido(materialConsumo, almoxarifado, unidadeRequisitante, dataInicio, dataFim);
  445 + List<Map<String, Object>> valoresAtendidos = this.movimentoEstoqueDao.getQuantidadeMaterialAtendido(materialConsumo, almoxarifado, unidadeRequisitante, dataInicio, dataFim, idsDominiosTipoStatusRequisicao);
446 446  
447 447 if (!UtilColecao.isVazio(valoresAtendidos)) {
448 448  
... ...
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/RequisicaoConsumoItemServiceImpl.java
... ... @@ -142,8 +142,10 @@ public class RequisicaoConsumoItemServiceImpl extends GenericServiceImpl&lt;Requisi
142 142 public Long findRequisicaoAnteriorPorMaterial(MaterialConsumo materialConsumo, EstruturaOrganizacional unidadeRequisitante) {
143 143  
144 144 Dominio statusFinalizado = this.dominioService.findByChaveAndCodigo(DominioAlmoxarifado.TIPO_STATUS_REQUISICAO, DominioAlmoxarifado.TIPO_STATUS_FINALIZADA);
  145 + Dominio statusAtendida = this.dominioService.findByChaveAndCodigo(DominioAlmoxarifado.TIPO_STATUS_REQUISICAO, DominioAlmoxarifado.TIPO_STATUS_ATENDIDA);
  146 + Dominio statusParcialmenteAtendida = this.dominioService.findByChaveAndCodigo(DominioAlmoxarifado.TIPO_STATUS_REQUISICAO, DominioAlmoxarifado.TIPO_STATUS_ATENDIDA_PARCIALMENTE);
145 147  
146   - return this.requisicaoConsumoItemDao.findRequisicaoAnteriorPorMaterial(materialConsumo, unidadeRequisitante, statusFinalizado);
  148 + return this.requisicaoConsumoItemDao.findRequisicaoAnteriorPorMaterial(materialConsumo, unidadeRequisitante, statusFinalizado, statusParcialmenteAtendida, statusAtendida);
147 149 }
148 150  
149 151 }
... ...