Search in sources :

Example 1 with OperationProductComponentHolder

use of com.qcadoo.mes.technologies.dto.OperationProductComponentHolder in project mes by qcadoo.

the class ModelCardPdfService method mapToModelCardMaterialEntry.

private void mapToModelCardMaterialEntry(Entity modelCard, Map<Long, Map<Long, BigDecimal>> quantitiesInStock, List<ModelCardMaterialEntry> entries, Map.Entry<OperationProductComponentHolder, BigDecimal> neededProductQuantity, boolean forFamily, BigDecimal quantity, Locale locale) {
    ModelCardMaterialEntry modelCardMaterialEntry = new ModelCardMaterialEntry();
    Entity material = neededProductQuantity.getKey().getProduct();
    Entity operationProductComponent = neededProductQuantity.getKey().getOperationProductComponent();
    Entity technologyOperationComponent = neededProductQuantity.getKey().getTechnologyOperationComponent();
    Entity warehouse = operationProductComponent.getBelongsToField(OperationProductInComponentFieldsPFTD.COMPONENTS_LOCATION);
    Entity technologyInputProductType = operationProductComponent.getBelongsToField(OperationProductInComponentFields.TECHNOLOGY_INPUT_PRODUCT_TYPE);
    modelCardMaterialEntry.setNodeNumber(technologyOperationComponent.getStringField(TechnologyOperationComponentFields.NODE_NUMBER));
    modelCardMaterialEntry.setPriority(operationProductComponent.getIntegerField(OperationProductInComponentFields.PRIORITY));
    if (Objects.nonNull(technologyInputProductType)) {
        modelCardMaterialEntry.setTechnologyInputProductTypeId(technologyInputProductType.getId());
        modelCardMaterialEntry.setTechnologyInputProductTypeName(technologyInputProductType.getStringField(TechnologyInputProductTypeFields.NAME));
    }
    modelCardMaterialEntry.setDescription(operationProductComponent.getStringField(OperationProductInComponentFields.DESCRIPTION));
    if (forFamily && operationProductComponent.getBooleanField(OperationProductInComponentFields.DIFFERENT_PRODUCTS_IN_DIFFERENT_SIZES) && !operationProductComponent.getHasManyField(OperationProductInComponentFields.PRODUCT_BY_SIZE_GROUPS).isEmpty()) {
        modelCardMaterialEntry.setNumber(translationService.translate("productFlowThruDivision.modelCard.report.productsBySize.label", locale));
        List<Entity> productBySizeGroups = getProductBySizeGroups(operationProductComponent.getId());
        for (Entity productBySizeGroup : productBySizeGroups) {
            ModelCardMaterialEntry modelCardMaterialBySizeEntry = new ModelCardMaterialEntry();
            Entity materialBySizeGroup = productBySizeGroup.getBelongsToField(ProductBySizeGroupFields.PRODUCT);
            Entity sizeGroup = productBySizeGroup.getBelongsToField(ProductBySizeGroupFields.SIZE_GROUP);
            modelCardMaterialBySizeEntry.setId(materialBySizeGroup.getId());
            modelCardMaterialBySizeEntry.setNumber(materialBySizeGroup.getStringField(ProductFields.NUMBER));
            modelCardMaterialBySizeEntry.setName(materialBySizeGroup.getStringField(ProductFields.NAME));
            modelCardMaterialBySizeEntry.setUnit(materialBySizeGroup.getStringField(ProductFields.UNIT));
            modelCardMaterialBySizeEntry.setWarehouseId(warehouse.getId());
            modelCardMaterialBySizeEntry.setCurrentStock(BigDecimalUtils.convertNullToZero(quantitiesInStock.get(warehouse.getId()).get(materialBySizeGroup.getId())));
            modelCardMaterialBySizeEntry.setNodeNumber(technologyOperationComponent.getStringField(TechnologyOperationComponentFields.NODE_NUMBER));
            modelCardMaterialBySizeEntry.setPriority(operationProductComponent.getIntegerField(OperationProductInComponentFields.PRIORITY));
            if (Objects.nonNull(technologyInputProductType)) {
                modelCardMaterialBySizeEntry.setTechnologyInputProductTypeId(technologyInputProductType.getId());
            }
            Entity parent = materialBySizeGroup.getBelongsToField(ProductFields.PARENT);
            if (!Objects.isNull(parent)) {
                modelCardMaterialBySizeEntry.setParentId(parent.getId());
            }
            modelCardMaterialBySizeEntry.setSizeGroupId(sizeGroup.getId());
            modelCardMaterialBySizeEntry.setSizeGroupNumber(sizeGroup.getStringField(SizeGroupFields.NUMBER));
            BigDecimal norm = productBySizeGroup.getDecimalField(ProductBySizeGroupFields.QUANTITY);
            modelCardMaterialBySizeEntry.setNorm(norm);
            modelCardMaterialBySizeEntry.setNeededQuantity(numberService.setScaleWithDefaultMathContext(quantity.multiply(productBySizeGroup.getDecimalField(ProductBySizeGroupFields.QUANTITY), numberService.getMathContext())));
            BigDecimal price = numberService.setScaleWithDefaultMathContext(productsCostCalculationService.calculateProductCostPerUnit(materialBySizeGroup, modelCard.getStringField(ModelCardFields.MATERIAL_COSTS_USED), modelCard.getBooleanField(ModelCardFields.USE_NOMINAL_COST_PRICE_NOT_SPECIFIED)), 2);
            modelCardMaterialBySizeEntry.setPrice(price);
            modelCardMaterialBySizeEntry.setMaterialUnitCost(numberService.setScaleWithDefaultMathContext(norm.multiply(price, numberService.getMathContext()), 2));
            entries.add(modelCardMaterialBySizeEntry);
        }
    } else if (material == null) {
        BigDecimal norm = operationProductComponent.getDecimalField(OperationProductInComponentFields.QUANTITY);
        modelCardMaterialEntry.setNorm(norm);
        modelCardMaterialEntry.setNeededQuantity(numberService.setScaleWithDefaultMathContext(neededProductQuantity.getValue(), 2));
        BigDecimal price = BigDecimalUtils.convertNullToZero(technologyInputProductType.getDecimalField(TechnologyInputProductTypeFields.AVERAGE_PRICE));
        modelCardMaterialEntry.setPrice(price);
        modelCardMaterialEntry.setMaterialUnitCost(numberService.setScaleWithDefaultMathContext(norm.multiply(price, numberService.getMathContext()), 2));
        modelCardMaterialEntry.setUnit(operationProductComponent.getStringField(OperationProductInComponentFields.GIVEN_UNIT));
    } else {
        BigDecimal norm = operationProductComponent.getDecimalField(OperationProductInComponentFields.QUANTITY);
        if (operationProductComponent.getBooleanField(OperationProductInComponentFields.DIFFERENT_PRODUCTS_IN_DIFFERENT_SIZES)) {
            Entity pbs = operationProductComponent.getHasManyField(OperationProductInComponentFields.PRODUCT_BY_SIZE_GROUPS).stream().filter(prbs -> prbs.getBelongsToField(ProductBySizeGroupFields.PRODUCT).getId().equals(material.getId())).findFirst().orElse(null);
            if (Objects.nonNull(pbs)) {
                norm = pbs.getDecimalField(ProductBySizeGroupFields.QUANTITY);
            }
        }
        modelCardMaterialEntry.setNorm(norm);
        modelCardMaterialEntry.setNeededQuantity(numberService.setScaleWithDefaultMathContext(neededProductQuantity.getValue(), 2));
        modelCardMaterialEntry.setId(material.getId());
        modelCardMaterialEntry.setNumber(material.getStringField(ProductFields.NUMBER));
        modelCardMaterialEntry.setName(material.getStringField(ProductFields.NAME));
        modelCardMaterialEntry.setUnit(material.getStringField(ProductFields.UNIT));
        modelCardMaterialEntry.setWarehouseId(warehouse.getId());
        modelCardMaterialEntry.setCurrentStock(BigDecimalUtils.convertNullToZero(quantitiesInStock.get(warehouse.getId()).get(material.getId())));
        Entity parent = material.getBelongsToField(ProductFields.PARENT);
        if (!Objects.isNull(parent)) {
            modelCardMaterialEntry.setParentId(parent.getId());
        }
        BigDecimal price = numberService.setScaleWithDefaultMathContext(productsCostCalculationService.calculateProductCostPerUnit(material, modelCard.getStringField(ModelCardFields.MATERIAL_COSTS_USED), modelCard.getBooleanField(ModelCardFields.USE_NOMINAL_COST_PRICE_NOT_SPECIFIED)), 2);
        modelCardMaterialEntry.setPrice(price);
        modelCardMaterialEntry.setMaterialUnitCost(numberService.setScaleWithDefaultMathContext(norm.multiply(price, numberService.getMathContext()), 2));
    }
    entries.add(modelCardMaterialEntry);
}
Also used : OperationProductInComponentFieldsPFTD(com.qcadoo.mes.productFlowThruDivision.constants.OperationProductInComponentFieldsPFTD) Comparator.naturalOrder(java.util.Comparator.naturalOrder) LoggerFactory(org.slf4j.LoggerFactory) Autowired(org.springframework.beans.factory.annotation.Autowired) BigDecimalUtils(com.qcadoo.model.api.BigDecimalUtils) StringUtils(org.apache.commons.lang3.StringUtils) TechnologyOperationComponentFields(com.qcadoo.mes.technologies.constants.TechnologyOperationComponentFields) ModelCardProductFields(com.qcadoo.mes.productFlowThruDivision.constants.ModelCardProductFields) BigDecimal(java.math.BigDecimal) Element(com.lowagie.text.Element) ModelFields(com.qcadoo.mes.basic.constants.ModelFields) Locale(java.util.Locale) BasicConstants(com.qcadoo.mes.basic.constants.BasicConstants) Map(java.util.Map) ProductQuantitiesService(com.qcadoo.mes.technologies.ProductQuantitiesService) AttributeFields(com.qcadoo.mes.basic.constants.AttributeFields) SearchRestrictions(com.qcadoo.model.api.search.SearchRestrictions) Image(com.lowagie.text.Image) DeliveriesConstants(com.qcadoo.mes.deliveries.constants.DeliveriesConstants) OperationProductInComponentFields(com.qcadoo.mes.technologies.constants.OperationProductInComponentFields) FontUtils(com.qcadoo.report.api.FontUtils) ProductsCostCalculationService(com.qcadoo.mes.costCalculation.print.ProductsCostCalculationService) Set(java.util.Set) CompanyFields(com.qcadoo.mes.basic.constants.CompanyFields) Collectors(java.util.stream.Collectors) FormsFields(com.qcadoo.mes.basic.constants.FormsFields) OperationProductComponentHolder(com.qcadoo.mes.technologies.dto.OperationProductComponentHolder) DataDefinition(com.qcadoo.model.api.DataDefinition) Sets(com.google.common.collect.Sets) ProductAttachmentFields(com.qcadoo.mes.basic.constants.ProductAttachmentFields) Objects(java.util.Objects) List(java.util.List) Entity(com.qcadoo.model.api.Entity) Lists.newArrayList(com.google.common.collect.Lists.newArrayList) Rectangle(com.lowagie.text.Rectangle) ParameterService(com.qcadoo.mes.basic.ParameterService) TechnologyInputProductTypeFields(com.qcadoo.mes.technologies.constants.TechnologyInputProductTypeFields) TechnologiesConstants(com.qcadoo.mes.technologies.constants.TechnologiesConstants) HeaderAlignment(com.qcadoo.report.api.pdf.HeaderAlignment) DataDefinitionService(com.qcadoo.model.api.DataDefinitionService) CompanyProductFields(com.qcadoo.mes.deliveries.constants.CompanyProductFields) ProductAttributeValueFields(com.qcadoo.mes.basic.constants.ProductAttributeValueFields) ModelCardFields(com.qcadoo.mes.productFlowThruDivision.constants.ModelCardFields) PdfPTable(com.lowagie.text.pdf.PdfPTable) PdfDocumentService(com.qcadoo.report.api.pdf.PdfDocumentService) HashSet(java.util.HashSet) Lists(com.google.common.collect.Lists) Phrase(com.lowagie.text.Phrase) PdfHelper(com.qcadoo.report.api.pdf.PdfHelper) Service(org.springframework.stereotype.Service) MaterialFlowResourcesService(com.qcadoo.mes.materialFlowResources.MaterialFlowResourcesService) Comparator.nullsFirst(java.util.Comparator.nullsFirst) Logger(org.slf4j.Logger) AttributeValueFields(com.qcadoo.mes.basic.constants.AttributeValueFields) IOException(java.io.IOException) DocumentException(com.lowagie.text.DocumentException) TranslationService(com.qcadoo.localization.api.TranslationService) LabelFields(com.qcadoo.mes.basic.constants.LabelFields) Maps(com.google.common.collect.Maps) Document(com.lowagie.text.Document) ProductBySizeGroupFields(com.qcadoo.mes.technologies.constants.ProductBySizeGroupFields) JoinType(com.qcadoo.model.api.search.JoinType) SizeGroupFields(com.qcadoo.mes.basic.constants.SizeGroupFields) CompanyProductsFamilyFields(com.qcadoo.mes.deliveries.constants.CompanyProductsFamilyFields) NumberService(com.qcadoo.model.api.NumberService) ProductFields(com.qcadoo.mes.basic.constants.ProductFields) PdfCell(com.lowagie.text.pdf.PdfCell) ParameterFieldsPFTD(com.qcadoo.mes.productFlowThruDivision.constants.ParameterFieldsPFTD) Comparator(java.util.Comparator) PdfPCell(com.lowagie.text.pdf.PdfPCell) Entity(com.qcadoo.model.api.Entity) BigDecimal(java.math.BigDecimal)

