diff --git a/src/main/java/com/dgu/cap/ticket/Ticket.java b/src/main/java/com/dgu/cap/ticket/Ticket.java index 3552e61..a1cd6f5 100644 --- a/src/main/java/com/dgu/cap/ticket/Ticket.java +++ b/src/main/java/com/dgu/cap/ticket/Ticket.java @@ -57,4 +57,8 @@ public void updateStatus(String newStatus) { this.resolvedAt = LocalDateTime.now(); } } + + public void initTicketNumber(String ticketNumber) { + this.ticketNumber = ticketNumber; + } } diff --git a/src/main/java/com/dgu/cap/ticket/TicketService.java b/src/main/java/com/dgu/cap/ticket/TicketService.java index 9ff30f9..8d0c34f 100644 --- a/src/main/java/com/dgu/cap/ticket/TicketService.java +++ b/src/main/java/com/dgu/cap/ticket/TicketService.java @@ -5,8 +5,8 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.time.LocalDate; import java.time.LocalDateTime; +import java.time.Year; import java.util.List; import java.util.concurrent.TimeUnit; @@ -30,10 +30,8 @@ public boolean isDuplicate(String podName, String anomalyType) { @Transactional public Ticket createTicket(CreateTicketRequest request) { - String ticketNumber = generateTicketNumber(); - Ticket ticket = Ticket.builder() - .ticketNumber(ticketNumber) + .ticketNumber("PENDING") .title(request.getPodName() + " " + request.getAnomalyType() + " 감지") .podName(request.getPodName()) .namespace(request.getNamespace()) @@ -49,6 +47,7 @@ public Ticket createTicket(CreateTicketRequest request) { .build(); ticket = ticketRepository.save(ticket); + ticket.initTicketNumber(String.format("TKT-%d-%03d", Year.now().getValue(), ticket.getId())); if (request.getCpu() != null) { TicketMetricSnapshot snapshot = TicketMetricSnapshot.builder() @@ -112,9 +111,4 @@ public List getActionLogs(Long ticketId) { return actionLogRepository.findByTicketIdOrderByCreatedAtDesc(ticketId); } - private String generateTicketNumber() { - int year = LocalDate.now().getYear(); - long count = ticketRepository.count() + 1; - return String.format("TKT-%d-%03d", year, count); - } }