Added Farm level and list of KPI to GROW_OUT_AGGREGATED
git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/performfish-analytics-portlet@179296 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
1ba0cc0c70
commit
fb3aadcfe3
|
@ -36,11 +36,32 @@ public class PerformFishAnalyticsConstant {
|
|||
public static final String PERFORM_FISH_FARMID_PARAM = "farmid";
|
||||
public static final String PERFORM_FISH_BATCH_TYPE_PARAM = "batch_type";
|
||||
public static final String PERFORM_FISH_SPECIES_ID_PARAM = "speciesid";
|
||||
public static final String PERFORM_FISH_ANNUAL_PARAMETER = "annual";
|
||||
|
||||
|
||||
public static final String DM_FOCUS_ID_ALL_VALUE = "ALL";
|
||||
|
||||
|
||||
|
||||
public static enum POPULATION_LEVEL{BATCH, FARM};
|
||||
|
||||
|
||||
/**
|
||||
* The Enum BATCH_LEVEL.
|
||||
*
|
||||
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||
* Feb 27, 2019
|
||||
*/
|
||||
public static enum BATCH_LEVEL{
|
||||
PRE_ONGROWING,
|
||||
PRE_ONGROWING_CLOSED_BATCHES,
|
||||
HATCHERY_INDIVIDUAL,
|
||||
HATCHERY_INDIVIDUAL_CLOSED_BATCHES,
|
||||
GROW_OUT_INDIVIDUAL,
|
||||
GROW_OUT_INDIVIDUAL_CLOSED_BATCHES,
|
||||
GROW_OUT_AGGREGATED,
|
||||
GROW_OUT_AGGREGATED_CLOSED_BATCHES
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -104,19 +104,36 @@ public class PerformFishAnalyticsController {
|
|||
|
||||
GWT.log("Decoded parameters: "+initParams);
|
||||
|
||||
final String batchtypeParam = initParams.get(PerformFishAnalyticsConstant.PERFORM_FISH_BATCH_TYPE_PARAM);
|
||||
final String farmidParam = initParams.get(PerformFishAnalyticsConstant.PERFORM_FISH_FARMID_PARAM);
|
||||
|
||||
if(batchtypeParam==null || batchtypeParam.isEmpty()){
|
||||
Window.alert("Error: no '"+PerformFishAnalyticsConstant.PERFORM_FISH_BATCH_TYPE_PARAM+"' param detected");
|
||||
return;
|
||||
final String annual = initParams.get(PerformFishAnalyticsConstant.PERFORM_FISH_ANNUAL_PARAMETER);
|
||||
|
||||
boolean isAnnualCall = false;
|
||||
|
||||
try {
|
||||
isAnnualCall = Boolean.parseBoolean(annual);
|
||||
}catch (Exception e) {
|
||||
// TODO: handle exception
|
||||
}
|
||||
|
||||
final String farmidParam = initParams.get(PerformFishAnalyticsConstant.PERFORM_FISH_FARMID_PARAM);
|
||||
|
||||
if(farmidParam==null || farmidParam.isEmpty()){
|
||||
Window.alert("Error: no '"+PerformFishAnalyticsConstant.PERFORM_FISH_FARMID_PARAM+"' param detected");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
String batchtypeParam = initParams.get(PerformFishAnalyticsConstant.PERFORM_FISH_BATCH_TYPE_PARAM);
|
||||
|
||||
if(batchtypeParam==null || batchtypeParam.isEmpty()){
|
||||
Window.alert("Error: no '"+PerformFishAnalyticsConstant.PERFORM_FISH_BATCH_TYPE_PARAM+"' param detected");
|
||||
return;
|
||||
}
|
||||
|
||||
if(isAnnualCall) {
|
||||
batchtypeParam = PerformFishAnalyticsConstant.BATCH_LEVEL.GROW_OUT_AGGREGATED_CLOSED_BATCHES.name();
|
||||
GWT.log("Hard cabling batchtypeParam as: "+batchtypeParam);
|
||||
}
|
||||
|
||||
PerformFishInitParameter performFishInitParams = new PerformFishInitParameter();
|
||||
performFishInitParams.addParameter(PerformFishAnalyticsConstant.PERFORM_FISH_BATCH_TYPE_PARAM, batchtypeParam);
|
||||
performFishInitParams.addParameter(PerformFishAnalyticsConstant.PERFORM_FISH_FARMID_PARAM, farmidParam);
|
||||
|
|
|
@ -11,6 +11,7 @@ import java.util.List;
|
|||
import javax.persistence.EntityManagerFactory;
|
||||
import javax.servlet.ServletContext;
|
||||
|
||||
import org.gcube.portlets.user.performfishanalytics.client.PerformFishAnalyticsConstant;
|
||||
import org.gcube.portlets.user.performfishanalytics.server.persistence.GenericPersistenceDaoBuilder;
|
||||
import org.gcube.portlets.user.performfishanalytics.server.util.csv.CSVReader;
|
||||
import org.gcube.portlets.user.performfishanalytics.server.util.database.data.AreaData;
|
||||
|
@ -26,6 +27,7 @@ import org.gcube.portlets.user.performfishanalytics.shared.Population;
|
|||
import org.gcube.portlets.user.performfishanalytics.shared.PopulationType;
|
||||
import org.gcube.portlets.user.performfishanalytics.shared.Quarter;
|
||||
import org.gcube.portlets.user.performfishanalytics.shared.Species;
|
||||
import org.gcube.portlets.user.performfishanalytics.shared.Year;
|
||||
import org.gcube.portlets.user.performfishanalytics.shared.csv.CSVFile;
|
||||
import org.gcube.portlets.user.performfishanalytics.shared.csv.CSVRow;
|
||||
import org.slf4j.Logger;
|
||||
|
@ -44,26 +46,9 @@ public class FillDatabasePerBatchType {
|
|||
*
|
||||
*/
|
||||
public static final String RELATIVE_PATH_TO_BATCH_KPI = "BATCH/KPI";
|
||||
public static final String RELATIVE_PATH_TO_FARM_KPI = "FARM/KPI";
|
||||
protected static Logger log = LoggerFactory.getLogger(FillDatabasePerBatchType.class);
|
||||
|
||||
|
||||
/**
|
||||
* The Enum BATCH_LEVEL.
|
||||
*
|
||||
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||
* Feb 27, 2019
|
||||
*/
|
||||
public static enum BATCH_LEVEL{
|
||||
PRE_ONGROWING,
|
||||
PRE_ONGROWING_CLOSED_BATCHES,
|
||||
HATCHERY_INDIVIDUAL,
|
||||
HATCHERY_INDIVIDUAL_CLOSED_BATCHES,
|
||||
GROW_OUT_INDIVIDUAL,
|
||||
GROW_OUT_INDIVIDUAL_CLOSED_BATCHES,
|
||||
GROW_OUT_AGGREGATED,
|
||||
GROW_OUT_AGGREGATED_CLOSED_BATCHES
|
||||
}
|
||||
|
||||
/**
|
||||
* Prints the database data.
|
||||
*
|
||||
|
@ -77,7 +62,7 @@ public class FillDatabasePerBatchType {
|
|||
for(Population population: builderPopulation.getPersistenceEntity().getList()){
|
||||
log.debug("\n\n#### Population: "+population.getName());
|
||||
for (PopulationType populationType : population.getListPopulationType()) {
|
||||
log.debug("\t*PopulationType: "+populationType.getName() +" Type: "+populationType.getType());
|
||||
log.debug("\t{} Type: {}",populationType.getName(),populationType.getType());
|
||||
|
||||
log.debug("\t**has Species: "+populationType.getListSpecies().size());
|
||||
for (Species species : populationType.getListSpecies()) {
|
||||
|
@ -98,6 +83,12 @@ public class FillDatabasePerBatchType {
|
|||
for (Period period : populationType.getListPeriod()) {
|
||||
log.debug("\t\t"+period.getName());
|
||||
}
|
||||
|
||||
log.debug("\t**has Years: "+populationType.getListYears().size());
|
||||
for (Year year : populationType.getListYears()) {
|
||||
log.debug("\t\t"+year.getValue());
|
||||
}
|
||||
|
||||
log.debug("\t**has KPIs: "+populationType.getListKPI().size());
|
||||
for (KPI kpi : populationType.getListKPI()) {
|
||||
printKPIs(kpi);
|
||||
|
@ -155,17 +146,17 @@ public class FillDatabasePerBatchType {
|
|||
*/
|
||||
public static void fillDatabase(EntityManagerFactory entityManagerFactory, ServletContext context) throws Exception{
|
||||
|
||||
//INSERT POPULATION - BATCH
|
||||
//INSERT LEVEL OF KIND 'BATCH'
|
||||
Population batchPopulation = new Population(java.util.UUID.randomUUID().toString(), "BATCH", "BATCH", "BATCH Description", null);
|
||||
|
||||
List<PopulationType> listBatchLevels = loadKPIForBatchLevelFromResource(context);
|
||||
List<PopulationType> listBatchLevels = loadKPIForBatchLevelFromResource(context, RELATIVE_PATH_TO_BATCH_KPI);
|
||||
|
||||
//FILLING BATCH LEVEL/POPULATIONS
|
||||
for (PopulationType batchType : listBatchLevels) {
|
||||
|
||||
batchType.setPopulation(batchPopulation);
|
||||
|
||||
if(batchType.getName().equals(BATCH_LEVEL.PRE_ONGROWING.name()) || batchType.getName().equals(BATCH_LEVEL.PRE_ONGROWING_CLOSED_BATCHES.name())){
|
||||
if(batchType.getName().equals(PerformFishAnalyticsConstant.BATCH_LEVEL.PRE_ONGROWING.name()) || batchType.getName().equals(PerformFishAnalyticsConstant.BATCH_LEVEL.PRE_ONGROWING_CLOSED_BATCHES.name())){
|
||||
|
||||
//Species
|
||||
batchType.setListSpecies(SpeciesData.getListSpecies(batchType));
|
||||
|
@ -174,14 +165,14 @@ public class FillDatabasePerBatchType {
|
|||
//Periods
|
||||
batchType.setListPeriod(PeriodData.getListPeriods(batchType));
|
||||
|
||||
}else if(batchType.getName().equals(BATCH_LEVEL.HATCHERY_INDIVIDUAL.name()) || batchType.getName().equals(BATCH_LEVEL.HATCHERY_INDIVIDUAL_CLOSED_BATCHES.name())){
|
||||
}else if(batchType.getName().equals(PerformFishAnalyticsConstant.BATCH_LEVEL.HATCHERY_INDIVIDUAL.name()) || batchType.getName().equals(PerformFishAnalyticsConstant.BATCH_LEVEL.HATCHERY_INDIVIDUAL_CLOSED_BATCHES.name())){
|
||||
|
||||
//Species
|
||||
batchType.setListSpecies(SpeciesData.getListSpecies(batchType));
|
||||
//Periods
|
||||
batchType.setListPeriod(PeriodData.getListPeriods(batchType));
|
||||
|
||||
}else if(batchType.getName().equals(BATCH_LEVEL.GROW_OUT_INDIVIDUAL.name()) || batchType.getName().equals(BATCH_LEVEL.GROW_OUT_INDIVIDUAL_CLOSED_BATCHES.name())){
|
||||
}else if(batchType.getName().equals(PerformFishAnalyticsConstant.BATCH_LEVEL.GROW_OUT_INDIVIDUAL.name()) || batchType.getName().equals(PerformFishAnalyticsConstant.BATCH_LEVEL.GROW_OUT_INDIVIDUAL_CLOSED_BATCHES.name())){
|
||||
|
||||
//Species
|
||||
batchType.setListSpecies(SpeciesData.getListSpecies(batchType));
|
||||
|
@ -190,7 +181,7 @@ public class FillDatabasePerBatchType {
|
|||
//Areas
|
||||
batchType.setListArea(AreaData.getListArea(batchType));
|
||||
|
||||
}else if(batchType.getName().equals(BATCH_LEVEL.GROW_OUT_AGGREGATED_CLOSED_BATCHES.name())){
|
||||
}else if(batchType.getName().equals(PerformFishAnalyticsConstant.BATCH_LEVEL.GROW_OUT_AGGREGATED_CLOSED_BATCHES.name())){
|
||||
|
||||
//Species
|
||||
batchType.setListSpecies(SpeciesData.getListSpecies(batchType));
|
||||
|
@ -198,8 +189,7 @@ public class FillDatabasePerBatchType {
|
|||
batchType.setListQuarter(QuarterData.getListQuarter(batchType));
|
||||
//Areas
|
||||
batchType.setListArea(AreaData.getListArea(batchType));
|
||||
//Years
|
||||
batchType.setListYears(YearData.getListYears(batchType));
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -208,6 +198,28 @@ public class FillDatabasePerBatchType {
|
|||
GenericPersistenceDaoBuilder<Population> builderPopulation = new GenericPersistenceDaoBuilder<Population>(entityManagerFactory, "Population");
|
||||
batchPopulation.setListPopulationType(new ArrayList<PopulationType>(listBatchLevels));
|
||||
builderPopulation.getPersistenceEntity().insert(batchPopulation);
|
||||
|
||||
|
||||
//INSERT LEVEL OF KIND 'FARM'
|
||||
Population farmPopulation = new Population(java.util.UUID.randomUUID().toString(), "FARM", "FARM", "FARM Description", null);
|
||||
List<PopulationType> listFarmLevels = loadKPIForBatchLevelFromResource(context, RELATIVE_PATH_TO_FARM_KPI);
|
||||
//FILLING BATCH LEVEL/POPULATIONS
|
||||
|
||||
log.info("FARM batch types are: "+listBatchLevels);
|
||||
for (PopulationType batchTypeFarm : listFarmLevels) {
|
||||
|
||||
batchTypeFarm.setPopulation(farmPopulation);
|
||||
|
||||
if(batchTypeFarm.getName().equals(PerformFishAnalyticsConstant.BATCH_LEVEL.GROW_OUT_AGGREGATED_CLOSED_BATCHES.name())){
|
||||
//Years
|
||||
batchTypeFarm.setListYears(YearData.getListYears(batchTypeFarm));
|
||||
}
|
||||
}
|
||||
|
||||
//INSERTING BATCH LEVEL/POPULATIONS
|
||||
farmPopulation.setListPopulationType(new ArrayList<PopulationType>(listFarmLevels));
|
||||
builderPopulation.getPersistenceEntity().insert(farmPopulation);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -373,18 +385,18 @@ public class FillDatabasePerBatchType {
|
|||
* @param context the context
|
||||
* @return the list
|
||||
*/
|
||||
private static List<PopulationType> loadKPIForBatchLevelFromResource(ServletContext context){
|
||||
private static List<PopulationType> loadKPIForBatchLevelFromResource(ServletContext context, String pathToCSVKPI){
|
||||
|
||||
String kpiFolder = null;
|
||||
List<PopulationType> batchTypes = null;
|
||||
try{
|
||||
|
||||
String relKPIFolder = String.format("/WEB-INF/classes/%s", RELATIVE_PATH_TO_BATCH_KPI);
|
||||
String relKPIFolder = String.format("/WEB-INF/classes/%s", pathToCSVKPI);
|
||||
|
||||
if(context==null){
|
||||
log.warn("ECLIPSE MODE ACTIVES ADDING USER DIRECTORY");
|
||||
String workingDir = System.getProperty("user.dir");
|
||||
kpiFolder = String.format(workingDir+"/%s/%s", "src/main/resources", RELATIVE_PATH_TO_BATCH_KPI);
|
||||
kpiFolder = String.format(workingDir+"/%s/%s", "src/main/resources", pathToCSVKPI);
|
||||
}else{
|
||||
log.info("Getting real path of {}",relKPIFolder);
|
||||
kpiFolder = context.getRealPath(relKPIFolder);
|
||||
|
@ -406,7 +418,7 @@ public class FillDatabasePerBatchType {
|
|||
}
|
||||
if(log.isDebugEnabled()){
|
||||
for (PopulationType populationType : batchTypes) {
|
||||
log.info("****Batch {}",populationType);
|
||||
log.info("****{} {}",PopulationType.class.getSimpleName(),populationType);
|
||||
log.debug("\t**has KPIs: "+populationType.getListKPI().size());
|
||||
for (KPI kpi : populationType.getListKPI()) {
|
||||
printKPIs(kpi);
|
||||
|
|
|
@ -6,7 +6,8 @@ package org.gcube.portlets.user.performfishanalytics.server.util.database.data;
|
|||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.gcube.portlets.user.performfishanalytics.server.util.database.FillDatabasePerBatchType.BATCH_LEVEL;
|
||||
import org.gcube.portlets.user.performfishanalytics.client.PerformFishAnalyticsConstant;
|
||||
import org.gcube.portlets.user.performfishanalytics.client.PerformFishAnalyticsConstant.BATCH_LEVEL;
|
||||
import org.gcube.portlets.user.performfishanalytics.shared.Period;
|
||||
import org.gcube.portlets.user.performfishanalytics.shared.PopulationType;
|
||||
|
||||
|
@ -30,11 +31,11 @@ public class PeriodData {
|
|||
public static ArrayList<Period> getListPeriods(PopulationType batchType){
|
||||
|
||||
List<Period> listPeriod = new ArrayList<Period>();
|
||||
if(batchType.getName().startsWith(BATCH_LEVEL.PRE_ONGROWING.name()) || batchType.getName().startsWith(BATCH_LEVEL.PRE_ONGROWING_CLOSED_BATCHES.name())){
|
||||
if(batchType.getName().startsWith(PerformFishAnalyticsConstant.BATCH_LEVEL.PRE_ONGROWING.name()) || batchType.getName().startsWith(BATCH_LEVEL.PRE_ONGROWING_CLOSED_BATCHES.name())){
|
||||
listPeriod.add(new Period(java.util.UUID.randomUUID().toString(), "early", "", batchType));
|
||||
listPeriod.add(new Period(java.util.UUID.randomUUID().toString(), "natural", "", batchType));
|
||||
listPeriod.add(new Period(java.util.UUID.randomUUID().toString(), "late", "", batchType));
|
||||
}else if(batchType.getName().startsWith(BATCH_LEVEL.HATCHERY_INDIVIDUAL.name()) || batchType.getName().startsWith(BATCH_LEVEL.HATCHERY_INDIVIDUAL_CLOSED_BATCHES.name())){
|
||||
}else if(batchType.getName().startsWith(PerformFishAnalyticsConstant.BATCH_LEVEL.HATCHERY_INDIVIDUAL.name()) || batchType.getName().startsWith(BATCH_LEVEL.HATCHERY_INDIVIDUAL_CLOSED_BATCHES.name())){
|
||||
listPeriod.add(new Period(java.util.UUID.randomUUID().toString(), "natural", "", batchType));
|
||||
listPeriod.add(new Period(java.util.UUID.randomUUID().toString(), "late", "", batchType));
|
||||
listPeriod.add(new Period(java.util.UUID.randomUUID().toString(), "early", "", batchType));
|
||||
|
|
|
@ -7,7 +7,8 @@ package org.gcube.portlets.user.performfishanalytics.server.util.database.data;
|
|||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.gcube.portlets.user.performfishanalytics.server.util.database.FillDatabasePerBatchType.BATCH_LEVEL;
|
||||
import org.gcube.portlets.user.performfishanalytics.client.PerformFishAnalyticsConstant;
|
||||
import org.gcube.portlets.user.performfishanalytics.client.PerformFishAnalyticsConstant.BATCH_LEVEL;
|
||||
import org.gcube.portlets.user.performfishanalytics.shared.PopulationType;
|
||||
import org.gcube.portlets.user.performfishanalytics.shared.Quarter;
|
||||
|
||||
|
@ -28,7 +29,7 @@ public class QuarterData {
|
|||
public static ArrayList<Quarter> getListQuarter(PopulationType batchType) {
|
||||
|
||||
List<Quarter> listQuarter = new ArrayList<Quarter>();
|
||||
if (batchType.getName().startsWith(BATCH_LEVEL.GROW_OUT_AGGREGATED.name() )|| batchType.getName().startsWith(BATCH_LEVEL.GROW_OUT_AGGREGATED_CLOSED_BATCHES.name())) {
|
||||
if (batchType.getName().startsWith(PerformFishAnalyticsConstant.BATCH_LEVEL.GROW_OUT_AGGREGATED.name() )|| batchType.getName().startsWith(BATCH_LEVEL.GROW_OUT_AGGREGATED_CLOSED_BATCHES.name())) {
|
||||
listQuarter.add(new Quarter(
|
||||
java.util.UUID.randomUUID().toString(), "1st quarter", "", batchType));
|
||||
listQuarter.add(new Quarter(
|
||||
|
|
|
@ -6,7 +6,8 @@ package org.gcube.portlets.user.performfishanalytics.server.util.database.data;
|
|||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.gcube.portlets.user.performfishanalytics.server.util.database.FillDatabasePerBatchType.BATCH_LEVEL;
|
||||
import org.gcube.portlets.user.performfishanalytics.client.PerformFishAnalyticsConstant;
|
||||
import org.gcube.portlets.user.performfishanalytics.client.PerformFishAnalyticsConstant.BATCH_LEVEL;
|
||||
import org.gcube.portlets.user.performfishanalytics.shared.PopulationType;
|
||||
import org.gcube.portlets.user.performfishanalytics.shared.Species;
|
||||
|
||||
|
@ -29,7 +30,7 @@ public class SpeciesData {
|
|||
public static ArrayList<Species> getListSpecies(PopulationType batchType){
|
||||
|
||||
List<Species> listSpecies = new ArrayList<Species>();
|
||||
if(batchType.getName().startsWith(BATCH_LEVEL.PRE_ONGROWING.name()) || batchType.getName().startsWith(BATCH_LEVEL.PRE_ONGROWING_CLOSED_BATCHES.name())){
|
||||
if(batchType.getName().startsWith(PerformFishAnalyticsConstant.BATCH_LEVEL.PRE_ONGROWING.name()) || batchType.getName().startsWith(BATCH_LEVEL.PRE_ONGROWING_CLOSED_BATCHES.name())){
|
||||
|
||||
listSpecies.add(new Species(java.util.UUID.randomUUID().toString(), "S. aurata", "", batchType));
|
||||
listSpecies.add(new Species(java.util.UUID.randomUUID().toString(), "D. labrax", "", batchType));
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
KPI CODE,KPI NAME - LEVEL 1,KPI NAME – LEVEL 2,KPI NAME - LEVEL 3
|
||||
,Dependency on treatments KPIs,,
|
||||
,,Number of therapeutic treatments,
|
||||
G9,,,Total number of antiparasitic treatments - at harvest
|
||||
G10,,,Total number of antibiotic treatments - at harvest
|
||||
,Productivity KPIs,,
|
||||
G20,,Biomass produced per number of FTE employees ,
|
||||
G21,,Biomass produced per volumes of sea water used ,
|
||||
,Environmental KPIs,,
|
||||
,,Preservation of biodiversity and habitats KPIs,
|
||||
G22,,,Oxygen depletion persistence days
|
||||
G23,,,Escapes - Number of episodes
|
||||
G24,,,Escapes - Estimated number of escaped fish
|
||||
,,Use of resources,
|
||||
G28,,,Marine space use for farming
|
||||
G29,,,Land use
|
||||
G30,,,Freshwater use
|
||||
G31,,,Energy use
|
||||
G32,,,Fuel (Diesel) for transport
|
||||
G33,,,Fuel (Diesel) for other uses
|
||||
G35,,,Use of renewable energy
|
|
Loading…
Reference in New Issue