Advertisement
Guest User

Untitled

a guest
Feb 21st, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.86 KB | None | 0 0
  1. package br.gov.sismob.business.impl.proposta.monitoramento;
  2.  
  3. import java.util.List;
  4. import java.util.Objects;
  5. import java.util.stream.Collectors;
  6.  
  7. import br.gov.sismob.common.api.enums.FaseProjeto;
  8. import br.gov.sismob.common.api.enums.ModalidadeContratacaoDbEnum;
  9. import br.gov.sismob.common.api.enums.TipoAnexo;
  10. import br.gov.sismob.common.api.user.parecer.DocumentoRowItem;
  11. import br.gov.sismob.common.api.user.proposta.MonitorarForm;
  12. import br.gov.sismob.common.api.user.proposta.monitoramento.licitacao.LicitacaoRowItem;
  13.  
  14. public class DocumentosMonitoramentoManager {
  15.  
  16.     public static List<DocumentoRowItem> applyRules(List<DocumentoRowItem> dbDocuments, List<Long> filterIds, MonitorarForm form, Boolean migrada) {
  17.         if (form.getLicitacaoCache().getItems().isEmpty() ||
  18.                 form.getLicitacaoCache().getItems().stream().map(LicitacaoRowItem::getModalidadeContratacao).allMatch(ModalidadeContratacaoDbEnum.EXECUCAO_DIRETA::equals)) {
  19.             filterIds.add(TipoAnexo.DOCUMENTO_DE_AVISO_DA_LICITACAO.getId());
  20.         }
  21.  
  22.         if (!migrada && (form.getLicitacaoCache().getItems().isEmpty()
  23.                 || !FaseProjeto.CONCLUIDO.getFase().equals(form.getProjetoCache().getCurrentForm().getFaseProjeto())
  24.                 || !form.getLicitacaoCache().getItems().stream().filter(lic -> !ModalidadeContratacaoDbEnum.EXECUCAO_DIRETA.equals(lic.getModalidadeContratacao()))
  25.                         .map(LicitacaoRowItem::getHomologacaoLicitacao).allMatch(Objects::nonNull))) {
  26.             filterIds.add(TipoAnexo.ORDEM_DE_INICIO_DE_SERVICO.getId());
  27.         }
  28.  
  29.         if (!Boolean.TRUE.equals(form.getProjetoCache().getCurrentForm().isSubmetidoVisa())) {
  30.             filterIds.add(TipoAnexo.DOCUMENTO_COMPROBATORIO_DA_SOLICITACAO_DE_APROVACAO_DO_PROJETO_NA_VISA.getId());
  31.         }
  32.  
  33.         if (form.getProjetoCache().getCurrentForm().getDataAprovacaoVISA() == null) {
  34.             filterIds.add(TipoAnexo.DOCUMENTO_COMPROBATORIO_DE_APROVACAO_DO_PROJETO_NA_VISA.getId());
  35.             filterIds.add(TipoAnexo.PROJETO_APROVADO_PELA_VISA.getId());
  36.         }
  37.  
  38.         if (Long.compare(30, form.getExecucaoCache().getCurrentForm().getPercentualExecutado()) > 0) {
  39.             filterIds.add(TipoAnexo.DECLARACAO_DO_FISCAL_DA_OBRA_ATESTANDO_PARCIAL.getId());
  40.         }
  41.  
  42.         if (Long.compare(100, form.getExecucaoCache().getCurrentForm().getPercentualExecutado()) > 0) {
  43.             filterIds.add(migrada ? TipoAnexo.ATESTADO_DE_CONCLUSAO_DA_OBRA.getId() : TipoAnexo.TERMO_DE_RECEBIMENTO_DEFINITIVO_OU_PROVISORIO.getId());
  44.         }
  45.  
  46.         filterIds.add(migrada ? TipoAnexo.TERMO_DE_RECEBIMENTO_DEFINITIVO_OU_PROVISORIO.getId() : TipoAnexo.ATESTADO_DE_CONCLUSAO_DA_OBRA.getId());
  47.  
  48.         form.getDocumentos().forEach(currentDoc -> dbDocuments.set(dbDocuments.indexOf(currentDoc), currentDoc));
  49.         dbDocuments.stream().filter(doc -> form.getIdsAnexosRemovidos().contains(doc.getTipoAnexoId())).forEach(DocumentoRowItem::limparAnexo);
  50.         return dbDocuments.stream().filter(doc -> !filterIds.contains(doc.getTipoAnexoId())).collect(Collectors.toList());
  51.     }
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement