Commit 9fc18a5e1cfd0d08ccedc225f0be9ced32cd99ac

Authored by rogerio.costa
2 parents 145fbec5 13909af9
Exists in master

Merge branch 'tarefa-4199' into desenvolvimento

Conflicts:
	cit-ecm-api/src/main/java/br/com/centralit/api/framework/json/ViewsEcm.java
	cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/DocumentoGedServiceImpl.java
	cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/InicializarEcmServiceImpl.java
	cit-ecm-web/src/main/webapp/html/gerenciarProcesso/includeCabecalhoGerenciarProcesso.jsp
Showing 40 changed files with 1583 additions and 185 deletions   Show diff stats
cit-ecm-api/src/main/java/br/com/centralit/api/dao/ConfiguracaoUsuarioUnidadeDao.java
... ... @@ -59,17 +59,40 @@ public interface ConfiguracaoUsuarioUnidadeDao extends CitGenericDAO {
59 59 Collection<ConfiguracaoUsuarioUnidade> findPorUsuarioOrganizacao(Usuario usuario);
60 60  
61 61 /**
62   - * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p>
63   - *
64   - * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p>
65   - *
  62 + * <p>
  63 + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
  64 + * </p>
  65 + *
  66 + * <p>
  67 + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
  68 + * </p>
  69 + *
66 70 * Método responsável por
67   - *
  71 + *
68 72 * @author rogerio.costa
69   - *
  73 + *
70 74 * @param id
71 75 * @return
72 76 */
73 77 Collection<ConfiguracaoUsuarioUnidade> findPorIdEstruturaOrganizacionalECM(Long id);
74 78  
  79 + /**
  80 + * <p>
  81 + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
  82 + * </p>
  83 + *
  84 + * <p>
  85 + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
  86 + * </p>
  87 + *
  88 + * Método responsável por listar usuarios através da unidade e username
  89 + *
  90 + * @author rogerio.costa
  91 + *
  92 + * @param username
  93 + * @param idUnidade
  94 + * @return Collection<Usuario>
  95 + */
  96 + Collection<ConfiguracaoUsuarioUnidade> findPorUsernameUsuarioAndUnidade(String username, Long idUnidade);
  97 +
75 98 }
... ...
cit-ecm-api/src/main/java/br/com/centralit/api/dao/HistoricoAtribuicaoProcessoDao.java 0 → 100644
... ... @@ -0,0 +1,58 @@
  1 +package br.com.centralit.api.dao;
  2 +
  3 +import br.com.centralit.api.model.HistoricoAtribuicaoProcesso;
  4 +import br.com.centralit.framework.dao.arquitetura.CitGenericDAO;
  5 +
  6 +/**
  7 + * <p>
  8 + * <img src="http://centralit.com.br/images/logo_central.png">
  9 + * </p>
  10 + *
  11 + * <p>
  12 + * <b>Company: </b> Central IT - Governança Corporativa -
  13 + * </p>
  14 + *
  15 + * <p>
  16 + * <b>Title: </b>
  17 + * </p>
  18 + *
  19 + * <p>
  20 + * <b>Description: </b>
  21 + * </p>
  22 + *
  23 + * <p>
  24 + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
  25 + * </p>
  26 + *
  27 + * <p>
  28 + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
  29 + * </p>
  30 + *
  31 + * @since 02/04/2016 - 10:40:14
  32 + *
  33 + * @version 1.0.0
  34 + *
  35 + * @author rogerio.costa
  36 + *
  37 + */
  38 +public interface HistoricoAtribuicaoProcessoDao extends CitGenericDAO {
  39 +
  40 + /**
  41 + * <p>
  42 + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
  43 + * </p>
  44 + *
  45 + * <p>
  46 + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
  47 + * </p>
  48 + *
  49 + * Método responsável por obter utima atribuição através do id da unidadeProcesso
  50 + *
  51 + * @author rogerio.costa
  52 + *
  53 + * @param idUnidadeProcesso
  54 + * @return HistoricoAtribuicaoProcesso
  55 + */
  56 + HistoricoAtribuicaoProcesso obterAtualPorUnidadeProcesso(Long idUnidadeProcesso);
  57 +
  58 +}
... ...
cit-ecm-api/src/main/java/br/com/centralit/api/dao/UnidadeProcessoDao.java
... ... @@ -76,20 +76,43 @@ public interface UnidadeProcessoDao extends CitGenericDAO {
76 76 * @return Boolean
77 77 */
78 78 Boolean isProcessoConcluidoEmTodasUnidades(Long idProcesso);
79   -
  79 +
80 80 /**
81 81 *
82   - * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p>
83   - *
84   - * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p>
85   - *
  82 + * <p>
  83 + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
  84 + * </p>
  85 + *
  86 + * <p>
  87 + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
  88 + * </p>
  89 + *
86 90 * Método responsável por
87   - *
  91 + *
88 92 * @author andre.silva
89   - *
  93 + *
90 94 * @param processo
91 95 * @return
92 96 */
93 97 Collection<UnidadeProcesso> findProcesso(Processo processo);
94 98  
  99 + /**
  100 + * <p>
  101 + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
  102 + * </p>
  103 + *
  104 + * <p>
  105 + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
  106 + * </p>
  107 + *
  108 + * Método responsável por obter através da unidade e processo
  109 + *
  110 + * @author rogerio.costa
  111 + *
  112 + * @param idProcesso
  113 + * @param idUnidade
  114 + * @return UnidadeProcesso
  115 + */
  116 + UnidadeProcesso obterPorUnidadeEProcesso(Long idProcesso, Long idUnidade);
  117 +
95 118 }
... ...
cit-ecm-api/src/main/java/br/com/centralit/api/dao/impl/ConfiguracaoUsuarioUnidadeDaoHibernate.java
... ... @@ -100,4 +100,32 @@ public class ConfiguracaoUsuarioUnidadeDaoHibernate extends CitGenericDAOImpl im
100 100 return this.search(searchSeven, this.persistentClass);
101 101 }
102 102  
  103 + /**
  104 + * <p>
  105 + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
  106 + * </p>
  107 + *
  108 + * <p>
  109 + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
  110 + * </p>
  111 + *
  112 + * Método responsável por listar usuarios através da unidade e username
  113 + *
  114 + * @author rogerio.costa
  115 + *
  116 + * @param username
  117 + * @param idUnidade
  118 + * @return Collection<Usuario>
  119 + */
  120 + public Collection<ConfiguracaoUsuarioUnidade> findPorUsernameUsuarioAndUnidade(String username, Long idUnidade) {
  121 +
  122 + SearchSeven searchSeven = new SearchSeven();
  123 +
  124 + searchSeven.addFilterILike("usuario.username", "%" + username + "%");
  125 +
  126 + searchSeven.addFilterEqual("estruturaOrganizacionalECM.id", idUnidade);
  127 +
  128 + return this.search(searchSeven);
  129 + }
  130 +
103 131 }
... ...
cit-ecm-api/src/main/java/br/com/centralit/api/dao/impl/HistoricoAtribuicaoProcessoDaoHibernate.java 0 → 100644
... ... @@ -0,0 +1,81 @@
  1 +package br.com.centralit.api.dao.impl;
  2 +
  3 +import org.springframework.stereotype.Repository;
  4 +
  5 +import br.com.centralit.api.dao.HistoricoAtribuicaoProcessoDao;
  6 +import br.com.centralit.api.model.HistoricoAtribuicaoProcesso;
  7 +import br.com.centralit.framework.dao.arquitetura.CitGenericDAOImpl;
  8 +import br.com.centralit.framework.dao.arquitetura.SearchSeven;
  9 +
  10 +/**
  11 + * <p>
  12 + * <img src="http://centralit.com.br/images/logo_central.png">
  13 + * </p>
  14 + *
  15 + * <p>
  16 + * <b>Company: </b> Central IT - Governança Corporativa -
  17 + * </p>
  18 + *
  19 + * <p>
  20 + * <b>Title: </b>
  21 + * </p>
  22 + *
  23 + * <p>
  24 + * <b>Description: </b>
  25 + * </p>
  26 + *
  27 + * <p>
  28 + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
  29 + * </p>
  30 + *
  31 + * <p>
  32 + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
  33 + * </p>
  34 + *
  35 + * @since 02/04/2016 - 10:41:26
  36 + *
  37 + * @version 1.0.0
  38 + *
  39 + * @author rogerio.costa
  40 + *
  41 + */
  42 +@Repository("historicoAtribuicaoProcessoDao")
  43 +public class HistoricoAtribuicaoProcessoDaoHibernate extends CitGenericDAOImpl implements HistoricoAtribuicaoProcessoDao {
  44 +
  45 + /**
  46 + * Responsável pela criação de novas instâncias desta classe.
  47 + */
  48 + public HistoricoAtribuicaoProcessoDaoHibernate() {
  49 +
  50 + super(HistoricoAtribuicaoProcesso.class);
  51 + }
  52 +
  53 + /**
  54 + * <p>
  55 + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
  56 + * </p>
  57 + *
  58 + * <p>
  59 + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
  60 + * </p>
  61 + *
  62 + * Método responsável por obter utima atribuição através do id da unidadeProcesso
  63 + *
  64 + * @author rogerio.costa
  65 + *
  66 + * @param idUnidadeProcesso
  67 + * @return HistoricoAtribuicaoProcesso
  68 + */
  69 + public HistoricoAtribuicaoProcesso obterAtualPorUnidadeProcesso(Long idUnidadeProcesso) {
  70 +
  71 + SearchSeven searchSeven = new SearchSeven();
  72 +
  73 + searchSeven.addFilterEqual("unidadeProcesso.id", idUnidadeProcesso);
  74 +
  75 + searchSeven.addFilterEmpty("dataRemocao");
  76 +
  77 + searchSeven.setMaxResults(1);
  78 +
  79 + return this.searchUnique(searchSeven);
  80 + }
  81 +}
... ...
cit-ecm-api/src/main/java/br/com/centralit/api/dao/impl/UnidadeProcessoDaoHibernate.java
... ... @@ -82,14 +82,18 @@ public class UnidadeProcessoDaoHibernate extends CitGenericDAOImpl implements Un
82 82  
83 83 /**
84 84 *
85   - * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p>
86   - *
87   - * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p>
88   - *
  85 + * <p>
  86 + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
  87 + * </p>
  88 + *
  89 + * <p>
  90 + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
  91 + * </p>
  92 + *
89 93 * Método responsável por
90   - *
  94 + *
91 95 * @author andre.silva
92   - *
  96 + *
93 97 * @param processo
94 98 * @return
95 99 */
... ... @@ -132,4 +136,35 @@ public class UnidadeProcessoDaoHibernate extends CitGenericDAOImpl implements Un
132 136 return UtilColecao.isVazio(this.search(searchSeven));
133 137 }
134 138  
  139 + /**
  140 + * <p>
  141 + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
  142 + * </p>
  143 + *
  144 + * <p>
  145 + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
  146 + * </p>
  147 + *
  148 + * Método responsável por obter através da unidade e processo
  149 + *
  150 + * @author rogerio.costa
  151 + *
  152 + * @param idProcesso
  153 + * @param idUnidade
  154 + * @return UnidadeProcesso
  155 + */
  156 + public UnidadeProcesso obterPorUnidadeEProcesso(Long idProcesso, Long idUnidade) {
  157 +
  158 + SearchSeven searchSeven = new SearchSeven();
  159 +
  160 + searchSeven.addFilterEqual("processo.id", idProcesso);
  161 +
  162 + searchSeven.addFilterEqual("unidade.id", idUnidade);
  163 +
  164 + searchSeven.setMaxResults(1);
  165 +
  166 + return this.searchUnique(searchSeven);
  167 +
  168 + }
  169 +
135 170 }
... ...
cit-ecm-api/src/main/java/br/com/centralit/api/framework/json/ViewsEcm.java
... ... @@ -97,8 +97,10 @@ public class ViewsEcm extends Views {
97 97 public static class RodapeAutoCompleteView extends Views.GenericView{};
98 98  
99 99 public static class TipoDocumentoPlanoClassificacaoAutoCompleteView extends Views.GenericView{};
100   -
  100 +
101 101 public static class ClassificacaoDocumentoGedView extends Views.GenericView{};
  102 +
  103 + public static class HistoricoAtribuicaoProcessoView extends Views.GenericView{};
102 104  
103 105  
104 106 }
... ...
cit-ecm-api/src/main/java/br/com/centralit/api/model/ConfiguracaoUsuarioUnidade.java
... ... @@ -67,7 +67,7 @@ public class ConfiguracaoUsuarioUnidade extends PersistentObjectAuditOrganizacao
67 67  
68 68 /** Atributo usuarioOrganizacao. */
69 69 @ManyToOne(fetch = FetchType.LAZY)
70   - @JsonView({ Views.ConfiguracaoUsuarioUnidadeListView.class, Views.EstruturaOrganizacionalECMEditView.class })
  70 + @JsonView({ Views.ConfiguracaoUsuarioUnidadeListView.class, Views.EstruturaOrganizacionalECMEditView.class, Views.UsuarioAutoCompleteView.class })
