コード例 #1
0
  private String generateFilter(final Collection colFilter) throws Exception {
    final ObjetoNegocioDao objetoNegocioDao = new ObjetoNegocioDao();
    String sqlFilter = "";
    if (colFilter != null) {
      for (final Iterator it = colFilter.iterator(); it.hasNext(); ) {
        final GrupoVisaoCamposNegocioDTO grupoVisaoCamposNegocioDTO =
            (GrupoVisaoCamposNegocioDTO) it.next();
        final CamposObjetoNegocioDTO camposObjetoNegocioDTO =
            grupoVisaoCamposNegocioDTO.getCamposObjetoNegocioDto();
        ObjetoNegocioDTO objetoNegocioDTO = new ObjetoNegocioDTO();

        objetoNegocioDTO.setIdObjetoNegocio(camposObjetoNegocioDTO.getIdObjetoNegocio());
        objetoNegocioDTO = (ObjetoNegocioDTO) objetoNegocioDao.restore(objetoNegocioDTO);

        if (objetoNegocioDTO != null) {
          if (!sqlFilter.equalsIgnoreCase("")) {
            sqlFilter += " AND ";
          }
          String pref = "";
          String suf = "";
          String comp = "=";
          String value = "" + camposObjetoNegocioDTO.getValue();
          if (MetaUtil.isStringType(camposObjetoNegocioDTO.getTipoDB())) {
            pref = "'%";
            suf = "%'";
            comp = "LIKE";
          } else {
            if (MetaUtil.isNumericType(camposObjetoNegocioDTO.getTipoDB())) {
              value = this.getNumber(value);
            }
          }
          sqlFilter +=
              objetoNegocioDTO.getNomeTabelaDB()
                  + "."
                  + camposObjetoNegocioDTO.getNomeDB()
                  + " "
                  + comp
                  + " "
                  + pref
                  + value
                  + suf;
        }
      }
    }
    return sqlFilter;
  }
コード例 #2
0
  public Map createFromMap(
      final Map map,
      final Collection colCampos,
      final UsuarioDTO usuarioDto,
      final VisaoDao visaoDao,
      final HttpServletRequest request)
      throws Exception {
    final List lstParms = new ArrayList<>();
    String strValues = "";
    String strFields = "";

    if (colCampos == null) {
      LOGGER.debug("DinamicViewsServiceEjb - colCampos é null ");
    }

    final String strTable = this.generateFrom(colCampos);
    String sql = "INSERT INTO " + strTable.toLowerCase() + " ";
    if (colCampos != null) {
      for (final Iterator it = colCampos.iterator(); it.hasNext(); ) {
        final CamposObjetoNegocioDTO camposObjetoNegocioDTO = (CamposObjetoNegocioDTO) it.next();

        String strVal = "";
        if (camposObjetoNegocioDTO != null
            && camposObjetoNegocioDTO.getFormula() != null
            && !camposObjetoNegocioDTO.getFormula().trim().equalsIgnoreCase("")
            && !camposObjetoNegocioDTO
                .getTipoNegocio()
                .trim()
                .equalsIgnoreCase(MetaUtil.CLASS_AND_METHOD)) {
          strVal =
              this.executeFormula(camposObjetoNegocioDTO.getFormula(), map, camposObjetoNegocioDTO);
        } else {
          if (camposObjetoNegocioDTO != null) {
            strVal = (String) map.get(camposObjetoNegocioDTO.getNomeDB().trim());
          }
        }

        if (camposObjetoNegocioDTO != null
            && camposObjetoNegocioDTO.getSequence().equalsIgnoreCase("S")) {
          final int val =
              PersistenceEngine.getNextKey(
                  this.getDao().getAliasDB(),
                  strTable.toLowerCase(),
                  camposObjetoNegocioDTO.getNomeDB().trim().toLowerCase());

          if (!strValues.equalsIgnoreCase("")) {
            strValues += ",";
          }
          strValues += "?";

          if (!strFields.equalsIgnoreCase("")) {
            strFields += ",";
          }
          strFields += "" + camposObjetoNegocioDTO.getNomeDB().trim();

          map.put(camposObjetoNegocioDTO.getNomeDB().trim().toUpperCase(), "" + val);

          lstParms.add(val);
        } else {
          // Se o campo for obrigatório e o valor for null ou vazio, não pode continuar.
          if (camposObjetoNegocioDTO != null
              && camposObjetoNegocioDTO.getObrigatorio() != null
              && camposObjetoNegocioDTO.getObrigatorio().equalsIgnoreCase("S")) {
            if (strVal == null || strVal.trim().equals("")) {
              return map;
            }
          } else {
            /*
             * Desenvolvedor: euler.ramos e thiago.oliveira Data: 08/11/2013 Horário: 16h00min ID Citsmart: 123627 Motivo/Comentário: As telas
             * dinamic view não estavam
             * listando os registros que estavam com o campo deleted igual a null
             */
            if (camposObjetoNegocioDTO != null
                && camposObjetoNegocioDTO.getNome().equalsIgnoreCase("deleted")) {
              if (strVal == null || strVal.equals("")) {
                strVal = "n";
              }
            }
            // Se o campo não for obrigatório mas o valor for null, recebe vazio para garantir que
            // não de erro de sql (para campos tipo not null)
            if (strVal == null) {
              strVal = UtilStrings.nullToVazio(strVal);
            }
          }

          if (!strValues.equalsIgnoreCase("")) {
            strValues += ",";
          }
          strValues += "?";

          if (!strFields.equalsIgnoreCase("")) {
            strFields += ",";
          }
          if (camposObjetoNegocioDTO != null) {
            strFields += "" + camposObjetoNegocioDTO.getNomeDB().trim();
            lstParms.add(
                MetaUtil.convertType(
                    camposObjetoNegocioDTO.getTipoDB().trim(),
                    strVal,
                    camposObjetoNegocioDTO.getPrecisionDB(),
                    request));
          }
        }
      }
    }
    sql += "(" + strFields + ") VALUES (" + strValues + ")";
    visaoDao.execUpdate(sql, lstParms.toArray());

    if (UtilStrings.nullToVazio(
            ParametroUtil.getValorParametroCitSmartHashMap(ParametroSistema.USE_LOG, "false"))
        .equalsIgnoreCase("true")) {
      new Thread(new RegistraLogDinamicView(lstParms.toArray(), "I", sql, usuarioDto, strTable))
          .start();
    }

    return map;
  }
コード例 #3
0
  public void updateFromMap(
      final Map map,
      final Collection colCampos,
      final UsuarioDTO usuarioDto,
      final VisaoDao visaoDao,
      final HttpServletRequest request)
      throws Exception {
    final List lstParms = new ArrayList<>();
    final List lstWhere = new ArrayList<>();
    String strFields = "";
    String strWhere = "";
    final String strTable = this.generateFrom(colCampos);
    String sql = "UPDATE " + strTable + " ";
    for (final Iterator it = colCampos.iterator(); it.hasNext(); ) {
      final CamposObjetoNegocioDTO camposObjetoNegocioDTO = (CamposObjetoNegocioDTO) it.next();

      String strVal = "";
      if (camposObjetoNegocioDTO.getFormula() != null
          && !camposObjetoNegocioDTO.getFormula().trim().equalsIgnoreCase("")
          && !camposObjetoNegocioDTO
              .getTipoNegocio()
              .trim()
              .equalsIgnoreCase(MetaUtil.CLASS_AND_METHOD)) {
        strVal =
            this.executeFormula(camposObjetoNegocioDTO.getFormula(), map, camposObjetoNegocioDTO);
      } else {
        strVal = (String) map.get(camposObjetoNegocioDTO.getNomeDB().trim().toUpperCase());
      }
      if (!camposObjetoNegocioDTO.getPk().equalsIgnoreCase("S")) {
        if (strVal != null) {
          if (!strFields.equalsIgnoreCase("")) {
            strFields += ",";
          }
          strFields += "" + camposObjetoNegocioDTO.getNomeDB().trim() + " = ?";
          lstParms.add(
              MetaUtil.convertType(
                  camposObjetoNegocioDTO.getTipoDB().trim(),
                  strVal,
                  camposObjetoNegocioDTO.getPrecisionDB(),
                  request));
        }
      } else {
        if (strVal != null) {
          if (!strWhere.equalsIgnoreCase("")) {
            strWhere += " AND ";
          }
          strWhere += "" + camposObjetoNegocioDTO.getNomeDB() + " = ?";
          lstWhere.add(
              MetaUtil.convertType(
                  camposObjetoNegocioDTO.getTipoDB().trim(),
                  strVal,
                  camposObjetoNegocioDTO.getPrecisionDB(),
                  request));
        }
      }
    }
    sql += " SET " + strFields + " WHERE " + strWhere;

    lstParms.addAll(lstWhere);

    if (strFields != null && !strFields.trim().equalsIgnoreCase("")) {
      visaoDao.execUpdate(sql, lstParms.toArray());
      if (UtilStrings.nullToVazio(
              ParametroUtil.getValorParametroCitSmartHashMap(ParametroSistema.USE_LOG, "false"))
          .equalsIgnoreCase("true")) {
        new Thread(new RegistraLogDinamicView(lstParms.toArray(), "U", sql, usuarioDto, strTable))
            .start();
      }
    }

    if (!map.containsKey("REMOVED")) {
      map.put("REMOVED", "false");
    }
    String removed = (String) map.get("REMOVED");
    if (removed == null) {
      removed = "false";
    }
    if (removed.equalsIgnoreCase("X")) { // A nova arquitetura coloca esta informacao.
      removed = "true";
    }
    String sqlUltAtualizAndLogicDelete = "";
    if (removed.equalsIgnoreCase("true")) {
      sqlUltAtualizAndLogicDelete = "UPDATE " + strTable + " SET DELETED = 'Y' WHERE " + strWhere;
      try {
        visaoDao.execUpdate(sqlUltAtualizAndLogicDelete, lstWhere.toArray());
        if (UtilStrings.nullToVazio(
                ParametroUtil.getValorParametroCitSmartHashMap(ParametroSistema.USE_LOG, "false"))
            .equalsIgnoreCase("true")) {
          new Thread(
                  new RegistraLogDinamicView(
                      lstWhere.toArray(), "D", sqlUltAtualizAndLogicDelete, usuarioDto, strTable))
              .start();
        }
      } catch (final Exception e) {
        LOGGER.debug("SQL executado:" + sqlUltAtualizAndLogicDelete);
        throw new LogicException(
            "Não foi possí­vel realizar a exclusão do registro! Verifique se possui o Campo 'DELETED' do tipo CHAR(1) no Banco de dados!");
      }
    }
  }
