private long getDateToInMills(final Entity goodFoodReport, final List<Entity> shifts) { DateTime dateTo = new DateTime(goodFoodReport.getDateField(PPSReportFields.DATE_TO)); Shift shiftEnd = new Shift(shifts.get(shifts.size() - 1), dateTo, false); List<TimeRange> rangesEnd = shiftEnd.findWorkTimeAt(dateTo.toLocalDate()); LocalTime endTime = rangesEnd.get(0).getTo(); dateTo = dateTo.plusDays(ONE); dateTo = dateTo.withHourOfDay(endTime.getHourOfDay()); dateTo = dateTo.withMinuteOfHour(endTime.getMinuteOfHour()); Entity shiftEntity = shiftsService.getShiftFromDateWithTime(dateTo.toDate()); if (shiftEntity != null) { dateTo = getShiftEndDate(new DateTime(dateTo), shiftEntity); } return dateTo.getMillis(); }
private Set<Interval> getWorkIntervals(final TimeGapsContext context) { Interval searchInterval = context.getInterval(); Date fromDate = searchInterval.getStart().toDate(); Date toDate = searchInterval.getEnd().toDate(); List<ShiftHour> shiftHours = shiftsService.getHoursForAllShifts(fromDate, toDate); Set<Interval> shiftWorkTimeIntervals = Sets.newHashSet(); for (ShiftHour shiftHour : shiftHours) { Interval shiftWorkTimeInterval = new Interval(shiftHour.getDateFrom().getTime(), shiftHour.getDateTo().getTime()); shiftWorkTimeIntervals.add(shiftWorkTimeInterval); } return shiftWorkTimeIntervals; }
private BigDecimal getWorkedHoursOfWorker(final Entity shift, final DateTime dateOfDay) { BigDecimal hours = BigDecimal.ZERO; List<ShiftHour> workedHours = shiftsService.getHoursForShift(shift, dateOfDay.toDate(), dateOfDay.plusDays(1).toDate()); for (ShiftHour shiftHour : workedHours) { DateTime dateFrom = new DateTime(shiftHour.getDateFrom()); DateTime dateTo = new DateTime(shiftHour.getDateTo()); Period p = new Period(dateFrom, dateTo); hours = hours.add(new BigDecimal(p.getHours())); } return hours; }
private Entity getAssignmentToShift(final Entity shift, final Date date) { boolean shiftWorks = shiftsService.checkIfShiftWorkAtDate(date, shift); if (shiftWorks) { return dataDefinitionService .get(AssignmentToShiftConstants.PLUGIN_IDENTIFIER, AssignmentToShiftConstants.MODEL_ASSIGNMENT_TO_SHIFT) .find().add(SearchRestrictions.belongsTo(SHIFT, shift)).add(SearchRestrictions.le(START_DATE, date)) .addOrder(SearchOrders.desc(START_DATE)).setMaxResults(1).uniqueResult(); } else { return null; } }
private Date findStartDate(final Entity order, Date startDate) { Optional<Entity> previousOrder = findPreviousOrder(order); if (previousOrder.isPresent()) { Integer changeoverDurationInMillis = getChangeoverDurationInMillis(previousOrder.get(), order); Optional<DateTime> maybeDate = shiftsService.getNearestWorkingDate(new DateTime(startDate), order.getBelongsToField(OrderFields.PRODUCTION_LINE)); if (maybeDate.isPresent()) { return calculateOrderStartDate(maybeDate.get().toDate(), changeoverDurationInMillis); } } return startDate; }
public List<Entity> getAssignmentToShift(final Entity shift, final Entity factory, final Date date) { boolean shiftWorks = shiftsService.checkIfShiftWorkAtDate(date, shift); if (shiftWorks) { List<Entity> assignmentsToShift = dataDefinitionService .get(AssignmentToShiftConstants.PLUGIN_IDENTIFIER, AssignmentToShiftConstants.MODEL_ASSIGNMENT_TO_SHIFT) .find() .add(SearchRestrictions.belongsTo(AssignmentToShiftFields.SHIFT, shift)) .add(SearchRestrictions.belongsTo(AssignmentToShiftFields.FACTORY, factory)) .add(SearchRestrictions.or(SearchRestrictions.eq(AssignmentToShiftFields.STATE, AssignmentToShiftState.ACCEPTED.getStringValue()), SearchRestrictions.eq( AssignmentToShiftFields.STATE, AssignmentToShiftState.CORRECTED.getStringValue()))) .add(SearchRestrictions.le(AssignmentToShiftFields.START_DATE, date)) .addOrder(SearchOrders.desc(AssignmentToShiftFields.START_DATE)).list().getEntities(); return findCurrentAssignmentsToShift(date, assignmentsToShift); } else { return Lists.newArrayList(); } }
private Date findStartDate(final Entity order) { if (Objects.nonNull(order.getDateField(OrderFields.START_DATE))) { return order.getDateField(OrderFields.START_DATE); } Optional<Entity> previousOrder = findPreviousOrder(order); if (previousOrder.isPresent()) { Integer changeoverDurationInMillis = getChangeoverDurationInMillis(previousOrder.get(), order); Optional<DateTime> maybeDate = shiftsService.getNearestWorkingDate( new DateTime(previousOrder.get().getDateField(OrderFields.FINISH_DATE)), order.getBelongsToField(OrderFields.PRODUCTION_LINE)); if (maybeDate.isPresent()) { return calculateOrderStartDate(maybeDate.get().toDate(), changeoverDurationInMillis); } } return DateTime.now().toDate(); }
private Entity internalBuild(final StateChangeEntityDescriber describer, final StateEnum initialState) { final Entity stateChangeEntity = describer.getDataDefinition().create(); final Entity shift = shiftsService.getShiftFromDateWithTime(new Date()); stateChangeEntity.setField(describer.getDateTimeFieldName(), new Date()); stateChangeEntity.setField(describer.getTargetStateFieldName(), initialState.getStringValue()); stateChangeEntity.setField(describer.getShiftFieldName(), shift); stateChangeEntity.setField(describer.getWorkerFieldName(), securityService.getCurrentUserName()); stateChangeEntity.setField(describer.getPhaseFieldName(), 0); return stateChangeEntity; }
private Entity buildStateChangeEntity(StateChangeEntityDescriber describer, Entity owner, String userLogin, String sourceState, String targetState) { final Entity stateChangeEntity = describer.getDataDefinition().create(); final Entity shift = shiftsService.getShiftFromDateWithTime(new Date()); stateChangeEntity.setField(describer.getDateTimeFieldName(), new Date()); stateChangeEntity.setField(describer.getSourceStateFieldName(), sourceState); stateChangeEntity.setField(describer.getTargetStateFieldName(), targetState); stateChangeEntity.setField(describer.getShiftFieldName(), shift); if (StringUtils.isEmpty(userLogin)) { userLogin = securityService.getCurrentUserName(); } stateChangeEntity.setField(describer.getWorkerFieldName(), userLogin); stateChangeEntity.setField(describer.getPhaseFieldName(), 0); stateChangeEntity.setField(describer.getOwnerFieldName(), owner); return stateChangeEntity; }
public void changeTechnologyStateToAccepted(Entity technology) { technology.setField(TechnologyFields.STATE, TechnologyStateStringValues.ACCEPTED); technology = technology.getDataDefinition().fastSave(technology); DataDefinition technologyStateChangeDD = dataDefinitionService.get(TechnologiesConstants.PLUGIN_IDENTIFIER, TechnologiesConstants.MODEL_TECHNOLOGY_STATE_CHANGE); Entity technologyStateChange = technologyStateChangeDD.create(); technologyStateChange.setField(TechnologyStateChangeFields.SOURCE_STATE, TechnologyStateStringValues.CHECKED); technologyStateChange.setField(TechnologyStateChangeFields.TARGET_STATE, TechnologyStateStringValues.ACCEPTED); technologyStateChange.setField(TechnologyStateChangeFields.TECHNOLOGY, technology); technologyStateChange.setField(TechnologyStateChangeFields.STATUS, StateChangeStatus.SUCCESSFUL.getStringValue()); technologyStateChange.setField(technologyStateChangeAspect.getChangeEntityDescriber().getDateTimeFieldName(), new Date()); technologyStateChange.setField(technologyStateChangeAspect.getChangeEntityDescriber().getShiftFieldName(), shiftsService.getShiftFromDateWithTime(new Date())); technologyStateChange.setField(technologyStateChangeAspect.getChangeEntityDescriber().getWorkerFieldName(), securityService.getCurrentUserName()); technologyStateChangeDD.fastSave(technologyStateChange); }
public void changeTechnologyStateToChecked(Entity technology) { technology.setField(TechnologyFields.STATE, TechnologyStateStringValues.CHECKED); technology = technology.getDataDefinition().fastSave(technology); DataDefinition technologyStateChangeDD = dataDefinitionService.get(TechnologiesConstants.PLUGIN_IDENTIFIER, TechnologiesConstants.MODEL_TECHNOLOGY_STATE_CHANGE); Entity technologyStateChange = technologyStateChangeDD.create(); technologyStateChange.setField(TechnologyStateChangeFields.SOURCE_STATE, TechnologyStateStringValues.DRAFT); technologyStateChange.setField(TechnologyStateChangeFields.TARGET_STATE, TechnologyStateStringValues.CHECKED); technologyStateChange.setField(TechnologyStateChangeFields.TECHNOLOGY, technology); technologyStateChange.setField(TechnologyStateChangeFields.STATUS, StateChangeStatus.SUCCESSFUL.getStringValue()); technologyStateChange.setField(technologyStateChangeAspect.getChangeEntityDescriber().getDateTimeFieldName(), new Date()); technologyStateChange.setField(technologyStateChangeAspect.getChangeEntityDescriber().getShiftFieldName(), shiftsService.getShiftFromDateWithTime(new Date())); technologyStateChange.setField(technologyStateChangeAspect.getChangeEntityDescriber().getWorkerFieldName(), securityService.getCurrentUserName()); technologyStateChangeDD.fastSave(technologyStateChange); }