private List<Entity> getResourcesForLocationAndProductFEFO(final Entity warehouse, final Entity product, final Entity additionalCode, final Entity position) { return getResourcesForLocationCommonCode(warehouse, product, additionalCode, position, SearchOrders.asc(ResourceFields.EXPIRATION_DATE), SearchOrders.asc(ResourceFields.AVAILABLE_QUANTITY)); }
private List<Entity> getResourcesForLocationAndProductLIFO(final Entity warehouse, final Entity product, final Entity additionalCode, final Entity position) { return getResourcesForLocationCommonCode(warehouse, product, additionalCode, position, SearchOrders.desc(ResourceFields.TIME)); }
private List<Entity> getResourcesForLocationAndProductLEFO(final Entity warehouse, final Entity product, final Entity additionalCode, final Entity position) { return getResourcesForLocationCommonCode(warehouse, product, additionalCode, position, SearchOrders.desc(ResourceFields.EXPIRATION_DATE), SearchOrders.asc(ResourceFields.AVAILABLE_QUANTITY)); }
@Override public Entity findBestMatching(final Long fromTechnologyId, final Long fromTechnologyGroupId, final Long toTechnologyId, final Long toTechnologyGroupId, final Long productionLineId) { SearchCriteriaBuilder scb = getChangeoverDataDef().find(); scb.add(getTechnologiesRestrictions(fromTechnologyId, fromTechnologyGroupId, toTechnologyId, toTechnologyGroupId)); scb.add(getProductionLineRestrictions(productionLineId)); // for specific technologies first scb.addOrder(SearchOrders.asc(LineChangeoverNormsFields.CHANGEOVER_TYPE)); // with production line defined first scb.addOrder(SearchOrders.asc(LineChangeoverNormsFields.PRODUCTION_LINE)); // newest wins scb.addOrder(SearchOrders.desc("id")); return scb.setMaxResults(1).uniqueResult(); }
private List<Entity> getResourcesForLocationAndProductFIFO(final Entity warehouse, final Entity product, final Entity additionalCode, final Entity position) { return getResourcesForLocationCommonCode(warehouse, product, additionalCode, position, SearchOrders.asc(ResourceFields.TIME)); }
private String getNextNodeNumber(final Entity parent) { String parentNodeNumber = parent.getStringField(NODE_NUMBER); Entity product = parent.getHasManyField(PRODUCT_FAMILY_CHILDRENS).find() .add(SearchRestrictions.like(NODE_NUMBER, parentNodeNumber + "%")).addOrder(SearchOrders.desc(NODE_NUMBER)) .setMaxResults(1).uniqueResult(); String nodeNumber = null; Integer number = null; if (product == null) { number = 1; nodeNumber = parentNodeNumber.concat(".").concat(number.toString()); } else { int size = parentNodeNumber.split("\\.").length + 1; StringBuilder query = new StringBuilder(); query.append("SELECT max((regexp_split_to_array(nodenumber, E'\\\\.'))["+size+"] ::int) + 1 "); query.append("FROM basic_product WHERE nodenumber like '"); query.append(parentNodeNumber); query.append(".%'"); number = jdbcTemplate.queryForObject(query.toString(), Collections.emptyMap(), Integer.class); nodeNumber = parentNodeNumber.concat(".").concat(number.toString()); } return nodeNumber; }
public Entity findTechnologyForProduct(final Entity product) { DataDefinition technologyDD = dataDefinitionService.get(TechnologiesConstants.PLUGIN_IDENTIFIER, TechnologiesConstants.MODEL_TECHNOLOGY); return technologyDD .find() .add(SearchRestrictions.isNull(TechnologyFields.TECHNOLOGY_TYPE)) .add(SearchRestrictions.belongsTo(ProductStructureTreeNodeFields.PRODUCT, product)) .add(SearchRestrictions.or(SearchRestrictions.eq(TechnologyFields.STATE, TechnologyStateStringValues.ACCEPTED), SearchRestrictions.eq(TechnologyFields.STATE, TechnologyStateStringValues.CHECKED))) .addOrder(SearchOrders.desc(TechnologyFields.MASTER)).addOrder(SearchOrders.asc(TechnologyFields.NUMBER)) .setMaxResults(1).uniqueResult(); }
@Override public List<Entity> getColumnsForOrders() { List<Entity> columns = new LinkedList<Entity>(); List<Entity> columnComponents = getColumnForOrdersDD().find() .addOrder(SearchOrders.asc(ColumnForOrdersFields.SUCCESSION)).list().getEntities(); for (Entity columnComponent : columnComponents) { Entity columnDefinition = columnComponent.getBelongsToField("columnForOrders"); columns.add(columnDefinition); } return columns; }
public long countBelongingOrders(final Entity masterOrder, final SearchCriterion additionalCriteria) { List<Entity> ordersCountProjection = findBelongingOrders(masterOrder, alias(rowCount(), "count"), additionalCriteria, SearchOrders.desc("count")); for (Entity entity : ordersCountProjection) { return (Long) entity.getField("count"); } return 0L; }
@Override public List<Entity> getColumnsForOffers() { List<Entity> columns = Lists.newLinkedList(); List<Entity> columnComponents = getColumnForOffersDD().find() .addOrder(SearchOrders.asc(ColumnForOffersFields.SUCCESSION)).list().getEntities(); for (Entity columnComponent : columnComponents) { Entity columnDefinition = columnComponent.getBelongsToField("columnForOffers"); columns.add(columnDefinition); } return columns; }
public String generateNumber(final String plugin, final String entityName, int digtsNumber) { DataDefinition dataDefinition = dataDefinitionService.get(plugin, entityName); SearchResult results = dataDefinition.find().setMaxResults(1).addOrder(SearchOrders.desc("id")).list(); long longValue = 0; if (results.getEntities().isEmpty()) { longValue++; } else { longValue = results.getEntities().get(0).getId(); while (numberAlreadyExist(dataDefinition, longValue, digtsNumber)) { longValue++; } } return String.format("%0" + digtsNumber + "d", longValue); }
@Override public List<Entity> getColumnsForRequests() { List<Entity> columns = Lists.newLinkedList(); List<Entity> columnComponents = getColumnForRequestsDD().find() .addOrder(SearchOrders.asc(ColumnForRequestsFields.SUCCESSION)).list().getEntities(); for (Entity columnComponent : columnComponents) { Entity columnDefinition = columnComponent.getBelongsToField("columnForRequests"); columns.add(columnDefinition); } return columns; }
private Entity getLastBatch() { return dataDefinitionService .get(MaterialFlowResourcesConstants.PLUGIN_IDENTIFIER, MaterialFlowResourcesConstants.MODEL_RESOURCE).find() .addOrder(SearchOrders.desc(BATCH)).setMaxResults(1).uniqueResult(); }
@Override public List<Entity> getColumnsForCoverages() { return getColumnForCoveragesDD().find().addOrder(SearchOrders.asc(ColumnForCoveragesFields.SUCCESSION)).list() .getEntities(); }
private List<Entity> findNearestOrdersBeforeInterval(final DataDefinition orderDD, final TimeGapsContext context) { Date lastDateBefore = findFinishDateOfLastOrderBeforeInterval(orderDD, context); if (lastDateBefore == null) { return Collections.emptyList(); } SearchCriteriaBuilder scb = prepareCriteriaBuilder(orderDD, context); scb.add(eq(OrderFields.FINISH_DATE, lastDateBefore)); scb.addOrder(SearchOrders.desc(OrderFields.FINISH_DATE)); return scb.list().getEntities(); }
@Override public List<Entity> getColumnsForCoveragesForOrder() { return getColumnForCoveragesForOrderDD().find().addOrder(SearchOrders.asc(ColumnForCoveragesForOrderFields.SUCCESSION)) .list().getEntities(); }
private List<Entity> findNearestOrdersAfterInterval(final DataDefinition orderDD, final TimeGapsContext context) { Date firstDateAfter = findStartDateOfFirstOrderAfterInterval(orderDD, context); if (firstDateAfter == null) { return Collections.emptyList(); } SearchCriteriaBuilder scb = prepareCriteriaBuilder(orderDD, context); scb.add(eq(OrderFields.START_DATE, firstDateAfter)); scb.addOrder(SearchOrders.desc(OrderFields.START_DATE)); return scb.list().getEntities(); }
private List<Entity> getWorkPlanOrderColumns(final Entity workPlan) { return workPlan.getHasManyField(WorkPlanFields.WORK_PLAN_ORDER_COLUMNS).find() .addOrder(SearchOrders.asc(WorkPlanOrderColumnFields.SUCCESSION)).list().getEntities(); }
public Optional<Entity> tryFind(final Entity product, final String numberWithSuffix) { SearchCriteriaBuilder scb = product.getDataDefinition().find(); scb.add(belongsTo(ProductFields.PARENT, product)); scb.add(eq(ProductFields.NUMBER, numberWithSuffix)); scb.addOrder(desc("id")); return Optional.ofNullable(scb.setMaxResults(1).uniqueResult()); }
private Set<LocalDate> findNextStartDatesMatching(final DataDefinition assignmentToShiftDD, final LocalDate laterThan, final Shift shift, final Entity factory, Entity crew) { AssignmentToShiftCriteria criteria = AssignmentToShiftCriteria.empty(); criteria.withCriteria(gt(AssignmentToShiftFields.START_DATE, laterThan.toDate())); criteria.withShiftCriteria(idEq(shift.getId())); criteria.withFactoryCriteria(idEq(factory.getId())); if(Objects.nonNull(crew)){ criteria.withCrewCriteria(idEq(crew.getId())); } List<Entity> matchingStartDatesProjection = assignmentToShiftDataProvider.findAll(criteria, Optional.of(alias(field(AssignmentToShiftFields.START_DATE), AssignmentToShiftFields.START_DATE)), Optional.of(asc(AssignmentToShiftFields.START_DATE))); return FluentIterable.from(matchingStartDatesProjection) .transform(EntityUtils.<Date> getFieldExtractor(AssignmentToShiftFields.START_DATE)).transform(TO_LOCAL_DATE) .toSet(); }