mirror of
https://codeup.aliyun.com/64f7d6b8ce01efaafef1e678/coal/coal.git
synced 2026-01-25 15:55:18 +08:00
手动配煤
This commit is contained in:
@@ -283,432 +283,493 @@ public class CoalBlendEntity extends OrgCommonEntity {
|
||||
if (StringUtils.equals(coalType, "2") || StringUtils.equals(coalType, "3")) {
|
||||
|
||||
// 参与配比的煤的可能性 1 到 煤的数量之间
|
||||
//<editor-fold desc="Description">
|
||||
// <editor-fold desc="Description">
|
||||
int startIndex = StringUtils.equals(coalType, "2") ? 0 : coals.size() - 1;
|
||||
for (int i = startIndex; i < coals.size(); i++) {
|
||||
|
||||
// todo 这个循环可以删除?
|
||||
// 针对第j个煤参与配比, 那么他的比例应该在0-煤j的比例之间, 步长为0.01
|
||||
for (int j = 0; j <= i; j++) {
|
||||
CoalBlendCoalInfoEntity coalJ = coals.get(j);
|
||||
|
||||
int maxP = (int) (coalJ.getYmPercent() * 100);
|
||||
int startK = StringUtils.equals(coalType, "2") ? 0 : maxP;
|
||||
for (int k = startK; k <= maxP; k++) {
|
||||
|
||||
// 计算各个参数是否满足条件
|
||||
CoalBlendResultInfoEntity vo = new CoalBlendResultInfoEntity();
|
||||
|
||||
if (param1.get()) {
|
||||
Double min = constrains.getParam1Min();
|
||||
Double max = constrains.getParam1Max();
|
||||
Double sum = 0.0;
|
||||
for (int l = 0; l < j; l++) {
|
||||
|
||||
sum += coals.get(l).getParam1() * coals.get(l).getYmPercent() / 100.0;
|
||||
}
|
||||
|
||||
sum += k * coalJ.getParam1() / 10000.0;
|
||||
|
||||
sum = BigDecimal.valueOf(sum).setScale(2, RoundingMode.HALF_UP).doubleValue();
|
||||
if ((min != null && sum < min) || (max != null && sum > max)) {
|
||||
continue;
|
||||
} else {
|
||||
vo.setParam1(sum);
|
||||
}
|
||||
}
|
||||
|
||||
if (param2.get()) {
|
||||
Double min = constrains.getParam2Min();
|
||||
Double max = constrains.getParam2Max();
|
||||
Double sum = 0.0;
|
||||
for (int l = 0; l < j; l++) {
|
||||
|
||||
sum += coals.get(l).getParam2() * coals.get(l).getYmPercent() / 100.0;
|
||||
}
|
||||
|
||||
sum += k * coalJ.getParam2() / 10000.0;
|
||||
|
||||
sum = BigDecimal.valueOf(sum).setScale(2, RoundingMode.HALF_UP).doubleValue();
|
||||
if ((min != null && sum < min) || (max != null && sum > max)) {
|
||||
continue;
|
||||
} else {
|
||||
vo.setParam2(sum);
|
||||
}
|
||||
}
|
||||
|
||||
if (param3.get()) {
|
||||
Double min = constrains.getParam3Min();
|
||||
Double max = constrains.getParam3Max();
|
||||
Double sum = 0.0;
|
||||
for (int l = 0; l < j; l++) {
|
||||
|
||||
sum += coals.get(l).getParam3() * coals.get(l).getYmPercent() / 100.0;
|
||||
}
|
||||
|
||||
sum += k * coalJ.getParam3() / 10000.0;
|
||||
|
||||
sum = BigDecimal.valueOf(sum).setScale(2, RoundingMode.HALF_UP).doubleValue();
|
||||
if ((min != null && sum < min) || (max != null && sum > max)) {
|
||||
continue;
|
||||
} else {
|
||||
vo.setParam3(sum);
|
||||
}
|
||||
}
|
||||
|
||||
if (param4.get()) {
|
||||
Double min = constrains.getParam4Min();
|
||||
Double max = constrains.getParam4Max();
|
||||
Double sum = 0.0;
|
||||
for (int l = 0; l < j; l++) {
|
||||
|
||||
sum += coals.get(l).getParam4() * coals.get(l).getYmPercent() / 100.0;
|
||||
}
|
||||
|
||||
sum += k * coalJ.getParam4() / 10000.0;
|
||||
|
||||
sum = BigDecimal.valueOf(sum).setScale(2, RoundingMode.HALF_UP).doubleValue();
|
||||
if ((min != null && sum < min) || (max != null && sum > max)) {
|
||||
continue;
|
||||
} else {
|
||||
vo.setParam4(sum);
|
||||
}
|
||||
}
|
||||
|
||||
if (param5.get()) {
|
||||
Double min = constrains.getParam5Min();
|
||||
Double max = constrains.getParam5Max();
|
||||
Double sum = 0.0;
|
||||
for (int l = 0; l < j; l++) {
|
||||
|
||||
sum += coals.get(l).getParam5() * coals.get(l).getYmPercent() / 100.0;
|
||||
}
|
||||
|
||||
sum += k * coalJ.getParam5() / 10000.0;
|
||||
|
||||
sum = BigDecimal.valueOf(sum).setScale(2, RoundingMode.HALF_UP).doubleValue();
|
||||
if ((min != null && sum < min) || (max != null && sum > max)) {
|
||||
continue;
|
||||
} else {
|
||||
vo.setParam5(sum);
|
||||
}
|
||||
}
|
||||
|
||||
if (param6.get()) {
|
||||
Double min = constrains.getParam6Min();
|
||||
Double max = constrains.getParam6Max();
|
||||
Double sum = 0.0;
|
||||
for (int l = 0; l < j; l++) {
|
||||
|
||||
sum += coals.get(l).getParam6() * coals.get(l).getYmPercent() / 100.0;
|
||||
}
|
||||
|
||||
sum += k * coalJ.getParam6() / 10000.0;
|
||||
|
||||
sum = BigDecimal.valueOf(sum).setScale(2, RoundingMode.HALF_UP).doubleValue();
|
||||
if ((min != null && sum < min) || (max != null && sum > max)) {
|
||||
continue;
|
||||
} else {
|
||||
vo.setParam6(sum);
|
||||
}
|
||||
}
|
||||
|
||||
if (param7.get()) {
|
||||
Double min = constrains.getParam7Min();
|
||||
Double max = constrains.getParam7Max();
|
||||
Double sum = 0.0;
|
||||
for (int l = 0; l < j; l++) {
|
||||
|
||||
sum += coals.get(l).getParam7() * coals.get(l).getYmPercent() / 100.0;
|
||||
}
|
||||
|
||||
sum += k * coalJ.getParam7() / 10000.0;
|
||||
|
||||
sum = BigDecimal.valueOf(sum).setScale(2, RoundingMode.HALF_UP).doubleValue();
|
||||
if ((min != null && sum < min) || (max != null && sum > max)) {
|
||||
continue;
|
||||
} else {
|
||||
vo.setParam7(sum);
|
||||
}
|
||||
}
|
||||
|
||||
if (param8.get()) {
|
||||
Double min = constrains.getParam8Min();
|
||||
Double max = constrains.getParam8Max();
|
||||
Double sum = 0.0;
|
||||
for (int l = 0; l < j; l++) {
|
||||
|
||||
sum += coals.get(l).getParam8() * coals.get(l).getYmPercent() / 100.0;
|
||||
}
|
||||
|
||||
sum += k * coalJ.getParam8() / 10000.0;
|
||||
|
||||
sum = BigDecimal.valueOf(sum).setScale(2, RoundingMode.HALF_UP).doubleValue();
|
||||
if ((min != null && sum < min) || (max != null && sum > max)) {
|
||||
continue;
|
||||
} else {
|
||||
vo.setParam8(sum);
|
||||
}
|
||||
}
|
||||
|
||||
if (param9.get()) {
|
||||
Double min = constrains.getParam9Min();
|
||||
Double max = constrains.getParam9Max();
|
||||
Double sum = 0.0;
|
||||
for (int l = 0; l < j; l++) {
|
||||
|
||||
sum += coals.get(l).getParam9() * coals.get(l).getYmPercent() / 100.0;
|
||||
}
|
||||
|
||||
sum += k * coalJ.getParam9() / 10000.0;
|
||||
|
||||
sum = BigDecimal.valueOf(sum).setScale(2, RoundingMode.HALF_UP).doubleValue();
|
||||
if ((min != null && sum < min) || (max != null && sum > max)) {
|
||||
continue;
|
||||
} else {
|
||||
vo.setParam9(sum);
|
||||
}
|
||||
}
|
||||
|
||||
if (param10.get()) {
|
||||
Double min = constrains.getParam10Min();
|
||||
Double max = constrains.getParam10Max();
|
||||
Double sum = 0.0;
|
||||
for (int l = 0; l < j; l++) {
|
||||
|
||||
sum += coals.get(l).getParam10() * coals.get(l).getYmPercent() / 100.0;
|
||||
}
|
||||
|
||||
sum += k * coalJ.getParam10() / 10000.0;
|
||||
|
||||
sum = BigDecimal.valueOf(sum).setScale(2, RoundingMode.HALF_UP).doubleValue();
|
||||
if ((min != null && sum < min) || (max != null && sum > max)) {
|
||||
continue;
|
||||
} else {
|
||||
vo.setParam10(sum);
|
||||
}
|
||||
}
|
||||
|
||||
if (param11.get()) {
|
||||
Double min = constrains.getParam11Min();
|
||||
Double max = constrains.getParam11Max();
|
||||
Double sum = 0.0;
|
||||
for (int l = 0; l < j; l++) {
|
||||
|
||||
sum += coals.get(l).getParam11() * coals.get(l).getYmPercent() / 100.0;
|
||||
}
|
||||
|
||||
sum += k * coalJ.getParam11() / 10000.0;
|
||||
|
||||
sum = BigDecimal.valueOf(sum).setScale(2, RoundingMode.HALF_UP).doubleValue();
|
||||
if ((min != null && sum < min) || (max != null && sum > max)) {
|
||||
continue;
|
||||
} else {
|
||||
vo.setParam11(sum);
|
||||
}
|
||||
}
|
||||
|
||||
if (param12.get()) {
|
||||
Double min = constrains.getParam12Min();
|
||||
Double max = constrains.getParam12Max();
|
||||
Double sum = 0.0;
|
||||
for (int l = 0; l < j; l++) {
|
||||
|
||||
sum += coals.get(l).getParam12() * coals.get(l).getYmPercent() / 100.0;
|
||||
}
|
||||
|
||||
sum += k * coalJ.getParam12() / 10000.0;
|
||||
|
||||
sum = BigDecimal.valueOf(sum).setScale(2, RoundingMode.HALF_UP).doubleValue();
|
||||
if ((min != null && sum < min) || (max != null && sum > max)) {
|
||||
continue;
|
||||
} else {
|
||||
vo.setParam12(sum);
|
||||
}
|
||||
}
|
||||
|
||||
if (param13.get()) {
|
||||
Double min = constrains.getParam13Min();
|
||||
Double max = constrains.getParam13Max();
|
||||
Double sum = 0.0;
|
||||
for (int l = 0; l < j; l++) {
|
||||
|
||||
sum += coals.get(l).getParam13() * coals.get(l).getYmPercent() / 100.0;
|
||||
}
|
||||
|
||||
sum += k * coalJ.getParam13() / 10000.0;
|
||||
|
||||
sum = BigDecimal.valueOf(sum).setScale(2, RoundingMode.HALF_UP).doubleValue();
|
||||
if ((min != null && sum < min) || (max != null && sum > max)) {
|
||||
continue;
|
||||
} else {
|
||||
vo.setParam13(sum);
|
||||
}
|
||||
}
|
||||
|
||||
if (param14.get()) {
|
||||
Double min = constrains.getParam14Min();
|
||||
Double max = constrains.getParam14Max();
|
||||
Double sum = 0.0;
|
||||
for (int l = 0; l < j; l++) {
|
||||
|
||||
sum += coals.get(l).getParam14() * coals.get(l).getYmPercent() / 100.0;
|
||||
}
|
||||
|
||||
sum += k * coalJ.getParam14() / 10000.0;
|
||||
|
||||
sum = BigDecimal.valueOf(sum).setScale(2, RoundingMode.HALF_UP).doubleValue();
|
||||
if ((min != null && sum < min) || (max != null && sum > max)) {
|
||||
continue;
|
||||
} else {
|
||||
vo.setParam14(sum);
|
||||
}
|
||||
}
|
||||
|
||||
if (param15.get()) {
|
||||
Double min = constrains.getParam15Min();
|
||||
Double max = constrains.getParam15Max();
|
||||
Double sum = 0.0;
|
||||
for (int l = 0; l < j; l++) {
|
||||
|
||||
sum += coals.get(l).getParam15() * coals.get(l).getYmPercent() / 100.0;
|
||||
}
|
||||
|
||||
sum += k * coalJ.getParam15() / 10000.0;
|
||||
|
||||
sum = BigDecimal.valueOf(sum).setScale(2, RoundingMode.HALF_UP).doubleValue();
|
||||
if ((min != null && sum < min) || (max != null && sum > max)) {
|
||||
continue;
|
||||
} else {
|
||||
vo.setParam15(sum);
|
||||
}
|
||||
}
|
||||
|
||||
if (param16.get()) {
|
||||
Double min = constrains.getParam16Min();
|
||||
Double max = constrains.getParam16Max();
|
||||
Double sum = 0.0;
|
||||
for (int l = 0; l < j; l++) {
|
||||
|
||||
sum += coals.get(l).getParam16() * coals.get(l).getYmPercent() / 100.0;
|
||||
}
|
||||
|
||||
sum += k * coalJ.getParam16() / 10000.0;
|
||||
|
||||
sum = BigDecimal.valueOf(sum).setScale(2, RoundingMode.HALF_UP).doubleValue();
|
||||
if ((min != null && sum < min) || (max != null && sum > max)) {
|
||||
continue;
|
||||
} else {
|
||||
vo.setParam16(sum);
|
||||
}
|
||||
}
|
||||
|
||||
if (param17.get()) {
|
||||
Double min = constrains.getParam17Min();
|
||||
Double max = constrains.getParam17Max();
|
||||
Double sum = 0.0;
|
||||
for (int l = 0; l < j; l++) {
|
||||
|
||||
sum += coals.get(l).getParam17() * coals.get(l).getYmPercent() / 100.0;
|
||||
}
|
||||
|
||||
sum += k * coalJ.getParam17() / 10000.0;
|
||||
|
||||
sum = BigDecimal.valueOf(sum).setScale(2, RoundingMode.HALF_UP).doubleValue();
|
||||
if ((min != null && sum < min) || (max != null && sum > max)) {
|
||||
continue;
|
||||
} else {
|
||||
vo.setParam17(sum);
|
||||
}
|
||||
}
|
||||
|
||||
if (param18.get()) {
|
||||
Double min = constrains.getParam18Min();
|
||||
Double max = constrains.getParam18Max();
|
||||
Double sum = 0.0;
|
||||
for (int l = 0; l < j; l++) {
|
||||
|
||||
sum += coals.get(l).getParam18() * coals.get(l).getYmPercent() / 100.0;
|
||||
}
|
||||
|
||||
sum += k * coalJ.getParam18() / 10000.0;
|
||||
|
||||
sum = BigDecimal.valueOf(sum).setScale(2, RoundingMode.HALF_UP).doubleValue();
|
||||
if ((min != null && sum < min) || (max != null && sum > max)) {
|
||||
continue;
|
||||
} else {
|
||||
vo.setParam18(sum);
|
||||
}
|
||||
}
|
||||
|
||||
if (param19.get()) {
|
||||
Double min = constrains.getParam19Min();
|
||||
Double max = constrains.getParam19Max();
|
||||
Double sum = 0.0;
|
||||
for (int l = 0; l < j; l++) {
|
||||
|
||||
sum += coals.get(l).getParam19() * coals.get(l).getYmPercent() / 100.0;
|
||||
}
|
||||
|
||||
sum += k * coalJ.getParam19() / 10000.0;
|
||||
|
||||
sum = BigDecimal.valueOf(sum).setScale(2, RoundingMode.HALF_UP).doubleValue();
|
||||
if ((min != null && sum < min) || (max != null && sum > max)) {
|
||||
continue;
|
||||
} else {
|
||||
vo.setParam19(sum);
|
||||
}
|
||||
}
|
||||
|
||||
if (param20.get()) {
|
||||
Double min = constrains.getParam20Min();
|
||||
Double max = constrains.getParam20Max();
|
||||
Double sum = 0.0;
|
||||
for (int l = 0; l < j; l++) {
|
||||
|
||||
sum += coals.get(l).getParam20() * coals.get(l).getYmPercent() / 100.0;
|
||||
}
|
||||
|
||||
sum += k * coalJ.getParam20() / 10000.0;
|
||||
|
||||
sum = BigDecimal.valueOf(sum).setScale(2, RoundingMode.HALF_UP).doubleValue();
|
||||
if ((min != null && sum < min) || (max != null && sum > max)) {
|
||||
continue;
|
||||
} else {
|
||||
vo.setParam20(sum);
|
||||
}
|
||||
}
|
||||
|
||||
// 生成配煤结果
|
||||
|
||||
ArrayList<CoalPercentVo> percentInfos = new ArrayList<>();
|
||||
vo.setPercentInfos(percentInfos);
|
||||
// for (int j = 0; j <= i; j++) {
|
||||
int j = i;
|
||||
CoalBlendCoalInfoEntity coalJ = coals.get(j);
|
||||
|
||||
int maxP = (int) (coalJ.getYmPercent() * 100);
|
||||
int startK = StringUtils.equals(coalType, "2") ? 0 : maxP;
|
||||
for (int k = startK; k <= maxP; k++) {
|
||||
// 计算各个参数是否满足条件
|
||||
CoalBlendResultInfoEntity vo = new CoalBlendResultInfoEntity();
|
||||
|
||||
if (param1.get()) {
|
||||
Double min = constrains.getParam1Min();
|
||||
Double max = constrains.getParam1Max();
|
||||
Double sum = 0.0;
|
||||
for (int l = 0; l < j; l++) {
|
||||
|
||||
percentInfos.add(
|
||||
new CoalPercentVo(
|
||||
coals.get(l).getName(),
|
||||
coals.get(l).getYmPercent(),
|
||||
0.0,
|
||||
coals.get(l).getYmPercent()));
|
||||
sum += coals.get(l).getParam1() * coals.get(l).getYmPercent() / 100.0;
|
||||
}
|
||||
|
||||
sum += k * coalJ.getParam1() / 10000.0;
|
||||
|
||||
sum =
|
||||
BigDecimal.valueOf(sum)
|
||||
.setScale(2, RoundingMode.HALF_UP)
|
||||
.doubleValue();
|
||||
if ((min != null && sum < min) || (max != null && sum > max)) {
|
||||
continue;
|
||||
} else {
|
||||
vo.setParam1(sum);
|
||||
}
|
||||
}
|
||||
|
||||
if (param2.get()) {
|
||||
Double min = constrains.getParam2Min();
|
||||
Double max = constrains.getParam2Max();
|
||||
Double sum = 0.0;
|
||||
for (int l = 0; l < j; l++) {
|
||||
|
||||
sum += coals.get(l).getParam2() * coals.get(l).getYmPercent() / 100.0;
|
||||
}
|
||||
|
||||
sum += k * coalJ.getParam2() / 10000.0;
|
||||
|
||||
sum =
|
||||
BigDecimal.valueOf(sum)
|
||||
.setScale(2, RoundingMode.HALF_UP)
|
||||
.doubleValue();
|
||||
if ((min != null && sum < min) || (max != null && sum > max)) {
|
||||
continue;
|
||||
} else {
|
||||
vo.setParam2(sum);
|
||||
}
|
||||
}
|
||||
|
||||
if (param3.get()) {
|
||||
Double min = constrains.getParam3Min();
|
||||
Double max = constrains.getParam3Max();
|
||||
Double sum = 0.0;
|
||||
for (int l = 0; l < j; l++) {
|
||||
|
||||
sum += coals.get(l).getParam3() * coals.get(l).getYmPercent() / 100.0;
|
||||
}
|
||||
|
||||
sum += k * coalJ.getParam3() / 10000.0;
|
||||
|
||||
sum =
|
||||
BigDecimal.valueOf(sum)
|
||||
.setScale(2, RoundingMode.HALF_UP)
|
||||
.doubleValue();
|
||||
if ((min != null && sum < min) || (max != null && sum > max)) {
|
||||
continue;
|
||||
} else {
|
||||
vo.setParam3(sum);
|
||||
}
|
||||
}
|
||||
|
||||
if (param4.get()) {
|
||||
Double min = constrains.getParam4Min();
|
||||
Double max = constrains.getParam4Max();
|
||||
Double sum = 0.0;
|
||||
for (int l = 0; l < j; l++) {
|
||||
|
||||
sum += coals.get(l).getParam4() * coals.get(l).getYmPercent() / 100.0;
|
||||
}
|
||||
|
||||
sum += k * coalJ.getParam4() / 10000.0;
|
||||
|
||||
sum =
|
||||
BigDecimal.valueOf(sum)
|
||||
.setScale(2, RoundingMode.HALF_UP)
|
||||
.doubleValue();
|
||||
if ((min != null && sum < min) || (max != null && sum > max)) {
|
||||
continue;
|
||||
} else {
|
||||
vo.setParam4(sum);
|
||||
}
|
||||
}
|
||||
|
||||
if (param5.get()) {
|
||||
Double min = constrains.getParam5Min();
|
||||
Double max = constrains.getParam5Max();
|
||||
Double sum = 0.0;
|
||||
for (int l = 0; l < j; l++) {
|
||||
|
||||
sum += coals.get(l).getParam5() * coals.get(l).getYmPercent() / 100.0;
|
||||
}
|
||||
|
||||
sum += k * coalJ.getParam5() / 10000.0;
|
||||
|
||||
sum =
|
||||
BigDecimal.valueOf(sum)
|
||||
.setScale(2, RoundingMode.HALF_UP)
|
||||
.doubleValue();
|
||||
if ((min != null && sum < min) || (max != null && sum > max)) {
|
||||
continue;
|
||||
} else {
|
||||
vo.setParam5(sum);
|
||||
}
|
||||
}
|
||||
|
||||
if (param6.get()) {
|
||||
Double min = constrains.getParam6Min();
|
||||
Double max = constrains.getParam6Max();
|
||||
Double sum = 0.0;
|
||||
for (int l = 0; l < j; l++) {
|
||||
|
||||
sum += coals.get(l).getParam6() * coals.get(l).getYmPercent() / 100.0;
|
||||
}
|
||||
|
||||
sum += k * coalJ.getParam6() / 10000.0;
|
||||
|
||||
sum =
|
||||
BigDecimal.valueOf(sum)
|
||||
.setScale(2, RoundingMode.HALF_UP)
|
||||
.doubleValue();
|
||||
if ((min != null && sum < min) || (max != null && sum > max)) {
|
||||
continue;
|
||||
} else {
|
||||
vo.setParam6(sum);
|
||||
}
|
||||
}
|
||||
|
||||
if (param7.get()) {
|
||||
Double min = constrains.getParam7Min();
|
||||
Double max = constrains.getParam7Max();
|
||||
Double sum = 0.0;
|
||||
for (int l = 0; l < j; l++) {
|
||||
|
||||
sum += coals.get(l).getParam7() * coals.get(l).getYmPercent() / 100.0;
|
||||
}
|
||||
|
||||
sum += k * coalJ.getParam7() / 10000.0;
|
||||
|
||||
sum =
|
||||
BigDecimal.valueOf(sum)
|
||||
.setScale(2, RoundingMode.HALF_UP)
|
||||
.doubleValue();
|
||||
if ((min != null && sum < min) || (max != null && sum > max)) {
|
||||
continue;
|
||||
} else {
|
||||
vo.setParam7(sum);
|
||||
}
|
||||
}
|
||||
|
||||
if (param8.get()) {
|
||||
Double min = constrains.getParam8Min();
|
||||
Double max = constrains.getParam8Max();
|
||||
Double sum = 0.0;
|
||||
for (int l = 0; l < j; l++) {
|
||||
|
||||
sum += coals.get(l).getParam8() * coals.get(l).getYmPercent() / 100.0;
|
||||
}
|
||||
|
||||
sum += k * coalJ.getParam8() / 10000.0;
|
||||
|
||||
sum =
|
||||
BigDecimal.valueOf(sum)
|
||||
.setScale(2, RoundingMode.HALF_UP)
|
||||
.doubleValue();
|
||||
if ((min != null && sum < min) || (max != null && sum > max)) {
|
||||
continue;
|
||||
} else {
|
||||
vo.setParam8(sum);
|
||||
}
|
||||
}
|
||||
|
||||
if (param9.get()) {
|
||||
Double min = constrains.getParam9Min();
|
||||
Double max = constrains.getParam9Max();
|
||||
Double sum = 0.0;
|
||||
for (int l = 0; l < j; l++) {
|
||||
|
||||
sum += coals.get(l).getParam9() * coals.get(l).getYmPercent() / 100.0;
|
||||
}
|
||||
|
||||
sum += k * coalJ.getParam9() / 10000.0;
|
||||
|
||||
sum =
|
||||
BigDecimal.valueOf(sum)
|
||||
.setScale(2, RoundingMode.HALF_UP)
|
||||
.doubleValue();
|
||||
if ((min != null && sum < min) || (max != null && sum > max)) {
|
||||
continue;
|
||||
} else {
|
||||
vo.setParam9(sum);
|
||||
}
|
||||
}
|
||||
|
||||
if (param10.get()) {
|
||||
Double min = constrains.getParam10Min();
|
||||
Double max = constrains.getParam10Max();
|
||||
Double sum = 0.0;
|
||||
for (int l = 0; l < j; l++) {
|
||||
|
||||
sum += coals.get(l).getParam10() * coals.get(l).getYmPercent() / 100.0;
|
||||
}
|
||||
|
||||
sum += k * coalJ.getParam10() / 10000.0;
|
||||
|
||||
sum =
|
||||
BigDecimal.valueOf(sum)
|
||||
.setScale(2, RoundingMode.HALF_UP)
|
||||
.doubleValue();
|
||||
if ((min != null && sum < min) || (max != null && sum > max)) {
|
||||
continue;
|
||||
} else {
|
||||
vo.setParam10(sum);
|
||||
}
|
||||
}
|
||||
|
||||
if (param11.get()) {
|
||||
Double min = constrains.getParam11Min();
|
||||
Double max = constrains.getParam11Max();
|
||||
Double sum = 0.0;
|
||||
for (int l = 0; l < j; l++) {
|
||||
|
||||
sum += coals.get(l).getParam11() * coals.get(l).getYmPercent() / 100.0;
|
||||
}
|
||||
|
||||
sum += k * coalJ.getParam11() / 10000.0;
|
||||
|
||||
sum =
|
||||
BigDecimal.valueOf(sum)
|
||||
.setScale(2, RoundingMode.HALF_UP)
|
||||
.doubleValue();
|
||||
if ((min != null && sum < min) || (max != null && sum > max)) {
|
||||
continue;
|
||||
} else {
|
||||
vo.setParam11(sum);
|
||||
}
|
||||
}
|
||||
|
||||
if (param12.get()) {
|
||||
Double min = constrains.getParam12Min();
|
||||
Double max = constrains.getParam12Max();
|
||||
Double sum = 0.0;
|
||||
for (int l = 0; l < j; l++) {
|
||||
|
||||
sum += coals.get(l).getParam12() * coals.get(l).getYmPercent() / 100.0;
|
||||
}
|
||||
|
||||
sum += k * coalJ.getParam12() / 10000.0;
|
||||
|
||||
sum =
|
||||
BigDecimal.valueOf(sum)
|
||||
.setScale(2, RoundingMode.HALF_UP)
|
||||
.doubleValue();
|
||||
if ((min != null && sum < min) || (max != null && sum > max)) {
|
||||
continue;
|
||||
} else {
|
||||
vo.setParam12(sum);
|
||||
}
|
||||
}
|
||||
|
||||
if (param13.get()) {
|
||||
Double min = constrains.getParam13Min();
|
||||
Double max = constrains.getParam13Max();
|
||||
Double sum = 0.0;
|
||||
for (int l = 0; l < j; l++) {
|
||||
|
||||
sum += coals.get(l).getParam13() * coals.get(l).getYmPercent() / 100.0;
|
||||
}
|
||||
|
||||
sum += k * coalJ.getParam13() / 10000.0;
|
||||
|
||||
sum =
|
||||
BigDecimal.valueOf(sum)
|
||||
.setScale(2, RoundingMode.HALF_UP)
|
||||
.doubleValue();
|
||||
if ((min != null && sum < min) || (max != null && sum > max)) {
|
||||
continue;
|
||||
} else {
|
||||
vo.setParam13(sum);
|
||||
}
|
||||
}
|
||||
|
||||
if (param14.get()) {
|
||||
Double min = constrains.getParam14Min();
|
||||
Double max = constrains.getParam14Max();
|
||||
Double sum = 0.0;
|
||||
for (int l = 0; l < j; l++) {
|
||||
|
||||
sum += coals.get(l).getParam14() * coals.get(l).getYmPercent() / 100.0;
|
||||
}
|
||||
|
||||
sum += k * coalJ.getParam14() / 10000.0;
|
||||
|
||||
sum =
|
||||
BigDecimal.valueOf(sum)
|
||||
.setScale(2, RoundingMode.HALF_UP)
|
||||
.doubleValue();
|
||||
if ((min != null && sum < min) || (max != null && sum > max)) {
|
||||
continue;
|
||||
} else {
|
||||
vo.setParam14(sum);
|
||||
}
|
||||
}
|
||||
|
||||
if (param15.get()) {
|
||||
Double min = constrains.getParam15Min();
|
||||
Double max = constrains.getParam15Max();
|
||||
Double sum = 0.0;
|
||||
for (int l = 0; l < j; l++) {
|
||||
|
||||
sum += coals.get(l).getParam15() * coals.get(l).getYmPercent() / 100.0;
|
||||
}
|
||||
|
||||
sum += k * coalJ.getParam15() / 10000.0;
|
||||
|
||||
sum =
|
||||
BigDecimal.valueOf(sum)
|
||||
.setScale(2, RoundingMode.HALF_UP)
|
||||
.doubleValue();
|
||||
if ((min != null && sum < min) || (max != null && sum > max)) {
|
||||
continue;
|
||||
} else {
|
||||
vo.setParam15(sum);
|
||||
}
|
||||
}
|
||||
|
||||
if (param16.get()) {
|
||||
Double min = constrains.getParam16Min();
|
||||
Double max = constrains.getParam16Max();
|
||||
Double sum = 0.0;
|
||||
for (int l = 0; l < j; l++) {
|
||||
|
||||
sum += coals.get(l).getParam16() * coals.get(l).getYmPercent() / 100.0;
|
||||
}
|
||||
|
||||
sum += k * coalJ.getParam16() / 10000.0;
|
||||
|
||||
sum =
|
||||
BigDecimal.valueOf(sum)
|
||||
.setScale(2, RoundingMode.HALF_UP)
|
||||
.doubleValue();
|
||||
if ((min != null && sum < min) || (max != null && sum > max)) {
|
||||
continue;
|
||||
} else {
|
||||
vo.setParam16(sum);
|
||||
}
|
||||
}
|
||||
|
||||
if (param17.get()) {
|
||||
Double min = constrains.getParam17Min();
|
||||
Double max = constrains.getParam17Max();
|
||||
Double sum = 0.0;
|
||||
for (int l = 0; l < j; l++) {
|
||||
|
||||
sum += coals.get(l).getParam17() * coals.get(l).getYmPercent() / 100.0;
|
||||
}
|
||||
|
||||
sum += k * coalJ.getParam17() / 10000.0;
|
||||
|
||||
sum =
|
||||
BigDecimal.valueOf(sum)
|
||||
.setScale(2, RoundingMode.HALF_UP)
|
||||
.doubleValue();
|
||||
if ((min != null && sum < min) || (max != null && sum > max)) {
|
||||
continue;
|
||||
} else {
|
||||
vo.setParam17(sum);
|
||||
}
|
||||
}
|
||||
|
||||
if (param18.get()) {
|
||||
Double min = constrains.getParam18Min();
|
||||
Double max = constrains.getParam18Max();
|
||||
Double sum = 0.0;
|
||||
for (int l = 0; l < j; l++) {
|
||||
|
||||
sum += coals.get(l).getParam18() * coals.get(l).getYmPercent() / 100.0;
|
||||
}
|
||||
|
||||
sum += k * coalJ.getParam18() / 10000.0;
|
||||
|
||||
sum =
|
||||
BigDecimal.valueOf(sum)
|
||||
.setScale(2, RoundingMode.HALF_UP)
|
||||
.doubleValue();
|
||||
if ((min != null && sum < min) || (max != null && sum > max)) {
|
||||
continue;
|
||||
} else {
|
||||
vo.setParam18(sum);
|
||||
}
|
||||
}
|
||||
|
||||
if (param19.get()) {
|
||||
Double min = constrains.getParam19Min();
|
||||
Double max = constrains.getParam19Max();
|
||||
Double sum = 0.0;
|
||||
for (int l = 0; l < j; l++) {
|
||||
|
||||
sum += coals.get(l).getParam19() * coals.get(l).getYmPercent() / 100.0;
|
||||
}
|
||||
|
||||
sum += k * coalJ.getParam19() / 10000.0;
|
||||
|
||||
sum =
|
||||
BigDecimal.valueOf(sum)
|
||||
.setScale(2, RoundingMode.HALF_UP)
|
||||
.doubleValue();
|
||||
if ((min != null && sum < min) || (max != null && sum > max)) {
|
||||
continue;
|
||||
} else {
|
||||
vo.setParam19(sum);
|
||||
}
|
||||
}
|
||||
|
||||
if (param20.get()) {
|
||||
Double min = constrains.getParam20Min();
|
||||
Double max = constrains.getParam20Max();
|
||||
Double sum = 0.0;
|
||||
for (int l = 0; l < j; l++) {
|
||||
|
||||
sum += coals.get(l).getParam20() * coals.get(l).getYmPercent() / 100.0;
|
||||
}
|
||||
|
||||
sum += k * coalJ.getParam20() / 10000.0;
|
||||
|
||||
sum =
|
||||
BigDecimal.valueOf(sum)
|
||||
.setScale(2, RoundingMode.HALF_UP)
|
||||
.doubleValue();
|
||||
if ((min != null && sum < min) || (max != null && sum > max)) {
|
||||
continue;
|
||||
} else {
|
||||
vo.setParam20(sum);
|
||||
}
|
||||
}
|
||||
|
||||
// 生成配煤结果
|
||||
|
||||
ArrayList<CoalPercentVo> percentInfos = new ArrayList<>();
|
||||
vo.setPercentInfos(percentInfos);
|
||||
for (int l = 0; l < j; l++) {
|
||||
|
||||
percentInfos.add(
|
||||
new CoalPercentVo(coalJ.getName(), k / 100.0, null, k / 100.0));
|
||||
new CoalPercentVo(
|
||||
coals.get(l).getName(),
|
||||
coals.get(l).getYmPercent(),
|
||||
0.0,
|
||||
coals.get(l).getYmPercent()));
|
||||
}
|
||||
|
||||
if (results.isEmpty()) {
|
||||
results = new ArrayList<>();
|
||||
}
|
||||
vo.setPercentSum(percentInfos.stream().mapToDouble(CoalPercentVo::getYmPercent).sum());
|
||||
results.add(vo);
|
||||
percentInfos.add(
|
||||
new CoalPercentVo(coalJ.getName(), k / 100.0, null, k / 100.0));
|
||||
|
||||
if (results.size() > count) {
|
||||
break;
|
||||
}
|
||||
if (results.isEmpty()) {
|
||||
results = new ArrayList<>();
|
||||
}
|
||||
vo.setPercentSum(
|
||||
percentInfos.stream().mapToDouble(CoalPercentVo::getYmPercent).sum());
|
||||
results.add(vo);
|
||||
|
||||
if (results.size() > count) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
//</editor-fold>
|
||||
// }
|
||||
// </editor-fold>
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user