From 36b6dce7d6d3228294c2563ad72a9dea2f2ffd64 Mon Sep 17 00:00:00 2001 From: funny <834502597@qq.com> Date: Mon, 13 Apr 2026 20:24:35 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/QmsCoaTaskController.java | 2 +- .../wms/common/pojo/qo/QmsCoaTaskAddQO.java | 4 +- .../common/pojo/qo/QmsCoaTaskUpdateQO.java | 4 +- .../nflg/wms/common/pojo/vo/QmsCoaTaskVO.java | 3 +- .../wms/repository/entity/QmsCoaTask.java | 3 +- .../service/impl/QmsCoaTaskServiceImpl.java | 50 +++++++++++++------ 6 files changed, 44 insertions(+), 22 deletions(-) diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsCoaTaskController.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsCoaTaskController.java index 7351703c..5ce6ac59 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsCoaTaskController.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsCoaTaskController.java @@ -73,7 +73,7 @@ public class QmsCoaTaskController extends BaseController { } /** - * 分页查询(当前账号只能看自己创建的数据) + * 分页查询(当前账号只能看属于自己的数据) * 支持供应商名称(模糊)、供应商编号(精确)、物料编号(精确)过滤 */ @PostMapping("search") diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsCoaTaskAddQO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsCoaTaskAddQO.java index e57ca940..6db88f42 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsCoaTaskAddQO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsCoaTaskAddQO.java @@ -4,7 +4,7 @@ import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; import lombok.Data; -import java.time.LocalDateTime; +import java.time.LocalDate; /** * 新增COA通知任务参数 @@ -34,7 +34,7 @@ public class QmsCoaTaskAddQO { * 最晚提交时间(必传) */ @NotNull(message = "最晚提交时间不能为空") - private LocalDateTime lastSubTime; + private LocalDate lastSubTime; /** * 报告模板(可选) diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsCoaTaskUpdateQO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsCoaTaskUpdateQO.java index 80135f9a..4ce0871a 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsCoaTaskUpdateQO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsCoaTaskUpdateQO.java @@ -3,7 +3,7 @@ package com.nflg.wms.common.pojo.qo; import jakarta.validation.constraints.NotNull; import lombok.Data; -import java.time.LocalDateTime; +import java.time.LocalDate; /** * 修改COA通知任务参数(id必传,其余可选) @@ -35,7 +35,7 @@ public class QmsCoaTaskUpdateQO { /** * 最晚提交时间(可选) */ - private LocalDateTime lastSubTime; + private LocalDate lastSubTime; /** * 报告模板(可选) diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsCoaTaskVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsCoaTaskVO.java index 6b202795..c40c6a5e 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsCoaTaskVO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsCoaTaskVO.java @@ -2,6 +2,7 @@ package com.nflg.wms.common.pojo.vo; import lombok.Data; +import java.time.LocalDate; import java.time.LocalDateTime; /** @@ -60,7 +61,7 @@ public class QmsCoaTaskVO { /** * 最晚提交时间 */ - private LocalDateTime lastSubTime; + private LocalDate lastSubTime; /** * 创建人 diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsCoaTask.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsCoaTask.java index 7b178f2d..bcd4ea1f 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsCoaTask.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsCoaTask.java @@ -9,6 +9,7 @@ import lombok.ToString; import lombok.experimental.Accessors; import java.io.Serializable; +import java.time.LocalDate; import java.time.LocalDateTime; /** @@ -69,7 +70,7 @@ public class QmsCoaTask implements Serializable { /** * 最晚提交时间 */ - private LocalDateTime lastSubTime; + private LocalDate lastSubTime; /** * 创建人 diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsCoaTaskServiceImpl.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsCoaTaskServiceImpl.java index 831ac8c3..0cc394e4 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsCoaTaskServiceImpl.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsCoaTaskServiceImpl.java @@ -1,5 +1,6 @@ package com.nflg.wms.repository.service.impl; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -178,27 +179,36 @@ public class QmsCoaTaskServiceImpl extends ServiceImpl filteredSupplierIds = null; - boolean hasSupplierFilter = (Objects.nonNull(qo.getSupplierName()) && !qo.getSupplierName().isEmpty()) - || (Objects.nonNull(qo.getSupplierCode()) && !qo.getSupplierCode().isEmpty()); - if (hasSupplierFilter) { + boolean hasSupplierNameFilter = StrUtil.isNotBlank(qo.getSupplierName()); + boolean hasSupplierCodeFilter = StrUtil.isNotBlank(qo.getSupplierCode()); + + if (hasSupplierNameFilter || hasSupplierCodeFilter) { + // 构建OR条件查询供应商 List suppliers = userSupplierService.lambdaQuery() - .like(Objects.nonNull(qo.getSupplierName()) && !qo.getSupplierName().isEmpty(), - UserSupplier::getSupplierName, qo.getSupplierName()) - .eq(Objects.nonNull(qo.getSupplierCode()) && !qo.getSupplierCode().isEmpty(), - UserSupplier::getSupplierCode, qo.getSupplierCode()) + .nested(i -> { + if (hasSupplierNameFilter) { + i.like(UserSupplier::getSupplierName, qo.getSupplierName()); + } + if (hasSupplierCodeFilter) { + if (hasSupplierNameFilter) { + i.or(); + } + i.eq(UserSupplier::getSupplierCode, qo.getSupplierCode()); + } + }) .list(); filteredSupplierIds = suppliers.stream().map(UserSupplier::getId).collect(Collectors.toSet()); if (filteredSupplierIds.isEmpty()) { - // 供应商过滤结果为空,直接返回空分页 return emptyPage(qo.getPage(), qo.getPageSize()); } } // 处理物料编号过滤 Set filteredMaterialIds = null; - if (Objects.nonNull(qo.getMaterialNo()) && !qo.getMaterialNo().isEmpty()) { + boolean hasMaterialNoFilter = StrUtil.isNotBlank(qo.getMaterialNo()); + if (hasMaterialNoFilter) { List materials = qcMaterialService.lambdaQuery() .eq(QmsQcMaterial::getMaterialNo, qo.getMaterialNo()) .list(); @@ -211,13 +221,23 @@ public class QmsCoaTaskServiceImpl extends ServiceImpl finalSupplierIds = filteredSupplierIds; final Set finalMaterialIds = filteredMaterialIds; - IPage page = lambdaQuery() + // 构建查询 + var query = lambdaQuery() .eq(QmsCoaTask::getUserId, currentUserId) .ne(QmsCoaTask::getDeleted, true) - .in(Objects.nonNull(finalSupplierIds), QmsCoaTask::getSupplierId, finalSupplierIds != null ? finalSupplierIds : List.of()) - .in(Objects.nonNull(finalMaterialIds), QmsCoaTask::getMaterialId, finalMaterialIds != null ? finalMaterialIds : List.of()) - .orderByDesc(QmsCoaTask::getCreateTime) - .page(new Page<>(qo.getPage(), qo.getPageSize())); + .orderByDesc(QmsCoaTask::getCreateTime); + + // 供应商ID过滤(只在有过滤条件时添加) + if (finalSupplierIds != null && !finalSupplierIds.isEmpty()) { + query.in(QmsCoaTask::getSupplierId, finalSupplierIds); + } + + // 物料ID过滤(只在有过滤条件时添加) + if (finalMaterialIds != null && !finalMaterialIds.isEmpty()) { + query.in(QmsCoaTask::getMaterialId, finalMaterialIds); + } + + IPage page = query.page(new Page<>(qo.getPage(), qo.getPageSize())); // 组装 VO:批量查供应商和物料 List records = page.getRecords();