物料信息

This commit is contained in:
zq111100
2025-09-09 17:49:29 +08:00
committed by chenbowen
parent 7200060862
commit 0291d56ea3
30 changed files with 1841 additions and 21 deletions

View File

@@ -0,0 +1,12 @@
<?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="cn.iocoder.yudao.module.backendlogistics.dal.mysql.bseMngt.rlwyMtrl.RlwyMtrlSubMapper">
<!--
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
文档可见https://www.iocoder.cn/MyBatis/x-plugins/
-->
</mapper>

View File

@@ -0,0 +1,87 @@
<?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="cn.iocoder.yudao.module.backendlogistics.dal.mysql.bseMngt.mtrl.MtrlXpdMapper">
<!--
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
文档可见https://www.iocoder.cn/MyBatis/x-plugins/
-->
<select id="selectPage2"
resultType="cn.iocoder.yudao.module.backendlogistics.controller.admin.backendlogistics.bseMngt.mtrl.vo.MtrlXpdRespVO">
SELECT MI.ID AS materialId,
MI.CD AS materialCode,
MI.NAME AS materialName,
MI.RMK AS description,
LMX.INSP_FLG AS inspectionFlag,
LMX.MTNG_FLG AS meteringFlag,
LMX.SPLG_NDE AS samplingNode
from MTRL_INF MI
LEFT JOIN MTRL_HS_CLS MHC ON MI.ID = MHC.INF_ID
LEFT JOIN LGST_MTRL_XPD LMX ON MI.ID = LMX.MTRL_ID
<where>
<if test="reqVO.classesId != null">
AND MHC.CLS_ID = #{reqVO.classesId}
</if>
<if test="reqVO.deptId != null">
AND LMX.DEPT_ID = #{reqVO.deptId}
</if>
</where>
</select>
<select id="selectByMaterialId"
resultType="cn.iocoder.yudao.module.backendlogistics.dal.dataobject.bseMngt.mtrl.MtrlXpdDO">
select * from MTRL_XPD where MTRL_ID = #{materialId}
</select>
<select id="selectMaterialClasses"
resultType="cn.iocoder.yudao.module.backendlogistics.controller.admin.backendlogistics.bseMngt.mtrl.vo.MtrlXpdRespVO"
flushCache="true"
useCache="false">
WITH material_class_hierarchy (
material_id, class_level, class_id, class_code, class_name, parent_id, hierarchy_level
) AS (
SELECT mi.ID as material_id,
mc.LVL as class_level,
mc.ID as class_id,
mc.CD as class_code,
mc.NAME as class_name,
mc.PRN_ID as parent_id,
1 as hierarchy_level
FROM "RUOYI-VUE-PRO".MTRL_INF mi
LEFT JOIN "RUOYI-VUE-PRO".MTRL_HS_CLS mhc ON mi.ID = mhc.INF_ID
LEFT JOIN "RUOYI-VUE-PRO".MTRL_CLS mc ON mhc.CLS_ID = mc.ID AND mc.DELETED = 0
WHERE mi.id IS NOT NULL
<if test="materialIds != null and materialIds.size() > 0">
AND mi.ID IN
<foreach item="item" index="index" collection="materialIds" separator="," open="(" close=")">
#{item}
</foreach>
</if>
UNION ALL
SELECT mch.material_id,
mc.LVL as class_level,
mc.ID as class_id,
mc.CD as class_code,
mc.NAME as class_name,
mc.PRN_ID as parent_id,
mch.hierarchy_level + 1 as hierarchy_level
FROM material_class_hierarchy mch
JOIN "RUOYI-VUE-PRO".MTRL_CLS mc ON mch.parent_id = mc.id AND mc.DELETED = 0
WHERE mch.parent_id IS NOT NULL)
SELECT material_id AS materialId,
MAX(CASE WHEN hierarchy_level = 1 THEN class_code END) as bigTypeCode,
MAX(CASE WHEN hierarchy_level = 1 THEN class_name END) as bigTypeName,
MAX(CASE WHEN hierarchy_level = 2 THEN class_code END) as midTypeCode,
MAX(CASE WHEN hierarchy_level = 2 THEN class_name END) as midTypeName,
MAX(CASE WHEN hierarchy_level = 3 THEN class_code END) as smalTypeCode,
MAX(CASE WHEN hierarchy_level = 3 THEN class_name END) as smalTypeName
FROM material_class_hierarchy
GROUP BY material_id
ORDER BY material_id;
</select>
</mapper>