private void addMaleza(XMLGregorianCalendar cal, visita v, GregorianCalendar c) {
    fertinsumos.dataservice.maleza.ObjectFactory factory =
        new fertinsumos.dataservice.maleza.ObjectFactory();
    fertinsumos.dataservice.maleza.AgregaMaleza maleza = factory.createAgregaMaleza();
    maleza.setFechaVisita(cal);
    maleza.setNombre(v.getMaleza());
    maleza.setPoblacion(v.getPobMaleza());

    malezaService.agregaMaleza(maleza.getFechaVisita(), maleza.getNombre(), maleza.getPoblacion());

    maleza hierva = new maleza(c.getTime(), v.getMaleza(), v.getPobMaleza());
    listaMalezas.add(hierva);
  }
  @RequestMapping(value = "agregaMaleza", method = RequestMethod.POST)
  public String addMaleza(
      @ModelAttribute("visitaForm") visita t, @ModelAttribute("malezas") List<maleza> lista)
      throws Exception {
    GregorianCalendar cal = new GregorianCalendar();
    cal.setTime(t.getFecha());

    maleza m = new maleza(cal.getTime(), t.getMaleza(), t.getPobMaleza());

    malezaService.agregaMaleza(
        DatatypeFactory.newInstance().newXMLGregorianCalendar(cal),
        t.getMaleza(),
        t.getPobMaleza());

    listaMalezas.add(m);

    return "redirect:informesDone";
  }
  private void addEnfermedad(XMLGregorianCalendar cal, visita v, GregorianCalendar c) {
    fertinsumos.dataservice.enfermedad.ObjectFactory factory =
        new fertinsumos.dataservice.enfermedad.ObjectFactory();
    fertinsumos.dataservice.enfermedad.AgregaEnfermendad enfermedad =
        factory.createAgregaEnfermendad();
    enfermedad.setFechaVisita(cal);
    enfermedad.setNombre(v.getMaleza());

    enfermedadService.agregaEnfermendad(cal, v.getEnfermedad());

    listaSick.add(v.getEnfermedad());
  }
  @RequestMapping(value = "/agregaVisita", method = RequestMethod.POST)
  public String parcelas(@ModelAttribute("visitaForm") visita v, Model m) throws Exception {

    ObjectFactory obj = new ObjectFactory();
    InsertaVisita visit = obj.createInsertaVisita();
    GregorianCalendar c = new GregorianCalendar();
    XMLGregorianCalendar cal = DatatypeFactory.newInstance().newXMLGregorianCalendar(c);

    setTimeStamp(c, v.getFecha());

    visit.setFecha(cal);
    visit.setNombreLote(v.getNombreLote());
    visit.setNombreParcela(v.getNombreParcela());
    visit.setRecomendacion(v.getRecomendacion());
    visit.setComentarios(v.getComentarios());
    visit.setRfc(v.getRfc());
    visit.setProductor(v.getProductor());
    visit.setAsesor(v.getAsesor());

    visitaService.insertaVisita(
        visit.getComentarios(),
        visit.getFecha(),
        visit.getNombreLote(),
        visit.getNombreParcela(),
        visit.getProductor(),
        visit.getRecomendacion(),
        visit.getRfc(),
        visit.getAsesor());

    if (v.getMaleza().length() > 0) addMaleza(cal, v, c);

    if (v.getPlaga().length() > 0) addPlaga(cal, v, c);

    if (v.getEnfermedad().length() > 0) addEnfermedad(cal, v, c);

    m.addAttribute("malezas", listaMalezas);
    m.addAttribute("plagas", listaPlagas);
    m.addAttribute("enfermedades", listaSick);

    return "informesDone";
  }