Example 2 with OperationProductComponentHolder

use of com.qcadoo.mes.technologies.dto.OperationProductComponentHolder in project mes by qcadoo.

the class OperationProductsExtractor method getOperationProductComponents.

private List<Entity> getOperationProductComponents(final Entity order, final Entity technologyOperationComponent) {
    List<Entity> trackingOperationProductComponents = Lists.newArrayList();
    Map<OperationProductComponentEntityType, Set<Entity>> entityTypeWithAlreadyAddedProducts = Maps.newHashMap();
    String typeOfProductionRecording = order.getStringField(OrderFieldsPC.TYPE_OF_PRODUCTION_RECORDING);
    OperationProductComponentWithQuantityContainer productComponentQuantities = productQuantitiesService.getProductComponentQuantities(order);
    for (Entry<OperationProductComponentHolder, BigDecimal> productComponentQuantity : productComponentQuantities.asMap().entrySet()) {
        OperationProductComponentHolder operationProductComponentHolder = productComponentQuantity.getKey();
        if (forEach(typeOfProductionRecording)) {
            Entity operationComponent = operationProductComponentHolder.getTechnologyOperationComponent();
            if (technologyOperationComponent == null) {
                if (operationComponent != null) {
                    continue;
                }
            } else {
                if ((operationComponent == null) || !technologyOperationComponent.getId().equals(operationComponent.getId())) {
                    continue;
                }
            }
        } else if (cumulated(typeOfProductionRecording)) {
            OperationProductComponentEntityType entityType = operationProductComponentHolder.getEntityType();
            Entity product = operationProductComponentHolder.getProduct();
            if ((product != null) && (entityType != null)) {
                if (shouldSkipAddingProduct(operationProductComponentHolder, entityTypeWithAlreadyAddedProducts, typeOfProductionRecording)) {
                    if (entityTypeWithAlreadyAddedProducts.containsKey(entityType)) {
                        continue;
                    } else {
                        entityTypeWithAlreadyAddedProducts.put(entityType, Sets.newHashSet());
                        continue;
                    }
                } else {
                    if (entityTypeWithAlreadyAddedProducts.containsKey(entityType)) {
                        Set<Entity> alreadAddedProducts = entityTypeWithAlreadyAddedProducts.get(entityType);
                        alreadAddedProducts.add(product);
                        entityTypeWithAlreadyAddedProducts.put(entityType, alreadAddedProducts);
                    } else {
                        entityTypeWithAlreadyAddedProducts.put(entityType, Sets.newHashSet(product));
                    }
                }
            }
        }
        Entity trackingOperationProductComponent = trackingOperationComponentBuilder.fromOperationProductComponentHolder(operationProductComponentHolder);
        if (forEach(typeOfProductionRecording)) {
            Optional<Entity> mabyExist = trackingOperationProductComponents.stream().filter(toc -> toc.getBelongsToField(L_PRODUCT).getId().equals(trackingOperationProductComponent.getBelongsToField(L_PRODUCT).getId())).findAny();
            if (!mabyExist.isPresent()) {
                trackingOperationProductComponents.add(trackingOperationProductComponent);
            }
        } else {
            trackingOperationProductComponents.add(trackingOperationProductComponent);
        }
    }
    return trackingOperationProductComponents;
}
Also used : OperationProductComponentHolder(com.qcadoo.mes.technologies.dto.OperationProductComponentHolder) Function(com.google.common.base.Function) OperationProductComponentEntityType(com.qcadoo.mes.technologies.dto.OperationProductComponentEntityType) ProductionTrackingFields(com.qcadoo.mes.productionCounting.constants.ProductionTrackingFields) Set(java.util.Set) Autowired(org.springframework.beans.factory.annotation.Autowired) OrderFieldsPC(com.qcadoo.mes.productionCounting.constants.OrderFieldsPC) Multimap(com.google.common.collect.Multimap) TechnologyService(com.qcadoo.mes.technologies.TechnologyService) Maps(com.google.common.collect.Maps) OperationProductComponentHolder(com.qcadoo.mes.technologies.dto.OperationProductComponentHolder) Sets(com.google.common.collect.Sets) Multimaps(com.google.common.collect.Multimaps) OperationProductComponentWithQuantityContainer(com.qcadoo.mes.technologies.dto.OperationProductComponentWithQuantityContainer) BigDecimal(java.math.BigDecimal) Entity(com.qcadoo.model.api.Entity) List(java.util.List) Lists(com.google.common.collect.Lists) Service(org.springframework.stereotype.Service) Map(java.util.Map) Entry(java.util.Map.Entry) ProductionCountingConstants(com.qcadoo.mes.productionCounting.constants.ProductionCountingConstants) ProductQuantitiesService(com.qcadoo.mes.technologies.ProductQuantitiesService) Optional(java.util.Optional) TypeOfProductionRecording(com.qcadoo.mes.productionCounting.constants.TypeOfProductionRecording) Entity(com.qcadoo.model.api.Entity) Set(java.util.Set) OperationProductComponentWithQuantityContainer(com.qcadoo.mes.technologies.dto.OperationProductComponentWithQuantityContainer) OperationProductComponentEntityType(com.qcadoo.mes.technologies.dto.OperationProductComponentEntityType) BigDecimal(java.math.BigDecimal)

