inclusao de alteraçoes

master
Kleber Cardoso 2 years ago
parent d8cdfbd81b
commit 24cf828466

@ -47,6 +47,12 @@
<artifactId>spring-boot-starter-test</artifactId> <artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.12.0</version>
</dependency>
</dependencies> </dependencies>
<build> <build>

@ -1,10 +1,10 @@
package br.com.ae3tecnologia.ms.tangerino.controller; 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.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.PtoEquipamentoService;
import br.com.ae3tecnologia.ms.tangerino.service.PtoEventoService;
import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
@ -14,10 +14,7 @@ import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders; import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod; import org.springframework.http.HttpMethod;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.stereotype.Controller;
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 org.springframework.web.client.RestTemplate;
import java.util.ArrayList; import java.util.ArrayList;
@ -26,12 +23,9 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.concurrent.atomic.AtomicReference; 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; import static br.com.ae3tecnologia.ms.tangerino.utils.Constants.TANGERINO_API_PUNCH;
@RestController @Controller
@CrossOrigin(maxAge = 3600, origins = "*")
@RequestMapping(API_ROUTE + "/${app.version}/run")
public class PtoAjusteController { public class PtoAjusteController {
@Value("${app.token}") @Value("${app.token}")
@ -39,59 +33,49 @@ public class PtoAjusteController {
@Value("${app.url.apis}") @Value("${app.url.apis}")
private String urlApis; private String urlApis;
private final PtoEventoService eventoService; private final PtoAjusteService ajusteService;
private final PtoEquipamentoService equipamentoService; private final PtoEquipamentoService equipamentoService;
@Autowired @Autowired
private PtoAjusteController(PtoEquipamentoService equipamentoService, PtoEventoService eventoService) { public PtoAjusteController(PtoEquipamentoService equipamentoService, PtoAjusteService ajusteService) {
this.eventoService = eventoService; this.ajusteService = ajusteService;
this.equipamentoService = equipamentoService; this.equipamentoService = equipamentoService;
} }
@GetMapping( public void extrair(PtoEquipamentoModel eq, Integer nsr) {
produces = MediaType.APPLICATION_JSON_VALUE
)
public void extrairPontos() {
List<PtoEquipamentoModel> 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 // percorre cada relogio, passando o ultimo nsr do relogio ou a ulima data/hora, tratando para nao duplicar os nsr
AtomicReference<Integer> lastNsr = new AtomicReference<>(0); AtomicReference<Integer> lastNsr = new AtomicReference<>(nsr);
HashMap<String, Object> map = new HashMap<>(); HashMap<String, Object> map = new HashMap<>();
map.put("serialNumber", eq.getCodigo()); map.put("serialNumber", eq.getCodigo());
map.put("nsr", eq.getUltimoNsr()); //precisa pegar o ultimo NSR do relogio para passar como parametro map.put("registerType", 4);
map.put("nsr", nsr);
try { try {
// requisita da API do tangerino os pontos disponiveis, salvando eles na tabela ptoEvento // requisita da API do tangerino os pontos disponiveis, salvando eles na tabela ptoEvento
List<PtoEventoModel> ptoEventoModels = obterPontosPorRelogio(map); List<PtoAjusteModel> ptoModels = obterAjustesPorRelogio(map);
lastNsr.set(extrairEventos(lastNsr.get(), ptoEventoModels)); lastNsr.set(extrairAjustes(lastNsr.get(), ptoModels));
} catch (JsonProcessingException e) { } catch (JsonProcessingException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
// ao final, atualiza a ptoEquipamento com o ultimoNSR salvo // ao final, atualiza a ptoEquipamento com o ultimoNSR salvo
eq.setUltimoNsr(lastNsr.get()); eq.setUltimoNsr(lastNsr.get());
equipamentoService.saveOrUpdate(eq); equipamentoService.saveOrUpdate(eq);
});
} }
private Integer extrairEventos(Integer lastNsr, List<PtoEventoModel> ptoEventoModels) { private Integer extrairAjustes(Integer lastNsr, List<PtoAjusteModel> ptoEventoModels) {
AtomicReference<Integer> nsr = new AtomicReference<>(0); AtomicReference<Integer> nsr = new AtomicReference<>(lastNsr);
ptoEventoModels.stream().sorted(Comparator.comparing(PtoEventoModel::getNsr)).forEach(x -> { ptoEventoModels.stream().sorted(Comparator.comparing(PtoAjusteModel::getNsr)).forEach(x -> {
if (x.getNsr() > lastNsr) { if (x.getNsr() > lastNsr) {
eventoService.saveOrUpdate(x); ajusteService.saveOrUpdate(x);
nsr.set(x.getNsr()); nsr.set(x.getNsr());
} }
}); });
return nsr.get(); return nsr.get();
} }
public List<PtoEquipamentoModel> obterRelogios(Boolean inativo) { public List<PtoAjusteModel> obterAjustesPorRelogio(HashMap<String, Object> filtros) throws JsonProcessingException {
// pega todos os relogios ativos de PtoEquipamentoModel
return equipamentoService.findByInativo(inativo);
}
public List<PtoEventoModel> obterPontosPorRelogio(HashMap<String, Object> filtros) throws JsonProcessingException {
RestTemplate restTemplate = new RestTemplate(); RestTemplate restTemplate = new RestTemplate();
@ -117,9 +101,9 @@ public class PtoAjusteController {
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 objectMapper = new ObjectMapper();
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, true); objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, true);
ResultDTO forObject = objectMapper.readValue(jsonStr, ResultDTO.class); ResultAdjustDTO forObject = objectMapper.readValue(jsonStr, ResultAdjustDTO.class);
List<PtoEventoModel> eventos = new ArrayList<>(); List<PtoAjusteModel> eventos = new ArrayList<>();
forObject.getContent().forEach(x -> eventos.add(new PtoEventoModel(x))); forObject.getContent().forEach(x -> eventos.add(new PtoAjusteModel(x)));
return eventos; return eventos;
} }
} }

