entities.fertilizacion.HistoricoFertilizacion.java Source code

Java tutorial

Introduction

Here is the source code for entities.fertilizacion.HistoricoFertilizacion.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package entities.fertilizacion;

import com.mongodb.Block;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import db.MongoManager;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import org.bson.Document;
import org.bson.types.ObjectId;

/**
 *
 * @author VICTOR OQUENDO
 */
public class HistoricoFertilizacion implements Serializable {

    ObjectId id;
    ObjectId idProduccion;
    List<HistoricoFertilizacionLote> listadoHistoricoFertilizacionLote;

    ObjectId idCliente;
    ObjectId idHacienda;
    ObjectId idCultivo;
    ObjectId idVariedad;
    Integer anio;
    Produccion produccion;
    String leyendaCliente;
    String leyendaHacienda;
    String leyendaCultivo;
    String leyendaVariedad;

    public HistoricoFertilizacion() {
        anio = 0;
        produccion = new Produccion();
        listadoHistoricoFertilizacionLote = new ArrayList<>();
        leyendaCliente = "";
        leyendaHacienda = "";
        leyendaCultivo = "";
        leyendaVariedad = "";
    }

    public ObjectId getId() {
        return id;
    }

    public void setId(ObjectId id) {
        this.id = id;
    }

    public ObjectId getIdCliente() {
        return idCliente;
    }

    public void setIdCliente(ObjectId idCliente) {
        this.idCliente = idCliente;
    }

    public ObjectId getIdHacienda() {
        return idHacienda;
    }

    public void setIdHacienda(ObjectId idHacienda) {
        this.idHacienda = idHacienda;
    }

    public ObjectId getIdCultivo() {
        return idCultivo;
    }

    public void setIdCultivo(ObjectId idCultivo) {
        this.idCultivo = idCultivo;
    }

    public ObjectId getIdVariedad() {
        return idVariedad;
    }

    public void setIdVariedad(ObjectId idVariedad) {
        this.idVariedad = idVariedad;
    }

    public Integer getAnio() {
        return anio;
    }

    public void setAnio(Integer anio) {
        this.anio = anio;
    }

    public Produccion getProduccion() {
        return produccion;
    }

    public void setProduccion(Produccion produccion) {
        this.produccion = produccion;
    }

    public List<HistoricoFertilizacionLote> getListadoHistoricoFertilizacionLote() {
        return listadoHistoricoFertilizacionLote;
    }

    public void setListadoHistoricoFertilizacionLote(
            List<HistoricoFertilizacionLote> listadoHistoricoFertilizacionLote) {
        this.listadoHistoricoFertilizacionLote = listadoHistoricoFertilizacionLote;
    }

    public ObjectId getIdProduccion() {
        return idProduccion;
    }

    public void setIdProduccion(ObjectId idProduccion) {
        this.idProduccion = idProduccion;
    }

    public String getLeyendaCliente() {
        return leyendaCliente;
    }

    public void setLeyendaCliente(String leyendaCliente) {
        this.leyendaCliente = leyendaCliente;
    }

    public String getLeyendaHacienda() {
        return leyendaHacienda;
    }

    public void setLeyendaHacienda(String leyendaHacienda) {
        this.leyendaHacienda = leyendaHacienda;
    }

    public String getLeyendaCultivo() {
        return leyendaCultivo;
    }

    public void setLeyendaCultivo(String leyendaCultivo) {
        this.leyendaCultivo = leyendaCultivo;
    }

    public String getLeyendaVariedad() {
        return leyendaVariedad;
    }

    public void setLeyendaVariedad(String leyendaVariedad) {
        this.leyendaVariedad = leyendaVariedad;
    }

    public ObjectId save() {
        MongoManager mongo = MongoManager.getInstance();

        List<Document> lista = new ArrayList<>();
        for (int i = 0; i < listadoHistoricoFertilizacionLote.size(); i++) {
            Document aux = new Document("idLote", listadoHistoricoFertilizacionLote.get(i).idLote)
                    .append("n", BDecimalToStr(listadoHistoricoFertilizacionLote.get(i).n))
                    .append("p", BDecimalToStr(listadoHistoricoFertilizacionLote.get(i).p))
                    .append("k", BDecimalToStr(listadoHistoricoFertilizacionLote.get(i).k))
                    .append("ca", BDecimalToStr(listadoHistoricoFertilizacionLote.get(i).ca))
                    .append("mg", BDecimalToStr(listadoHistoricoFertilizacionLote.get(i).mg))
                    .append("s", BDecimalToStr(listadoHistoricoFertilizacionLote.get(i).s))
                    .append("b", BDecimalToStr(listadoHistoricoFertilizacionLote.get(i).b))
                    .append("mn", BDecimalToStr(listadoHistoricoFertilizacionLote.get(i).mn))
                    .append("zn", BDecimalToStr(listadoHistoricoFertilizacionLote.get(i).zn))
                    .append("cu", BDecimalToStr(listadoHistoricoFertilizacionLote.get(i).cu));
            lista.add(aux);
        }

        MongoCollection table = mongo.db.getCollection("historicoFertilizacion");
        Document obj = new Document("idProduccion", this.idProduccion).append("fertilizacionLote", lista);
        table.insertOne(obj);

        return (ObjectId) obj.get("_id");
    }

    public void update() {

        List<Document> lista = new ArrayList<>();
        for (int i = 0; i < listadoHistoricoFertilizacionLote.size(); i++) {
            Document aux = new Document("idLote", listadoHistoricoFertilizacionLote.get(i).idLote)
                    .append("n", BDecimalToStr(listadoHistoricoFertilizacionLote.get(i).n))
                    .append("p", BDecimalToStr(listadoHistoricoFertilizacionLote.get(i).p))
                    .append("k", BDecimalToStr(listadoHistoricoFertilizacionLote.get(i).k))
                    .append("ca", BDecimalToStr(listadoHistoricoFertilizacionLote.get(i).ca))
                    .append("mg", BDecimalToStr(listadoHistoricoFertilizacionLote.get(i).mg))
                    .append("s", BDecimalToStr(listadoHistoricoFertilizacionLote.get(i).s))
                    .append("b", BDecimalToStr(listadoHistoricoFertilizacionLote.get(i).b))
                    .append("mn", BDecimalToStr(listadoHistoricoFertilizacionLote.get(i).mn))
                    .append("zn", BDecimalToStr(listadoHistoricoFertilizacionLote.get(i).zn))
                    .append("cu", BDecimalToStr(listadoHistoricoFertilizacionLote.get(i).cu));
            lista.add(aux);
        }

        MongoManager mongo = MongoManager.getInstance();
        mongo.db.getCollection("historicoFertilizacion").updateOne(new Document("_id", this.id), new Document(
                "$set", new Document("idProduccion", this.idProduccion).append("fertilizacionLote", lista)));

    }

    public static HistoricoFertilizacion getById(ObjectId id) {
        HistoricoFertilizacion obj = new HistoricoFertilizacion();

        MongoManager mongo = MongoManager.getInstance();

        FindIterable<Document> iterable = mongo.db.getCollection("historicoFertilizacion")
                .find(new Document("_id", id));

        iterable.forEach(new Block<Document>() {
            @Override
            public void apply(final Document document) {

                obj.id = document.getObjectId("_id");
                obj.produccion = Produccion.getById(document.getObjectId("idProduccion"));

                obj.idCliente = obj.produccion.getIdCliente();
                obj.idHacienda = obj.produccion.getIdHacienda();
                obj.idProduccion = obj.produccion.getId();

                List<Document> lista = (List<Document>) document.get("fertilizacionLote");
                int n = lista.size();
                for (int i = 0; i < n; i++) {
                    Document dbo = (Document) lista.get(i);
                    HistoricoFertilizacionLote aux = new HistoricoFertilizacionLote();
                    aux.idLote = (ObjectId) dbo.get("idLote");
                    aux.n = obj.StrToBDecimal(dbo.getString("n"));
                    aux.p = obj.StrToBDecimal(dbo.getString("p"));
                    aux.k = obj.StrToBDecimal(dbo.getString("k"));
                    aux.ca = obj.StrToBDecimal(dbo.getString("ca"));
                    aux.mg = obj.StrToBDecimal(dbo.getString("mg"));
                    aux.s = obj.StrToBDecimal(dbo.getString("s"));
                    aux.b = obj.StrToBDecimal(dbo.getString("b"));
                    aux.mn = obj.StrToBDecimal(dbo.getString("mn"));
                    aux.zn = obj.StrToBDecimal(dbo.getString("zn"));
                    aux.cu = obj.StrToBDecimal(dbo.getString("cu"));
                    aux.leyendaLote = Lote.getLoteById(aux.idLote).codigo;
                    aux.leyendaHectareas = Lote.getLoteById(aux.idLote).hectareas;

                    int m = obj.produccion.getListadoProduccionLote().size();
                    for (int j = 0; j < m; j++) {
                        if (aux.idLote.equals(obj.produccion.getListadoProduccionLote().get(j).getIdLote())) {
                            aux.prodLote = obj.produccion.getListadoProduccionLote().get(j).getProdLote();
                        }
                    }
                    obj.listadoHistoricoFertilizacionLote.add(aux);
                }

            }
        });

        return obj;
    }

    public static List<HistoricoFertilizacion> getAll() {
        List<HistoricoFertilizacion> res = new ArrayList<>();

        MongoManager mongo = MongoManager.getInstance();
        FindIterable<Document> iterable = mongo.db.getCollection("historicoFertilizacion").find()
                .sort(new Document("anio", -1));
        iterable.forEach(new Block<Document>() {
            @Override
            public void apply(final Document document) {
                HistoricoFertilizacion obj = new HistoricoFertilizacion();

                obj.id = document.getObjectId("_id");
                obj.produccion = Produccion.getById(document.getObjectId("idProduccion"));

                obj.idCliente = obj.produccion.getIdCliente();
                obj.idHacienda = obj.produccion.getIdHacienda();
                obj.idProduccion = obj.produccion.getId();

                List<Document> lista = (List<Document>) document.get("fertilizacionLote");
                int n = lista.size();
                for (int i = 0; i < n; i++) {
                    Document dbo = (Document) lista.get(i);
                    HistoricoFertilizacionLote aux = new HistoricoFertilizacionLote();
                    aux.idLote = (ObjectId) dbo.get("idLote");
                    aux.n = obj.StrToBDecimal(dbo.getString("n"));
                    aux.p = obj.StrToBDecimal(dbo.getString("p"));
                    aux.k = obj.StrToBDecimal(dbo.getString("k"));
                    aux.ca = obj.StrToBDecimal(dbo.getString("ca"));
                    aux.mg = obj.StrToBDecimal(dbo.getString("mg"));
                    aux.s = obj.StrToBDecimal(dbo.getString("s"));
                    aux.b = obj.StrToBDecimal(dbo.getString("b"));
                    aux.mn = obj.StrToBDecimal(dbo.getString("mn"));
                    aux.zn = obj.StrToBDecimal(dbo.getString("zn"));
                    aux.cu = obj.StrToBDecimal(dbo.getString("cu"));
                    aux.leyendaLote = Lote.getLoteById(aux.idLote).codigo;
                    aux.leyendaHectareas = Lote.getLoteById(aux.idLote).hectareas;

                    int m = obj.produccion.getListadoProduccionLote().size();
                    for (int j = 0; j < m; j++) {
                        if (aux.idLote.equals(obj.produccion.getListadoProduccionLote().get(j).getIdLote())) {
                            aux.prodLote = obj.produccion.getListadoProduccionLote().get(j).getProdLote();
                        }
                    }
                    obj.listadoHistoricoFertilizacionLote.add(aux);
                }

                res.add(obj);

            }

        });

        return res;
    }

    String BDecimalToStr(BigDecimal arg) {
        String res;
        res = arg.toString();
        return res;
    }

    BigDecimal StrToBDecimal(String arg) {
        BigDecimal res;
        res = new BigDecimal(arg);
        return res;
    }

}