Example 3 with OperationProductComponentHolder

use of com.qcadoo.mes.technologies.dto.OperationProductComponentHolder in project mes by qcadoo.

the class ProductQuantitiesServiceImpl method traverseProductQuantitiesAndOperationRuns.

@Override
public void traverseProductQuantitiesAndOperationRuns(final Entity technology, Map<Long, Entity> entitiesById, final BigDecimal givenQuantity, final Entity operationComponent, final Entity previousOperationComponent, final OperationProductComponentWithQuantityContainer operationProductComponentWithQuantityContainer, final Set<OperationProductComponentHolder> nonComponents, final Map<Long, BigDecimal> operationRuns) {
    if (Objects.isNull(previousOperationComponent)) {
        Entity technologyProduct = technology.getBelongsToField(TechnologyFields.PRODUCT);
        for (Entity operationProductOutComponent : operationComponent.getHasManyField(TechnologyOperationComponentFields.OPERATION_PRODUCT_OUT_COMPONENTS)) {
            if (operationProductOutComponent.getBelongsToField(OperationProductOutComponentFields.PRODUCT).getId().equals(technologyProduct.getId())) {
                BigDecimal outQuantity = operationProductComponentWithQuantityContainer.get(operationProductOutComponent);
                multiplyProductQuantitiesAndAddOperationRuns(operationComponent, givenQuantity, outQuantity, operationProductComponentWithQuantityContainer, operationRuns);
                break;
            }
        }
    } else {
        for (Entity operationProductInComponent : previousOperationComponent.getHasManyField(TechnologyOperationComponentFields.OPERATION_PRODUCT_IN_COMPONENTS)) {
            boolean isntComponent = false;
            for (Entity operationProductOutComponent : operationComponent.getHasManyField(TechnologyOperationComponentFields.OPERATION_PRODUCT_OUT_COMPONENTS)) {
                if (!Objects.isNull(operationProductInComponent.getBelongsToField(OperationProductInComponentFields.PRODUCT)) && operationProductOutComponent.getBelongsToField(OperationProductOutComponentFields.PRODUCT).getId().equals(operationProductInComponent.getBelongsToField(OperationProductInComponentFields.PRODUCT).getId())) {
                    isntComponent = true;
                    BigDecimal outQuantity = operationProductComponentWithQuantityContainer.get(operationProductOutComponent);
                    BigDecimal inQuantity = operationProductComponentWithQuantityContainer.get(operationProductInComponent);
                    multiplyProductQuantitiesAndAddOperationRuns(operationComponent, inQuantity, outQuantity, operationProductComponentWithQuantityContainer, operationRuns);
                    break;
                }
            }
            if (isntComponent) {
                nonComponents.add(new OperationProductComponentHolder(operationProductInComponent));
            }
        }
    }
    for (Entity child : entitiesById.get(operationComponent.getId()).getHasManyField(TechnologyOperationComponentFields.CHILDREN)) {
        traverseProductQuantitiesAndOperationRuns(technology, entitiesById, givenQuantity, child, operationComponent, operationProductComponentWithQuantityContainer, nonComponents, operationRuns);
    }
}
Also used : OperationProductComponentHolder(com.qcadoo.mes.technologies.dto.OperationProductComponentHolder) Entity(com.qcadoo.model.api.Entity) BigDecimal(java.math.BigDecimal)

