Commit fb56e6d9f76079e638fcf2b84cd5ebf2422793e1

Authored by erick.sato
1 parent 2adf4dba
Exists in master

[Redmine Atendimento #4890]Paginar transferencias por ids

citgrp-patrimonio-api/src/main/java/br/com/centralit/api/dao/TransferenciaDao.java
@@ -3,6 +3,8 @@ package br.com.centralit.api.dao; @@ -3,6 +3,8 @@ package br.com.centralit.api.dao;
3 import java.util.Calendar; 3 import java.util.Calendar;
4 import java.util.List; 4 import java.util.List;
5 5
  6 +import com.googlecode.genericdao.search.SearchResult;
  7 +
6 import br.com.centralit.api.model.BemPatrimonial; 8 import br.com.centralit.api.model.BemPatrimonial;
7 import br.com.centralit.api.model.Transferencia; 9 import br.com.centralit.api.model.Transferencia;
8 import br.com.centralit.api.viewHelper.TransferenciaVH; 10 import br.com.centralit.api.viewHelper.TransferenciaVH;
@@ -146,5 +148,5 @@ public interface TransferenciaDao extends CitGenericDAO { @@ -146,5 +148,5 @@ public interface TransferenciaDao extends CitGenericDAO {
146 * @param transferenciaVH 148 * @param transferenciaVH
147 * @return {@link String} 149 * @return {@link String}
148 */ 150 */
149 - String filtrarTransferencias(TransferenciaVH transferenciaVH); 151 + SearchResult filtrarTransferencias(TransferenciaVH transferenciaVH);
150 } 152 }
citgrp-patrimonio-api/src/main/java/br/com/centralit/api/dao/impl/TransferenciaDaoHibernate.java
@@ -2,15 +2,20 @@ package br.com.centralit.api.dao.impl; @@ -2,15 +2,20 @@ package br.com.centralit.api.dao.impl;
2 2
3 import java.text.DateFormat; 3 import java.text.DateFormat;
4 import java.text.SimpleDateFormat; 4 import java.text.SimpleDateFormat;
  5 +import java.util.ArrayList;
5 import java.util.Calendar; 6 import java.util.Calendar;
6 import java.util.Collection; 7 import java.util.Collection;
7 -import java.util.HashSet;  
8 import java.util.List; 8 import java.util.List;
9 -import java.util.Set;  
10 9
11 import org.springframework.stereotype.Repository; 10 import org.springframework.stereotype.Repository;
12 import org.springframework.util.StringUtils; 11 import org.springframework.util.StringUtils;
13 12
  13 +import com.googlecode.genericdao.search.Field;
  14 +import com.googlecode.genericdao.search.Filter;
  15 +import com.googlecode.genericdao.search.Search;
  16 +import com.googlecode.genericdao.search.SearchResult;
  17 +import com.googlecode.genericdao.search.Sort;
  18 +
14 import br.com.centralit.api.dao.TransferenciaDao; 19 import br.com.centralit.api.dao.TransferenciaDao;
15 import br.com.centralit.api.model.BemPatrimonial; 20 import br.com.centralit.api.model.BemPatrimonial;
16 import br.com.centralit.api.model.Transferencia; 21 import br.com.centralit.api.model.Transferencia;
@@ -21,9 +26,6 @@ import br.com.centralit.framework.util.UtilColecao; @@ -21,9 +26,6 @@ import br.com.centralit.framework.util.UtilColecao;
21 import br.com.centralit.framework.util.UtilDate; 26 import br.com.centralit.framework.util.UtilDate;
22 import br.com.centralit.framework.util.UtilObjeto; 27 import br.com.centralit.framework.util.UtilObjeto;
23 28
24 -import com.googlecode.genericdao.search.Filter;  
25 -import com.googlecode.genericdao.search.Sort;  
26 -  
27 /** 29 /**
28 * <p> 30 * <p>
29 * <img src="http://centralit.com.br/images/logo_central.png"> 31 * <img src="http://centralit.com.br/images/logo_central.png">
@@ -193,9 +195,12 @@ public class TransferenciaDaoHibernate extends CitGenericDAOImpl implements Tran @@ -193,9 +195,12 @@ public class TransferenciaDaoHibernate extends CitGenericDAOImpl implements Tran
193 * @return {@link Collection} 195 * @return {@link Collection}
194 */ 196 */
195 @Override 197 @Override
196 - public String filtrarTransferencias(TransferenciaVH transferenciaVH) { 198 + public SearchResult filtrarTransferencias(TransferenciaVH transferenciaVH) {
197 199
198 - SearchSeven searchSeven = new SearchSeven(this.persistentClass); 200 + SearchSeven searchSeven = new SearchSeven(transferenciaVH.getSearchParams());
  201 + searchSeven.setResultMode(Search.RESULT_SINGLE);
  202 +
  203 + searchSeven.setDistinct(true);
199 204
200 addFilterNumeroPatrimonial(transferenciaVH, searchSeven); 205 addFilterNumeroPatrimonial(transferenciaVH, searchSeven);
201 addFilterNumeroTermo(transferenciaVH, searchSeven); 206 addFilterNumeroTermo(transferenciaVH, searchSeven);
@@ -206,10 +211,31 @@ public class TransferenciaDaoHibernate extends CitGenericDAOImpl implements Tran @@ -206,10 +211,31 @@ public class TransferenciaDaoHibernate extends CitGenericDAOImpl implements Tran
206 addFilterUnidadeOrigem(transferenciaVH, searchSeven); 211 addFilterUnidadeOrigem(transferenciaVH, searchSeven);
207 addFilterUnidadeDestino(transferenciaVH, searchSeven); 212 addFilterUnidadeDestino(transferenciaVH, searchSeven);
208 213
209 - searchSeven.addField("id"); 214 + List<Field> fields = new ArrayList<Field>();
  215 + List<Sort> sorts = new ArrayList<Sort>();
  216 + fields.add(new Field("id"));
  217 + sorts.add(new Sort("id"));
  218 + searchSeven.setFields(fields);
  219 + searchSeven.setSorts(sorts);
210 List<Long> ids = this.search(searchSeven); 220 List<Long> ids = this.search(searchSeven);
211 - Set<Long> idSet = new HashSet<Long>(ids);  
212 - return !UtilColecao.isVazio(idSet) ? idSet.toString().replace("[", "").replace("]", "").replace(" ", "") : ""; 221 +
  222 + @SuppressWarnings("rawtypes")
  223 + SearchResult result = new SearchResult();
  224 + result.setTotalCount(this.count(searchSeven));
  225 +
  226 + fields = new ArrayList<Field>();
  227 + searchSeven = new SearchSeven(transferenciaVH.getSearchParams());
  228 + searchSeven.setResultMode(Search.RESULT_MAP);
  229 + for (String field : transferenciaVH.getSearchParams().getFields()) {
  230 + fields.add(new Field(field));
  231 + }
  232 + searchSeven.setFields(fields);
  233 + searchSeven.addFilterIn("id", ids);
  234 + searchSeven.setFirstResult(0);
  235 + result.setResult(this.search(searchSeven));
  236 +
  237 + return result;
  238 +
213 } 239 }
214 240
215 private void addFilterNumeroPatrimonial(TransferenciaVH transferenciaVH, SearchSeven searchSeven) { 241 private void addFilterNumeroPatrimonial(TransferenciaVH transferenciaVH, SearchSeven searchSeven) {
citgrp-patrimonio-api/src/main/java/br/com/centralit/api/service/TransferenciaService.java
@@ -3,6 +3,8 @@ package br.com.centralit.api.service; @@ -3,6 +3,8 @@ package br.com.centralit.api.service;
3 import java.util.Calendar; 3 import java.util.Calendar;
4 import java.util.List; 4 import java.util.List;
5 5
  6 +import com.googlecode.genericdao.search.SearchResult;
  7 +
6 import br.com.centralit.api.model.AdicaoBemPrincipal; 8 import br.com.centralit.api.model.AdicaoBemPrincipal;
7 import br.com.centralit.api.model.AdicaoBemPrincipalItem; 9 import br.com.centralit.api.model.AdicaoBemPrincipalItem;
8 import br.com.centralit.api.model.BemPatrimonial; 10 import br.com.centralit.api.model.BemPatrimonial;
@@ -190,7 +192,7 @@ public interface TransferenciaService extends GenericService&lt;Transferencia, Long @@ -190,7 +192,7 @@ public interface TransferenciaService extends GenericService&lt;Transferencia, Long
190 * @param transferenciaVH 192 * @param transferenciaVH
191 * @return {@link String} 193 * @return {@link String}
192 */ 194 */
193 - String filtrarTransferencias(TransferenciaVH transferenciaVH); 195 + SearchResult filtrarTransferencias(TransferenciaVH transferenciaVH);
194 196
195 /** 197 /**
196 * Método responsável por validar se a transferência a ser realizada já foi realizada no mesmo dia 198 * Método responsável por validar se a transferência a ser realizada já foi realizada no mesmo dia
citgrp-patrimonio-api/src/main/java/br/com/centralit/api/service/impl/TransferenciaServiceImpl.java
@@ -11,6 +11,8 @@ import org.springframework.beans.factory.annotation.Qualifier; @@ -11,6 +11,8 @@ import org.springframework.beans.factory.annotation.Qualifier;
11 import org.springframework.stereotype.Service; 11 import org.springframework.stereotype.Service;
12 import org.springframework.validation.Validator; 12 import org.springframework.validation.Validator;
13 13
  14 +import com.googlecode.genericdao.search.SearchResult;
  15 +
14 import br.com.centralit.api.dao.TransferenciaDao; 16 import br.com.centralit.api.dao.TransferenciaDao;
15 import br.com.centralit.api.model.AdicaoBemPrincipal; 17 import br.com.centralit.api.model.AdicaoBemPrincipal;
16 import br.com.centralit.api.model.AdicaoBemPrincipalItem; 18 import br.com.centralit.api.model.AdicaoBemPrincipalItem;
@@ -888,7 +890,7 @@ public class TransferenciaServiceImpl extends GenericServiceImpl&lt;Transferencia, @@ -888,7 +890,7 @@ public class TransferenciaServiceImpl extends GenericServiceImpl&lt;Transferencia,
888 * @return {@link String} 890 * @return {@link String}
889 */ 891 */
890 @Override 892 @Override
891 - public String filtrarTransferencias(TransferenciaVH transferenciaVH) { 893 + public SearchResult filtrarTransferencias(TransferenciaVH transferenciaVH) {
892 894
893 return this.transferenciaDao.filtrarTransferencias(transferenciaVH); 895 return this.transferenciaDao.filtrarTransferencias(transferenciaVH);
894 } 896 }
citgrp-patrimonio-api/src/main/java/br/com/centralit/api/viewHelper/TransferenciaVH.java
@@ -2,11 +2,13 @@ package br.com.centralit.api.viewHelper; @@ -2,11 +2,13 @@ package br.com.centralit.api.viewHelper;
2 2
3 import java.io.Serializable; 3 import java.io.Serializable;
4 import java.util.Calendar; 4 import java.util.Calendar;
  5 +import java.util.List;
5 6
6 import br.com.centralit.api.model.Colaborador; 7 import br.com.centralit.api.model.Colaborador;
7 import br.com.centralit.api.model.EstruturaOrganizacional; 8 import br.com.centralit.api.model.EstruturaOrganizacional;
8 import br.com.centralit.api.model.Transferencia; 9 import br.com.centralit.api.model.Transferencia;
9 import br.com.centralit.framework.json.Views; 10 import br.com.centralit.framework.json.Views;
  11 +import br.com.centralit.framework.model.SearchParams;
10 12
11 import com.fasterxml.jackson.annotation.JsonView; 13 import com.fasterxml.jackson.annotation.JsonView;
12 14
@@ -108,6 +110,8 @@ public class TransferenciaVH implements Serializable { @@ -108,6 +110,8 @@ public class TransferenciaVH implements Serializable {
108 private String numPatrimonial; 110 private String numPatrimonial;
109 111
110 private boolean intervaloNumeroPatrimonial; 112 private boolean intervaloNumeroPatrimonial;
  113 +
  114 + private SearchParams searchParams;
111 115
112 /** 116 /**
113 * Retorna o valor do atributo <code>numDocumentoInicio</code> 117 * Retorna o valor do atributo <code>numDocumentoInicio</code>
@@ -510,4 +514,12 @@ public class TransferenciaVH implements Serializable { @@ -510,4 +514,12 @@ public class TransferenciaVH implements Serializable {
510 this.intervaloNumeroPatrimonial = intervaloNumeroPatrimonial; 514 this.intervaloNumeroPatrimonial = intervaloNumeroPatrimonial;
511 } 515 }
512 516
  517 + public SearchParams getSearchParams() {
  518 + return searchParams;
  519 + }
  520 +
  521 + public void setSearchParams(SearchParams searchParams) {
  522 + this.searchParams = searchParams;
  523 + }
  524 +
513 } 525 }
citgrp-patrimonio-web/src/main/java/br/com/centralit/controller/TransferenciaController.java
@@ -16,15 +16,6 @@ import java.util.Map; @@ -16,15 +16,6 @@ import java.util.Map;
16 import javax.persistence.PersistenceException; 16 import javax.persistence.PersistenceException;
17 import javax.servlet.http.HttpServletResponse; 17 import javax.servlet.http.HttpServletResponse;
18 18
19 -import net.sf.jasperreports.engine.JRException;  
20 -import net.sf.jasperreports.engine.JRPrintPage;  
21 -import net.sf.jasperreports.engine.JasperCompileManager;  
22 -import net.sf.jasperreports.engine.JasperFillManager;  
23 -import net.sf.jasperreports.engine.JasperPrint;  
24 -import net.sf.jasperreports.engine.JasperReport;  
25 -import net.sf.jasperreports.engine.design.JasperDesign;  
26 -import net.sf.jasperreports.engine.xml.JRXmlLoader;  
27 -  
28 import org.apache.commons.beanutils.BeanUtilsBean; 19 import org.apache.commons.beanutils.BeanUtilsBean;
29 import org.hibernate.exception.ConstraintViolationException; 20 import org.hibernate.exception.ConstraintViolationException;
30 import org.springframework.beans.factory.annotation.Autowired; 21 import org.springframework.beans.factory.annotation.Autowired;
@@ -37,6 +28,8 @@ import org.springframework.web.bind.annotation.RequestMethod; @@ -37,6 +28,8 @@ import org.springframework.web.bind.annotation.RequestMethod;
37 import org.springframework.web.bind.annotation.RequestParam; 28 import org.springframework.web.bind.annotation.RequestParam;
38 import org.springframework.web.bind.annotation.ResponseBody; 29 import org.springframework.web.bind.annotation.ResponseBody;
39 30
  31 +import com.googlecode.genericdao.search.SearchResult;
  32 +
40 import br.com.centralit.api.model.MyMensagemRetorno; 33 import br.com.centralit.api.model.MyMensagemRetorno;
41 import br.com.centralit.api.model.MyRetornoStatus; 34 import br.com.centralit.api.model.MyRetornoStatus;
42 import br.com.centralit.api.model.Transferencia; 35 import br.com.centralit.api.model.Transferencia;
@@ -62,6 +55,16 @@ import br.com.centralit.framework.util.UtilColecao; @@ -62,6 +55,16 @@ import br.com.centralit.framework.util.UtilColecao;
62 import br.com.centralit.framework.util.UtilDataBase; 55 import br.com.centralit.framework.util.UtilDataBase;
63 import br.com.centralit.framework.util.UtilObjeto; 56 import br.com.centralit.framework.util.UtilObjeto;
64 import br.com.centralit.framework.util.UtilString; 57 import br.com.centralit.framework.util.UtilString;
  58 +import br.com.centralit.framework.view.GridVH;
  59 +import br.com.centralit.framework.view.ResultResponseVH;
  60 +import net.sf.jasperreports.engine.JRException;
  61 +import net.sf.jasperreports.engine.JRPrintPage;
  62 +import net.sf.jasperreports.engine.JasperCompileManager;
  63 +import net.sf.jasperreports.engine.JasperFillManager;
  64 +import net.sf.jasperreports.engine.JasperPrint;
  65 +import net.sf.jasperreports.engine.JasperReport;
  66 +import net.sf.jasperreports.engine.design.JasperDesign;
  67 +import net.sf.jasperreports.engine.xml.JRXmlLoader;
65 68
66 /** 69 /**
67 * <p><img src="http://centralit.com.br/images/logo_central.png"></p> 70 * <p><img src="http://centralit.com.br/images/logo_central.png"></p>
@@ -336,8 +339,18 @@ public class TransferenciaController extends GenericController&lt;Transferencia&gt;{ @@ -336,8 +339,18 @@ public class TransferenciaController extends GenericController&lt;Transferencia&gt;{
336 */ 339 */
337 @RequestMapping(value = "/filtrarTransferencias", method = RequestMethod.POST, produces = "application/json") 340 @RequestMapping(value = "/filtrarTransferencias", method = RequestMethod.POST, produces = "application/json")
338 @ResponseBody 341 @ResponseBody
339 - public String filtrarTransferencias(@RequestBody TransferenciaVH transferenciaVH) {  
340 - return this.transferenciaService.filtrarTransferencias(transferenciaVH); 342 + public ResponseBodyWrapper filtrarTransferencias(@RequestBody TransferenciaVH transferenciaVH) {
  343 + SearchResult searchResult = transferenciaService.filtrarTransferencias(transferenciaVH);
  344 +
  345 + GridVH gridVH = new GridVH();
  346 + gridVH.setObjects(searchResult.getResult());
  347 + gridVH.addTotalItensTotalPages(transferenciaVH.getSearchParams(), Long.valueOf(searchResult.getTotalCount()));
  348 +
  349 + ResultResponseVH resultResponseVH = new ResultResponseVH(gridVH);
  350 +
  351 + ResponseBodyWrapper responseBody = new ResponseBodyWrapper(resultResponseVH, this.getListView());
  352 +
  353 + return responseBody;
341 } 354 }
342 355
343 @RequestMapping(method = RequestMethod.POST, value = "") 356 @RequestMapping(method = RequestMethod.POST, value = "")
citgrp-patrimonio-web/src/main/webapp/assets/js/angular/custom/controller/TransferenciaListController.js
@@ -39,6 +39,8 @@ citApp.controller(&#39;TransferenciaListController&#39;, [&#39;$scope&#39;, &#39;$filter&#39;, &#39;$transla @@ -39,6 +39,8 @@ citApp.controller(&#39;TransferenciaListController&#39;, [&#39;$scope&#39;, &#39;$filter&#39;, &#39;$transla
39 {type: 'date', field: 'referenciaVigente'}] 39 {type: 'date', field: 'referenciaVigente'}]
40 }; 40 };
41 41
  42 + $scope.filtrarCustomizado = false;
  43 +
42 // ABRE TRANSFERENCIA SELECIONADA 44 // ABRE TRANSFERENCIA SELECIONADA
43 $scope.abrirTransferencia = function(edit){ 45 $scope.abrirTransferencia = function(edit){
44 var transferencia = $scope.transferenciaChecked; 46 var transferencia = $scope.transferenciaChecked;
@@ -130,19 +132,20 @@ citApp.controller(&#39;TransferenciaListController&#39;, [&#39;$scope&#39;, &#39;$filter&#39;, &#39;$transla @@ -130,19 +132,20 @@ citApp.controller(&#39;TransferenciaListController&#39;, [&#39;$scope&#39;, &#39;$filter&#39;, &#39;$transla
130 $scope.filtrarTransferencias = function() { 132 $scope.filtrarTransferencias = function() {
131 $scope.setLoadingGet(true); 133 $scope.setLoadingGet(true);
132 tratarFormatoDatas(); 134 tratarFormatoDatas();
133 - if($scope.transferenciaVH.intervaloNumeroPatrimonial){  
134 - $scope.transferenciaVH.numPatrimonial = null;  
135 - }else{  
136 - $scope.transferenciaVH.numPatrimonialInicio = null;  
137 - $scope.transferenciaVH.numPatrimonialFim = null;  
138 - } 135 + $scope.transferenciaVH.searchParams = $scope.filterCriteria;
139 return TransferenciaRepository.filtrarTransferencias($scope.transferenciaVH).then(function(result){ 136 return TransferenciaRepository.filtrarTransferencias($scope.transferenciaVH).then(function(result){
140 if(result){ 137 if(result){
141 - $scope.filterCriteria.filters.forEach(function(filtro){  
142 - if(filtro.field === "id")  
143 - filtro.value = result;  
144 - });  
145 - $scope.fetchResult(); 138 +
  139 + $scope.transferencias = result.originalElement.objects;
  140 +
  141 + $scope.totalPages = result.originalElement.totalPages;
  142 + $scope.totalItens = result.originalElement.totalItens;
  143 +
  144 + if(!$scope.filtersCopy){
  145 + $scope.filtersCopy = angular.copy($scope.filterCriteria.filters);
  146 + }
  147 + $scope.filtrarCustomizado = true;
  148 + $scope.setLoading(false);
146 149
147 } else { 150 } else {
148 $scope.showAlert('warning', $translate.instant('MSG.NENHUM_REGISTRO_ENCONTRADO'), " ", false); 151 $scope.showAlert('warning', $translate.instant('MSG.NENHUM_REGISTRO_ENCONTRADO'), " ", false);
@@ -154,6 +157,7 @@ citApp.controller(&#39;TransferenciaListController&#39;, [&#39;$scope&#39;, &#39;$filter&#39;, &#39;$transla @@ -154,6 +157,7 @@ citApp.controller(&#39;TransferenciaListController&#39;, [&#39;$scope&#39;, &#39;$filter&#39;, &#39;$transla
154 157
155 $scope.limparModalBuscaTransferencia = function() { 158 $scope.limparModalBuscaTransferencia = function() {
156 $scope.transferenciaVH = { intervaloNumeroPatrimonial : false}; 159 $scope.transferenciaVH = { intervaloNumeroPatrimonial : false};
  160 + $scope.filtrarCustomizado = false;
157 }; 161 };
158 162
159 $scope.findEstruturaGestora = function(value) { 163 $scope.findEstruturaGestora = function(value) {
citgrp-patrimonio-web/src/main/webapp/html/transferencia/transferenciaList.html
@@ -56,6 +56,6 @@ @@ -56,6 +56,6 @@
56 </div> 56 </div>
57 57
58 <list-view ng-lista="transferencias" ng-repository="TransferenciaRepository" ng-headers="headers" ng-filter-criteria="filterCriteria" ng-item-selecionado="transferenciaChecked" 58 <list-view ng-lista="transferencias" ng-repository="TransferenciaRepository" ng-headers="headers" ng-filter-criteria="filterCriteria" ng-item-selecionado="transferenciaChecked"
59 - ng-lista-itens-selecionados="listaSelecionados" ng-check-on="true"></list-view> 59 + ng-lista-itens-selecionados="listaSelecionados" ng-check-on="true" set-total-pages="totalPages" set-total-itens="totalItens" use-custom-filter-temp="filtrarCustomizado" ng-custom-filter="filtrarTransferencias()"></list-view>
60 60
61 </div><!-- .page-content --> 61 </div><!-- .page-content -->
62 \ No newline at end of file 62 \ No newline at end of file