Fixed isWeightExceeded value in database. Fixed shipping freqency rounding in database
This commit is contained in:
parent
8742d24b62
commit
bdfaef3365
1 changed files with 15 additions and 2 deletions
|
|
@ -142,12 +142,14 @@ public class CalculationExecutionService {
|
||||||
CalculationJobDestination destinationCalculationJob = new CalculationJobDestination();
|
CalculationJobDestination destinationCalculationJob = new CalculationJobDestination();
|
||||||
boolean hasMainRun = true;
|
boolean hasMainRun = true;
|
||||||
BigDecimal leadTime = null;
|
BigDecimal leadTime = null;
|
||||||
|
boolean isWeightExceeded = false;
|
||||||
|
|
||||||
if (destination.getD2d()) {
|
if (destination.getD2d()) {
|
||||||
selectedContainerCalculation = containerCalculationService.doCalculation(setId, premiseToHuService.createHuFromPremise(premise), ContainerType.FEU, premise.getHuMixable(), premise.getHuStackable());
|
selectedContainerCalculation = containerCalculationService.doCalculation(setId, premiseToHuService.createHuFromPremise(premise), ContainerType.FEU, premise.getHuMixable(), premise.getHuStackable());
|
||||||
sections = List.of(new SectionInfo(null, routeSectionCostCalculationService.doD2dCalculation(setId, periodId, premise, destination, selectedContainerCalculation), selectedContainerCalculation));
|
sections = List.of(new SectionInfo(null, routeSectionCostCalculationService.doD2dCalculation(setId, periodId, premise, destination, selectedContainerCalculation), selectedContainerCalculation));
|
||||||
leadTime = BigDecimal.valueOf(destination.getLeadTimeD2d());
|
leadTime = BigDecimal.valueOf(destination.getLeadTimeD2d());
|
||||||
usedContainerType = ContainerType.FEU;
|
usedContainerType = ContainerType.FEU;
|
||||||
|
isWeightExceeded = sections.getFirst().result().isWeightPrice();
|
||||||
} else {
|
} else {
|
||||||
var bestContainerTypeResult = getSectionsFromBestContainerType(setId, periodId, destination, premise);
|
var bestContainerTypeResult = getSectionsFromBestContainerType(setId, periodId, destination, premise);
|
||||||
sections = bestContainerTypeResult.sections;
|
sections = bestContainerTypeResult.sections;
|
||||||
|
|
@ -162,6 +164,17 @@ public class CalculationExecutionService {
|
||||||
s.result().setPreRun(false);
|
s.result().setPreRun(false);
|
||||||
s.result().setPostRun(false);
|
s.result().setPostRun(false);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
var containerSections = sections.stream().filter(s -> s.section().getRateType() != RateType.MATRIX).toList();
|
||||||
|
|
||||||
|
if(containerSections.size() > 1) {
|
||||||
|
isWeightExceeded = containerSections.stream().anyMatch(s -> s.result().isWeightPrice());
|
||||||
|
} else {
|
||||||
|
isWeightExceeded = sections.getFirst().result().isWeightPrice();
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
isWeightExceeded = sections.stream().map(SectionInfo::result).filter(CalculationJobRouteSection::getMainRun).anyMatch(CalculationJobRouteSection::isWeightPrice);
|
||||||
}
|
}
|
||||||
|
|
||||||
selectedContainerCalculation = bestContainerTypeResult.selectedContainerCalculation;
|
selectedContainerCalculation = bestContainerTypeResult.selectedContainerCalculation;
|
||||||
|
|
@ -207,7 +220,7 @@ public class CalculationExecutionService {
|
||||||
destinationCalculationJob.setAnnualCustomCost(customCost.getAnnualCost());
|
destinationCalculationJob.setAnnualCustomCost(customCost.getAnnualCost());
|
||||||
|
|
||||||
destinationCalculationJob.setAnnualTransportationCost(sections.stream().map(SectionInfo::result).map(CalculationJobRouteSection::getAnnualCost).reduce(BigDecimal.ZERO, BigDecimal::add));
|
destinationCalculationJob.setAnnualTransportationCost(sections.stream().map(SectionInfo::result).map(CalculationJobRouteSection::getAnnualCost).reduce(BigDecimal.ZERO, BigDecimal::add));
|
||||||
destinationCalculationJob.setTransportWeightExceeded(sections.stream().map(SectionInfo::result).filter(CalculationJobRouteSection::getMainRun).anyMatch(CalculationJobRouteSection::isWeightPrice));
|
destinationCalculationJob.setTransportWeightExceeded(isWeightExceeded);
|
||||||
destinationCalculationJob.setLayerCount(sections.getFirst().containerResult().getLayer());
|
destinationCalculationJob.setLayerCount(sections.getFirst().containerResult().getLayer());
|
||||||
destinationCalculationJob.setLayerStructure(null); //TODO generate layer structure
|
destinationCalculationJob.setLayerStructure(null); //TODO generate layer structure
|
||||||
destinationCalculationJob.setHuCount(sections.getFirst().containerResult().getHuUnitCount());
|
destinationCalculationJob.setHuCount(sections.getFirst().containerResult().getHuUnitCount());
|
||||||
|
|
@ -216,7 +229,7 @@ public class CalculationExecutionService {
|
||||||
|
|
||||||
|
|
||||||
double huAnnualAmount = BigDecimal.valueOf(destination.getAnnualAmount()).divide(BigDecimal.valueOf(premise.getHuUnitCount()),4, RoundingMode.UP ).doubleValue();
|
double huAnnualAmount = BigDecimal.valueOf(destination.getAnnualAmount()).divide(BigDecimal.valueOf(premise.getHuUnitCount()),4, RoundingMode.UP ).doubleValue();
|
||||||
destinationCalculationJob.setShippingFrequency(Double.valueOf(shippingFrequencyCalculationService.doCalculation(setId, huAnnualAmount, selectedContainerCalculation.getHuPerContainer(),!premise.getHuMixable())).intValue());
|
destinationCalculationJob.setShippingFrequency((int) Math.round(shippingFrequencyCalculationService.doCalculation(setId, huAnnualAmount, selectedContainerCalculation.getHuPerContainer(), !premise.getHuMixable())));
|
||||||
|
|
||||||
var commonCost = destinationCalculationJob.getAnnualHandlingCost()
|
var commonCost = destinationCalculationJob.getAnnualHandlingCost()
|
||||||
.add(destinationCalculationJob.getAnnualDisposalCost())
|
.add(destinationCalculationJob.getAnnualDisposalCost())
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue