diff --git a/pom.xml b/pom.xml index 6407086..b5527c7 100644 --- a/pom.xml +++ b/pom.xml @@ -47,6 +47,12 @@ spring-boot-starter-test test + + + org.apache.commons + commons-lang3 + 3.12.0 + diff --git a/src/main/java/br/com/ae3tecnologia/ms/tangerino/controller/PtoAjusteController.java b/src/main/java/br/com/ae3tecnologia/ms/tangerino/controller/PtoAjusteController.java index 67efcf4..92fbda0 100644 --- a/src/main/java/br/com/ae3tecnologia/ms/tangerino/controller/PtoAjusteController.java +++ b/src/main/java/br/com/ae3tecnologia/ms/tangerino/controller/PtoAjusteController.java @@ -1,10 +1,10 @@ package br.com.ae3tecnologia.ms.tangerino.controller; -import br.com.ae3tecnologia.ms.tangerino.dto.ResultDTO; +import br.com.ae3tecnologia.ms.tangerino.dto.ResultAdjustDTO; +import br.com.ae3tecnologia.ms.tangerino.model.PtoAjusteModel; import br.com.ae3tecnologia.ms.tangerino.model.PtoEquipamentoModel; -import br.com.ae3tecnologia.ms.tangerino.model.PtoEventoModel; +import br.com.ae3tecnologia.ms.tangerino.service.PtoAjusteService; import br.com.ae3tecnologia.ms.tangerino.service.PtoEquipamentoService; -import br.com.ae3tecnologia.ms.tangerino.service.PtoEventoService; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; @@ -14,10 +14,7 @@ import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpMethod; import org.springframework.http.MediaType; -import org.springframework.web.bind.annotation.CrossOrigin; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.stereotype.Controller; import org.springframework.web.client.RestTemplate; import java.util.ArrayList; @@ -26,12 +23,9 @@ import java.util.HashMap; import java.util.List; import java.util.concurrent.atomic.AtomicReference; -import static br.com.ae3tecnologia.ms.tangerino.utils.Constants.API_ROUTE; import static br.com.ae3tecnologia.ms.tangerino.utils.Constants.TANGERINO_API_PUNCH; -@RestController -@CrossOrigin(maxAge = 3600, origins = "*") -@RequestMapping(API_ROUTE + "/${app.version}/run") +@Controller public class PtoAjusteController { @Value("${app.token}") @@ -39,59 +33,49 @@ public class PtoAjusteController { @Value("${app.url.apis}") private String urlApis; - private final PtoEventoService eventoService; + private final PtoAjusteService ajusteService; private final PtoEquipamentoService equipamentoService; @Autowired - private PtoAjusteController(PtoEquipamentoService equipamentoService, PtoEventoService eventoService) { - this.eventoService = eventoService; + public PtoAjusteController(PtoEquipamentoService equipamentoService, PtoAjusteService ajusteService) { + this.ajusteService = ajusteService; this.equipamentoService = equipamentoService; } - @GetMapping( - produces = MediaType.APPLICATION_JSON_VALUE - ) - public void extrairPontos() { - - List equipamentoList = obterRelogios(false); - equipamentoList.forEach(eq -> { - // percorre cada relogio, passando o ultimo nsr do relogio ou a ulima data/hora, tratando para nao duplicar os nsr - AtomicReference lastNsr = new AtomicReference<>(0); - HashMap map = new HashMap<>(); - map.put("serialNumber", eq.getCodigo()); - map.put("nsr", eq.getUltimoNsr()); //precisa pegar o ultimo NSR do relogio para passar como parametro - - try { - // requisita da API do tangerino os pontos disponiveis, salvando eles na tabela ptoEvento - List ptoEventoModels = obterPontosPorRelogio(map); - lastNsr.set(extrairEventos(lastNsr.get(), ptoEventoModels)); - } catch (JsonProcessingException e) { - throw new RuntimeException(e); - } - // ao final, atualiza a ptoEquipamento com o ultimoNSR salvo - eq.setUltimoNsr(lastNsr.get()); - equipamentoService.saveOrUpdate(eq); - }); + public void extrair(PtoEquipamentoModel eq, Integer nsr) { + + // percorre cada relogio, passando o ultimo nsr do relogio ou a ulima data/hora, tratando para nao duplicar os nsr + AtomicReference lastNsr = new AtomicReference<>(nsr); + HashMap map = new HashMap<>(); + map.put("serialNumber", eq.getCodigo()); + map.put("registerType", 4); + map.put("nsr", nsr); + + try { + // requisita da API do tangerino os pontos disponiveis, salvando eles na tabela ptoEvento + List ptoModels = obterAjustesPorRelogio(map); + lastNsr.set(extrairAjustes(lastNsr.get(), ptoModels)); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + // ao final, atualiza a ptoEquipamento com o ultimoNSR salvo + eq.setUltimoNsr(lastNsr.get()); + equipamentoService.saveOrUpdate(eq); } - private Integer extrairEventos(Integer lastNsr, List ptoEventoModels) { - AtomicReference nsr = new AtomicReference<>(0); - ptoEventoModels.stream().sorted(Comparator.comparing(PtoEventoModel::getNsr)).forEach(x -> { + private Integer extrairAjustes(Integer lastNsr, List ptoEventoModels) { + AtomicReference nsr = new AtomicReference<>(lastNsr); + ptoEventoModels.stream().sorted(Comparator.comparing(PtoAjusteModel::getNsr)).forEach(x -> { if (x.getNsr() > lastNsr) { - eventoService.saveOrUpdate(x); + ajusteService.saveOrUpdate(x); nsr.set(x.getNsr()); } }); return nsr.get(); } - public List obterRelogios(Boolean inativo) { - // pega todos os relogios ativos de PtoEquipamentoModel - return equipamentoService.findByInativo(inativo); - } - - public List obterPontosPorRelogio(HashMap filtros) throws JsonProcessingException { + public List obterAjustesPorRelogio(HashMap filtros) throws JsonProcessingException { RestTemplate restTemplate = new RestTemplate(); @@ -117,9 +101,9 @@ public class PtoAjusteController { String jsonStr = restTemplate.exchange(url, HttpMethod.GET, new HttpEntity<>(headers), String.class).getBody(); ObjectMapper objectMapper = new ObjectMapper(); objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, true); - ResultDTO forObject = objectMapper.readValue(jsonStr, ResultDTO.class); - List eventos = new ArrayList<>(); - forObject.getContent().forEach(x -> eventos.add(new PtoEventoModel(x))); + ResultAdjustDTO forObject = objectMapper.readValue(jsonStr, ResultAdjustDTO.class); + List eventos = new ArrayList<>(); + forObject.getContent().forEach(x -> eventos.add(new PtoAjusteModel(x))); return eventos; } } diff --git a/src/main/java/br/com/ae3tecnologia/ms/tangerino/controller/PtoEventoController.java b/src/main/java/br/com/ae3tecnologia/ms/tangerino/controller/PtoEventoController.java index 818f5b9..f48bfac 100644 --- a/src/main/java/br/com/ae3tecnologia/ms/tangerino/controller/PtoEventoController.java +++ b/src/main/java/br/com/ae3tecnologia/ms/tangerino/controller/PtoEventoController.java @@ -1,7 +1,9 @@ package br.com.ae3tecnologia.ms.tangerino.controller; -import br.com.ae3tecnologia.ms.tangerino.dto.ResultDTO; +import br.com.ae3tecnologia.ms.tangerino.dto.ResultEventDTO; +import br.com.ae3tecnologia.ms.tangerino.model.PtoEquipamentoModel; import br.com.ae3tecnologia.ms.tangerino.model.PtoEventoModel; +import br.com.ae3tecnologia.ms.tangerino.service.PtoAjusteService; import br.com.ae3tecnologia.ms.tangerino.service.PtoEquipamentoService; import br.com.ae3tecnologia.ms.tangerino.service.PtoEventoService; import com.fasterxml.jackson.core.JsonProcessingException; @@ -9,15 +11,21 @@ import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; -import org.springframework.http.*; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpMethod; +import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.client.RestTemplate; -import java.net.URISyntaxException; -import java.util.*; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.HashMap; +import java.util.List; +import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicReference; import static br.com.ae3tecnologia.ms.tangerino.utils.Constants.API_ROUTE; @@ -25,48 +33,76 @@ import static br.com.ae3tecnologia.ms.tangerino.utils.Constants.TANGERINO_API_PU @RestController @CrossOrigin(maxAge = 3600, origins = "*") -@RequestMapping(API_ROUTE+"/${app.version}/run") +@RequestMapping(API_ROUTE + "/${app.version}/run") public class PtoEventoController { @Value("${app.token}") private String token; @Value("${app.url.apis}") private String urlApis; - @Value("${app.url.employer}") - private String urlEmployer; - @Value("${server.port}") - private String serverPort; - private PtoEventoService eventoService; - private PtoEquipamentoService equipamentoService; + private final PtoEventoService eventoService; + private final PtoAjusteService ajusteService; + private final PtoEquipamentoService equipamentoService; @Autowired - private PtoEventoController(PtoEquipamentoService equipamentoService, PtoEventoService eventoService){ + private PtoEventoController(PtoEquipamentoService equipamentoService, PtoEventoService eventoService, PtoAjusteService ajusteService) { this.eventoService = eventoService; this.equipamentoService = equipamentoService; + this.ajusteService = ajusteService; } @GetMapping( produces = MediaType.APPLICATION_JSON_VALUE ) - public void extrairPontos() throws URISyntaxException, JsonProcessingException { + public void extrairPontos() { + + List equipamentoList = obterRelogios(false); + equipamentoList.forEach(eq -> { + // percorre cada relogio, passando o ultimo nsr do relogio ou a ulima data/hora + AtomicReference lastNsr = new AtomicReference<>(0); + HashMap map = new HashMap<>(); + map.put("serialNumber", eq.getCodigo()); + map.put("nsrType", 3); + map.put("nsr", eq.getUltimoNsr()); //precisa pegar o ultimo NSR do relogio para passar como parametro + + try { + // requisita da API do tangerino os pontos disponiveis, salvando eles na tabela ptoEvento + List ptoEventoModels = obterPontosPorRelogio(map); + lastNsr.set(extrairEventos(lastNsr.get(), ptoEventoModels, eq)); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + // ao final, atualiza a ptoEquipamento com o ultimoNSR salvo + eq.setUltimoNsr(lastNsr.get()); + equipamentoService.saveOrUpdate(eq); + }); - // pega todos os relogios ativos de PtoEquipamentoModel - // percorre cada relogio, passando o ultimo nsr do relogio ou a ulima data/hora, tratando para nao duplicar os nsr - AtomicReference lastNsr = new AtomicReference<>(0); //precisa pegar o ultimo NSR do relogio para passar como parametro - HashMap map = new HashMap<>(); - map.put("employerId", String.valueOf(2775694)); - map.put("offset", String.valueOf(1037355)); - List ptoEventoModels = obterPontosPorRelogio(map); - ptoEventoModels.stream().sorted(Comparator.comparing(PtoEventoModel::getNsr)).forEach(x-> { - // requisita da API do tangerino os pontos disponiveis, salvando eles na tabela ptoEvento - lastNsr.set(x.getNsr()); - eventoService.save(x); + } + + private Integer extrairEventos(Integer lastNsr, List ptoEventoModels, PtoEquipamentoModel equipamentoModel) { + AtomicReference nsr = new AtomicReference<>(0); + AtomicInteger nsrForEach = new AtomicInteger(lastNsr); + ptoEventoModels.stream().sorted(Comparator.comparing(PtoEventoModel::getNsr)).forEach(x -> { + if (x.getNsr() > lastNsr) { // tratando para nao duplicar os nsr + eventoService.saveOrUpdate(x); + nsr.set(x.getNsr()); + if(x.getNsr() - nsrForEach.get() > 1){ //se a diferença entre o ultimo nsr e o atual for maior que um, chamará o Ajustes + PtoAjusteController ajusteController = new PtoAjusteController(equipamentoService, ajusteService); + ajusteController.extrair(equipamentoModel, nsrForEach.get()); + } + nsrForEach.set(x.getNsr()); + } }); - // ao final, atualiza a ptoEquipamento com o ultimoNSR salvo + return nsr.get(); + } + + public List obterRelogios(Boolean inativo) { + // pega todos os relogios ativos de PtoEquipamentoModel + return equipamentoService.findByInativo(inativo); } - public List obterPontosPorRelogio(HashMap filtros) throws URISyntaxException, JsonProcessingException { + public List obterPontosPorRelogio(HashMap filtros) throws JsonProcessingException { RestTemplate restTemplate = new RestTemplate(); @@ -74,27 +110,27 @@ public class PtoEventoController { headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); headers.setBasicAuth(token); - String url = urlApis+TANGERINO_API_PUNCH; + String url = urlApis + TANGERINO_API_PUNCH; final String[] filter = {""}; - filtros.forEach((k,v) ->{ - if(filter[0].isEmpty()){ - filter[0] = filter[0].concat(k).concat("=").concat(v); + filtros.forEach((k, v) -> { + if (filter[0].isEmpty()) { + filter[0] = filter[0].concat(k).concat("=").concat(v.toString()); } else { - filter[0] = filter[0].concat("&").concat(k).concat("=").concat(v); + filter[0] = filter[0].concat("&").concat(k).concat("=").concat(v.toString()); } }); - if(!filter[0].isEmpty()){ + if (!filter[0].isEmpty()) { url = url.concat("?").concat(filter[0]); } - String jsonStr = restTemplate.exchange(url, HttpMethod.GET,new HttpEntity<>(headers), String.class).getBody(); + String jsonStr = restTemplate.exchange(url, HttpMethod.GET, new HttpEntity<>(headers), String.class).getBody(); ObjectMapper objectMapper = new ObjectMapper(); objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, true); - ResultDTO forObject = objectMapper.readValue(jsonStr , ResultDTO.class); + ResultEventDTO forObject = objectMapper.readValue(jsonStr, ResultEventDTO.class); List eventos = new ArrayList<>(); - forObject.getContent().stream().forEach(x-> eventos.add(new PtoEventoModel(x))); + forObject.getContent().forEach(x -> eventos.add(new PtoEventoModel(x))); return eventos; } } diff --git a/src/main/java/br/com/ae3tecnologia/ms/tangerino/dto/PtoAjusteDTO.java b/src/main/java/br/com/ae3tecnologia/ms/tangerino/dto/PtoAjusteDTO.java index 372ce10..b87eb72 100644 --- a/src/main/java/br/com/ae3tecnologia/ms/tangerino/dto/PtoAjusteDTO.java +++ b/src/main/java/br/com/ae3tecnologia/ms/tangerino/dto/PtoAjusteDTO.java @@ -9,19 +9,12 @@ import lombok.NoArgsConstructor; @NoArgsConstructor @AllArgsConstructor @JsonIgnoreProperties(ignoreUnknown = true) -public class PtoEventoDTO { +public class PtoAjusteDTO { - private Integer id; - private String hashStart; - private String date; - private Long dateIn; - private Long dateInFull; - private Integer nsrIn; - private Integer type; - private String devicedId; - private Boolean adjust; - private String status; - private Long lastModifiedDate; + private Long dateTimeBeforeAdjustment; + private Long dateTimeAfterAdjustment; + private Integer nsr; + private String serialNumber; private EmployeeDTO employee; } diff --git a/src/main/java/br/com/ae3tecnologia/ms/tangerino/dto/PtoEventoDTO.java b/src/main/java/br/com/ae3tecnologia/ms/tangerino/dto/PtoEventoDTO.java index 372ce10..8d4ce2d 100644 --- a/src/main/java/br/com/ae3tecnologia/ms/tangerino/dto/PtoEventoDTO.java +++ b/src/main/java/br/com/ae3tecnologia/ms/tangerino/dto/PtoEventoDTO.java @@ -11,17 +11,10 @@ import lombok.NoArgsConstructor; @JsonIgnoreProperties(ignoreUnknown = true) public class PtoEventoDTO { - private Integer id; - private String hashStart; - private String date; - private Long dateIn; - private Long dateInFull; - private Integer nsrIn; - private Integer type; - private String devicedId; - private Boolean adjust; - private String status; - private Long lastModifiedDate; - private EmployeeDTO employee; + private Integer nsr; + private Long punchDate; + private String pis; + private String serialNumber; + private int employerId; } diff --git a/src/main/java/br/com/ae3tecnologia/ms/tangerino/dto/ResultAdjustDTO.java b/src/main/java/br/com/ae3tecnologia/ms/tangerino/dto/ResultAdjustDTO.java index e88a152..54648ae 100644 --- a/src/main/java/br/com/ae3tecnologia/ms/tangerino/dto/ResultAdjustDTO.java +++ b/src/main/java/br/com/ae3tecnologia/ms/tangerino/dto/ResultAdjustDTO.java @@ -12,9 +12,9 @@ import java.util.List; @AllArgsConstructor @NoArgsConstructor @JsonIgnoreProperties(ignoreUnknown = true) -public class ResultEventDTO { +public class ResultAdjustDTO { - private List content; + private List content; private Boolean last; private Integer totalPages; private Integer totalElements; diff --git a/src/main/java/br/com/ae3tecnologia/ms/tangerino/dto/ResultEventDTO.java b/src/main/java/br/com/ae3tecnologia/ms/tangerino/dto/ResultEventDTO.java index 0c918fb..e88a152 100644 --- a/src/main/java/br/com/ae3tecnologia/ms/tangerino/dto/ResultEventDTO.java +++ b/src/main/java/br/com/ae3tecnologia/ms/tangerino/dto/ResultEventDTO.java @@ -12,7 +12,7 @@ import java.util.List; @AllArgsConstructor @NoArgsConstructor @JsonIgnoreProperties(ignoreUnknown = true) -public class ResultDTO { +public class ResultEventDTO { private List content; private Boolean last; diff --git a/src/main/java/br/com/ae3tecnologia/ms/tangerino/model/PtoAjusteModel.java b/src/main/java/br/com/ae3tecnologia/ms/tangerino/model/PtoAjusteModel.java index 1c81165..3ca0655 100644 --- a/src/main/java/br/com/ae3tecnologia/ms/tangerino/model/PtoAjusteModel.java +++ b/src/main/java/br/com/ae3tecnologia/ms/tangerino/model/PtoAjusteModel.java @@ -1,7 +1,6 @@ package br.com.ae3tecnologia.ms.tangerino.model; import br.com.ae3tecnologia.ms.tangerino.dto.PtoAjusteDTO; -import br.com.ae3tecnologia.ms.tangerino.dto.PtoEventoDTO; import jakarta.persistence.*; import lombok.AllArgsConstructor; import lombok.Data; @@ -15,7 +14,7 @@ import java.time.*; @NoArgsConstructor @Entity @Table(name = "pto_ajustes", schema = "rh") -public class PtoAjustesModel { +public class PtoAjusteModel { @Id @Column(name = "id") @@ -50,10 +49,7 @@ public class PtoAjustesModel { @Column(name = "periodo") private String periodo; - @Transient - private LocalDateTime lastModifiedDate; - - public PtoAjustesModel(PtoAjusteDTO dto) { + public PtoAjusteModel(PtoAjusteDTO dto) { this.setNsr(dto.getNsr()); LocalDate localDate = Instant.ofEpochMilli(dto.getDateTimeBeforeAdjustment()).atZone(ZoneId.systemDefault()).toLocalDate(); this.setDataAnterior(localDate); diff --git a/src/main/java/br/com/ae3tecnologia/ms/tangerino/model/PtoEquipamentoModel.java b/src/main/java/br/com/ae3tecnologia/ms/tangerino/model/PtoEquipamentoModel.java index f5e17ae..6261c2a 100644 --- a/src/main/java/br/com/ae3tecnologia/ms/tangerino/model/PtoEquipamentoModel.java +++ b/src/main/java/br/com/ae3tecnologia/ms/tangerino/model/PtoEquipamentoModel.java @@ -11,7 +11,7 @@ import java.util.Date; @AllArgsConstructor @NoArgsConstructor @Entity -@Table(name = "pto_equipamento") +@Table(name = "pto_equipamento", schema = "rh") public class PtoEquipamentoModel { @Id diff --git a/src/main/java/br/com/ae3tecnologia/ms/tangerino/model/PtoEventoModel.java b/src/main/java/br/com/ae3tecnologia/ms/tangerino/model/PtoEventoModel.java index cdc3daa..2413248 100644 --- a/src/main/java/br/com/ae3tecnologia/ms/tangerino/model/PtoEventoModel.java +++ b/src/main/java/br/com/ae3tecnologia/ms/tangerino/model/PtoEventoModel.java @@ -5,6 +5,7 @@ import jakarta.persistence.*; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; +import org.apache.commons.lang3.StringUtils; import java.time.*; @@ -12,7 +13,7 @@ import java.time.*; @AllArgsConstructor @NoArgsConstructor @Entity -@Table(name = "pto_evento") +@Table(name = "pto_evento", schema = "rh") public class PtoEventoModel { @Id @@ -58,22 +59,16 @@ public class PtoEventoModel { private LocalDateTime lastModifiedDate; public PtoEventoModel(PtoEventoDTO dto) { - this.setId(dto.getId()); - this.setNsr(dto.getNsrIn()); - this.setDataEvento(Instant.ofEpochMilli(dto.getDateIn()).atZone(ZoneId.systemDefault()).toLocalDate()); - this.setHoraEvento(Instant.ofEpochMilli(dto.getDateInFull()).atZone(ZoneId.systemDefault()).toLocalTime()); - this.setLastModifiedDate(Instant.ofEpochMilli(dto.getLastModifiedDate()).atZone(ZoneId.systemDefault()).toLocalDateTime()); - String periodo = dto.getDate().replace("-",""); - periodo = periodo.substring(0,dto.getDate().length()-4); + this.setNsr(dto.getNsr()); + LocalDate localDate = Instant.ofEpochMilli(dto.getPunchDate()).atZone(ZoneId.systemDefault()).toLocalDate(); + this.setDataEvento(localDate); + this.setHoraEvento(Instant.ofEpochMilli(dto.getPunchDate()).atZone(ZoneId.systemDefault()).toLocalTime()); + String periodo = localDate.getYear() + StringUtils.leftPad("0",2, String.valueOf(localDate.getMonthValue())); this.setPeriodo(periodo); this.setProcessado(false); -// dto.getHashStart(); - this.setTipo(dto.getType()); -// dto.getDevicedId(); -// dto.getAdjust(); -// dto.getStatus(); -// dto.getLastModifiedDate(); - this.setPis(dto.getEmployee().getPis()); + this.setTipo(3); + this.setPis(dto.getPis()); +// this.equipamento = } } diff --git a/src/main/java/br/com/ae3tecnologia/ms/tangerino/repository/PtoAjusteRepository.java b/src/main/java/br/com/ae3tecnologia/ms/tangerino/repository/PtoAjusteRepository.java index 7584e5b..2dd10e2 100644 --- a/src/main/java/br/com/ae3tecnologia/ms/tangerino/repository/PtoAjusteRepository.java +++ b/src/main/java/br/com/ae3tecnologia/ms/tangerino/repository/PtoAjusteRepository.java @@ -1,10 +1,10 @@ package br.com.ae3tecnologia.ms.tangerino.repository; -import br.com.ae3tecnologia.ms.tangerino.model.PtoEventoModel; +import br.com.ae3tecnologia.ms.tangerino.model.PtoAjusteModel; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; @Repository -public interface PtoEventoRepository extends JpaRepository { +public interface PtoAjusteRepository extends JpaRepository { } diff --git a/src/main/java/br/com/ae3tecnologia/ms/tangerino/repository/PtoEquipamentoRepository.java b/src/main/java/br/com/ae3tecnologia/ms/tangerino/repository/PtoEquipamentoRepository.java index c962b18..0a66785 100644 --- a/src/main/java/br/com/ae3tecnologia/ms/tangerino/repository/PtoEquipamentoRepository.java +++ b/src/main/java/br/com/ae3tecnologia/ms/tangerino/repository/PtoEquipamentoRepository.java @@ -4,6 +4,10 @@ import br.com.ae3tecnologia.ms.tangerino.model.PtoEquipamentoModel; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; +import java.util.List; +import java.util.Optional; + @Repository public interface PtoEquipamentoRepository extends JpaRepository { + public Optional> findByInativoEquals(Boolean inativo); } diff --git a/src/main/java/br/com/ae3tecnologia/ms/tangerino/service/PtoAjusteService.java b/src/main/java/br/com/ae3tecnologia/ms/tangerino/service/PtoAjusteService.java index 92d36ec..e9a5624 100644 --- a/src/main/java/br/com/ae3tecnologia/ms/tangerino/service/PtoAjusteService.java +++ b/src/main/java/br/com/ae3tecnologia/ms/tangerino/service/PtoAjusteService.java @@ -1,7 +1,8 @@ package br.com.ae3tecnologia.ms.tangerino.service; +import br.com.ae3tecnologia.ms.tangerino.model.PtoAjusteModel; import br.com.ae3tecnologia.ms.tangerino.model.PtoEventoModel; -import br.com.ae3tecnologia.ms.tangerino.repository.PtoEventoRepository; +import br.com.ae3tecnologia.ms.tangerino.repository.PtoAjusteRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -9,10 +10,10 @@ import org.springframework.stereotype.Service; public class PtoAjusteService { @Autowired - private PtoEventoRepository repository; + private PtoAjusteRepository repository; - public PtoEventoModel saveOrUpdate(PtoEventoModel eventoModel){ - return repository.save(eventoModel); + public PtoAjusteModel saveOrUpdate(PtoAjusteModel model){ + return repository.save(model); } } diff --git a/src/main/java/br/com/ae3tecnologia/ms/tangerino/service/PtoEquipamentoService.java b/src/main/java/br/com/ae3tecnologia/ms/tangerino/service/PtoEquipamentoService.java index 29449a1..8437f30 100644 --- a/src/main/java/br/com/ae3tecnologia/ms/tangerino/service/PtoEquipamentoService.java +++ b/src/main/java/br/com/ae3tecnologia/ms/tangerino/service/PtoEquipamentoService.java @@ -1,11 +1,29 @@ package br.com.ae3tecnologia.ms.tangerino.service; +import br.com.ae3tecnologia.ms.tangerino.model.PtoEquipamentoModel; +import br.com.ae3tecnologia.ms.tangerino.model.PtoEventoModel; import br.com.ae3tecnologia.ms.tangerino.repository.PtoEquipamentoRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.Arrays; +import java.util.List; +import java.util.Optional; + @Service public class PtoEquipamentoService { @Autowired private PtoEquipamentoRepository repository; + + public List findByInativo(Boolean inativo){ + Optional optional = repository.findByInativoEquals(inativo); + if(optional.isPresent() && !optional.isEmpty()){ + return (List) optional.get(); + } + return Arrays.asList(); + } + + public PtoEquipamentoModel saveOrUpdate(PtoEquipamentoModel equipamentoModel){ + return repository.save(equipamentoModel); + } } diff --git a/src/main/java/br/com/ae3tecnologia/ms/tangerino/service/PtoEventoService.java b/src/main/java/br/com/ae3tecnologia/ms/tangerino/service/PtoEventoService.java index 2bba408..a3ba8f8 100644 --- a/src/main/java/br/com/ae3tecnologia/ms/tangerino/service/PtoEventoService.java +++ b/src/main/java/br/com/ae3tecnologia/ms/tangerino/service/PtoEventoService.java @@ -11,7 +11,7 @@ public class PtoEventoService { @Autowired private PtoEventoRepository repository; - public PtoEventoModel save(PtoEventoModel eventoModel){ + public PtoEventoModel saveOrUpdate(PtoEventoModel eventoModel){ return repository.save(eventoModel); } diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 8780d93..5a7d5ae 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -26,4 +26,4 @@ spring: datasource: url: jdbc:postgresql://localhost:5432/sisgep username: postgres - password: postgres + password: 123123 diff --git a/src/test/java/br/com/ae3tecnologia/ms/tangerino/controller/PtoEventoControllerTest.java b/src/test/java/br/com/ae3tecnologia/ms/tangerino/controller/PtoEventoControllerTest.java index 66e9da3..c4632f6 100644 --- a/src/test/java/br/com/ae3tecnologia/ms/tangerino/controller/PtoEventoControllerTest.java +++ b/src/test/java/br/com/ae3tecnologia/ms/tangerino/controller/PtoEventoControllerTest.java @@ -11,7 +11,6 @@ import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.MockitoAnnotations; -import java.net.URISyntaxException; import java.util.HashMap; import java.util.List; @@ -29,16 +28,16 @@ class PtoEventoControllerTest { } @Test - void testExtrairPontos() throws URISyntaxException, JsonProcessingException { + void testExtrairPontos() { controller.extrairPontos(); } @Test - void deveObterPontosPorRelogio() throws URISyntaxException, JsonProcessingException { + void deveObterPontosPorRelogio() throws JsonProcessingException { // when(eventoService.) - HashMap map = new HashMap<>(); - map.put("employerId", String.valueOf(2775694)); - map.put("offset", String.valueOf(1037355)); + HashMap map = new HashMap<>(); + map.put("employerId", 2775694); + map.put("offset", 1037355); List ptoEventoModels = controller.obterPontosPorRelogio(map); Assertions.assertTrue(ptoEventoModels.size() > 0); } diff --git a/src/test/java/br/com/ae3tecnologia/ms/tangerino/model/PtoAjusteModelTest.java b/src/test/java/br/com/ae3tecnologia/ms/tangerino/model/PtoAjusteModelTest.java index 589bf1c..8870796 100644 --- a/src/test/java/br/com/ae3tecnologia/ms/tangerino/model/PtoAjusteModelTest.java +++ b/src/test/java/br/com/ae3tecnologia/ms/tangerino/model/PtoAjusteModelTest.java @@ -9,108 +9,96 @@ import org.mockito.MockitoAnnotations; import java.time.LocalDate; import java.time.LocalTime; -class PtoEventoModelTest { +class PtoAjusteModelTest { @InjectMocks - PtoEventoModel ptoEventoModel; - - PtoEventoModel other = new PtoEventoModel( - 123, - 123, - 1, - LocalDate.now(), - LocalTime.now(), - "default", - 123, - 123, - false, - 1, - "202304" - ); + PtoAjusteModel ptoModel; + + PtoAjusteModel other; @BeforeEach void setUp() { + other = new PtoAjusteModel( + 123, + 123, + 1, + LocalDate.now(), + LocalDate.now(), + LocalTime.now().minusHours(10), + LocalTime.now(), + 1, + "202304" + ); MockitoAnnotations.openMocks(this); } @Test void testSetId() { - ptoEventoModel.setId(Integer.valueOf(0)); + ptoModel.setId(0); } @Test void testSetNsr() { - ptoEventoModel.setNsr(Integer.valueOf(0)); + ptoModel.setNsr(0); } @Test void testSetTipo() { - ptoEventoModel.setTipo(Integer.valueOf(0)); - } - - @Test - void testSetDataEvento() { - ptoEventoModel.setDataEvento(LocalDate.now()); + ptoModel.setTipo(0); } @Test - void testSetHoraEvento() { - ptoEventoModel.setHoraEvento(LocalTime.now()); + void testSetDataAnterior() { + ptoModel.setDataAnterior(LocalDate.now()); } @Test - void testSetPis() { - ptoEventoModel.setPis("pis"); + void testSetHoraAnterior() { + ptoModel.setHoraAnterior(LocalTime.now().minusHours(1)); } @Test - void testSetPessoa() { - ptoEventoModel.setPessoa(Integer.valueOf(0)); + void testSetDataAtual() { + ptoModel.setDataAtual(LocalDate.now()); } @Test - void testSetArquivo() { - ptoEventoModel.setArquivo(Integer.valueOf(0)); - } - - @Test - void testSetProcessado() { - ptoEventoModel.setProcessado(Boolean.TRUE); + void testSetHoraAtual() { + ptoModel.setHoraAtual(LocalTime.now()); } @Test void testSetEquipamento() { - ptoEventoModel.setEquipamento(Integer.valueOf(0)); + ptoModel.setEquipamento(0); } @Test void testSetPeriodo() { - ptoEventoModel.setPeriodo("periodo"); + ptoModel.setPeriodo("periodo"); } @Test void testEquals() { - ptoEventoModel = other; - boolean result = ptoEventoModel.equals(other); - Assertions.assertTrue(result); + ptoModel = other; + Assertions.assertEquals(ptoModel, other); } @Test void testCanEqual() { - ptoEventoModel = other; - boolean result = ptoEventoModel.canEqual(other); + ptoModel = other; + boolean result = ptoModel.canEqual(other); Assertions.assertTrue(result); } @Test void testHashCode() { - ptoEventoModel = other; - Assertions.assertEquals(other.hashCode(), ptoEventoModel.hashCode()); + ptoModel = other; + Assertions.assertEquals(other.hashCode(), ptoModel.hashCode()); } @Test void testToString() { - ptoEventoModel = other; - String result = ptoEventoModel.toString(); + ptoModel = other; + String result = ptoModel.toString(); Assertions.assertEquals(other.toString(), result); }