Files
fad_oa/ruoyi-oa/src/main/resources/mapper/oa/SysOaWarehouseMasterMapper.xml

144 lines
5.6 KiB
XML
Raw Normal View History

2025-03-19 21:37:54 +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.ruoyi.oa.mapper.SysOaWarehouseMasterMapper">
<!-- ===================================================== -->
<!-- 主表 + 子表 统一 ResultMap -->
<!-- ===================================================== -->
<resultMap id="SysOaWarehouseMasterResult"
type="com.ruoyi.oa.domain.vo.SysOaWarehouseMasterVo">
2025-03-19 21:37:54 +08:00
<id property="masterId" column="master_id"/>
<result property="masterNum" column="master_num"/>
<result property="type" column="type"/>
<result property="projectId" column="project_id"/>
<result property="signTime" column="sign_time"/>
<result property="signUser" column="sign_user"/>
<result property="remark" column="remark"/>
<result property="projectName" column="project_name"/>
<result property="status" column="status"/>
2025-05-22 19:49:01 +08:00
<result property="nearestEndTime" column="nearest_end_time"/>
2025-06-28 15:29:04 +08:00
<result property="logCount" column="logCount"/>
<result property="returnType" column="return_type"/>
<result property="withdrawLock" column="withdraw_lock"/>
2025-03-30 19:43:55 +08:00
<collection property="warehouseList"
column="master_id"
javaType="list"
ofType="com.ruoyi.oa.domain.vo.SysOaWarehouseDetailVo"
select="selectDetailByMasterId"/>
2025-03-30 19:43:55 +08:00
<collection property="warehouseTaskList"
column="master_id"
javaType="list"
ofType="com.ruoyi.oa.domain.SysOaWarehouseTask"
select="selectTaskByMasterId"/>
</resultMap>
2025-03-30 19:43:55 +08:00
<!-- ===================================================== -->
<!-- 分页查询(只查主表字段,真正参与 LIMIT / OFFSET -->
<!-- ===================================================== -->
<select id="selectVoPagePlus"
resultMap="SysOaWarehouseMasterResult">
SELECT
sowm.master_id,
sowm.master_num,
sowm.type,
sowm.project_id,
sowm.sign_time,
sowm.sign_user,
sowm.remark,
sowm.status,
2025-07-01 11:14:39 +08:00
sowm.is_like,
2025-05-22 19:49:01 +08:00
${ew.sqlSelect},
sop.project_name
FROM sys_oa_warehouse_master sowm
LEFT JOIN sys_oa_project sop
ON sop.project_id = sowm.project_id
2025-03-20 18:19:31 +08:00
${ew.getCustomSqlSegment}
</select>
2025-06-28 15:29:04 +08:00
<!-- ===================================================== -->
<!-- 分页查询(包含日志操作次数) -->
<!-- ===================================================== -->
<select id="selectVoPagePlusWithLogCount"
resultMap="SysOaWarehouseMasterResult">
SELECT
sowm.master_id,
sowm.master_num,
sowm.type,
sowm.project_id,
sowm.sign_time,
sowm.sign_user,
sowm.remark,
sowm.status,
sown.return_type,
sown.withdraw_lock,
2025-06-28 15:29:04 +08:00
${ew.sqlSelect},
sop.project_name,
IFNULL(log_count.log_count, 0) AS logCount
FROM sys_oa_warehouse_master sowm
LEFT JOIN sys_oa_project sop
ON sop.project_id = sowm.project_id
LEFT JOIN (
SELECT
master_id,
COUNT(1) AS log_count
FROM sys_oa_warehouse_log
WHERE del_flag = 0
GROUP BY master_id
) log_count ON log_count.master_id = sowm.master_id
${ew.getCustomSqlSegment}
</select>
<select id="selectDetailByMasterId"
parameterType="long"
resultType="com.ruoyi.oa.domain.vo.SysOaWarehouseDetailVo">
SELECT
2025-06-28 13:20:25 +08:00
sowd.id AS id,
sowd.master_id,
sowd.sign_price,
sowd.amount,
sowd.project_id,
2025-07-16 18:49:50 +08:00
sowd.remark,
sow.brand,
sow.name AS warehouseName,
2025-07-30 11:35:12 +08:00
sow.unit,
COALESCE(sow.model, sowt.model) AS model,
COALESCE(sow.brand, sowt.brand) AS brand,
COALESCE(sow.specifications, sowt.specifications) AS specifications,
sowt.task_inventory,
sop.project_name
FROM sys_oa_warehouse_detail sowd
LEFT JOIN sys_oa_warehouse sow ON sow.id = sowd.warehouse_id
LEFT JOIN sys_oa_warehouse_task sowt ON sowt.master_id = sowd.master_id
LEFT JOIN sys_oa_project sop ON sop.project_id = sowd.project_id
WHERE sowd.del_flag = '0'
AND sowd.master_id = #{masterId}
ORDER BY sowd.id
</select>
<!-- ===================================================== -->
<!-- 子查询:任务列表 by masterId -->
<!-- ===================================================== -->
<select id="selectTaskByMasterId"
parameterType="long"
resultType="com.ruoyi.oa.domain.SysOaWarehouseTask">
SELECT
task_id,
master_id,
name,
model,
task_inventory,
brand,
specifications
FROM sys_oa_warehouse_task
WHERE master_id = #{masterId}
ORDER BY task_id
</select>
2025-03-20 18:19:31 +08:00
2025-03-19 21:37:54 +08:00
</mapper>