yuan
2026-05-24 cbadfa371df97fc26e800bef29c3829b2ce304d3
src/main/resources/mapper/device/DeviceMaintenanceMapper.xml
@@ -6,31 +6,87 @@
<mapper namespace="com.ruoyi.device.mapper.DeviceMaintenanceMapper">
    <select id="queryPage" resultType="com.ruoyi.device.dto.DeviceMaintenanceDto">
        select dm.*,
               dl.device_name,
               dl.device_model,
        su.user_name as create_user_name
        select dm.id,
        dm.device_ledger_id,
        dm.maintenance_plan_time,
        dm.maintenance_actually_time,
        dm.maintenance_result,
        dm.status,
        dm.create_time,
        dm.update_time,
        dm.create_user,
        dm.update_user,
        dm.tenant_id,
        dm.maintenance_actually_name,
        dl.device_name,
        dm.machinery_category,
        dl.device_model,
        su.nick_name as create_user_name
        from device_maintenance dm
        left join device_ledger dl on dm.device_ledger_id = dl.id
        left join sys_user su on dm.create_user = su.user_id
        <where>
            <if test="deviceMaintenanceDto.deviceName != null">
                and dl.device_name like concat('%',#{deviceMaintenanceDto.deviceName},'%')
            <if test="deviceMaintenanceDto.deviceName != null and deviceMaintenanceDto.deviceName != ''">
                and dl.device_name like concat('%', #{deviceMaintenanceDto.deviceName}, '%')
            </if>
            <if test="deviceMaintenanceDto.deviceModel != null">
                and dl.device_model like concat('%',#{deviceMaintenanceDto.deviceModel},'%')
            <if test="deviceMaintenanceDto.deviceModel != null and deviceMaintenanceDto.deviceModel != ''">
                and dl.device_model like concat('%', #{deviceMaintenanceDto.deviceModel}, '%')
            </if>
            <if test="deviceMaintenanceDto.status != null">
                and dm.status = #{deviceMaintenanceDto.status}
            </if>
            <if test="deviceMaintenanceDto.maintenanceActuallyName != null and deviceMaintenanceDto.maintenanceActuallyName != ''">
                and dm.maintenance_actually_name like concat('%', #{deviceMaintenanceDto.maintenanceActuallyName}, '%')
            </if>
            <if test="deviceMaintenanceDto.maintenancePlanTime != null">
                and dm.maintenance_plan_time = #{deviceMaintenanceDto.maintenancePlanTime}
            </if>
            <if test="deviceMaintenanceDto.maintenanceActuallyTime != null">
                and dm.maintenance_actually_time &gt;= str_to_date(#{deviceMaintenanceDto.maintenanceActuallyTime},
                '%Y-%m-%d')
                and dm.maintenance_actually_time &lt;
                date_add(str_to_date(#{deviceMaintenanceDto.maintenanceActuallyTime}, '%Y-%m-%d'), interval 1 day)
            </if>
        </where>
        order by
        <!--    待保养(0)优先排在上面,已完结(1)在下面 -->
        dm.status asc,
        case
        <!-- 当状态是 0(待保养)时,按计划时间升序,即时间最远的单子在最上面 -->
        when dm.status = 0 then dm.maintenance_plan_time
        end asc,
        case
        <!-- 当状态是 1(已完结)时,按实际保养时间降序,最近刚保养完的单子在已完结里排最前 -->
        when dm.status = 1 then dm.maintenance_actually_time
        end desc
    </select>
    <select id="detailById" resultType="com.ruoyi.device.dto.DeviceMaintenanceDto">
        select dm.*,
    <select id="detailById" resultType="com.ruoyi.device.vo.DeviceMaintenanceVo">
        select dm.id,
               dm.device_ledger_id,
               dm.maintenance_plan_time,
               dm.maintenance_actually_time,
               dm.maintenance_result,
               dm.status,
               dm.create_time,
               dm.update_time,
               dm.create_user,
               dm.update_user,
               dm.tenant_id,
               dm.machinery_category,
               dm.maintenance_actually_name,
               dl.device_name,
               dl.device_model,
               su.user_name as create_user_name
        from device_maintenance dm
        left join device_ledger dl on dm.device_ledger_id = dl.id
        left join sys_user su on dm.create_user = su.user_id
                 left join device_ledger dl on dm.device_ledger_id = dl.id
                 left join sys_user su on dm.create_user = su.user_id
        where dm.id = #{id}
    </select>
    <select id="list1" resultType="com.ruoyi.device.pojo.DeviceMaintenance">
        select *
        from device_maintenance
        where device_ledger_id = #{id}
    </select>
</mapper>