diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsPqcTaskRecordController.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsPqcTaskRecordController.java index a64bbfd4..a04f0d10 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsPqcTaskRecordController.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsPqcTaskRecordController.java @@ -48,7 +48,7 @@ public class QmsPqcTaskRecordController { * 查询PQC任务列表(分页,平板使用) */ @PostMapping("/search/tablet") - public ApiResult> searchTablet(@Valid @RequestBody QmsPqcTaskRecordTabletSearchQO request) { + public ApiResult searchTablet(@Valid @RequestBody QmsPqcTaskRecordTabletSearchQO request) { return ApiResult.success(pqcTaskRecordService.searchPqcTaskTabletList(request)); } diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsPqcTaskRecordControllerService.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsPqcTaskRecordControllerService.java index 51d61de9..83774034 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsPqcTaskRecordControllerService.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsPqcTaskRecordControllerService.java @@ -341,31 +341,49 @@ public class QmsPqcTaskRecordControllerService { .collect(Collectors.toSet()); } - public PageData searchPqcTaskTabletList(QmsPqcTaskRecordTabletSearchQO request) { + public QmsPqcTaskRecordTabletPageDataVO searchPqcTaskTabletList(QmsPqcTaskRecordTabletSearchQO request) { + Long currentUserId = UserUtil.getUserId(); + QmsPqcTaskRecordTabletPageDataVO pageData = new QmsPqcTaskRecordTabletPageDataVO(); + pageData.setPage(request.getPage()); + pageData.setPageSize(request.getPageSize()); + pageData.setPendingReviewCount(countPqcTabletReviewTasks(request, currentUserId, (short) 1)); + pageData.setReviewingCount(countPqcTabletReviewTasks(request, currentUserId, (short) 2)); + pageData.setOverdueCount(0); + + if (Objects.equals(request.getTaskStatus(), 4)) { + pageData.setTotal(0); + pageData.setItems(List.of()); + return pageData; + } + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); if (Boolean.TRUE.equals(request.getIsReview())) { queryWrapper.eq(QmsPqcTaskRecord::getStatus, (short) 3) - .eq(QmsPqcTaskRecord::getReviewerId, UserUtil.getUserId()) + .eq(QmsPqcTaskRecord::getReviewerId, currentUserId) .orderByDesc(QmsPqcTaskRecord::getCreateTime); } else if (Objects.equals(request.getType(), 1)) { queryWrapper.eq(QmsPqcTaskRecord::getStatus, (short) 0) .isNotNull(QmsPqcTaskRecord::getRelatedTaskId) .orderByDesc(QmsPqcTaskRecord::getCreateTime); } else if (Objects.equals(request.getType(), 0)) { - queryWrapper.in(QmsPqcTaskRecord::getStatus, (short) 1, (short) 2) - .eq(QmsPqcTaskRecord::getReviewerId, UserUtil.getUserId()) + if (Objects.equals(request.getTaskStatus(), 1)) { + queryWrapper.eq(QmsPqcTaskRecord::getStatus, (short) 1); + } else if (Objects.equals(request.getTaskStatus(), 2)) { + queryWrapper.eq(QmsPqcTaskRecord::getStatus, (short) 2); + } else if (Objects.isNull(request.getTaskStatus())) { + queryWrapper.in(QmsPqcTaskRecord::getStatus, (short) 1, (short) 2); + } else { + VUtil.trueThrowBusinessError(true).throwMessage("任务状态不正确"); + } + queryWrapper.eq(QmsPqcTaskRecord::getReviewerId, currentUserId) .orderByAsc(QmsPqcTaskRecord::getStatus) .orderByDesc(QmsPqcTaskRecord::getCreateTime); } else { VUtil.trueThrowBusinessError(true).throwMessage("查询类型不正确"); } - if (StrUtil.isNotBlank(request.getKey())) { - queryWrapper.and(wrapper -> wrapper.like(QmsPqcTaskRecord::getTaskNo, request.getKey()) - .or() - .like(QmsPqcTaskRecord::getModelNo, request.getKey())); - } + applyPqcTabletKeyword(queryWrapper, request.getKey()); Page page = pqcTaskRecordService.page( new Page<>(request.getPage(), request.getPageSize()), @@ -421,7 +439,6 @@ public class QmsPqcTaskRecordControllerService { } } - PageData pageData = new PageData<>(); pageData.setPage((int) page.getCurrent()); pageData.setPageSize((int) page.getSize()); pageData.setTotal((int) page.getTotal()); @@ -429,6 +446,22 @@ public class QmsPqcTaskRecordControllerService { return pageData; } + private int countPqcTabletReviewTasks(QmsPqcTaskRecordTabletSearchQO request, Long reviewerId, Short status) { + LambdaQueryWrapper countWrapper = new LambdaQueryWrapper<>(); + countWrapper.eq(QmsPqcTaskRecord::getReviewerId, reviewerId) + .eq(QmsPqcTaskRecord::getStatus, status); + applyPqcTabletKeyword(countWrapper, request.getKey()); + return (int) pqcTaskRecordService.count(countWrapper); + } + + private void applyPqcTabletKeyword(LambdaQueryWrapper queryWrapper, String key) { + if (StrUtil.isNotBlank(key)) { + queryWrapper.and(wrapper -> wrapper.like(QmsPqcTaskRecord::getTaskNo, key) + .or() + .like(QmsPqcTaskRecord::getModelNo, key)); + } + } + // 其他5个功能将在后续实现... /** diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsPqcTaskRecordTabletSearchQO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsPqcTaskRecordTabletSearchQO.java index d10906c7..1a217266 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsPqcTaskRecordTabletSearchQO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsPqcTaskRecordTabletSearchQO.java @@ -26,6 +26,11 @@ public class QmsPqcTaskRecordTabletSearchQO { */ private String key; + /** + * 任务状态筛选:1=待复核,2=复核中,4=已超时 + */ + private Integer taskStatus; + /** * 页码 */ diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsPqcTaskRecordTabletPageDataVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsPqcTaskRecordTabletPageDataVO.java new file mode 100644 index 00000000..ad0516c3 --- /dev/null +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsPqcTaskRecordTabletPageDataVO.java @@ -0,0 +1,48 @@ +package com.nflg.wms.common.pojo.vo; + +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * PQC任务列表返回对象(平板端,含状态统计) + */ +@Data +public class QmsPqcTaskRecordTabletPageDataVO { + + /** + * 当前页码 + */ + private Integer page; + + /** + * 每页条数 + */ + private Integer pageSize; + + /** + * 总条数 + */ + private Integer total; + + /** + * 分页数据 + */ + private List items = new ArrayList<>(); + + /** + * 待复核数量 + */ + private Integer pendingReviewCount; + + /** + * 复核中数量 + */ + private Integer reviewingCount; + + /** + * 已超时数量 + */ + private Integer overdueCount; +}