巡检工单查询详情修改
This commit is contained in:
parent
12332aa04f
commit
7cafe589d3
|
|
@ -3148,10 +3148,37 @@ public class QmsIssueTicketControllerService {
|
||||||
.filter(p -> p.getApprovalStatus() == null || p.getApprovalStatus() != 1)
|
.filter(p -> p.getApprovalStatus() == null || p.getApprovalStatus() != 1)
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
if (CollectionUtil.isNotEmpty(validProcesses)) {
|
Long currentUserId = UserUtil.getUserId();
|
||||||
|
Short status = ticket.getStatus();
|
||||||
|
boolean isCreator = currentUserId.equals(ticket.getCreateUserId());
|
||||||
|
boolean isCompletedStatus = status != null && status == 2;
|
||||||
|
boolean isClosedStatus = status != null && status == 3;
|
||||||
|
boolean isVisibleLeader = validProcesses.stream()
|
||||||
|
.anyMatch(p -> isCurrentUserLeaderOfProcess(p, currentUserId));
|
||||||
|
boolean isVisibleHandler = validProcesses.stream()
|
||||||
|
.anyMatch(p -> currentUserId.equals(p.getHandlerUserId()) || currentUserId.equals(p.getApprovalUserId()));
|
||||||
|
|
||||||
|
List<QmsIssueTicketProcess> visibleProcesses;
|
||||||
|
if (isClosedStatus || (isCompletedStatus && isCreator)) {
|
||||||
|
visibleProcesses = validProcesses;
|
||||||
|
} else if (isVisibleLeader) {
|
||||||
|
visibleProcesses = validProcesses.stream()
|
||||||
|
.filter(p -> isCurrentUserLeaderOfProcess(p, currentUserId))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
} else if (isVisibleHandler) {
|
||||||
|
visibleProcesses = validProcesses.stream()
|
||||||
|
.filter(p -> currentUserId.equals(p.getHandlerUserId()) || currentUserId.equals(p.getApprovalUserId()))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
} else if (isCreator) {
|
||||||
|
visibleProcesses = validProcesses;
|
||||||
|
} else {
|
||||||
|
visibleProcesses = List.of();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (CollectionUtil.isNotEmpty(visibleProcesses)) {
|
||||||
// 组装处理人列表(按部门合并)
|
// 组装处理人列表(按部门合并)
|
||||||
Map<String, List<String>> handlersByDept = new LinkedHashMap<>();
|
Map<String, List<String>> handlersByDept = new LinkedHashMap<>();
|
||||||
for (QmsIssueTicketProcess process : validProcesses) {
|
for (QmsIssueTicketProcess process : visibleProcesses) {
|
||||||
if (StrUtil.isBlank(process.getHandlerUserName())) {
|
if (StrUtil.isBlank(process.getHandlerUserName())) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
@ -3180,7 +3207,7 @@ public class QmsIssueTicketControllerService {
|
||||||
|
|
||||||
// 组装领导列表(仅处理人已提交、领导已审批时才展示)
|
// 组装领导列表(仅处理人已提交、领导已审批时才展示)
|
||||||
Map<String, List<String>> leadersByDept = new LinkedHashMap<>();
|
Map<String, List<String>> leadersByDept = new LinkedHashMap<>();
|
||||||
for (QmsIssueTicketProcess process : validProcesses) {
|
for (QmsIssueTicketProcess process : visibleProcesses) {
|
||||||
// 领导审批状态为 null 表示处理人尚未提交,不展示
|
// 领导审批状态为 null 表示处理人尚未提交,不展示
|
||||||
if (process.getLeaderApprovalResult() == null || StrUtil.isBlank(process.getLeaderUserName())) {
|
if (process.getLeaderApprovalResult() == null || StrUtil.isBlank(process.getLeaderUserName())) {
|
||||||
continue;
|
continue;
|
||||||
|
|
@ -3216,10 +3243,17 @@ public class QmsIssueTicketControllerService {
|
||||||
}
|
}
|
||||||
vo.setLeaders(leaders);
|
vo.setLeaders(leaders);
|
||||||
|
|
||||||
// 填充根本原因(取第一条处理记录)
|
// 填充当前用户可见的根本原因
|
||||||
QmsIssueTicketProcess firstProcess = validProcesses.get(0);
|
List<QmsIssueTicketProcess> rootCauseProcesses = visibleProcesses.stream()
|
||||||
if (StrUtil.isNotBlank(firstProcess.getRootCause())) {
|
.filter(p -> StrUtil.isNotBlank(p.getRootCause()))
|
||||||
vo.setRootCause(firstProcess.getRootCause());
|
.collect(Collectors.toList());
|
||||||
|
if (rootCauseProcesses.size() == 1) {
|
||||||
|
vo.setRootCause(rootCauseProcesses.get(0).getRootCause());
|
||||||
|
} else if (rootCauseProcesses.size() > 1) {
|
||||||
|
String rootCause = rootCauseProcesses.stream()
|
||||||
|
.map(QmsIssueTicketProcess::getRootCause)
|
||||||
|
.collect(Collectors.joining("\n"));
|
||||||
|
vo.setRootCause(rootCause);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 查询纠正措施
|
// 查询纠正措施
|
||||||
|
|
@ -3229,7 +3263,7 @@ public class QmsIssueTicketControllerService {
|
||||||
List<QmsInspectionTicketDetailVO.MeasureVO> temporaryMeasures = new ArrayList<>();
|
List<QmsInspectionTicketDetailVO.MeasureVO> temporaryMeasures = new ArrayList<>();
|
||||||
List<QmsInspectionTicketDetailVO.MeasureVO> permanentMeasures = new ArrayList<>();
|
List<QmsInspectionTicketDetailVO.MeasureVO> permanentMeasures = new ArrayList<>();
|
||||||
|
|
||||||
for (QmsIssueTicketProcess p : validProcesses) {
|
for (QmsIssueTicketProcess p : visibleProcesses) {
|
||||||
List<QmsIssueTicketProcessMeasure> measures = issueTicketProcessMeasureService.lambdaQuery()
|
List<QmsIssueTicketProcessMeasure> measures = issueTicketProcessMeasureService.lambdaQuery()
|
||||||
.eq(QmsIssueTicketProcessMeasure::getIssueTicketProcessId, p.getId())
|
.eq(QmsIssueTicketProcessMeasure::getIssueTicketProcessId, p.getId())
|
||||||
.list();
|
.list();
|
||||||
|
|
@ -3267,13 +3301,8 @@ public class QmsIssueTicketControllerService {
|
||||||
}
|
}
|
||||||
|
|
||||||
// === 权限判断:isReview / isDispatch / isEdit ===
|
// === 权限判断:isReview / isDispatch / isEdit ===
|
||||||
Long currentUserId = UserUtil.getUserId();
|
|
||||||
// 获取该工单全部处理记录(权限判断用全部记录,不过滤)
|
// 获取该工单全部处理记录(权限判断用全部记录,不过滤)
|
||||||
List<QmsIssueTicketProcess> allProcesses = issueTicketProcessService.lambdaQuery()
|
List<QmsIssueTicketProcess> allProcesses = processes;
|
||||||
.eq(QmsIssueTicketProcess::getIssueTicketId, id)
|
|
||||||
.list();
|
|
||||||
|
|
||||||
Short status = ticket.getStatus();
|
|
||||||
|
|
||||||
// 判断当前用户是否为负责人(工单表的 approvalUserId)
|
// 判断当前用户是否为负责人(工单表的 approvalUserId)
|
||||||
boolean isResponsiblePerson = currentUserId.equals(ticket.getApprovalUserId());
|
boolean isResponsiblePerson = currentUserId.equals(ticket.getApprovalUserId());
|
||||||
|
|
@ -3305,9 +3334,7 @@ public class QmsIssueTicketControllerService {
|
||||||
}
|
}
|
||||||
|
|
||||||
// 负责人权限:工单状态为处理中时有审批和分配权限,有了审批状态后失去审批权限
|
// 负责人权限:工单状态为处理中时有审批和分配权限,有了审批状态后失去审批权限
|
||||||
boolean isCreator = currentUserId.equals(ticket.getCreateUserId());
|
|
||||||
boolean isProcessingStatus = status != null && (status == 0 || status == 1);
|
boolean isProcessingStatus = status != null && (status == 0 || status == 1);
|
||||||
boolean isCompletedStatus = status != null && status == 2;
|
|
||||||
|
|
||||||
boolean responsibleCanReview = isResponsiblePerson
|
boolean responsibleCanReview = isResponsiblePerson
|
||||||
&& status != null
|
&& status != null
|
||||||
|
|
|
||||||
|
|
@ -162,7 +162,7 @@ public class QmsIssueTicketProcessMeasureControllerService {
|
||||||
// 处理人处理:保存根本原因、审批状态和措施
|
// 处理人处理:保存根本原因、审批状态和措施
|
||||||
issueTicketProcessService.lambdaUpdate()
|
issueTicketProcessService.lambdaUpdate()
|
||||||
.eq(QmsIssueTicketProcess::getId, processId)
|
.eq(QmsIssueTicketProcess::getId, processId)
|
||||||
.set(request.getRootCause() != null, QmsIssueTicketProcess::getRootCause, mergedRootCause)
|
.set(request.getRootCause() != null, QmsIssueTicketProcess::getRootCause, request.getRootCause())
|
||||||
.set(request.getApprovalStatus() != null, QmsIssueTicketProcess::getApprovalStatus, request.getApprovalStatus())
|
.set(request.getApprovalStatus() != null, QmsIssueTicketProcess::getApprovalStatus, request.getApprovalStatus())
|
||||||
.set(request.getApprovalOpinion() != null, QmsIssueTicketProcess::getApprovalOpinion, request.getApprovalOpinion())
|
.set(request.getApprovalOpinion() != null, QmsIssueTicketProcess::getApprovalOpinion, request.getApprovalOpinion())
|
||||||
.set(QmsIssueTicketProcess::getApprovalUserId, currentUserId)
|
.set(QmsIssueTicketProcess::getApprovalUserId, currentUserId)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue