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 5dc2ef69..f2bdd884 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 @@ -5,6 +5,7 @@ import com.nflg.wms.common.pojo.ApiResult; import com.nflg.wms.common.pojo.PageData; import com.nflg.wms.common.pojo.qo.QmsPqcTaskRecordDraftQO; import com.nflg.wms.common.pojo.qo.QmsPqcTaskRecordSearchQO; +import com.nflg.wms.common.pojo.qo.QmsPqcTaskRecordTabletSearchQO; import com.nflg.wms.common.pojo.vo.*; import com.nflg.qms.admin.service.QmsPqcTaskRecordControllerService; import jakarta.annotation.Resource; @@ -12,8 +13,6 @@ import jakarta.validation.Valid; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; -import java.util.List; - /** * PQC任务 Controller * @@ -35,6 +34,11 @@ public class QmsPqcTaskRecordController { return ApiResult.success(pqcTaskRecordService.searchPqcTaskList(request)); } + @PostMapping("/search/tablet") + public ApiResult> searchTablet(@Valid @RequestBody QmsPqcTaskRecordTabletSearchQO request) { + return ApiResult.success(pqcTaskRecordService.searchPqcTaskTabletList(request)); + } + /** * 2. 查询PQC任务详情(PC端) */ 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 fe0bcec7..2232e243 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 @@ -8,6 +8,7 @@ import com.nflg.wms.common.exception.NflgException; import com.nflg.wms.common.pojo.PageData; import com.nflg.wms.common.pojo.qo.QmsPqcTaskRecordDraftQO; import com.nflg.wms.common.pojo.qo.QmsPqcTaskRecordSearchQO; +import com.nflg.wms.common.pojo.qo.QmsPqcTaskRecordTabletSearchQO; import com.nflg.wms.common.pojo.vo.*; import com.nflg.wms.common.util.UserUtil; import com.nflg.wms.common.util.VUtil; @@ -243,6 +244,87 @@ public class QmsPqcTaskRecordControllerService { return pageData; } + public PageData searchPqcTaskTabletList(QmsPqcTaskRecordTabletSearchQO request) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + + if (Boolean.TRUE.equals(request.getIsReview())) { + queryWrapper.in(QmsPqcTaskRecord::getStatus, (short) 1, (short) 2, (short) 3) + .orderByAsc(QmsPqcTaskRecord::getStatus) + .orderByDesc(QmsPqcTaskRecord::getCreateTime); + } else { + queryWrapper.eq(QmsPqcTaskRecord::getStatus, (short) 0) + .isNotNull(QmsPqcTaskRecord::getRelatedTaskId) + .orderByDesc(QmsPqcTaskRecord::getCreateTime); + } + + if (StrUtil.isNotBlank(request.getKey())) { + queryWrapper.and(wrapper -> wrapper.like(QmsPqcTaskRecord::getTaskNo, request.getKey()) + .or() + .like(QmsPqcTaskRecord::getModelNo, request.getKey())); + } + + Page page = pqcTaskRecordService.page( + new Page<>(request.getPage(), request.getPageSize()), + queryWrapper + ); + + List voList = new ArrayList<>(); + if (page.getRecords() != null && !page.getRecords().isEmpty()) { + Set pointIds = page.getRecords().stream() + .map(QmsPqcTaskRecord::getInspectionPointId) + .filter(Objects::nonNull) + .collect(Collectors.toSet()); + + Map pointMap = new HashMap<>(); + if (!pointIds.isEmpty()) { + List points = pqcInspectionPointService.listByIds(pointIds); + pointMap = points.stream() + .collect(Collectors.toMap(QmsPqcInspectionPoint::getId, p -> p)); + } + + Set ruleIds = pointMap.values().stream() + .map(QmsPqcInspectionPoint::getPqcRuleId) + .filter(Objects::nonNull) + .collect(Collectors.toSet()); + + Map ruleVersionMap = new HashMap<>(); + if (!ruleIds.isEmpty()) { + List rules = pqcInspectionRuleService.listByIds(ruleIds); + ruleVersionMap = rules.stream() + .collect(Collectors.toMap(QmsPqcInspectionRule::getId, QmsPqcInspectionRule::getRuleVersion)); + } + + Map finalPointMap = pointMap; + Map finalRuleVersionMap = ruleVersionMap; + + for (QmsPqcTaskRecord record : page.getRecords()) { + QmsPqcTaskRecordTabletPageVO vo = new QmsPqcTaskRecordTabletPageVO(); + vo.setId(record.getId()); + vo.setStatus(record.getStatus()); + vo.setTaskNo(record.getTaskNo()); + vo.setModelNo(record.getModelNo()); + vo.setAufnr(record.getAufnr()); + vo.setCreateTime(record.getCreateTime()); + vo.setDeadline(null); + + QmsPqcInspectionPoint point = finalPointMap.get(record.getInspectionPointId()); + if (point != null) { + vo.setStepName(point.getStepName()); + vo.setRuleVersion(finalRuleVersionMap.get(point.getPqcRuleId())); + } + + voList.add(vo); + } + } + + PageData pageData = new PageData<>(); + pageData.setPage((int) page.getCurrent()); + pageData.setPageSize((int) page.getSize()); + pageData.setTotal((int) page.getTotal()); + pageData.setItems(voList); + return pageData; + } + // 其他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 new file mode 100644 index 00000000..5a86203e --- /dev/null +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsPqcTaskRecordTabletSearchQO.java @@ -0,0 +1,32 @@ +package com.nflg.wms.common.pojo.qo; + +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +/** + * PQC任务平板分页查询参数 + */ +@Data +public class QmsPqcTaskRecordTabletSearchQO { + + /** + * 是否为复检 + */ + @NotNull(message = "是否为复检不能为空") + private Boolean isReview; + + /** + * 关键字,匹配检验单号或机型编号 + */ + private String key; + + /** + * 页码 + */ + private Integer page = 1; + + /** + * 每页条数 + */ + private Integer pageSize = 10; +} diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsPqcTaskRecordTabletPageVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsPqcTaskRecordTabletPageVO.java new file mode 100644 index 00000000..978a50ed --- /dev/null +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsPqcTaskRecordTabletPageVO.java @@ -0,0 +1,57 @@ +package com.nflg.wms.common.pojo.vo; + +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * PQC任务平板分页返回对象 + */ +@Data +public class QmsPqcTaskRecordTabletPageVO { + + /** + * 任务ID + */ + private Long id; + + /** + * 任务状态 + */ + private Short status; + + /** + * 任务编号 + */ + private String taskNo; + + /** + * 机型编号 + */ + private String modelNo; + + /** + * 步装名称 + */ + private String stepName; + + /** + * 订单编号 + */ + private String aufnr; + + /** + * 检测标准版本 + */ + private Integer ruleVersion; + + /** + * 创建时间 + */ + private LocalDateTime createTime; + + /** + * 限期 + */ + private LocalDateTime deadline; +}