巡检工单流程修改
This commit is contained in:
parent
0e08927c3a
commit
1ded1581d4
|
|
@ -3428,11 +3428,8 @@ public class QmsIssueTicketControllerService {
|
||||||
boolean isResponsiblePerson = currentUserId.equals(ticket.getApprovalUserId());
|
boolean isResponsiblePerson = currentUserId.equals(ticket.getApprovalUserId());
|
||||||
|
|
||||||
// 判断当前用户是否为处理人
|
// 判断当前用户是否为处理人
|
||||||
QmsIssueTicketProcess myProcess = allProcesses.stream()
|
boolean isHandler = allProcesses.stream()
|
||||||
.filter(p -> currentUserId.equals(p.getHandlerUserId()))
|
.anyMatch(p -> currentUserId.equals(p.getHandlerUserId()));
|
||||||
.findFirst()
|
|
||||||
.orElse(null);
|
|
||||||
boolean isHandler = myProcess != null;
|
|
||||||
|
|
||||||
// 判断是否为领导:1.已在process表记录了leaderUserId 2.或当前用户是处理人的部门负责人
|
// 判断是否为领导:1.已在process表记录了leaderUserId 2.或当前用户是处理人的部门负责人
|
||||||
boolean isLeader = allProcesses.stream()
|
boolean isLeader = allProcesses.stream()
|
||||||
|
|
@ -3462,8 +3459,9 @@ public class QmsIssueTicketControllerService {
|
||||||
&& ticket.getApprovalStatus() == null;
|
&& ticket.getApprovalStatus() == null;
|
||||||
boolean responsibleCanDispatch = isResponsiblePerson && isProcessingStatus;
|
boolean responsibleCanDispatch = isResponsiblePerson && isProcessingStatus;
|
||||||
|
|
||||||
Short handlerApprovalStatus = isHandler ? myProcess.getApprovalStatus() : null;
|
boolean handlerCanReview = allProcesses.stream()
|
||||||
boolean handlerCanReview = isHandler && handlerApprovalStatus == null;
|
.filter(p -> currentUserId.equals(p.getHandlerUserId()))
|
||||||
|
.anyMatch(p -> p.getApprovalStatus() == null && p.getLeaderApprovalResult() == null);
|
||||||
boolean handlerCanEdit = handlerCanReview;
|
boolean handlerCanEdit = handlerCanReview;
|
||||||
|
|
||||||
boolean leaderCanReview = isLeader && hasPendingLeaderReview(allProcesses, currentUserId);
|
boolean leaderCanReview = isLeader && hasPendingLeaderReview(allProcesses, currentUserId);
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Comparator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
@ -298,11 +299,32 @@ public class QmsIssueTicketProcessControllerService {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
return processes.stream()
|
return processes.stream()
|
||||||
.filter(p -> StrUtil.isNotBlank(p.getTaskResultIds()))
|
.min(Comparator.comparingInt(p -> getProcessPriority(p, currentUserId)))
|
||||||
.findFirst()
|
|
||||||
.orElse(processes.get(0));
|
.orElse(processes.get(0));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private int getProcessPriority(QmsIssueTicketProcess process, Long currentUserId) {
|
||||||
|
if (Objects.equals(process.getHandlerUserId(), currentUserId)
|
||||||
|
&& process.getApprovalStatus() == null
|
||||||
|
&& process.getLeaderApprovalResult() == null) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
if (Objects.equals(process.getApprovalUserId(), currentUserId)
|
||||||
|
&& process.getApprovalStatus() == null
|
||||||
|
&& process.getLeaderApprovalResult() == null) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
if (Objects.equals(process.getLeaderUserId(), currentUserId)
|
||||||
|
&& Objects.equals(process.getApprovalStatus(), (short) 0)
|
||||||
|
&& process.getLeaderApprovalResult() == null) {
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
if (StrUtil.isNotBlank(process.getTaskResultIds())) {
|
||||||
|
return 3;
|
||||||
|
}
|
||||||
|
return 4;
|
||||||
|
}
|
||||||
|
|
||||||
private void rejectInspectionByResponsible(QmsIssueTicketProcessDraftQO request, QmsIssueTicket ticket,
|
private void rejectInspectionByResponsible(QmsIssueTicketProcessDraftQO request, QmsIssueTicket ticket,
|
||||||
LocalDateTime now, Long currentUserId, String currentUserName) {
|
LocalDateTime now, Long currentUserId, String currentUserName) {
|
||||||
issueTicketToDoService.processed(ticket.getId());
|
issueTicketToDoService.processed(ticket.getId());
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,7 @@ import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.Comparator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
|
|
@ -236,11 +237,32 @@ public class QmsIssueTicketProcessMeasureControllerService {
|
||||||
throw new NflgException(STATE.BusinessError, "未找到当前用户的工单处理记录");
|
throw new NflgException(STATE.BusinessError, "未找到当前用户的工单处理记录");
|
||||||
}
|
}
|
||||||
return processes.stream()
|
return processes.stream()
|
||||||
.filter(p -> StrUtil.isNotBlank(p.getTaskResultIds()))
|
.min(Comparator.comparingInt(p -> getProcessPriority(p, userId)))
|
||||||
.findFirst()
|
|
||||||
.orElse(processes.get(0));
|
.orElse(processes.get(0));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private int getProcessPriority(QmsIssueTicketProcess process, Long userId) {
|
||||||
|
if (Objects.equals(process.getHandlerUserId(), userId)
|
||||||
|
&& process.getApprovalStatus() == null
|
||||||
|
&& process.getLeaderApprovalResult() == null) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
if (Objects.equals(process.getApprovalUserId(), userId)
|
||||||
|
&& process.getApprovalStatus() == null
|
||||||
|
&& process.getLeaderApprovalResult() == null) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
if (Objects.equals(process.getLeaderUserId(), userId)
|
||||||
|
&& Objects.equals(process.getApprovalStatus(), (short) 0)
|
||||||
|
&& process.getLeaderApprovalResult() == null) {
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
if (StrUtil.isNotBlank(process.getTaskResultIds())) {
|
||||||
|
return 3;
|
||||||
|
}
|
||||||
|
return 4;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 保存措施记录(先删除旧数据,再分别插入临时措施和永久措施)
|
* 保存措施记录(先删除旧数据,再分别插入临时措施和永久措施)
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@
|
||||||
vit.*
|
vit.*
|
||||||
FROM qms_issue_ticket_todo itd
|
FROM qms_issue_ticket_todo itd
|
||||||
INNER JOIN v_qms_issue_ticket vit ON itd.ticket_id = vit.ticket_id
|
INNER JOIN v_qms_issue_ticket vit ON itd.ticket_id = vit.ticket_id
|
||||||
where itd.handler_user_id = #{userId} and (vit.handler_user_id=#{userId} or vit.approval_user_id=#{userId})
|
where itd.handler_user_id = #{userId}
|
||||||
<if test="request.sourceType != null">
|
<if test="request.sourceType != null">
|
||||||
AND vit.source_type = #{request.sourceType}
|
AND vit.source_type = #{request.sourceType}
|
||||||
</if>
|
</if>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue