Commit 59b5055e27eab9ff1faaf01ecb6a27b104de36d8

Authored by Marcelo Garcia
1 parent ac6b87a1
Exists in master

#19 - Exibicao de validacoes em tela

documents/layouts_recadastramento/Layout_Retorno_Cadastro.xlsx
No preview for this file type
gcom/WEB-INF/cadastro/struts-config-CarregarDadosAtualizacaoCadastral.xml
@@ -18,7 +18,11 @@ @@ -18,7 +18,11 @@
18 <action 18 <action
19 type="gcom.gui.cadastro.CarregarDadosAtualizacaoCadastralAction" 19 type="gcom.gui.cadastro.CarregarDadosAtualizacaoCadastralAction"
20 validate="true" 20 validate="true"
21 - path="/carregarDadosAtualizacaoCadastralAction" /> 21 + path="/carregarDadosAtualizacaoCadastralAction">
  22 +
  23 + <forward name="CarregarDadosAtualizacaoCadastralAction"
  24 + path="/jsp/cadastro/carregar_dados_atualizacao_cadastral.jsp" />
  25 + </action>
22 26
23 </action-mappings> 27 </action-mappings>
24 28
gcom/jsp/cadastro/carregar_dados_atualizacao_cadastral.jsp
@@ -148,6 +148,53 @@ @@ -148,6 +148,53 @@
148 </table> 148 </table>
149 </td> 149 </td>
150 </tr> 150 </tr>
  151 +
  152 +
  153 + <logic:present name="colecaoErrosCadastro">
  154 + <tr>
  155 + <td colspan="2">
  156 + <strong>
  157 + <font color="#FF0000">Arquivo de atualizaç&atilde;o cadastral possui erros</font>
  158 + </strong>
  159 + </td>
  160 + </tr>
  161 + <tr>
  162 + <td colspan="2">
  163 + <div style="width: 100%; height: 100%; overflow: auto;">
  164 + <table width="100%" bgcolor="#99CCFF">
  165 + <tr bordercolor="#FFFFFF" bgcolor="#90c7fc">
  166 + <td width="140"> Matr&iacute;cula do im&oacute;vel</td>
  167 + <td> Descri&ccedil;&atilde;o do erro </td>
  168 + </tr>
  169 + <% String cor = "#cbe5fe";%>
  170 + <logic:iterate name="colecaoErrosCadastro" id="element">
  171 + <% if (cor.equalsIgnoreCase("#cbe5fe")){
  172 + cor = "#FFFFFF";%>
  173 + <tr bgcolor="#FFFFFF" height="18">
  174 + <%} else{
  175 + cor = "#cbe5fe";%>
  176 + <tr bgcolor="#cbe5fe" height="18">
  177 + <%}%>
  178 +
  179 + <td><bean:write name="element" property="key"/></td>
  180 + <td>
  181 + <table>
  182 + <logic:iterate name="element" property="value" id="erro">
  183 + <tr>
  184 + <td><bean:write name="erro"/></td>
  185 + </tr>
  186 + </logic:iterate>
  187 +
  188 + </table>
  189 + </td>
  190 + </tr>
  191 + </logic:iterate>
  192 + </table>
  193 + </div>
  194 + </td>
  195 + </tr>
  196 + </logic:present>
  197 +
151 </table> 198 </table>
152 <p class="style1">&nbsp;</p> 199 <p class="style1">&nbsp;</p>
153 </td> 200 </td>
gcom/jsp/util/rodape.jsp
@@ -16,7 +16,7 @@ @@ -16,7 +16,7 @@
16 </logic:notPresent> 16 </logic:notPresent>
17 </td> 17 </td>
18 18
19 - <td align="right">Vers&atilde;o: 5.1.1.57 (Batch) 22/01/2014 - 8:38:57 </td> 19 + <td align="right">Vers&atilde;o: 5.1.1.57 (Batch) 22/01/2014 - 16:25:20 </td>
20 </tr> 20 </tr>
21 </table> 21 </table>
22 </td> 22 </td>
src/gcom/cadastro/ControladorCadastro.java
@@ -7751,7 +7751,7 @@ public class ControladorCadastro implements SessionBean { @@ -7751,7 +7751,7 @@ public class ControladorCadastro implements SessionBean {
7751 ParserUtil parserTipo = new ParserUtil(line); 7751 ParserUtil parserTipo = new ParserUtil(line);
7752 String registroTipo = parserTipo.obterDadoParserTrim(2); 7752 String registroTipo = parserTipo.obterDadoParserTrim(2);
7753 7753
7754 - String conteudo = line.substring(2); 7754 + String conteudo = new String(line.substring(2).getBytes(), "UTF-8");
7755 ParserUtil parserConteudo = new ParserUtil(conteudo); 7755 ParserUtil parserConteudo = new ParserUtil(conteudo);
7756 7756
7757 if ("00".equals(registroTipo)) { 7757 if ("00".equals(registroTipo)) {
src/gcom/cadastro/atualizacaocadastral/command/AtualizacaoCadastral.java
@@ -15,6 +15,8 @@ public class AtualizacaoCadastral { @@ -15,6 +15,8 @@ public class AtualizacaoCadastral {
15 15
16 private AtualizacaoCadastralImovel imovelAtual = new AtualizacaoCadastralImovel(); 16 private AtualizacaoCadastralImovel imovelAtual = new AtualizacaoCadastralImovel();
17 17
  18 + private boolean erroCadastro = false;
  19 +
18 public ArquivoTextoAtualizacaoCadastral getArquivoTexto() { 20 public ArquivoTextoAtualizacaoCadastral getArquivoTexto() {
19 return arquivoTexto; 21 return arquivoTexto;
20 } 22 }
@@ -32,7 +34,7 @@ public class AtualizacaoCadastral { @@ -32,7 +34,7 @@ public class AtualizacaoCadastral {
32 } 34 }
33 35
34 public AtualizacaoCadastralImovel novaAtualizacaoImovel(){ 36 public AtualizacaoCadastralImovel novaAtualizacaoImovel(){
35 - AtualizacaoCadastralImovel imovel = new AtualizacaoCadastralImovel(); 37 + AtualizacaoCadastralImovel imovel = new AtualizacaoCadastralImovel(this);
36 imovelAtual = imovel; 38 imovelAtual = imovel;
37 imoveis.add(imovel); 39 imoveis.add(imovel);
38 return imovel; 40 return imovel;
@@ -41,4 +43,16 @@ public class AtualizacaoCadastral { @@ -41,4 +43,16 @@ public class AtualizacaoCadastral {
41 public AtualizacaoCadastralImovel getImovelAtual(){ 43 public AtualizacaoCadastralImovel getImovelAtual(){
42 return imovelAtual; 44 return imovelAtual;
43 } 45 }
44 -} 46 +
  47 + public List<AtualizacaoCadastralImovel> getAtualizacoesImovel(){
  48 + return imoveis;
  49 + }
  50 +
  51 + public boolean existeErroNoCadastro() {
  52 + return erroCadastro;
  53 + }
  54 +
  55 + public void cadastroComErro() {
  56 + this.erroCadastro = true;
  57 + }
  58 +}
45 \ No newline at end of file 59 \ No newline at end of file
src/gcom/cadastro/atualizacaocadastral/command/AtualizacaoCadastralImovel.java
@@ -22,11 +22,19 @@ public class AtualizacaoCadastralImovel { @@ -22,11 +22,19 @@ public class AtualizacaoCadastralImovel {
22 22
23 private List<String> mensagensErro = new ArrayList<String>(); 23 private List<String> mensagensErro = new ArrayList<String>();
24 24
25 - private boolean erroCadastro = false;  
26 -  
27 private DadoAtualizacaoImovel dadosImovel = new DadoAtualizacaoImovel(); 25 private DadoAtualizacaoImovel dadosImovel = new DadoAtualizacaoImovel();
28 26
29 private List<DadoAtualizacaoRamoAtividade> dadosRamoAtividade = new ArrayList<DadoAtualizacaoRamoAtividade>(); 27 private List<DadoAtualizacaoRamoAtividade> dadosRamoAtividade = new ArrayList<DadoAtualizacaoRamoAtividade>();
  28 +
  29 + private AtualizacaoCadastral atualizacaoArquivo;
  30 +
  31 + public AtualizacaoCadastralImovel(){
  32 +
  33 + }
  34 +
  35 + public AtualizacaoCadastralImovel(AtualizacaoCadastral atualizacaoArquivo) {
  36 + this.atualizacaoArquivo = atualizacaoArquivo;
  37 + }
30 38
31 public List<String> getNomesImagens() { 39 public List<String> getNomesImagens() {
32 return nomesImagens; 40 return nomesImagens;
@@ -105,7 +113,7 @@ public class AtualizacaoCadastralImovel { @@ -105,7 +113,7 @@ public class AtualizacaoCadastralImovel {
105 } 113 }
106 114
107 public boolean cadastroInvalido() { 115 public boolean cadastroInvalido() {
108 - return erroCadastro; 116 + return mensagensErro.size() > 0;
109 } 117 }
110 118
111 public List<String> getMensagensErro() { 119 public List<String> getMensagensErro() {
@@ -113,7 +121,7 @@ public class AtualizacaoCadastralImovel { @@ -113,7 +121,7 @@ public class AtualizacaoCadastralImovel {
113 } 121 }
114 122
115 public void addMensagemErro(String erro) { 123 public void addMensagemErro(String erro) {
116 - erroCadastro = true; 124 + atualizacaoArquivo.cadastroComErro();
117 mensagensErro.add(erro); 125 mensagensErro.add(erro);
118 } 126 }
119 127
src/gcom/cadastro/atualizacaocadastral/command/ParseClienteCommand.java
@@ -240,16 +240,16 @@ public class ParseClienteCommand extends AbstractAtualizacaoCadastralCommand { @@ -240,16 +240,16 @@ public class ParseClienteCommand extends AbstractAtualizacaoCadastralCommand {
240 atualizacao.getImovelAtual().addMensagemErro("Nome de proprietário inválido."); 240 atualizacao.getImovelAtual().addMensagemErro("Nome de proprietário inválido.");
241 } 241 }
242 242
243 - if (Util.cpfCnpjInvalido(linha.get("cnpjCpfUsuario"))){ 243 + if (StringUtils.isNotEmpty(linha.get("cnpjCpfUsuario")) && Util.cpfCnpjInvalido(linha.get("cnpjCpfUsuario"))){
244 atualizacao.getImovelAtual().addMensagemErro("CPF/CNPJ de usuário inválido."); 244 atualizacao.getImovelAtual().addMensagemErro("CPF/CNPJ de usuário inválido.");
245 limparDadosUsuario(linha); 245 limparDadosUsuario(linha);
246 } 246 }
247 247
248 - if (Util.cpfCnpjInvalido(linha.get("cnpjCpfProprietario"))){ 248 + if (StringUtils.isNotEmpty(linha.get("cnpjCpfProprietario")) && Util.cpfCnpjInvalido(linha.get("cnpjCpfProprietario"))){
249 atualizacao.getImovelAtual().addMensagemErro("CPF/CNPJ de proprietário inválido."); 249 atualizacao.getImovelAtual().addMensagemErro("CPF/CNPJ de proprietário inválido.");
250 } 250 }
251 251
252 - if (Util.cpfCnpjInvalido(linha.get("cnpjCpfResponsavel"))){ 252 + if (StringUtils.isNotEmpty(linha.get("cnpjCpfResponsavel")) && Util.cpfCnpjInvalido(linha.get("cnpjCpfResponsavel"))){
253 atualizacao.getImovelAtual().addMensagemErro("CPF/CNPJ de responsável inválido."); 253 atualizacao.getImovelAtual().addMensagemErro("CPF/CNPJ de responsável inválido.");
254 } 254 }
255 255
src/gcom/cadastro/atualizacaocadastral/command/ParseImovelCommand.java
@@ -2,11 +2,13 @@ package gcom.cadastro.atualizacaocadastral.command; @@ -2,11 +2,13 @@ package gcom.cadastro.atualizacaocadastral.command;
2 2
3 import gcom.cadastro.IRepositorioCadastro; 3 import gcom.cadastro.IRepositorioCadastro;
4 import gcom.cadastro.cliente.ControladorClienteLocal; 4 import gcom.cadastro.cliente.ControladorClienteLocal;
  5 +import gcom.cadastro.endereco.LogradouroTipo;
5 import gcom.cadastro.imovel.ControladorImovelLocal; 6 import gcom.cadastro.imovel.ControladorImovelLocal;
6 import gcom.cadastro.imovel.IRepositorioImovel; 7 import gcom.cadastro.imovel.IRepositorioImovel;
7 import gcom.cadastro.imovel.ImagemAtualizacaoCadastral; 8 import gcom.cadastro.imovel.ImagemAtualizacaoCadastral;
8 import gcom.seguranca.transacao.ControladorTransacaoLocal; 9 import gcom.seguranca.transacao.ControladorTransacaoLocal;
9 import gcom.util.ControladorUtilLocal; 10 import gcom.util.ControladorUtilLocal;
  11 +import gcom.util.ErroRepositorioException;
10 import gcom.util.ParserUtil; 12 import gcom.util.ParserUtil;
11 13
12 import java.awt.image.BufferedImage; 14 import java.awt.image.BufferedImage;
@@ -17,6 +19,8 @@ import java.util.Map; @@ -17,6 +19,8 @@ import java.util.Map;
17 19
18 import javax.imageio.ImageIO; 20 import javax.imageio.ImageIO;
19 21
  22 +import org.apache.commons.lang.StringUtils;
  23 +
20 public class ParseImovelCommand extends AbstractAtualizacaoCadastralCommand { 24 public class ParseImovelCommand extends AbstractAtualizacaoCadastralCommand {
21 25
22 public ParseImovelCommand(ParserUtil parser, IRepositorioCadastro repositorioCadastro, ControladorUtilLocal controladorUtil, 26 public ParseImovelCommand(ParserUtil parser, IRepositorioCadastro repositorioCadastro, ControladorUtilLocal controladorUtil,
@@ -166,30 +170,56 @@ public class ParseImovelCommand extends AbstractAtualizacaoCadastralCommand { @@ -166,30 +170,56 @@ public class ParseImovelCommand extends AbstractAtualizacaoCadastralCommand {
166 validaCamposImovel(atualizacao); 170 validaCamposImovel(atualizacao);
167 } 171 }
168 172
169 - private void validaCamposImovel(AtualizacaoCadastral atualizacao) {  
170 - Map<String, String> linha = atualizacao.getImovelAtual().getLinhaImovel();  
171 - if (linha.get("latitude") == null || linha.get("longitude") == null){  
172 - atualizacao.getImovelAtual().addMensagemErro("Coordenadas geográficas inválidas"); 173 + private void validaCamposImovel(AtualizacaoCadastral atualizacao) throws Exception {
  174 + AtualizacaoCadastralImovel imovel = atualizacao.getImovelAtual();
  175 + Map<String, String> linha = imovel.getLinhaImovel();
  176 +
  177 + if (StringUtils.isEmpty(linha.get("latitude"))){
  178 + imovel.addMensagemErro("Latitude inválida");
  179 + }else{
  180 + if (StringUtils.containsOnly(linha.get("latitude").trim(), new char[]{'0'})){
  181 + imovel.addMensagemErro("Latitude inválida");
  182 + }
  183 + }
  184 +
  185 + if (StringUtils.isEmpty(linha.get("longitude"))){
  186 + imovel.addMensagemErro("Longitude inválida");
  187 + }
  188 + else{
  189 + if (StringUtils.containsOnly(linha.get("longitude").trim(), new char[]{'0'})){
  190 + imovel.addMensagemErro("Longitude inválida");
  191 + }
173 } 192 }
174 193
175 boolean existeEconomia = false; 194 boolean existeEconomia = false;
176 for(String key: linha.keySet()){ 195 for(String key: linha.keySet()){
177 if (key.contains("subcategoria")){ 196 if (key.contains("subcategoria")){
178 String valor = linha.get(key).trim(); 197 String valor = linha.get(key).trim();
179 - if (valor != null && valor.trim().length() > 0 && valor.replace("0", "").trim().length() > 0){ 198 + if (StringUtils.isNotEmpty(valor) && !StringUtils.containsOnly(valor.trim(), new char[]{'0'})){
180 existeEconomia = true; 199 existeEconomia = true;
181 200
182 char codigo = key.replace("subcategoria", "").charAt(0); 201 char codigo = key.replace("subcategoria", "").charAt(0);
183 TipoEconomia tipo = TipoEconomia.getByCodigo(codigo); 202 TipoEconomia tipo = TipoEconomia.getByCodigo(codigo);
184 - if (!atualizacao.getImovelAtual().getDadosImovel().contemTipoEconomia(tipo)){  
185 - atualizacao.getImovelAtual().getDadosImovel().addTipoEconomia(tipo); 203 + if (!imovel.getDadosImovel().contemTipoEconomia(tipo)){
  204 + imovel.getDadosImovel().addTipoEconomia(tipo);
186 } 205 }
187 } 206 }
188 } 207 }
189 } 208 }
190 209
191 if (!existeEconomia){ 210 if (!existeEconomia){
192 - atualizacao.getImovelAtual().addMensagemErro("Imóvel deve ter associado ao menos uma economia."); 211 + imovel.addMensagemErro("Imóvel deve possuir ao menos uma economia.");
  212 + }
  213 +
  214 + String tipoLogradouro = linha.get("idTipoLogradouroImovel");
  215 +
  216 + if (StringUtils.isEmpty(tipoLogradouro)){
  217 + imovel.addMensagemErro("Tipo do logradouro do imóvel inválido.");
  218 + }else{
  219 + LogradouroTipo tipo = repositorioImovel.pesquisarTipoLogradouro(Integer.valueOf(tipoLogradouro));
  220 + if (tipo == null){
  221 + imovel.addMensagemErro("Tipo do logradouro do imóvel inexistente.");
  222 + }
193 } 223 }
194 } 224 }
195 } 225 }
src/gcom/cadastro/imovel/IRepositorioImovel.java
@@ -86,6 +86,7 @@ import gcom.cadastro.empresa.Empresa; @@ -86,6 +86,7 @@ import gcom.cadastro.empresa.Empresa;
86 import gcom.cadastro.endereco.Cep; 86 import gcom.cadastro.endereco.Cep;
87 import gcom.cadastro.endereco.LogradouroBairro; 87 import gcom.cadastro.endereco.LogradouroBairro;
88 import gcom.cadastro.endereco.LogradouroCep; 88 import gcom.cadastro.endereco.LogradouroCep;
  89 +import gcom.cadastro.endereco.LogradouroTipo;
89 import gcom.cadastro.geografico.Municipio; 90 import gcom.cadastro.geografico.Municipio;
90 import gcom.cadastro.imovel.bean.ImovelSubcategoriaHelper; 91 import gcom.cadastro.imovel.bean.ImovelSubcategoriaHelper;
91 import gcom.cadastro.tarifasocial.TarifaSocialCarta; 92 import gcom.cadastro.tarifasocial.TarifaSocialCarta;
@@ -3301,4 +3302,6 @@ public interface IRepositorioImovel { @@ -3301,4 +3302,6 @@ public interface IRepositorioImovel {
3301 public ImovelControleAtualizacaoCadastral pesquisarImovelControleAtualizacaoCadastral(Integer idImovel) throws ErroRepositorioException; 3302 public ImovelControleAtualizacaoCadastral pesquisarImovelControleAtualizacaoCadastral(Integer idImovel) throws ErroRepositorioException;
3302 3303
3303 public Collection<Integer> pesquisarIdImoveisAprovados() throws ErroRepositorioException; 3304 public Collection<Integer> pesquisarIdImoveisAprovados() throws ErroRepositorioException;
  3305 +
  3306 + public LogradouroTipo pesquisarTipoLogradouro(Integer idTipoLogradouro) throws ErroRepositorioException;
3304 } 3307 }
3305 \ No newline at end of file 3308 \ No newline at end of file
src/gcom/cadastro/imovel/RepositorioImovelHBM.java
@@ -90,8 +90,10 @@ import gcom.cadastro.cliente.RamoAtividade; @@ -90,8 +90,10 @@ import gcom.cadastro.cliente.RamoAtividade;
90 import gcom.cadastro.cliente.bean.ClienteImovelEconomiaHelper; 90 import gcom.cadastro.cliente.bean.ClienteImovelEconomiaHelper;
91 import gcom.cadastro.empresa.Empresa; 91 import gcom.cadastro.empresa.Empresa;
92 import gcom.cadastro.endereco.Cep; 92 import gcom.cadastro.endereco.Cep;
  93 +import gcom.cadastro.endereco.Logradouro;
93 import gcom.cadastro.endereco.LogradouroBairro; 94 import gcom.cadastro.endereco.LogradouroBairro;
94 import gcom.cadastro.endereco.LogradouroCep; 95 import gcom.cadastro.endereco.LogradouroCep;
  96 +import gcom.cadastro.endereco.LogradouroTipo;
95 import gcom.cadastro.geografico.Municipio; 97 import gcom.cadastro.geografico.Municipio;
96 import gcom.cadastro.imovel.bean.FiltrarImovelOutrosCriteriosHelper; 98 import gcom.cadastro.imovel.bean.FiltrarImovelOutrosCriteriosHelper;
97 import gcom.cadastro.imovel.bean.ImovelEconomiaHelper; 99 import gcom.cadastro.imovel.bean.ImovelEconomiaHelper;
@@ -31523,4 +31525,21 @@ public class RepositorioImovelHBM implements IRepositorioImovel { @@ -31523,4 +31525,21 @@ public class RepositorioImovelHBM implements IRepositorioImovel {
31523 HibernateUtil.closeSession(session); 31525 HibernateUtil.closeSession(session);
31524 } 31526 }
31525 } 31527 }
  31528 +
  31529 + public LogradouroTipo pesquisarTipoLogradouro(Integer idTipoLogradouro) throws ErroRepositorioException{
  31530 + Session session = HibernateUtil.getSession();
  31531 + try {
  31532 + String consulta = "SELECT tipo "
  31533 + + "FROM LogradouroTipo tipo "
  31534 + + "WHERE tipo.id = :idTipo ";
  31535 +
  31536 + return (LogradouroTipo) session.createQuery(consulta)
  31537 + .setInteger("idTipo", idTipoLogradouro).uniqueResult();
  31538 + }catch (HibernateException e) {
  31539 + throw new ErroRepositorioException("Erro no Hibernate");
  31540 + } finally {
  31541 + HibernateUtil.closeSession(session);
  31542 + }
  31543 + }
  31544 +
31526 } 31545 }
src/gcom/gui/cadastro/CarregarDadosAtualizacaoCadastralAction.java
1 package gcom.gui.cadastro; 1 package gcom.gui.cadastro;
2 2
3 import gcom.cadastro.atualizacaocadastral.command.AtualizacaoCadastral; 3 import gcom.cadastro.atualizacaocadastral.command.AtualizacaoCadastral;
  4 +import gcom.cadastro.atualizacaocadastral.command.AtualizacaoCadastralImovel;
4 import gcom.fachada.Fachada; 5 import gcom.fachada.Fachada;
5 import gcom.gui.ActionServletException; 6 import gcom.gui.ActionServletException;
6 import gcom.gui.GcomAction; 7 import gcom.gui.GcomAction;
@@ -13,14 +14,17 @@ import java.io.FileOutputStream; @@ -13,14 +14,17 @@ import java.io.FileOutputStream;
13 import java.io.FileReader; 14 import java.io.FileReader;
14 import java.io.IOException; 15 import java.io.IOException;
15 import java.util.ArrayList; 16 import java.util.ArrayList;
  17 +import java.util.HashMap;
16 import java.util.Iterator; 18 import java.util.Iterator;
17 import java.util.List; 19 import java.util.List;
  20 +import java.util.Map;
18 import java.util.zip.ZipEntry; 21 import java.util.zip.ZipEntry;
19 import java.util.zip.ZipInputStream; 22 import java.util.zip.ZipInputStream;
20 23
21 import javax.ejb.EJBException; 24 import javax.ejb.EJBException;
22 import javax.servlet.http.HttpServletRequest; 25 import javax.servlet.http.HttpServletRequest;
23 import javax.servlet.http.HttpServletResponse; 26 import javax.servlet.http.HttpServletResponse;
  27 +import javax.servlet.http.HttpSession;
24 28
25 import org.apache.commons.fileupload.DiskFileUpload; 29 import org.apache.commons.fileupload.DiskFileUpload;
26 import org.apache.commons.fileupload.FileItem; 30 import org.apache.commons.fileupload.FileItem;
@@ -93,6 +97,25 @@ public class CarregarDadosAtualizacaoCadastralAction extends GcomAction { @@ -93,6 +97,25 @@ public class CarregarDadosAtualizacaoCadastralAction extends GcomAction {
93 } 97 }
94 98
95 AtualizacaoCadastral atualizacao = Fachada.getInstancia().carregarImovelAtualizacaoCadastral(buffer, imagens); 99 AtualizacaoCadastral atualizacao = Fachada.getInstancia().carregarImovelAtualizacaoCadastral(buffer, imagens);
  100 +
  101 + if (atualizacao.existeErroNoCadastro()){
  102 + HttpSession sessao = httpServletRequest.getSession(false);
  103 + Map<String, List<String>> mapErros = new HashMap<String, List<String>>();
  104 +
  105 + for (AtualizacaoCadastralImovel imovel: atualizacao.getAtualizacoesImovel()){
  106 + List<String> erros = mapErros.get(String.valueOf(imovel.getMatricula()));
  107 + if (erros == null){
  108 + erros = new ArrayList<String>();
  109 + mapErros.put(String.valueOf(imovel.getMatricula()), erros);
  110 + }
  111 + erros.addAll(imovel.getMensagensErro());
  112 + }
  113 +
  114 + httpServletRequest.setAttribute("colecaoErrosCadastro", mapErros);
  115 +
  116 + retorno = actionMapping.findForward("CarregarDadosAtualizacaoCadastralAction");
  117 + }
  118 +
96 zipInputStream.close(); 119 zipInputStream.close();
97 }catch (Exception e) { 120 }catch (Exception e) {
98 if (e instanceof EJBException){ 121 if (e instanceof EJBException){