package com.fp.persistence.pviaticos.hra; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.persistence.Query; import com.fp.bpm.query.QueryJsf; import com.fp.dto.query.DtoQuery; import com.fp.persistence.commondb.PersistenceHelper; /** * Clase que se encarga de consultar información de la vista HRA.VWDATOSEMPLEADOS. * * @author Jorge Vaca. * @version 2.1 */ public class EmpleadoJpql extends QueryJsf { private static String SQL = "select codigo_empleado, apellidos ||' '||nombres as nombre, cedula, codigo_puesto as cargo, nombre_puesto as nomcargo, correo, " + "banco, tipo_cuenta,cuenta, codigo_area, nombre_area, codigo_jefe, codigo_responsable," + "( select unique(apellidos ||' '||nombres) from HRA.VWDATOSEMPLEADOS i where i.codigo_empleado = t.codigo_jefe) as njefe, " + "( select unique(apellidos ||' '||nombres) from HRA.VWDATOSEMPLEADOS i where i.codigo_empleado = t.codigo_responsable) as nrespunidad, " + "(select i.nombre_puesto from HRA.VWDATOSEMPLEADOS i where i.CODIGO_EMPLEADO = t.CODIGO_JEFE) as cargo_jefe, " + "(select i.nombre_puesto from HRA.VWDATOSEMPLEADOS i where i.CODIGO_EMPLEADO = t.CODIGO_RESPONSABLE) as cargo_supervisor, " + "usuario_web, codigo_localidad, estado, " + "(select cd.description from tgenecatalogdetail cd where cd.catalogcode = 'CUDADORIGEN' and cd.catalog = t.codigo_localidad) as localidad" + " from HRA.VWDATOSEMPLEADOS t"; /** * * @param codigoEmpleado Codigo de empleado * @return Empleado * @throws Exception */ public Empleado find(String codigoEmpleado) throws Exception { Map mcriterios = new HashMap<>(); mcriterios.put("codigo_empleado", codigoEmpleado); DtoQuery dtoquery = new DtoQuery("com.fp.persistence.pviaticos.hra.Empleado", mcriterios); Empleado emp = this.find(dtoquery).get(0); return emp; } /** * * @param codigoUsuarioWeb Codigo de usuario web. * @return Empleado * @throws Exception */ public Empleado findPorUsuarioWeb(String codigoUsuarioWeb) throws Exception { Map mcriterios = new HashMap<>(); mcriterios.put("usuario_web", codigoUsuarioWeb.toLowerCase()); DtoQuery dtoquery = new DtoQuery("com.fp.persistence.pviaticos.hra.Empleado", mcriterios); List empleados = this.find(dtoquery); Empleado emp = null; if (!empleados.isEmpty()) { emp = empleados.get(0); } return emp; } @SuppressWarnings("unchecked") public List find(DtoQuery dtoquery) throws Exception { List ldata = new ArrayList<>(); where = new StringBuffer(46); super.mparameter.clear(); super.buildCriteria(dtoquery); Query qry = PersistenceHelper.getEntityManager().createNativeQuery(EmpleadoJpql.SQL + (super.where == null ? "" : super.where.toString())); super.setParameters(dtoquery, qry); List lresp = qry.getResultList(); for (Object[] obj : lresp) { ldata.add(Empleado.cerar(obj)); } return ldata; } }