Merge remote-tracking branch '惠信/qms/develop' into qms/develop

This commit is contained in:
曹鹏飞 2026-06-14 19:03:33 +08:00
commit 42293094c4
3 changed files with 94 additions and 0 deletions

View File

@ -127,6 +127,49 @@ public class QmsIssueTicketControllerService {
issueTicketService.removeByIds(ids); issueTicketService.removeByIds(ids);
} }
private Map<Long, String> buildCurrentHandlerNameMap(List<QmsIssueTicket> tickets) {
if (CollectionUtil.isEmpty(tickets)) {
return Collections.emptyMap();
}
List<Long> ticketIds = tickets.stream()
.map(QmsIssueTicket::getId)
.filter(Objects::nonNull)
.collect(Collectors.toList());
if (CollectionUtil.isEmpty(ticketIds)) {
return Collections.emptyMap();
}
Map<Long, LinkedHashSet<String>> ticketHandlerMap = new HashMap<>();
List<QmsIssueTicketProcess> processes = issueTicketProcessService.lambdaQuery()
.in(QmsIssueTicketProcess::getIssueTicketId, ticketIds)
.orderByAsc(QmsIssueTicketProcess::getId)
.list();
for (QmsIssueTicketProcess process : processes) {
String handlerName = StrUtil.isNotBlank(process.getLeaderUserName())
? process.getLeaderUserName()
: process.getHandlerUserName();
if (StrUtil.isBlank(handlerName)) {
continue;
}
ticketHandlerMap.computeIfAbsent(process.getIssueTicketId(), key -> new LinkedHashSet<>())
.add(handlerName);
}
Map<Long, String> result = new HashMap<>();
for (QmsIssueTicket ticket : tickets) {
LinkedHashSet<String> handlerNames = ticketHandlerMap.get(ticket.getId());
if (CollectionUtil.isEmpty(handlerNames) && StrUtil.isNotBlank(ticket.getApprovalUserName())) {
handlerNames = new LinkedHashSet<>();
handlerNames.add(ticket.getApprovalUserName());
}
if (CollectionUtil.isNotEmpty(handlerNames)) {
result.put(ticket.getId(), String.join("", handlerNames));
}
}
return result;
}
/** /**
* 发起巡检工单 * 发起巡检工单
* 1. 校验工单存在且来源类型为巡检sourceType=2 * 1. 校验工单存在且来源类型为巡检sourceType=2
@ -1109,6 +1152,8 @@ public class QmsIssueTicketControllerService {
Page<QmsIssueTicket> page = new Page<>(request.getPage(), request.getPageSize()); Page<QmsIssueTicket> page = new Page<>(request.getPage(), request.getPageSize());
Page<QmsIssueTicket> resultPage = issueTicketService.page(page, wrapper); Page<QmsIssueTicket> resultPage = issueTicketService.page(page, wrapper);
Map<Long, String> currentHandlerNameMap = buildCurrentHandlerNameMap(resultPage.getRecords());
// 转换为VO // 转换为VO
List<QmsIssueTicketVO> voList = resultPage.getRecords().stream() List<QmsIssueTicketVO> voList = resultPage.getRecords().stream()
.map(ticket -> { .map(ticket -> {
@ -1125,6 +1170,7 @@ public class QmsIssueTicketControllerService {
vo.setStatus(ticket.getStatus()); vo.setStatus(ticket.getStatus());
vo.setCreateApproval(ticket.getCreateApproval()); vo.setCreateApproval(ticket.getCreateApproval());
vo.setCreateApprovalOpinion(ticket.getCreateApprovalOpinion()); vo.setCreateApprovalOpinion(ticket.getCreateApprovalOpinion());
vo.setCurrentHandlerName(currentHandlerNameMap.get(ticket.getId()));
return vo; return vo;
}) })
.collect(Collectors.toList()); .collect(Collectors.toList());

View File

@ -103,6 +103,8 @@ public class QmsIssueTicketVO {
*/ */
private String approvalUserName; private String approvalUserName;
private String currentHandlerName;
/** /**
* 审批时间 * 审批时间
*/ */

View File

@ -114,9 +114,12 @@ public class QmsIssueTicketServiceImpl
} }
} }
Map<Long, String> currentHandlerNameMap = buildCurrentHandlerNameMap(result.getRecords());
List<QmsIssueTicketVO> voList = result.getRecords().stream() List<QmsIssueTicketVO> voList = result.getRecords().stream()
.map(entity -> { .map(entity -> {
QmsIssueTicketVO vo = BeanUtil.copyProperties(entity, QmsIssueTicketVO.class); QmsIssueTicketVO vo = BeanUtil.copyProperties(entity, QmsIssueTicketVO.class);
vo.setCurrentHandlerName(currentHandlerNameMap.get(entity.getId()));
// 组装图片列表 // 组装图片列表
if (StrUtil.isNotBlank(entity.getImageIds())) { if (StrUtil.isNotBlank(entity.getImageIds())) {
List<QmsIssueTicketVO.ImageVO> images = Arrays.stream(entity.getImageIds().split(",")) List<QmsIssueTicketVO.ImageVO> images = Arrays.stream(entity.getImageIds().split(","))
@ -149,4 +152,47 @@ public class QmsIssueTicketServiceImpl
pageData.setItems(voList); pageData.setItems(voList);
return pageData; return pageData;
} }
private Map<Long, String> buildCurrentHandlerNameMap(List<QmsIssueTicket> tickets) {
if (CollectionUtil.isEmpty(tickets)) {
return Collections.emptyMap();
}
List<Long> ticketIds = tickets.stream()
.map(QmsIssueTicket::getId)
.filter(Objects::nonNull)
.collect(Collectors.toList());
if (CollectionUtil.isEmpty(ticketIds)) {
return Collections.emptyMap();
}
Map<Long, LinkedHashSet<String>> ticketHandlerMap = new HashMap<>();
List<QmsIssueTicketProcess> processes = issueTicketProcessService.lambdaQuery()
.in(QmsIssueTicketProcess::getIssueTicketId, ticketIds)
.orderByAsc(QmsIssueTicketProcess::getId)
.list();
for (QmsIssueTicketProcess process : processes) {
String handlerName = StrUtil.isNotBlank(process.getLeaderUserName())
? process.getLeaderUserName()
: process.getHandlerUserName();
if (StrUtil.isBlank(handlerName)) {
continue;
}
ticketHandlerMap.computeIfAbsent(process.getIssueTicketId(), key -> new LinkedHashSet<>())
.add(handlerName);
}
Map<Long, String> result = new HashMap<>();
for (QmsIssueTicket ticket : tickets) {
LinkedHashSet<String> handlerNames = ticketHandlerMap.get(ticket.getId());
if (CollectionUtil.isEmpty(handlerNames) && StrUtil.isNotBlank(ticket.getApprovalUserName())) {
handlerNames = new LinkedHashSet<>();
handlerNames.add(ticket.getApprovalUserName());
}
if (CollectionUtil.isNotEmpty(handlerNames)) {
result.put(ticket.getId(), String.join("", handlerNames));
}
}
return result;
}
} }