use of com.qcadoo.mes.basic.product.domain.ProductId in project mes by qcadoo.
the class TechnologyStructureTreeDataProvider method buildProductInfo.
private ProductInfo buildProductInfo(final Entity projection, final Map<ProductId, TechnologyId> defaultTechnologies) {
Optional<OperationProductInComponentId> opicId = Optional.ofNullable((Long) projection.getField("opicId")).map(OperationProductInComponentId::new);
TechnologyOperationId tocId = new TechnologyOperationId((Long) projection.getField("tocId"));
Optional<TechnologyOperationId> parentId = Optional.ofNullable((Long) projection.getField("parentId")).map(TechnologyOperationId::new);
ProductId productId = buildProduct(projection);
Optional<TechnologyId> prodTechnology = Optional.ofNullable(defaultTechnologies.get(productId));
Optional<TechnologyInputProductTypeId> technologyInputProductType = Optional.ofNullable((Long) projection.getField("technologyInputProductTypeId")).map(TechnologyInputProductTypeId::new);
boolean differentProductsInDifferentSizes = projection.getBooleanField("differentProductsInDifferentSizes");
boolean variousQuantitiesInProductsBySize = projection.getBooleanField("variousQuantitiesInProductsBySize");
OperationId operation = buildOperation(projection);
BigDecimal quantity = projection.getDecimalField("quantity");
boolean isIntermediate = projection.getBooleanField("isIntermediate");
String givenUnit = projection.getStringField("givenUnit");
Optional<SizeGroupId> sizeGroup = Optional.ofNullable((Long) projection.getField("sizeGroupId")).map(SizeGroupId::new);
return new ProductInfo(opicId, tocId, parentId, productId, quantity, prodTechnology, prodTechnology, technologyInputProductType, differentProductsInDifferentSizes, variousQuantitiesInProductsBySize, operation, isIntermediate, givenUnit, sizeGroup);
}
use of com.qcadoo.mes.basic.product.domain.ProductId in project mes by qcadoo.
the class DefaultTechnologiesProvider method technologiesMapFrom.
private ImmutableMap<ProductId, TechnologyId> technologiesMapFrom(final List<Entity> projections) {
Multimap<ProductId, Entity> projectionsByProduct = Multimaps.index(projections, p -> new ProductId((Long) p.getField("prodId")));
Map<ProductId, Optional<TechnologyId>> technologiesByProduct = Maps.transformValues(projectionsByProduct.asMap(), this::flattenProjectionsToSingleTechId);
Map<ProductId, Optional<TechnologyId>> nonEmptyTechs = Maps.filterValues(technologiesByProduct, Optional::isPresent);
return ImmutableMap.copyOf(Maps.transformValues(nonEmptyTechs, Optional::get));
}
Aggregations