feat: 【bug-125】结案审核时,审核人不同意了,然后CQM更正措施后,重新点击结案审核确定了,但是之前的审核人没有收到待办提醒

保存解决方案后,给所有拒绝了之前方案的审核人添加待办消息
This commit is contained in:
曹鹏飞 2025-04-28 11:40:06 +08:00
parent ba0f4fca52
commit 49d0adbe94
5 changed files with 28 additions and 4 deletions

View File

@ -765,7 +765,24 @@ public class TicketController extends ControllerBase {
@PostMapping("saveSolutionMeasures")
@ApiMark(moduleName = "工单管理", apiName = "保存工单解决方案措施")
public ApiResult<Void> saveSolutionMeasures(@Valid @RequestBody SolutionMeasuresSaveRequest request){
ticketSolutionService.saveSolutionMeasures(request);
Ticket ticket = ticketSolutionService.saveSolutionMeasures(request);
List<SolutionReviewDepartmentVO> audits = ticketSolutionAuditService.getByTicket(request.getTicketId());
audits.forEach(audit -> {
if (audit.getState() == 0) {
adminMessageService.add(
new AdminMessage()
.setNo(ticket.getNo())
.setTitle(ticket.getTitle())
.setUserId(audit.getUserId())
.setSourceId(ticket.getId())
.setSource(0)
.setType(MessageType.WorkOrderAssignment.getState())
.setSubType(MessageSubType.TicketSolutionAudit.getState())
.setIsRead(false)
.setCreateTime(LocalDateTime.now())
);
}
});
return ApiResult.success();
}

View File

@ -4,6 +4,7 @@ import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;
@Data
public class SolutionReviewDepartmentVO {
@ -35,4 +36,7 @@ public class SolutionReviewDepartmentVO {
//审核不通过原因
private String reason;
//审核时间
private LocalDateTime createTime;
}

View File

@ -3,6 +3,7 @@ package com.nflg.mobilebroken.repository.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.nflg.mobilebroken.common.pojo.request.SolutionMeasuresSaveRequest;
import com.nflg.mobilebroken.common.pojo.vo.SolutionMeasuresVO;
import com.nflg.mobilebroken.repository.entity.Ticket;
import com.nflg.mobilebroken.repository.entity.TicketSolution;
/**
@ -17,5 +18,5 @@ public interface ITicketSolutionService extends IService<TicketSolution> {
SolutionMeasuresVO getSolutionMeasures(Integer ticketId);
void saveSolutionMeasures(SolutionMeasuresSaveRequest request);
Ticket saveSolutionMeasures(SolutionMeasuresSaveRequest request);
}

View File

@ -115,7 +115,7 @@ public class TicketSolutionServiceImpl extends ServiceImpl<TicketSolutionMapper,
@Transactional
@Override
public void saveSolutionMeasures(SolutionMeasuresSaveRequest request) {
public Ticket saveSolutionMeasures(SolutionMeasuresSaveRequest request) {
Ticket ticket=ticketService.getById(request.getTicketId());
VUtils.trueThrowBusinessError(Objects.isNull(ticket)).throwMessage("工单不存在");
VUtils.trueThrowBusinessError(!Objects.equals(ticket.getState(), TicketState.Processing.getState())
@ -179,5 +179,6 @@ public class TicketSolutionServiceImpl extends ServiceImpl<TicketSolutionMapper,
if (CollectionUtil.isNotEmpty(forUpdate)){
updateBatchById(forUpdate);
}
return ticket;
}
}

View File

@ -10,7 +10,8 @@
d.dept_name AS user_dept_name,
p.position_name AS user_title,
au.user_code,
tsa.reason
tsa.reason,
tsa.create_time
FROM ticket_solution_audit tsa
LEFT JOIN admin_user au ON tsa.user_id = au.id
LEFT JOIN t_base_department d ON d.id = au.department_id