Commit 00289f1fc36e0b9b5b6317a3c8b0feae0bb300d1
1 parent
77081bb3
Exists in
master
[Redmine Atendimento #4701]Informações de atendido de requisição
Showing
8 changed files
with
41 additions
and
15 deletions
Show diff stats
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<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<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<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 | } | ... | ... |