private String getQualByNumHijos(String idArchivo) { /* * SELECT ASGSEDIFICIO.ID, ASGSEDIFICIO.NOMBRE, (SELECT COUNT(*) FROM * ASGSMESA ASGSMESA,ASGSSALA ASGSSALA WHERE ASGSMESA.IDSALA = * ASGSSALA.ID AND ASGSMESA.ESTADO='L' AND * ASGSSALA.EQUIPOINFORMATICO='equipoInformatico' AND * ASGSSALA.IDEDIFICIO = ASGSEDIFICIO.ID ) HIJOSEDIFICIO FROM * ASGSEDIFICIO ASGSEDIFICIO WHERE ASGSEDIFICIO.IDARCHIVO='idArchivo' * GROUP BY ASGSEDIFICIO.ID, ASGSEDIFICIO.NOMBRE ORDER BY * ASGSEDIFICIO.NOMBRE */ StringBuffer qual = new StringBuffer(DBUtils.WHERE) .append(DBUtils.generateEQTokenField(IDARCHIVO_FIELD, idArchivo)) .append(DBUtils.GROUPBY) .append(ID_FIELD.getQualifiedName()) .append(", ") .append(NOMBRE_FIELD.getQualifiedName()); return qual.toString(); }
/** * Obtiene la lista de documentos electrónicos de un elemento del cuadro de clasificación. * * @param idElementoCF Identificador del elemento del cuadro de clasificación. * @param idClfPadre Identificador del clasificador padre. * @param estados Lista de estados de los documentos. * @return Listas de documentos electrónicos. */ public List getDocumentos(String idElementoCF, String idClfPadre, int[] estados) { // HashMap pairs = new HashMap(); // pairs.put(TABLE_NAME,COL_DEFS); // pairs.put(DepositoElectronicoDBEntityImpl.TABLE_NAME, // new DbColumnDef [] { // new DbColumnDef("nombreDeposito", // DepositoElectronicoDBEntityImpl.CAMPO_NOMBRE) }); // TODO ZMIGRACION BD - OUTER JOIN (PROBADO StringBuffer qual = new StringBuffer().append(" WHERE "); // .append(DBUtils.generateOuterJoinCondition( // DepositoElectronicoDBEntityImpl.CAMPO_ID_EXT, // CAMPO_ID_EXT_DEPOSITO)) // .append(" AND "); if (StringUtils.isNotBlank(idElementoCF)) qual.append(DBUtils.generateEQTokenField(CAMPO_ID_ELEMENTO_CF, idElementoCF)).append(" AND "); qual.append(DBUtils.generateEQTokenField(CAMPO_ID_CLF_PADRE, idClfPadre)); if ((estados != null) && (estados.length > 0)) qual.append(" AND ").append(DBUtils.generateInTokenField(CAMPO_ESTADO, estados)); qual.append(" ORDER BY ").append(CAMPO_NOMBRE.getQualifiedName()); TableDef tablaDocElectronicos = new TableDef(TABLE_NAME); JoinDefinition[] joins = new JoinDefinition[] { new JoinDefinition( new DbColumnDef(tablaDocElectronicos, CAMPO_ID_EXT_DEPOSITO), new DbColumnDef( new TableDef(DepositoElectronicoDBEntityImpl.TABLE_NAME), DepositoElectronicoDBEntityImpl.CAMPO_ID_EXT)), }; StringBuffer sqlFrom = new StringBuffer(); sqlFrom.append(DBUtils.generateLeftOuterJoinCondition(tablaDocElectronicos, joins)); DbColumnDef[] COLS_DEF_QUERY = (DbColumnDef[]) ArrayUtils.concat( new DbColumnDef[] {DepositoElectronicoDBEntityImpl.CAMPO_NOMBRE}, COL_DEFS); // List documentos = getVOS(qual.toString(), pairs, // DocDocumentoVO.class); List documentos = getVOS(qual.toString(), sqlFrom.toString(), COLS_DEF_QUERY, DocDocumentoVO.class); for (int i = 0; i < documentos.size(); i++) ((DocDocumentoVO) documentos.get(i)).setTipoObjeto(TipoObjeto.ELEMENTO_CF); return documentos; }