Compare commits

..

No commits in common. "24f9701bdac5dff26582d8cf5d80d0b32ca85aec" and "fc491bcac044e3991e082d731eaf9acace7f6322" have entirely different histories.

2 changed files with 19 additions and 31 deletions

View File

@ -169,11 +169,6 @@ public class QmsIssueTicketControllerService {
String currentUserName = UserUtil.getUserName();
LocalDateTime now = LocalDateTime.now();
// 校验不能分配给自己
if (request.getHandlerUserIds().contains(currentUserId)) {
throw new NflgException(STATE.BusinessError, "不能将工单分配给自己");
}
// 1. 校验工单存在
QmsIssueTicket ticket = issueTicketService.getById(request.getId());
VUtil.trueThrowBusinessError(Objects.isNull(ticket)).throwMessage("工单不存在");
@ -874,13 +869,6 @@ public class QmsIssueTicketControllerService {
String userName = UserUtil.getUserName();
LocalDateTime now = LocalDateTime.now();
// 校验不能分配给自己
boolean containsSelf = request.getHandlers().stream()
.anyMatch(h -> userId.equals(h.getHandlerUserId()));
if (containsSelf) {
throw new NflgException(STATE.BusinessError, "不能将工单分配给自己");
}
// 查询任务记录
QmsPdiTaskRecord taskRecord = pdiTaskRecordService.getById(request.getTaskRecordId());
if (Objects.isNull(taskRecord)) {
@ -1759,9 +1747,14 @@ public class QmsIssueTicketControllerService {
.anyMatch(p -> currentUserId.equals(p.getLeaderUserId()));
if (isLeader) {
// 领导仅有审核权限无编辑权限
// 领导isReview=true
vo.setIsReview(true);
vo.setIsEdit(false);
// isEdit领导未审批leaderApprovalResult为null且处理人已提交approvalStatus不为null时有编辑权限
// 处理人再次提交后leaderApprovalResult被重置为null领导重新获得编辑权限
boolean leaderCanEdit = allProcesses.stream()
.filter(p -> currentUserId.equals(p.getLeaderUserId()))
.anyMatch(p -> p.getLeaderApprovalResult() == null && p.getApprovalStatus() != null);
vo.setIsEdit(leaderCanEdit);
} else {
// 处理人/审批人
boolean hasUnapproved = allProcesses.stream()
@ -2091,23 +2084,27 @@ public class QmsIssueTicketControllerService {
}
}
// isEdit处理人为true领导只有审核权限
// isEdit处理人或领导为true
boolean isHandler = allProcesses.stream()
.anyMatch(p -> currentUserId.equals(p.getHandlerUserId()));
vo.setIsEdit(isHandler);
vo.setIsEdit(isHandler || isLeader);
// isReview领导始终有审核权限
vo.setIsReview(isLeader);
// isDispatch
Short status = ticket.getStatus();
if (currentUserId.equals(ticket.getCreateUserId())) {
// 创建人isDispatch仅在待流转状态
// 创建人isReview=falseisDispatch仅在待流转状态
vo.setIsReview(false);
vo.setIsDispatch(status != null && status == 0);
} else if (currentUserId.equals(ticket.getApprovalUserId())) {
// 工单表审批人isDispatch在处理中状态
// 工单表审批人isReview=falseisDispatch在处理中到已完成之间
vo.setIsReview(false);
vo.setIsDispatch(status != null && status == 1);
} else if (isLeader) {
// 上级领导isReview=trueisDispatch=false
vo.setIsReview(true);
vo.setIsDispatch(false);
} else {
// 处理人/审批人工单处理表全false
vo.setIsReview(false);
vo.setIsDispatch(false);
}

View File

@ -54,15 +54,6 @@ public class QmsIssueTicketProcessControllerService {
* 新增工单处理同步 Controller 直接调用
*/
public void add(QmsIssueTicketProcessAddQO request) {
Long currentUserId = UserUtil.getUserId();
// 校验不能分配给自己
boolean containsSelf = request.getHandlers().stream()
.anyMatch(h -> currentUserId.equals(h.getHandlerUserId()));
if (containsSelf) {
throw new NflgException(STATE.BusinessError, "不能将工单分配给自己");
}
// 校验工单是否存在
QmsIssueTicket ticket = issueTicketService.getById(request.getIssueTicketId());
if (ticket == null) {