/** * Elimina un conjunto de usuarios de un grupo * * @param idGrupo Identificador de grupo * @param idUsuario Lista de identificadores de usuario. En caso de ser null se eliminaran todos * los usuarios del grupo */ public void removeGrupoUsuario(String idGrupo, String[] idUsuario) { StringBuffer qual = new StringBuffer("WHERE ").append(DBUtils.generateEQTokenField(CAMPO_ID_GRUPO, idGrupo)); if (idUsuario != null) qual.append(" AND ").append(DBUtils.generateInTokenField(CAMPO_ID_USUARIO, idUsuario)); deleteVO(qual.toString(), TABLE_NAME); }
public DocDocumentoVO getDocumentoByIdInterno(String idInterno) { String qual = new StringBuffer() .append(" WHERE ") .append(DBUtils.generateEQTokenField(CAMPO_ID_FICH, idInterno)) .toString(); 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); DocDocumentoVO documento = (DocDocumentoVO) getVO(qual, sqlFrom.toString(), COLS_DEF_QUERY, DocDocumentoVO.class); if (documento != null) documento.setTipoObjeto(TipoObjeto.ELEMENTO_CF); return documento; }
private DbColumnDef getColumnaNumHijos(String salasConEquipoInformatico) { StringBuffer subQuery = new StringBuffer(); subQuery .append("(") .append(DBUtils.SELECT) .append(DBUtils.COUNT_ALL) .append(DBUtils.FROM) .append(MesaDBEntityImpl.TABLE_NAME) .append(",") .append(SalaDBEntityImpl.TABLE_NAME) .append(DBUtils.WHERE) .append( DBUtils.generateJoinCondition(SalaDBEntityImpl.ID_FIELD, MesaDBEntityImpl.SALA_FIELD)) .append(DBUtils.AND) .append(DBUtils.generateEQTokenField(MesaDBEntityImpl.ESTADO_FIELD, EstadoMesa.LIBRE)); if (StringUtils.isNotEmpty(salasConEquipoInformatico)) { subQuery .append(DBUtils.AND) .append( DBUtils.generateEQTokenField( SalaDBEntityImpl.EQUIPOINFORMATICO_FIELD, salasConEquipoInformatico)); } subQuery .append(DBUtils.AND) .append(DBUtils.generateJoinCondition(SalaDBEntityImpl.EDIFICIO_FIELD, ID_FIELD)) .append(")"); DbColumnDef columnaNumHijos = new DbColumnDef("NumHijos", subQuery.toString(), DbDataType.SHORT_INTEGER); return columnaNumHijos; }
/** * 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; }
/* * (non-Javadoc) * * @see docelectronicos.db.IDocDocumentoCFDBEntity#update(java.lang.String, * int[], int) */ public void update(String idObj, int[] estadosAActualizar, int nuevoEstado) { StringBuffer qual = new StringBuffer().append(" WHERE "); if (StringUtils.isNotBlank(idObj)) qual.append(DBUtils.generateEQTokenField(CAMPO_ID_ELEMENTO_CF, idObj)); if ((estadosAActualizar != null) && (estadosAActualizar.length > 0)) qual.append(" AND ").append(DBUtils.generateInTokenField(CAMPO_ESTADO, estadosAActualizar)); HashMap colToUpdate = new HashMap(); colToUpdate.put(CAMPO_ESTADO, new Integer(nuevoEstado)); updateFields(qual.toString(), colToUpdate, TABLE_NAME); }
/** * {@inheritDoc} * * @see docelectronicos.db.IDocDocumentoCFDBEntity#updateIdElementocf(java.lang.String, * java.lang.String, java.lang.String[]) */ public void updateIdElementocf( String idElementocfAntiguo, String idElementoCfNuevo, String[] idsInternosDocumentos) { StringBuilder qual = new StringBuilder(DBUtils.WHERE) .append(DBUtils.generateEQTokenField(CAMPO_ID_ELEMENTO_CF, idElementocfAntiguo)) .append(DBUtils.AND) .append(DBUtils.generateInTokenField(CAMPO_ID, idsInternosDocumentos)); HashMap colToUpdate = new HashMap(); colToUpdate.put(CAMPO_ID_ELEMENTO_CF, idElementoCfNuevo); updateFields(qual.toString(), colToUpdate, TABLE_NAME); }
/** * Obtiene los usuarios que pertenecen a un grupo * * @param idGrupo Identificador de grupo * @return Lista de usuarios {@link gcontrol.vos.UsuarioVO} */ public List getUsuariosGrupo(String idGrupo) { StringBuffer qual = new StringBuffer("WHERE ") .append(DBUtils.generateEQTokenField(CAMPO_ID_GRUPO, idGrupo)) .append(" AND ") .append(DBUtils.generateJoinCondition(CAMPO_ID_USUARIO, UsuarioDBEntityImpl.CAMPO_ID)); String[] queryTables = {TABLE_NAME, UsuarioDBEntityImpl.TABLE_NAME}; return getVOS( qual.toString(), ArrayUtils.join(queryTables, ","), UsuarioDBEntityImpl.COL_DEFS, UsuarioVO.class); }
/** * 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. * @return Listas de documentos electrónicos. */ public int getCountDocumentosByIdClfPadre(String idElementoCF, String idClfPadre) { int ret = 0; StringBuffer qual = new StringBuffer().append(" WHERE "); if (StringUtils.isNotBlank(idElementoCF)) qual.append(DBUtils.generateEQTokenField(CAMPO_ID_ELEMENTO_CF, idElementoCF)).append(" AND "); qual.append(DBUtils.generateEQTokenField(CAMPO_ID_CLF_PADRE, idClfPadre)); ret = getVOCount(qual.toString(), TABLE_NAME); return ret; }
/** * Obtiene un Map cuyas claves son los ids de elementos del cuadro y sus valores la lista de * identificadores de documentos electrónicos asociados a una lista de elementos del cuadro de * clasificación. * * @param idsElementosCF Identificador de la lista de ids de elementos del cuadro de * clasificación. * @return Listas de identificadores de documentos electrónicos. */ public Map getDocumentos(List idsElementosCF) { Map idsDocumentos = new HashMap(); StringBuffer qual = new StringBuffer() .append(" WHERE ") .append(DBUtils.generateInTokenField(CAMPO_ID_ELEMENTO_CF, idsElementosCF)); TableDef tablaDocElectronicos = new TableDef(TABLE_NAME); StringBuffer sqlFrom = new StringBuffer().append(tablaDocElectronicos.getDeclaration()); DbColumnDef[] COLS_DEF_QUERY = new DbColumnDef[] {CAMPO_ID_ELEMENTO_CF, CAMPO_ID_FICH}; List documentos = getVOS(qual.toString(), sqlFrom.toString(), COLS_DEF_QUERY, DocDocumentoVO.class); for (int i = 0; i < documentos.size(); i++) { DocDocumentoVO documento = ((DocDocumentoVO) documentos.get(i)); Object obj = idsDocumentos.get(documento.getIdObjeto()); ArrayList elem = null; if (obj != null) elem = (ArrayList) obj; else elem = new ArrayList(); elem.add(documento.getIdFich()); idsDocumentos.put(documento.getIdObjeto(), elem); } return idsDocumentos; }
/** * 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. * @return Listas de documentos electrónicos. */ public List getDocumentos(String idElementoCF) { // 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 (SIN PROBAR - HAY QUE TESTEARLO CON // EL PROCESO BATCH DE BORRAR U.DOC. NO DEVUELTAS ... ¿IMPLEMENTADO? StringBuffer qual = new StringBuffer() .append(" WHERE ") // .append(DBUtils.generateOuterJoinCondition(DepositoElectronicoDBEntityImpl.CAMPO_ID_EXT, // CAMPO_ID_EXT_DEPOSITO)) // .append(" AND ") .append(DBUtils.generateEQTokenField(CAMPO_ID_ELEMENTO_CF, idElementoCF)); 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(), sqlFrom.toString(), COLS_DEF_QUERY, DocDocumentoVO.class); // // List documentos = getVOS(qual.toString(), pairs, // DocDocumentoVO.class); for (int i = 0; i < documentos.size(); i++) ((DocDocumentoVO) documentos.get(i)).setTipoObjeto(TipoObjeto.ELEMENTO_CF); return documentos; }
/** * Elimina un documento electrónico. * * @param id Identificador del documento electrónico. */ public void deleteDocumento(String id) { String qual = new StringBuffer() .append(" WHERE ") .append(DBUtils.generateEQTokenField(CAMPO_ID, id)) .toString(); deleteVO(qual, TABLE_NAME); }
/** * Elimina los documentos de un elemento del cuadro de clasificación. * * @param idElementoCF Identificador del elemento del cuadro de clasificación. */ public void deleteDocumentos(String idElementoCF) { String qual = new StringBuffer() .append(" WHERE ") .append(DBUtils.generateEQTokenField(CAMPO_ID_ELEMENTO_CF, idElementoCF)) .toString(); deleteVO(qual, TABLE_NAME); }
/** * Obtiene el número de documentos almacenados en un depósito electrónico. * * @param idExtDeposito Identificador externo del depósito electrónico. * @return Número de documentos. */ public int getCountDocumentosByIdExtDeposito(String idExtDeposito) { String qual = new StringBuffer() .append(" WHERE ") .append(DBUtils.generateEQTokenField(CAMPO_ID_EXT_DEPOSITO, idExtDeposito)) .toString(); return getVOCount(qual, TABLE_NAME); }
private String getQualByIdsArchivo(String[] idsArchivo) { StringBuffer qual = new StringBuffer(); if (ArrayUtils.isNotEmpty(idsArchivo)) { qual.append(DBUtils.WHERE).append(DBUtils.generateORTokens(IDARCHIVO_FIELD, idsArchivo)); } return qual.toString(); }
/** * Modifica un documento electrónico. * * @param documento Documento electrónico. */ public void updateDocumento(DocDocumentoVO documento) { String qual = new StringBuffer() .append(" WHERE ") .append(DBUtils.generateEQTokenField(CAMPO_ID, documento.getId())) .toString(); updateVO(qual, TABLE_NAME, COL_DEFS, documento); }
/** * Obtiene el documento electrónico. * * @param id Identificador del documento electrónico. * @return Documento electrónico. */ public DocDocumentoVO getDocumento(String id) { // 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 String qual = new StringBuffer() .append(" WHERE ") // .append(DBUtils.generateOuterJoinCondition(DepositoElectronicoDBEntityImpl.CAMPO_ID_EXT, // CAMPO_ID_EXT_DEPOSITO)) // .append(" AND ") .append(DBUtils.generateEQTokenField(CAMPO_ID, id)) .toString(); 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); DocDocumentoVO documento = (DocDocumentoVO) getVO(qual, sqlFrom.toString(), COLS_DEF_QUERY, DocDocumentoVO.class); // DocDocumentoVO documento = (DocDocumentoVO) getVO(qual, pairs, // DocDocumentoVO.class); if (documento != null) documento.setTipoObjeto(TipoObjeto.ELEMENTO_CF); return documento; }
public static long selectMinString(DbConnection conn, String tblName, String colName, String qual) throws Exception { long val = 0; DbSelectStatement stmt = null; String stmtText; try { stmt = new DbSelectStatement(); if (qual == null) stmtText = "SELECT MIN(" + DBUtils.getNativeToNumberSyntax(conn, colName, 16) + ") AS " + colName + " FROM " + tblName; else stmtText = "SELECT MIN(" + DBUtils.getNativeToNumberSyntax(conn, colName, 16) + ") AS " + colName + " FROM " + tblName + " " + qual; stmt.create(conn, stmtText); stmt.execute(); if (stmt.next()) { val = stmt.getLong(1); stmt.release(); } stmt.release(); if (val == DbDataType.NULL_SHORT_INTEGER) val = 0; return val; } catch (Exception e) { DbSelectStatement.ensureRelease(stmt, e); throw e; } }
public static String getCountSQL(DbColumnDef columna, String nombreColumna) { /* * SELECT COUNT(1) FROM adocdocumentocf adocdocumentocf WHERE * ELEMENTOCF.id=adocdocumentocf.idelementocf */ StringBuffer sql = new StringBuffer(DBUtils.ABRIR_PARENTESIS) .append(DBUtils.SELECT) .append(DBUtils.getCountDefault()) .append(DBUtils.FROM) .append(new TableDef(TABLE_NAME).getDeclaration()) .append(DBUtils.WHERE) .append(DBUtils.generateEQTokenField1(columna, CAMPO_ID_ELEMENTO_CF)) .append(DBUtils.CERRAR_PARENTESIS) .append(Constants.STRING_SPACE) // .append(nombreColumna) ; return sql.toString(); }
/** * Obtiene los grupos del usuario. * * @param idUsuario Identificador del usuario. * @return Grupos del usuario. */ public List getGruposUsuario(String idUsuario) { StringBuffer qual = new StringBuffer() .append("WHERE ") .append(DBUtils.generateEQTokenField(CAMPO_ID_USUARIO, idUsuario)) .append(" AND ") .append( DBUtils.generateJoinCondition( TABLE_NAME, CAMPO_ID_GRUPO, GrupoDBEntityImpl.TABLE_NAME, GrupoDBEntityImpl.CAMPO_ID)) .append(" ORDER BY ") .append(GrupoDBEntityImpl.CAMPO_NOMBRE.getName()); HashMap pairsTableNameColsDefs = new HashMap(); pairsTableNameColsDefs.put(TABLE_NAME, new DbColumnDef[0]); pairsTableNameColsDefs.put(GrupoDBEntityImpl.TABLE_NAME, GrupoDBEntityImpl.COL_DEFS); return getVOS(qual.toString(), pairsTableNameColsDefs, GrupoVO.class); }
private String getQualByEdificioArchivoEquipoInformatico( String idEdificio, String idArchivo, String equipoInformatico) { StringBuffer qual = new StringBuffer(DBUtils.WHERE).append(DBUtils.generateEQTokenField(ID_FIELD, idEdificio)); if (StringUtils.isNotEmpty(equipoInformatico)) { qual.append(DBUtils.AND) .append( DBUtils.generateEQTokenField( SalaDBEntityImpl.EQUIPOINFORMATICO_FIELD, equipoInformatico)); } qual.append(DBUtils.AND) .append(DBUtils.generateEQTokenField(IDARCHIVO_FIELD, idArchivo)) .append(DBUtils.AND) .append(DBUtils.generateEQTokenField(MesaDBEntityImpl.ESTADO_FIELD, EstadoMesa.LIBRE)) .append(DBUtils.ORDER_BY) .append(MesaDBEntityImpl.SALA_FIELD) .append(Constants.COMMA) .append(MesaDBEntityImpl.NUMORDEN_FIELD); return qual.toString(); }
private String getJoinConditionMesasLibres() { JoinDefinition joinEdificio = new JoinDefinition(ID_FIELD, SalaDBEntityImpl.EDIFICIO_FIELD); JoinDefinition joinMesa = new JoinDefinition(SalaDBEntityImpl.ID_FIELD, MesaDBEntityImpl.SALA_FIELD); StringBuffer fromSql = new StringBuffer() .append( DBUtils.generateLeftOuterJoinCondition( new TableDef(TABLE_NAME), new JoinDefinition[] {joinEdificio, joinMesa})); return fromSql.toString(); }
private String getJoinCondition() { /* * SELECT ASGSEDIFICIO.*, AGARCHIVO.NOMBRE FROM ASGSEDIFICIO LEFT OUTER * JOIN AGARCHIVO ON AGARCHIVO.ID = ASGSEDIFICIO.IDARCHIVO; */ JoinDefinition join = new JoinDefinition(IDARCHIVO_FIELD, ArchivoDbEntityImpl.ID_FIELD); StringBuffer fromSql = new StringBuffer() .append( DBUtils.generateLeftOuterJoinCondition( new TableDef(TABLE_NAME), new JoinDefinition[] {join})); return fromSql.toString(); }
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(); }
/** * Cuenta el número de documentos asociados a un elemento del cuadro de clasificación * * @param idElementoCF Identificador de elemento del cuadro de clasificación * @return Número de documentos asociados al elemento */ public int countNumDocumentos(String idElementoCF) { StringBuffer qual = new StringBuffer("WHERE ") .append(DBUtils.generateEQTokenField(CAMPO_ID_ELEMENTO_CF, idElementoCF)); return getVOCount(qual.toString(), TABLE_NAME); }
private String getQualById(String idEdificio) { StringBuffer qual = new StringBuffer(DBUtils.WHERE).append(DBUtils.generateEQTokenField(ID_FIELD, idEdificio)); return qual.toString(); }
private String getQualByNombre(String nombre) { StringBuffer qual = new StringBuffer(DBUtils.WHERE).append(DBUtils.generateEQTokenField(NOMBRE_FIELD, nombre)); return qual.toString(); }
private String getDefaultOrderBy() { return DBUtils.generateOrderBy(NOMBRE_FIELD); }