71 71 private Usuario usuario;
72 72  
73 73 /** Atributo estruturaOrganizacional. */
... ...
cit-ecm-api/src/main/java/br/com/centralit/api/model/EstruturaOrganizacionalECM.java
... ... @@ -9,7 +9,6 @@ import javax.persistence.OneToMany;
9 9 import javax.persistence.OneToOne;
10 10  
11 11 import br.com.centralit.framework.json.Views;
12   -import br.com.centralit.framework.json.Views.ConfiguracaoUsuarioUnidadeListView;
13 12 import br.com.centralit.framework.model.GrupoUnidade;
14 13 import br.com.centralit.framework.model.Unidade;
15 14  
... ...
cit-ecm-api/src/main/java/br/com/centralit/api/model/HistoricoAtribuicaoProcesso.java 0 → 100644
... ... @@ -0,0 +1,220 @@
  1 +package br.com.centralit.api.model;
  2 +
  3 +import java.util.Calendar;
  4 +
  5 +import javax.persistence.Entity;
  6 +import javax.persistence.FetchType;
  7 +import javax.persistence.GeneratedValue;
  8 +import javax.persistence.GenerationType;
  9 +import javax.persistence.Id;
  10 +import javax.persistence.ManyToOne;
  11 +import javax.persistence.Temporal;
  12 +import javax.persistence.TemporalType;
  13 +
  14 +import br.com.centralit.api.framework.json.ViewsEcm;
  15 +import br.com.centralit.framework.json.JsonCalendarSimpleDateDeserializer;
  16 +import br.com.centralit.framework.json.JsonCalendarSimpleDateSerializer;
  17 +import br.com.centralit.framework.json.Views;
  18 +import br.com.centralit.framework.model.arquitetura.PersistentObjectAudit;
  19 +
  20 +import com.fasterxml.jackson.annotation.JsonView;
  21 +import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
  22 +import com.fasterxml.jackson.databind.annotation.JsonSerialize;
  23 +
  24 +/**
  25 + * <p>
  26 + * <img src="http://centralit.com.br/images/logo_central.png">
  27 + * </p>
  28 + *
  29 + * <p>
  30 + * <b>Company: </b> Central IT - Governança Corporativa -
  31 + * </p>
  32 + *
  33 + * <p>
  34 + * <b>Title: </b>
  35 + * </p>
  36 + *
  37 + * <p>
  38 + * <b>Description: </b>
  39 + * </p>
  40 + *
  41 + * <p>
  42 + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
  43 + * </p>
  44 + *
  45 + * <p>
  46 + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
  47 + * </p>
  48 + *
  49 + * @since 02/04/2016 - 10:11:50
  50 + *
  51 + * @version 1.0.0
  52 + *
  53 + * @author rogerio.costa
  54 + *
  55 + */
  56 +@Entity
  57 +public class HistoricoAtribuicaoProcesso extends PersistentObjectAudit {
  58 +
  59 + /** Atributo serialVersionUID. */
  60 + private static final long serialVersionUID = 7132743441754771336L;
  61 +
  62 + /** Atributo id. */
  63 + @Id
  64 + @GeneratedValue(strategy = GenerationType.AUTO)
  65 + @JsonView({ Views.GenericView.class })
  66 + private Long id;
  67 +
  68 + /** Atributo nomeUsuarioAtribuido. */
  69 + @JsonView({ ViewsEcm.HistoricoAtribuicaoProcessoView.class })
  70 + private String nomeUsuarioAtribuido;
  71 +
  72 + /** Atributo nomeUsuarioRemocao. */
  73 + @JsonView({ ViewsEcm.HistoricoAtribuicaoProcessoView.class })
  74 + private String nomeUsuarioRemocao;
  75 +
  76 + /** Atributo dataAtribuicao. */
  77 + @Temporal(TemporalType.TIMESTAMP)
  78 + @JsonSerialize(using = JsonCalendarSimpleDateSerializer.class)
  79 + @JsonDeserialize(using = JsonCalendarSimpleDateDeserializer.class)
  80 + @JsonView({ ViewsEcm.HistoricoAtribuicaoProcessoView.class })
  81 + private Calendar dataAtribuicao;
  82 +
  83 + /** Atributo dataRemocao. */
  84 + @Temporal(TemporalType.TIMESTAMP)
  85 + @JsonSerialize(using = JsonCalendarSimpleDateSerializer.class)
  86 + @JsonDeserialize(using = JsonCalendarSimpleDateDeserializer.class)
  87 + @JsonView({ ViewsEcm.HistoricoAtribuicaoProcessoView.class })
  88 + private Calendar dataRemocao;
  89 +
  90 + /** Atributo unidadeProcesso. */
  91 + @ManyToOne(fetch = FetchType.LAZY)
  92 + private UnidadeProcesso unidadeProcesso;
  93 +
  94 + /**
  95 + * Retorna o valor do atributo <code>nomeUsuarioAtribuido</code>
  96 + *
  97 + * @return <code>String</code>
  98 + */
  99 + public String getNomeUsuarioAtribuido() {
  100 +
  101 + return nomeUsuarioAtribuido;
  102 + }
  103 +
  104 + /**
  105 + * Define o valor do atributo <code>nomeUsuarioAtribuido</code>.
  106 + *
  107 + * @param nomeUsuarioAtribuido
  108 + */
  109 + public void setNomeUsuarioAtribuido(String nomeUsuarioAtribuido) {
  110 +
  111 + this.nomeUsuarioAtribuido = nomeUsuarioAtribuido;
  112 + }
  113 +
  114 + /**
  115 + * Retorna o valor do atributo <code>nomeUsuarioRemocao</code>
  116 + *
  117 + * @return <code>String</code>
  118 + */
  119 + public String getNomeUsuarioRemocao() {
  120 +
  121 + return nomeUsuarioRemocao;
  122 + }
  123 +
  124 + /**
  125 + * Define o valor do atributo <code>nomeUsuarioRemocao</code>.
  126 + *
  127 + * @param nomeUsuarioRemocao
  128 + */
  129 + public void setNomeUsuarioRemocao(String nomeUsuarioRemocao) {
  130 +
  131 + this.nomeUsuarioRemocao = nomeUsuarioRemocao;
  132 + }
  133 +
  134 + /**
  135 + * Retorna o valor do atributo <code>dataAtribuicao</code>
  136 + *
  137 + * @return <code>Calendar</code>
  138 + */
  139 + public Calendar getDataAtribuicao() {
  140 +
  141 + return dataAtribuicao;
  142 + }
  143 +
  144 + /**
  145 + * Define o valor do atributo <code>dataAtribuicao</code>.
  146 + *
  147 + * @param dataAtribuicao
  148 + */
  149 + public void setDataAtribuicao(Calendar dataAtribuicao) {
  150 +
  151 + this.dataAtribuicao = dataAtribuicao;
  152 + }
  153 +
  154 + /**
  155 + * Retorna o valor do atributo <code>dataRemocao</code>
  156 + *
  157 + * @return <code>Calendar</code>
  158 + */
  159 + public Calendar getDataRemocao() {
  160 +
  161 + return dataRemocao;
  162 + }
  163 +
  164 + /**
  165 + * Define o valor do atributo <code>dataRemocao</code>.
  166 + *
  167 + * @param dataRemocao
  168 + */
  169 + public void setDataRemocao(Calendar dataRemocao) {
  170 +
  171 + this.dataRemocao = dataRemocao;
  172 + }
  173 +
  174 + /**
  175 + * Retorna o valor do atributo <code>id</code>
  176 + *
  177 + * @return <code>Long</code>
  178 + */
  179 + public Long getId() {
  180 +
  181 + return id;
  182 + }
  183 +
  184 + /**
  185 + * Define o valor do atributo <code>id</code>.
  186 + *
  187 + * @param id
  188 + */
  189 + public void setId(Long id) {
  190 +
  191 + this.id = id;
  192 + }
  193 +
  194 + /**
  195 + * Retorna o valor do atributo <code>unidadeProcesso</code>
  196 + *
  197 + * @return <code>UnidadeProcesso</code>
  198 + */
  199 + public UnidadeProcesso getUnidadeProcesso() {
  200 +
  201 + return unidadeProcesso;
  202 + }
  203 +
  204 + /**
  205 + * Define o valor do atributo <code>unidadeProcesso</code>.
  206 + *
  207 + * @param unidadeProcesso
  208 + */
  209 + public void setUnidadeProcesso(UnidadeProcesso unidadeProcesso) {
  210 +
  211 + this.unidadeProcesso = unidadeProcesso;
  212 + }
  213 +
  214 + @JsonView({ ViewsEcm.HistoricoAtribuicaoProcessoView.class })
  215 + public String getAtribuidoPor() {
  216 +
  217 + return this.autor.getUsername();
  218 + }
  219 +
  220 +}
... ...
cit-ecm-api/src/main/java/br/com/centralit/api/model/UnidadeProcesso.java
... ... @@ -66,6 +66,10 @@ public class UnidadeProcesso extends PersistentObjectAudit {
66 66 @JsonView({ Views.EnviarProcessoView.class })
67 67 private Boolean concluido;
68 68  
  69 + /** Atributo primeiroAcesso. */
  70 + @JsonView({ Views.EnviarProcessoView.class })
  71 + private Boolean primeiroAcesso;
  72 +
69 73 /** Atributo processo. */
70 74 @ManyToOne(fetch = FetchType.LAZY)
71 75 @JsonView({ Views.EnviarProcessoView.class })
... ... @@ -181,4 +185,44 @@ public class UnidadeProcesso extends PersistentObjectAudit {
181 185 this.concluido = concluido;
182 186 }
183 187  
  188 + /**
  189 + * Retorna o valor do atributo <code>primeiroAcesso</code>
  190 + *
  191 + * @return <code>Boolean</code>
  192 + */
  193 + public Boolean getPrimeiroAcesso() {
  194 +
  195 + return primeiroAcesso;
  196 + }
  197 +
  198 + /**
  199 + * Define o valor do atributo <code>primeiroAcesso</code>.
  200 + *
  201 + * @param primeiroAcesso
  202 + */
  203 + public void setPrimeiroAcesso(Boolean primeiroAcesso) {
  204 +
  205 + this.primeiroAcesso = primeiroAcesso;
  206 + }
  207 +
  208 + /**
  209 + * Retorna o valor do atributo <code>usuarioResponsavel</code>
  210 + *
  211 + * @return <code>Usuario</code>
  212 + */
  213 + public Usuario getUsuarioResponsavel() {
  214 +
  215 + return usuarioResponsavel;
  216 + }
  217 +
  218 + /**
  219 + * Define o valor do atributo <code>usuarioResponsavel</code>.
  220 + *
  221 + * @param usuarioResponsavel
  222 + */
  223 + public void setUsuarioResponsavel(Usuario usuarioResponsavel) {
  224 +
  225 + this.usuarioResponsavel = usuarioResponsavel;
  226 + }
  227 +
184 228 }
... ...
cit-ecm-api/src/main/java/br/com/centralit/api/service/ConfiguracaoUsuarioUnidadeService.java
... ... @@ -112,4 +112,23 @@ public interface ConfiguracaoUsuarioUnidadeService extends GenericService&lt;Config
112 112 */
113 113 Collection<ConfiguracaoUsuarioUnidade> findPorIdEstruturaOrganizacionalECM(Long idEstruturaECM);
114 114  
  115 + /**
  116 + * <p>
  117 + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
  118 + * </p>
  119 + *
  120 + * <p>
  121 + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
  122 + * </p>
  123 + *
  124 + * Método responsável por listar usuarios através da unidade e username
  125 + *
  126 + * @author rogerio.costa
  127 + *
  128 + * @param username
  129 + * @param idUnidade
  130 + * @return Collection<Usuario>
  131 + */
  132 + Collection<ConfiguracaoUsuarioUnidade> findPorUsernameUsuarioAndUnidade(String username, Long idUnidade);
  133 +
115 134 }
... ...
cit-ecm-api/src/main/java/br/com/centralit/api/service/HistoricoAtribuicaoProcessoService.java 0 → 100644
... ... @@ -0,0 +1,58 @@
  1 +package br.com.centralit.api.service;
  2 +
  3 +import br.com.centralit.api.model.HistoricoAtribuicaoProcesso;
  4 +import br.com.centralit.api.model.UnidadeProcesso;
  5 +import br.com.centralit.framework.service.arquitetura.GenericService;
  6 +
  7 +/**
  8 + * <p>
  9 + * <img src="http://centralit.com.br/images/logo_central.png">
  10 + * </p>
  11 + *
  12 + * <p>
  13 + * <b>Company: </b> Central IT - Governança Corporativa -
  14 + * </p>
  15 + *
  16 + * <p>
  17 + * <b>Title: </b>
  18 + * </p>
  19 + *
  20 + * <p>
  21 + * <b>Description: </b>
  22 + * </p>
  23 + *
  24 + * <p>
  25 + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
  26 + * </p>
  27 + *
  28 + * <p>
  29 + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
  30 + * </p>
  31 + *
  32 + * @since 02/04/2016 - 10:43:07
  33 + *
  34 + * @version 1.0.0
  35 + *
  36 + * @author rogerio.costa
  37 + *
  38 + */
  39 +public interface HistoricoAtribuicaoProcessoService extends GenericService<HistoricoAtribuicaoProcesso, Long> {
  40 +
  41 + /**
  42 + * <p>
  43 + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
  44 + * </p>
  45 + *
  46 + * <p>
  47 + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
  48 + * </p>
  49 + *
  50 + * Método responsável por salvar o historico de atribuição
  51 + *
  52 + * @author rogerio.costa
  53 + *
  54 + * @param entity
  55 + */
  56 + void saveHistorico(UnidadeProcesso entity);
  57 +
  58 +}
