yuan
7 天以前 ccc9d4533bc7b696f6d539720a6052abc44ff7a5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?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.measuringinstrumentledger.mapper.SparePartsMapper">
    <select id="listPage" resultType="com.ruoyi.measuringinstrumentledger.dto.SparePartsDto">
        select sp.*, sp1.name as parentName,
        <!-- 2026-10-12 修复:前端列表第一列取的是 deviceNameStr,但 DTO 和 SQL 都没有这个字段,
             导致「设备名称」列永远空白(看起来像"没绑定设备")。
             这里按 spare_parts.device_ids(逗号分隔)反查 device_ledger 拼出设备名。 -->
        (select group_concat(d.device_name order by d.id separator ',')
         from device_ledger d
         where sp.device_ids is not null and sp.device_ids &lt;&gt; ''
           and find_in_set(d.id, sp.device_ids)) as deviceNameStr
        from spare_parts sp
        left join spare_parts sp1 on sp1.id = sp.parent_id
        <where>
            <if test="spareParts.name != null and spareParts.name != ''">
                and sp.name like concat('%',#{spareParts.name},'%')
            </if>
        </where>
    </select>
</mapper>