diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsIssueTicketProcessControllerService.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsIssueTicketProcessControllerService.java index 0ae19518..a98ff508 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsIssueTicketProcessControllerService.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsIssueTicketProcessControllerService.java @@ -15,6 +15,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.time.LocalDateTime; +import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Objects; @@ -86,19 +87,39 @@ public class QmsIssueTicketProcessControllerService { Collectors.mapping(QmsIssueTicketProcessAddQO.HandlerItem::getTaskResultId, Collectors.toList()) )); + List handlerUserIds = new ArrayList<>(); + // 为每个处理人创建处理记录 for (Map.Entry> entry : handlerToResultsMap.entrySet()) { doAdd(request.getIssueTicketId(), entry.getKey(), entry.getValue()); + handlerUserIds.add(entry.getKey()); } - if (Objects.equals(ticket.getSourceType(), (short) 3) && !Objects.equals(ticket.getStatus(), (short) 1)) { - issueTicketService.lambdaUpdate() - .eq(QmsIssueTicket::getId, ticket.getId()) - .set(QmsIssueTicket::getStatus, (short) 1) - .set(QmsIssueTicket::getUpdateUserId, currentUserId) - .set(QmsIssueTicket::getUpdateUserName, currentUserName) - .set(QmsIssueTicket::getUpdateTime, now) + if (Objects.equals(ticket.getSourceType(), (short) 3)) { + issueTicketToDoService.lambdaUpdate() + .eq(QmsIssueTicketToDo::getTicketId, ticket.getId()) + .eq(QmsIssueTicketToDo::getHasProcessed, false) + .set(QmsIssueTicketToDo::getHasProcessed, true) .update(); + + for (Long handlerUserId : handlerUserIds) { + QmsIssueTicketToDo todoItem = new QmsIssueTicketToDo() + .setTicketId(ticket.getId()) + .setHandlerUserId(handlerUserId) + .setHasProcessed(false) + .setIsRead(false); + issueTicketToDoService.save(todoItem); + } + + if (!Objects.equals(ticket.getStatus(), (short) 1)) { + issueTicketService.lambdaUpdate() + .eq(QmsIssueTicket::getId, ticket.getId()) + .set(QmsIssueTicket::getStatus, (short) 1) + .set(QmsIssueTicket::getUpdateUserId, currentUserId) + .set(QmsIssueTicket::getUpdateUserName, currentUserName) + .set(QmsIssueTicket::getUpdateTime, now) + .update(); + } } }