... ...
cit-ecm-api/src/main/java/br/com/centralit/api/service/ProcessoService.java
... ... @@ -5,24 +5,36 @@ import br.com.centralit.api.model.Processo;
5 5 import br.com.centralit.framework.service.arquitetura.GenericService;
6 6  
7 7 /**
8   - * <p><img src="http://centralit.com.br/images/logo_central.png"></p>
9   - *
10   - * <p><b>Company: </b> Central IT - Governança Corporativa - </p>
11   - *
12   - * <p><b>Title: </b></p>
13   - *
14   - * <p><b>Description: </b></p>
  8 + * <p>
  9 + * <img src="http://centralit.com.br/images/logo_central.png">
  10 + * </p>
  11 + *
  12 + * <p>
  13 + * <b>Company: </b> Central IT - Governança Corporativa -
  14 + * </p>
  15 + *
  16 + * <p>
  17 + * <b>Title: </b>
  18 + * </p>
  19 + *
  20 + * <p>
  21 + * <b>Description: </b>
  22 + * </p>
  23 + *
  24 + * <p>
  25 + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
  26 + * </p>
  27 + *
  28 + * <p>
  29 + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
  30 + * </p>
15 31 *
16   - * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p>
17   - *
18   - * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p>
19   - *
20 32 * @since 28/03/2016 - 09:15:34
21   - *
  33 + *
22 34 * @version 1.0.0
23   - *
  35 + *
24 36 * @author maycon.silva
25   - *
  37 + *
26 38 */
27 39 public interface ProcessoService extends GenericService<Processo, Long> {
28 40  
... ... @@ -101,49 +113,91 @@ public interface ProcessoService extends GenericService&lt;Processo, Long&gt; {
101 113  
102 114 /**
103 115 *
104   - * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p>
105   - *
106   - * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p>
107   - *
  116 + * <p>
  117 + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
  118 + * </p>
  119 + *
  120 + * <p>
  121 + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
  122 + * </p>
  123 + *
108 124 * Método responsável por
109   - *
  125 + *
110 126 * @author andre.silva
111   - *
  127 + *
112 128 * @param entity
113 129 * @return Processo
114 130 */
115 131 Processo atualizarSigiloProcesso(Processo entity);
116   -
117 132  
118 133 /**
119   - * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p>
120   - *
121   - * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p>
122   - *
  134 + * <p>
  135 + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
  136 + * </p>
  137 + *
  138 + * <p>
  139 + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
  140 + * </p>
  141 + *
123 142 * Método responsável por devolver o processoSigad passando como parametro o id da instancia do BPE
124   - *
  143 + *
125 144 * @author maycon.silva
126   - *
  145 + *
127 146 * @param idProcessInstance
128 147 * @return
129 148 */
130 149 Processo getProcessoByIdProcessInstance(Long idProcessInstance);
131 150  
132 151 /**
133   - * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p>
134   - *
135   - * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p>
136   - *
  152 + * <p>
  153 + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
  154 + * </p>
  155 + *
  156 + * <p>
  157 + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
  158 + * </p>
  159 + *
137 160 * Método responsável por
138   - *
  161 + *
139 162 * @author maycon.silva
140   - *
  163 + *
141 164 * @param nup
142 165 * @return
143 166 */
144 167 Processo getProcessoByProtocolo(String nup);
145   -
146   -
147   -
  168 +
  169 + /**
  170 + * <p>
  171 + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
  172 + * </p>
  173 + *
  174 + * <p>
  175 + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
  176 + * </p>
  177 + *
  178 + * Método responsável por iniciar o gerenciamento do processo
  179 + *
  180 + * @author rogerio.costa
  181 + *
  182 + * @return Processo
  183 + */
  184 + Processo getProcessoGerenciamento(Long id);
  185 +
  186 + /**
  187 + * <p>
  188 + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
  189 + * </p>
  190 + *
  191 + * <p>
  192 + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
  193 + * </p>
  194 + *
  195 + * Método responsável por atribuir processo para o usuario logado no primeiro acesso
  196 + *
  197 + * @author rogerio.costa
  198 + *
  199 + * @param idProcesso
  200 + */
  201 + Boolean verificarAtribuicaoProcessoPrimeiroAcesso(Long idProcesso);
148 202  
149 203 }
... ...
cit-ecm-api/src/main/java/br/com/centralit/api/service/UnidadeProcessoService.java
... ... @@ -113,20 +113,60 @@ public interface UnidadeProcessoService extends GenericService&lt;UnidadeProcesso,
113 113 * @param processo
114 114 */
115 115 void executarConcluirProcessoNaUnidade(Long idTask, Processo processo);
116   -
  116 +
117 117 /**
118 118 *
119   - * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p>
120   - *
121   - * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p>
122   - *
  119 + * <p>
  120 + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
  121 + * </p>
  122 + *
  123 + * <p>
  124 + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
  125 + * </p>
  126 + *
123 127 * Método responsável por
124   - *
  128 + *
125 129 * @author andre.silva
126   - *
  130 + *
127 131 * @param processo
128 132 * @return
129 133 */
130 134 Collection<UnidadeProcesso> findProcesso(Processo processo);
131 135  
  136 + /**
  137 + * <p>
  138 + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
  139 + * </p>
  140 + *
  141 + * <p>
  142 + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
  143 + * </p>
  144 + *
  145 + * Método responsável por obter através da unidade e processo
  146 + *
  147 + * @author rogerio.costa
  148 + *
  149 + * @param idProcesso
  150 + * @param idUnidade
  151 + * @return UnidadeProcesso
  152 + */
  153 + UnidadeProcesso obterPorUnidadeEProcesso(Long idProcesso, Long idUnidade);
  154 +
  155 + /**
  156 + * <p>
  157 + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
  158 + * </p>
  159 + *
  160 + * <p>
  161 + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
  162 + * </p>
  163 + *
  164 + * Método responsável por salvar unidadeProcesso
  165 + *
  166 + * @author rogerio.costa
  167 + *
  168 + * @param processo
  169 + */
  170 + void saveUnidadeProcesso(Processo processo);
  171 +
132 172 }
... ...
cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/AnexoGedServiceImpl.java
... ... @@ -108,7 +108,7 @@ public class AnexoGedServiceImpl extends GenericServiceImpl&lt;AnexoGed, Long&gt; impl
108 108 documentoGed.setConteudo(this.gedFileService.doOcr(anexo));
109 109  
110 110  
111   - this.solrService.addDocumento(documentoGed);
  111 +// this.solrService.addDocumento(documentoGed);
112 112  
113 113 anexo.setDocumentoGed(documentoGed);
114 114  
... ...
cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/ConfiguracaoUsuarioUnidadeServiceImpl.java
... ... @@ -232,4 +232,26 @@ public class ConfiguracaoUsuarioUnidadeServiceImpl extends GenericServiceImpl&lt;Co
232 232 return this.configuracaoUsuarioUnidadeDao.findPorIdEstruturaOrganizacionalECM(idEstruturaECM);
233 233 }
234 234  
  235 + /**
  236 + * <p>
  237 + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
  238 + * </p>
  239 + *
  240 + * <p>
  241 + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
  242 + * </p>
  243 + *
  244 + * Método responsável por listar usuarios através da unidade e username
  245 + *
  246 + * @author rogerio.costa
  247 + *
  248 + * @param username
  249 + * @param idUnidade
  250 + * @return Collection<Usuario>
  251 + */
  252 + public Collection<ConfiguracaoUsuarioUnidade> findPorUsernameUsuarioAndUnidade(String username, Long idUnidade) {
  253 +
  254 + return this.configuracaoUsuarioUnidadeDao.findPorUsernameUsuarioAndUnidade(username, idUnidade);
  255 + }
  256 +
235 257 }
... ...
cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/DocumentoGedServiceImpl.java
... ... @@ -176,9 +176,7 @@ public class DocumentoGedServiceImpl extends GenericServiceImpl&lt;DocumentoGed, Lo
176 176 entity.setConteudo(this.decrypted(entity.getConteudoCriptografado()));
177 177 }
178 178  
179   -
180   -// this.saveSolr(entity);
181   -
  179 + this.saveSolr(entity);
182 180  
183 181 this.verificaTemporalidadeProcesso(entity);
184 182  
... ... @@ -780,13 +778,13 @@ public class DocumentoGedServiceImpl extends GenericServiceImpl&lt;DocumentoGed, Lo
780 778 DocumentoGed entity = (DocumentoGed) this.documentoGedDao.getReference(documento.getId());
781 779 if (documento.getSigilo() == null) {
782 780 entity.setAprovado(Boolean.TRUE);
783   - }else{
  781 + } else {
784 782 entity.setSigiloOriginal(documento.getSigilo());
785 783 entity.setNivelAcessoOriginal(documento.getNivelAcesso());
786 784 entity.setSigilo(documento.getSigilo());
787   - entity.setNivelAcesso(documento.getNivelAcesso());
  785 + entity.setNivelAcesso(documento.getNivelAcesso());
788 786 }
789   -
  787 +
