Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package br.gov.sismob.business.impl.proposta.monitoramento;
- import java.util.List;
- import java.util.Objects;
- import java.util.stream.Collectors;
- import br.gov.sismob.common.api.enums.FaseProjeto;
- import br.gov.sismob.common.api.enums.ModalidadeContratacaoDbEnum;
- import br.gov.sismob.common.api.enums.TipoAnexo;
- import br.gov.sismob.common.api.user.parecer.DocumentoRowItem;
- import br.gov.sismob.common.api.user.proposta.MonitorarForm;
- import br.gov.sismob.common.api.user.proposta.monitoramento.licitacao.LicitacaoRowItem;
- public class DocumentosMonitoramentoManager {
- public static List<DocumentoRowItem> applyRules(List<DocumentoRowItem> dbDocuments, List<Long> filterIds, MonitorarForm form, Boolean migrada) {
- if (form.getLicitacaoCache().getItems().isEmpty() ||
- form.getLicitacaoCache().getItems().stream().map(LicitacaoRowItem::getModalidadeContratacao).allMatch(ModalidadeContratacaoDbEnum.EXECUCAO_DIRETA::equals)) {
- filterIds.add(TipoAnexo.DOCUMENTO_DE_AVISO_DA_LICITACAO.getId());
- }
- if (!migrada && (form.getLicitacaoCache().getItems().isEmpty()
- || !FaseProjeto.CONCLUIDO.getFase().equals(form.getProjetoCache().getCurrentForm().getFaseProjeto())
- || !form.getLicitacaoCache().getItems().stream().filter(lic -> !ModalidadeContratacaoDbEnum.EXECUCAO_DIRETA.equals(lic.getModalidadeContratacao()))
- .map(LicitacaoRowItem::getHomologacaoLicitacao).allMatch(Objects::nonNull))) {
- filterIds.add(TipoAnexo.ORDEM_DE_INICIO_DE_SERVICO.getId());
- }
- if (!Boolean.TRUE.equals(form.getProjetoCache().getCurrentForm().isSubmetidoVisa())) {
- filterIds.add(TipoAnexo.DOCUMENTO_COMPROBATORIO_DA_SOLICITACAO_DE_APROVACAO_DO_PROJETO_NA_VISA.getId());
- }
- if (form.getProjetoCache().getCurrentForm().getDataAprovacaoVISA() == null) {
- filterIds.add(TipoAnexo.DOCUMENTO_COMPROBATORIO_DE_APROVACAO_DO_PROJETO_NA_VISA.getId());
- filterIds.add(TipoAnexo.PROJETO_APROVADO_PELA_VISA.getId());
- }
- if (Long.compare(30, form.getExecucaoCache().getCurrentForm().getPercentualExecutado()) > 0) {
- filterIds.add(TipoAnexo.DECLARACAO_DO_FISCAL_DA_OBRA_ATESTANDO_PARCIAL.getId());
- }
- if (Long.compare(100, form.getExecucaoCache().getCurrentForm().getPercentualExecutado()) > 0) {
- filterIds.add(migrada ? TipoAnexo.ATESTADO_DE_CONCLUSAO_DA_OBRA.getId() : TipoAnexo.TERMO_DE_RECEBIMENTO_DEFINITIVO_OU_PROVISORIO.getId());
- }
- filterIds.add(migrada ? TipoAnexo.TERMO_DE_RECEBIMENTO_DEFINITIVO_OU_PROVISORIO.getId() : TipoAnexo.ATESTADO_DE_CONCLUSAO_DA_OBRA.getId());
- form.getDocumentos().forEach(currentDoc -> dbDocuments.set(dbDocuments.indexOf(currentDoc), currentDoc));
- dbDocuments.stream().filter(doc -> form.getIdsAnexosRemovidos().contains(doc.getTipoAnexoId())).forEach(DocumentoRowItem::limparAnexo);
- return dbDocuments.stream().filter(doc -> !filterIds.contains(doc.getTipoAnexoId())).collect(Collectors.toList());
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement