Files
klp-oa/klp-wms/src/main/java/com/klp/controller/WmsStockController.java
Joshi 83edc5703a feat(wms): 新增按实际库区查询钢卷分布功能
- 在 IWmsMaterialCoilService 接口中新增 getDistributionByActualWarehouse 方法
- 实现钢卷按实际库区统计数量和重量的查询逻辑
- 添加对应的 Mapper XML 查询语句,支持按物品类型和 ID 过滤
- 在 Controller 中暴露新的 REST 接口 /distributionByActualWarehouse
- 扩展 WmsStockBo 和 WmsStockVo 类以支持实际库区相关字段
- 新增 queryPageListActual 方法用于分页查询实际库区库存数据
- 实现递归查询子实际库区的功能,并应用到查询条件中
- 更新 Mapper 文件及服务实现类以支持新查询逻辑
2025-11-03 17:06:17 +08:00

127 lines
4.4 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.klp.controller;
import java.util.List;
import java.util.Arrays;
import lombok.RequiredArgsConstructor;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.*;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import com.klp.common.annotation.RepeatSubmit;
import com.klp.common.annotation.Log;
import com.klp.common.core.controller.BaseController;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.domain.R;
import com.klp.common.core.validate.AddGroup;
import com.klp.common.core.validate.EditGroup;
import com.klp.common.enums.BusinessType;
import com.klp.common.utils.poi.ExcelUtil;
import com.klp.domain.vo.WmsStockVo;
import com.klp.domain.bo.WmsStockBo;
import com.klp.service.IWmsStockService;
import com.klp.common.core.page.TableDataInfo;
/**
* 库存:原材料/产品与库区/库位的存放关系
*
* @author Joshi
* @date 2025-07-18
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/wms/stock")
public class WmsStockController extends BaseController {
private final IWmsStockService iWmsStockService;
/**
* 查询库存:原材料/产品与库区/库位的存放关系列表
*/
@GetMapping("/list")
public TableDataInfo<WmsStockVo> list(WmsStockBo bo, PageQuery pageQuery) {
return iWmsStockService.queryPageList(bo, pageQuery);
}
@GetMapping("/listActual")
public TableDataInfo<WmsStockVo> listActual(WmsStockBo bo, PageQuery pageQuery) {
return iWmsStockService.queryPageListActual(bo, pageQuery);
}
/**
* 导出库存:原材料/产品与库区/库位的存放关系列表
*/
@Log(title = "库存:原材料/产品与库区/库位的存放关系", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(WmsStockBo bo, HttpServletResponse response) {
List<WmsStockVo> list = iWmsStockService.queryList(bo);
ExcelUtil.exportExcel(list, "库存:原材料-产品与库区-库位的存放关系", WmsStockVo.class, response);
}
/**
* 获取库存:原材料/产品与库区/库位的存放关系详细信息
*
* @param stockId 主键
*/
@GetMapping("/{stockId}")
public R<WmsStockVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long stockId) {
return R.ok(iWmsStockService.queryById(stockId));
}
/**
* 新增库存:原材料/产品与库区/库位的存放关系
*/
@Log(title = "库存:原材料/产品与库区/库位的存放关系", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody WmsStockBo bo) {
return toAjax(iWmsStockService.insertByBo(bo));
}
/**
* 修改库存:原材料/产品与库区/库位的存放关系
*/
@Log(title = "库存:原材料/产品与库区/库位的存放关系", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody WmsStockBo bo) {
return toAjax(iWmsStockService.updateByBo(bo));
}
/**
* 删除库存:原材料/产品与库区/库位的存放关系
*
* @param stockIds 主键串
*/
@Log(title = "库存:原材料/产品与库区/库位的存放关系", businessType = BusinessType.DELETE)
@DeleteMapping("/{stockIds}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] stockIds) {
return toAjax(iWmsStockService.deleteWithValidByIds(Arrays.asList(stockIds), true));
}
/**
* 测试递归查询功能
*/
@GetMapping("/test/warehouse/{warehouseId}")
public R<String> testWarehouseQuery(@PathVariable Long warehouseId) {
WmsStockBo bo = new WmsStockBo();
bo.setWarehouseId(warehouseId);
List<WmsStockVo> list = iWmsStockService.queryList(bo);
return R.ok("查询到 " + list.size() + " 条库存记录仓库ID: " + warehouseId);
}
/**
* 查询库存分布(按仓库统计)
*
* @param bo 查询参数itemType和itemId必填
*/
@GetMapping("/distribution")
public R<WmsStockVo> distribution(WmsStockBo bo) {
WmsStockVo result = iWmsStockService.queryStockDistribution(bo);
return R.ok(result);
}
}