<?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.ruoyi.production.mapper.ProductOrderMaterialMapper">
|
<resultMap id="BaseResultMap" type="com.ruoyi.production.pojo.ProductOrderMaterial">
|
<id column="id" property="id" />
|
<result column="tenant_id" property="tenantId" />
|
<result column="process_name" property="processName" />
|
<result column="material_name" property="materialName" />
|
<result column="material_model" property="materialModel" />
|
<result column="required_qty" property="requiredQty" />
|
<result column="unit" property="unit" />
|
<result column="pick_qty" property="pickQty" />
|
<result column="supplement_qty" property="supplementQty" />
|
<result column="return_qty" property="returnQty" />
|
<result column="actual_qty" property="actualQty" />
|
<result column="create_time" property="createTime" />
|
<result column="update_time" property="updateTime" />
|
<result column="create_user" property="createUser" />
|
<result column="update_user" property="updateUser" />
|
|
</resultMap>
|
<select id="pickMaterial" resultType="com.ruoyi.production.pojo.ProductOrderMaterial">
|
SELECT
|
si.id,
|
si.qualitity,
|
COALESCE(si.locked_quantity, 0) AS locked_quantity,
|
si.product_model_id,
|
si.create_time,
|
si.update_time,
|
COALESCE(si.warn_num, 0) AS warn_num,
|
si.version,
|
(si.qualitity - COALESCE(si.locked_quantity, 0)) AS un_locked_quantity,
|
pm.model,
|
si.remark,
|
pm.unit,
|
pm.uid_no AS uidNo,
|
p.product_name,
|
p1.product_name AS parentName,
|
si.batch_no,
|
si.customer
|
FROM
|
stock_inventory si
|
LEFT JOIN product_model pm ON si.product_model_id = pm.id
|
LEFT JOIN product p ON pm.product_id = p.id
|
LEFT JOIN product p1 ON p1.id = p.parent_id
|
</select>
|
|
<select id="selectLeafNode" resultType="com.ruoyi.production.dto.ProductStructureDto">
|
SELECT
|
ps.*,
|
p.product_name,
|
pp.NAME AS process_name,
|
pm.product_id,
|
pm.model
|
FROM
|
product_structure ps
|
LEFT JOIN product_model pm ON ps.product_model_id = pm.id
|
LEFT JOIN product p ON pm.product_id = p.id
|
LEFT JOIN product_process pp ON ps.process_id = pp.id
|
WHERE
|
ps.bom_id = #{bomId}
|
AND NOT EXISTS (SELECT 1 FROM product_structure ps_child WHERE ps_child.parent_id = ps.id AND ps_child.bom_id = 30)
|
ORDER BY
|
ps.id
|
</select>
|
|
<select id="selectByProductModelIds" resultType="com.ruoyi.production.dto.ProductOrderMaterialDto">
|
SELECT
|
si.id,
|
si.qualitity,
|
COALESCE(si.locked_quantity, 0) AS locked_quantity,
|
si.product_model_id,
|
si.create_time,
|
si.update_time,
|
COALESCE(si.warn_num, 0) AS warn_num,
|
si.version,
|
(si.qualitity - COALESCE(si.locked_quantity, 0)) AS un_locked_quantity,
|
pm.model as materialModel,
|
si.remark,
|
pm.unit,
|
pm.uid_no AS uidNo,
|
p.product_name as materialName,
|
p1.product_name AS parentName,
|
leaf.process_name,
|
leaf.id AS structure_id
|
FROM stock_inventory si
|
LEFT JOIN product_model pm ON si.product_model_id = pm.id
|
LEFT JOIN product p ON pm.product_id = p.id
|
LEFT JOIN product p1 ON p1.id = p.parent_id
|
INNER JOIN (
|
SELECT
|
ps.product_model_id,
|
pp.name AS process_name,
|
ps.id
|
FROM product_structure ps
|
LEFT JOIN product_process pp ON ps.process_id = pp.id
|
WHERE ps.product_model_id IN
|
<foreach collection="ids" item="id" open="(" separator="," close=")">
|
#{id}
|
</foreach>
|
AND ps.id NOT IN (
|
SELECT DISTINCT parent_id
|
FROM product_structure
|
WHERE parent_id IS NOT NULL
|
AND parent_id != 0
|
AND product_model_id IN
|
<foreach collection="ids" item="id" open="(" separator="," close=")">
|
#{id}
|
</foreach>
|
))
|
leaf ON leaf.product_model_id = si.product_model_id
|
ORDER BY si.id
|
</select>
|
</mapper>
|