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")

View File

@ -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;
/**
* 报告模板可选

View File

@ -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;
/**
* 报告模板可选

View File

@ -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;
/**
* 创建人

View File

@ -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;
/**
* 创建人

View File

@ -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<QmsCoaTaskMapper, QmsCoaT
// 当前账号只能看自己创建的数据
Long currentUserId = UserUtil.getUserId();
// 处理供应商过滤名称模糊 or 编号精确
// 处理供应商过滤连接供应商表查询ID
Set<Long> 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<UserSupplier> 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<Long> filteredMaterialIds = null;
if (Objects.nonNull(qo.getMaterialNo()) && !qo.getMaterialNo().isEmpty()) {
boolean hasMaterialNoFilter = StrUtil.isNotBlank(qo.getMaterialNo());
if (hasMaterialNoFilter) {
List<QmsQcMaterial> materials = qcMaterialService.lambdaQuery()
.eq(QmsQcMaterial::getMaterialNo, qo.getMaterialNo())
.list();
@ -211,13 +221,23 @@ public class QmsCoaTaskServiceImpl extends ServiceImpl<QmsCoaTaskMapper, QmsCoaT
final Set<Long> finalSupplierIds = filteredSupplierIds;
final Set<Long> finalMaterialIds = filteredMaterialIds;
IPage<QmsCoaTask> 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<QmsCoaTask> page = query.page(new Page<>(qo.getPage(), qo.getPageSize()));
// 组装 VO批量查供应商和物料
List<QmsCoaTask> records = page.getRecords();