UsuariService.java 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. package es.uv.saic.service;
  2. import java.math.BigInteger;
  3. import java.util.ArrayList;
  4. import java.util.List;
  5. import java.util.stream.Collectors;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.stereotype.Service;
  8. import es.uv.saic.shared.domain.Usuari;
  9. import es.uv.saic.shared.domain.UsuariRepository;
  10. import es.uv.saic.shared.domain.UsuarisRol;
  11. import es.uv.saic.shared.dto.TascaAsignadaDTO;
  12. @Service
  13. public class UsuariService {
  14. @Autowired
  15. private UsuariRepository usuariRepository;
  16. @Autowired
  17. private UsuarisRolService usuarisRolService;
  18. public List<Usuari> findAll() {
  19. return this.usuariRepository.findAll();
  20. }
  21. public Usuari findByUsername(String usuari) {
  22. Usuari u = this.usuariRepository.findByUsername(usuari);
  23. return u;
  24. }
  25. public boolean hasActiveRol(Usuari usuari) {
  26. return this.usuarisRolService.hasActiveRol(usuari);
  27. }
  28. public List<TascaAsignadaDTO> getActiveInstanciaTasques(Usuari usuari){
  29. return this.usuariRepository.findActiveInstanciaTasques(usuari.getUsuari());
  30. }
  31. public List<BigInteger> getActiveInstancies(Usuari usuari){
  32. if(usuari.isGranted() || usuarisRolService.findActiveRols(usuari).stream().anyMatch(r -> "adeit".equals(r.getRol().getNomRol()))) {
  33. return this.usuariRepository.findActiveInstanciesGranted(usuari.getUsuari());
  34. }
  35. else{
  36. return this.usuariRepository.findActiveInstancies(usuari.getUsuari());
  37. }
  38. }
  39. public List<BigInteger> getSupervisableProcessos(List<UsuarisRol> usuarisRols){
  40. List<BigInteger> a = new ArrayList<BigInteger>();
  41. for(UsuarisRol urol : usuarisRols) {
  42. if(urol.getRol().getNomRol().equals("c_resp")) { // Responsable de centro
  43. a.addAll(this.usuariRepository.findSupervisableProcessosResp(urol.getOrgan().getId().getLugar()));
  44. }
  45. else if(urol.getRol().getNomRol().equals("c_supe")) { // Supervisor de centro
  46. a.addAll(this.usuariRepository.findSupervisableProcessosResp(urol.getOrgan().getId().getLugar()));
  47. }
  48. else if(urol.getRol().getNomRol().equals("e_supe")) { // Supervisor externo
  49. a.addAll(this.usuariRepository.findSupervisableProcessosResp(urol.getOrgan().getId().getLugar()));
  50. }
  51. else if(this.usuarisRolService.hasAssociatedProcs(urol.getRol().getNomRol())) { // Roles especiales (asociados a proceso)
  52. a.addAll(this.usuariRepository.findSupervisableProcessosSupervisor(this.usuarisRolService.findAssociatedProcs(urol.getRol().getNomRol())));
  53. }
  54. else { // Cualquier otro rol
  55. a.addAll(this.usuariRepository.findSupervisableProcessos(urol.getOrgan().getId().getLugar(), urol.getOrgan().getId().getTlugar()));
  56. }
  57. }
  58. return a.stream()
  59. .distinct()
  60. .collect(Collectors.toList());
  61. }
  62. public List<Integer> getSupervisableCentres(Usuari usuari){
  63. List<Integer> a = new ArrayList<Integer>();
  64. for(UsuarisRol urol : usuarisRolService.findActiveRols(usuari)) {
  65. if(this.usuarisRolService.hasAssociatedProcs(urol.getRol().getNomRol())) { // special roles
  66. a.addAll(this.usuariRepository.findSupervisableCentresSupervisor(this.usuarisRolService.findAssociatedProcs(urol.getRol().getNomRol())));
  67. }
  68. else {
  69. a.addAll(this.usuariRepository.findSupervisableCentres(usuari.getUsuari()));
  70. }
  71. }
  72. return a.stream()
  73. .distinct()
  74. .collect(Collectors.toList());
  75. }
  76. public List<Usuari> getInstanceAsignedUsers(BigInteger idInstancia){
  77. return this.usuariRepository.getInstanceAsignedUsers(idInstancia);
  78. }
  79. public List<Usuari> findByRolCentre(Integer idRol, List<Integer> centres){
  80. return this.usuariRepository.findByRolCentre(idRol, centres);
  81. }
  82. public void save(Usuari u) {
  83. this.usuariRepository.save(u);
  84. this.usuariRepository.flush();
  85. }
  86. public List<String> getPermisosRoles(List<Integer> idRols) {
  87. return this.usuariRepository.getPermisosRoles(idRols);
  88. }
  89. }