This commit is contained in:
funny 2026-04-13 20:24:35 +08:00
parent 3dab9dfacd
commit 36b6dce7d6
6 changed files with 44 additions and 22 deletions

View File

@ -73,7 +73,7 @@ public class QmsCoaTaskController extends BaseController {
} }
/** /**
* 分页查询当前账号只能看自己创建的数据 * 分页查询当前账号只能看属于自己的数据
* 支持供应商名称模糊供应商编号精确物料编号精确过滤 * 支持供应商名称模糊供应商编号精确物料编号精确过滤
*/ */
@PostMapping("search") @PostMapping("search")

View File

@ -4,7 +4,7 @@ import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import lombok.Data; import lombok.Data;
import java.time.LocalDateTime; import java.time.LocalDate;
/** /**
* 新增COA通知任务参数 * 新增COA通知任务参数
@ -34,7 +34,7 @@ public class QmsCoaTaskAddQO {
* 最晚提交时间必传 * 最晚提交时间必传
*/ */
@NotNull(message = "最晚提交时间不能为空") @NotNull(message = "最晚提交时间不能为空")
private LocalDateTime lastSubTime; private LocalDate lastSubTime;
/** /**
* 报告模板可选 * 报告模板可选

View File

@ -3,7 +3,7 @@ package com.nflg.wms.common.pojo.qo;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import lombok.Data; import lombok.Data;
import java.time.LocalDateTime; import java.time.LocalDate;
/** /**
* 修改COA通知任务参数id必传其余可选 * 修改COA通知任务参数id必传其余可选
@ -35,7 +35,7 @@ public class QmsCoaTaskUpdateQO {
/** /**
* 最晚提交时间可选 * 最晚提交时间可选
*/ */
private LocalDateTime lastSubTime; private LocalDate lastSubTime;
/** /**
* 报告模板可选 * 报告模板可选

View File

@ -2,6 +2,7 @@ package com.nflg.wms.common.pojo.vo;
import lombok.Data; import lombok.Data;
import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
/** /**
@ -60,7 +61,7 @@ public class QmsCoaTaskVO {
/** /**
* 最晚提交时间 * 最晚提交时间
*/ */
private LocalDateTime lastSubTime; private LocalDate lastSubTime;
/** /**
* 创建人 * 创建人

View File

@ -9,6 +9,7 @@ import lombok.ToString;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
/** /**
@ -69,7 +70,7 @@ public class QmsCoaTask implements Serializable {
/** /**
* 最晚提交时间 * 最晚提交时间
*/ */
private LocalDateTime lastSubTime; private LocalDate lastSubTime;
/** /**
* 创建人 * 创建人

View File

@ -1,5 +1,6 @@
package com.nflg.wms.repository.service.impl; package com.nflg.wms.repository.service.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@ -178,27 +179,36 @@ public class QmsCoaTaskServiceImpl extends ServiceImpl<QmsCoaTaskMapper, QmsCoaT
// 当前账号只能看自己创建的数据 // 当前账号只能看自己创建的数据
Long currentUserId = UserUtil.getUserId(); Long currentUserId = UserUtil.getUserId();
// 处理供应商过滤名称模糊 or 编号精确 // 处理供应商过滤连接供应商表查询ID
Set<Long> filteredSupplierIds = null; Set<Long> filteredSupplierIds = null;
boolean hasSupplierFilter = (Objects.nonNull(qo.getSupplierName()) && !qo.getSupplierName().isEmpty()) boolean hasSupplierNameFilter = StrUtil.isNotBlank(qo.getSupplierName());
|| (Objects.nonNull(qo.getSupplierCode()) && !qo.getSupplierCode().isEmpty()); boolean hasSupplierCodeFilter = StrUtil.isNotBlank(qo.getSupplierCode());
if (hasSupplierFilter) {
if (hasSupplierNameFilter || hasSupplierCodeFilter) {
// 构建OR条件查询供应商
List<UserSupplier> suppliers = userSupplierService.lambdaQuery() List<UserSupplier> suppliers = userSupplierService.lambdaQuery()
.like(Objects.nonNull(qo.getSupplierName()) && !qo.getSupplierName().isEmpty(), .nested(i -> {
UserSupplier::getSupplierName, qo.getSupplierName()) if (hasSupplierNameFilter) {
.eq(Objects.nonNull(qo.getSupplierCode()) && !qo.getSupplierCode().isEmpty(), i.like(UserSupplier::getSupplierName, qo.getSupplierName());
UserSupplier::getSupplierCode, qo.getSupplierCode()) }
if (hasSupplierCodeFilter) {
if (hasSupplierNameFilter) {
i.or();
}
i.eq(UserSupplier::getSupplierCode, qo.getSupplierCode());
}
})
.list(); .list();
filteredSupplierIds = suppliers.stream().map(UserSupplier::getId).collect(Collectors.toSet()); filteredSupplierIds = suppliers.stream().map(UserSupplier::getId).collect(Collectors.toSet());
if (filteredSupplierIds.isEmpty()) { if (filteredSupplierIds.isEmpty()) {
// 供应商过滤结果为空直接返回空分页
return emptyPage(qo.getPage(), qo.getPageSize()); return emptyPage(qo.getPage(), qo.getPageSize());
} }
} }
// 处理物料编号过滤 // 处理物料编号过滤
Set<Long> filteredMaterialIds = null; Set<Long> filteredMaterialIds = null;
if (Objects.nonNull(qo.getMaterialNo()) && !qo.getMaterialNo().isEmpty()) { boolean hasMaterialNoFilter = StrUtil.isNotBlank(qo.getMaterialNo());
if (hasMaterialNoFilter) {
List<QmsQcMaterial> materials = qcMaterialService.lambdaQuery() List<QmsQcMaterial> materials = qcMaterialService.lambdaQuery()
.eq(QmsQcMaterial::getMaterialNo, qo.getMaterialNo()) .eq(QmsQcMaterial::getMaterialNo, qo.getMaterialNo())
.list(); .list();
@ -211,13 +221,23 @@ public class QmsCoaTaskServiceImpl extends ServiceImpl<QmsCoaTaskMapper, QmsCoaT
final Set<Long> finalSupplierIds = filteredSupplierIds; final Set<Long> finalSupplierIds = filteredSupplierIds;
final Set<Long> finalMaterialIds = filteredMaterialIds; final Set<Long> finalMaterialIds = filteredMaterialIds;
IPage<QmsCoaTask> page = lambdaQuery() // 构建查询
var query = lambdaQuery()
.eq(QmsCoaTask::getUserId, currentUserId) .eq(QmsCoaTask::getUserId, currentUserId)
.ne(QmsCoaTask::getDeleted, true) .ne(QmsCoaTask::getDeleted, true)
.in(Objects.nonNull(finalSupplierIds), QmsCoaTask::getSupplierId, finalSupplierIds != null ? finalSupplierIds : List.of()) .orderByDesc(QmsCoaTask::getCreateTime);
.in(Objects.nonNull(finalMaterialIds), QmsCoaTask::getMaterialId, finalMaterialIds != null ? finalMaterialIds : List.of())
.orderByDesc(QmsCoaTask::getCreateTime) // 供应商ID过滤只在有过滤条件时添加
.page(new Page<>(qo.getPage(), qo.getPageSize())); if (finalSupplierIds != null && !finalSupplierIds.isEmpty()) {
query.in(QmsCoaTask::getSupplierId, finalSupplierIds);
}
// 物料ID过滤只在有过滤条件时添加
if (finalMaterialIds != null && !finalMaterialIds.isEmpty()) {
query.in(QmsCoaTask::getMaterialId, finalMaterialIds);
}
IPage<QmsCoaTask> page = query.page(new Page<>(qo.getPage(), qo.getPageSize()));
// 组装 VO批量查供应商和物料 // 组装 VO批量查供应商和物料
List<QmsCoaTask> records = page.getRecords(); List<QmsCoaTask> records = page.getRecords();