Example 4 with OperationProductComponentHolder

use of com.qcadoo.mes.technologies.dto.OperationProductComponentHolder in project mes by qcadoo.

the class ProductQuantitiesServiceImpl method getNeededProductQuantities.

private Map<Long, BigDecimal> getNeededProductQuantities(final List<Entity> orders, final MrpAlgorithm mrpAlgorithm, final Map<Long, BigDecimal> operationRuns, final boolean onTheFly) {
    Set<OperationProductComponentHolder> nonComponents = Sets.newHashSet();
    OperationProductComponentWithQuantityContainer productComponentWithQuantities = getProductComponentWithQuantitiesForOrders(orders, operationRuns, nonComponents, onTheFly);
    return getProductWithQuantities(productComponentWithQuantities, nonComponents, mrpAlgorithm, TechnologiesConstants.MODEL_OPERATION_PRODUCT_IN_COMPONENT);
}
Also used : OperationProductComponentHolder(com.qcadoo.mes.technologies.dto.OperationProductComponentHolder) OperationProductComponentWithQuantityContainer(com.qcadoo.mes.technologies.dto.OperationProductComponentWithQuantityContainer)

Example 5 with OperationProductComponentHolder

use of com.qcadoo.mes.technologies.dto.OperationProductComponentHolder in project mes by qcadoo.

