pqc工单完成修改

This commit is contained in:
yf001217 2026-06-15 11:21:04 +08:00
parent 25f84d0511
commit 1fb2394a5a
4 changed files with 56 additions and 5 deletions

View File

@ -2686,6 +2686,7 @@ public class QmsIssueTicketControllerService {
vo.setIsDispatch(ticket.getStatus() != null && (ticket.getStatus() == 0 || ticket.getStatus() == 1));
vo.setIsReview(ticket.getStatus() != null && ticket.getStatus() == 2);
vo.setIsEdit(false);
vo.setIsShut(ticket.getStatus() != null && ticket.getStatus() == 2);
} else if (isHandler && process != null) {
// 处理人
// - isDispatch=false处理人无分派权限
@ -2694,11 +2695,13 @@ public class QmsIssueTicketControllerService {
vo.setIsDispatch(false);
vo.setIsReview(ticket.getStatus() != null && ticket.getStatus() == 1 && process.getApprovalStatus() == null);
vo.setIsEdit(ticket.getStatus() != null && ticket.getStatus() == 1 && process.getApprovalStatus() == null);
vo.setIsShut(false);
} else {
// 其他角色无权限
vo.setIsDispatch(false);
vo.setIsReview(false);
vo.setIsEdit(false);
vo.setIsShut(false);
}
return vo;

View File

@ -500,11 +500,21 @@ public class QmsIssueTicketProcessControllerService {
// 3. 根据审批状态处理
if (approvalStatus == 1) {
// 驳回推送给工单创建人
boolean allHandlersRejected = isAllPqcHandlersRejected(ticket.getId());
if (allHandlersRejected) {
issueTicketService.lambdaUpdate()
.eq(QmsIssueTicket::getId, ticket.getId())
.set(QmsIssueTicket::getStatus, (short) 0)
.set(QmsIssueTicket::getUpdateUserId, currentUserId)
.set(QmsIssueTicket::getUpdateUserName, currentUserName)
.set(QmsIssueTicket::getUpdateTime, now)
.update();
QmsIssueTicketToDo todoItem = new QmsIssueTicketToDo()
.setTicketId(ticket.getId())
.setHandlerUserId(ticket.getCreateUserId());
issueTicketToDoService.save(todoItem);
}
} else if (approvalStatus == 0) {
// 通过校验措施临时措施或永久措施至少填一个
boolean hasMeasures = checkPqcMeasures(process.getId());
@ -594,4 +604,30 @@ public class QmsIssueTicketProcessControllerService {
.allMatch(list -> list.stream()
.anyMatch(p -> p.getApprovalTime() != null || currentUserId.equals(p.getHandlerUserId())));
}
private boolean isAllPqcHandlersRejected(Long ticketId) {
List<QmsIssueTicketProcess> processes = issueTicketProcessService.lambdaQuery()
.eq(QmsIssueTicketProcess::getIssueTicketId, ticketId)
.list();
List<QmsIssueTicketProcess> dispatchedProcesses = processes.stream()
.filter(p -> StrUtil.isNotBlank(p.getTaskResultIds()))
.toList();
List<QmsIssueTicketProcess> effectiveProcesses = dispatchedProcesses.isEmpty()
? processes
: dispatchedProcesses;
Map<Long, List<QmsIssueTicketProcess>> processMap = effectiveProcesses.stream()
.filter(p -> p.getHandlerUserId() != null)
.collect(Collectors.groupingBy(QmsIssueTicketProcess::getHandlerUserId));
if (processMap.isEmpty()) {
return false;
}
return processMap
.values()
.stream()
.allMatch(list -> list.stream()
.anyMatch(p -> Objects.equals(p.getApprovalStatus(), (short) 1)));
}
}

View File

@ -61,6 +61,9 @@ public class QmsPqcTaskRecordControllerService {
@Resource
private IQmsIssueTicketService issueTicketService;
@Resource
private IQmsIssueTicketToDoService issueTicketToDoService;
@Resource
private IUserService userService;
@ -1564,6 +1567,13 @@ public class QmsPqcTaskRecordControllerService {
issueTicketService.save(ticket);
QmsIssueTicketToDo ticketTodo = new QmsIssueTicketToDo()
.setTicketId(ticket.getId())
.setHandlerUserId(taskRecord.getReviewerId())
.setHasProcessed(false)
.setIsRead(false);
issueTicketToDoService.save(ticketTodo);
// 2. 任务总体合格时仅生成工单不创建重检任务
if (!Boolean.FALSE.equals(taskRecord.getEnable())) {
return ticket.getId();

View File

@ -31,6 +31,8 @@ public class QmsPqcTicketMyDetailVO {
*/
private Boolean isEdit;
private Boolean isShut;
/**
* 来源类型3=PQC
*/