コード例 #4
0
  @Override
  public boolean isPKExists(final Collection colCamposPK, final Map hashValores) throws Exception {
    final ObjetoNegocioDao objetoNegocioDao = new ObjetoNegocioDao();
    String sql = "SELECT ";
    String sqlFields = "";
    String sqlFilter = "";
    int i = 1;
    if (colCamposPK == null || colCamposPK.size() == 0) {
      return false;
    }
    for (final Iterator it = colCamposPK.iterator(); it.hasNext(); ) {
      final CamposObjetoNegocioDTO camposObjetoNegocioDTO = (CamposObjetoNegocioDTO) it.next();
      ObjetoNegocioDTO objetoNegocioDTO = new ObjetoNegocioDTO();

      objetoNegocioDTO.setIdObjetoNegocio(camposObjetoNegocioDTO.getIdObjetoNegocio());
      objetoNegocioDTO = (ObjetoNegocioDTO) objetoNegocioDao.restore(objetoNegocioDTO);

      if (objetoNegocioDTO != null) {
        if (!sqlFields.equalsIgnoreCase("")) {
          sqlFields += ", ";
        }
        sqlFields +=
            objetoNegocioDTO.getNomeTabelaDB()
                + "."
                + camposObjetoNegocioDTO.getNomeDB()
                + " Val_"
                + i;
      }
      if (!sqlFilter.equalsIgnoreCase("")) {
        sqlFilter += " AND ";
      }
      String pref = "";
      String suf = "";
      final String comp = "=";
      if (MetaUtil.isStringType(camposObjetoNegocioDTO.getTipoDB().trim())) {
        pref = "'";
        suf = "'";
      }
      String strVal = (String) hashValores.get(camposObjetoNegocioDTO.getNomeDB().toUpperCase());
      if (strVal != null) {
        if (strVal.trim().equalsIgnoreCase("")) {
          // Se nao existir valor para a PK, eh que nao existe!
          return false;
        }
        if (MetaUtil.isNumericType(camposObjetoNegocioDTO.getTipoDB().trim())) {
          final int x = strVal.indexOf("["); // Vai ate este ponto, pois o codigo fica entre [x]
          if (x > -1) {
            strVal = strVal.substring(x);
          }
          strVal = UtilStrings.apenasNumeros(strVal);
        }
        strVal = strVal.replaceAll(",00", "");
        strVal = strVal.replaceAll("\\,", ".");
        sqlFilter +=
            objetoNegocioDTO.getNomeTabelaDB()
                + "."
                + camposObjetoNegocioDTO.getNomeDB()
                + " "
                + comp
                + " "
                + pref
                + strVal
                + suf;
      } else {
        // Se nao existir valor para a PK, eh que nao existe!
        return false;
      }
      i++;
    }

    sql += sqlFields + " FROM " + this.generateFrom(colCamposPK) + " WHERE " + sqlFilter;

    final Collection colRet = this.getDao().execSQL(sql, null);
    if (colRet == null) {
      return false;
    }
    if (colRet.size() > 0) {
      return true;
    }
    return false;
  }