feat(wms): 新增库存批次号查询功能

- 在 IWmsStockIoDetailService 接口中添加 batchQuery 方法
- 在 WmsStockIoDetailController 中添加 batchQuery 接口
- 在 WmsStockIoDetailMapper 接口中添加 batchQuery 方法
- 在 WmsStockIoDetailMapper.xml 中添加对应的 SQL 查询语句
- 在 WmsStockIoDetailServiceImpl 中实现 batchQuery 方法
- 在 WmsStockIoDetailVo 中添加主表的 stockIoCode、ioType 和 bizType 字段
This commit is contained in:
2025-09-12 17:53:23 +08:00
parent bd8215cdc5
commit 1b07c5a278
10 changed files with 69 additions and 9 deletions

View File

@@ -108,4 +108,5 @@ public class WmsStockController extends BaseController {
List<WmsStockVo> list = iWmsStockService.queryList(bo);
return R.ok("查询到 " + list.size() + " 条库存记录仓库ID: " + warehouseId);
}
}

View File

@@ -3,6 +3,8 @@ package com.klp.controller;
import java.util.List;
import java.util.Arrays;
import com.klp.domain.bo.WmsStockBo;
import com.klp.domain.vo.WmsStockVo;
import lombok.RequiredArgsConstructor;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.*;
@@ -97,4 +99,10 @@ public class WmsStockIoDetailController extends BaseController {
@PathVariable Long[] detailIds) {
return toAjax(iWmsStockIoDetailService.deleteWithValidByIds(Arrays.asList(detailIds), true));
}
//根据批次号联查出入库单主表以及明细表信息
@PostMapping("/batch/{batchNo}")
public R<String> batchQuery(@RequestBody WmsStockIoDetailBo bo) {
List<WmsStockIoDetailVo> list = iWmsStockIoDetailService.batchQuery(bo);
return R.ok("查询到 " + list.size() + " 条库存记录,批次号: " + bo.getBatchNo());
}
}

View File

@@ -94,5 +94,10 @@ public class WmsStockIoDetailVo {
*/
private Long fromWarehouseId;
//主表的 数据号 类型以及业务类型
private String stockIoCode;
private String ioType;
private String bizType;
}

View File

@@ -1,5 +1,7 @@
package com.klp.mapper;
import com.klp.common.core.validate.AddGroup;
import com.klp.common.core.validate.EditGroup;
import com.klp.domain.WmsStockIoDetail;
import com.klp.domain.vo.WmsStockIoDetailVo;
import com.klp.common.core.mapper.BaseMapperPlus;
@@ -9,6 +11,8 @@ import java.util.Map;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import javax.validation.constraints.NotBlank;
/**
* 出入库单明细Mapper接口
*
@@ -28,4 +32,6 @@ public interface WmsStockIoDetailMapper extends BaseMapperPlus<WmsStockIoDetailM
* 分页联查库区/库位名称的明细列表支持Wrapper动态条件返回Page<WmsStockIoDetailVo>
*/
Page<WmsStockIoDetailVo> selectVoPagePlus(Page<?> page, @Param("ew") Wrapper<WmsStockIoDetail> wrapper);
List<WmsStockIoDetailVo> batchQuery(@Param("batchNo") String batchNo);
}

View File

@@ -1,5 +1,7 @@
package com.klp.mapper;
import com.klp.common.core.validate.AddGroup;
import com.klp.common.core.validate.EditGroup;
import com.klp.domain.WmsStock;
import com.klp.domain.vo.WmsStockVo;
import com.klp.common.core.mapper.BaseMapperPlus;
@@ -8,7 +10,9 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import javax.validation.constraints.NotBlank;
import java.math.BigDecimal;
import java.util.List;
/**
* 库存:原材料/产品与库区/库位的存放关系Mapper接口
@@ -24,4 +28,5 @@ public interface WmsStockMapper extends BaseMapperPlus<WmsStockMapper, WmsStock,
* 分页联查物品名称和编码支持Wrapper动态条件返回Page<WmsStockVo>
*/
Page<WmsStockVo> selectVoPagePlus(Page<?> page, @Param("ew") Wrapper<WmsStock> wrapper);
}

