Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package gob.dp.simco.registro.controller; import gob.dp.simco.registro.vo.ReporteCasoVO; import gob.dp.simco.administracion.parametro.constantes.InforVO; import gob.dp.simco.administracion.parametro.service.CatalogoService; import gob.dp.simco.administracion.seguridad.bean.FiltroUsuario; import gob.dp.simco.administracion.seguridad.controller.LoginController; import gob.dp.simco.administracion.seguridad.controller.MenuController; import gob.dp.simco.administracion.seguridad.entity.Usuario; import gob.dp.simco.administracion.seguridad.service.UsuarioService; import gob.dp.simco.comun.entity.Departamento; import gob.dp.simco.comun.entity.Distrito; import gob.dp.simco.comun.entity.Provincia; import gob.dp.simco.comun.service.UbigeoService; import gob.dp.simco.registro.bean.AdjuntiaDefensorialVO; import gob.dp.simco.registro.bean.FiltroParametro; import gob.dp.simco.comun.ConstantesUtil; import gob.dp.simco.comun.Mail; import gob.dp.simco.comun.mb.AbstractManagedBean; import gob.dp.simco.registro.entity.Actividad; import gob.dp.simco.registro.entity.ActividadCaso; import gob.dp.simco.registro.entity.Actor; import gob.dp.simco.registro.entity.Caso; import gob.dp.simco.registro.entity.CasoActor; import gob.dp.simco.registro.entity.CasoRegion; import gob.dp.simco.registro.entity.Parametro; import gob.dp.simco.registro.entity.PrimerNivel; import gob.dp.simco.registro.entity.SegundoNivel; import gob.dp.simco.registro.entity.TercerNivel; import gob.dp.simco.registro.service.ActividadCasoService; import gob.dp.simco.registro.service.ActividadService; import gob.dp.simco.registro.service.ActorService; import gob.dp.simco.registro.service.CasoActorService; import gob.dp.simco.registro.service.CasoRegionService; import gob.dp.simco.registro.service.CasoService; import gob.dp.simco.registro.service.NivelService; import gob.dp.simco.registro.service.ParametroService; import gob.dp.simco.registro.type.MesEnum; import gob.dp.simco.registro.type.TipologiaCasoType; import gob.dp.simco.registro.vo.ReporteActorVO; import gob.dp.simco.registro.vo.ReporteActuacionDefensorialVO; import java.io.IOException; import java.io.Serializable; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Objects; import javax.inject.Named; import javax.faces.context.FacesContext; import javax.faces.model.SelectItem; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; import net.sf.jasperreports.engine.JRException; import net.sf.jasperreports.engine.JRExporterParameter; import net.sf.jasperreports.engine.JasperExportManager; import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; import net.sf.jasperreports.engine.export.ooxml.JRDocxExporter; import org.apache.commons.lang3.StringUtils; import org.apache.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Scope; /** * * @author carlos */ @Named @Scope("session") public class CasoController extends AbstractManagedBean implements Serializable { private static final Logger log = Logger.getLogger(CasoController.class); private CasoBusquedaTemp casoBusquedaTemp; private String cadenaAdjuntiaAutocomplete; private Caso caso; private List<Caso> casos; private List<AdjuntiaDefensorialVO> listaAdjuntiasDefensoriales; private List<Actor> listaActoresXcaso; private List<Actividad> listaActividadesCaso; private List<Actividad> listaActividadesSinCaso; private List<Actividad> listaActividadesCasoAC; private List<Actividad> listaActividadesCasoAD; private List<CasoActor> listCasoActor; private Usuario usuarioSession; private int nroAcontecimiento = 0; private int nroActuacionesDefensoriales = 0; private boolean verTitulo = false; private List<SelectItem> listaDepartamento; private List<SelectItem> listaProvincia; private List<SelectItem> listaDistrito; private List<SelectItem> listaPrimerNivel; private List<SelectItem> listaSegundoNivel; private List<SelectItem> listaTercerNivel; private InforVO inforVO; JasperPrint jasperPrint; private CasoRegion casoRegion; private List<CasoRegion> listaCasoRegion; private Boolean esComisionadoRegistro; @Autowired private CasoService casoService; @Autowired private ParametroService parametroService; @Autowired private ActividadService actividadService; @Autowired private ActorService actorService; @Autowired private ActividadCasoService actividadCasoService; @Autowired private CasoActorService casoActorService; @Autowired private UbigeoService ubigeoService; @Autowired private NivelService nivelService; @Autowired private CatalogoService catalogoService; @Autowired private CasoRegionService casoRegionService; @Autowired private UsuarioService usuarioService; public String cargarPagina() { try { caso = new Caso(); casos = casoService.casoBuscar(caso); } catch (Exception ex) { caso = new Caso(); log.error(ex.getMessage()); } return "casoNuevo"; } public String cargarPaginaCasosSigues() { try { usuarioSession(); Caso c1 = new Caso(); casos = casoService.casoBuscar(c1); for (Caso c : casos) { FiltroUsuario u = new FiltroUsuario(); u.setCodigo(c.getUsuarioRegistro()); Usuario u1 = usuarioService.consultarUsuario(u); c.setNombreComisionadoRegistro( u1.getNombre() + " " + u1.getApellidoPaterno() + " " + u1.getApellidoMaterno()); } } catch (Exception ex) { log.error(ex.getMessage()); } return "casoSigues"; } public String cargarFichaCaso(Caso c) { caso = new Caso(); caso = c; generarCadenaAdjuntia(); return "casoFicha"; } public String cargarCasoFicha() { FacesContext context = FacesContext.getCurrentInstance(); ActorController actorController = (ActorController) context.getELContext().getELResolver() .getValue(context.getELContext(), null, "actorController"); listaAdjuntiasDefensoriales = new ArrayList<>(); listaActividadesCaso = null; caso = new Caso(); casoRegion = new CasoRegion(); listaActividadesCasoAC = null; listaActividadesCasoAD = null; listCasoActor = null; nroAcontecimiento = 0; nroActuacionesDefensoriales = 0; listaActoresXcaso = null; generarCadenaAdjuntia(); actorController.cadenaActores(); cargarListaCasoRegionLimpiar(); cargarInfo(); setearEsComosionadoRegistro(); return "casoNuevo"; } private void setearEsComosionadoRegistro() { esComisionadoRegistro = StringUtils.equals(usuarioSession.getCodigo(), caso.getUsuarioRegistro()); } public String setearFichaCaso(Caso c) { FacesContext context = FacesContext.getCurrentInstance(); MenuController menuController = (MenuController) context.getELContext().getELResolver() .getValue(context.getELContext(), null, "menuController"); ActorController actorController = (ActorController) context.getELContext().getELResolver() .getValue(context.getELContext(), null, "actorController"); menuController.cargarPagina(27); try { setCaso(c); contarActividades(); if (StringUtils.isNotBlank(c.getAdjuntiaDefensorial())) { String[] adArray = c.getAdjuntiaDefensorial().split(";"); for (String adArray1 : adArray) { FiltroParametro fp = new FiltroParametro(); fp.setValorParametro(adArray1); fp.setCodigoPadreParametro(140); Parametro AD = parametroService.consultarParametroValor(fp); String nombreParametro = AD.getNombreParametro(); AdjuntiaDefensorialVO adjuntiaDefensorialVO = new AdjuntiaDefensorialVO(); adjuntiaDefensorialVO.setNombre(nombreParametro); adjuntiaDefensorialVO.setId(adArray1); listaAdjuntiasDefensoriales.add(adjuntiaDefensorialVO); } } setCaso(c); generarCadenaAdjuntia(); cargarNiveles(); actorController.cadenaActores(); cargarListaCasoRegion(); cargarInfo(); setearEsComosionadoRegistro(); } catch (Exception ex) { log.error(ex.getCause()); } return "casoNuevo"; } public boolean addRegion() { try { if (StringUtils.isNotBlank(casoRegion.getIdDepartamento()) && !StringUtils.equals(casoRegion.getIdDepartamento(), "0")) { casoRegion.setEstado("ACT"); casoRegion.setIdCaso(caso.getId()); casoRegionService.casoRegionInsertar(casoRegion); } else { msg.messageAlert("Debe de ingresar como minimo un departamento", null); return false; } if (StringUtils.isNotBlank(casoRegion.getIdDepartamento()) && !StringUtils.equals(casoRegion.getIdDepartamento(), "0")) { String depar = ubigeoService.departamentoOne(casoRegion.getIdDepartamento()).getDescripcion(); casoRegion.setNombreDepartamento(depar); } if (StringUtils.isNotBlank(casoRegion.getIdProvincia()) && !StringUtils.equals(casoRegion.getIdProvincia(), "0")) { Provincia p = new Provincia(); p.setIdDepartamento(casoRegion.getIdDepartamento()); p.setIdProvincia(casoRegion.getIdProvincia()); String prov = ubigeoService.provinciaOne(p).getDescripcion(); casoRegion.setNombreProvincia(prov); } if (StringUtils.isNotBlank(casoRegion.getIdDistrito()) && !StringUtils.equals(casoRegion.getIdDistrito(), "0")) { Distrito d = new Distrito(); d.setIdDepartamento(casoRegion.getIdDepartamento()); d.setIdProvincia(casoRegion.getIdProvincia()); d.setIdDistrito(casoRegion.getIdDistrito()); String dist = ubigeoService.distritoOne(d).getDescripcion(); casoRegion.setNombreDistrito(dist); } listaCasoRegion.add(casoRegion); casoRegion = new CasoRegion(); } catch (Exception e) { log.error(e); } return true; } private void updateListaRegion() { for (CasoRegion casoRe : listaCasoRegion) { casoRe.setIdCaso(caso.getId()); casoRegionService.casoRegionInsertar(casoRe); } } private void updateListasActividades() { if (listaActividadesCasoAD != null) for (Actividad a : listaActividadesCasoAD) { ActividadCaso ac = new ActividadCaso(); ac.setActividad(a); ac.setCaso(caso); ac.setEstado("ACT"); updateRelacionActividadCaso(a); actividadCasoService.actividadCasoInsertar(ac); } if (listaActividadesCasoAC != null) for (Actividad a : listaActividadesCasoAC) { ActividadCaso ac = new ActividadCaso(); ac.setActividad(a); ac.setCaso(caso); ac.setEstado("ACT"); updateRelacionActividadCaso(a); actividadCasoService.actividadCasoInsertar(ac); } } private void updateRelacionActividadCaso(Actividad a) { ActividadCaso ac = new ActividadCaso(); ac.setActividad(a); Caso c = new Caso(); c.setId(a.getIdCaso()); ac.setCaso(c); ac.setEstado("INA"); actividadCasoService.actividadesCasoUpdate(ac); } public void removeRegion(long idCasoRegion) { casoRegionService.casoRegionUpdate(idCasoRegion); cargarListaCasoRegion(); } public void ubigeoPrincipal(CasoRegion region) { try { caso.setIdDepartamento(region.getIdDepartamento()); caso.setIdProvincia(region.getIdProvincia()); caso.setIdDistrito(region.getIdDistrito()); for (CasoRegion cr : listaCasoRegion) { if (Objects.equals(cr.getId(), region.getId())) { cr.setPrincipal("A"); } else { cr.setPrincipal("I"); } } } catch (Exception ex) { log.error(ex); } } private void cargarListaCasoRegion() { try { listaCasoRegion = new ArrayList<>(); List<CasoRegion> list = casoRegionService.casoRegionBuscar(caso.getId()); for (CasoRegion cr : list) { if (StringUtils.isNotBlank(cr.getIdDepartamento()) && !StringUtils.equals(cr.getIdDepartamento(), "0")) { String depar = ubigeoService.departamentoOne(cr.getIdDepartamento()).getDescripcion(); cr.setNombreDepartamento(depar); } if (StringUtils.isNotBlank(cr.getIdProvincia()) && !StringUtils.equals(cr.getIdProvincia(), "0")) { Provincia p = new Provincia(); p.setIdDepartamento(cr.getIdDepartamento()); p.setIdProvincia(cr.getIdProvincia()); String prov = ubigeoService.provinciaOne(p).getDescripcion(); cr.setNombreProvincia(prov); } else { cr.setNombreProvincia(""); } if (StringUtils.isNotBlank(cr.getIdDistrito()) && !StringUtils.equals(cr.getIdDistrito(), "0")) { Distrito d = new Distrito(); d.setIdDepartamento(cr.getIdDepartamento()); d.setIdProvincia(cr.getIdProvincia()); d.setIdDistrito(cr.getIdDistrito()); String dist = ubigeoService.distritoOne(d).getDescripcion(); cr.setNombreDistrito(dist); } else { cr.setNombreDistrito(""); } } listaCasoRegion.addAll(list); casoRegion = new CasoRegion(); } catch (Exception e) { log.error(e); } } private void cargarListaCasoRegionLimpiar() { try { listaCasoRegion = new ArrayList<>(); casoRegion = new CasoRegion(); } catch (Exception e) { log.error(e); } } private void cargarInfo() { inforVO = new InforVO(); inforVO.setListaEstadoCaso(catalogoService.parametroPorPadre(120)); inforVO.setListaFaseCaso(catalogoService.parametroPorPadre(210)); inforVO.setListaTipoCaso(catalogoService.parametroPorPadre(90)); inforVO.setListaCompetenciaCaso(catalogoService.parametroPorPadre(110)); } public void eliminarActividadCaso(Actividad a) { try { FacesContext context = FacesContext.getCurrentInstance(); RegistroController registroController = (RegistroController) context.getELContext().getELResolver() .getValue(context.getELContext(), null, "registroController"); String tipo = a.getTipo(); ActividadCaso actividCaso = new ActividadCaso(); actividCaso.setActividad(a); actividCaso.setCaso(caso); actividadCasoService.actividadCasoDelete(actividCaso); contarActividades(); if (tipo.equals("AD")) { registroController.removeAcontecimientoVinculadoFichaAD(a); msg.messageInfo("Se elimino la Actuacion Defensorial", null); } else { registroController.removeAcontecimientoVinculadoFichaAC(a); msg.messageInfo("Se elimino el Acontecimiento", null); } } catch (Exception ex) { log.error(ex.getMessage()); } } public void cargarNiveles() { if (StringUtils.isNoneBlank(caso.getSubTipo())) { cargarPrimerNivel(); cargarSegundoNivel(); cargarTercerNivel(); } } private void cargarPrimerNivel() { List<PrimerNivel> list = nivelService.listarPrimerNivel(caso.getSubTipo()); listaPrimerNivel = new ArrayList<>(); if (list.size() > 0) { for (PrimerNivel nivel : list) { listaPrimerNivel.add(new SelectItem(nivel.getId(), nivel.getNombre())); } } } private void cargarSegundoNivel() { List<SegundoNivel> list = nivelService.segundoNivelBuscar(caso.getSubTipo()); listaSegundoNivel = new ArrayList<>(); if (list.size() > 0) { for (SegundoNivel nivel : list) { listaSegundoNivel.add(new SelectItem(nivel.getId(), nivel.getNombre())); } } } private void cargarTercerNivel() { List<TercerNivel> list = nivelService.tercerNivelBuscar(caso.getSubTipo()); listaTercerNivel = new ArrayList<>(); if (list.size() > 0) { for (TercerNivel nivel : list) { listaTercerNivel.add(new SelectItem(nivel.getId(), nivel.getNombre())); } } } public String cargarPanel(long idCaso) { try { caso = new Caso(); caso = casoService.casoBuscarOne(idCaso); setearFichaCaso(caso); } catch (Exception ex) { log.error(ex.getCause()); } return "casoNuevo"; } public void contarActividades() { listaAdjuntiasDefensoriales = new ArrayList<>(); listaActividadesCasoAC = new ArrayList<>(); listaActividadesCasoAD = new ArrayList<>(); try { listaActividadesCaso = actividadService.actividadxCasoBuscarTotal(caso.getId()); nroAcontecimiento = 0; nroActuacionesDefensoriales = 0; validaListasActoresCasos(caso.getId()); listaActoresXcaso = actorService.actorxCasoBuscar(caso.getId()); for (Actividad a : listaActividadesCaso) { if (StringUtils.equals(a.getTipo(), "AC")) { listaActividadesCasoAC.add(a); nroAcontecimiento++; } if (StringUtils.equals(a.getTipo(), "AD")) { listaActividadesCasoAD.add(a); nroActuacionesDefensoriales++; } } } catch (Exception ex) { log.error(ex.getCause()); } } private void validaListasActoresCasos(long idCaso) { listaActoresXcaso = null; listCasoActor = null; listaActoresXcaso = actorService.actorxCasoBuscar(caso.getId()); listCasoActor = casoActorService.casoActorBuscar(caso.getId()); List<CasoActor> list = new ArrayList<>(); List<CasoActor> listRemove = new ArrayList<>(); if (listaActoresXcaso.size() > 0) { if (listCasoActor.size() > 0) { //agregar for (Actor a : listaActoresXcaso) { int i = 1; for (CasoActor ca : listCasoActor) { if (Objects.equals(ca.getIdActor(), a.getId())) { i = i * (-1); } } if (i > 0) { CasoActor ca1 = new CasoActor(); ca1.setIdCaso(idCaso); ca1.setIdActor(a.getId()); ca1.setEstado("ACT"); ca1.setFechaRegistro(new Date()); list.add(ca1); } } for (CasoActor ca : listCasoActor) { int i = 1; for (Actor a : listaActoresXcaso) { if (Objects.equals(ca.getIdActor(), a.getId())) { i = i * (-1); } } if (i > 0) { CasoActor ca0 = new CasoActor(); ca0.setIdCaso(idCaso); ca0.setIdActor(ca.getIdActor()); ca0.setEstado("INA"); listRemove.add(ca0); } } if (list.size() > 0) { for (CasoActor ca2 : list) { int val = 0; val = casoActorService.casoActorBuscarCount(ca2); if (val == 0) { casoActorService.casoActorInsertar(ca2); } else { ca2.setEstado("ACT"); casoActorService.casoUpdate(ca2); } } } if (listRemove.size() > 0) { for (CasoActor ca2 : listRemove) { casoActorService.casoUpdate(ca2); } } } else { for (Actor a : listaActoresXcaso) { CasoActor casoActor = new CasoActor(); casoActor.setIdCaso(idCaso); casoActor.setIdActor(a.getId()); casoActor.setEstado("ACT"); casoActor.setFechaRegistro(new Date()); casoActorService.casoActorInsertar(casoActor); } } } listCasoActor = casoActorService.casoActorBuscarComplete(idCaso); } public void initJasper() throws JRException { List<ReporteCasoVO> lista = new ArrayList<>(); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd/MM/yyyy"); ReporteCasoVO vo = new ReporteCasoVO(); vo.setNombre(caso.getNombre()); vo.setCodigo(caso.getCodigo()); vo.setDescripcion(caso.getDescripcionPreliminar()); vo.setJustificacion(caso.getJustificacion()); vo.setObservacion(caso.getObservaciones()); Parametro parametro; parametro = parametroService.consultarParametroValor(new FiltroParametro(120, caso.getTipoEstado())); vo.setEstado(parametro == null ? "" : parametro.getNombreParametro()); parametro = parametroService.consultarParametroValor(new FiltroParametro(110, caso.getTipoAsunto())); vo.setCompetenciaEstatal(parametro == null ? "" : parametro.getNombreParametro()); parametro = parametroService.consultarParametroValor(new FiltroParametro(210, caso.getTipoDialogo())); vo.setFace(parametro == null ? "" : parametro.getNombreParametro()); parametro = parametroService .consultarParametroValor(new FiltroParametro(240, caso.getTipoMomentoDialogo())); vo.setMomentoDialogo(parametro == null ? "" : parametro.getNombreParametro()); parametro = parametroService.consultarParametroValor(new FiltroParametro(220, caso.getTipoMecanismo())); vo.setMecanismoDialogo(parametro == null ? "" : parametro.getNombreParametro()); parametro = parametroService .consultarParametroValor(new FiltroParametro(230, caso.getTipoParticipacionCaso())); vo.setParticipacionDialogo(parametro == null ? "" : parametro.getNombreParametro()); parametro = parametroService.consultarParametroValor(new FiltroParametro(90, caso.getTipo())); vo.setTipologia(parametro == null ? "" : parametro.getNombreParametro()); parametro = parametroService.consultarParametroValor( new FiltroParametro(130, caso.getSubTipo() == null ? "" : caso.getSubTipo())); vo.setTipoActividad(parametro == null ? "" : parametro.getNombreParametro()); vo.setPrimerNivel(nivelService.primerNivelOne(caso.getPrimerNivel())); vo.setSegundoNivel(nivelService.segundoNivelOne(caso.getSegundoNivel())); vo.setTercerNivel(nivelService.tercerNivelOne(caso.getTercerNivel())); List<ReporteActorVO> ravos = new ArrayList<>(); int c = 0; if (listCasoActor != null) { for (CasoActor a : listCasoActor) { ReporteActorVO ravo = new ReporteActorVO(); String nombre = a.getActor().getNombre() + " " + (a.getActor().getApellidoPat() == null ? " " : a.getActor().getApellidoPat()) + " " + (a.getActor().getApellidoMat() == null ? " " : a.getActor().getApellidoMat()); switch (a.getTipo()) { case "01": nombre += " (Primario)"; break; case "02": nombre += " (Secundario)"; break; case "03": nombre += " (Terciario)"; break; default: nombre += " (Sin clasificacion)"; break; } ravo.setNumero(Integer.toString(++c) + "."); ravo.setNombreCompleto(nombre); ravos.add(ravo); } } vo.setActores(ravos); List<ReporteActuacionDefensorialVO> radvos = new ArrayList<>(); if (listaActividadesCasoAD != null) { for (Actividad a : listaActividadesCasoAD) { ReporteActuacionDefensorialVO radvo = new ReporteActuacionDefensorialVO(); radvo.setComentarios(a.getComentario()); radvo.setDescripcion(a.getDescripcion()); radvo.setNombre(a.getNombre()); radvo.setFechaInicio(a.getFechaRealizacionIni() == null ? "" : simpleDateFormat.format(a.getFechaRealizacionIni())); radvo.setFechaFin(a.getFechaRealizacionFin() == null ? "" : simpleDateFormat.format(a.getFechaRealizacionFin())); Departamento departamen = ubigeoService.departamentoOne(a.getIdDepartamento()); Provincia p = new Provincia(); p.setIdDepartamento(a.getIdDepartamento()); p.setIdProvincia(a.getIdProvincia()); Provincia provin = ubigeoService.provinciaOne(p); Distrito d = new Distrito(); d.setIdDepartamento(a.getIdDepartamento()); d.setIdProvincia(a.getIdProvincia()); d.setIdDistrito(a.getIdDistrito()); Distrito distri = ubigeoService.distritoOne(d); radvo.setDepartamento(departamen == null ? "" : departamen.getDescripcion()); radvo.setProvincia(provin == null ? "" : provin.getDescripcion()); radvo.setDistrito(distri == null ? "" : distri.getDescripcion()); radvo.setUrlImagen( a.getRuta() == null ? null : ConstantesUtil.BASE_URL_PRODUCCION_IMAGE + a.getRuta()); radvos.add(radvo); } vo.setActuacionesDefensoriales(radvos); } List<ReporteActuacionDefensorialVO> radvos2 = new ArrayList<>(); if (listaActividadesCasoAC != null) { for (Actividad a : listaActividadesCasoAC) { ReporteActuacionDefensorialVO radvo = new ReporteActuacionDefensorialVO(); radvo.setComentarios(a.getComentario()); radvo.setDescripcion(a.getDescripcion()); radvo.setNombre(a.getNombre()); radvo.setFechaInicio(a.getFechaRealizacionIni() == null ? "" : simpleDateFormat.format(a.getFechaRealizacionIni())); radvo.setFechaFin(a.getFechaRealizacionFin() == null ? "" : simpleDateFormat.format(a.getFechaRealizacionFin())); Departamento departamen = ubigeoService.departamentoOne(a.getIdDepartamento()); Provincia p = new Provincia(); p.setIdDepartamento(a.getIdDepartamento()); p.setIdProvincia(a.getIdProvincia()); Provincia provin = ubigeoService.provinciaOne(p); Distrito d = new Distrito(); d.setIdDepartamento(a.getIdDepartamento()); d.setIdProvincia(a.getIdProvincia()); d.setIdDistrito(a.getIdDistrito()); Distrito distri = ubigeoService.distritoOne(d); radvo.setDepartamento(departamen == null ? "" : departamen.getDescripcion()); radvo.setProvincia(provin == null ? "" : provin.getDescripcion()); radvo.setDistrito(distri == null ? "" : distri.getDescripcion()); radvo.setUrlImagen( a.getRuta() == null ? null : ConstantesUtil.BASE_URL_PRODUCCION_IMAGE + a.getRuta()); radvos2.add(radvo); } vo.setAcontecimientos(radvos2); vo.setImagePath(ConstantesUtil.BASE_URL_IMAGEPATH + "logoPlanIntervencion.png"); } if (listaCasoRegion != null) { if (listaCasoRegion.size() > 0) { vo.setListaCasoRegiones(listaCasoRegion); } } lista.add(vo); JRBeanCollectionDataSource beanCollectionDataSource = new JRBeanCollectionDataSource(lista); jasperPrint = JasperFillManager.fillReport(ConstantesUtil.BASE_URL_REPORT + "documentoCaso.jasper", new HashMap(), beanCollectionDataSource); } public void pdf() throws JRException, IOException { Date date = new Date(); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); String fecha = simpleDateFormat.format(date); initJasper(); FacesContext facesContext = FacesContext.getCurrentInstance(); HttpServletResponse httpServletResponse; httpServletResponse = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext() .getResponse(); httpServletResponse.setContentType("application/pdf"); httpServletResponse.addHeader("Content-disposition", "attachment; filename=" + fecha + "_caso.pdf"); ServletOutputStream servletOutputStream = httpServletResponse.getOutputStream(); JasperExportManager.exportReportToPdfStream(jasperPrint, servletOutputStream); facesContext.responseComplete(); facesContext.renderResponse(); } @SuppressWarnings("static-access") public void docx() throws JRException, IOException { Date date = new Date(); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); String fecha = simpleDateFormat.format(date); initJasper(); FacesContext facesContext = FacesContext.getCurrentInstance(); HttpServletResponse httpServletResponse = (HttpServletResponse) facesContext.getCurrentInstance() .getExternalContext().getResponse(); httpServletResponse .setContentType("application/vnd.openxmlformats-officedocument.wordprocessingml.document"); httpServletResponse.addHeader("Content-disposition", "attachment; filename=" + fecha + "_documento_caso.docx"); ServletOutputStream servletOutputStream = httpServletResponse.getOutputStream(); JRDocxExporter docxExporter = new JRDocxExporter(); docxExporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint); docxExporter.setParameter(JRExporterParameter.OUTPUT_STREAM, servletOutputStream); docxExporter.exportReport(); facesContext.responseComplete(); facesContext.renderResponse(); } private void generarCadenaAdjuntia() { try { cadenaAdjuntiaAutocomplete = casoService.adjuntiaBuscarAutocomplete(); } catch (Exception ex) { log.error(ex.getMessage()); } } public void cancelar() { caso = new Caso(); } public boolean registrarCaso() { if (StringUtils.equals(caso.getTipoEstado(), "0")) { msg.messageAlert("Debe ingresar el estado del caso", null); return false; } if (StringUtils.equals(caso.getTipo(), "0")) { msg.messageAlert("Debe ingresar la tipologa del caso", null); return false; } if (caso.getFechaInicio() == null) { msg.messageAlert("Debe ingresar la fecha de inicio del caso", null); return false; } usuarioSession(); try { StringBuilder sb = new StringBuilder(); for (AdjuntiaDefensorialVO o : listaAdjuntiasDefensoriales) { sb.append(o.getId()).append(";"); } caso.setAdjuntiaDefensorial(sb.toString()); if (caso.getVersion() == null) { caso.setCreacion(new Date()); caso.setVersion(1); caso.setUsuarioRegistro(usuarioSession.getCodigo()); } else { caso.setVersion(caso.getVersion() + 1); casoService.casoUpdateIndicador(caso); } caso.setIndicador("A"); caso.setUsuarioModificacion(usuarioSession.getCodigo()); caso.setModificacion(new Date()); caso.setEstadoRegistro("PEN"); definirFechaPublicacion(); ordenarParametros(); casoService.casoNuevo(caso); if (StringUtils.equals(caso.getTipoEstado(), "02")) enviarSolicitudAprobacion(); msg.messageInfo("Se registr Correctamente el Caso.", null); if (listaCasoRegion.size() > 0) { updateListaRegion(); } updateListasActividades(); actualizarActoresFicha(); validaListasActoresCasos(caso.getId()); setearEsComosionadoRegistro(); } catch (Exception ex) { log.error(ex); } return true; } public void enviarSolicitudAprobacion() { Mail mail = new Mail(); //tblEmailDetalle.setNIdDestinatarioPersona(tblEmailPersona.getNIdEmail()); mail.send("careli_2710@hotmail.com", "asunto", "cuerpo"); } public String aprobarSolicitudAprobacion() { if (caso.getIndAprobado() == null) { if (StringUtils.isBlank(caso.getCodigo())) { caso.setCodigo(generarCodigoCaso()); caso.setTipoEstado("04"); Caso c = new Caso(); c.setIndAprobado("A"); c.setUsuAprobado(usuarioSession.getCodigo()); c.setFechaAprobado(new Date()); c.setCodigo(caso.getCodigo()); c.setTipoEstado(caso.getTipoEstado()); c.setId(caso.getId()); c.setFechaPublicacion(new Date()); casoService.casoUpdateAprobar(c); Mail mail = new Mail(); //tblEmailDetalle.setNIdDestinatarioPersona(tblEmailPersona.getNIdEmail()); mail.send("careli_2710@hotmail.com", "asunto", "cuerpo"); msg.messageInfo("Se aprobo el caso", null); } } return setearFichaCaso(caso); } private void ordenarParametros() { if (!caso.getTipoEstado().equals("04")) { caso.setTipoDialogo("0"); caso.setTipoMecanismo("0"); caso.setTipoMomentoDialogo("0"); caso.setTipoParticipacionCaso("0"); } if (!caso.getTipoDialogo().equals("05")) { caso.setTipoMecanismo("0"); caso.setTipoMomentoDialogo("0"); caso.setTipoParticipacionCaso("0"); } if (!caso.getTipo().equals("09")) { caso.setSubTipo("0"); caso.setPrimerNivel("0"); caso.setSegundoNivel("0"); caso.setTercerNivel("0"); } if (!caso.getSubTipo().equals("02") && !caso.getSubTipo().equals("03") && !caso.getSubTipo().equals("01")) { caso.setPrimerNivel("0"); caso.setSegundoNivel("0"); caso.setTercerNivel("0"); } } private void definirFechaPublicacion() { if (caso.getFechaPublicacion() == null) { if (caso.getTipoEstado().equals("04") || caso.getTipoEstado().equals("05") || caso.getTipoEstado().equals("06")) { caso.setFechaPublicacion(new Date()); } } } private void actualizarActoresFicha() { if (listCasoActor != null) { for (CasoActor ca : listCasoActor) { if (ca.getTipo().length() == 2) { ca.setIdCaso(caso.getId()); casoActorService.casoActorInsertar(ca); } } listCasoActor = casoActorService.casoActorBuscarComplete(caso.getId()); } } private void usuarioSession() { FacesContext context = FacesContext.getCurrentInstance(); LoginController loginController = (LoginController) context.getELContext().getELResolver() .getValue(context.getELContext(), null, "loginController"); usuarioSession = loginController.getUsuarioSesion(); } public boolean generarListaAdjuntias() { if (caso.getAdjuntiaDefensorial() != null) { if (StringUtils.equals(caso.getAdjuntiaDefensorial(), "")) { caso.setNombreAdjuntiaDefensorial(null); caso.setAdjuntiaDefensorial(null); return false; } for (AdjuntiaDefensorialVO advo : listaAdjuntiasDefensoriales) { if (StringUtils.equals(advo.getId(), caso.getAdjuntiaDefensorial())) { caso.setNombreAdjuntiaDefensorial(null); caso.setAdjuntiaDefensorial(null); return false; } } AdjuntiaDefensorialVO vo = new AdjuntiaDefensorialVO(); vo.setId(caso.getAdjuntiaDefensorial()); vo.setNombre(caso.getNombreAdjuntiaDefensorial()); listaAdjuntiasDefensoriales.add(vo); caso.setNombreAdjuntiaDefensorial(null); caso.setAdjuntiaDefensorial(null); } return true; } public void removeListaAdjuntias(AdjuntiaDefensorialVO advo) { listaAdjuntiasDefensoriales.remove(advo); } private String generarCodigoCaso() { SimpleDateFormat simpleDateFormatMes = new SimpleDateFormat("MM"); SimpleDateFormat simpleDateFormatAnho = new SimpleDateFormat("yyyy"); String mes = simpleDateFormatMes.format(caso.getCreacion()); String anho = simpleDateFormatAnho.format(caso.getCreacion()); String numero = String.format("%4s", casoService.casoCodigoGenerado().toString()).replace(' ', '0'); String mesDescripcion = MesEnum.verMes(mes); String tipo = TipologiaCasoType.tipoClasificacionNombre(caso.getTipo()); return anho + mesDescripcion + numero + "-" + tipo; } public void cargarListaActividadesSinCaso(int tipo) { verTitulo = tipo == 1; List<Actividad> lista = new ArrayList<>(); listaActividadesSinCaso = actividadService.actividadBusquedaSinCaso(tipo); for (Actividad a : listaActividadesSinCaso) { if (StringUtils.equals(a.getUsuarioRegistro(), usuarioSession.getCodigo())) { lista.add(a); } } listaActividadesSinCaso = lista; } public void vincularActividadCaso(Actividad activida) { ActividadCaso ac = new ActividadCaso(); String tipo = activida.getTipo(); try { ac.setActividad(activida); ac.setCaso(caso); ac.setEstado("ACT"); actividadCasoService.actividadCasoInsertar(ac); contarActividades(); if (tipo.equals("AD")) { msg.messageInfo("Se ha vinculado la Actuacion Defensorial", null); } else { msg.messageInfo("Se ha vinculado el Acontecimiento", null); } } catch (Exception ex) { log.error(ex.getCause()); } } public void listarActividadesxCaso() { try { listaActividadesCaso = actividadService.actividadxCasoBuscarTotal(caso.getId()); } catch (Exception ex) { log.error(ex.getCause()); } } public void comboProvincia() { listaProvincia = new ArrayList<>(); listaDistrito = new ArrayList<>(); String id = casoRegion.getIdDepartamento(); if (StringUtils.equals(id, "0")) { listaDistrito.clear(); } else { List<Provincia> list = ubigeoService.provinciaLista(id); if (list.size() > 0) { for (Provincia provincia : list) { listaProvincia.add(new SelectItem(provincia.getIdProvincia(), provincia.getDescripcion())); } } } } public void comboDistrito() { listaDistrito = new ArrayList<>(); String idDepartamento = casoRegion.getIdDepartamento(); String idProvincia = casoRegion.getIdProvincia(); if (StringUtils.equals(idDepartamento, "0") || StringUtils.equals(idProvincia, "0")) { listaDistrito.clear(); } else { Distrito d = new Distrito(); d.setIdDepartamento(idDepartamento); d.setIdProvincia(idProvincia); List<Distrito> list = ubigeoService.distritoLista(d); if (list.size() > 0) { for (Distrito distrito : list) { listaDistrito.add(new SelectItem(distrito.getIdDistrito(), distrito.getDescripcion())); } } } } public CasoBusquedaTemp getCasoBusquedaTemp() { if (casoBusquedaTemp == null) { casoBusquedaTemp = new CasoBusquedaTemp(); } return casoBusquedaTemp; } public void setCasoBusquedaTemp(CasoBusquedaTemp casoBusquedaTemp) { this.casoBusquedaTemp = casoBusquedaTemp; } public Caso getCaso() { return caso; } public void setCaso(Caso caso) { caso.setTipoCaso(caso.getTipo()); this.caso = caso; } public List<Caso> getCasos() { return casos; } public void setCasos(List<Caso> casos) { this.casos = casos; } public String getCadenaAdjuntiaAutocomplete() { return cadenaAdjuntiaAutocomplete; } public void setCadenaAdjuntiaAutocomplete(String cadenaAdjuntiaAutocomplete) { this.cadenaAdjuntiaAutocomplete = cadenaAdjuntiaAutocomplete; } public List<AdjuntiaDefensorialVO> getListaAdjuntiasDefensoriales() { return listaAdjuntiasDefensoriales; } public void setListaAdjuntiasDefensoriales(List<AdjuntiaDefensorialVO> listaAdjuntiasDefensoriales) { this.listaAdjuntiasDefensoriales = listaAdjuntiasDefensoriales; } public Usuario getUsuarioSession() { return usuarioSession; } public void setUsuarioSession(Usuario usuarioSession) { this.usuarioSession = usuarioSession; } public List<Actividad> getListaActividadesCaso() { return listaActividadesCaso; } public void setListaActividadesCaso(List<Actividad> listaActividadesCaso) { this.listaActividadesCaso = listaActividadesCaso; } public int getNroAcontecimiento() { return nroAcontecimiento; } public void setNroAcontecimiento(int nroAcontecimiento) { this.nroAcontecimiento = nroAcontecimiento; } public int getNroActuacionesDefensoriales() { return nroActuacionesDefensoriales; } public void setNroActuacionesDefensoriales(int nroActuacionesDefensoriales) { this.nroActuacionesDefensoriales = nroActuacionesDefensoriales; } public List<Actor> getListaActoresXcaso() { return listaActoresXcaso; } public void setListaActoresXcaso(List<Actor> listaActoresXcaso) { this.listaActoresXcaso = listaActoresXcaso; } public List<Actividad> getListaActividadesSinCaso() { return listaActividadesSinCaso; } public void setListaActividadesSinCaso(List<Actividad> listaActividadesSinCaso) { this.listaActividadesSinCaso = listaActividadesSinCaso; } public List<Actividad> getListaActividadesCasoAC() { return listaActividadesCasoAC; } public void setListaActividadesCasoAC(List<Actividad> listaActividadesCasoAC) { this.listaActividadesCasoAC = listaActividadesCasoAC; } public List<Actividad> getListaActividadesCasoAD() { return listaActividadesCasoAD; } public void setListaActividadesCasoAD(List<Actividad> listaActividadesCasoAD) { this.listaActividadesCasoAD = listaActividadesCasoAD; } public boolean isVerTitulo() { return verTitulo; } public void setVerTitulo(boolean verTitulo) { this.verTitulo = verTitulo; } public List<CasoActor> getListCasoActor() { return listCasoActor; } public void setListCasoActor(List<CasoActor> listCasoActor) { this.listCasoActor = listCasoActor; } public List<SelectItem> getListaDepartamento() { listaDepartamento = new ArrayList<>(); List<Departamento> list = ubigeoService.departamentoLista(); if (list.size() > 0) { for (Departamento departamento : list) { listaDepartamento .add(new SelectItem(departamento.getIdDepartamento(), departamento.getDescripcion())); } } return listaDepartamento; } public void setListaDepartamento(List<SelectItem> listaDepartamento) { this.listaDepartamento = listaDepartamento; } public List<SelectItem> getListaProvincia() { return listaProvincia; } public void setListaProvincia(List<SelectItem> listaProvincia) { this.listaProvincia = listaProvincia; } public List<SelectItem> getListaDistrito() { return listaDistrito; } public void setListaDistrito(List<SelectItem> listaDistrito) { this.listaDistrito = listaDistrito; } public List<SelectItem> getListaPrimerNivel() { return listaPrimerNivel; } public void setListaPrimerNivel(List<SelectItem> listaPrimerNivel) { this.listaPrimerNivel = listaPrimerNivel; } public List<SelectItem> getListaSegundoNivel() { return listaSegundoNivel; } public void setListaSegundoNivel(List<SelectItem> listaSegundoNivel) { this.listaSegundoNivel = listaSegundoNivel; } public List<SelectItem> getListaTercerNivel() { return listaTercerNivel; } public void setListaTercerNivel(List<SelectItem> listaTercerNivel) { this.listaTercerNivel = listaTercerNivel; } public InforVO getInforVO() { return inforVO; } public void setInforVO(InforVO inforVO) { this.inforVO = inforVO; } public CasoRegion getCasoRegion() { return casoRegion; } public void setCasoRegion(CasoRegion casoRegion) { this.casoRegion = casoRegion; } public List<CasoRegion> getListaCasoRegion() { return listaCasoRegion; } public void setListaCasoRegion(List<CasoRegion> listaCasoRegion) { this.listaCasoRegion = listaCasoRegion; } public Boolean getEsComisionadoRegistro() { return esComisionadoRegistro; } public void setEsComisionadoRegistro(Boolean esComisionadoRegistro) { this.esComisionadoRegistro = esComisionadoRegistro; } }