parent
c46114ccc5
commit
9194ec2d94
|
|
@ -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) {
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,7 @@ public class QmsInspectionTicketDetailVO {
|
||||||
private Boolean isEdit;
|
private Boolean isEdit;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 是否有关闭权限(创建人且工单状态为已完成时为true)
|
* 是否有关闭权限(负责人且工单状态为已完成时为true)
|
||||||
*/
|
*/
|
||||||
private Boolean isShut;
|
private Boolean isShut;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue