领料审核库存

This commit is contained in:
sxu 2024-08-19 14:54:28 +08:00
parent 29f45e6103
commit 25523e3f4b
1 changed files with 112 additions and 32 deletions

View File

@ -571,43 +571,123 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
mt.type_name like concat('%', #{keyWord}, '%'))
</if>
</select>
<!-- <select id="getUseTypeTree" resultType="com.bonus.sgzb.material.domain.TypeTreeNode">-->
<!-- WITH RECURSIVE type_hierarchy AS (&#45;&#45; 基础情况:从第四级开始-->
<!-- SELECT-->
<!-- mt.type_id,-->
<!-- mt.type_name,-->
<!-- mt.parent_id,-->
<!-- mt.unit_name as unitNames,-->
<!-- mt.company_id,-->
<!-- SUM( CASE WHEN sai.agreement_id = #{agreementId} AND sai.STATUS = '0' THEN sai.num ELSE 0 END ) AS num,-->
<!-- mt.LEVEL-->
<!-- FROM-->
<!-- ma_type mt-->
<!-- LEFT JOIN slt_agreement_info sai ON mt.type_id = sai.type_id-->
<!-- WHERE-->
<!-- EXISTS ( SELECT 1 FROM slt_agreement_info sai2 WHERE sai2.type_id = mt.type_id AND sai2.agreement_id = #{agreementId} AND sai2.STATUS = '0' and sai.lease_type = 0)-->
<!-- GROUP BY-->
<!-- mt.type_id UNION ALL&#45;&#45; 递归情况:向上查找父级-->
<!-- SELECT-->
<!-- mt.type_id,-->
<!-- mt.type_name,-->
<!-- mt.parent_id,-->
<!-- mt.unit_name,-->
<!-- mt.company_id,-->
<!-- 0 AS num,&#45;&#45; 父级没有直接关联的 num可以设为0或NULL-->
<!-- mt.LEVEL-->
<!-- FROM-->
<!-- ma_type mt-->
<!-- INNER JOIN type_hierarchy th ON mt.type_id = th.parent_id-->
<!-- ) &#45;&#45; 查询结果,包括从第四级到第一级的所有元素-->
<!-- SELECT-->
<!-- *-->
<!-- FROM-->
<!-- type_hierarchy-->
<!-- GROUP BY-->
<!-- type_id-->
<!-- ORDER BY-->
<!-- LEVEL ASC;-->
<!-- </select>-->
<select id="getUseTypeTree" resultType="com.bonus.sgzb.material.domain.TypeTreeNode">
WITH RECURSIVE type_hierarchy AS (-- 基础情况:从第四级开始
-- 查询从第四级到第一级的所有类型及相关信息
SELECT
mt.type_id,
mt.type_name,
mt.parent_id,
mt.unit_name as unitNames,
mt.company_id,
SUM( CASE WHEN sai.agreement_id = #{agreementId} AND sai.STATUS = '0' THEN sai.num ELSE 0 END ) AS num,
mt.LEVEL
t4.type_id,
t4.type_name,
t4.parent_id,
t4.unit_name,
t4.company_id,
COALESCE(SUM(CASE WHEN sai.agreement_id = #{agreementId} AND sai.status = '0' THEN sai.num ELSE 0 END), 0) AS num,
4 AS LEVEL
FROM
ma_type mt
LEFT JOIN slt_agreement_info sai ON mt.type_id = sai.type_id
ma_type t4
LEFT JOIN slt_agreement_info sai ON t4.type_id = sai.type_id
WHERE
EXISTS ( SELECT 1 FROM slt_agreement_info sai2 WHERE sai2.type_id = mt.type_id AND sai2.agreement_id = #{agreementId} AND sai2.STATUS = '0' and sai.lease_type = 0)
t4.level = 4
AND EXISTS (
SELECT 1 FROM slt_agreement_info sai2
WHERE sai2.type_id = t4.type_id AND sai2.agreement_id = #{agreementId} AND sai2.status = '0'
)
GROUP BY
mt.type_id UNION ALL-- 递归情况:向上查找父级
t4.type_id
UNION ALL
SELECT
mt.type_id,
mt.type_name,
mt.parent_id,
mt.unit_name,
mt.company_id,
0 AS num,-- 父级没有直接关联的 num可以设为0或NULL
mt.LEVEL
t3.type_id,
t3.type_name,
t3.parent_id,
t3.unit_name,
t3.company_id,
0 AS num,
3 AS LEVEL
FROM
ma_type mt
INNER JOIN type_hierarchy th ON mt.type_id = th.parent_id
) -- 查询结果,包括从第四级到第一级的所有元素
ma_type t3
INNER JOIN (
SELECT DISTINCT t4.parent_id
FROM ma_type t4
WHERE t4.level = 4
) AS parent_t4 ON t3.type_id = parent_t4.parent_id
UNION ALL
SELECT
*
t2.type_id,
t2.type_name,
t2.parent_id,
t2.unit_name,
t2.company_id,
0 AS num,
2 AS LEVEL
FROM
type_hierarchy
GROUP BY
type_id
ma_type t2
INNER JOIN (
SELECT DISTINCT t3.parent_id
FROM ma_type t3
WHERE t3.level = 3
) AS parent_t3 ON t2.type_id = parent_t3.parent_id
UNION ALL
SELECT
t1.type_id,
t1.type_name,
t1.parent_id,
t1.unit_name,
t1.company_id,
0 AS num,
1 AS LEVEL
FROM
ma_type t1
INNER JOIN (
SELECT DISTINCT t2.parent_id
FROM ma_type t2
WHERE t2.level = 2
) AS parent_t2 ON t1.type_id = parent_t2.parent_id
ORDER BY
LEVEL ASC;
LEVEL ASC, type_id;
</select>
<select id="exportList" resultType="com.bonus.sgzb.base.api.domain.BackApplyInfo">