zss
2023-09-24 7930d685829d7cc1e743e9a4cd9bd3924ad953fb
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
<?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.yuanchu.mom.mapper.MeteringPlanMapper">
 
    <resultMap id="selectMeteringTableMap" type="map">
        <id property="id" column="id"/>
        <result property="planNumber" column="plan_number"/>
        <result property="planDate" column="planDate"/>
        <result property="founder" column="founder"/>
        <result property="personCharge" column="personCharge"/>
        <result property="createTime" column="createTime"/>
        <result property="planUnit" column="plan_unit"/>
        <collection property="result" resultMap="selectMeteringTableTwoMap" javaType="List"/>
    </resultMap>
 
    <resultMap id="selectMeteringTableTwoMap" type="map">
        <result property="result" column="result"/>
    </resultMap>
    <select id="selectMeteringTable" resultMap="selectMeteringTableMap">
        SELECT s.*, IFNULL(l.`measure_result`, 'n') result
        FROM (SELECT m.`id`, m.`plan_number`, CONCAT(m.`plan_date_begin`, ' ~ ', m.`plan_date_end`) planDate,
                     s.`name` founder, u.`name` personCharge, DATE_FORMAT(m.`create_time`, '%Y-%m-%d') createTime, m.`plan_unit`
              FROM metering_plan m, `user` u, `user` s
              WHERE u.`id` = m.`founder`
                AND s.`id` = m.`person_charge`
                AND m.`state` = 1
                <if test="code != null and code != ''">
                    AND m.`plan_number` LIKE CONCAT('%', #{code}, '%')
                </if>
                <if test="meteringUnit != null and meteringUnit != ''">
                    AND m.`plan_unit` LIKE CONCAT('%', #{meteringUnit}, '%')
                </if>
                  ORDER BY m.create_time DESC
                  LIMIT #{pageNo}, #{pageSize}) s
                 LEFT JOIN measure_ledger l
                           ON l.`measure_plan_id` = s.`id`
        WHERE (l.`state` = 1 OR l.`state` IS NULL)
        ORDER BY s.createTime DESC
    </select>
 
    <select id="selectIdPlan" resultType="map">
        SELECT m.`id`, d.`code`, d.`name`, m.`measuring_range`, m.`measure_period`, m.`measure_result`, DATE_FORMAT(m.`measure_date`, '%Y-%m-%d') measureDate,
               DATE_FORMAT(m.`validity_end`, '%Y-%m-%d') validityEnd, u.`name` founder, DATE_FORMAT(m.`create_time`, '%Y-%m-%d') createTime, p.`plan_unit`, r.`name` personCharge, m.`measure_number`
        FROM measure_ledger m, device d, metering_plan p, `user` u, `user` r
        WHERE p.`state` = 1
          AND p.`id` = #{measureId}
          AND u.`id` = p.`founder`
          AND r.`id` = p.`person_charge`
          AND m.`measure_plan_id` = p.`id`
          AND m.`device_id` = d.`id`
    </select>
 
    <select id="selectIdPlanIdMessage" resultType="map">
        SELECT p.`plan_number`, u.`name` founder, r.`name` person_charge, CONCAT(p.`plan_date_begin`, ' ~ ', p.`plan_date_end`) planTime,
               DATE_FORMAT(p.`create_time`, '%Y-%m-%d') createTime, p.`plan_unit`
        FROM metering_plan p, `user` u, `user` r
        WHERE r.`id` = p.`person_charge`
          AND u.`id` = p.`founder`
          AND p.`state` = 1
          AND p.`id` = #{measureId}
    </select>
 
    <select id="selectPlanId" resultType="map">
        SELECT p.`plan_number`, u.`name` founder, r.`name` person_charge, CONCAT(p.`plan_date_begin`, ' ~ ', p.`plan_date_end`) planTime,
               DATE_FORMAT(p.`create_time`, '%Y-%m-%d') createTime, p.`plan_unit`
        FROM metering_plan p, `user` u, `user` r, measure_ledger l
        WHERE r.`id` = p.`person_charge`
          AND u.`id` = p.`founder`
          AND p.`state` = 1
          AND l.`state` = 1
          AND p.`id` = l.`measure_plan_id`
          AND l.`id` = #{measureId}
    </select>
</mapper>