the class ProductQuantitiesServiceImpl method getOperationProductComponentWithQuantities.

private Map<OperationProductComponentHolder, BigDecimal> getOperationProductComponentWithQuantities(final OperationProductComponentWithQuantityContainer productComponentWithQuantities, final Set<OperationProductComponentHolder> nonComponents, final boolean onlyComponents, final boolean onlyMaterials) {
    Map<OperationProductComponentHolder, BigDecimal> productWithQuantities = Maps.newHashMap();
    for (Map.Entry<OperationProductComponentHolder, BigDecimal> productComponentWithQuantity : productComponentWithQuantities.asMap().entrySet()) {
        OperationProductComponentHolder operationProductComponentHolder = productComponentWithQuantity.getKey();
        if (onlyComponents && nonComponents.contains(operationProductComponentHolder)) {
            continue;
        }
        if (onlyMaterials) {
            Entity product = operationProductComponentHolder.getProduct();
            if (hasAcceptedMasterTechnology(product)) {
                continue;
            }
        }
        addOPCQuantitiesToList(productComponentWithQuantity, productWithQuantities);
    }
    return productWithQuantities;
}
Also used : OperationProductComponentHolder(com.qcadoo.mes.technologies.dto.OperationProductComponentHolder) Entity(com.qcadoo.model.api.Entity) BigDecimal(java.math.BigDecimal)

