feat: bug-954 储位可视化管理页面

This commit is contained in:
曹鹏飞 2025-12-01 13:55:46 +08:00
parent cc97b57f97
commit 6c79973c13
7 changed files with 64 additions and 0 deletions

View File

@ -7,6 +7,7 @@ import com.nflg.wms.common.pojo.qo.BinAddQO;
import com.nflg.wms.common.pojo.qo.BinSearchQO;
import com.nflg.wms.common.pojo.qo.BinUpdateQO;
import com.nflg.wms.common.pojo.qo.EnableQO;
import com.nflg.wms.common.pojo.vo.BinInventoryVO;
import com.nflg.wms.common.pojo.vo.BinVO;
import com.nflg.wms.starter.BaseController;
import jakarta.annotation.Resource;
@ -113,4 +114,13 @@ public class BinController extends BaseController {
public void exportPdf(HttpServletResponse response, @Valid @RequestBody @NotEmpty List<Long> ids) throws Exception {
binControllerService.exportPdf(response, ids);
}
/**
* 获取库存信息
* @param warehouseId 仓库id
*/
@GetMapping("getInventory")
public ApiResult<List<BinInventoryVO>> getInventory(@RequestParam Long warehouseId) {
return ApiResult.success(binControllerService.getInventory(warehouseId));
}
}

View File

@ -18,6 +18,7 @@ import com.nflg.wms.common.pojo.qo.BinAddQO;
import com.nflg.wms.common.pojo.qo.BinSearchQO;
import com.nflg.wms.common.pojo.qo.BinUpdateQO;
import com.nflg.wms.common.pojo.qo.EnableQO;
import com.nflg.wms.common.pojo.vo.BinInventoryVO;
import com.nflg.wms.common.pojo.vo.BinVO;
import com.nflg.wms.common.util.DateTimeUtil;
import com.nflg.wms.common.util.EecExcelUtil;
@ -210,4 +211,8 @@ public class BinControllerService {
String html = ThymeleafUtil.generator("/template/", "储位二维码", ".html", variables);
PdfGeneratorUtil.generatePdf("储位二维码", html, response);
}
public List<BinInventoryVO> getInventory(Long warehouseId) {
return wmsBinService.getInventory(warehouseId);
}
}

View File

@ -0,0 +1,26 @@
package com.nflg.wms.common.pojo.vo;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class BinInventoryVO {
private Long id;
/**
* 储位编码
*/
private String no;
/**
* 物料编码
*/
private String materialNo;
/**
* 数量
*/
private BigDecimal num;
}

View File

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nflg.wms.common.pojo.qo.BinSearchQO;
import com.nflg.wms.common.pojo.vo.BinInventoryVO;
import com.nflg.wms.common.pojo.vo.BinVO;
import com.nflg.wms.repository.entity.WmsBin;
import org.apache.ibatis.annotations.Param;
@ -25,4 +26,6 @@ public interface WmsBinMapper extends BaseMapper<WmsBin> {
List<BinVO> getList(List<Long> ids);
List<BinVO> searchNonPage(@Param("request") BinSearchQO request);
List<BinInventoryVO> getInventory(Long warehouseId);
}

View File

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.nflg.wms.common.pojo.qo.BinSearchQO;
import com.nflg.wms.common.pojo.qo.EnableQO;
import com.nflg.wms.common.pojo.vo.BinInventoryVO;
import com.nflg.wms.common.pojo.vo.BinVO;
import com.nflg.wms.repository.entity.WmsBin;
import jakarta.validation.Valid;
@ -34,4 +35,6 @@ public interface IWmsBinService extends IService<WmsBin> {
List<BinVO> getList(List<Long> ids);
List<BinVO> searchNonPage(@Valid BinSearchQO request);
List<BinInventoryVO> getInventory(Long warehouseId);
}

View File

@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.nflg.wms.common.pojo.qo.BinSearchQO;
import com.nflg.wms.common.pojo.qo.EnableQO;
import com.nflg.wms.common.pojo.vo.BinInventoryVO;
import com.nflg.wms.common.pojo.vo.BinVO;
import com.nflg.wms.common.util.UserUtil;
import com.nflg.wms.common.util.VUtil;
@ -105,4 +106,9 @@ public class WmsBinServiceImpl extends ServiceImpl<WmsBinMapper, WmsBin> impleme
public List<BinVO> searchNonPage(BinSearchQO request) {
return baseMapper.searchNonPage(request);
}
@Override
public List<BinInventoryVO> getInventory(Long warehouseId) {
return baseMapper.getInventory(warehouseId);
}
}

View File

@ -36,4 +36,15 @@
</where>
order by bin.id desc
</select>
<select id="getInventory" resultType="com.nflg.wms.common.pojo.vo.BinInventoryVO">
SELECT b."no",COALESCE(SUM(i.num),0)
FROM wms_bin b
LEFT JOIN wms_storage_bin sb ON sb.bin_id=b."id"
LEFT JOIN wms_storage s ON s."id"=sb.storage_id
LEFT JOIN wms_inventory i ON s.material_no=i.material_no
WHERE b.warehouse_id = #{warehouseId}
GROUP BY b."no"
ORDER BY b."no"
</select>
</mapper>