790 788 super.merge(entity);
791 789 }
792 790  
... ...
cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/HistoricoAlteracaoProcessoServiceImpl.java
... ... @@ -52,8 +52,7 @@ import br.com.centralit.framework.util.UtilObjeto;
52 52 *
53 53 */
54 54 @Service("historicoAlteracaoProcessoService")
55   -public class HistoricoAlteracaoProcessoServiceImpl extends GenericServiceImpl<HistoricoAlteracaoProcesso, Long> implements
56   - HistoricoAlteracaoProcessoService {
  55 +public class HistoricoAlteracaoProcessoServiceImpl extends GenericServiceImpl<HistoricoAlteracaoProcesso, Long> implements HistoricoAlteracaoProcessoService {
57 56  
58 57 HistoricoAlteracaoProcessoDao historicoAlteracaoProcessoDao;
59 58  
... ... @@ -96,9 +95,9 @@ public class HistoricoAlteracaoProcessoServiceImpl extends GenericServiceImpl&lt;Hi
96 95 AcaoHistoricoAlteracaoProcesso acao = acaoHistoricoAlteracaoProcessoService.findByChave(historicoView.getAcaoAlteracao());
97 96  
98 97 toSave.setNomeUsuario(historicoView.getAutor().getUsername());
99   -
100   - if(UtilObjeto.isReferencia(historicoView.getAutor().getUnidade())){
101   -
  98 +
  99 + if (UtilObjeto.isReferencia(historicoView.getAutor().getUnidade())) {
  100 +
102 101 toSave.setNomeUnidadeVigente(historicoView.getAutor().getUnidade().getSigla());
103 102 }
104 103 toSave.setDescricaoAcao(historicoView.getDescricaoAcao());
... ... @@ -117,14 +116,14 @@ public class HistoricoAlteracaoProcessoServiceImpl extends GenericServiceImpl&lt;Hi
117 116 e.printStackTrace();
118 117 }
119 118  
120   - return ((HistoricoAlteracaoProcesso) historicoAlteracaoProcessoDao.save(toSave)) != null ? true : false;
  119 + return ( (HistoricoAlteracaoProcesso) historicoAlteracaoProcessoDao.save(toSave) ) != null ? true : false;
121 120 }
122 121  
123 122 private void produceViewParams(HistoricoAlteracaoProcesso historico, HistoricoAlteracaoProcesso toSave) {
124 123  
125 124 Map<String, String> mapaAtributos;
126   - if (historico.getMapaAtributos() != null) {
127   - mapaAtributos = historico.getMapaAtributos();
  125 + if (historico.getMapaAtributos() != null) {
  126 + mapaAtributos = historico.getMapaAtributos();
128 127 } else {
129 128 mapaAtributos = new HashMap<String, String>();
130 129 }
... ...
cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/HistoricoAtribuicaoProcessoServiceImpl.java 0 → 100644
... ... @@ -0,0 +1,97 @@
  1 +package br.com.centralit.api.service.impl;
  2 +
  3 +import org.springframework.beans.factory.annotation.Autowired;
  4 +import org.springframework.stereotype.Service;
  5 +
  6 +import br.com.centralit.api.dao.HistoricoAtribuicaoProcessoDao;
  7 +import br.com.centralit.api.model.HistoricoAtribuicaoProcesso;
  8 +import br.com.centralit.api.model.UnidadeProcesso;
  9 +import br.com.centralit.api.service.HistoricoAtribuicaoProcessoService;
  10 +import br.com.centralit.framework.service.arquitetura.GenericServiceImpl;
  11 +import br.com.centralit.framework.util.UtilDate;
  12 +import br.com.centralit.framework.util.UtilObjeto;
  13 +
  14 +/**
  15 + * <p>
  16 + * <img src="http://centralit.com.br/images/logo_central.png">
  17 + * </p>
  18 + *
  19 + * <p>
  20 + * <b>Company: </b> Central IT - Governança Corporativa -
  21 + * </p>
  22 + *
  23 + * <p>
  24 + * <b>Title: </b>
  25 + * </p>
  26 + *
  27 + * <p>
  28 + * <b>Description: </b>
  29 + * </p>
  30 + *
  31 + * <p>
  32 + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
  33 + * </p>
  34 + *
  35 + * <p>
  36 + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
  37 + * </p>
  38 + *
  39 + * @since 02/04/2016 - 10:45:13
  40 + *
  41 + * @version 1.0.0
  42 + *
  43 + * @author rogerio.costa
  44 + *
  45 + */
  46 +@Service("historicoAtribuicaoProcessoService")
  47 +public class HistoricoAtribuicaoProcessoServiceImpl extends GenericServiceImpl<HistoricoAtribuicaoProcesso, Long> implements HistoricoAtribuicaoProcessoService {
  48 +
  49 + /** Atributo historicoAtribuicaoProcessoDao. */
  50 + private HistoricoAtribuicaoProcessoDao historicoAtribuicaoProcessoDao;
  51 +
  52 + /**
  53 + * Responsável pela criação de novas instâncias desta classe.
  54 + *
  55 + * @param historicoAlteracaoProcessoDao
  56 + */
  57 + @Autowired
  58 + public HistoricoAtribuicaoProcessoServiceImpl( HistoricoAtribuicaoProcessoDao historicoAtribuicaoProcessoDao ) {
  59 +
  60 + this.dao = historicoAtribuicaoProcessoDao;
  61 + this.historicoAtribuicaoProcessoDao = historicoAtribuicaoProcessoDao;
  62 +
  63 + }
  64 +
  65 + /**
  66 + * <p>
  67 + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
  68 + * </p>
  69 + *
  70 + * <p>
  71 + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
  72 + * </p>
  73 + *
  74 + * Método responsável por salvar o historico de atribuição
  75 + *
  76 + * @author rogerio.costa
  77 + *
  78 + * @param entity
  79 + */
  80 + public void saveHistorico(UnidadeProcesso entity) {
  81 +
  82 + HistoricoAtribuicaoProcesso historicoAtual = this.historicoAtribuicaoProcessoDao.obterAtualPorUnidadeProcesso(entity.getId());
  83 +
  84 + if (UtilObjeto.isReferencia(historicoAtual)) {
  85 +
  86 + historicoAtual.setNomeUsuarioRemocao(this.getUsuario().getUsername());
  87 + historicoAtual.setDataRemocao(UtilDate.getDataAtualCalendar());
  88 +
  89 + }
  90 +
  91 + HistoricoAtribuicaoProcesso historicoAtribuicaoProcesso = new HistoricoAtribuicaoProcesso();
  92 + historicoAtribuicaoProcesso.setNomeUsuarioAtribuido(entity.getUsuarioResponsavel().getUsername());
  93 + historicoAtribuicaoProcesso.setUnidadeProcesso(entity);
  94 + historicoAtribuicaoProcesso.setDataAtribuicao(UtilDate.getCalendarDaDataAtual());
  95 + this.historicoAtribuicaoProcessoDao.save(historicoAtribuicaoProcesso);
  96 + }
  97 +}
... ...
cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/InicializarEcmServiceImpl.java
... ... @@ -70,9 +70,23 @@ public class InicializarEcmServiceImpl extends UtilStartup {
70 70 @Autowired
71 71 private ModuloService moduloService;
72 72  
  73 + /**
  74 + * <p>
  75 + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
  76 + * </p>
  77 + *
  78 + * <p>
  79 + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
  80 + * </p>
  81 + *
  82 + * Método responsável por gerar a carga inicial
  83 + *
  84 + * @author rogerio.costa
  85 + *
  86 + */
73 87 public void gerarCarga() {
74 88  
75   - criarPaginasMenus();
  89 + this.criarPaginasMenus();
76 90 }
77 91  
78 92 /**
... ... @@ -92,17 +106,17 @@ public class InicializarEcmServiceImpl extends UtilStartup {
92 106 */
93 107 private void criarPaginasMenus() {
94 108  
95   - dominioJS = this.dominioService.findByChaveAndNome(TIPO_FILE, TIPO_FILE_JS);
96   - moduloSelecionado = this.moduloService.getModuloPorBaseUrl(BASE_URL_ECM, null);
  109 + this.dominioJS = this.dominioService.findByChaveAndNome(UtilStartup.TIPO_FILE, UtilStartup.TIPO_FILE_JS);
  110 + this.moduloSelecionado = this.moduloService.getModuloPorBaseUrl(UtilStartup.BASE_URL_ECM, null);
97 111  
98 112 // Menu pai ECM
99   - this.menuECM = new Menu("SIGAD", null, null, null, 4, this.corEcm, this.cssMenuEcm, this.opacidadeMenuEcm, this.classeEcm, ICONE_MENU_ECM, moduloSelecionado);
  113 + this.menuECM = new Menu("IDGS", null, null, null, 4, this.corEcm, this.cssMenuEcm, this.opacidadeMenuEcm, this.classeEcm, this.ICONE_MENU_ECM, this.moduloSelecionado);
100 114  
101 115 this.menuECM = this.menuService.mergeIfNotExist(this.menuECM);
102 116  
103   - this.iniciarMenuCadastroBasico(moduloSelecionado);
  117 + this.iniciarMenuCadastroBasico(this.moduloSelecionado);
104 118  
105   - this.iniciarMenuCadastroProcesso(moduloSelecionado);
  119 + this.iniciarMenuCadastroProcesso(this.moduloSelecionado);
106 120  
107 121 Logger.getLogger(InicializarEcmServiceImpl.class).info("Menu executado - InicializarEcmServiceImpl!");
108 122  
... ... @@ -197,7 +211,12 @@ public class InicializarEcmServiceImpl extends UtilStartup {
197 211 filesProcesso.add(new MenuFile("/cit-ecm-web/assets/js/angular/custom/repository/HistoricoCredencialProcessoRepository.min.js", this.dominioJS, menuCadastroProcesso));
198 212 filesProcesso.add(new MenuFile("/cit-ecm-web/assets/js/angular/custom/repository/SigiloRepository.js", this.dominioJS, menuCadastroProcesso));
199 213 filesProcesso.add(new MenuFile("/cit-ecm-web/assets/js/angular/custom/repository/SigiloRepository.min.js", this.dominioJS, menuCadastroProcesso));
  214 + filesProcesso.add(new MenuFile("/cit-ecm-web/assets/js/angular/custom/controller/AtribuirProcessoController.min.js", this.dominioJS, menuCadastroProcesso));
  215 + filesProcesso.add(new MenuFile("/cit-ecm-web/assets/js/angular/custom/controller/AtribuirProcessoController.js", this.dominioJS, menuCadastroProcesso));
  216 + filesProcesso.add(new MenuFile("/cit-ecm-web/assets/js/angular/custom/repository/HistoricoAtribuicaoProcessoRepository.js", this.dominioJS, menuCadastroProcesso));
  217 + filesProcesso.add(new MenuFile("/cit-ecm-web/assets/js/angular/custom/repository/HistoricoAtribuicaoProcessoRepository.min.js", this.dominioJS, menuCadastroProcesso));
200 218  
  219 +
201 220 menuCadastroProcesso.setIncludes(filesProcesso);
202 221 this.menuService.mergeIfNotExist(menuCadastroProcesso);
203 222  
... ... @@ -236,7 +255,7 @@ public class InicializarEcmServiceImpl extends UtilStartup {
236 255 private void iniciarMenuCadastroBasico(Modulo modulo) {
237 256  
238 257 // Submenu Cadastros Básico #INICIO
239   - Menu menuCadastroBasico = new Menu("Gerenciar SIGAD", null, this.menuECM, 0, 1, null, null, null, null, modulo);
  258 + Menu menuCadastroBasico = new Menu("Gerenciar IDGS", null, this.menuECM, 0, 1, null, null, null, null, modulo);
240 259 menuCadastroBasico = this.menuService.mergeIfNotExist(menuCadastroBasico);
241 260  
242 261 // Submenu Cadastro Plano de classificação, temporalidade e destinação #INICIO
... ... @@ -252,7 +271,7 @@ public class InicializarEcmServiceImpl extends UtilStartup {
252 271 pgHipoteseLegal = this.paginaService.saveIfNotExist(pgHipoteseLegal);
253 272  
254 273 Menu menuHipoteseLegal = new Menu("Hipóteses Legais", pgHipoteseLegal, menuCadastroBasico, 0, 2, null, null, null, null, modulo);
255   - menuHipoteseLegal.setIncludes(this.gerarArquivosMenu(menuHipoteseLegal, CIT_ECM_WEB_ANGULAR, "HipoteseLegal", true, true, true));
  274 + menuHipoteseLegal.setIncludes(this.gerarArquivosMenu(menuHipoteseLegal, this.CIT_ECM_WEB_ANGULAR, "HipoteseLegal", true, true, true));
256 275 this.menuService.mergeIfNotExist(menuHipoteseLegal);
257 276  
258 277 // Submenu Tipos de Documento #INICIO
... ...
cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/ProcessoServiceImpl.java
... ... @@ -33,6 +33,7 @@ import br.com.centralit.api.service.CredencialProcessoService;
33 33 import br.com.centralit.api.service.DocumentoGedService;
34 34 import br.com.centralit.api.service.DominioService;
35 35 import br.com.centralit.api.service.GrupoService;
  36 +import br.com.centralit.api.service.HistoricoAtribuicaoProcessoService;
36 37 import br.com.centralit.api.service.PlanoClassificacaoService;
37 38 import br.com.centralit.api.service.ProcessoService;
38 39 import br.com.centralit.api.service.SigiloService;
... ... @@ -129,6 +130,10 @@ public class ProcessoServiceImpl extends GenericServiceImpl&lt;Processo, Long&gt; impl
129 130 @Autowired
130 131 private CredencialProcessoService credencialProcessoService;
131 132  
  133 + /** Atributo historicoAtribuicaoProcessoService. */
  134 + @Autowired
  135 + private HistoricoAtribuicaoProcessoService historicoAtribuicaoProcessoService;
  136 +
132 137 /** Atributo request. */
133 138 @Autowired
134 139 private HttpServletRequest request;
... ... @@ -142,7 +147,7 @@ public class ProcessoServiceImpl extends GenericServiceImpl&lt;Processo, Long&gt; impl
142 147 }
143 148  
144 149 @Override
145   - public Processo save(final Processo entity) {
  150 + public Processo save(Processo entity) {
146 151  
147 152 this.validarEntidade(entity, this.validator);
148 153  
... ... @@ -150,9 +155,9 @@ public class ProcessoServiceImpl extends GenericServiceImpl&lt;Processo, Long&gt; impl
150 155 entity.setSigiloOriginal(entity.getSigilo());
151 156 entity.setNivelAcessoOriginal(entity.getNivelAcesso());
152 157  
153   - final Processo processo = super.save(entity);
  158 + Processo processo = super.save(entity);
154 159  
155   -// this.credencialProcessoService.saveCredenciais(processo);
  160 + this.unidadeProcessoService.saveUnidadeProcesso(processo);
156 161  
157 162 if (processo.getTipoProtocolo().getCodigo().equals(1L)) {
158 163 this.gerarNUP(processo);
... ... @@ -204,11 +209,10 @@ public class ProcessoServiceImpl extends GenericServiceImpl&lt;Processo, Long&gt; impl
204 209 processo.setNivelAcesso(entity.getNivelAcesso());
205 210 processo.setAprovado(entity.getAprovado());
206 211  
207   -
208 212 processo = super.merge(processo);
209   -
210   - documentoGedService.atualizarSigiloDocumentos(entity.getDocumentos());
211   -
  213 +
  214 + this.documentoGedService.atualizarSigiloDocumentos(entity.getDocumentos());
  215 +
212 216 return processo;
213 217 }
214 218  
... ... @@ -220,7 +224,7 @@ public class ProcessoServiceImpl extends GenericServiceImpl&lt;Processo, Long&gt; impl
220 224 this.montarEntidade(processo);
221 225  
222 226 try {
223   - solrService.addProcesso(processo);
  227 + this.solrService.addProcesso(processo);
224 228 } catch (Exception e) {
225 229 e.printStackTrace();
226 230 }
... ... @@ -237,33 +241,6 @@ public class ProcessoServiceImpl extends GenericServiceImpl&lt;Processo, Long&gt; impl
237 241 * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
238 242 * </p>
239 243 *
240   - * Método responsável por gerar as credenciais do processo
241   - *
242   - * @author rogerio.costa
243   - *
244   - * @param processo
245   - */
246   - private void gerarCredenciais(final Processo processo) {
247   -
248   - // Verifica se o processo é sigiloso
249   - if (UtilObjeto.isReferencia(processo.getSigilo())) {
250   -
251   - this.credencialProcessoService.saveCredenciais(processo);
252   - } else {
253   - this.startBusinessProcess(processo);
254   - }
255   -
256   - }
257   -
258   - /**
259   - * <p>
260   - * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
261   - * </p>
262   - *
263   - * <p>
264   - * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
265   - * </p>
266   - *
267 244 * Método responsável por startar o BusinessProcess
268 245 *
269 246 * @author rogerio.costa
... ... @@ -295,7 +272,7 @@ public class ProcessoServiceImpl extends GenericServiceImpl&lt;Processo, Long&gt; impl
295 272 List<Grupo> gruposPadraoSigilo = (List<Grupo>) this.findGrupoPorSigilo(processo.getSigilo());
296 273  
297 274 if (!UtilColecao.isVazio(gruposPadraoSigilo)) {
298   - //No momento o sistema está aceitando somente um grupo para gerenciar cada nivel de sigilo.
  275 + // No momento o sistema está aceitando somente um grupo para gerenciar cada nivel de sigilo.
299 276 variaveis.add(new EnvironmentVariable("grupoPadrao", VariableTypeEnum.TEXT, gruposPadraoSigilo.get(0).getSigla(), false));
300 277 }
301 278  
... ... @@ -314,9 +291,9 @@ public class ProcessoServiceImpl extends GenericServiceImpl&lt;Processo, Long&gt; impl
314 291 }
315 292  
316 293 EnvironmentOutput environmentOutput = this.startBusinessProcess(processo.getTipoProcesso().getProcessoNegocio(), variaveis);
317   -
  294 +
318 295 processo.setIdProcessInstance(environmentOutput.getProcessInstanceId());
319   -
  296 +
320 297 }
321 298  
322 299 /**
... ... @@ -511,7 +488,7 @@ public class ProcessoServiceImpl extends GenericServiceImpl&lt;Processo, Long&gt; impl
511 488 }
512 489  
513 490 nup += unidadeVigenteUsuario.getCodigoSiorg() + ".";
514   - nup += gerarSequencia() + "/";
  491 + nup += this.gerarSequencia() + "/";
515 492 nup += new GregorianCalendar().get(Calendar.YEAR) + "-";
516 493 processo.setNup(nup + this.calculaDvNupNovo(nup));
517 494  
... ... @@ -556,7 +533,7 @@ public class ProcessoServiceImpl extends GenericServiceImpl&lt;Processo, Long&gt; impl
556 533 }
557 534  
558 535 @Override
559   - public boolean remove(final Processo processo) {
  536 + public boolean remove(Processo processo) {
560 537  
561 538 // Regra de negócio, ao excluir um processo, excluir também os
562 539 // documentos vinculados logicamente
... ... @@ -569,11 +546,36 @@ public class ProcessoServiceImpl extends GenericServiceImpl&lt;Processo, Long&gt; impl
569 546 }
570 547  
571 548 @Override
572   - public Processo getReference(final Long id) {
  549 + public Processo getReference(Long id) {
  550 +
  551 + Processo processo = super.getReference(id);
  552 +
  553 + processo.setDocumentos(this.documentoGedService.findByIdProcessoUltimaVersao(id));
  554 +
  555 + return processo;
  556 + }
  557 +
  558 + /**
  559 + * <p>
  560 + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
  561 + * </p>
  562 + *
  563 + * <p>
  564 + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
  565 + * </p>
  566 + *
  567 + * Método responsável por iniciar o gerenciamento do processo
  568 + *
  569 + * @author rogerio.costa
  570 + *
  571 + * @return Processo
  572 + */
  573 + @Override
  574 + public Processo getProcessoGerenciamento(Long id) {
573 575  
574   - final Processo processo = super.getReference(id);
  576 + this.request.getSession().setAttribute("idProcesso", id);
575 577  
576   - request.getSession().setAttribute("idProcesso", id);
  578 + Processo processo = super.getReference(id);
577 579  
578 580 processo.setDocumentos(this.documentoGedService.findByIdProcessoUltimaVersao(id));
579 581  
... ... @@ -589,6 +591,47 @@ public class ProcessoServiceImpl extends GenericServiceImpl&lt;Processo, Long&gt; impl
589 591 * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
590 592 * </p>
591 593 *
  594 + * Método responsável por atribuir processo para o usuario logado no primeiro acesso
  595 + *
  596 + * @author rogerio.costa
  597 + *
  598 + * @param processo
  599 + */
  600 + @Override
  601 + public Boolean verificarAtribuicaoProcessoPrimeiroAcesso(Long idProcesso) {
  602 +
  603 + Processo processo = super.getReference(idProcesso);
  604 +
  605 + // Verifica se o usuario logado está lotado na unidade.
  606 + if (UtilObjeto.isReferencia(this.getUsuario().getUnidade())) {
  607 +
  608 + UnidadeProcesso unidadeProcesso = this.unidadeProcessoService.obterPorUnidadeEProcesso(processo.getId(), this.getUsuario().getUnidade().getId());
  609 + // Verifica se o processo foi enviado para essa unidade e se é o primeiro acesso
  610 + if (UtilObjeto.isReferencia(unidadeProcesso) && unidadeProcesso.getPrimeiroAcesso()) {
  611 +
  612 + unidadeProcesso.setUsuarioResponsavel(this.getUsuario());
  613 + unidadeProcesso.setPrimeiroAcesso(Boolean.FALSE);
  614 +
  615 + this.historicoAtribuicaoProcessoService.saveHistorico(unidadeProcesso);
  616 +
  617 + return Boolean.TRUE;
  618 + }
  619 +
  620 + }
  621 +
  622 + return Boolean.FALSE;
  623 +
  624 + }
  625 +
  626 + /**
  627 + * <p>
  628 + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
  629 + * </p>
  630 + *
  631 + * <p>
  632 + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
  633 + * </p>
  634 + *
592 635 * Método responsável por concluír o processo na unidade
593 636 *
594 637 * @author rogerio.costa
... ... @@ -672,6 +715,7 @@ public class ProcessoServiceImpl extends GenericServiceImpl&lt;Processo, Long&gt; impl
672 715 *
673 716 * @param planoClassificacao
674 717 */
  718 + @Override
675 719 public void atualizarTemporalidadeDestinacao(PlanoClassificacao planoClassificacao) {
676 720  
677 721 this.atualizarTemporalidadeProcesso(planoClassificacao);
... ... @@ -748,6 +792,7 @@ public class ProcessoServiceImpl extends GenericServiceImpl&lt;Processo, Long&gt; impl
748 792 * @param processo
749 793 * @param processoAnexo
750 794 */
  795 + @Override
751 796 public void atualizarTemporalidadeProcessoAnexado(Processo processo, Processo processoAnexo) {
752 797  
753 798 this.verificarAtualizacaoTemporalidadeAtravesDaTemporalidadeDoProcesso(processoAnexo.getTemporalidade(), processo);
... ... @@ -945,6 +990,7 @@ public class ProcessoServiceImpl extends GenericServiceImpl&lt;Processo, Long&gt; impl
945 990 *
946 991 * @param entity
947 992 */
  993 + @Override
948 994 public void verificaTemporalidadeProcessoAtravesDoPlanoClassificacacao(PlanoClassificacao planoClassificacao, Processo processo) {
949 995  
950 996 planoClassificacao = this.planoClassificacaoService.getReference(planoClassificacao.getId());
... ... @@ -976,18 +1022,13 @@ public class ProcessoServiceImpl extends GenericServiceImpl&lt;Processo, Long&gt; impl
976 1022 @Override
977 1023 public Processo getProcessoByIdProcessInstance(Long idProcessInstance) {
978 1024  
979   - // TODO Auto-generated method stub
980 1025 return this.processoDao.getProcessoByIdProcessInstance(idProcessInstance);
981 1026 }
982 1027  
983 1028 @Override
984 1029 public Processo getProcessoByProtocolo(String nup) {
985 1030  
986   - // TODO Auto-generated method stub
987 1031 return this.processoDao.getProcessoByProtocolo(nup);
988 1032 }
989   -
990   -
991   -
992 1033  
993 1034 }
... ...
cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/UnidadeProcessoServiceImpl.java
... ... @@ -13,13 +13,14 @@ import br.com.centralit.api.model.UnidadeProcesso;
13 13 import br.com.centralit.api.service.DominioService;
14 14 import br.com.centralit.api.service.GrupoService;
15 15 import br.com.centralit.api.service.GrupoUsuarioService;
  16 +import br.com.centralit.api.service.HistoricoAtribuicaoProcessoService;
16 17 import br.com.centralit.api.service.NotificacaoService;
17 18 import br.com.centralit.api.service.NotificacaoUsuarioService;
18 19 import br.com.centralit.api.service.ProcessoService;
19 20 import br.com.centralit.api.service.UnidadeProcessoService;
20 21 import br.com.centralit.api.service.UnidadeService;
  22 +import br.com.centralit.api.service.UsuarioService;
21 23 import br.com.centralit.api.viewHelper.EnviarProcessoVH;
22   -import br.com.centralit.framework.esi.environment.EnvironmentOutput;
23 24 import br.com.centralit.framework.model.Unidade;
24 25 import br.com.centralit.framework.service.arquitetura.GenericServiceImpl;
25 26 import br.com.centralit.framework.util.UtilColecao;
... ... @@ -91,6 +92,14 @@ public class UnidadeProcessoServiceImpl extends GenericServiceImpl&lt;UnidadeProces
91 92 /** Atributo unidadeService. */
92 93 private UnidadeService unidadeService;
93 94  
  95 + /** Atributo usuarioService. */
  96 + @Autowired
  97 + private UsuarioService usuarioService;
  98 +
  99 + /** Atributo historicoAtribuicaoProcessoService. */
  100 + @Autowired
  101 + private HistoricoAtribuicaoProcessoService historicoAtribuicaoProcessoService;
  102 +
94 103 /**
95 104 * Responsável pela criação de novas instâncias desta classe.
96 105 *
... ... @@ -130,6 +139,7 @@ public class UnidadeProcessoServiceImpl extends GenericServiceImpl&lt;UnidadeProces
130 139  
131 140 for (UnidadeProcesso unidadeProcesso : enviarProcessoVH.getUnidadesProcessoList()) {
132 141  
  142 + unidadeProcesso.setPrimeiroAcesso(Boolean.TRUE);
133 143 unidadeProcesso.setProcesso(processo);
134 144 // Adiciona os grupos para qual sera enviado.
135 145 groups.add(this.grupoService.getReference(unidadeProcesso.getUnidade().getGrupo().getId()).getSigla());
... ... @@ -145,12 +155,53 @@ public class UnidadeProcessoServiceImpl extends GenericServiceImpl&lt;UnidadeProces
145 155  
146 156 enviarProcessoVH.setUnidadesProcessoList(this.saveList(enviarProcessoVH.getUnidadesProcessoList()));
147 157 // Enviar o processo para os grupos padrão das unidades.
148   - EnvironmentOutput output = this.delegateUserTask(enviarProcessoVH.getIdTask(), groups, null);
  158 + this.delegateUserTask(enviarProcessoVH.getIdTask(), groups, null);
149 159 }
150 160  
151 161 return enviarProcessoVH;
152 162 }
153 163  
  164 + @Override
  165 + public UnidadeProcesso merge(UnidadeProcesso entity) {
  166 +
  167 + if (UtilObjeto.isReferencia(entity.getUsuarioResponsavel())) {
  168 +
  169 + entity.setUsuarioResponsavel(this.usuarioService.getReference(entity.getUsuarioResponsavel().getId()));
  170 +
  171 + this.historicoAtribuicaoProcessoService.saveHistorico(entity);
  172 +
  173 + }
  174 + return super.merge(entity);
  175 + }
  176 +
  177 + /**
  178 + * <p>
  179 + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
  180 + * </p>
  181 + *
  182 + * <p>
  183 + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
  184 + * </p>
  185 + *
  186 + * Método responsável por salvar unidadeProcesso
  187 + *
  188 + * @author rogerio.costa
  189 + *
  190 + * @param processo
  191 + */
  192 + public void saveUnidadeProcesso(Processo processo) {
  193 +
  194 + UnidadeProcesso unidadeProcesso = new UnidadeProcesso();
  195 + unidadeProcesso.setProcesso(processo);
  196 + unidadeProcesso.setPrimeiroAcesso(Boolean.FALSE);
  197 + unidadeProcesso.setUnidade(this.unidadeService.getReference(this.getUsuario().getUnidade().getId()));
  198 + unidadeProcesso.setUsuarioResponsavel(this.getUsuario());
  199 +
  200 + unidadeProcesso = super.save(unidadeProcesso);
  201 +
  202 + this.historicoAtribuicaoProcessoService.saveHistorico(unidadeProcesso);
  203 + }
  204 +
154 205 /**
155 206 * <p>
156 207 * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
... ... @@ -176,20 +227,19 @@ public class UnidadeProcessoServiceImpl extends GenericServiceImpl&lt;UnidadeProces
176 227 unidadeProcesso.setConcluido(Boolean.TRUE);
177 228  
178 229 List<String> grupos = new ArrayList<String>();
179   -
  230 +
180 231 List<String> users = new ArrayList<String>();
181   -
182   -
  232 +
183 233 users.add(processo.getAutor().getUsername());
184 234  
185 235 Unidade unidade = this.unidadeService.getReference(this.getUsuario().getUnidade().getId());
186 236  
187 237 grupos.add(unidade.getGrupo().getSigla());
188   -
189   - this.removeUserTaskDelegation(idTask, grupos, null);
190   - this.removeUserTaskDelegation(idTask, null, users);
191 238  
192   - this.save(unidadeProcesso);
  239 + this.removeUserTaskDelegation(idTask, grupos, null);
  240 + this.removeUserTaskDelegation(idTask, null, users);
  241 +
  242 + this.save(unidadeProcesso);
193 243 }
194 244  
195 245 /**
... ... @@ -244,7 +294,27 @@ public class UnidadeProcessoServiceImpl extends GenericServiceImpl&lt;UnidadeProces
244 294  
245 295 return this.unidadeProcessoDao.findProcesso(processo);
246 296 }
247   -
248   -
  297 +
  298 + /**
  299 + * <p>
  300 + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
  301 + * </p>
  302 + *
  303 + * <p>
  304 + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
  305 + * </p>
  306 + *
  307 + * Método responsável por obter através da unidade e processo
  308 + *
  309 + * @author rogerio.costa
  310 + *
  311 + * @param idProcesso
  312 + * @param idUnidade
  313 + * @return UnidadeProcesso
  314 + */
  315 + public UnidadeProcesso obterPorUnidadeEProcesso(Long idProcesso, Long idUnidade) {
  316 +
  317 + return this.unidadeProcessoDao.obterPorUnidadeEProcesso(idProcesso, idUnidade);
  318 + }
249 319  
250 320 }
... ...
cit-ecm-web/src/main/java/br/com/centralit/controller/ConfiguracaoUsuarioUnidadeController.java
... ... @@ -112,6 +112,34 @@ public class ConfiguracaoUsuarioUnidadeController extends GenericController&lt;Conf
112 112 return responseBody;
113 113 }
114 114  
  115 + /**
  116 + * <p>
  117 + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
  118 + * </p>
  119 + *
  120 + * <p>
  121 + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
  122 + * </p>
  123 + *
  124 + * Método responsável por listar usuarios através da unidade e username
  125 + *
  126 + * @author rogerio.costa
  127 + *
  128 + * @param username
  129 + * @param idUnidade
  130 + * @return Collection<Usuario>
  131 + */
  132 + @RequestMapping(value = "/findPorUsernameUsuarioAndUnidade", method = RequestMethod.GET, produces = "application/json")
  133 + @ResponseBody
  134 + public ResponseBodyWrapper findPorUsernameUsuarioAndUnidade(@RequestParam(value = "username") String username, @RequestParam(value = "idUnidade") Long idUnidade) {
  135 +
  136 + Collection<ConfiguracaoUsuarioUnidade> configuracoes = this.configuracaoUsuarioUnidadeService.findPorUsernameUsuarioAndUnidade(username, idUnidade);
  137 +
  138 + ResponseBodyWrapper responseBody = new ResponseBodyWrapper(configuracoes, Views.UsuarioAutoCompleteView.class);
  139 +
  140 + return responseBody;
  141 + }
  142 +
115 143 @Override
116 144 public Class<Views.ConfiguracaoUsuarioUnidadeEditView> getEditView() {
117 145  
... ...
cit-ecm-web/src/main/java/br/com/centralit/controller/HistoricoAtribuicaoProcessoController.java 0 → 100644
... ... @@ -0,0 +1,71 @@
  1 +package br.com.centralit.controller;
  2 +
  3 +import org.springframework.beans.factory.annotation.Autowired;
  4 +import org.springframework.stereotype.Controller;
  5 +import org.springframework.web.bind.annotation.RequestMapping;
  6 +
  7 +import br.com.centralit.api.framework.json.ViewsEcm;
  8 +import br.com.centralit.api.model.HistoricoAtribuicaoProcesso;
  9 +import br.com.centralit.api.service.HistoricoAtribuicaoProcessoService;
  10 +import br.com.centralit.framework.controller.GenericController;
  11 +
  12 +/**
  13 + * <p>
  14 + * <img src="http://centralit.com.br/images/logo_central.png">
  15 + * </p>
  16 + *
  17 + * <p>
  18 + * <b>Company: </b> Central IT - Governança Corporativa -
  19 + * </p>
  20 + *
  21 + * <p>
  22 + * <b>Title: </b>
  23 + * </p>
  24 + *
  25 + * <p>
  26 + * <b>Description: </b>
  27 + * </p>
  28 + *
  29 + * <p>
  30 + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
  31 + * </p>
  32 + *
  33 + * <p>
  34 + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
  35 + * </p>
  36 + *
  37 + * @since 02/04/2016 - 10:49:18
  38 + *
  39 + * @version 1.0.0
  40 + *
  41 + * @author rogerio.costa
  42 + *
  43 + */
  44 +@Controller
  45 +@RequestMapping("/rest/historicoAtribuicaoProcesso")
  46 +public class HistoricoAtribuicaoProcessoController extends GenericController<HistoricoAtribuicaoProcesso> {
  47 +
  48 + /** Atributo historicoAtribuicaoProcessoService. */
  49 + private HistoricoAtribuicaoProcessoService historicoAtribuicaoProcessoService;
  50 +
  51 + /**
  52 + * Responsável pela criação de novas instâncias desta classe.
  53 + *
  54 + * @param historicoAtribuicaoProcessoService
  55 + */
  56 + @Autowired
  57 + public HistoricoAtribuicaoProcessoController( HistoricoAtribuicaoProcessoService historicoAtribuicaoProcessoService ) {
  58 +
  59 + super(historicoAtribuicaoProcessoService);
  60 +
  61 + this.historicoAtribuicaoProcessoService = historicoAtribuicaoProcessoService;
  62 +
  63 + }
  64 +
  65 + @Override
  66 + public Class<ViewsEcm.HistoricoAtribuicaoProcessoView> getEditView() {
  67 +
  68 + return ViewsEcm.HistoricoAtribuicaoProcessoView.class;
  69 + }
  70 +
  71 +}
... ...
cit-ecm-web/src/main/java/br/com/centralit/controller/ProcessoController.java
... ... @@ -56,17 +56,16 @@ public class ProcessoController extends GenericController&lt;Processo&gt; {
56 56  
57 57 return responseBody;
58 58 }
59   -
60   -
  59 +
61 60 @RequestMapping(method = RequestMethod.POST, value = "atualizarSigiloProcesso")
62 61 @ResponseBody
63 62 public ResponseBodyWrapper atualizarSigiloProcesso(@RequestBody Processo processo) throws Exception {
64 63  
65 64 ResponseBodyWrapper responseBody = new ResponseBodyWrapper(this.processoService.atualizarSigiloProcesso(processo), GenericView.class);
66   -
  65 +
67 66 return responseBody;
68 67 }
69   -
  68 +
70 69 @RequestMapping(method = RequestMethod.GET, value = "/getProcessoByIdProcessInstance")
71 70 @ResponseBody
72 71 public ResponseBodyWrapper getProcessoByIdProcessInstance(@RequestParam(value = "idProcessInstance") Long idProcessInstance) {
... ... @@ -75,7 +74,7 @@ public class ProcessoController extends GenericController&lt;Processo&gt; {
75 74  
76 75 return responseBody;
77 76 }
78   -
  77 +
79 78 @RequestMapping(method = RequestMethod.GET, value = "/getProcessoByProtocolo")
80 79 @ResponseBody
81 80 public ResponseBodyWrapper getProcessoByProtocolo(@RequestParam(value = "nup") String nup) {
... ... @@ -84,7 +83,55 @@ public class ProcessoController extends GenericController&lt;Processo&gt; {
84 83  
85 84 return responseBody;
86 85 }
87   -
  86 +
  87 + /**
  88 + * <p>
  89 + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
  90 + * </p>
  91 + *
  92 + * <p>
  93 + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
  94 + * </p>
  95 + *
  96 + * Método responsável por iniciar o gerenciamento do processo
  97 + *
  98 + * @author rogerio.costa
  99 + *
  100 + * @return Processo
  101 + */
  102 + @RequestMapping(method = RequestMethod.GET, value = "/getProcessoGerenciamento")
  103 + @ResponseBody
  104 + public ResponseBodyWrapper getProcessoGerenciamento(@RequestParam(value = "idProcesso") Long idProcesso) {
  105 +
  106 + ResponseBodyWrapper responseBody = new ResponseBodyWrapper(this.processoService.getProcessoGerenciamento(idProcesso), this.getListView());
  107 +
  108 + return responseBody;
  109 + }
  110 +
  111 + /**
  112 + * <p>
  113 + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
  114 + * </p>
  115 + *
  116 + * <p>
  117 + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
  118 + * </p>
  119 + *
  120 + * Método responsável por atribuir processo para o usuario logado no primeiro acesso
  121 + *
  122 + * @author rogerio.costa
  123 + *
  124 + * @param idProcesso
  125 + * @return
  126 + */
  127 + @RequestMapping(method = RequestMethod.GET, value = "/verificarAtribuicaoProcessoPrimeiroAcesso")
  128 + @ResponseBody
  129 + public ResponseBodyWrapper verificarAtribuicaoProcessoPrimeiroAcesso(@RequestParam(value = "idProcesso") Long idProcesso) {
  130 +
  131 + ResponseBodyWrapper responseBody = new ResponseBodyWrapper(this.processoService.verificarAtribuicaoProcessoPrimeiroAcesso(idProcesso), this.getListView());
  132 +
  133 + return responseBody;
  134 + }
88 135  
89 136 @Override
90 137 public Class<Views.ProcessoEdit> getEditView() {
... ... @@ -97,10 +144,10 @@ public class ProcessoController extends GenericController&lt;Processo&gt; {
97 144  
98 145 return Views.ProcessoList.class;
99 146 }
100   -
  147 +
101 148 @Override
102 149 public Class<Views.ProcessoAutoCompleteView> getAutoCompleteView() {
103   -
  150 +
104 151 // TODO Auto-generated method stub
105 152 return Views.ProcessoAutoCompleteView.class;
106 153 }
... ...
cit-ecm-web/src/main/java/br/com/centralit/controller/UnidadeProcessoController.java
... ... @@ -16,6 +16,7 @@ import br.com.centralit.api.viewHelper.EnviarProcessoVH;
16 16 import br.com.centralit.framework.controller.GenericController;
17 17 import br.com.centralit.framework.json.ResponseBodyWrapper;
18 18 import br.com.centralit.framework.json.Views;
  19 +import br.com.centralit.framework.view.ResultResponseVH;
19 20  
20 21 /**
21 22 * <p>
... ... @@ -89,4 +90,37 @@ public class UnidadeProcessoController extends GenericController&lt;UnidadeProcesso
89 90 return responseBody;
90 91 }
91 92  
  93 + /**
  94 + * <p>
  95 + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
  96 + * </p>
  97 + *
  98 + * <p>
  99 + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
  100 + * </p>
  101 + *
  102 + * Método responsável por
  103 + *
  104 + * @author rogerio.costa
  105 + *
  106 + * @param idProcesso
  107 + * @param idUnidade
  108 + * @return
  109 + */
  110 + @RequestMapping(value = "/obterPorUnidadeEProcesso", method = RequestMethod.GET, produces = "application/json")
  111 + @ResponseBody
  112 + public ResponseBodyWrapper obterPorUnidadeEProcesso(@RequestParam(value = "idProcesso") Long idProcesso, @RequestParam(value = "idUnidade") Long idUnidade) {
  113 +
  114 + ResultResponseVH<UnidadeProcesso> resultResponseVH = new ResultResponseVH<UnidadeProcesso>(this.unidadeProcessoService.obterPorUnidadeEProcesso(idProcesso, idUnidade));
  115 +
  116 + ResponseBodyWrapper responseBody = new ResponseBodyWrapper(resultResponseVH, Views.EnviarProcessoView.class);
  117 +
  118 + return responseBody;
  119 + }
  120 +
  121 + @Override
  122 + public Class<Views.EnviarProcessoView> getEditView() {
  123 +
  124 + return Views.EnviarProcessoView.class;
  125 + }
92 126 }
... ...
cit-ecm-web/src/main/java/br/com/centralit/controller/UsuarioECMController.java
... ... @@ -9,8 +9,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
9 9 import org.springframework.web.bind.annotation.RequestMethod;
10 10 import org.springframework.web.bind.annotation.ResponseBody;
11 11  
12   -import br.com.centralit.api.service.EstruturaOrganizacionalECMService;
13 12 import br.com.centralit.api.service.OrganizacaoService;
  13 +import br.com.centralit.api.service.UnidadeService;
14 14 import br.com.centralit.framework.json.ResponseBodyWrapper;
15 15 import br.com.centralit.framework.json.Views;
16 16 import br.com.centralit.framework.model.Organizacao;
... ... @@ -55,10 +55,10 @@ public class UsuarioECMController {
55 55  
56 56 @Autowired
57 57 private OrganizacaoService organizacaoService;
58   -
  58 +
59 59 /** Atributo estruturaOrganizacional. */
60 60 @Autowired
61   - private EstruturaOrganizacionalECMService estruturaOrganizacionalECMService;
  61 + private UnidadeService unidadeService;
62 62  
63 63 /**
64 64 * <p>
... ... @@ -87,29 +87,30 @@ public class UsuarioECMController {
87 87  
88 88 return responseBody;
89 89 }
90   -
  90 +
91 91 @RequestMapping(value = "/atualizarScopoUnidadeUsuario", method = RequestMethod.POST)
92 92 @ResponseBody
93 93 public ResponseBodyWrapper atualizarScopoUnidadeUsuario(@RequestBody Unidade unidade) {
94 94  
95   - ( (Usuario) SecurityContextHolder.getContext().getAuthentication().getPrincipal() ).setUnidade(this.estruturaOrganizacionalECMService.getReference(unidade.getId()));
  95 + ( (Usuario) SecurityContextHolder.getContext().getAuthentication().getPrincipal() ).setUnidade(this.unidadeService.find(unidade.getId()));
96 96  
97 97 ResponseBodyWrapper responseBody = new ResponseBodyWrapper(Boolean.TRUE, Views.GenericView.class);
98 98  
99 99 return responseBody;
100 100 }
101   -
  101 +
102 102 /**
103 103 * Método responsável por reativar a sessao do modulo de almoxarifado
104   - *
  104 + *
105 105 * @author iago.almeida
106   - *
  106 + *
107 107 * @param Modulo
108 108 */
109 109 @RequestMapping(value = "/keepSessionAlive", method = RequestMethod.POST)
110 110 @ResponseBody
111 111 public void keepSessionAlive() {
112   - Logger.getLogger(UsuarioECMController.class).info("Restaurando sess\u00e3o do modulo ECM.");
  112 +
  113 + Logger.getLogger(UsuarioECMController.class).info("Restaurando sess\u00e3o do modulo ECM.");
113 114 }
114 115  
115 116 }
... ...
cit-ecm-web/src/main/java/br/com/centralit/listener/StartupListenerEcm.java
... ... @@ -140,6 +140,7 @@ public class StartupListenerEcm extends UtilStartup implements ApplicationListen
140 140 list.add(new AcaoHistoricoAlteracaoProcesso("JUSTIFICATIVA_ACAO_PROCESSO", "Justificativa", "<<acao>> , protocolo <<protocolo>>. Justificativa: <<justificativa>>."));
141 141 list.add(new AcaoHistoricoAlteracaoProcesso("ACAO_PROCESSO", "Ação", "<<acao>> , protocolo <<protocolo>>."));
142 142 list.add(new AcaoHistoricoAlteracaoProcesso("VALIDAR_PROCESSO", "Validar Processo", "O processo <<protocolo>> foi validado e seus documentos."));
  143 + list.add(new AcaoHistoricoAlteracaoProcesso("ATRIBUICAO_PROCESSO", "Atribuição de processo", "O processo <<protocolo>> foi atribuido para <<usuario>>."));
143 144  
144 145 try {
145 146 this.acaoHistoricoAlteracaoProcessoService.saveListIfNotExist(list);
... ... @@ -245,7 +246,7 @@ public class StartupListenerEcm extends UtilStartup implements ApplicationListen
245 246 internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.VER_MAIS", "Ver mais", dominio, modulo));
246 247 internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.ACAODEPROCESSO", " Ações de Processo", dominio, modulo));
247 248 internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.ASSINARDOCUMENTO", " Assinar Documento", dominio, modulo));
248   - internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.ATRIBUIDO", " Atribuido a", dominio, modulo));
  249 + internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.ATRIBUIDO", " Atribuído a", dominio, modulo));
249 250 internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.CANCELARDOCUMENTO", " Cancelar Documento", dominio, modulo));
250 251 internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.CONFIGURACAO_TEMPORALIDADE", "Configuração temporalidade", dominio, modulo));
251 252 internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.DADOS_HIPOTESELEGAL", "Dados da tabela de hipótese legais", dominio, modulo));
... ... @@ -379,6 +380,16 @@ public class StartupListenerEcm extends UtilStartup implements ApplicationListen
379 380 internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.APROVAR", "Aprovar", dominio, modulo));
380 381 internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.AVANCAR_FLUXO", "Avançar no Fluxo", dominio, modulo));
381 382 internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.JUSTIFICATIVA_CANCELAMENTO", "Justificativa Cancelado", dominio, modulo));
  383 + internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.ATRIBUIR_PROCESSO", "Atribuir processo", dominio, modulo));
  384 + internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.CAPTURAR", "Capturar", dominio, modulo));
  385 + internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.HISTORICO_DE_ATRIBUICAO", "Histórico de atribuição", dominio, modulo));
  386 + internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.DATA_ATRIBUICAO", "Data da atribuição", dominio, modulo));
  387 + internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.ATRIBUIDO_NOME", "Atribuído", dominio, modulo));
  388 + internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.ATRIBUIDO_POR", "Atribuído por", dominio, modulo));
  389 + internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.REMOVIDO_POR", "Removido por", dominio, modulo));
  390 + internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.DATA_REMOCAO", "Data remoção", dominio, modulo));
  391 +
  392 +
382 393 }
383 394  
384 395 /**
... ... @@ -435,6 +446,7 @@ public class StartupListenerEcm extends UtilStartup implements ApplicationListen
435 446 internacionalizacaoList.add(new Internacionalizacao("ECM.MSG.CONFIRMA_CONCLUIR_PROCESSO", "Deseja concluir o processo?", dominio, modulo));
436 447 internacionalizacaoList.add(new Internacionalizacao("ECM.MSG.ITEM_EXCLUIDO", "Item(ns) excluído(s) com sucesso!", dominio, modulo));
437 448 internacionalizacaoList.add(new Internacionalizacao("ECM.MSG_HISTORICO_ECM.REMOCAO_DOCUMENTO", "Remoção de documento no processo", dominio, modulo));
  449 + internacionalizacaoList.add(new Internacionalizacao("ECM.MSG_HISTORICO_ECM.ATRIBUICAO", "Atribuição de processo", dominio, modulo));
438 450 internacionalizacaoList.add(new Internacionalizacao("ECM.MSG.EDICAO_HIPOTESE_LEGAL", "Não é possível editar pois o mesmo encontra-se em uso por outro cadastro no sistema!", dominio, modulo));
439 451 internacionalizacaoList.add(new Internacionalizacao("ECM.MSG.NOME_TIPO_DOCUMENTO_EM_USO", "Tipo de documento já existe!", dominio, modulo));
440 452 internacionalizacaoList.add(new Internacionalizacao("ECM.MSG.NOME_TIPO_PROCESSO_EM_USO", "Tipo de processo já existe!", dominio, modulo));
... ... @@ -474,6 +486,10 @@ public class StartupListenerEcm extends UtilStartup implements ApplicationListen
474 486 internacionalizacaoList.add(new Internacionalizacao("ECM.MSG.PROCESSO_ENVIADO_SUCESSO", "Processo enviado com sucesso!", dominio, modulo));
475 487 internacionalizacaoList.add(new Internacionalizacao("ECM.MSG_HISTORICO_ECM.VALIDAR_PROCESSO", "Validar Processo", dominio, modulo));
476 488 internacionalizacaoList.add(new Internacionalizacao("ECM.MSG.EXISTE_PROCESSO_ABERTO", "Existe um processo aberto, deseja fechá-lo?", dominio, modulo));
  489 + internacionalizacaoList.add(new Internacionalizacao("ECM.MSG.ATRIBUICAO_PRIMEIRO_ACESSO", "Esté processo foi atribuido para você", dominio, modulo));
  490 + internacionalizacaoList.add(new Internacionalizacao("ECM.MSG.DESEJA_CAPTURAR", "Desejá capturar o processo?", dominio, modulo));
  491 + internacionalizacaoList.add(new Internacionalizacao("ECM.MSG.CAPTURADO_SUCESSO", "Processo capturado com sucesso!", dominio, modulo));
  492 +
477 493  
478 494  
479 495 }
... ...
cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/AtribuirProcessoController.js 0 → 100644
... ... @@ -0,0 +1,79 @@
  1 +citApp.controller('AtribuirProcessoController', ['$scope', 'ProcessoRepository', '$translate', '$timeout','$filter', 'ConfiguracaoUsuarioUnidadeRepository', 'UnidadeProcessoRepository', 'HistoricoAtribuicaoProcessoRepository', 'HistoricoAlteracaoProcessoRepository', function ProcessoController($scope, ProcessoRepository, $translate, $timeout, $filter, ConfiguracaoUsuarioUnidadeRepository, UnidadeProcessoRepository, HistoricoAtribuicaoProcessoRepository, HistoricoAlteracaoProcessoRepository) {
  2 +
  3 + //Iniciar atribuição
  4 + $scope.iniciar = function(){
  5 + $scope.usuarioSelecionado = null;
  6 + this.atribuirProcessoForm = $scope.atribuirProcessoController.atribuirProcessoForm;
  7 + $scope.findHistorico();
  8 +
  9 + $timeout(function(){
  10 + $scope.atribuirProcessoForm.$submitted = false;
  11 + $scope.atribuirProcessoForm.$setPristine();
  12 + });
  13 +
  14 + };
  15 +
  16 + $scope.findAutoCompleteUsuario = function(value){
  17 + return ConfiguracaoUsuarioUnidadeRepository.findPorUsernameUsuarioAndUnidade(value, $scope.usuarioLogado.unidade.id).then(function(result) {
  18 + var usuarios = [];
  19 + angular.forEach(result, function (item) {
  20 + usuarios.push({originalElement :item.usuario, username : item.usuario.username, id : item.usuario.id});
  21 + });
  22 + var filtroUsuarioLogado = $filter('idNotObject')(usuarios, $scope.usuarioLogado);
  23 +
  24 + return $filter('idNotObject')(filtroUsuarioLogado, $scope.unidadeProcesso.usuarioResponsavel);
  25 + });
  26 + };
  27 +
  28 +
  29 + //Listar o historico de credenciais
  30 + $scope.findHistorico = function(){
  31 +
  32 + $scope.historicos = [];
  33 +
  34 + HistoricoAtribuicaoProcessoRepository.findByIdJoin("unidadeProcesso.id", $scope.unidadeProcesso.id).then(function(result) {
  35 + result.forEach(function (historico) {
  36 +
  37 + $scope.historicos.push(historico.originalElement);
  38 + });
  39 + });
  40 + };
  41 +
  42 +
  43 + $scope.saveOrUpdate = function(){
  44 +
  45 + $scope.atribuirProcessoForm.$submitted = true;
  46 +
  47 + //verifica se o formulario está valido para salvar
  48 + if($scope.atribuirProcessoForm.$valid){
  49 +
  50 + $scope.setLoadingSalva(true);
  51 +
  52 + $scope.unidadeProcesso.usuarioResponsavel = $scope.usuarioSelecionado;
  53 +
  54 + UnidadeProcessoRepository.update($scope.unidadeProcesso).then(function(result) {
  55 + $scope.unidadeProcesso = result.originalElement;
  56 + $scope.showAlert("success", $translate.instant('MSG.REGISTRO_SALVO'));
  57 + $scope.findHistorico();
  58 + var historicoAlteracaoProcesso = {
  59 + documentoGed : $scope.documentoGed,
  60 + descricaoAcao : $translate.instant('ECM.MSG_HISTORICO_ECM.ATRIBUICAO'),
  61 + processo : $scope.processo,
  62 + autor : $scope.usuarioLogado,
  63 + acaoAlteracao : "ATRIBUICAO_PROCESSO"
  64 + };
  65 + HistoricoAlteracaoProcessoRepository.saveParams(historicoAlteracaoProcesso).then(function(result){
  66 +
  67 + $scope.setLoading(false);
  68 + });
  69 +
  70 +
  71 + });
  72 + }else{
  73 + //Mensagem de erro de campos obrigatorios não preenchidos
  74 + $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false);
  75 + }
  76 + };
  77 +
  78 +
  79 +}]);
0 80 \ No newline at end of file
... ...
cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/GerenciarProcessoController.js
... ... @@ -29,6 +29,7 @@ citApp.controller(&#39;GerenciarProcessoController&#39;, [ &#39;$scope&#39;, &#39;$translate&#39;, &#39;$tim
29 29 $scope.tratimitado();
30 30 $scope.isGerenciarCredencialProcesso = false;
31 31 $scope.isClassificarProcessoDocumento = false;
  32 + $scope.isAtribuirProcesso = false;
32 33 };
33 34  
34 35 // CRIAR RELACIONAMENTO DE PROCESSO
... ... @@ -107,6 +108,37 @@ citApp.controller(&#39;GerenciarProcessoController&#39;, [ &#39;$scope&#39;, &#39;$translate&#39;, &#39;$tim
107 108 angular.element( "#credencialProcessoEdit" ).scope().iniciarCredencial( $scope.processo);
108 109 } );
109 110 };
  111 +
  112 + //Atribuir processo
  113 + $scope.atribuirProcesso = function () {
  114 +
  115 + $scope.fecharPagina();
  116 + $scope.isAtribuirProcesso = true;
  117 +
  118 + $timeout( function () {
  119 + angular.element( "#atribuirProcessoEdit" ).scope().iniciar();
  120 + } );
  121 + };
  122 +
  123 + $scope.exibirAlertaCapturar = function(){
  124 +
  125 + $scope.$openModalConfirm({message : $translate.instant( 'ECM.MSG.DESEJA_CAPTURAR' ), callback : $scope.capturar} );
  126 + };
  127 +
  128 + //Atribui o processo para o usuario logado
  129 + $scope.capturar = function(){
  130 +
  131 + $scope.unidadeProcesso.usuarioResponsavel = $scope.usuarioLogado;
  132 +
  133 + UnidadeProcessoRepository.update($scope.unidadeProcesso).then(function(result) {
  134 + $scope.unidadeProcesso = result.originalElement;
  135 + $scope.showAlert("success", $translate.instant('ECM.MSG.CAPTURADO_SUCESSO'));
  136 + $scope.setLoading(false);
  137 + $scope.$modalConfirmInstance.dismiss( 'cancel' );
  138 +
  139 + });
  140 +
  141 + };
110 142  
111 143 // EXECUÇÃO PROCESSO
112 144 $scope.executarProcesso = function ( action ) {
... ... @@ -567,10 +599,36 @@ citApp.controller(&#39;GerenciarProcessoController&#39;, [ &#39;$scope&#39;, &#39;$translate&#39;, &#39;$tim
567 599 // CARREGA O PROCESSO VINCULADO A TAREFA
568 600 $timeout( function () {
569 601  
570   - ProcessoRepository.get( $scope.idProcesso ).then( function ( result ) {
  602 + ProcessoRepository.getProcessoGerenciamento($scope.idProcesso).then( function ( result ) {
571 603 $scope.processo = result.originalElement;
572 604 $scope.apresentarCabecalho = true;
573 605 $scope.processo.idTask = $scope.task.id;
  606 +
  607 + ProcessoRepository.verificarAtribuicaoProcessoPrimeiroAcesso($scope.idProcesso).then( function ( result ) {
  608 +
  609 + if(result){
  610 +
  611 + $scope.showAlert('warning', $translate.instant('ECM.MSG.ATRIBUICAO_PRIMEIRO_ACESSO'));
  612 + }
  613 + if($scope.usuarioLogado.unidade){
  614 +
  615 + UnidadeProcessoRepository.findByIdProcesso($scope.idProcesso).then(function(result){
  616 +
  617 + $scope.processoUnidades = result;
  618 +
  619 + angular.forEach(result, function (item) {
  620 +
  621 + if($scope.usuarioLogado.unidade && item.unidade.id === $scope.usuarioLogado.unidade.id){
  622 +
  623 + $scope.unidadeProcesso = item.originalElement;
  624 + }
  625 +
  626 + });
  627 +
  628 + });
  629 + }
  630 +
  631 + });
574 632  
575 633 if ( $scope.$parent != undefined ) {
576 634 $scope.$parent.idProcesso = $scope.idProcesso;
... ...
cit-ecm-web/src/main/webapp/assets/js/angular/custom/repository/ConfiguracaoUsuarioUnidadeRepository.js
... ... @@ -16,6 +16,10 @@ citApp.factory(&#39;ConfiguracaoUsuarioUnidadeRepository&#39;, [&#39;RestangularEcm&#39;, &#39;Abstr
16 16 this.findPorEstruturaOrganizacionalECM = function(idUnidade) {
17 17 return restangularEcm.one(this.route).getList("findPorEstruturaOrganizacionalECM", {"idUnidade": idUnidade}).then();
18 18 };
  19 +
  20 + this.findPorUsernameUsuarioAndUnidade = function(username, idUnidade){
  21 + return restangularEcm.one(this.route + "/findPorUsernameUsuarioAndUnidade").get({"username": username, "idUnidade" : idUnidade}).then();
  22 + };
19 23 }
20 24  
21 25 AbstractRepository.extend(ConfiguracaoUsuarioUnidadeRepository);
... ...
cit-ecm-web/src/main/webapp/assets/js/angular/custom/repository/HistoricoAtribuicaoProcessoRepository.js 0 → 100644
... ... @@ -0,0 +1,13 @@
  1 +'use strict';
  2 +
  3 +citApp.factory('HistoricoAtribuicaoProcessoRepository', ['RestangularEcm', 'AbstractRepository', function (restangularEcm, AbstractRepository) {
  4 +
  5 + function HistoricoAtribuicaoProcessoRepository() {
  6 + AbstractRepository.call(this, restangularEcm, 'rest/historicoAtribuicaoProcesso');
  7 +
  8 + }
  9 +
  10 + AbstractRepository.extend(HistoricoAtribuicaoProcessoRepository);
  11 +
  12 + return new HistoricoAtribuicaoProcessoRepository();
  13 +}]);
... ...
cit-ecm-web/src/main/webapp/assets/js/angular/custom/repository/ProcessoRepository.js
... ... @@ -26,6 +26,17 @@ citApp.factory(&#39;ProcessoRepository&#39;, [&#39;RestangularEcm&#39;, &#39;AbstractRepository&#39;, fu
26 26 return restangularEcm.one(this.route + '/getProcessoByProtocolo').get({"nup": nup}).then();
27 27  
28 28 };
  29 +
  30 + this.getProcessoGerenciamento = function (idProcesso){
  31 + return restangularEcm.one(this.route + '/getProcessoGerenciamento').get({"idProcesso": idProcesso});
  32 +
  33 + };
  34 +
  35 + this.verificarAtribuicaoProcessoPrimeiroAcesso = function (idProcesso){
  36 + return restangularEcm.one(this.route + '/verificarAtribuicaoProcessoPrimeiroAcesso').get({"idProcesso": idProcesso});
  37 +
  38 + };
  39 +
29 40 }
30 41  
31 42 AbstractRepository.extend(ProcessoRepository);
... ...
cit-ecm-web/src/main/webapp/assets/js/angular/custom/repository/UnidadeProcessoRepository.js
... ... @@ -12,6 +12,12 @@ citApp.factory(&#39;UnidadeProcessoRepository&#39;, [&#39;RestangularEcm&#39;, &#39;AbstractReposito
12 12 this.findByIdProcesso = function(idProcesso) {
13 13 return restangularEcm.one(this.route).getList("findByIdProcesso", {"idProcesso": idProcesso}).then();
14 14 };
  15 +
  16 + this.obterPorUnidadeEProcesso = function(idUnidade, idProcesso) {
  17 + return restangularEcm.one(this.route + "/obterPorUnidadeEProcesso").get({"idProcesso" : idProcesso, "idUnidade" : idUnidade});
  18 +
  19 + };
  20 +
15 21 }
16 22  
17 23 AbstractRepository.extend(UnidadeProcessoRepository);
... ...
cit-ecm-web/src/main/webapp/html/atribuirProcesso/atribuir.html 0 → 100644
... ... @@ -0,0 +1,86 @@
  1 +<div ng-controller="AtribuirProcessoController as atribuirProcessoController">
  2 + <form name="atribuirProcessoController.atribuirProcessoForm" novalidate autocomplete="off">
  3 +
  4 + <div id="widget-atribuirProcesso" class="widget-box margin-bottom">
  5 + <div class="widget-header">
  6 + <h2 class="widget-title">
  7 + <translate>ECM.LABEL.ATRIBUIR_PROCESSO</translate>
  8 + </h2>
  9 +
  10 + <div class="widget-toolbar">
  11 + <a href="#void" ng-click="closeWidget('widget-atribuirProcesso')"> <i class="fa fa-close"></i>
  12 + </a>
  13 + </div>
  14 + </div>
  15 + <div class="widget-main clearfix">
  16 + <div id="atribuirProcessoEdit" class="page-content clearfix">
  17 +
  18 + <p>
  19 + <small>( <span class="red">*</span> ) <translate>LABEL.CAMPOS_OBRIGATORIOS</translate></small>
  20 + </p>
  21 +
  22 + <div class="row">
  23 + <div class="col-md-8">
  24 + <auto-complete form="atribuirProcessoController.atribuirProcessoForm" ng-id="usuario" ng-label="LABEL.USUARIO" ng-obrigatorio="true" ng-model="usuarioSelecionado"
  25 + ng-find="findAutoCompleteUsuario(value)" ng-item="item.username" ng-set-result="setUsuario(item)" />
  26 + </div>
  27 + </div>
  28 + </div>
  29 +
  30 + <fieldset>
  31 +
  32 + <legend>
  33 + <translate>ECM.LABEL.HISTORICO_DE_ATRIBUICAO</translate>
  34 + </legend>
  35 +
  36 + <div class="col-md-12">
  37 + <div class="row">
  38 + <div class="col-sm-12">
  39 + <div class="panel panel-default">
  40 + <div class="panel-heading clearfix"></div>
  41 + <table class="table table-striped table-bordered table-hover">
  42 + <thead>
  43 + <tr>
  44 + <th class="text-center"><translate>ECM.LABEL.ATRIBUIDO_NOME</translate></th>
  45 + <th class="text-center"><translate>ECM.LABEL.ATRIBUIDO_POR</translate></th>
  46 + <th class="text-center"><translate>ECM.LABEL.DATA_ATRIBUICAO</translate></th>
  47 + <th class="text-center"><translate>ECM.LABEL.REMOVIDO_POR</translate></th>
  48 + <th class="text-center"><translate>ECM.LABEL.DATA_REMOCAO</translate></th>
  49 + </tr>
  50 + </thead>
  51 + <tbody>
  52 + <tr ng-repeat="historico in historicos | orderBy:'-id'">
  53 +
  54 + <td class="text-center">{{historico.nomeUsuarioAtribuido}}</td>
  55 + <td class="text-center">{{historico.atribuidoPor}}</td>
  56 + <td class="text-center">{{historico.dataAtribuicao | date:'dd-MM-yyyy HH:mm'}}</td>
  57 + <td class="text-center">{{historico.nomeUsuarioRemocao}}</td>
  58 + <td class="text-center">{{historico.dataRemocao | date:'dd-MM-yyyy HH:mm'}}</td>
  59 +
  60 + </tr>
  61 + <tr ng-hide="historicos.length > 0">
  62 + <td colspan="5" class="text-center"><translate>LABEL.TABELA_VAZIA</translate></td>
  63 + </tr>
  64 + </tbody>
  65 + </table>
  66 + </div>
  67 + </div>
  68 + </div>
  69 + </div>
  70 + </fieldset>
  71 +
  72 + <div class="row">
  73 + <div class="col-md-12">
  74 + <button class="btn btn-sm btn-primary" ng-click="saveOrUpdate()" type="button">
  75 + <translate>LABEL.SALVAR</translate>
  76 + </button>
  77 +
  78 + <button class="btn btn-sm btn-primary" ng-click="closeWidget('widget-atribuirProcesso')" type="button">
  79 + <translate>LABEL.CANCELAR</translate>
  80 + </button>
  81 + </div>
  82 + </div>
  83 + </div>
  84 + </div>
  85 + </form>
  86 +</div>
... ...
cit-ecm-web/src/main/webapp/html/gerenciarProcesso/gerenciarProcessoList.html
... ... @@ -40,7 +40,6 @@
40 40  
41 41 <div class="row">
42 42 <div class="col-md-4">
43   -
44 43 <div class="widget-box documentos margin-bottom">
45 44 <div class="widget-header">
46 45 <h2 class="widget-title">
... ... @@ -58,7 +57,6 @@
58 57 </div>
59 58 </div>
60 59 </div>
61   -
62 60 </div>
63 61  
64 62 <div id="content-container" class="col-md-8">
... ...
cit-ecm-web/src/main/webapp/html/gerenciarProcesso/includeAcaoProcesso.html
... ... @@ -21,6 +21,8 @@
21 21  
22 22 <div ng-include src="'/cit-ecm-web/html/classificarProcessoDocumento/classificarProcessoDocumento.html'" ng-show="isClassificarProcessoDocumento" />
23 23  
  24 +<div ng-include src="'/cit-ecm-web/html/atribuirProcesso/atribuir.html'" ng-show="isAtribuirProcesso" />
  25 +
24 26  
25 27  
26 28 <div id="widget-processo" ng-show="isProcessoEdit" class="widget-box margin-bottom">
... ...
cit-ecm-web/src/main/webapp/html/gerenciarProcesso/includeCabecalhoGerenciarProcesso.jsp
... ... @@ -44,6 +44,11 @@
44 44 <translate>ECM.LABEL.INCLUIRDOCUMENTO</translate>
45 45 </button>
46 46  
  47 +<button type="button" ng-if="unidadeProcesso.usuarioResponsavel.id != usuarioLogado.id" class="btn btn-clear" ng-click="exibirAlertaCapturar()">
  48 + <i class="fa fa-thumb-tack"></i>
  49 + <translate>ECM.LABEL.CAPTURAR</translate>
  50 +</button>
  51 +
47 52 <span class="divider-vertical"></span>
48 53  
49 54 <div class="btn-group dropdown" role="group" dropdown>
... ... @@ -65,7 +70,10 @@
65 70 <sec:authorize access="permiteRenunciar()">
66 71 <li><a href="javascript: return false;" ng-click='exibirDialogConfirmacaoRemoverCredencial()'><i class="fa fa-user-times">&nbsp </i> <translate>ECM.LABEL.RENUNCIAR_CREDENCIAL</translate> </a></li>
67 72 </sec:authorize>
68   - <!-- <li><a href="#void" ng-click='classificarDocumentoProceso();'><i class="fa fa fa-eye">&nbsp </i> <translate>ECM.LABEL.VALIDAR_NIVEL_ACESSO</translate> </a></li> -->
  73 +
  74 + <li><a href="#void" ng-click='classificarDocumentoProceso();'><i class="fa fa fa-eye">&nbsp </i> <translate>ECM.LABEL.VALIDAR_NIVEL_ACESSO</translate> </a></li>
  75 +
  76 + <li><a href="javascript: return false;" ng-click='atribuirProcesso()' ng-if="unidadeProcesso.id"><i class="fa fa-male">&nbsp </i> <translate>ECM.LABEL.ATRIBUIR_PROCESSO</translate> </a></li>
69 77  
70 78 </ul>
71 79 </div>
... ...
cit-ecm-web/src/main/webapp/html/gerenciarProcesso/includeInformacaoProcesso.html
... ... @@ -44,16 +44,6 @@
44 44 </div>
45 45 </div>
46 46  
47   - <div class="profile-info-row">
48   - <div class="profile-info-name">
49   - <translate>ECM.LABEL.ATRIBUIDO</translate>
50   - </div>
51   -
52   - <div class="profile-info-value">
53   - <span> {{task.owner.id}}</span>
54   - </div>
55   -
56   - </div>
57 47 </div>
58 48 </div>
59 49  
... ... @@ -106,9 +96,9 @@
106 96 <translate>ECM.LABEL.NIVELACESSO</translate>
107 97 </div>
108 98 <div class="profile-info-value">
109   - <span class="label label-success" ng-show="processo.nivelAcesso.nivelAcesso.nome =='PUBLICO'">{{processo.nivelAcesso.nivelAcesso.descricao}}</span>
110   - <span class="label label-warning" ng-show="processo.nivelAcesso.nivelAcesso.nome =='RESTRITO'">{{processo.nivelAcesso.nivelAcesso.descricao}}</span>
111   - <span class="label label-danger" ng-show="processo.nivelAcesso.nivelAcesso.nome =='SIGILOSO'">{{processo.sigilo.tipoSigilo.descricao}}</span>
  99 + <span class="label label-success" ng-show="processo.nivelAcesso.nivelAcesso.nome =='PUBLICO'">{{processo.nivelAcesso.nivelAcesso.descricao}}</span> <span class="label label-warning"
  100 + ng-show="processo.nivelAcesso.nivelAcesso.nome =='RESTRITO'">{{processo.nivelAcesso.nivelAcesso.descricao}}</span> <span class="label label-danger"
  101 + ng-show="processo.nivelAcesso.nivelAcesso.nome =='SIGILOSO'">{{processo.sigilo.tipoSigilo.descricao}}</span>
112 102  
113 103 </div>
114 104 </div>
... ... @@ -142,10 +132,26 @@
142 132 </div>
143 133  
144 134 <div class="profile-info-value">
145   - <span class="label" style="background-color: {{task.processInstance.flowStatus.backgroundColor}}">{{task.processInstance.flowStatus.name}}</span>
  135 + <span class="label" style="background-color: {{task.processInstance.flowStatus.backgroundColor">{{task.processInstance.flowStatus.name}}</span>
  136 + </div>
  137 + </div>
  138 +
  139 + <div class="profile-info-row">
  140 + <div class="profile-info-name">
  141 + <translate>LABEL.UNIDADES</translate>
  142 + </div>
  143 + <div class="profile-info-value">
  144 + <br>
  145 + <div class="row">
  146 + <ul style="list-style-type: disc; margin-bottom: 3px" ng-repeat="processoUnidade in processoUnidades">
  147 + <li>{{processoUnidade.unidade.nome}} <span ng-if="processoUnidade.usuarioResponsavel">- {{processoUnidade.usuarioResponsavel.username}}</span></li>
  148 + </ul>
  149 +
  150 + </div>
146 151 </div>
147 152 </div>
148 153  
149   - </div>
150   -</div>
151 154  
  155 +
  156 + </div>
  157 +</div>
152 158 \ No newline at end of file
... ...