package gcom.cadastro.atualizacaocadastral.command; import gcom.atualizacaocadastral.IControladorAtualizacaoCadastral; import gcom.cadastro.atualizacaocadastral.validador.ValidadorTamanhoLinhaImovelCommand; import gcom.cadastro.endereco.LogradouroTipo; import gcom.cadastro.imovel.IRepositorioImovel; import gcom.util.ControladorUtilLocal; import gcom.util.ParserUtil; import java.util.Map; import org.apache.commons.lang.StringUtils; public class ParseImovelCommand extends AbstractAtualizacaoCadastralCommand { private IControladorAtualizacaoCadastral controladorAtualizacaoCadastral; public ParseImovelCommand(ParserUtil parser, ControladorUtilLocal controladorUtil, IControladorAtualizacaoCadastral controladorAtualizacaoCadastral, IRepositorioImovel repositorioImovel){ super(parser); this.controladorUtil = controladorUtil; this.controladorAtualizacaoCadastral = controladorAtualizacaoCadastral; this.repositorioImovel = repositorioImovel; } public void execute(AtualizacaoCadastral atualizacao) throws Exception { Map<String, String> linha = atualizacao.getImovelAtual().getLinhaImovel(); AtualizacaoCadastralImovel imovel = atualizacao.getImovelAtual(); new ValidadorTamanhoLinhaImovelCommand(parser, imovel, linha).execute(); if(!imovel.isErroLayout()) { linha.put("matricula", parser.obterDadoParserTrim(9)); verificaImovelNovo(atualizacao); linha.put("tipoOperacao", parser.obterDadoParserTrim(1)); linha.put("codigoCliente", parser.obterDadoParser(30).trim()); linha.put("inscricao", parser.obterDadoParser(17).trim()); linha.put("rota", parser.obterDadoParser(2).trim()); linha.put("face", parser.obterDadoParser(2).trim()); linha.put("codigoMunicipio", parser.obterDadoParser(8).trim()); String numeroIPTU = parser.obterDadoParser(31).trim(); linha.put("numeroIPTU", numeroIPTU.trim().equals("") ? null : numeroIPTU); linha.put("numeroCelpa", parser.obterDadoParser(20).trim()); linha.put("numeroPontosUteis", parser.obterDadoParser(5).trim()); linha.put("numeroOcupantes", parser.obterDadoParser(5).trim()); String idTipoLogradouroImovel = parser.obterDadoParser(2).trim(); linha.put("idTipoLogradouroImovel", idTipoLogradouroImovel); if (StringUtils.isNotEmpty(idTipoLogradouroImovel) && StringUtils.isNumeric(idTipoLogradouroImovel) && Integer.valueOf(idTipoLogradouroImovel) > 0){ LogradouroTipo tipo = (LogradouroTipo) controladorUtil.obterPorId(LogradouroTipo.class, Integer.valueOf(idTipoLogradouroImovel)); linha.put("dsTipoLogradouroImovel", tipo.getDescricao()); } linha.put("logradouroImovel", parser.obterDadoParser(40).trim()); linha.put("numeroImovel", parser.obterDadoParser(5).trim()); linha.put("complementoImovel", parser.obterDadoParser(25).trim()); linha.put("bairro", parser.obterDadoParser(20).trim()); linha.put("cep", parser.obterDadoParser(8).trim()); linha.put("municipio", parser.obterDadoParser(15).trim()); linha.put("codigoLogradouro", parser.obterDadoParser(9).trim()); linha.put("subcategoriaR1", parser.obterDadoParser(3).trim()); linha.put("subcategoriaR2", parser.obterDadoParser(3).trim()); linha.put("subcategoriaR3", parser.obterDadoParser(3).trim()); linha.put("subcategoriaR4", parser.obterDadoParser(3).trim()); linha.put("subcategoriaC1", parser.obterDadoParser(3).trim()); linha.put("subcategoriaC2", parser.obterDadoParser(3).trim()); linha.put("subcategoriaC3", parser.obterDadoParser(3).trim()); linha.put("subcategoriaC4", parser.obterDadoParser(3).trim()); linha.put("subcategoriaP1", parser.obterDadoParser(3).trim()); linha.put("subcategoriaP2", parser.obterDadoParser(3).trim()); linha.put("subcategoriaP3", parser.obterDadoParser(3).trim()); linha.put("subcategoriaP4", parser.obterDadoParser(3).trim()); linha.put("subcategoriaI1", parser.obterDadoParser(3).trim()); linha.put("subcategoriaI2", parser.obterDadoParser(3).trim()); linha.put("subcategoriaI3", parser.obterDadoParser(3).trim()); linha.put("subcategoriaI4", parser.obterDadoParser(3).trim()); linha.put("fonteAbastecimento", parser.obterDadoParser(2).trim()); linha.put("areaConstruida", parser.obterDadoParserTrim(10)); linha.put("classeSocial", parser.obterDadoParserTrim(1)); linha.put("quantidadeAnimaisDomesticos", parser.obterDadoParserTrim(4)); linha.put("volCisterna", parser.obterDadoParserTrim(7)); linha.put("volPiscina", parser.obterDadoParserTrim(7)); linha.put("volCxDagua", parser.obterDadoParser(7)); linha.put("tipoUso", parser.obterDadoParserTrim(1)); linha.put("acessoHidrometro", parser.obterDadoParserTrim(1)); linha.put("tipoOcupanteCriancas", parser.obterDadoParserTrim(4)); linha.put("tipoOcupanteAdultos", parser.obterDadoParserTrim(4)); linha.put("tipoOcupanteIdosos", parser.obterDadoParserTrim(4)); linha.put("tipoOcupanteEmpregados", parser.obterDadoParserTrim(4)); linha.put("tipoOcupanteAlunos", parser.obterDadoParserTrim(4)); linha.put("tipoOcupanteCaes", parser.obterDadoParserTrim(4)); linha.put("tipoOcupanteOutros", parser.obterDadoParserTrim(4)); linha.put("quantidadeEconomiasSocial", parser.obterDadoParserTrim(3)); linha.put("quantidadeEconomiasOutros", parser.obterDadoParserTrim(3)); linha.put("percentualAbastecimento", parser.obterDadoParserTrim(3)); linha.put("latitude", parser.obterDadoParser(20).trim()); linha.put("longitude", parser.obterDadoParser(20).trim()); linha.put("data", parser.obterDadoParser(26).trim()); } } private void verificaImovelNovo(AtualizacaoCadastral atualizacao) throws Exception { Map<String, String> linha = atualizacao.getImovelAtual().getLinhaImovel(); String matricula = linha.get("matricula"); if (matriculaInvalida(matricula)){ matricula = String.valueOf(controladorAtualizacaoCadastral.recuperaValorSequenceImovelRetorno() + 1); linha.put("matricula", matricula); } } private boolean matriculaInvalida(String matricula){ return StringUtils.isEmpty(matricula) || !StringUtils.isNumeric(matricula) || Integer.parseInt(matricula) <=0; } }