feat(issue-ticket): 优化质量问题工单待办列表展示

- 修改控制器注释,明确为质量问题工单待办
- 查询待办事项时关联获取当前未完成工单的所有处理人名称
- 调整SQL查询逻辑,修正关联字段并限制待办视图的访问权限
- QmsTodoItemVO新增ticketId字段,替换currentUserName为currentHandleUserName以更准确表示含义
This commit is contained in:
曹鹏飞 2026-05-12 10:41:49 +08:00
parent ebdaa6b888
commit 1651ad5318
4 changed files with 37 additions and 5 deletions

View File

@ -12,7 +12,7 @@ import jakarta.validation.Valid;
import org.springframework.web.bind.annotation.*;
/**
* 工单待办
* 质量问题工单待办
*/
@RestController
@RequestMapping("/ticket-todo-item")

View File

@ -1,8 +1,13 @@
package com.nflg.qms.admin.service;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.nflg.wms.common.pojo.qo.QmsTodoItemSearchQO;
import com.nflg.wms.common.pojo.vo.QmsTodoItemVO;
import com.nflg.wms.repository.entity.QmsIssueTicketProcess;
import com.nflg.wms.repository.service.IQmsIssueTicketProcessService;
import com.nflg.wms.repository.service.IQmsIssueTicketService;
import com.nflg.wms.repository.service.IQmsIssueTicketToDoService;
import com.nflg.wms.repository.service.IQmsTodoItemService;
import jakarta.annotation.Resource;
@ -17,10 +22,32 @@ public class QmsIssueTicketTodoControllerService {
@Resource
private IQmsIssueTicketToDoService issueTicketToDoService;
@Resource
private IQmsIssueTicketProcessService issueTicketProcessService;
/**
* 分页查询待办事项列表
*/
public IPage<QmsTodoItemVO> search(QmsTodoItemSearchQO request) {
return issueTicketToDoService.search(request);
IPage<QmsTodoItemVO> pageData = issueTicketToDoService.search(request);
if (CollectionUtil.isNotEmpty(pageData.getRecords())) {
pageData.getRecords().forEach(item -> {
if (item.getStatus() != 2) {
item.setCurrentHandleUserName(
StrUtil.join(",",
issueTicketProcessService.lambdaQuery()
.select(QmsIssueTicketProcess::getHandlerUserName)
.eq(QmsIssueTicketProcess::getIssueTicketId, item.getTicketId())
.list()
.stream()
.map(QmsIssueTicketProcess::getHandlerUserName)
.toList()
)
);
}
});
}
return pageData;
}
}

View File

@ -12,6 +12,11 @@ public class QmsTodoItemVO {
private Long id;
/**
* 工单id
*/
private Long ticketId;
/**
* 工单编号
*/
@ -40,7 +45,7 @@ public class QmsTodoItemVO {
/**
* 当前节点处理人
*/
private String currentUserName;
private String currentHandleUserName;
/**
* 流程结束时间

View File

@ -11,8 +11,8 @@
END AS type,
vit.*
FROM qms_issue_ticket_todo itd
INNER JOIN v_qms_issue_ticket vit ON itd.source_id = vit.ticket_id
where itd.handler_user_id = #{userId}
INNER JOIN v_qms_issue_ticket vit ON itd.ticket_id = vit.ticket_id
where itd.handler_user_id = #{userId} and (vit.handler_user_id=#{userId} or vit.approval_user_id=#{userId})
<if test="request.sourceType != null">
AND vit.source_type = #{request.sourceType}
</if>