[PATCH] CSV-Export bundu.wst fehlvolumen
Wald Commits
scm-commit at wald.intevation.org
Wed Aug 22 11:51:50 CEST 2018
# HG changeset patch
# User gernotbelger
# Date 1534931506 -7200
# Node ID d32b11d585cd601fe85af41f230e6be9a33f7600
# Parent 3f4215ddd6b47191b6b7dfee9ae60ab4070d3c85
CSV-Export bundu.wst fehlvolumen
diff -r 3f4215ddd6b4 -r d32b11d585cd artifacts/src/main/java/org/dive4elements/river/artifacts/bundu/BunduResultType.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/bundu/BunduResultType.java Wed Aug 22 09:00:54 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/bundu/BunduResultType.java Wed Aug 22 11:51:46 2018 +0200
@@ -104,7 +104,7 @@
@Override
public String exportValue(final CallContext context, final Object value) {
- return exportStringValue(value);
+ return exportBooleanValue(context, value);
}
@Override
diff -r 3f4215ddd6b4 -r d32b11d585cd artifacts/src/main/java/org/dive4elements/river/artifacts/bundu/bezugswst/BezugswstCalculation.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/bundu/bezugswst/BezugswstCalculation.java Wed Aug 22 09:00:54 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/bundu/bezugswst/BezugswstCalculation.java Wed Aug 22 11:51:46 2018 +0200
@@ -57,13 +57,11 @@
private final List<ResultRow> rows;
-
public BezugswstCalculation(final CallContext context) {
this.context = context;
this.rows = new ArrayList<>();
}
-
/**
* Calculates the result rows of a bundu bzws workflow
*/
@@ -214,8 +212,7 @@
missFieldCnt++;
fieldMissDepths.add(Double.valueOf(h - channelHeight));
fieldMissWidths.add(Double.valueOf(channelWidth / BedHeightValueType.FIELD_LAST_INDEX));
- }
- else {
+ } else {
fieldMissDepths.add(Double.valueOf(0.0));
fieldMissWidths.add(Double.valueOf(0.0));
}
@@ -272,13 +269,14 @@
vTotal += volumes.get(j - 1);
vExcav += volumes.get(j - 1) + areas.get(j - 1) * EXCAVATION_DEPTH;
expenses += vExcav * EXPENSE_PER_CBM;
- }
- else {
+ } else {
volumes.add(Double.valueOf(0.0));
areas.add(Double.valueOf(0.0));
}
}
this.rows.get(i).putValue(BunduResultType.missVolumeFields, volumes);
+ // TODO: berechnete masse hier einfügen!
+ this.rows.get(i).putValue(BunduResultType.missMassFields, volumes);
this.rows.get(i).putValue(BunduResultType.missAreaFields, areas);
this.rows.get(i).putValue(BunduResultType.missVolumeTotal, vTotal);
this.rows.get(i).putValue(BunduResultType.excavationVolume, vExcav);
@@ -301,8 +299,7 @@
if (Double.isNaN(kmPrev) || Double.isNaN(kmNext)) {
volumes.add(Double.valueOf(0.0));
areas.add(Double.valueOf(0.0));
- }
- else {
+ } else {
final double area1 = 0.5 * (areaCurr + areaPrev);
final double area2 = 0.5 * (areaCurr + areaNext);
volumes.add(Double.valueOf((Math.abs(kmCurr - kmPrev) * 0.5 * area1) + (Math.abs(kmNext - kmCurr) * 0.5 * area2)));
@@ -315,8 +312,7 @@
*/
private double missingArea(final int rowIndex, final int first, final int last, final int fieldIndex) {
if ((first <= rowIndex) && (rowIndex <= last))
- return getFieldValue(rowIndex, BunduResultType.missDepthFields, fieldIndex)
- * getFieldValue(rowIndex, BunduResultType.missWidthFields, fieldIndex);
+ return getFieldValue(rowIndex, BunduResultType.missDepthFields, fieldIndex) * getFieldValue(rowIndex, BunduResultType.missWidthFields, fieldIndex);
else
return 0.0;
}
diff -r 3f4215ddd6b4 -r d32b11d585cd artifacts/src/main/java/org/dive4elements/river/artifacts/bundu/bezugswst/BezugswstMissVolCalculationResult2.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/bundu/bezugswst/BezugswstMissVolCalculationResult2.java Wed Aug 22 09:00:54 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/bundu/bezugswst/BezugswstMissVolCalculationResult2.java Wed Aug 22 11:51:46 2018 +0200
@@ -62,7 +62,8 @@
assert (vFields.size() == fieldSize()); // immer abgleichen mit der Calculation!
@SuppressWarnings("unchecked")
final List<Double> mFields = (List<Double>) row.getValue(BunduResultType.missMassFields);
- for (int i = 0; i <= vFields.size() - 1; i++) {
+ assert (vFields.size() == mFields.size());
+ for (int i = 0; i < vFields.size(); i++) {
lines.add(BunduResultType.missVolumeFields.exportValue(exportContext.getContext(), vFields.get(i)));
lines.add(BunduResultType.missMassFields.exportValue(exportContext.getContext(), mFields.get(i)));
}
@@ -81,9 +82,11 @@
header.add(exportContextCSV.formatCsvHeader(GeneralResultType.station));
- for (int i = 1; i <= fieldSize(); i++) {
- header.add(exportContextCSV.msg(fieldVolumeMsgKey, i));
- header.add(exportContextCSV.msg(fieldMassMsgKey, i));
+ for (int i = 1; i <= fieldSize() * 2; i++) {
+ final double index = Math.ceil(i / 2.);
+ header.add(exportContextCSV.msg(fieldVolumeMsgKey, index));
+ i++;
+ header.add(exportContextCSV.msg(fieldMassMsgKey, index));
}
header.add(exportContextCSV.formatCsvHeader(BunduResultType.missVolumeMeanBed));
header.add(exportContextCSV.formatCsvHeader(BunduResultType.missMassMeanBed));
diff -r 3f4215ddd6b4 -r d32b11d585cd artifacts/src/main/java/org/dive4elements/river/artifacts/common/AbstractResultType.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/common/AbstractResultType.java Wed Aug 22 09:00:54 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/common/AbstractResultType.java Wed Aug 22 11:51:46 2018 +0200
@@ -35,6 +35,9 @@
private final String pdfHeader;
+ private static String YES = null;
+ private static String NO = null;
+
protected AbstractResultType(final String unit, final String csvHeader, final String pdfHeader) {
this.unit = unit;
this.csvHeader = csvHeader;
@@ -56,6 +59,25 @@
return (String) value;
}
+ protected final String exportBooleanValue(final CallContext context, final Object value) {
+
+ if (value == null)
+ return StringUtils.EMPTY; // DISKUSSION; könnte auch "Nein" sein
+
+ if (!(value instanceof Boolean))
+ throw new IllegalStateException();
+
+ if ((boolean) value) {
+ if (YES == null)
+ YES = Resources.getMsg(context.getMeta(), String.valueOf(value));
+ return YES;
+ } else {
+ if (NO == null)
+ NO = Resources.getMsg(context.getMeta(), String.valueOf(value));
+ return NO;
+ }
+ }
+
@Override
public final double asDouble(final Object value) {
if (value == null)
More information about the Dive4Elements-commits
mailing list