pqc、巡检工单修改

This commit is contained in:
yf001217 2026-06-15 15:27:57 +08:00
parent 21ac284073
commit c82c48881a
2 changed files with 46 additions and 10 deletions

View File

@ -652,7 +652,7 @@ public class QmsIssueTicketControllerService {
.setIncidentDescription(incidentDescription) .setIncidentDescription(incidentDescription)
.setRemark(request.getRemark()) .setRemark(request.getRemark())
.setUnqualifiedQty(unqualifiedDetails.size()) .setUnqualifiedQty(unqualifiedDetails.size())
.setStatus((short) 1) .setStatus((short) 0)
.setCreateUserId(userId) .setCreateUserId(userId)
.setCreateUserName(userName) .setCreateUserName(userName)
.setCreateTime(now) .setCreateTime(now)
@ -661,6 +661,13 @@ public class QmsIssueTicketControllerService {
.setUpdateTime(now); .setUpdateTime(now);
issueTicketService.save(entity); issueTicketService.save(entity);
QmsIssueTicketToDo todoItem = new QmsIssueTicketToDo()
.setTicketId(entity.getId())
.setHandlerUserId(userId)
.setHasProcessed(false)
.setIsRead(false);
issueTicketToDoService.save(todoItem);
Set<Long> fileIds = new HashSet<>(); Set<Long> fileIds = new HashSet<>();
Set<Long> itemIds = unqualifiedDetails.stream() Set<Long> itemIds = unqualifiedDetails.stream()
.map(QmsPqcTaskRecordDetails::getInspectionPointItemId) .map(QmsPqcTaskRecordDetails::getInspectionPointItemId)

View File

@ -293,10 +293,8 @@ public class QmsIssueTicketProcessControllerService {
VUtil.trueThrowBusinessError(Objects.isNull(request.getApprovalStatus())) VUtil.trueThrowBusinessError(Objects.isNull(request.getApprovalStatus()))
.throwMessage("提交时审批状态不能为空"); .throwMessage("提交时审批状态不能为空");
// 2. 驳回时校验handlers和审批意见不能为空 // 2. 驳回时校验审批意见不能为空
if (request.getApprovalStatus() == 1) { if (request.getApprovalStatus() == 1) {
VUtil.trueThrowBusinessError(request.getHandlers() == null || request.getHandlers().isEmpty())
.throwMessage("驳回时处理人列表不能为空");
VUtil.trueThrowBusinessError(StrUtil.isBlank(request.getApprovalOpinion())) VUtil.trueThrowBusinessError(StrUtil.isBlank(request.getApprovalOpinion()))
.throwMessage("驳回时审批意见不能为空"); .throwMessage("驳回时审批意见不能为空");
} }
@ -320,16 +318,31 @@ public class QmsIssueTicketProcessControllerService {
Short leaderApprovalResult = request.getApprovalStatus(); Short leaderApprovalResult = request.getApprovalStatus();
if (leaderApprovalResult == 1) { if (leaderApprovalResult == 1) {
// 驳回只驳回传入的handlers对应的处理记录 // 驳回自动驳回当前领导部门下属的待审批处理记录
Long issueTicketId = ticket.getId(); Long issueTicketId = ticket.getId();
List<Long> rejectUserIds = request.getHandlers().stream() List<QmsIssueTicketProcess> rejectProcesses = issueTicketProcessService.lambdaQuery()
.map(QmsIssueTicketProcessDraftQO.RejectHandlerItem::getHandlerUserId) .eq(QmsIssueTicketProcess::getIssueTicketId, issueTicketId)
.eq(QmsIssueTicketProcess::getApprovalStatus, (short) 0)
.isNull(QmsIssueTicketProcess::getLeaderApprovalResult)
.list()
.stream()
.filter(p -> isCurrentUserHeadOfHandlerDept(p.getHandlerUserId(), currentUserId))
.collect(Collectors.toList());
VUtil.trueThrowBusinessError(rejectProcesses.isEmpty())
.throwMessage("未找到当前领导可驳回的下属处理记录");
List<Long> rejectProcessIds = rejectProcesses.stream()
.map(QmsIssueTicketProcess::getId)
.collect(Collectors.toList());
List<Long> rejectUserIds = rejectProcesses.stream()
.map(QmsIssueTicketProcess::getHandlerUserId)
.filter(Objects::nonNull)
.distinct()
.collect(Collectors.toList()); .collect(Collectors.toList());
// 更新指定处理人的记录重置审批状态 // 更新指定处理人的记录重置审批状态
issueTicketProcessService.lambdaUpdate() issueTicketProcessService.lambdaUpdate()
.eq(QmsIssueTicketProcess::getIssueTicketId, issueTicketId) .in(QmsIssueTicketProcess::getId, rejectProcessIds)
.in(QmsIssueTicketProcess::getHandlerUserId, rejectUserIds)
.set(QmsIssueTicketProcess::getApprovalStatus, null) .set(QmsIssueTicketProcess::getApprovalStatus, null)
.set(QmsIssueTicketProcess::getApprovalTime, null) .set(QmsIssueTicketProcess::getApprovalTime, null)
.set(QmsIssueTicketProcess::getLeaderApprovalResult, null) .set(QmsIssueTicketProcess::getLeaderApprovalResult, null)
@ -352,7 +365,9 @@ public class QmsIssueTicketProcessControllerService {
for (Long userId : rejectUserIds) { for (Long userId : rejectUserIds) {
QmsIssueTicketToDo todoItem = new QmsIssueTicketToDo() QmsIssueTicketToDo todoItem = new QmsIssueTicketToDo()
.setTicketId(issueTicketId) .setTicketId(issueTicketId)
.setHandlerUserId(userId); .setHandlerUserId(userId)
.setHasProcessed(false)
.setIsRead(false);
issueTicketToDoService.save(todoItem); issueTicketToDoService.save(todoItem);
} }
} else if (leaderApprovalResult == 0) { } else if (leaderApprovalResult == 0) {
@ -444,6 +459,20 @@ public class QmsIssueTicketProcessControllerService {
} }
} }
private boolean isCurrentUserHeadOfHandlerDept(Long handlerUserId, Long currentUserId) {
if (handlerUserId == null || currentUserId == null) {
return false;
}
UserInterior handlerInterior = userInteriorService.lambdaQuery()
.eq(UserInterior::getUserId, handlerUserId)
.one();
if (handlerInterior == null || handlerInterior.getDeptId() == null) {
return false;
}
Department department = departmentService.getById(handlerInterior.getDeptId());
return department != null && currentUserId.equals(department.getHeadUserId());
}
/** /**
* PQC工单处理人提交 * PQC工单处理人提交
*/ */