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