public void put(final Entity operationProductComponent, final BigDecimal quantity) { Preconditions.checkNotNull(operationProductComponent, L_MISSING_OPERATION_PRODUCT_COMPONENT_ENTITY); OperationProductComponentHolder operationProductComponentHolder = new OperationProductComponentHolder( operationProductComponent); put(operationProductComponentHolder, quantity); }
@Override public void preloadOperationProductComponentQuantity(final List<Entity> operationProductComponents, final OperationProductComponentWithQuantityContainer operationProductComponentWithQuantityContainer) { for (Entity operationProductComponent : operationProductComponents) { BigDecimal neededQuantity = operationProductComponent.getDecimalField(L_QUANTITY); operationProductComponentWithQuantityContainer.put(operationProductComponent, neededQuantity); } }
private OperationProductComponentWithQuantityContainer getAllWithSameEntityType( final OperationProductComponentEntityType operationProductComponentEntityType) { OperationProductComponentWithQuantityContainer allWithSameType = new OperationProductComponentWithQuantityContainer(); for (Entry<OperationProductComponentHolder, BigDecimal> operationProductComponentWithQuantity : operationProductComponentWithQuantities .entrySet()) { OperationProductComponentHolder operationProductComponentHolder = operationProductComponentWithQuantity.getKey(); if (operationProductComponentHolder.isEntityTypeSame(operationProductComponentEntityType)) { BigDecimal quantity = operationProductComponentWithQuantity.getValue(); allWithSameType.put(operationProductComponentHolder, quantity); } } return allWithSameType; }
private void multiplyOperationProductComponentQuantities(final List<Entity> operationProductComponents, final BigDecimal multiplier, final OperationProductComponentWithQuantityContainer operationProductComponentWithQuantityContainer) { for (Entity operationProductComponent : operationProductComponents) { BigDecimal addedQuantity = operationProductComponentWithQuantityContainer.get(operationProductComponent); BigDecimal quantity = addedQuantity.multiply(multiplier, numberService.getMathContext()); operationProductComponentWithQuantityContainer.put(operationProductComponent, quantity.setScale(5, RoundingMode.CEILING)); } }
@Override public OperationProductComponentWithQuantityContainer groupOperationProductComponentWithQuantities( final Map<Long, OperationProductComponentWithQuantityContainer> operationProductComponentWithQuantityContainerForOrders) { OperationProductComponentWithQuantityContainer operationProductComponentWithQuantityContainer = new OperationProductComponentWithQuantityContainer(); for (Entry<Long, OperationProductComponentWithQuantityContainer> operationProductComponentWithQuantityContainerForOrder : operationProductComponentWithQuantityContainerForOrders .entrySet()) { for (Entry<OperationProductComponentHolder, BigDecimal> productComponentWithQuantity : operationProductComponentWithQuantityContainerForOrder .getValue().asMap().entrySet()) { OperationProductComponentHolder operationProductComponentHolder = productComponentWithQuantity.getKey(); BigDecimal quantity = productComponentWithQuantity.getValue(); if (operationProductComponentWithQuantityContainer.containsKey(operationProductComponentHolder)) { BigDecimal addedQuantity = operationProductComponentWithQuantityContainer .get(operationProductComponentHolder); quantity = quantity.add(addedQuantity, numberService.getMathContext()); operationProductComponentWithQuantityContainer.put(operationProductComponentHolder, quantity); } else { operationProductComponentWithQuantityContainer.put(operationProductComponentHolder, quantity); } } } return operationProductComponentWithQuantityContainer; }
private OperationProductComponentWithQuantityContainer getProductComponentWithQuantities(final Entity order) { OperationProductComponentWithQuantityContainer productComponentWithQuantities = new OperationProductComponentWithQuantityContainer(); List<Entity> productionCountingQuantities = dataDefinitionService .get(BasicProductionCountingConstants.PLUGIN_IDENTIFIER, BasicProductionCountingConstants.MODEL_PRODUCTION_COUNTING_QUANTITY).find() .add(SearchRestrictions.belongsTo(ProductionCountingQuantityFields.ORDER, order)).list().getEntities(); for (Entity productionCountingQuantity : productionCountingQuantities) { Entity technologyOperationComponent = productionCountingQuantity .getBelongsToField(ProductionCountingQuantityFields.TECHNOLOGY_OPERATION_COMPONENT); Entity product = productionCountingQuantity.getBelongsToField(ProductionCountingQuantityFields.PRODUCT); String role = productionCountingQuantity.getStringField(ProductionCountingQuantityFields.ROLE); BigDecimal plannedQuantity = productionCountingQuantity .getDecimalField(ProductionCountingQuantityFields.PLANNED_QUANTITY); OperationProductComponentEntityType entityType = getEntityType(role); ProductMaterialType productMaterialType = ProductMaterialType.parseString(productionCountingQuantity.getStringField(ProductionCountingQuantityFields.TYPE_OF_MATERIAL)); OperationProductComponentHolder operationProductComponentHolder = new OperationProductComponentHolder(product, technologyOperationComponent, productionCountingQuantity, entityType, productMaterialType); productComponentWithQuantities.put(operationProductComponentHolder, plannedQuantity); } return productComponentWithQuantities; }