예제 #1
0
  @RoleAdmin
  @RoleAdminMissao
  @RoleAdminMissaoComplexo
  public static void salvar(@Valid Afastamento afastamento) throws Exception {
    String template;

    if ((afastamento.dataHoraInicio != null)
        && (afastamento.dataHoraFim != null)
        && (!afastamento.descricao.equals(""))) {
      if (!afastamento.ordemDeDatasCorreta()) {
        Validation.addError("dataHoraInicio", "afastamentos.dataHoraInicio.validation");
      }
    }

    template = afastamento.id > 0 ? "Afastamentos/editar.html" : "Afastamentos/incluir.html";

    if (Validation.hasErrors()) {
      List<Condutor> condutores = Condutor.listarTodos(AutorizacaoGI.titular().getOrgaoUsuario());
      renderTemplate(template, afastamento, condutores);
    } else {
      List<Missao> missoes =
          Missao.retornarMissoes(
              "condutor.id",
              afastamento.condutor.id,
              afastamento.condutor.cpOrgaoUsuario.getId(),
              afastamento.dataHoraInicio,
              afastamento.dataHoraFim);
      String listaMissoes = "";
      String delimitador = "";

      for (Missao item : missoes) {
        listaMissoes += delimitador;
        listaMissoes += item.getSequence();
        delimitador = ",";
      }

      if (missoes.size() > 0) {
        Validation.addError("LinkErroCondutor", listaMissoes);
        renderTemplate(template, afastamento);
      } else {
        afastamento.save();
        listarPorCondutor(afastamento.condutor.id);
      }
    }
  }
