feat(wms): 新增钢卷分页查询功能

- 在WmsMaterialCoilMapper中添加selectVoPagePlus方法及对应XML配置
- 实现基于QueryWrapper的分页查询逻辑- 补充关联字段warehouseName以支持统计展示-优化查询条件构造器,增强筛选能力
- 调整VO类结构,确保数据传输完整性- 修复原查询逻辑中的潜在空指针问题
This commit is contained in:
2025-10-29 16:55:26 +08:00
parent ed2a56cded
commit 4f97e62a5d
4 changed files with 66 additions and 18 deletions

View File

@@ -181,5 +181,7 @@ public class WmsMaterialCoilVo {
private BigDecimal totalNetWeight; private BigDecimal totalNetWeight;
} }

View File

@@ -1,5 +1,8 @@
package com.klp.mapper; package com.klp.mapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.klp.domain.WmsMaterialCoil; import com.klp.domain.WmsMaterialCoil;
import com.klp.domain.vo.WmsMaterialCoilVo; import com.klp.domain.vo.WmsMaterialCoilVo;
import com.klp.common.core.mapper.BaseMapperPlus; import com.klp.common.core.mapper.BaseMapperPlus;
@@ -34,5 +37,7 @@ public interface WmsMaterialCoilMapper extends BaseMapperPlus<WmsMaterialCoilMap
* @return 分布情况列表 * @return 分布情况列表
*/ */
List<Map<String, Object>> getDistributionByItemType(@Param("itemType") String itemType, @Param("itemId") Long itemId); List<Map<String, Object>> getDistributionByItemType(@Param("itemType") String itemType, @Param("itemId") Long itemId);
Page<WmsMaterialCoilVo> selectVoPagePlus(Page<Object> build,@Param("ew") QueryWrapper<WmsMaterialCoil> lqw);
} }

View File

@@ -1,6 +1,7 @@
package com.klp.service.impl; package com.klp.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.klp.common.core.page.TableDataInfo; import com.klp.common.core.page.TableDataInfo;
import com.klp.common.core.domain.PageQuery; import com.klp.common.core.domain.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -152,11 +153,27 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
*/ */
@Override @Override
public TableDataInfo<WmsMaterialCoilVo> queryPageList(WmsMaterialCoilBo bo, PageQuery pageQuery) { public TableDataInfo<WmsMaterialCoilVo> queryPageList(WmsMaterialCoilBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<WmsMaterialCoil> lqw = buildQueryWrapper(bo); QueryWrapper<WmsMaterialCoil> qw = buildQueryWrapperPlus(bo);
Page<WmsMaterialCoilVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw); Page<WmsMaterialCoilVo> result = baseMapper.selectVoPagePlus(pageQuery.build(), qw);
return TableDataInfo.build(result); return TableDataInfo.build(result);
} }
private QueryWrapper<WmsMaterialCoil> buildQueryWrapperPlus(WmsMaterialCoilBo bo) {
QueryWrapper<WmsMaterialCoil> qw = Wrappers.query();
qw.like(StringUtils.isNotBlank(bo.getEnterCoilNo()), "mc.enter_coil_no", bo.getEnterCoilNo());
qw.like(StringUtils.isNotBlank(bo.getCurrentCoilNo()), "mc.current_coil_no", bo.getCurrentCoilNo());
qw.like(StringUtils.isNotBlank(bo.getSupplierCoilNo()), "mc.supplier_coil_no", bo.getSupplierCoilNo());
qw.eq(bo.getDataType() != null, "mc.data_type", bo.getDataType());
qw.eq(bo.getWarehouseId() != null, "mc.warehouse_id", bo.getWarehouseId());
qw.eq(bo.getHasMergeSplit() != null, "mc.has_merge_split", bo.getHasMergeSplit());
qw.eq(bo.getStatus() != null, "mc.status", bo.getStatus());
qw.eq(StringUtils.isNotBlank(bo.getItemType()), "mc.item_type", bo.getItemType());
//逻辑删除
qw.eq("mc.del_flag", 0);
return qw;
}
/** /**
* 查询钢卷物料表列表 * 查询钢卷物料表列表
*/ */

View File

@@ -88,6 +88,30 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
GROUP BY mc.item_type, mc.item_id, w.warehouse_id, w.warehouse_name GROUP BY mc.item_type, mc.item_id, w.warehouse_id, w.warehouse_name
ORDER BY mc.item_type, mc.item_id, w.warehouse_id ORDER BY mc.item_type, mc.item_id, w.warehouse_id
</select> </select>
<select id="selectVoPagePlus" resultType="com.klp.domain.vo.WmsMaterialCoilVo">
SELECT
mc.coil_id,
mc.enter_coil_no,
mc.current_coil_no,
mc.supplier_coil_no,
mc.data_type,
mc.next_warehouse_id,
mc.qrcode_record_id,
mc.team,
mc.has_merge_split,
mc.parent_coil_nos,
mc.item_type,
mc.item_id,
mc.gross_weight,
mc.net_weight,
mc.status,
mc.remark,
mc.warehouse_id,
w.warehouse_name AS warehouseName
FROM wms_material_coil mc
LEFT JOIN wms_warehouse w ON mc.warehouse_id = w.warehouse_id
${ew.customSqlSegment}
</select>
</mapper> </mapper>