This commit is contained in:
parent
3dab9dfacd
commit
36b6dce7d6
|
|
@ -73,7 +73,7 @@ public class QmsCoaTaskController extends BaseController {
|
|||
}
|
||||
|
||||
/**
|
||||
* 分页查询(当前账号只能看自己创建的数据)
|
||||
* 分页查询(当前账号只能看属于自己的数据)
|
||||
* 支持供应商名称(模糊)、供应商编号(精确)、物料编号(精确)过滤
|
||||
*/
|
||||
@PostMapping("search")
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* 报告模板(可选)
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* 报告模板(可选)
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* 创建人
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* 创建人
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
Loading…
Reference in New Issue