예제 #2
0
  private static String gerarTimeLine(
      Calendar dataHoraPesquisa,
      String registros,
      List<Afastamento> afastamentos,
      List<Plantao> plantoes,
      List<Missao> missoes,
      List<ServicoVeiculo> servicosVeiculos,
      String entidade) {

    String delim = "";
    if (!registros.isEmpty()) delim = ", ";

    for (Afastamento afastamento : afastamentos) {
      registros += delim;
      SimpleDateFormat formatoData = new SimpleDateFormat("yyyy,M,d,H,m,s");

      registros +=
          "[ \'" + "Afastamentos" + "\', \'" + afastamento.condutor.getNome() + "\', new Date(";

      if (afastamento.dataHoraInicio.get(Calendar.YEAR) == dataHoraPesquisa.get(Calendar.YEAR)
          && afastamento.dataHoraInicio.get(Calendar.MONTH) == dataHoraPesquisa.get(Calendar.MONTH)
          && afastamento.dataHoraInicio.get(Calendar.DAY_OF_MONTH)
              == dataHoraPesquisa.get(Calendar.DAY_OF_MONTH)
          && afastamento.dataHoraInicio.after(dataHoraPesquisa)) {
        registros += formatoData.format(afastamento.dataHoraInicio.getTime()) + "), new Date(";
      } else {
        Calendar dataHora =
            recuperarDataEHora(
                dataHoraPesquisa, HORA_INICIAL_DIA, MINUTO_INICIAL_DIA, SEGUNDO_INICIAL_DIA);
        registros += formatoData.format(dataHora.getTime()) + "), new Date(";
      }

      if (afastamento.dataHoraFim != null) {
        if (afastamento.dataHoraFim.get(Calendar.YEAR) == dataHoraPesquisa.get(Calendar.YEAR)
            && afastamento.dataHoraFim.get(Calendar.MONTH) == dataHoraPesquisa.get(Calendar.MONTH)
            && afastamento.dataHoraFim.get(Calendar.DAY_OF_MONTH)
                == dataHoraPesquisa.get(Calendar.DAY_OF_MONTH)
            && afastamento.dataHoraFim.after(dataHoraPesquisa)) {
          registros += formatoData.format(afastamento.dataHoraFim.getTime()) + ") ]";
          delim = ", ";
          continue;
        }
      }
      Calendar dataHora =
          recuperarDataEHora(
              dataHoraPesquisa,
              HORA_FINAL_EXPEDIENTE,
              MINUTO_FINAL_EXPEDIENTE,
              SEGUNDO_FINAL_EXPEDIENTE);
      registros += formatoData.format(dataHora.getTime()) + ") ]";
      delim = ", ";
    }

    for (Plantao plantao : plantoes) {
      registros += delim;
      SimpleDateFormat formatoData = new SimpleDateFormat("yyyy,M,d,H,m,s");

      registros += "[ \'" + "Plantoes" + "\', \'" + plantao.condutor.getNome() + "\', new Date(";

      if (plantao.dataHoraInicio.get(Calendar.YEAR) == dataHoraPesquisa.get(Calendar.YEAR)
          && plantao.dataHoraInicio.get(Calendar.MONTH) == dataHoraPesquisa.get(Calendar.MONTH)
          && plantao.dataHoraInicio.get(Calendar.DAY_OF_MONTH)
              == dataHoraPesquisa.get(Calendar.DAY_OF_MONTH)
          && plantao.dataHoraInicio.after(dataHoraPesquisa)) {
        registros += formatoData.format(plantao.dataHoraInicio.getTime()) + "), new Date(";
      } else {
        Calendar dataHora =
            recuperarDataEHora(
                dataHoraPesquisa, HORA_INICIAL_DIA, MINUTO_INICIAL_DIA, SEGUNDO_INICIAL_DIA);
        registros += formatoData.format(dataHora.getTime()) + "), new Date(";
      }

      if (plantao.dataHoraFim != null) {
        if (plantao.dataHoraFim.get(Calendar.YEAR) == dataHoraPesquisa.get(Calendar.YEAR)
            && plantao.dataHoraFim.get(Calendar.MONTH) == dataHoraPesquisa.get(Calendar.MONTH)
            && plantao.dataHoraFim.get(Calendar.DAY_OF_MONTH)
                == dataHoraPesquisa.get(Calendar.DAY_OF_MONTH)
            && plantao.dataHoraFim.after(dataHoraPesquisa)) {
          registros += formatoData.format(plantao.dataHoraFim.getTime()) + ") ]";
          delim = ", ";
          continue;
        }
      }
      Calendar dataHora =
          recuperarDataEHora(
              dataHoraPesquisa,
              HORA_FINAL_EXPEDIENTE,
              MINUTO_FINAL_EXPEDIENTE,
              SEGUNDO_FINAL_EXPEDIENTE);
      registros += formatoData.format(dataHora.getTime()) + ") ]";
      delim = ", ";
    }

    for (ServicoVeiculo servicoVeiculo : servicosVeiculos) {
      registros += delim;
      SimpleDateFormat formatoData = new SimpleDateFormat("yyyy,M,d,H,m,s");

      registros += "[ \'" + "Servicos" + "\', \'" + servicoVeiculo.veiculo.placa + "\', new Date(";

      if (servicoVeiculo.dataHoraInicio.get(Calendar.YEAR) == dataHoraPesquisa.get(Calendar.YEAR)
          && servicoVeiculo.dataHoraInicio.get(Calendar.MONTH)
              == dataHoraPesquisa.get(Calendar.MONTH)
          && servicoVeiculo.dataHoraInicio.get(Calendar.DAY_OF_MONTH)
              == dataHoraPesquisa.get(Calendar.DAY_OF_MONTH)
          && servicoVeiculo.dataHoraInicio.after(dataHoraPesquisa)) {
        registros += formatoData.format(servicoVeiculo.dataHoraInicio.getTime()) + "), new Date(";
      } else {
        Calendar dataHora =
            recuperarDataEHora(
                dataHoraPesquisa, HORA_INICIAL_DIA, MINUTO_INICIAL_DIA, SEGUNDO_INICIAL_DIA);
        registros += formatoData.format(dataHora.getTime()) + "), new Date(";
      }

      if (servicoVeiculo.dataHoraFim != null) {
        if (servicoVeiculo.dataHoraFim.get(Calendar.YEAR) == dataHoraPesquisa.get(Calendar.YEAR)
            && servicoVeiculo.dataHoraFim.get(Calendar.MONTH)
                == dataHoraPesquisa.get(Calendar.MONTH)
            && servicoVeiculo.dataHoraFim.get(Calendar.DAY_OF_MONTH)
                == dataHoraPesquisa.get(Calendar.DAY_OF_MONTH)
            && servicoVeiculo.dataHoraFim.after(dataHoraPesquisa)) {
          registros += formatoData.format(servicoVeiculo.dataHoraFim.getTime()) + ") ]";
          delim = ", ";
          continue;
        }
      }
      Calendar dataHora =
          recuperarDataEHora(
              dataHoraPesquisa,
              HORA_FINAL_EXPEDIENTE,
              MINUTO_FINAL_EXPEDIENTE,
              SEGUNDO_FINAL_EXPEDIENTE);
      registros += formatoData.format(dataHora.getTime()) + ") ]";
      delim = ", ";
    }

    String label = "condutor";
    for (Missao missao : missoes) {
      registros += delim;
      SimpleDateFormat formatoData = new SimpleDateFormat("yyyy,M,d,H,m,s");

      if (entidade.equals("condutor")) {
        label = missao.getSequence() + "-" + missao.condutor.getNome();
      } else {
        label = missao.getSequence() + "-" + missao.veiculo.placa;
      }

      registros += "[ \'" + "Missoes" + "\', \'" + label + "\', new Date(";

      if (missao.dataHoraSaida.get(Calendar.YEAR) == dataHoraPesquisa.get(Calendar.YEAR)
          && missao.dataHoraSaida.get(Calendar.MONTH) == dataHoraPesquisa.get(Calendar.MONTH)
          && missao.dataHoraSaida.get(Calendar.DAY_OF_MONTH)
              == dataHoraPesquisa.get(Calendar.DAY_OF_MONTH)
          && missao.dataHoraSaida.after(dataHoraPesquisa)) {
        registros += formatoData.format(missao.dataHoraSaida.getTime()) + "), new Date(";
      } else {
        Calendar dataHora =
            recuperarDataEHora(
                dataHoraPesquisa, HORA_INICIAL_DIA, MINUTO_INICIAL_DIA, SEGUNDO_INICIAL_DIA);
        registros += formatoData.format(dataHora.getTime()) + "), new Date(";
      }

      if (missao.dataHoraRetorno != null) {
        if (missao.dataHoraRetorno.get(Calendar.YEAR) == dataHoraPesquisa.get(Calendar.YEAR)
            && missao.dataHoraRetorno.get(Calendar.MONTH) == dataHoraPesquisa.get(Calendar.MONTH)
            && missao.dataHoraRetorno.get(Calendar.DAY_OF_MONTH)
                == dataHoraPesquisa.get(Calendar.DAY_OF_MONTH)
            && missao.dataHoraRetorno.after(dataHoraPesquisa)) {
          registros += formatoData.format(missao.dataHoraRetorno.getTime()) + ") ]";
          delim = ", ";
          continue;
        }
      }
      Calendar dataHora =
          recuperarDataEHora(
              dataHoraPesquisa,
              HORA_FINAL_EXPEDIENTE,
              MINUTO_FINAL_EXPEDIENTE,
              SEGUNDO_FINAL_EXPEDIENTE);
      registros += formatoData.format(dataHora.getTime()) + ") ]";
      delim = ", ";
    }
    return registros;
  }