pqc驳回修改

This commit is contained in:
yf001217 2026-06-16 08:32:47 +08:00
parent 39894531f5
commit c8ef39340e
1 changed files with 42 additions and 15 deletions

View File

@ -302,6 +302,7 @@ public class QmsIssueTicketControllerService {
// 5. 按处理人分组合并不合格项ID // 5. 按处理人分组合并不合格项ID
Map<Long, List<String>> userTaskMap = new LinkedHashMap<>(); Map<Long, List<String>> userTaskMap = new LinkedHashMap<>();
Map<Long, User> userMap = new LinkedHashMap<>();
for (QmsPqcTicketDispatchQO.AssigneeItem item : request.getAssignees()) { for (QmsPqcTicketDispatchQO.AssigneeItem item : request.getAssignees()) {
List<String> taskResultIds = Arrays.stream(item.getTaskResultIds().split(",")) List<String> taskResultIds = Arrays.stream(item.getTaskResultIds().split(","))
.filter(StrUtil::isNotBlank) .filter(StrUtil::isNotBlank)
@ -312,24 +313,23 @@ public class QmsIssueTicketControllerService {
if (taskResultIds.isEmpty()) { if (taskResultIds.isEmpty()) {
continue; continue;
} }
userTaskMap.computeIfAbsent(item.getUserId(), k -> new ArrayList<>())
User user = getPqcDispatchUser(item.getUserId());
VUtil.trueThrowBusinessError(user == null).throwMessage("处理人不存在:" + item.getUserId());
userMap.put(user.getId(), user);
userTaskMap.computeIfAbsent(user.getId(), k -> new ArrayList<>())
.addAll(taskResultIds); .addAll(taskResultIds);
} }
VUtil.trueThrowBusinessError(userTaskMap.isEmpty()).throwMessage("请选择未分派或已驳回的不合格项"); VUtil.trueThrowBusinessError(userTaskMap.isEmpty()).throwMessage("请选择未分派或已驳回的不合格项");
// 6. 批量查询处理人信息
List<Long> userIds = new ArrayList<>(userTaskMap.keySet());
List<User> users = userService.listByIds(userIds);
Map<Long, User> userMap = users.stream()
.collect(Collectors.toMap(User::getId, u -> u));
// 7. 为每个处理人创建处理记录并推送待办 // 7. 为每个处理人创建处理记录并推送待办
for (Map.Entry<Long, List<String>> entry : userTaskMap.entrySet()) { for (Map.Entry<Long, List<String>> entry : userTaskMap.entrySet()) {
Long userId = entry.getKey(); Long userId = entry.getKey();
List<String> taskResultIds = entry.getValue(); List<String> taskResultIds = entry.getValue();
User user = userMap.get(userId); User user = userMap.get(userId);
VUtil.trueThrowBusinessError(user == null).throwMessage("处理人不存在"); VUtil.trueThrowBusinessError(user == null).throwMessage("处理人不存在" + userId);
// 拼接不合格项ID用逗号 // 拼接不合格项ID用逗号
String taskResultIdsStr = String.join(",", taskResultIds); String taskResultIdsStr = String.join(",", taskResultIds);
@ -361,6 +361,21 @@ public class QmsIssueTicketControllerService {
.update(); .update();
} }
private User getPqcDispatchUser(Long handlerUserId) {
if (handlerUserId == null) {
return null;
}
User user = userService.getById(handlerUserId);
if (user != null) {
return user;
}
UserInterior userInterior = userInteriorService.getById(handlerUserId);
if (userInterior == null || userInterior.getUserId() == null) {
return null;
}
return userService.getById(userInterior.getUserId());
}
private Set<Long> getPqcRedispatchableTaskResultIds(QmsIssueTicket ticket) { private Set<Long> getPqcRedispatchableTaskResultIds(QmsIssueTicket ticket) {
List<QmsPqcTaskRecordDetails> allUnqualified = pqcTaskRecordDetailsService.lambdaQuery() List<QmsPqcTaskRecordDetails> allUnqualified = pqcTaskRecordDetailsService.lambdaQuery()
.eq(QmsPqcTaskRecordDetails::getTaskId, ticket.getSourceId()) .eq(QmsPqcTaskRecordDetails::getTaskId, ticket.getSourceId())
@ -2595,9 +2610,12 @@ public class QmsIssueTicketControllerService {
.eq(QmsIssueTicketProcess::getIssueTicketId, id) .eq(QmsIssueTicketProcess::getIssueTicketId, id)
.eq(QmsIssueTicketProcess::getHandlerUserId, currentUserId) .eq(QmsIssueTicketProcess::getHandlerUserId, currentUserId)
.list(); .list();
List<QmsIssueTicketProcess> effectiveProcesses = processes.stream()
.filter(p -> !Objects.equals(p.getApprovalStatus(), (short) 1))
.collect(Collectors.toList());
// 查询当前登录人的处理记录 // 查询当前登录人的处理记录
QmsIssueTicketProcess process = CollectionUtil.isEmpty(processes) ? null : processes.get(0); QmsIssueTicketProcess process = CollectionUtil.isEmpty(effectiveProcesses) ? null : effectiveProcesses.get(0);
if (process != null && StrUtil.isNotBlank(process.getTaskResultIds())) { if (process != null && StrUtil.isNotBlank(process.getTaskResultIds())) {
// 解析不合格项ID // 解析不合格项ID
@ -2721,17 +2739,17 @@ public class QmsIssueTicketControllerService {
} }
} }
} }
vo.setIssueDetails(buildPqcIssueDetails(processes)); vo.setIssueDetails(buildPqcIssueDetails(ticket, effectiveProcesses));
if (CollectionUtil.isNotEmpty(processes)) { if (CollectionUtil.isNotEmpty(effectiveProcesses)) {
Long temporaryTypeIdAll = dictionaryItemService.getId("工单解决措施", "临时纠正措施"); Long temporaryTypeIdAll = dictionaryItemService.getId("工单解决措施", "临时纠正措施");
Long permanentTypeIdAll = dictionaryItemService.getId("工单解决措施", "永久纠正措施"); Long permanentTypeIdAll = dictionaryItemService.getId("工单解决措施", "永久纠正措施");
Map<Long, Long> processHandlerUserIdMap = new HashMap<>(); Map<Long, Long> processHandlerUserIdMap = new HashMap<>();
for (QmsIssueTicketProcess p : processes) { for (QmsIssueTicketProcess p : effectiveProcesses) {
if (p.getId() != null) { if (p.getId() != null) {
processHandlerUserIdMap.put(p.getId(), p.getHandlerUserId()); processHandlerUserIdMap.put(p.getId(), p.getHandlerUserId());
} }
} }
List<Long> processIdsAll = processes.stream() List<Long> processIdsAll = effectiveProcesses.stream()
.map(QmsIssueTicketProcess::getId) .map(QmsIssueTicketProcess::getId)
.filter(Objects::nonNull) .filter(Objects::nonNull)
.collect(Collectors.toList()); .collect(Collectors.toList());
@ -2844,8 +2862,8 @@ public class QmsIssueTicketControllerService {
/** /**
* 解析文件列表 * 解析文件列表
*/ */
private List<QmsPqcTicketMyDetailVO.PqcIssueDetailVO> buildPqcIssueDetails(List<QmsIssueTicketProcess> processes) { private List<QmsPqcTicketMyDetailVO.PqcIssueDetailVO> buildPqcIssueDetails(QmsIssueTicket ticket, List<QmsIssueTicketProcess> processes) {
if (CollectionUtil.isEmpty(processes)) { if (ticket == null || ticket.getSourceId() == null) {
return new ArrayList<>(); return new ArrayList<>();
} }
@ -2857,6 +2875,15 @@ public class QmsIssueTicketControllerService {
taskResultProcessMap.putIfAbsent(taskResultId, process); taskResultProcessMap.putIfAbsent(taskResultId, process);
} }
} }
List<QmsPqcTaskRecordDetails> allUnqualified = pqcTaskRecordDetailsService.lambdaQuery()
.eq(QmsPqcTaskRecordDetails::getTaskId, ticket.getSourceId())
.eq(QmsPqcTaskRecordDetails::getReviewEnable, false)
.list();
for (QmsPqcTaskRecordDetails detail : allUnqualified) {
if (detail.getId() != null && !orderedTaskResultIds.contains(detail.getId())) {
orderedTaskResultIds.add(detail.getId());
}
}
if (CollectionUtil.isEmpty(orderedTaskResultIds)) { if (CollectionUtil.isEmpty(orderedTaskResultIds)) {
return new ArrayList<>(); return new ArrayList<>();
} }