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 3 import java.util.Calendar;
4 4 import java.util.List;
5 5  
  6 +import com.googlecode.genericdao.search.SearchResult;
  7 +
6 8 import br.com.centralit.api.model.BemPatrimonial;
7 9 import br.com.centralit.api.model.Transferencia;
8 10 import br.com.centralit.api.viewHelper.TransferenciaVH;
... ... @@ -146,5 +148,5 @@ public interface TransferenciaDao extends CitGenericDAO {
146 148 * @param transferenciaVH
147 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 2  
3 3 import java.text.DateFormat;
4 4 import java.text.SimpleDateFormat;
  5 +import java.util.ArrayList;
5 6 import java.util.Calendar;
6 7 import java.util.Collection;
7   -import java.util.HashSet;
8 8 import java.util.List;
9   -import java.util.Set;
10 9  
11 10 import org.springframework.stereotype.Repository;
12 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 19 import br.com.centralit.api.dao.TransferenciaDao;
15 20 import br.com.centralit.api.model.BemPatrimonial;
16 21 import br.com.centralit.api.model.Transferencia;
... ... @@ -21,9 +26,6 @@ import br.com.centralit.framework.util.UtilColecao;
21 26 import br.com.centralit.framework.util.UtilDate;
22 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 30 * <p>
29 31 * <img src="http://centralit.com.br/images/logo_central.png">
... ... @@ -193,9 +195,12 @@ public class TransferenciaDaoHibernate extends CitGenericDAOImpl implements Tran
193 195 * @return {@link Collection}
194 196 */
195 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 205 addFilterNumeroPatrimonial(transferenciaVH, searchSeven);
201 206 addFilterNumeroTermo(transferenciaVH, searchSeven);
... ... @@ -206,10 +211,31 @@ public class TransferenciaDaoHibernate extends CitGenericDAOImpl implements Tran
206 211 addFilterUnidadeOrigem(transferenciaVH, searchSeven);
207 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 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 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 3 import java.util.Calendar;
4 4 import java.util.List;
5 5  
  6 +import com.googlecode.genericdao.search.SearchResult;
  7 +
6 8 import br.com.centralit.api.model.AdicaoBemPrincipal;
7 9 import br.com.centralit.api.model.AdicaoBemPrincipalItem;
8 10 import br.com.centralit.api.model.BemPatrimonial;
... ... @@ -190,7 +192,7 @@ public interface TransferenciaService extends GenericService&lt;Transferencia, Long
190 192 * @param transferenciaVH
191 193 * @return {@link String}
192 194 */
193   - String filtrarTransferencias(TransferenciaVH transferenciaVH);
  195 + SearchResult filtrarTransferencias(TransferenciaVH transferenciaVH);
194 196  
195 197 /**
196 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 11 import org.springframework.stereotype.Service;
12 12 import org.springframework.validation.Validator;
13 13  
  14 +import com.googlecode.genericdao.search.SearchResult;
  15 +
14 16 import br.com.centralit.api.dao.TransferenciaDao;
15 17 import br.com.centralit.api.model.AdicaoBemPrincipal;
16 18 import br.com.centralit.api.model.AdicaoBemPrincipalItem;
... ... @@ -888,7 +890,7 @@ public class TransferenciaServiceImpl extends GenericServiceImpl&lt;Transferencia,
888 890 * @return {@link String}
889 891 */
890 892 @Override
891   - public String filtrarTransferencias(TransferenciaVH transferenciaVH) {
  893 + public SearchResult filtrarTransferencias(TransferenciaVH transferenciaVH) {
892 894  
893 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 2  
3 3 import java.io.Serializable;
4 4 import java.util.Calendar;
  5 +import java.util.List;
5 6  
6 7 import br.com.centralit.api.model.Colaborador;
7 8 import br.com.centralit.api.model.EstruturaOrganizacional;
8 9 import br.com.centralit.api.model.Transferencia;
9 10 import br.com.centralit.framework.json.Views;
  11 +import br.com.centralit.framework.model.SearchParams;
10 12  
11 13 import com.fasterxml.jackson.annotation.JsonView;
12 14  
... ... @@ -108,6 +110,8 @@ public class TransferenciaVH implements Serializable {
108 110 private String numPatrimonial;
109 111  
110 112 private boolean intervaloNumeroPatrimonial;
  113 +
  114 + private SearchParams searchParams;
111 115  
112 116 /**
113 117 * Retorna o valor do atributo <code>numDocumentoInicio</code>
... ... @@ -510,4 +514,12 @@ public class TransferenciaVH implements Serializable {
510 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 16 import javax.persistence.PersistenceException;
17 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 19 import org.apache.commons.beanutils.BeanUtilsBean;
29 20 import org.hibernate.exception.ConstraintViolationException;
30 21 import org.springframework.beans.factory.annotation.Autowired;
... ... @@ -37,6 +28,8 @@ import org.springframework.web.bind.annotation.RequestMethod;
37 28 import org.springframework.web.bind.annotation.RequestParam;
38 29 import org.springframework.web.bind.annotation.ResponseBody;
39 30  
  31 +import com.googlecode.genericdao.search.SearchResult;
  32 +
40 33 import br.com.centralit.api.model.MyMensagemRetorno;
41 34 import br.com.centralit.api.model.MyRetornoStatus;
42 35 import br.com.centralit.api.model.Transferencia;
... ... @@ -62,6 +55,16 @@ import br.com.centralit.framework.util.UtilColecao;
62 55 import br.com.centralit.framework.util.UtilDataBase;
63 56 import br.com.centralit.framework.util.UtilObjeto;
64 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 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 339 */
337 340 @RequestMapping(value = "/filtrarTransferencias", method = RequestMethod.POST, produces = "application/json")
338 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 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 39 {type: 'date', field: 'referenciaVigente'}]
40 40 };
41 41  
  42 + $scope.filtrarCustomizado = false;
  43 +
42 44 // ABRE TRANSFERENCIA SELECIONADA
43 45 $scope.abrirTransferencia = function(edit){
44 46 var transferencia = $scope.transferenciaChecked;
... ... @@ -130,19 +132,20 @@ citApp.controller(&#39;TransferenciaListController&#39;, [&#39;$scope&#39;, &#39;$filter&#39;, &#39;$transla
130 132 $scope.filtrarTransferencias = function() {
131 133 $scope.setLoadingGet(true);
132 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 136 return TransferenciaRepository.filtrarTransferencias($scope.transferenciaVH).then(function(result){
140 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 150 } else {
148 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 157  
155 158 $scope.limparModalBuscaTransferencia = function() {
156 159 $scope.transferenciaVH = { intervaloNumeroPatrimonial : false};
  160 + $scope.filtrarCustomizado = false;
157 161 };
158 162  
159 163 $scope.findEstruturaGestora = function(value) {
... ...
citgrp-patrimonio-web/src/main/webapp/html/transferencia/transferenciaList.html
... ... @@ -56,6 +56,6 @@
56 56 </div>
57 57  
58 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 61 </div><!-- .page-content -->
62 62 \ No newline at end of file
... ...