/** * Si está habilitada la actualización de la persona mediante el componente de persona del MINSA * se actualizan municipio, comunidad y dirección de residencia * * @param municipioResidencia nuevo municipio * @param comunidadResidencia nueva comunidad * @param direccionResidencia nueva dirección * @param personaId persona a actualizar * @param idNotificacion de la persona * @param request con datos de autenticación * @return resultado de la acción * @throws Exception */ @RequestMapping( value = "updatePerson", method = RequestMethod.GET, consumes = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity<String> updatePerson( @RequestParam(value = "municipioResidencia", required = false) String municipioResidencia, @RequestParam(value = "comunidadResidencia", required = false) String comunidadResidencia, @RequestParam(value = "direccionResidencia", required = false) String direccionResidencia, @RequestParam(value = "personaId", required = false) Integer personaId, @RequestParam(value = "idNotificacion", required = false) String idNotificacion, HttpServletRequest request) throws Exception { logger.debug("Actualizando datos persona"); SisPersona pers = new SisPersona(); InfoResultado infoResultado; if (personaId != null) { pers = personaService.getPersona(personaId); pers.setMunicipioResidencia( divisionPoliticaService.getDivisionPolitiacaByCodNacional(municipioResidencia)); pers.setComunidadResidencia(comunidadesService.getComunidad(comunidadResidencia)); pers.setDireccionResidencia(direccionResidencia); if (ConstantsSecurity.ENABLE_PERSON_COMPONENT) { Persona persona = personaService.ensamblarObjetoPersona(pers); try { personaService.iniciarTransaccion(); infoResultado = personaService.guardarPersona( persona, seguridadService.obtenerNombreUsuario(request)); if (infoResultado.isOk() && infoResultado.getObjeto() != null) { updateNotificacion(idNotificacion, pers); } else throw new Exception( infoResultado.getMensaje() + "----" + infoResultado.getMensajeDetalle()); personaService.commitTransaccion(); } catch (Exception ex) { logger.error(ex.getMessage(), ex); ex.printStackTrace(); try { personaService.rollbackTransaccion(); } catch (Exception e) { e.printStackTrace(); } throw new Exception(ex); } finally { try { personaService.remover(); } catch (Exception e) { e.printStackTrace(); } } } else { updateNotificacion(idNotificacion, pers); } } return createJsonResponse(pers); }