/** * 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; }
/** * 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); }
/** * 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; }
/** * {@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); }
/* * (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); }