@ -1,7 +1,9 @@
package br.com.ae3tecnologia.ms.tangerino.controller; 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.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.PtoEquipamentoService;
import br.com.ae3tecnologia.ms.tangerino.service.PtoEventoService; import br.com.ae3tecnologia.ms.tangerino.service.PtoEventoService;
import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.JsonProcessingException;
@ -9,15 +11,21 @@ import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; 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.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate; import org.springframework.web.client.RestTemplate;
import java.net.URISyntaxException; import java.util.ArrayList;
import java.util.*; 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 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.API_ROUTE;
@ -32,41 +40,69 @@ public class PtoEventoController {
private String token; private String token;
@Value("${app.url.apis}") @Value("${app.url.apis}")
private String urlApis; private String urlApis;
@Value("${app.url.employer}")
private String urlEmployer;
@Value("${server.port}")
private String serverPort;
private PtoEventoService eventoService; private final PtoEventoService eventoService;
private PtoEquipamentoService equipamentoService; private final PtoAjusteService ajusteService;
private final PtoEquipamentoService equipamentoService;
@Autowired @Autowired
private PtoEventoController(PtoEquipamentoService equipamentoService, PtoEventoService eventoService){ private PtoEventoController(PtoEquipamentoService equipamentoService, PtoEventoService eventoService, PtoAjusteService ajusteService) {
this.eventoService = eventoService; this.eventoService = eventoService;
this.equipamentoService = equipamentoService; this.equipamentoService = equipamentoService;
this.ajusteService = ajusteService;
} }
@GetMapping( @GetMapping(
produces = MediaType.APPLICATION_JSON_VALUE produces = MediaType.APPLICATION_JSON_VALUE
) )
public void extrairPontos() throws URISyntaxException, JsonProcessingException { public void extrairPontos() {
// pega todos os relogios ativos de PtoEquipamentoModel List<PtoEquipamentoModel> equipamentoList = obterRelogios(false);
// percorre cada relogio, passando o ultimo nsr do relogio ou a ulima data/hora, tratando para nao duplicar os nsr equipamentoList.forEach(eq -> {
AtomicReference<Integer> lastNsr = new AtomicReference<>(0); //precisa pegar o ultimo NSR do relogio para passar como parametro // percorre cada relogio, passando o ultimo nsr do relogio ou a ulima data/hora
HashMap<String, String> map = new HashMap<>(); AtomicReference<Integer> lastNsr = new AtomicReference<>(0);
map.put("employerId", String.valueOf(2775694)); HashMap<String, Object> map = new HashMap<>();
map.put("offset", String.valueOf(1037355)); 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<PtoEventoModel> ptoEventoModels = obterPontosPorRelogio(map); List<PtoEventoModel> 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);
});
}
private Integer extrairEventos(Integer lastNsr, List<PtoEventoModel> ptoEventoModels, PtoEquipamentoModel equipamentoModel) {
AtomicReference<Integer> nsr = new AtomicReference<>(0);
AtomicInteger nsrForEach = new AtomicInteger(lastNsr);
ptoEventoModels.stream().sorted(Comparator.comparing(PtoEventoModel::getNsr)).forEach(x -> { ptoEventoModels.stream().sorted(Comparator.comparing(PtoEventoModel::getNsr)).forEach(x -> {
// requisita da API do tangerino os pontos disponiveis, salvando eles na tabela ptoEvento if (x.getNsr() > lastNsr) { // tratando para nao duplicar os nsr
lastNsr.set(x.getNsr()); eventoService.saveOrUpdate(x);
eventoService.save(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<PtoEquipamentoModel> obterRelogios(Boolean inativo) {
// pega todos os relogios ativos de PtoEquipamentoModel
return equipamentoService.findByInativo(inativo);
} }
public List<PtoEventoModel> obterPontosPorRelogio(HashMap<String, String> filtros) throws URISyntaxException, JsonProcessingException { public List<PtoEventoModel> obterPontosPorRelogio(HashMap<String, Object> filtros) throws JsonProcessingException {
RestTemplate restTemplate = new RestTemplate(); RestTemplate restTemplate = new RestTemplate();
@ -79,9 +115,9 @@ public class PtoEventoController {
filtros.forEach((k, v) -> { filtros.forEach((k, v) -> {
if (filter[0].isEmpty()) { if (filter[0].isEmpty()) {
filter[0] = filter[0].concat(k).concat("=").concat(v); filter[0] = filter[0].concat(k).concat("=").concat(v.toString());
} else { } else {
filter[0] = filter[0].concat("&").concat(k).concat("=").concat(v); filter[0] = filter[0].concat("&").concat(k).concat("=").concat(v.toString());
} }
}); });
@ -92,9 +128,9 @@ public class PtoEventoController {
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 objectMapper = new ObjectMapper();
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, true); objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, true);
ResultDTO forObject = objectMapper.readValue(jsonStr , ResultDTO.class); ResultEventDTO forObject = objectMapper.readValue(jsonStr, ResultEventDTO.class);
List<PtoEventoModel> eventos = new ArrayList<>(); List<PtoEventoModel> eventos = new ArrayList<>();
forObject.getContent().stream().forEach(x-> eventos.add(new PtoEventoModel(x))); forObject.getContent().forEach(x -> eventos.add(new PtoEventoModel(x)));
return eventos; return eventos;
} }
} }

@ -9,19 +9,12 @@ import lombok.NoArgsConstructor;
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true) @JsonIgnoreProperties(ignoreUnknown = true)
public class PtoEventoDTO { public class PtoAjusteDTO {
private Integer id; private Long dateTimeBeforeAdjustment;
private String hashStart; private Long dateTimeAfterAdjustment;
private String date; private Integer nsr;
private Long dateIn; private String serialNumber;
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 EmployeeDTO employee;
} }

@ -11,17 +11,10 @@ import lombok.NoArgsConstructor;
@JsonIgnoreProperties(ignoreUnknown = true) @JsonIgnoreProperties(ignoreUnknown = true)
public class PtoEventoDTO { public class PtoEventoDTO {
private Integer id; private Integer nsr;
private String hashStart; private Long punchDate;
private String date; private String pis;
private Long dateIn; private String serialNumber;
private Long dateInFull; private int employerId;
private Integer nsrIn;
private Integer type;
private String devicedId;
private Boolean adjust;
private String status;
private Long lastModifiedDate;
private EmployeeDTO employee;
} }

@ -12,9 +12,9 @@ import java.util.List;
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true) @JsonIgnoreProperties(ignoreUnknown = true)
public class ResultEventDTO { public class ResultAdjustDTO {
private List<PtoEventoDTO> content; private List<PtoAjusteDTO> content;
private Boolean last; private Boolean last;
private Integer totalPages; private Integer totalPages;
private Integer totalElements; private Integer totalElements;

@ -12,7 +12,7 @@ import java.util.List;
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true) @JsonIgnoreProperties(ignoreUnknown = true)
public class ResultDTO { public class ResultEventDTO {
private List<PtoEventoDTO> content; private List<PtoEventoDTO> content;
private Boolean last; private Boolean last;

@ -1,7 +1,6 @@
package br.com.ae3tecnologia.ms.tangerino.model; package br.com.ae3tecnologia.ms.tangerino.model;
import br.com.ae3tecnologia.ms.tangerino.dto.PtoAjusteDTO; import br.com.ae3tecnologia.ms.tangerino.dto.PtoAjusteDTO;
import br.com.ae3tecnologia.ms.tangerino.dto.PtoEventoDTO;
import jakarta.persistence.*; import jakarta.persistence.*;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
@ -15,7 +14,7 @@ import java.time.*;
@NoArgsConstructor @NoArgsConstructor
@Entity @Entity
@Table(name = "pto_ajustes", schema = "rh") @Table(name = "pto_ajustes", schema = "rh")
public class PtoAjustesModel { public class PtoAjusteModel {
@Id @Id
@Column(name = "id") @Column(name = "id")
@ -50,10 +49,7 @@ public class PtoAjustesModel {
@Column(name = "periodo") @Column(name = "periodo")
private String periodo; private String periodo;
@Transient public PtoAjusteModel(PtoAjusteDTO dto) {
private LocalDateTime lastModifiedDate;
public PtoAjustesModel(PtoAjusteDTO dto) {
this.setNsr(dto.getNsr()); this.setNsr(dto.getNsr());
LocalDate localDate = Instant.ofEpochMilli(dto.getDateTimeBeforeAdjustment()).atZone(ZoneId.systemDefault()).toLocalDate(); LocalDate localDate = Instant.ofEpochMilli(dto.getDateTimeBeforeAdjustment()).atZone(ZoneId.systemDefault()).toLocalDate();
this.setDataAnterior(localDate); this.setDataAnterior(localDate);

@ -11,7 +11,7 @@ import java.util.Date;
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
@Entity @Entity
@Table(name = "pto_equipamento") @Table(name = "pto_equipamento", schema = "rh")
public class PtoEquipamentoModel { public class PtoEquipamentoModel {
@Id @Id

@ -5,6 +5,7 @@ import jakarta.persistence.*;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import java.time.*; import java.time.*;
@ -12,7 +13,7 @@ import java.time.*;
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
@Entity @Entity
@Table(name = "pto_evento") @Table(name = "pto_evento", schema = "rh")
public class PtoEventoModel { public class PtoEventoModel {
@Id @Id
@ -58,22 +59,16 @@ public class PtoEventoModel {
private LocalDateTime lastModifiedDate; private LocalDateTime lastModifiedDate;
public PtoEventoModel(PtoEventoDTO dto) { public PtoEventoModel(PtoEventoDTO dto) {
this.setId(dto.getId()); this.setNsr(dto.getNsr());
this.setNsr(dto.getNsrIn()); LocalDate localDate = Instant.ofEpochMilli(dto.getPunchDate()).atZone(ZoneId.systemDefault()).toLocalDate();
this.setDataEvento(Instant.ofEpochMilli(dto.getDateIn()).atZone(ZoneId.systemDefault()).toLocalDate()); this.setDataEvento(localDate);
this.setHoraEvento(Instant.ofEpochMilli(dto.getDateInFull()).atZone(ZoneId.systemDefault()).toLocalTime()); this.setHoraEvento(Instant.ofEpochMilli(dto.getPunchDate()).atZone(ZoneId.systemDefault()).toLocalTime());
this.setLastModifiedDate(Instant.ofEpochMilli(dto.getLastModifiedDate()).atZone(ZoneId.systemDefault()).toLocalDateTime()); String periodo = localDate.getYear() + StringUtils.leftPad("0",2, String.valueOf(localDate.getMonthValue()));
String periodo = dto.getDate().replace("-","");
periodo = periodo.substring(0,dto.getDate().length()-4);
this.setPeriodo(periodo); this.setPeriodo(periodo);
this.setProcessado(false); this.setProcessado(false);
// dto.getHashStart(); this.setTipo(3);
this.setTipo(dto.getType()); this.setPis(dto.getPis());
// dto.getDevicedId(); // this.equipamento =
// dto.getAdjust();
// dto.getStatus();
// dto.getLastModifiedDate();
this.setPis(dto.getEmployee().getPis());
} }
} }

@ -1,10 +1,10 @@
package br.com.ae3tecnologia.ms.tangerino.repository; 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.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
@Repository @Repository
public interface PtoEventoRepository extends JpaRepository<PtoEventoModel, Integer> { public interface PtoAjusteRepository extends JpaRepository<PtoAjusteModel, Integer> {
} }

@ -4,6 +4,10 @@ import br.com.ae3tecnologia.ms.tangerino.model.PtoEquipamentoModel;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Optional;
@Repository @Repository
public interface PtoEquipamentoRepository extends JpaRepository<PtoEquipamentoModel, Integer> { public interface PtoEquipamentoRepository extends JpaRepository<PtoEquipamentoModel, Integer> {
public Optional<List<PtoEquipamentoModel>> findByInativoEquals(Boolean inativo);
} }

@ -1,7 +1,8 @@
package br.com.ae3tecnologia.ms.tangerino.service; 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.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.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -9,10 +10,10 @@ import org.springframework.stereotype.Service;
public class PtoAjusteService { public class PtoAjusteService {
@Autowired @Autowired
private PtoEventoRepository repository; private PtoAjusteRepository repository;
public PtoEventoModel saveOrUpdate(PtoEventoModel eventoModel){ public PtoAjusteModel saveOrUpdate(PtoAjusteModel model){
return repository.save(eventoModel); return repository.save(model);
} }
} }

@ -1,11 +1,29 @@
package br.com.ae3tecnologia.ms.tangerino.service; 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 br.com.ae3tecnologia.ms.tangerino.repository.PtoEquipamentoRepository;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
@Service @Service
public class PtoEquipamentoService { public class PtoEquipamentoService {
@Autowired @Autowired
private PtoEquipamentoRepository repository; private PtoEquipamentoRepository repository;
public List<PtoEquipamentoModel> findByInativo(Boolean inativo){
Optional optional = repository.findByInativoEquals(inativo);
if(optional.isPresent() && !optional.isEmpty()){
return (List<PtoEquipamentoModel>) optional.get();
}
return Arrays.asList();
}
public PtoEquipamentoModel saveOrUpdate(PtoEquipamentoModel equipamentoModel){
return repository.save(equipamentoModel);
}
} }

@ -11,7 +11,7 @@ public class PtoEventoService {
@Autowired @Autowired
private PtoEventoRepository repository; private PtoEventoRepository repository;
public PtoEventoModel save(PtoEventoModel eventoModel){ public PtoEventoModel saveOrUpdate(PtoEventoModel eventoModel){
return repository.save(eventoModel); return repository.save(eventoModel);
} }

@ -26,4 +26,4 @@ spring:
datasource: datasource:
url: jdbc:postgresql://localhost:5432/sisgep url: jdbc:postgresql://localhost:5432/sisgep
username: postgres username: postgres
password: postgres password: 123123

@ -11,7 +11,6 @@ import org.mockito.InjectMocks;
import org.mockito.Mock; import org.mockito.Mock;
import org.mockito.MockitoAnnotations; import org.mockito.MockitoAnnotations;
import java.net.URISyntaxException;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
@ -29,16 +28,16 @@ class PtoEventoControllerTest {
} }
@Test @Test
void testExtrairPontos() throws URISyntaxException, JsonProcessingException { void testExtrairPontos() {
controller.extrairPontos(); controller.extrairPontos();
} }
@Test @Test
void deveObterPontosPorRelogio() throws URISyntaxException, JsonProcessingException { void deveObterPontosPorRelogio() throws JsonProcessingException {
// when(eventoService.) // when(eventoService.)
HashMap<String, String> map = new HashMap<>(); HashMap<String, Object> map = new HashMap<>();
map.put("employerId", String.valueOf(2775694)); map.put("employerId", 2775694);
map.put("offset", String.valueOf(1037355)); map.put("offset", 1037355);
List<PtoEventoModel> ptoEventoModels = controller.obterPontosPorRelogio(map); List<PtoEventoModel> ptoEventoModels = controller.obterPontosPorRelogio(map);
Assertions.assertTrue(ptoEventoModels.size() > 0); Assertions.assertTrue(ptoEventoModels.size() > 0);
} }

@ -9,108 +9,96 @@ import org.mockito.MockitoAnnotations;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.LocalTime; import java.time.LocalTime;
class PtoEventoModelTest { class PtoAjusteModelTest {
@InjectMocks @InjectMocks
PtoEventoModel ptoEventoModel; PtoAjusteModel ptoModel;
PtoEventoModel other = new PtoEventoModel( PtoAjusteModel other;
@BeforeEach
void setUp() {
other = new PtoAjusteModel(
123, 123,
123, 123,
1, 1,
LocalDate.now(), LocalDate.now(),
LocalDate.now(),
LocalTime.now().minusHours(10),
LocalTime.now(), LocalTime.now(),
"default",
123,
123,
false,
1, 1,
"202304" "202304"
); );
@BeforeEach
void setUp() {
MockitoAnnotations.openMocks(this); MockitoAnnotations.openMocks(this);
} }
@Test @Test
void testSetId() { void testSetId() {
ptoEventoModel.setId(Integer.valueOf(0)); ptoModel.setId(0);
} }
@Test @Test
void testSetNsr() { void testSetNsr() {
ptoEventoModel.setNsr(Integer.valueOf(0)); ptoModel.setNsr(0);
} }
@Test @Test
void testSetTipo() { void testSetTipo() {
ptoEventoModel.setTipo(Integer.valueOf(0)); ptoModel.setTipo(0);
}
@Test
void testSetDataEvento() {
ptoEventoModel.setDataEvento(LocalDate.now());
} }
@Test @Test
void testSetHoraEvento() { void testSetDataAnterior() {
ptoEventoModel.setHoraEvento(LocalTime.now()); ptoModel.setDataAnterior(LocalDate.now());
} }
@Test @Test
void testSetPis() { void testSetHoraAnterior() {
ptoEventoModel.setPis("pis"); ptoModel.setHoraAnterior(LocalTime.now().minusHours(1));
} }
@Test @Test
void testSetPessoa() { void testSetDataAtual() {
ptoEventoModel.setPessoa(Integer.valueOf(0)); ptoModel.setDataAtual(LocalDate.now());
} }
@Test @Test
void testSetArquivo() { void testSetHoraAtual() {
ptoEventoModel.setArquivo(Integer.valueOf(0)); ptoModel.setHoraAtual(LocalTime.now());
}
@Test
void testSetProcessado() {
ptoEventoModel.setProcessado(Boolean.TRUE);
} }
@Test @Test
void testSetEquipamento() { void testSetEquipamento() {
ptoEventoModel.setEquipamento(Integer.valueOf(0)); ptoModel.setEquipamento(0);
} }
@Test @Test
void testSetPeriodo() { void testSetPeriodo() {
ptoEventoModel.setPeriodo("periodo"); ptoModel.setPeriodo("periodo");
} }
@Test @Test
void testEquals() { void testEquals() {
ptoEventoModel = other; ptoModel = other;
boolean result = ptoEventoModel.equals(other); Assertions.assertEquals(ptoModel, other);
Assertions.assertTrue(result);
} }
@Test @Test
void testCanEqual() { void testCanEqual() {
ptoEventoModel = other; ptoModel = other;
boolean result = ptoEventoModel.canEqual(other); boolean result = ptoModel.canEqual(other);
Assertions.assertTrue(result); Assertions.assertTrue(result);
} }
@Test @Test
void testHashCode() { void testHashCode() {
ptoEventoModel = other; ptoModel = other;
Assertions.assertEquals(other.hashCode(), ptoEventoModel.hashCode()); Assertions.assertEquals(other.hashCode(), ptoModel.hashCode());
} }
@Test @Test
void testToString() { void testToString() {
ptoEventoModel = other; ptoModel = other;
String result = ptoEventoModel.toString(); String result = ptoModel.toString();
Assertions.assertEquals(other.toString(), result); Assertions.assertEquals(other.toString(), result);
} }

Loading…
Cancel
Save