gongchunyi
3 天以前 d709e8a7117704ac4717db5201e40964b90d4791
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
<?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.device.mapper.DeviceMaintenanceMapper">
 
    <select id="queryPage" resultType="com.ruoyi.device.dto.DeviceMaintenanceDto">
        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 deviceMaintenanceDto.deviceName != ''">
                and dl.device_name like concat('%', #{deviceMaintenanceDto.deviceName}, '%')
            </if>
            <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.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
        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>