예제 #1
0
  private void inputLorryWithoutReserv(String[] request) {
    ResultSet rs = null;

    String[] idList = request[2].split("@");

    try {
      rs = beanOracle.selection("X, Y", "PARC", "ETAT=0");
    } catch (SQLException ex) {
      SendMsg("ERR#Base de donnée inaccessible");
      System.err.println("Erreur SQL exception input lorry" + ex.getStackTrace());
      return;
    }

    String reponse = "ACK#";
    ArrayList emplacement = new ArrayList();

    try // on regarde si y'a assez de place et on recupere l'id de ces places.
    {
      for (int i = 0; i < idList.length; i++) {
        if (rs.next()) {
          reponse =
              reponse + idList[i] + "==>(" + rs.getString("X") + ";" + rs.getString("Y") + ")@";
          emplacement.add(rs.getString("X") + ";" + rs.getString("Y"));
        } else {
          SendMsg("ERR#Erreur pas assez de places");
          return;
        }
      }
    } catch (SQLException ex) {
      SendMsg("ERR#Base de donnée inaccessible");
      System.err.println("Erreur SQL exception input lorry" + ex.getStackTrace());
      return;
    }

    // On insert les containers ajoutés dans la BD et on leur met un numéro de réservation + on
    // réserve leurs places
    Random rand = new Random();
    int resID = rand.nextInt(999999);
    for (int i = 0; i < idList.length; i++) {
      String[] coord = emplacement.get(i).toString().split(";");
      HashMap<String, String> insertion = new HashMap();
      HashMap<String, String> update = new HashMap();

      insertion.put("ID_CONTAINER", idList[i]);
      insertion.put("RESERVATION", Integer.toString(resID));

      update.put("ETAT", "1");

      try {
        beanOracle.ecriture("CONTAINERS", insertion);
        beanOracle.miseAJour("PARC", update, "X=" + coord[0] + " AND Y=" + coord[1]);
      } catch (requeteException ex) {
        System.err.println("Erreur d'insertion ");
      }
    }

    SendMsg(reponse);
  }