feat(out-assistance): 添加物料号搜索和ID过滤功能

- 在OutAssistanceSearchQO中新增matnr物料号字段和ids列表字段
- 添加@JsonIgnore注解忽略ids字段的序列化
- 在WmsOutAssistanceMapper.xml中实现ids条件查询逻辑
- 当ids为空时设置条件为false,非空时进行in查询
- 在WmsOutAssistanceServiceImpl中实现物料号搜索功能
- 通过物料号关联查询对应的订单ID列表进行过滤
- 使用StrUtil工具类进行字符串非空判断
This commit is contained in:
曹鹏飞 2026-03-27 16:57:10 +08:00
parent fb1fb9e265
commit 29b9cad2d0
3 changed files with 37 additions and 0 deletions

View File

@ -1,7 +1,10 @@
package com.nflg.wms.common.pojo.qo;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import java.util.List;
@Data
public class OutAssistanceSearchQO extends SearchBaseQO {
@ -24,4 +27,12 @@ public class OutAssistanceSearchQO extends SearchBaseQO {
* 供应商
*/
private String lifnr;
/**
* 物料号
*/
private String matnr;
@JsonIgnore
private List<Long> ids;
}

View File

@ -1,10 +1,12 @@
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;
import com.nflg.wms.common.pojo.qo.OutAssistanceSearchQO;
import com.nflg.wms.repository.entity.WmsOutAssistance;
import com.nflg.wms.repository.entity.WmsOutAssistanceItem;
import com.nflg.wms.repository.mapper.WmsOutAssistanceMapper;
import com.nflg.wms.repository.service.IWmsOutAssistanceItemService;
import com.nflg.wms.repository.service.IWmsOutAssistanceService;
@ -26,6 +28,19 @@ public class WmsOutAssistanceServiceImpl extends ServiceImpl<WmsOutAssistanceMap
@Override
public IPage<WmsOutAssistance> search(OutAssistanceSearchQO request) {
if (StrUtil.isNotBlank(request.getMatnr())) {
request.setIds(
wmsOutAssistanceItemService.lambdaQuery()
.like(WmsOutAssistanceItem::getMatnr, request.getMatnr())
.or()
.like(WmsOutAssistanceItem::getMatnr1, request.getMatnr())
.list()
.stream()
.map(WmsOutAssistanceItem::getOrderId)
.toList()
);
}
return baseMapper.search(request, new Page<>(request.getPage(), request.getPageSize()));
}
}

View File

@ -6,6 +6,17 @@
SELECT *
FROM wms_out_assistance
<where>
<if test="request.ids != null">
<if test="request.ids.isEmpty()">
and 1=2
</if>
<if test="!request.ids.isEmpty()">
and id in
<foreach item="item" collection="request.ids" separator="," open="(" close=")">
#{item}
</foreach>
</if>
</if>
<if test="request.no != null and request.no!=''">
AND "no" ilike CONCAT('%', #{request.no}, '%')
</if>