@Override public UnidadeIndiceOEE gerarDetalheIndiceOEE( IndiceOEEPorHoraFilter filter, ApontamentoQuantidade quantidade) { LocalDateTime dtHr = quantidade.getDtHr(); if (!dtHr.toLocalDate().equals(filter.getDt())) return null; int year = dtHr.getYear(); int month = dtHr.getMonthOfYear(); int day = dtHr.getDayOfMonth(); int hour = dtHr.getHourOfDay(); dtHr = new LocalDateTime(year, month, day, hour, 0, 0, 0); UnidadeIndiceOEE unidade = new UnidadeIndiceOEE(); unidade.setInicio(dtHr); unidade.setFim(dtHr.plusMinutes(59)); updateId(unidade); unidade.addQuantidadeProduzida(quantidade.getQuantidade(), quantidade.getDmQualidade()); return unidade; }
@Override public List<UnidadeIndiceOEE> gerarUnidadesIndiceOEE( IndiceOEEPorHoraFilter filter, LocalDateTime dtHrInicio, LocalDateTime dtHrFim) { if (dtHrFim == null) { LocalTime horaAtual = new LocalTime(); dtHrFim = new LocalDate() .toLocalDateTime( new LocalTime(horaAtual.getHourOfDay(), horaAtual.getMinuteOfHour(), 0, 0)); } List<UnidadeIndiceOEE> result = new ArrayList<UnidadeIndiceOEE>(); int year = dtHrInicio.getYear(); int month = dtHrInicio.getMonthOfYear(); int day = dtHrInicio.getDayOfMonth(); int hour = dtHrInicio.getHourOfDay(); LocalDateTime dtHr = new LocalDateTime(year, month, day, hour, 0, 0, 0); while (dtHr.isBefore(dtHrFim)) { if (dtHr.toLocalDate().equals(filter.getDt())) { UnidadeIndiceOEE unidade = new UnidadeIndiceOEE(); unidade.setInicio(dtHr); unidade.setFim(dtHr.plusMinutes(59)); updateId(unidade); LocalDateTime inicio = dtHrInicio.isAfter(dtHr) ? dtHrInicio : unidade.getInicio(); LocalDateTime fim = dtHr.plusHours(1); fim = dtHrFim.isAfter(fim) ? fim : dtHrFim; Integer tempoUtilMinutos = DateUtils.getDiferencaEmMinutos(inicio, fim); unidade.setTempoUtilMinutos(tempoUtilMinutos); result.add(unidade); } dtHr = dtHr.plusHours(1); } return result; }