巡检任务工单查询修改

This commit is contained in:
funny 2026-05-11 17:40:46 +08:00
parent edb387a8a5
commit eec0ad801e
4 changed files with 88 additions and 9 deletions

View File

@ -149,7 +149,7 @@ public class QmsIssueTicketController extends BaseController {
* 仅查询当前登录人创建的巡检工单
*/
@PostMapping("searchTablet")
public ApiResult<PageData<QmsIssueTicketVO>> searchTablet(@Valid @RequestBody QmsIssueTicketTabletSearchQO request) {
public ApiResult<QmsIssueTicketTabletPageData> searchTablet(@Valid @RequestBody QmsIssueTicketTabletSearchQO request) {
return ApiResult.success(issueTicketControllerService.searchTabletInspectionTickets(request));
}

View File

@ -614,7 +614,7 @@ public class QmsIssueTicketControllerService {
* 平板端查询巡检工单列表
* 仅查询当前登录人创建的巡检工单sourceType=2
*/
public PageData<QmsIssueTicketVO> searchTabletInspectionTickets(@Valid QmsIssueTicketTabletSearchQO request) {
public QmsIssueTicketTabletPageData searchTabletInspectionTickets(@Valid QmsIssueTicketTabletSearchQO request) {
Long currentUserId = UserUtil.getUserId();
// 构建查询条件
@ -667,12 +667,45 @@ public class QmsIssueTicketControllerService {
.collect(Collectors.toList());
// 构建分页结果
PageData<QmsIssueTicketVO> pageData = new PageData<>();
QmsIssueTicketTabletPageData pageData = new QmsIssueTicketTabletPageData();
pageData.setItems(voList);
pageData.setTotal((int) resultPage.getTotal());
pageData.setPage((int) resultPage.getCurrent());
pageData.setPageSize((int) resultPage.getSize());
// 统计工单总数不考虑过滤条件
Long totalCount = issueTicketService.lambdaQuery()
.eq(QmsIssueTicket::getSourceType, (short) 2)
.eq(QmsIssueTicket::getCreateUserId, currentUserId)
.count();
// 统计待处理数status=0
Long pendingCount = issueTicketService.lambdaQuery()
.eq(QmsIssueTicket::getSourceType, (short) 2)
.eq(QmsIssueTicket::getCreateUserId, currentUserId)
.eq(QmsIssueTicket::getStatus, (short) 0)
.count();
// 统计处理中数status=1
Long processingCount = issueTicketService.lambdaQuery()
.eq(QmsIssueTicket::getSourceType, (short) 2)
.eq(QmsIssueTicket::getCreateUserId, currentUserId)
.eq(QmsIssueTicket::getStatus, (short) 1)
.count();
// 统计已完成数status=2
Long completedCount = issueTicketService.lambdaQuery()
.eq(QmsIssueTicket::getSourceType, (short) 2)
.eq(QmsIssueTicket::getCreateUserId, currentUserId)
.eq(QmsIssueTicket::getStatus, (short) 2)
.count();
// 设置统计字段
pageData.setTotalCount(totalCount);
pageData.setPendingCount(pendingCount);
pageData.setProcessingCount(processingCount);
pageData.setCompletedCount(completedCount);
return pageData;
}

View File

@ -0,0 +1,33 @@
package com.nflg.wms.common.pojo.vo;
import com.nflg.wms.common.pojo.PageData;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 平板端巡检工单分页数据带统计信息
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class QmsIssueTicketTabletPageData extends PageData<QmsIssueTicketVO> {
/**
* 工单总数不考虑过滤条件
*/
private Long totalCount;
/**
* 待处理数status=0
*/
private Long pendingCount;
/**
* 处理中数status=1
*/
private Long processingCount;
/**
* 已完成数status=2
*/
private Long completedCount;
}

View File

@ -126,12 +126,25 @@
<!-- 无工单时:显示给质检人或帮办人 -->
(it.id IS NULL AND (r.inspector_id = #{request.currentUserId} OR t.assistant_id = #{request.currentUserId}))
OR
<!-- 有工单时:只显示该用户作为处理人的工单 -->
(it.id IS NOT NULL AND EXISTS (
SELECT 1
FROM qms_issue_ticket_process p
WHERE p.issue_ticket_id = it.id
AND p.handler_user_id = #{request.currentUserId}
<!-- 有工单时:显示给质检人/帮办人 或 工单处理人 或 处理人的领导 -->
(it.id IS NOT NULL AND (
r.inspector_id = #{request.currentUserId}
OR t.assistant_id = #{request.currentUserId}
OR EXISTS (
SELECT 1
FROM qms_issue_ticket_process p
WHERE p.issue_ticket_id = it.id
AND p.handler_user_id = #{request.currentUserId}
)
OR EXISTS (
SELECT 1
FROM qms_issue_ticket_process p
LEFT JOIN "user" handler_user ON handler_user.id = p.handler_user_id
LEFT JOIN user_interior handler_ui ON handler_ui.user_id = handler_user.id
LEFT JOIN department handler_dept ON handler_dept.id = handler_ui.dept_id
WHERE p.issue_ticket_id = it.id
AND handler_dept.head_user_id = #{request.currentUserId}
)
))
)
<if test="request.inspectionType != null">