Aggregations

OperationProductComponentHolder (com.qcadoo.mes.technologies.dto.OperationProductComponentHolder)35 BigDecimal (java.math.BigDecimal)31 Entity (com.qcadoo.model.api.Entity)23 OperationProductComponentWithQuantityContainer (com.qcadoo.mes.technologies.dto.OperationProductComponentWithQuantityContainer)14 Map (java.util.Map)11 DataDefinition (com.qcadoo.model.api.DataDefinition)4 List (java.util.List)4 Lists (com.google.common.collect.Lists)3 ProductQuantitiesService (com.qcadoo.mes.technologies.ProductQuantitiesService)3 HashMap (java.util.HashMap)3 LinkedHashMap (java.util.LinkedHashMap)3 Autowired (org.springframework.beans.factory.annotation.Autowired)3 Service (org.springframework.stereotype.Service)3 Lists.newArrayList (com.google.common.collect.Lists.newArrayList)2 Maps (com.google.common.collect.Maps)2 Sets (com.google.common.collect.Sets)2 ProductFields (com.qcadoo.mes.basic.constants.ProductFields)2 OperationProductInComponentFields (com.qcadoo.mes.technologies.constants.OperationProductInComponentFields)2 ProductBySizeGroupFields (com.qcadoo.mes.technologies.constants.ProductBySizeGroupFields)2 TechnologiesConstants (com.qcadoo.mes.technologies.constants.TechnologiesConstants)2