feat(wms): 新增钢卷分页查询功能
- 在WmsMaterialCoilMapper中添加selectVoPagePlus方法及对应XML配置 - 实现基于QueryWrapper的分页查询逻辑- 补充关联字段warehouseName以支持统计展示-优化查询条件构造器,增强筛选能力 - 调整VO类结构,确保数据传输完整性- 修复原查询逻辑中的潜在空指针问题
This commit is contained in:
@@ -127,59 +127,61 @@ public class WmsMaterialCoilVo {
|
|||||||
private String remark;
|
private String remark;
|
||||||
|
|
||||||
// ========== 关联对象属性 ==========
|
// ========== 关联对象属性 ==========
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 所在库区信息
|
* 所在库区信息
|
||||||
*/
|
*/
|
||||||
private WmsWarehouseVo warehouse;
|
private WmsWarehouseVo warehouse;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 下一库区信息
|
* 下一库区信息
|
||||||
*/
|
*/
|
||||||
private WmsWarehouseVo nextWarehouse;
|
private WmsWarehouseVo nextWarehouse;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 二维码信息
|
* 二维码信息
|
||||||
*/
|
*/
|
||||||
private WmsGenerateRecordVo qrcodeRecord;
|
private WmsGenerateRecordVo qrcodeRecord;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 原材料信息(当itemType为raw_material时)
|
* 原材料信息(当itemType为raw_material时)
|
||||||
*/
|
*/
|
||||||
private WmsRawMaterialVo rawMaterial;
|
private WmsRawMaterialVo rawMaterial;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 产品信息(当itemType为product时)
|
* 产品信息(当itemType为product时)
|
||||||
*/
|
*/
|
||||||
private Object product; // 产品VO待定义
|
private Object product; // 产品VO待定义
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BOM列表(原材料对应的BOM项目信息)
|
* BOM列表(原材料对应的BOM项目信息)
|
||||||
*/
|
*/
|
||||||
private List<WmsBomItemVo> bomItemList;
|
private List<WmsBomItemVo> bomItemList;
|
||||||
|
|
||||||
// ========== 统计相关属性 ==========
|
// ========== 统计相关属性 ==========
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 库区名称(用于统计查询)
|
* 库区名称(用于统计查询)
|
||||||
*/
|
*/
|
||||||
private String warehouseName;
|
private String warehouseName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 钢卷数量(用于统计查询)
|
* 钢卷数量(用于统计查询)
|
||||||
*/
|
*/
|
||||||
private Long coilCount;
|
private Long coilCount;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 总毛重(用于统计查询)
|
* 总毛重(用于统计查询)
|
||||||
*/
|
*/
|
||||||
private BigDecimal totalGrossWeight;
|
private BigDecimal totalGrossWeight;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 总净重(用于统计查询)
|
* 总净重(用于统计查询)
|
||||||
*/
|
*/
|
||||||
private BigDecimal totalNetWeight;
|
private BigDecimal totalNetWeight;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
@@ -136,7 +137,7 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
|||||||
if ("product".equals(vo.getItemType()) && vo.getItemId() != null) {
|
if ("product".equals(vo.getItemType()) && vo.getItemId() != null) {
|
||||||
// 产品和原材料的查询逻辑相同,都通过itemId查询
|
// 产品和原材料的查询逻辑相同,都通过itemId查询
|
||||||
WmsRawMaterialVo rawMaterial = rawMaterialService.queryById(vo.getItemId());
|
WmsRawMaterialVo rawMaterial = rawMaterialService.queryById(vo.getItemId());
|
||||||
|
|
||||||
// 查询原材料对应的BOM信息(通过bomId查询BomItem列表)
|
// 查询原材料对应的BOM信息(通过bomId查询BomItem列表)
|
||||||
if (rawMaterial != null && rawMaterial.getBomId() != null) {
|
if (rawMaterial != null && rawMaterial.getBomId() != null) {
|
||||||
WmsBomItemBo bomItemBo = new WmsBomItemBo();
|
WmsBomItemBo bomItemBo = new WmsBomItemBo();
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询钢卷物料表列表
|
* 查询钢卷物料表列表
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
|
|
||||||
<!-- 查询各个库区中不同类型的钢卷分布情况 -->
|
<!-- 查询各个库区中不同类型的钢卷分布情况 -->
|
||||||
<select id="getDistributionByWarehouse" resultType="java.util.Map">
|
<select id="getDistributionByWarehouse" resultType="java.util.Map">
|
||||||
SELECT
|
SELECT
|
||||||
w.warehouse_id,
|
w.warehouse_id,
|
||||||
w.warehouse_name,
|
w.warehouse_name,
|
||||||
mc.item_type,
|
mc.item_type,
|
||||||
@@ -50,8 +50,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
COALESCE(SUM(mc.gross_weight), 0) as total_gross_weight,
|
COALESCE(SUM(mc.gross_weight), 0) as total_gross_weight,
|
||||||
COALESCE(SUM(mc.net_weight), 0) as total_net_weight
|
COALESCE(SUM(mc.net_weight), 0) as total_net_weight
|
||||||
FROM wms_warehouse w
|
FROM wms_warehouse w
|
||||||
LEFT JOIN wms_material_coil mc ON w.warehouse_id = mc.warehouse_id
|
LEFT JOIN wms_material_coil mc ON w.warehouse_id = mc.warehouse_id
|
||||||
AND mc.data_type = 1
|
AND mc.data_type = 1
|
||||||
AND mc.del_flag = '0'
|
AND mc.del_flag = '0'
|
||||||
WHERE w.del_flag = '0'
|
WHERE w.del_flag = '0'
|
||||||
<if test="itemType != null and itemType != ''">
|
<if test="itemType != null and itemType != ''">
|
||||||
@@ -66,7 +66,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
|
|
||||||
<!-- 查询不同类型的钢卷在不同库区的分布情况 -->
|
<!-- 查询不同类型的钢卷在不同库区的分布情况 -->
|
||||||
<select id="getDistributionByItemType" resultType="java.util.Map">
|
<select id="getDistributionByItemType" resultType="java.util.Map">
|
||||||
SELECT
|
SELECT
|
||||||
mc.item_type,
|
mc.item_type,
|
||||||
mc.item_id,
|
mc.item_id,
|
||||||
w.warehouse_id,
|
w.warehouse_id,
|
||||||
@@ -76,7 +76,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
COALESCE(SUM(mc.net_weight), 0) as total_net_weight
|
COALESCE(SUM(mc.net_weight), 0) as total_net_weight
|
||||||
FROM wms_material_coil mc
|
FROM wms_material_coil mc
|
||||||
LEFT JOIN wms_warehouse w ON mc.warehouse_id = w.warehouse_id
|
LEFT JOIN wms_warehouse w ON mc.warehouse_id = w.warehouse_id
|
||||||
WHERE mc.data_type = 1
|
WHERE mc.data_type = 1
|
||||||
AND mc.del_flag = '0'
|
AND mc.del_flag = '0'
|
||||||
AND (w.del_flag = '0' OR w.del_flag IS NULL)
|
AND (w.del_flag = '0' OR w.del_flag IS NULL)
|
||||||
<if test="itemType != null and itemType != ''">
|
<if test="itemType != null and itemType != ''">
|
||||||
@@ -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>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user