feat(wms): 新增动态关联查询功能并优化钢卷列表接口
- 在 WmsMaterialCoilMapper 中新增 selectVoListWithDynamicJoin 方法 - 修改 selectVoPagePlus SQL 查询逻辑,移除冗余字段 - 实现根据物品类型联查原材料或产品信息 - 更新 WmsMaterialCoilServiceImpl 中 queryList 方法调用新接口 - 优化 WmsMaterialCoilVo 字段注释及 Excel 导出配置- 移除部分不必要的 @ExcelProperty 注解 - 新增 itemName 和 itemCode 字段用于显示物品名称和编号- 调整字段注释说明 dataType 数据类型含义- 修复仓库变更判断逻辑中的空指针风险
This commit is contained in:
@@ -24,7 +24,6 @@ public class WmsMaterialCoilVo {
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@ExcelProperty(value = "主键ID")
|
||||
private Long coilId;
|
||||
|
||||
/**
|
||||
@@ -53,7 +52,7 @@ public class WmsMaterialCoilVo {
|
||||
private Integer dataType;
|
||||
|
||||
/**
|
||||
* 所在库区ID
|
||||
所在库区ID 联查当前库区和物品id 复卷好去掉 dataType数据类型是1当前 0就是历史 物品类型row_me 原材料 product产品
|
||||
*/
|
||||
@ExcelProperty(value = "所在库区ID")
|
||||
private Long warehouseId;
|
||||
@@ -61,13 +60,11 @@ public class WmsMaterialCoilVo {
|
||||
/**
|
||||
* 下一库区ID
|
||||
*/
|
||||
@ExcelProperty(value = "下一库区ID")
|
||||
private Long nextWarehouseId;
|
||||
|
||||
/**
|
||||
* 关联二维码ID
|
||||
*/
|
||||
@ExcelProperty(value = "关联二维码ID")
|
||||
private Long qrcodeRecordId;
|
||||
|
||||
/**
|
||||
@@ -86,7 +83,6 @@ public class WmsMaterialCoilVo {
|
||||
/**
|
||||
* 父卷号
|
||||
*/
|
||||
@ExcelProperty(value = "父卷号")
|
||||
private String parentCoilNos;
|
||||
|
||||
/**
|
||||
@@ -98,7 +94,6 @@ public class WmsMaterialCoilVo {
|
||||
/**
|
||||
* 物品ID
|
||||
*/
|
||||
@ExcelProperty(value = "物品ID")
|
||||
private Long itemId;
|
||||
|
||||
/**
|
||||
@@ -163,6 +158,7 @@ public class WmsMaterialCoilVo {
|
||||
/**
|
||||
* 库区名称(用于统计查询)
|
||||
*/
|
||||
@ExcelProperty(value = "库区名称")
|
||||
private String warehouseName;
|
||||
|
||||
/**
|
||||
@@ -180,8 +176,10 @@ public class WmsMaterialCoilVo {
|
||||
*/
|
||||
private BigDecimal totalNetWeight;
|
||||
|
||||
|
||||
|
||||
@ExcelProperty(value = "物品名称")
|
||||
private String itemName;
|
||||
@ExcelProperty(value = "物品编号")
|
||||
private String itemCode;
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -39,5 +39,7 @@ public interface WmsMaterialCoilMapper extends BaseMapperPlus<WmsMaterialCoilMap
|
||||
List<Map<String, Object>> getDistributionByItemType(@Param("itemType") String itemType, @Param("itemId") Long itemId);
|
||||
|
||||
Page<WmsMaterialCoilVo> selectVoPagePlus(Page<Object> build,@Param("ew") QueryWrapper<WmsMaterialCoil> lqw);
|
||||
|
||||
List<WmsMaterialCoilVo> selectVoListWithDynamicJoin(@Param("ew")QueryWrapper<WmsMaterialCoil> lqw);
|
||||
}
|
||||
|
||||
|
||||
@@ -181,10 +181,7 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
||||
@Override
|
||||
public List<WmsMaterialCoilVo> queryList(WmsMaterialCoilBo bo) {
|
||||
QueryWrapper<WmsMaterialCoil> lqw = buildQueryWrapperPlus(bo);
|
||||
Page<Object> build = new PageQuery().build();
|
||||
build.setSize(Long.MAX_VALUE);
|
||||
Page<WmsMaterialCoilVo> wmsMaterialCoilVoPage = baseMapper.selectVoPagePlus(build, lqw);
|
||||
return wmsMaterialCoilVoPage.getRecords();
|
||||
return baseMapper.selectVoListWithDynamicJoin(lqw);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -364,9 +361,9 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
||||
}
|
||||
|
||||
// 判断warehouseId是否发生变化
|
||||
boolean warehouseChanged = bo.getWarehouseId() != null &&
|
||||
boolean warehouseChanged = bo.getWarehouseId() != null &&
|
||||
!bo.getWarehouseId().equals(oldCoil.getWarehouseId());
|
||||
|
||||
|
||||
Long qrcodeRecordId;
|
||||
if (warehouseChanged) {
|
||||
// 如果库区发生变化,生成新的二维码
|
||||
|
||||
@@ -63,7 +63,30 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
GROUP BY w.warehouse_id, w.warehouse_name, mc.item_type, mc.item_id
|
||||
ORDER BY w.warehouse_id, mc.item_type, mc.item_id
|
||||
</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>
|
||||
<!-- 查询不同类型的钢卷在不同库区的分布情况 -->
|
||||
<select id="getDistributionByItemType" resultType="java.util.Map">
|
||||
SELECT
|
||||
@@ -88,30 +111,27 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
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
|
||||
</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
|
||||
<select id="selectVoListWithDynamicJoin" resultType="com.klp.domain.vo.WmsMaterialCoilVo">
|
||||
SELECT mc.*,
|
||||
w.warehouse_name AS warehouseName,
|
||||
CASE
|
||||
WHEN mc.item_type = 'row_material' THEN rm.raw_material_name
|
||||
WHEN mc.item_type = 'product' THEN p.product_name
|
||||
ELSE NULL
|
||||
END as itemName,
|
||||
CASE
|
||||
WHEN mc.item_type = 'row_material' THEN rm.raw_material_code
|
||||
WHEN mc.item_type = 'product' THEN p.product_code
|
||||
ELSE NULL
|
||||
END as itemCode
|
||||
FROM wms_material_coil mc
|
||||
LEFT JOIN wms_warehouse w ON mc.warehouse_id = w.warehouse_id
|
||||
${ew.customSqlSegment}
|
||||
LEFT JOIN wms_raw_material rm ON mc.item_type = 'row_material' AND mc.item_id = rm.raw_material_id
|
||||
LEFT JOIN wms_product p ON mc.item_type = 'product' AND mc.item_id = p.product_id
|
||||
LEFT JOIN wms_warehouse w ON mc.warehouse_id = w.warehouse_id
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
</mapper>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user