public OperationProductComponentWithQuantityContainer getAllWithSameEntityType(final String operationProductComponentModelName) { return getAllWithSameEntityType(OperationProductComponentEntityType.parseString(operationProductComponentModelName)); }
public void createRegistryEntriesForOrder(Entity order, boolean plannedQuantityChanged) { OperationProductComponentWithQuantityContainer operationProductComponentWithQuantityContainer = productQuantitiesService .getProductComponentQuantitiesWithoutNonComponents(Lists.newArrayList(order), true); String typeOfProductionRecording = order.getStringField(OrderFieldsPC.TYPE_OF_PRODUCTION_RECORDING); String eventType = null; if (TypeOfProductionRecording.FOR_EACH.getStringValue().equals(typeOfProductionRecording)) { eventType = CoverageProductLoggingEventType.OPERATION_INPUT.getStringValue(); } else if (TypeOfProductionRecording.CUMULATED.getStringValue().equals(typeOfProductionRecording) || TypeOfProductionRecording.BASIC.getStringValue().equals(typeOfProductionRecording)) { eventType = CoverageProductLoggingEventType.ORDER_INPUT.getStringValue(); } OperationProductComponentWithQuantityContainer operationProductComponentWithQuantityContainerIn = operationProductComponentWithQuantityContainer .getAllWithSameEntityType(TechnologiesConstants.MODEL_OPERATION_PRODUCT_IN_COMPONENT); List<Entity> opics = registerService.getOPICForTechnology(order.getBelongsToField(OrderFields.TECHNOLOGY)); List<Entity> entries = Lists.newArrayList(); List<Long> productIds = opics.stream().map(en -> en.getLongField("productId")).collect(Collectors.toList()); List<Long> intermediateProducts = registerService.getIntermediateProducts(productIds); for (Entity opic : opics) { BigDecimal quantity = operationProductComponentWithQuantityContainerIn.get(opic.getBelongsToField("opic")); if (quantity != null) { registerService.addRegisterEntryForOrder(entries, order, opic, quantity, eventType, intermediateProducts); } } addOutputEntry(operationProductComponentWithQuantityContainer, order, entries, plannedQuantityChanged); order.setField(OrderFieldsOS.COVERAGE_REGISTERS, entries); }
@Override public Map<OperationProductComponentHolder, BigDecimal> getNeededProductQuantitiesByOPC(Entity technology, BigDecimal givenQuantity, MrpAlgorithm mrpAlgorithm) { Map<Long, BigDecimal> operationRuns = Maps.newHashMap(); Set<OperationProductComponentHolder> nonComponents = Sets.newHashSet(); OperationProductComponentWithQuantityContainer productComponentWithQuantities = getProductComponentWithQuantitiesForTechnology( technology, givenQuantity, operationRuns, nonComponents); OperationProductComponentWithQuantityContainer allWithSameEntityType = productComponentWithQuantities .getAllWithSameEntityType(TechnologiesConstants.MODEL_OPERATION_PRODUCT_IN_COMPONENT); if (mrpAlgorithm.equals(MrpAlgorithm.ALL_PRODUCTS_IN)) { return getOperationProductComponentWithQuantities(allWithSameEntityType, nonComponents, false); } else if (mrpAlgorithm.equals(MrpAlgorithm.ONLY_COMPONENTS)) { return getOperationProductComponentWithQuantities(allWithSameEntityType, nonComponents, true); } else if (mrpAlgorithm.equals(MrpAlgorithm.COMPONENTS_AND_SUBCONTRACTORS_PRODUCTS)) { return getOperationProductComponentWithQuantities(allWithSameEntityType, nonComponents, false); } else { return getOperationProductComponentWithQuantities(allWithSameEntityType, nonComponents, true, true); } }
@Override public Map<Long, BigDecimal> getProductWithQuantities( final OperationProductComponentWithQuantityContainer productComponentWithQuantities, final Set<OperationProductComponentHolder> nonComponents, final MrpAlgorithm mrpAlgorithm, final String operationProductComponentModelName) { OperationProductComponentWithQuantityContainer allWithSameEntityType = productComponentWithQuantities .getAllWithSameEntityType(operationProductComponentModelName); if (mrpAlgorithm.equals(MrpAlgorithm.ALL_PRODUCTS_IN)) { return getProductWithoutSubcontractingProduct(allWithSameEntityType, nonComponents, false); } else if (mrpAlgorithm.equals(MrpAlgorithm.ONLY_COMPONENTS)) { return getProductWithoutSubcontractingProduct(allWithSameEntityType, nonComponents, true); } else if (mrpAlgorithm.equals(MrpAlgorithm.COMPONENTS_AND_SUBCONTRACTORS_PRODUCTS)) { return getProductWithoutSubcontractingProduct(allWithSameEntityType, nonComponents, false); } else { return getProductWithoutSubcontractingProduct(allWithSameEntityType, nonComponents, true, true); } }
final String operationProductComponentModelName) { OperationProductComponentWithQuantityContainer allWithSameEntityType = productComponentWithQuantities .getAllWithSameEntityType(operationProductComponentModelName);
.getAllWithSameEntityType(TechnologiesConstants.MODEL_OPERATION_PRODUCT_IN_COMPONENT);