View File

@@ -1,10 +1,12 @@
package com.klp.service;
import com.klp.domain.WmsStockIoDetail;
import com.klp.domain.bo.WmsStockBo;
import com.klp.domain.vo.WmsStockIoDetailVo;
import com.klp.domain.bo.WmsStockIoDetailBo;
import com.klp.common.core.page.TableDataInfo;
import com.klp.common.core.domain.PageQuery;
import com.klp.domain.vo.WmsStockVo;
import java.util.Collection;
import java.util.List;
@@ -46,4 +48,6 @@ public interface IWmsStockIoDetailService {
* 校验并批量删除出入库单明细信息
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
List<WmsStockIoDetailVo> batchQuery(WmsStockIoDetailBo bo);
}

View File

@@ -52,4 +52,6 @@ public interface IWmsStockService {
* 根据原材料ID获取库存数量 (用于生成推荐采购计划)
*/
BigDecimal getStockByItemId(Long rawMaterialId);
}

View File

@@ -9,6 +9,8 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.klp.common.utils.StringUtils;
import com.klp.domain.WmsProduct;
import com.klp.domain.WmsRawMaterial;
import com.klp.domain.bo.WmsStockBo;
import com.klp.domain.vo.WmsStockVo;
import com.klp.mapper.WmsProductMapper;
import com.klp.mapper.WmsRawMaterialMapper;
import lombok.RequiredArgsConstructor;
@@ -22,10 +24,8 @@ import com.klp.mapper.WmsStockIoDetailMapper;
import com.klp.mapper.WmsStockIoMapper;
import com.klp.service.IWmsStockIoDetailService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
import java.util.Date;
import java.util.*;
import com.klp.common.exception.ServiceException;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -220,4 +220,10 @@ public class WmsStockIoDetailServiceImpl implements IWmsStockIoDetailService {
return baseMapper.deleteBatchIds(ids) > 0;
}
@Override
public List<WmsStockIoDetailVo> batchQuery(WmsStockIoDetailBo bo) {
//根据这个bo.getBatchNo()拿到这个批次号对应明细表的信息在根据明细表带的stockIoId拿到库存表信息
return baseMapper.batchQuery(bo.getBatchNo());
}
}

View File

@@ -23,10 +23,7 @@ import com.klp.mapper.WmsWarehouseMapper;
import com.klp.service.IWmsStockService;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
import java.util.Collection;
import java.util.ArrayList;
import java.util.*;
/**
* 库存:原材料/产品与库区/库位的存放关系Service业务层处理
@@ -182,6 +179,8 @@ public class WmsStockServiceImpl implements IWmsStockService {
return baseMapper.getStockByItemId(rawMaterialId);
}
/**
* 获取指定仓库ID及其所有子仓库ID
* @param warehouseId 仓库ID

View File

@@ -79,5 +79,29 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
LEFT JOIN wms_warehouse w2 ON d.from_warehouse_id = w2.warehouse_id and w2.del_flag = 0
${ew.customSqlSegment}
</select>
<select id="batchQuery" resultType="com.klp.domain.vo.WmsStockIoDetailVo">
SELECT
d.detail_id,
d.stock_io_id,
d.warehouse_id,
d.item_type,
d.item_id,
d.quantity,
d.unit,
d.batch_no,
d.remark,
d.del_flag,
d.create_time,
d.create_by,
d.update_time,
d.update_by,
d.from_warehouse_id,
d.record_type,
io.stock_io_code AS stockIoCode,
io.io_type AS ioType,
io.biz_type AS bizType
FROM wms_stock_io_detail d
LEFT JOIN wms_stock_io io ON d.stock_io_id = io.stock_io_id and io.del_flag = 0
WHERE d.batch_no = #{batchNo}
</select>
</mapper>