fix: fix bugs Visit, VisitDTO, VisitServiceImpl, VisitMapper
This commit is contained in:
parent
9d2aa4ddb2
commit
fa27254abf
@ -33,11 +33,11 @@ public class Visit {
|
||||
private boolean isFinished = false;
|
||||
|
||||
@ManyToOne(fetch = FetchType.EAGER)
|
||||
@JoinColumn(name = "start_terminal_id", referencedColumnName = "code", nullable = false)
|
||||
@JoinColumn(name = "start_terminal_id", referencedColumnName = "id", nullable = false)
|
||||
private Terminal startTerminal;
|
||||
|
||||
@ManyToOne(fetch = FetchType.EAGER)
|
||||
@JoinColumn(name = "end_terminal_id", referencedColumnName = "code")
|
||||
@JoinColumn(name = "end_terminal_id", referencedColumnName = "id")
|
||||
private Terminal endTerminal;
|
||||
|
||||
@ManyToOne(fetch = FetchType.EAGER)
|
||||
|
@ -22,7 +22,7 @@ public class VisitDTO {
|
||||
|
||||
// Возвращается длительность посещения в формате LocalDateTime.toString(),
|
||||
// превратить обратно можно с помощью LocalDateTime.parse().
|
||||
private String durationVisit;
|
||||
private long durationVisit;
|
||||
private String officeName;
|
||||
|
||||
private String typePassage; // Строка либо PASSAGE_CARD, либо PASSAGE_TELEPHONE
|
||||
|
@ -18,9 +18,15 @@ public class VisitMapper {
|
||||
|
||||
visitDTO.setId(visit.getId());
|
||||
visitDTO.setStartVisit(visit.getStartVisit().toString());
|
||||
visitDTO.setEndVisit(visit.getEndVisit().toString());
|
||||
|
||||
if (visit.getEndVisit() == null) visitDTO.setEndVisit(null);
|
||||
else visitDTO.setEndVisit(visit.getEndVisit().toString());
|
||||
|
||||
visitDTO.setFinished(visit.isFinished());
|
||||
visitDTO.setDurationVisit(Utils.period(visit.getStartVisit(), visit.getEndVisit()).toString());
|
||||
|
||||
if (visit.getEndVisit() == null) visitDTO.setDurationVisit(Utils.period(visit.getStartVisit(), LocalDateTime.now()));
|
||||
else visitDTO.setDurationVisit(Utils.period(visit.getStartVisit(), visit.getEndVisit()));
|
||||
|
||||
visitDTO.setOfficeName(visit.getStartTerminal().getOffice().getName());
|
||||
visitDTO.setTypePassage(visit.getPassage().getPassageName());
|
||||
|
||||
|
@ -101,7 +101,7 @@ public class VisitServiceImpl implements VisitService {
|
||||
.orElseThrow(() -> new ResourceNotFoundException("Терминал с id (" + endTerminalId + ") не найден!"));
|
||||
Visit activeVisit = getActiveVisit(employee);
|
||||
|
||||
activeVisit.setStartVisit(LocalDateTime.now());
|
||||
activeVisit.setEndVisit(LocalDateTime.now());
|
||||
activeVisit.setFinished(true);
|
||||
activeVisit.setEndTerminal(terminal);
|
||||
|
||||
@ -117,7 +117,7 @@ public class VisitServiceImpl implements VisitService {
|
||||
}
|
||||
|
||||
private static Visit getActiveVisit(Employee employee) {
|
||||
List<Visit> visits = employee.getVisits().stream().filter(Visit::isFinished).collect(Collectors.toList());
|
||||
List<Visit> visits = employee.getVisits().stream().filter(visit -> !visit.isFinished()).collect(Collectors.toList());
|
||||
|
||||
if (visits.size() == 1) return visits.get(0);
|
||||
else throw new IllegalStateException("Пользователь не может находится в суперпозиции");
|
||||
|
Loading…
x
Reference in New Issue
Block a user