巡检任务权限管理修改
This commit is contained in:
parent
085349bd08
commit
2220161145
|
|
@ -1546,6 +1546,41 @@ public class QmsIssueTicketControllerService {
|
|||
return rules == null ? null : rules.getModelNo();
|
||||
}
|
||||
|
||||
private boolean hasPendingLeaderReview(List<QmsIssueTicketProcess> processes, Long currentUserId) {
|
||||
if (CollectionUtil.isEmpty(processes)) {
|
||||
return false;
|
||||
}
|
||||
for (QmsIssueTicketProcess process : processes) {
|
||||
if (!Objects.equals(process.getApprovalStatus(), (short) 0)
|
||||
|| process.getLeaderApprovalResult() != null
|
||||
|| !isCurrentUserLeaderOfProcess(process, currentUserId)) {
|
||||
continue;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private boolean isCurrentUserLeaderOfProcess(QmsIssueTicketProcess process, Long currentUserId) {
|
||||
if (currentUserId == null || process == null) {
|
||||
return false;
|
||||
}
|
||||
if (currentUserId.equals(process.getLeaderUserId())) {
|
||||
return true;
|
||||
}
|
||||
if (process.getHandlerUserId() == null) {
|
||||
return false;
|
||||
}
|
||||
UserInterior handlerInterior = userInteriorService.lambdaQuery()
|
||||
.eq(UserInterior::getUserId, process.getHandlerUserId())
|
||||
.one();
|
||||
if (handlerInterior == null || handlerInterior.getDeptId() == null) {
|
||||
return false;
|
||||
}
|
||||
Department dept = departmentService.getById(handlerInterior.getDeptId());
|
||||
return dept != null && currentUserId.equals(dept.getHeadUserId());
|
||||
}
|
||||
|
||||
private String buildPqcIncidentDescription(List<QmsPqcTaskRecordDetails> detailList) {
|
||||
if (CollectionUtil.isEmpty(detailList)) {
|
||||
return "";
|
||||
|
|
@ -2295,8 +2330,8 @@ public class QmsIssueTicketControllerService {
|
|||
}
|
||||
|
||||
if (isLeader) {
|
||||
// 领导:仅有审核权限,无编辑权限
|
||||
vo.setIsReview(true);
|
||||
// 领导:仅存在待领导审核的处理记录时有审核权限
|
||||
vo.setIsReview(hasPendingLeaderReview(allProcesses, currentUserId));
|
||||
vo.setIsEdit(false);
|
||||
} else if (isHandler) {
|
||||
// 处理人/审批人
|
||||
|
|
@ -2304,11 +2339,10 @@ public class QmsIssueTicketControllerService {
|
|||
.filter(p -> currentUserId.equals(p.getHandlerUserId()) || currentUserId.equals(p.getApprovalUserId()))
|
||||
.anyMatch(p -> p.getApprovalStatus() == null);
|
||||
vo.setIsReview(hasUnapproved);
|
||||
// isEdit:未提交(approvalStatus为null)或领导驳回(leaderApprovalResult==1)时有编辑权限
|
||||
// isEdit:未提交或领导驳回重置后可编辑,提交后关闭编辑权限
|
||||
boolean canEdit = allProcesses.stream()
|
||||
.filter(p -> currentUserId.equals(p.getHandlerUserId()) || currentUserId.equals(p.getApprovalUserId()))
|
||||
.anyMatch(p -> p.getApprovalStatus() == null
|
||||
|| (p.getLeaderApprovalResult() != null && p.getLeaderApprovalResult() == 1));
|
||||
.anyMatch(p -> p.getApprovalStatus() == null);
|
||||
vo.setIsEdit(canEdit);
|
||||
} else {
|
||||
// 其他角色:无权限
|
||||
|
|
@ -2602,10 +2636,10 @@ public class QmsIssueTicketControllerService {
|
|||
// 处理人:
|
||||
// - isDispatch=false(处理人无分派权限)
|
||||
// - isReview=true(状态=1且审批状态为空时)
|
||||
// - isEdit=true(状态=1时)
|
||||
// - isEdit=true(状态=1且审批状态为空时)
|
||||
vo.setIsDispatch(false);
|
||||
vo.setIsReview(ticket.getStatus() != null && ticket.getStatus() == 1 && process.getApprovalStatus() == null);
|
||||
vo.setIsEdit(ticket.getStatus() != null && ticket.getStatus() == 1);
|
||||
vo.setIsEdit(ticket.getStatus() != null && ticket.getStatus() == 1 && process.getApprovalStatus() == null);
|
||||
} else {
|
||||
// 其他角色:无权限
|
||||
vo.setIsDispatch(false);
|
||||
|
|
@ -3196,7 +3230,7 @@ public class QmsIssueTicketControllerService {
|
|||
}
|
||||
// 领导权限:只有审核权限
|
||||
else if (isLeader) {
|
||||
vo.setIsReview(true);
|
||||
vo.setIsReview(hasPendingLeaderReview(allProcesses, currentUserId));
|
||||
vo.setIsEdit(false);
|
||||
vo.setIsDispatch(false);
|
||||
vo.setIsShut(false);
|
||||
|
|
|
|||
Loading…
Reference in New Issue