package action;
import bo.Stanta;
import daoI.IStantaDao;
import dao.StantaDao;
import bo.Proba;
import auxiliar.MetodaStantei;
import dao.ProbaDao;
import daoI.IProbaDao;
import java.util.ArrayList;
import java.util.List;
import net.sourceforge.stripes.action.DefaultHandler;
import net.sourceforge.stripes.action.ForwardResolution;
import net.sourceforge.stripes.action.Resolution;
public class StantaActionBean extends BaseActionBean {
private MetodaStantei metStantei;
private String stantaInput;
private String taraInput;
private String diametruInput;
private String inaltimeInput;
private String rand1Coloana2;
private String rand2Coloana2;
@DefaultHandler
public Resolution view() {
metStantei = new MetodaStantei();
IStantaDao stantaDao = new StantaDao();
Stanta stantaAuxiliar = stantaDao.getStantaByIDProba(Integer.parseInt(getContext().getRequest().getSession().getAttribute("idProba").toString()));
if (stantaAuxiliar != null) {
metStantei.setDensitateSchelet(getDensitateSchelet());
metStantei.setStanta(stantaAuxiliar.getStanta());
metStantei.setSuprafataStanta(getSuprafataStanta(stantaAuxiliar));
metStantei.setVolumStanta(getVolumStanta(stantaAuxiliar));
metStantei.setTara(stantaAuxiliar.getTara());
metStantei.setDiametruStanta(stantaAuxiliar.getDiamStanta());
metStantei.setInltimeStanta(stantaAuxiliar.getInaltimeStanta());
List<Float> param = new ArrayList<Float>();
param.add(stantaAuxiliar.getM1());
param.add(stantaAuxiliar.getM2());
param.add(stantaAuxiliar.getTara());
param.add(stantaAuxiliar.getDiamStanta());
param.add(stantaAuxiliar.getInaltimeStanta());
Float ros = Float.parseFloat(getRs());
Float vs = (float) (param.get(3) * 3.1418 * param.get(3) / 4 * param.get(4));
List col2 = formulaStantaCol2(param, vs, ros);
List col3 = formulaStantaCol3(param, 0, ros);
metStantei.setInitialC(col2);
metStantei.setFinalC(col3);
metStantei.setConstantaDeCalcul(getConstantaDeCalcul(stantaAuxiliar,(Float)col2.get(4)));
}
getContext().getRequest().getSession(true).setAttribute("stanta", metStantei);
return new ForwardResolution("/WEB-INF/jsp/stanta.jsp");
}
public Resolution submit() {
IProbaDao probaDao = new ProbaDao();
//proba curenta
Proba proba = probaDao.geProbaByID(Integer.parseInt(getContext().getRequest().getSession().getAttribute("idProba").toString()));
IStantaDao stantaDao = new StantaDao();
Stanta stanta = new Stanta(proba, Float.parseFloat(getRand1Coloana2()), Float.parseFloat(getRand2Coloana2()), null, getStantaInput(), Float.parseFloat(getTaraInput()), Float.parseFloat(getDiametruInput()), Float.parseFloat(getInaltimeInput()));
Stanta stantaAuxiliar = stantaDao.getStantaByIDProba(proba.getIdProba());
if (stantaAuxiliar == null) {
stantaDao.saveOrUpdate(stanta);
} else {
stanta.setIdStanta(stantaAuxiliar.getIdStanta());
stantaDao.saveOrUpdate(stanta);
}
Stanta stantaDinBd = stantaDao.getStantaByIDProba(proba.getIdProba());
metStantei = new MetodaStantei();
metStantei.setDensitateSchelet(getDensitateSchelet());
metStantei.setStanta(stantaDinBd.getStanta());
metStantei.setSuprafataStanta(getSuprafataStanta(stantaDinBd));
metStantei.setVolumStanta(getVolumStanta(stantaDinBd));
metStantei.setTara(stantaDinBd.getTara());
metStantei.setDiametruStanta(stantaDinBd.getDiamStanta());
metStantei.setInltimeStanta(stantaDinBd.getInaltimeStanta());
List<Float> param = new ArrayList<Float>();
param.add(stantaDinBd.getM1());
param.add(stantaDinBd.getM2());
param.add(stantaDinBd.getTara());
param.add(stantaDinBd.getDiamStanta());
param.add(stantaDinBd.getInaltimeStanta());
Float ros = Float.parseFloat(getRs());
Float vs = (float) (param.get(3) * 3.1418 * param.get(3) / 4 * param.get(4));
List col2 = formulaStantaCol2(param, vs, ros);
List col3 = formulaStantaCol3(param, 0, ros);
metStantei.setInitialC(col2);
metStantei.setFinalC(col3);
getContext().getRequest().getSession(true).setAttribute("stanta", metStantei);
return new ForwardResolution("/WEB-INF/jsp/stanta.jsp");
}
public List<Float> formulaStantaCol2(List<Float> dateIn, float vs, float ds) {
List<Float> dateOut = new ArrayList<Float>();
Float formula = (float) 0;
formula = dateIn.get(0);
dateOut.add((Float)zecimale(formula,3));
formula = dateIn.get(1);
dateOut.add((Float)zecimale(formula,3));
formula = dateIn.get(2);
dateOut.add((Float)zecimale(formula,3));
formula = dateIn.get(0) - dateIn.get(1);
dateOut.add((Float)zecimale(formula,3));
formula = dateIn.get(0) - dateIn.get(2);
dateOut.add((Float)zecimale(formula,3));
formula = dateIn.get(1) - dateIn.get(2);
dateOut.add((Float)zecimale(formula,3));
formula = vs;
dateOut.add((Float)zecimale(formula,3));
formula = dateOut.get(3) / dateOut.get(5) * 100;
dateOut.add((Float)zecimale(formula,3));
formula = dateOut.get(4) / dateOut.get(6);
dateOut.add((Float)zecimale(formula,3));
formula = dateOut.get(5) / dateOut.get(6);
dateOut.add((Float)zecimale(formula,3));
formula = (1 - dateOut.get(5) / (dateOut.get(6) * ds));
dateOut.add((Float)zecimale(formula,3));
formula = dateOut.get(10) / (1 - dateOut.get(10));
dateOut.add((Float)zecimale(formula,3));
formula = dateOut.get(7) / 100 * ds / dateOut.get(11);
dateOut.add((Float)zecimale(formula,3));
return dateOut;
}
public List<Float> formulaStantaCol3(List<Float> dateIn, float vs, float ds) {
List<Float> dateOut = new ArrayList<Float>();
Float formula = (float) 0;
formula = dateIn.get(0);
dateOut.add((Float)zecimale(formula,3));
formula = dateIn.get(1);
dateOut.add((Float)zecimale(formula,3));
formula = dateIn.get(2);
dateOut.add((Float)zecimale(formula,3));
formula = dateIn.get(0) - dateIn.get(1);
dateOut.add((Float)zecimale(formula,3));
formula = dateIn.get(0) - dateIn.get(2);
dateOut.add((Float)zecimale(formula,3));
formula = dateIn.get(1) - dateIn.get(2);
dateOut.add((Float)zecimale(formula,3));
formula = vs;
dateOut.add((Float)zecimale(formula,3));
formula = dateOut.get(3) / dateOut.get(5) * 100;
dateOut.add((Float)zecimale(formula,3));
formula = dateOut.get(4) / dateOut.get(6);
dateOut.add((Float)zecimale(formula,3));
formula = dateOut.get(5) / dateOut.get(6);
dateOut.add((Float)zecimale(formula,3));
formula = (1 - dateOut.get(5) / (dateOut.get(6) * ds));
dateOut.add((Float)zecimale(formula,3));
formula = dateOut.get(10) / (1 - dateOut.get(10));
dateOut.add((Float)zecimale(formula,3));
formula = dateOut.get(7) / 100 * ds / dateOut.get(11);
dateOut.add((Float)zecimale(formula,3));
return dateOut;
}
public Float getDensitateSchelet() {
return(Float)zecimale( Float.parseFloat(getRs()),2);
}
public Float getSuprafataStanta(Stanta stanta) {
Float diametruStanta = stanta.getDiamStanta();
return (Float)zecimale( (diametruStanta * 3.1418 * diametruStanta / 4),2);
}
public Float getVolumStanta(Stanta stanta) {
return (Float)zecimale(getSuprafataStanta(stanta) * stanta.getInaltimeStanta(),2);
}
public Float getConstantaDeCalcul(Stanta stanta, Float param) {
return (Float)zecimale(getSuprafataStanta(stanta) * getDensitateSchelet() / param,2);
}
public String getDiametruInput() {
return diametruInput;
}
public void setDiametruInput(String diametruInput) {
this.diametruInput = diametruInput;
}
public String getInaltimeInput() {
return inaltimeInput;
}
public void setInaltimeInput(String inaltimeInput) {
this.inaltimeInput = inaltimeInput;
}
public String getStantaInput() {
return stantaInput;
}
public void setStantaInput(String stantaInput) {
this.stantaInput = stantaInput;
}
public String getTaraInput() {
return taraInput;
}
public void setTaraInput(String taraInput) {
this.taraInput = taraInput;
}
public String getRand1Coloana2() {
return rand1Coloana2;
}
public void setRand1Coloana2(String rand1Coloana2) {
this.rand1Coloana2 = rand1Coloana2;
}
public String getRand2Coloana2() {
return rand2Coloana2;
}
public void setRand2Coloana2(String rand2Coloana2) {
this.rand2Coloana2 = rand2Coloana2;
}
}