Entity operation = operations.get(operations.indexOf(operationFromTree)); Entity timeCalculation = operationWorkTimeService.createOrGetOperCompTimeCalculation(order, operation);
OperationTimesContainer operationTimes = operationWorkTimeService.estimateOperationsWorkTimes(tocs, productQuantitiesAndOperationRuns.getOperationRuns(), includeTPZ, includeAdditionalTime, workstations, true);
OperationWorkTime workTime = operationWorkTimeService.estimateTotalWorkTimeForOrder(order, operationRuns, includeTpz, includeAdditionalTime, productionLine, true); operationWorkTimeService.estimateTotalWorkTimeForOrder(o, oR, includeTpz, includeAdditionalTime, productionLine, true);
OperationWorkTime workTime = operationWorkTimeService.estimateTotalWorkTimeForTechnology(technology, operationRuns, includeTpz, includeAdditionalTime, productionLine, true);
OperationWorkTime workTime = operationWorkTimeService.estimateTotalWorkTimeForOrder(order, operationRuns, includeTpz, includeAdditionalTime, productionLine, true);
Entity operCompTimeCalculation = operationWorkTimeService.createOrGetOperCompTimeCalculation(order, operation);
private int evaluateOperationTime(final Entity order, final Entity operationComponent, final boolean includeTpz, final boolean includeAdditionalTime, final Map<Long, BigDecimal> operationRuns, final Entity productionLine, final boolean maxForWorkstation, final OperationProductComponentWithQuantityContainer productComponentQuantities) { int operationTime = evaluateSingleOperationTime(operationComponent, includeTpz, includeAdditionalTime, operationRuns, productionLine, maxForWorkstation); int offset = 0; List<Entity> childs = Lists.newArrayList(operationComponent.getHasManyField("children")); for (Entity child : childs) { int childTime = evaluateOperationTime(order, child, includeTpz, includeAdditionalTime, operationRuns, productionLine, maxForWorkstation, productComponentQuantities); if ("02specified".equals(child.getStringField("nextOperationAfterProducedType"))) { int childTimeTotal = evaluateSingleOperationTime(child, includeTpz, includeAdditionalTime, operationRuns, productionLine, true); int childTimeForQuantity = evaluateSingleOperationTimeIncludedNextOperationAfterProducedQuantity(child, includeTpz, false, operationRuns, productionLine, true, productComponentQuantities); int difference = childTimeTotal - childTimeForQuantity; childTime -= difference; } if (childTime > offset) { offset = childTime; } } Entity operCompTimeCalculation = operationWorkTimeService.createOrGetOperCompTimeCalculation(order, operationComponent); if (operCompTimeCalculation != null) { operCompTimeCalculation.setField(OperCompTimeCalculationsFields.OPERATION_OFF_SET, offset); operCompTimeCalculation.setField(OperCompTimeCalculationsFields.EFFECTIVE_OPERATION_REALIZATION_TIME, operationTime); operCompTimeCalculation.getDataDefinition().save(operCompTimeCalculation); } return offset + operationTime; }
Entity operCompTimeCalculation = operationWorkTimeService.createOrGetOperCompTimeCalculation(order, operation);
public void clearValueOnTechnologyChange(final ViewDefinitionState view, final ComponentState state, final String[] args) { LookupComponent technologyLookup = (LookupComponent) view.getComponentByReference(OrderFields.TECHNOLOGY); Entity technology = technologyLookup.getEntity(); if (technology == null) { return; } List<Entity> technologyOperationsComponents = technology.getHasManyField(TechnologyFields.OPERATION_COMPONENTS); for (Entity technologyOperationComponent : technologyOperationsComponents) { Entity operCompTimeCalculation = operationWorkTimeService.createOrGetOperCompTimeCalculation(null, technologyOperationComponent); if (operCompTimeCalculation != null) { operCompTimeCalculation.setField(OperCompTimeCalculationsFields.DURATION, null); operCompTimeCalculation.setField(OperCompTimeCalculationsFields.EFFECTIVE_DATE_FROM, null); operCompTimeCalculation.setField(OperCompTimeCalculationsFields.EFFECTIVE_DATE_TO, null); operCompTimeCalculation.setField(OperCompTimeCalculationsFields.EFFECTIVE_OPERATION_REALIZATION_TIME, null); operCompTimeCalculation.setField(OperCompTimeCalculationsFields.LABOR_WORK_TIME, null); operCompTimeCalculation.setField(OperCompTimeCalculationsFields.MACHINE_WORK_TIME, null); operCompTimeCalculation.setField(OperCompTimeCalculationsFields.OPERATION_OFF_SET, null); operCompTimeCalculation.getDataDefinition().save(operCompTimeCalculation); } } }
Entity operCompTimeCalculation = operationWorkTimeService.createOrGetOperCompTimeCalculation(null, operation);
private void createOperationalTasks(final Entity order, final Entity technologyOperationComponent, final boolean isSubcontracting) { Entity techOperCompTimeCalculation = operationWorkTimeService.createOrGetOperCompTimeCalculation(order, technologyOperationComponent); DataDefinition operationTaskDD = dataDefinitionService.get(OperationalTasksConstants.PLUGIN_IDENTIFIER, OperationalTasksConstants.MODEL_OPERATIONAL_TASK); Entity operation = technologyOperationComponent.getBelongsToField(TechnologyOperationComponentFields.OPERATION); Entity operationalTask = operationTaskDD.create(); operationalTask.setField(OperationalTaskFields.NUMBER, numberGeneratorService.generateNumber( OperationalTasksConstants.PLUGIN_IDENTIFIER, OperationalTasksConstants.MODEL_OPERATIONAL_TASK)); operationalTask.setField(OperationalTaskFields.NAME, operation.getStringField(OperationFields.NAME)); if (techOperCompTimeCalculation != null) { operationalTask.setField(OperationalTaskFields.START_DATE, techOperCompTimeCalculation.getField(OperCompTimeCalculationsFields.EFFECTIVE_DATE_FROM)); operationalTask.setField(OperationalTaskFields.FINISH_DATE, techOperCompTimeCalculation.getField(OperCompTimeCalculationsFields.EFFECTIVE_DATE_TO)); } operationalTask.setField(OperationalTaskFields.TYPE_TASK, OperationalTaskTypeTaskOTFO.EXECUTION_OPERATION_IN_ORDER.getStringValue()); operationalTask.setField(OperationalTaskFieldsOTFO.ORDER, order); if (!isSubcontracting) { operationalTask.setField(OperationalTaskFields.PRODUCTION_LINE, order.getBelongsToField(OrderFields.PRODUCTION_LINE)); } operationalTask.setField(OperationalTaskFields.DESCRIPTION, technologyOperationComponent.getStringField(TechnologyOperationComponentFields.COMMENT)); operationalTask.setField(OperationalTaskFieldsOTFO.TECHNOLOGY_OPERATION_COMPONENT, technologyOperationComponent); operationalTask.setField(OperationalTaskFieldsOTFO.TECH_OPER_COMP_OPERATIONAL_TASK, operationalTasksForOrdersService.createTechOperCompOperationalTask(technologyOperationComponent)); operationalTask.getDataDefinition().save(operationalTask); }