Compare commits
4 Commits
fc491bcac0
...
24f9701bda
| Author | SHA1 | Date |
|---|---|---|
|
|
24f9701bda | |
|
|
7a4bcb01b0 | |
|
|
81822fba85 | |
|
|
c6772e6b53 |
|
|
@ -169,6 +169,11 @@ 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("工单不存在");
|
||||
|
|
@ -869,6 +874,13 @@ 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)) {
|
||||
|
|
@ -1747,14 +1759,9 @@ public class QmsIssueTicketControllerService {
|
|||
.anyMatch(p -> currentUserId.equals(p.getLeaderUserId()));
|
||||
|
||||
if (isLeader) {
|
||||
// 领导:isReview=true
|
||||
// 领导:仅有审核权限,无编辑权限
|
||||
vo.setIsReview(true);
|
||||
// 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);
|
||||
vo.setIsEdit(false);
|
||||
} else {
|
||||
// 处理人/审批人
|
||||
boolean hasUnapproved = allProcesses.stream()
|
||||
|
|
@ -2084,27 +2091,23 @@ public class QmsIssueTicketControllerService {
|
|||
}
|
||||
}
|
||||
|
||||
// isEdit:处理人或领导为true
|
||||
// isEdit:仅处理人为true,领导只有审核权限
|
||||
boolean isHandler = allProcesses.stream()
|
||||
.anyMatch(p -> currentUserId.equals(p.getHandlerUserId()));
|
||||
vo.setIsEdit(isHandler || isLeader);
|
||||
vo.setIsEdit(isHandler);
|
||||
|
||||
// isReview:领导始终有审核权限
|
||||
vo.setIsReview(isLeader);
|
||||
|
||||
// isDispatch
|
||||
Short status = ticket.getStatus();
|
||||
if (currentUserId.equals(ticket.getCreateUserId())) {
|
||||
// 创建人:isReview=false,isDispatch仅在待流转状态
|
||||
vo.setIsReview(false);
|
||||
// 创建人:isDispatch仅在待流转状态
|
||||
vo.setIsDispatch(status != null && status == 0);
|
||||
} else if (currentUserId.equals(ticket.getApprovalUserId())) {
|
||||
// 工单表审批人:isReview=false,isDispatch在处理中到已完成之间
|
||||
vo.setIsReview(false);
|
||||
// 工单表审批人:isDispatch在处理中状态
|
||||
vo.setIsDispatch(status != null && status == 1);
|
||||
} else if (isLeader) {
|
||||
// 上级领导:isReview=true,isDispatch=false
|
||||
vo.setIsReview(true);
|
||||
vo.setIsDispatch(false);
|
||||
} else {
|
||||
// 处理人/审批人(工单处理表):全false
|
||||
vo.setIsReview(false);
|
||||
vo.setIsDispatch(false);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -54,6 +54,15 @@ 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) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue