/** * 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); }
/** * Actualiza una notificación de tipo Rotavirus * * @param idNotificacion de la notificación a actualizar * @param persona a quien pertenece la notificación * @throws Exception */ public void updateNotificacion(String idNotificacion, SisPersona persona) throws Exception { DaNotificacion noti; if (idNotificacion != null) { // DaNotificacion noti = daNotificacionService.getNotifById(idNotificacion); noti.setMunicipioResidencia(persona.getMunicipioResidencia()); noti.setDireccionResidencia(persona.getDireccionResidencia()); daNotificacionService.updateNotificacion(noti); } }
/** * Agrega una notificación de tipo Rotavirus * * @param json con los datos de la ficha * @param request con datos de autenticación * @return DaNotificacion agregada * @throws Exception */ public DaNotificacion guardarNotificacion(String json, HttpServletRequest request) throws Exception { logger.debug("Guardando Notificacion"); DaNotificacion noti = new DaNotificacion(); Integer personaId = null; Integer codSilaisAtencion = null; Integer codUnidadAtencion = null; String urgente = null; JsonObject jObjectJson = new Gson().fromJson(json, JsonObject.class); if (jObjectJson.get("personaId") != null && !jObjectJson.get("personaId").getAsString().isEmpty()) { personaId = jObjectJson.get("personaId").getAsInt(); } if (jObjectJson.get("codSilaisAtencion") != null && !jObjectJson.get("codSilaisAtencion").getAsString().isEmpty()) { codSilaisAtencion = jObjectJson.get("codSilaisAtencion").getAsInt(); } if (jObjectJson.get("codUnidadAtencion") != null && !jObjectJson.get("codUnidadAtencion").getAsString().isEmpty()) { codUnidadAtencion = jObjectJson.get("codUnidadAtencion").getAsInt(); } if (jObjectJson.get("urgente") != null && !jObjectJson.get("urgente").getAsString().isEmpty()) { urgente = jObjectJson.get("urgente").getAsString(); } if (personaId != null) { SisPersona persona = personaService.getPersona(personaId); noti.setPersona(persona); noti.setFechaRegistro(new Timestamp(new Date().getTime())); noti.setCodSilaisAtencion(entidadAdmonService.getSilaisByCodigo(codSilaisAtencion)); noti.setCodUnidadAtencion(unidadesService.getUnidadByCodigo(codUnidadAtencion)); long idUsuario = seguridadService.obtenerIdUsuario(request); noti.setUsuarioRegistro(usuarioService.getUsuarioById((int) idUsuario)); noti.setCodTipoNotificacion(catalogoService.getTipoNotificacion("TPNOTI|RTV")); noti.setMunicipioResidencia(persona.getMunicipioResidencia()); noti.setDireccionResidencia(persona.getDireccionResidencia()); noti.setUrgente(catalogoService.getRespuesta(urgente)); daNotificacionService.addNotification(noti); return noti; } else { throw new Exception(); } }