2025-07-18 10:12:48 +08:00
|
|
|
|
<?xml version="1.0" encoding="UTF-8" ?>
|
|
|
|
|
|
<!DOCTYPE mapper
|
|
|
|
|
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|
|
|
|
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
|
|
|
|
|
<mapper namespace="com.klp.mapper.WmsStockMapper">
|
|
|
|
|
|
|
|
|
|
|
|
<resultMap type="com.klp.domain.WmsStock" id="WmsStockResult">
|
|
|
|
|
|
<result property="stockId" column="stock_id"/>
|
|
|
|
|
|
<result property="itemType" column="item_type"/>
|
|
|
|
|
|
<result property="itemId" column="item_id"/>
|
|
|
|
|
|
<result property="batchNo" column="batch_no"/>
|
|
|
|
|
|
<result property="remark" column="remark"/>
|
|
|
|
|
|
<result property="delFlag" column="del_flag"/>
|
|
|
|
|
|
<result property="createTime" column="create_time"/>
|
|
|
|
|
|
<result property="createBy" column="create_by"/>
|
|
|
|
|
|
<result property="updateTime" column="update_time"/>
|
|
|
|
|
|
<result property="updateBy" column="update_by"/>
|
|
|
|
|
|
</resultMap>
|
|
|
|
|
|
|
2025-07-18 17:23:51 +08:00
|
|
|
|
<select id="getStockByItemId" resultType="java.math.BigDecimal">
|
|
|
|
|
|
select sum(quantity) as quantity from wms_stock
|
|
|
|
|
|
where item_id = #{rawMaterialId} and item_type = 'raw_material' and del_flag = 0
|
|
|
|
|
|
</select>
|
|
|
|
|
|
|
2025-10-31 14:37:19 +08:00
|
|
|
|
<!-- 查询物料库存统计,基于物料钢卷表,支持Wrapper动态条件(包含group by),返回Page<WmsStockVo> -->
|
2025-07-19 17:53:28 +08:00
|
|
|
|
<select id="selectVoPagePlus" resultType="com.klp.domain.vo.WmsStockVo">
|
|
|
|
|
|
SELECT
|
2025-10-31 14:37:19 +08:00
|
|
|
|
mc.warehouse_id AS warehouseId,
|
|
|
|
|
|
mc.item_type AS itemType,
|
|
|
|
|
|
mc.item_id AS itemId,
|
|
|
|
|
|
w.warehouse_name AS warehouseName,
|
2025-07-19 18:02:29 +08:00
|
|
|
|
CASE
|
2025-10-31 14:37:19 +08:00
|
|
|
|
WHEN mc.item_type = 'product' THEN p.product_name
|
|
|
|
|
|
WHEN mc.item_type = 'raw_material' THEN r.raw_material_name
|
2025-07-19 17:53:28 +08:00
|
|
|
|
ELSE NULL
|
|
|
|
|
|
END AS itemName,
|
2025-07-19 18:02:29 +08:00
|
|
|
|
CASE
|
2025-10-31 14:37:19 +08:00
|
|
|
|
WHEN mc.item_type = 'product' THEN p.product_code
|
|
|
|
|
|
WHEN mc.item_type = 'raw_material' THEN r.raw_material_code
|
2025-07-19 17:53:28 +08:00
|
|
|
|
ELSE NULL
|
2025-10-31 14:50:20 +08:00
|
|
|
|
END AS itemCode,
|
|
|
|
|
|
COUNT(*) AS totalQuantity,
|
|
|
|
|
|
SUM(CASE WHEN mc.status = 1 THEN 1 ELSE 0 END) AS onTheWay
|
2025-10-31 14:37:19 +08:00
|
|
|
|
FROM wms_material_coil mc
|
|
|
|
|
|
LEFT JOIN wms_warehouse w ON mc.warehouse_id = w.warehouse_id AND w.del_flag = 0
|
|
|
|
|
|
LEFT JOIN wms_product p ON mc.item_type = 'product' AND mc.item_id = p.product_id AND p.del_flag = 0
|
|
|
|
|
|
LEFT JOIN wms_raw_material r ON mc.item_type = 'raw_material' AND mc.item_id = r.raw_material_id AND r.del_flag = 0
|
2025-10-31 14:50:20 +08:00
|
|
|
|
${ew.customSqlSegment}
|
2025-07-19 17:53:28 +08:00
|
|
|
|
</select>
|
2025-07-18 10:12:48 +08:00
|
|
|
|
|
2025-10-28 12:20:20 +08:00
|
|
|
|
<!-- 按仓库统计库存分布 -->
|
|
|
|
|
|
<select id="selectStockDistribution" resultType="com.klp.domain.vo.WmsStockVo">
|
|
|
|
|
|
SELECT
|
|
|
|
|
|
mc.warehouse_id AS warehouseId,
|
|
|
|
|
|
w.warehouse_name AS warehouseName,
|
|
|
|
|
|
COUNT(*) AS totalQuantity,
|
|
|
|
|
|
mc.item_type AS itemType,
|
|
|
|
|
|
mc.item_id AS itemId
|
|
|
|
|
|
FROM wms_material_coil mc
|
|
|
|
|
|
INNER JOIN wms_warehouse w ON mc.warehouse_id = w.warehouse_id AND w.del_flag = 0
|
|
|
|
|
|
WHERE mc.item_type = #{itemType}
|
|
|
|
|
|
AND mc.item_id = #{itemId}
|
|
|
|
|
|
AND mc.del_flag = 0
|
|
|
|
|
|
AND mc.data_type = 1
|
|
|
|
|
|
GROUP BY mc.warehouse_id, w.warehouse_name, mc.item_type, mc.item_id
|
|
|
|
|
|
ORDER BY totalQuantity DESC
|
|
|
|
|
|
</select>
|
2025-11-03 17:06:17 +08:00
|
|
|
|
<select id="selectVoPagePlusActual" resultType="com.klp.domain.vo.WmsStockVo">
|
|
|
|
|
|
SELECT mc.actual_warehouse_id AS actualWarehouseId,
|
|
|
|
|
|
mc.item_type AS itemType,
|
|
|
|
|
|
mc.item_id AS itemId,
|
|
|
|
|
|
w.actual_warehouse_name AS actualWarehouseName,
|
|
|
|
|
|
CASE
|
|
|
|
|
|
WHEN mc.item_type = 'product' THEN p.product_name
|
|
|
|
|
|
WHEN mc.item_type = 'raw_material' THEN r.raw_material_name
|
|
|
|
|
|
ELSE NULL
|
|
|
|
|
|
END AS itemName,
|
|
|
|
|
|
CASE
|
|
|
|
|
|
WHEN mc.item_type = 'product' THEN p.product_code
|
|
|
|
|
|
WHEN mc.item_type = 'raw_material' THEN r.raw_material_code
|
|
|
|
|
|
ELSE NULL
|
|
|
|
|
|
END AS itemCode,
|
|
|
|
|
|
COUNT(*) AS totalQuantity,
|
|
|
|
|
|
SUM(CASE WHEN mc.status = 1 THEN 1 ELSE 0 END) AS onTheWay
|
|
|
|
|
|
FROM wms_material_coil mc
|
|
|
|
|
|
LEFT JOIN wms_actual_warehouse w ON mc.actual_warehouse_id = w.actual_warehouse_id AND w.del_flag = 0
|
|
|
|
|
|
LEFT JOIN wms_product p ON mc.item_type = 'product' AND mc.item_id = p.product_id AND p.del_flag = 0
|
|
|
|
|
|
LEFT JOIN wms_raw_material r
|
|
|
|
|
|
ON mc.item_type = 'raw_material' AND mc.item_id = r.raw_material_id AND r.del_flag = 0
|
|
|
|
|
|
${ew.customSqlSegment}
|
|
|
|
|
|
</select>
|
2025-10-28 12:20:20 +08:00
|
|
|
|
|
2025-07-18 10:12:48 +08:00
|
|
|
|
</mapper>
|