|
@@ -7,6 +7,7 @@ import lombok.NoArgsConstructor;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
import java.math.RoundingMode;
|
|
|
+import java.time.LocalDateTime;
|
|
|
import java.util.Random;
|
|
|
|
|
|
/**
|
|
@@ -58,19 +59,27 @@ public class YrProdEfficiencyVO {
|
|
|
Integer[] total = {267, 38, 36, 35, 35, 30, 31, 32, 30};
|
|
|
Integer[] open = {88, 28, 26, 25, 25, 20, 21, 22, 20};
|
|
|
Random random = new Random();
|
|
|
+ LocalDateTime ldt = LocalDateTime.now().plusHours(-7);
|
|
|
this.total = total[line];
|
|
|
this.open = open[line];
|
|
|
this.energy = BigDecimal.valueOf(2.5d);
|
|
|
- this.ratio = BigDecimal.valueOf(this.open).divide(BigDecimal.valueOf(this.total), 0, RoundingMode.HALF_UP);
|
|
|
- this.lengthA = BigDecimal.valueOf(3000 + 3000 * random.nextDouble()).setScale(2, RoundingMode.HALF_UP);
|
|
|
- this.lengthB = BigDecimal.valueOf(3000 + 3000 * random.nextDouble()).setScale(2, RoundingMode.HALF_UP);
|
|
|
+ this.ratio = BigDecimal.valueOf(this.open * 100).divide(BigDecimal.valueOf(this.total), 2, RoundingMode.HALF_UP);
|
|
|
+ this.lengthA = BigDecimal.valueOf(3000 + 3000 * random.nextDouble()).multiply(BigDecimal.valueOf(ldt.getHour() / 12f)).setScale(2, RoundingMode.HALF_UP);
|
|
|
+ this.weightA = BigDecimal.valueOf(20 + 20 * random.nextDouble()).multiply(BigDecimal.valueOf(ldt.getHour() / 12f)).setScale(2, RoundingMode.HALF_UP);
|
|
|
+ this.timeA = BigDecimal.valueOf(ldt.getHour()).subtract(BigDecimal.valueOf(ldt.getHour() * 0.25 * random.nextFloat())).setScale(1, RoundingMode.HALF_UP);
|
|
|
+ if (ldt.getHour() > 12) {
|
|
|
+ this.lengthB = BigDecimal.valueOf(3000 + 3000 * random.nextDouble()).multiply(BigDecimal.valueOf((ldt.getHour()-12) / 12f)).setScale(2, RoundingMode.HALF_UP);
|
|
|
+ this.weightB = BigDecimal.valueOf(20 + 20 * random.nextDouble()).multiply(BigDecimal.valueOf((ldt.getHour()-12) / 12f)).setScale(2, RoundingMode.HALF_UP);
|
|
|
+ this.timeB = BigDecimal.valueOf(5 + random.nextInt(7));
|
|
|
+ this.effB = timeB.divide(BigDecimal.valueOf(ldt.getHour() - 12), 4, RoundingMode.HALF_UP);
|
|
|
+ } else {
|
|
|
+ timeB = BigDecimal.ZERO;
|
|
|
+ this.lengthB = BigDecimal.ZERO;
|
|
|
+ this.weightB = BigDecimal.ZERO;
|
|
|
+ this.effB = BigDecimal.ZERO;
|
|
|
+ }
|
|
|
this.length = this.lengthA.add(this.lengthB);
|
|
|
- this.weightA = BigDecimal.valueOf(20 + 20 * random.nextDouble()).setScale(2, RoundingMode.HALF_UP);
|
|
|
- this.weightB = BigDecimal.valueOf(20 + 20 * random.nextDouble()).setScale(2, RoundingMode.HALF_UP);
|
|
|
this.weight = this.weightA.add(this.weightB);
|
|
|
- this.timeA = BigDecimal.valueOf(5 + random.nextInt(7));
|
|
|
- this.timeB = BigDecimal.valueOf(5 + random.nextInt(7));
|
|
|
- this.effA = timeA.divide(BigDecimal.valueOf(12), 2, RoundingMode.HALF_UP);
|
|
|
- this.effB = timeB.divide(BigDecimal.valueOf(12), 2, RoundingMode.HALF_UP);
|
|
|
+ this.effA = timeA.divide(BigDecimal.valueOf(ldt.getHour()), 4, RoundingMode.HALF_UP);
|
|
|
}
|
|
|
}
|