pdi回调修改

巡检工单流程修改
This commit is contained in:
yf001217 2026-06-16 14:40:33 +08:00
parent c46114ccc5
commit 9194ec2d94
5 changed files with 32 additions and 40 deletions

View File

@ -142,8 +142,8 @@ public class QmsIssueTicketController extends BaseController {
} }
/** /**
* 创建人审核工单 * 工单审核
* 工单状态为2已完成创建人可以关闭或驳回工单 * 巡检工单由负责人关闭其他工单由创建人关闭或驳回
*/ */
@PostMapping("creatorReview") @PostMapping("creatorReview")
public ApiResult<Void> creatorReview(@Valid @RequestBody QmsIssueTicketCreatorReviewQO request) { public ApiResult<Void> creatorReview(@Valid @RequestBody QmsIssueTicketCreatorReviewQO request) {

View File

@ -454,25 +454,18 @@ public class QmsIssueTicketControllerService {
// 3. 根据审批状态分支处理 // 3. 根据审批状态分支处理
if (approvalStatus == 1) { if (approvalStatus == 1) {
// 驳回不创建处理记录工单改为待流转推送消息给创建人 // 驳回不创建处理记录巡检工单直接关闭
issueTicketService.lambdaUpdate() issueTicketService.lambdaUpdate()
.eq(QmsIssueTicket::getId, ticket.getId()) .eq(QmsIssueTicket::getId, ticket.getId())
.set(QmsIssueTicket::getStatus, (short) 0) .set(QmsIssueTicket::getStatus, (short) 3)
.set(QmsIssueTicket::getApprovalUserId, null) .set(QmsIssueTicket::getApprovalStatus, approvalStatus)
.set(QmsIssueTicket::getApprovalUserName, null) .set(request.getApprovalOpinion() != null,
.set(QmsIssueTicket::getApprovalStatus, null) QmsIssueTicket::getApprovalOpinion, request.getApprovalOpinion())
.set(QmsIssueTicket::getApprovalOpinion, null) .set(QmsIssueTicket::getApprovalTime, now)
.set(QmsIssueTicket::getApprovalTime, null)
.set(QmsIssueTicket::getUpdateUserId, currentUserId) .set(QmsIssueTicket::getUpdateUserId, currentUserId)
.set(QmsIssueTicket::getUpdateUserName, currentUserName) .set(QmsIssueTicket::getUpdateUserName, currentUserName)
.set(QmsIssueTicket::getUpdateTime, now) .set(QmsIssueTicket::getUpdateTime, now)
.update(); .update();
// 推送待办消息给创建人
QmsIssueTicketToDo todoItem = new QmsIssueTicketToDo()
.setTicketId(ticket.getId())
.setHandlerUserId(ticket.getCreateUserId());
issueTicketToDoService.save(todoItem);
} else { } else {
// 通过按现有流程处理 // 通过按现有流程处理
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(request.getHandlerUserIds())) VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(request.getHandlerUserIds()))
@ -3476,21 +3469,22 @@ public class QmsIssueTicketControllerService {
boolean leaderCanReview = isLeader && hasPendingLeaderReview(allProcesses, currentUserId); boolean leaderCanReview = isLeader && hasPendingLeaderReview(allProcesses, currentUserId);
boolean creatorCanDispatch = isCreator && status != null && status == 0; boolean creatorCanDispatch = isCreator && status != null && status == 0;
boolean creatorCanShut = isCreator && isCompletedStatus; boolean creatorCanShut = isCreator && !Objects.equals(ticket.getSourceType(), (short) 2) && isCompletedStatus;
boolean responsibleCanShut = isResponsiblePerson && isCompletedStatus;
vo.setIsReview(responsibleCanReview || handlerCanReview || leaderCanReview); vo.setIsReview(responsibleCanReview || handlerCanReview || leaderCanReview);
vo.setIsDispatch((responsibleCanDispatch && !leaderCanReview) || creatorCanDispatch); vo.setIsDispatch((responsibleCanDispatch && !leaderCanReview) || creatorCanDispatch);
vo.setIsEdit(handlerCanEdit); vo.setIsEdit(handlerCanEdit);
vo.setIsShut(creatorCanShut); vo.setIsShut(creatorCanShut || responsibleCanShut);
return vo; return vo;
} }
/** /**
* 创建人审核工单 * 工单审核
* 工单状态为2已完成创建人可以 * 工单状态为2已完成
* - 关闭工单status=3, createApproval=0 * - 巡检工单由负责人关闭
* - 驳回工单status=1, createApproval=1, 重置指定处理人的审批记录 * - 其他工单由创建人关闭或驳回
*/ */
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void creatorReview(@Valid QmsIssueTicketCreatorReviewQO request) { public void creatorReview(@Valid QmsIssueTicketCreatorReviewQO request) {
@ -3498,10 +3492,18 @@ public class QmsIssueTicketControllerService {
QmsIssueTicket ticket = issueTicketService.getById(request.getId()); QmsIssueTicket ticket = issueTicketService.getById(request.getId());
VUtil.trueThrowBusinessError(Objects.isNull(ticket)).throwMessage("工单不存在"); VUtil.trueThrowBusinessError(Objects.isNull(ticket)).throwMessage("工单不存在");
// 2. 校验当前用户为工单创建人 // 2. 校验当前用户权限巡检工单由负责人关闭其他工单由创建人审核
Long currentUserId = UserUtil.getUserId(); Long currentUserId = UserUtil.getUserId();
boolean inspectionTicket = Objects.equals(ticket.getSourceType(), (short) 2);
if (inspectionTicket) {
VUtil.trueThrowBusinessError(!currentUserId.equals(ticket.getApprovalUserId()))
.throwMessage("只有工单负责人才能审核");
VUtil.trueThrowBusinessError(request.getCreateApproval() != 0)
.throwMessage("巡检工单只允许关闭");
} else {
VUtil.trueThrowBusinessError(!currentUserId.equals(ticket.getCreateUserId())) VUtil.trueThrowBusinessError(!currentUserId.equals(ticket.getCreateUserId()))
.throwMessage("只有工单创建人才能审核"); .throwMessage("只有工单创建人才能审核");
}
// 3. 校验工单状态为已完成 // 3. 校验工单状态为已完成
VUtil.trueThrowBusinessError(ticket.getStatus() != 2) VUtil.trueThrowBusinessError(ticket.getStatus() != 2)

View File

@ -309,23 +309,14 @@ public class QmsIssueTicketProcessControllerService {
issueTicketService.lambdaUpdate() issueTicketService.lambdaUpdate()
.eq(QmsIssueTicket::getId, ticket.getId()) .eq(QmsIssueTicket::getId, ticket.getId())
.set(QmsIssueTicket::getStatus, (short) 0) .set(QmsIssueTicket::getStatus, (short) 3)
.set(QmsIssueTicket::getApprovalUserId, null) .set(QmsIssueTicket::getApprovalStatus, (short) 1)
.set(QmsIssueTicket::getApprovalUserName, null) .set(QmsIssueTicket::getApprovalOpinion, request.getApprovalOpinion())
.set(QmsIssueTicket::getApprovalStatus, null) .set(QmsIssueTicket::getApprovalTime, now)
.set(QmsIssueTicket::getApprovalOpinion, null)
.set(QmsIssueTicket::getApprovalTime, null)
.set(QmsIssueTicket::getUpdateUserId, currentUserId) .set(QmsIssueTicket::getUpdateUserId, currentUserId)
.set(QmsIssueTicket::getUpdateUserName, currentUserName) .set(QmsIssueTicket::getUpdateUserName, currentUserName)
.set(QmsIssueTicket::getUpdateTime, now) .set(QmsIssueTicket::getUpdateTime, now)
.update(); .update();
QmsIssueTicketToDo todoItem = new QmsIssueTicketToDo()
.setTicketId(ticket.getId())
.setHandlerUserId(ticket.getCreateUserId())
.setHasProcessed(false)
.setIsRead(false);
issueTicketToDoService.save(todoItem);
} }
private void leaderSubmitUnified(QmsIssueTicketProcessDraftQO request, QmsIssueTicket ticket, private void leaderSubmitUnified(QmsIssueTicketProcessDraftQO request, QmsIssueTicket ticket,

View File

@ -272,8 +272,7 @@ public class QmsPdiInspectionResultsControllerService {
.setDetectionCompletionTime(now) .setDetectionCompletionTime(now)
.setOverdue(overdueValue) .setOverdue(overdueValue)
.setInspectionEnable(hasDefect ? 3 : 2); .setInspectionEnable(hasDefect ? 3 : 2);
// 业务确认暂时关闭PDI回调WMS wmsPdiInspectionTaskCallbackService.callBack(taskRecord, overallResult);
// wmsPdiInspectionTaskCallbackService.callBack(taskRecord, overallResult);
// 8. 返回不合格项转换为VO图片改为List格式 // 8. 返回不合格项转换为VO图片改为List格式
return buildInspectionResultVOList(failedItems); return buildInspectionResultVOList(failedItems);

View File

@ -33,7 +33,7 @@ public class QmsInspectionTicketDetailVO {
private Boolean isEdit; private Boolean isEdit;
/** /**
* 是否有关闭权限创建人且工单状态为已完成时为true * 是否有关闭权限负责人且工单状态为已完成时为true
*/ */
private Boolean isShut; private Boolean isShut;