yangys
2025-04-11 120755e6874893d284fda5f617924d46960286c0
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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
<?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.qianwen.smartman.modules.tpm.mapper.MaintainPlanMapper">
    <!-- 查询保养日期为当前日的保养计划 -->
    <select id="getPlan" resultType="com.qianwen.smartman.modules.tpm.vo.MaintainPlanVO">
        SELECT id   AS id,
               code AS code
        FROM blade_maintain_plan
        WHERE is_deleted = 0
          AND plan_status = 1
          AND to_char(maintain_date, 'YYYY-MM-DD') = to_char(SYSDATE, 'YYYY-MM-DD')
    </select>
 
    <select id="maintainPlanStatisticsNum" resultType="com.qianwen.smartman.modules.tpm.vo.MaintainStatisticsVO">
        SELECT
        NVL(SUM(
        CASE WHEN to_char( SYSDATE, 'YYYY-MM-DD' ) <![CDATA[ > ]]> to_char( maintain_date, 'YYYY-MM-DD' )
        AND
        plan_status = 2
        THEN 1 ELSE 0 END ),0) AS "delayNum",
        NVL(SUM(
        CASE WHEN ( to_char( SYSDATE, 'YYYY-MM-DD' )= to_char( maintain_date, 'YYYY-MM-DD' ) AND plan_status = 2 )
        OR plan_status = 3 THEN
        1 ELSE 0 END),0) AS "todayNum",
        NVL(SUM(
        CASE WHEN to_char( SYSDATE, 'YYYY-MM-DD' ) <![CDATA[ >= ]]>
        to_char( maintain_date - pre_warning_days , 'yyyy-mm-dd' )
        AND to_char( SYSDATE, 'YYYY-MM-DD' )<![CDATA[ < ]]> to_char( maintain_date, 'YYYY-MM-DD' ) AND
        plan_status = 1 THEN
        1 ELSE 0 END),0) AS "warningNum"
        FROM
        blade_maintain_plan
        WHERE
        is_deleted = 0
        <if test="tenantId != null and tenantId != ''">
            AND tenant_id = #{tenantId}
        </if>
    </select>
 
    <!-- 与mysql mapper相同,改动需同步 -->
    <sql id="selectFromMaintainPlanCopy">
        plan
        .
        id
        AS id,
        plan.code AS code, plan.device_id AS deviceId, plan.device_code AS deviceCode, plan.device_name AS deviceName,plan.device_type_id AS deviceTypeId,plan.device_type_name AS deviceTypeName,
        plan.project_id AS pojectId,plan.project_code AS projectCode,plan.project_name AS projectName,plan.maintain_date AS maintainDate,plan.pre_warning_days AS preWarningDays,plan.plan_status AS planStatus,
        plan.is_auto AS isAuto,plan.interval_time AS intervalTime,plan.pre_maintain_time AS preMaintainTime,plan.remark as remark,plan.maintain_nature as maintainNature
        FROM blade_maintain_plan plan
        WHERE plan.is_deleted = 0
    </sql>
 
    <select id="pageMaintainPlanExpire" resultType="com.qianwen.smartman.modules.tpm.vo.MaintainPlanExpireVO">
        SELECT
        <include refid="selectFromMaintainPlanCopy"/>
        AND
        to_char( SYSDATE, 'YYYY-MM-DD' ) <![CDATA[ > ]]> to_char( maintain_date, 'YYYY-MM-DD' )
        AND
        plan_status = 2
        <if test="tenantId != null and tenantId != ''">
            AND plan.tenant_id = #{tenantId}
        </if>
        <if test="maintainPlanExpireQueryVO.code != null and maintainPlanExpireQueryVO.code != ''">
            AND plan.code like concat(#{maintainPlanExpireQueryVO.code},'%')
        </if>
        <if test="maintainPlanExpireQueryVO.deviceCode != null and maintainPlanExpireQueryVO.deviceCode != ''">
            AND plan.device_code like concat(#{maintainPlanExpireQueryVO.deviceCode},'%')
        </if>
        <if test="maintainPlanExpireQueryVO.deviceName != null and maintainPlanExpireQueryVO.deviceName != ''">
            AND plan.device_name like concat(#{maintainPlanExpireQueryVO.deviceName},'%')
        </if>
        <if test="maintainPlanExpireQueryVO.projectName != null and maintainPlanExpireQueryVO.projectName != ''">
            AND plan.project_name like concat(#{maintainPlanExpireQueryVO.projectName},'%')
        </if>
        <if test="maintainPlanExpireQueryVO.isAuto != null">
            AND plan.is_auto = #{maintainPlanExpireQueryVO.isAuto}
        </if>
        ORDER BY plan.maintain_date ASC
    </select>
 
    <select id="pageMaintainPlanToday" resultType="com.qianwen.smartman.modules.tpm.vo.MaintainPlanExpireVO">
        SELECT
        <include refid="selectFromMaintainPlanCopy"/>
        AND
        ((TO_CHAR( SYSDATE, 'YYYY-MM-DD' ) = TO_CHAR( maintain_date, 'YYYY-MM-DD' )
        AND plan_status = 2)
        OR plan_status = 3)
        <if test="tenantId != null and tenantId != ''">
            AND plan.tenant_id = #{tenantId}
        </if>
        <if test="maintainPlanExpireQueryVO.code != null and maintainPlanExpireQueryVO.code != ''">
            AND plan.code like concat(#{maintainPlanExpireQueryVO.code},'%')
        </if>
        <if test="maintainPlanExpireQueryVO.deviceCode != null and maintainPlanExpireQueryVO.deviceCode != ''">
            AND plan.device_code like concat(#{maintainPlanExpireQueryVO.deviceCode},'%')
        </if>
        <if test="maintainPlanExpireQueryVO.deviceName != null and maintainPlanExpireQueryVO.deviceName != ''">
            AND plan.device_name like concat(#{maintainPlanExpireQueryVO.deviceName},'%')
        </if>
        <if test="maintainPlanExpireQueryVO.projectName != null and maintainPlanExpireQueryVO.projectName != ''">
            AND plan.project_name like concat(#{maintainPlanExpireQueryVO.projectName},'%')
        </if>
        <if test="maintainPlanExpireQueryVO.isAuto != null">
            AND plan.is_auto = #{maintainPlanExpireQueryVO.isAuto}
        </if>
        ORDER BY plan.maintain_date ASC
    </select>
 
    <select id="pageMaintainPlanWarning" resultType="com.qianwen.smartman.modules.tpm.vo.MaintainPlanExpireVO">
        SELECT
        <include refid="selectFromMaintainPlanCopy"/>
        AND
        (to_char( SYSDATE, 'YYYY-MM-DD' ) <![CDATA[ >= ]]>
        to_char( maintain_date- pre_warning_days ,'YYYY-MM-DD'))
        AND
        (to_char( SYSDATE, 'YYYY-MM-DD' )<![CDATA[ < ]]> to_char( maintain_date, 'YYYY-MM-DD'))
        AND
        plan_status = 1
        <if test="tenantId != null and tenantId != ''">
            AND plan.tenant_id = #{tenantId}
        </if>
        <if test="maintainPlanExpireQueryVO.code != null and maintainPlanExpireQueryVO.code != ''">
            AND plan.code like concat(#{maintainPlanExpireQueryVO.code},'%')
        </if>
        <if test="maintainPlanExpireQueryVO.deviceCode != null and maintainPlanExpireQueryVO.deviceCode != ''">
            AND plan.device_code like concat(#{maintainPlanExpireQueryVO.deviceCode},'%')
        </if>
        <if test="maintainPlanExpireQueryVO.deviceName != null and maintainPlanExpireQueryVO.deviceName != ''">
            AND plan.device_name like concat(#{maintainPlanExpireQueryVO.deviceName},'%')
        </if>
        <if test="maintainPlanExpireQueryVO.projectName != null and maintainPlanExpireQueryVO.projectName != ''">
            AND plan.project_name like concat(#{maintainPlanExpireQueryVO.projectName},'%')
        </if>
        <if test="maintainPlanExpireQueryVO.isAuto != null">
            AND plan.is_auto = #{maintainPlanExpireQueryVO.isAuto}
        </if>
        ORDER BY plan.maintain_date ASC
    </select>
 
</mapper>