pqc驳回修改
This commit is contained in:
parent
39894531f5
commit
c8ef39340e
|
|
@ -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<>();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue