puzhibing
2026-09-28 fd15e6f7dd6a2f6bccf27a8b06fc60211e7df28e
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
<?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.other.emind.mapper.EmindStationMapper">
    <resultMap id="stationResultMap" type="com.ruoyi.other.emind.domain.EmindStation">
        <id column="id" property="id"/>
        <result column="station_id" property="stationId"/>
        <result column="name" property="name"/>
        <result column="address" property="address"/>
        <result column="province" property="province"/>
        <result column="city" property="city"/>
        <result column="longitude" property="longitude"/>
        <result column="latitude" property="latitude"/>
        <result column="max_power" property="maxPower"/>
        <result column="capacity" property="capacity"/>
        <result column="commissioning_time" property="commissioningTime"/>
        <result column="platform_name" property="platformName"/>
        <result column="source_type" property="sourceType"/>
        <result column="management_deleted" property="managementDeleted"/>
        <result column="del_flag" property="delFlag"/>
        <result column="synced_at" property="syncedAt"/>
        <result column="create_time" property="createTime"/>
        <result column="update_time" property="updateTime"/>
    </resultMap>
 
    <update id="markAllDeleted">
        UPDATE t_emind_station
        SET del_flag = 1, synced_at = #{syncedAt}, update_time = #{syncedAt}
        WHERE source_type = 1 AND del_flag = 0
    </update>
 
    <insert id="upsertBatch">
        INSERT INTO t_emind_station (
            station_id, name, address, province, city, longitude, latitude,
            max_power, capacity, commissioning_time, platform_name, source_type,
            management_deleted, del_flag, synced_at, create_time, update_time
        ) VALUES
        <foreach collection="stations" item="station" separator=",">
            (#{station.stationId}, #{station.name}, #{station.address},
             #{station.province}, #{station.city}, #{station.longitude},
             #{station.latitude}, #{station.maxPower}, #{station.capacity},
             #{station.commissioningTime}, #{station.platformName}, 1, 0, 0, #{station.syncedAt},
             #{station.syncedAt}, #{station.syncedAt})
        </foreach>
        ON DUPLICATE KEY UPDATE
            name = VALUES(name), address = VALUES(address),
            province = VALUES(province), city = VALUES(city),
            longitude = VALUES(longitude), latitude = VALUES(latitude),
            max_power = VALUES(max_power), capacity = VALUES(capacity),
            commissioning_time = VALUES(commissioning_time),
            platform_name = VALUES(platform_name), source_type = 1, del_flag = 0,
            synced_at = VALUES(synced_at), update_time = VALUES(update_time)
    </insert>
 
    <select id="selectManagementPage" resultMap="stationResultMap">
        SELECT id, station_id, name, address, province, city, longitude, latitude,
               max_power, capacity, commissioning_time, platform_name, source_type,
               management_deleted, del_flag, synced_at, create_time, update_time, station_code
        FROM t_emind_station
        WHERE del_flag = 0 AND management_deleted = 0
        <if test="query.platformName != null and query.platformName != ''">
            AND platform_name = #{query.platformName}
        </if>
        <if test="query.name != null and query.name != ''">
            AND name LIKE CONCAT('%', #{query.name}, '%')
        </if>
        ORDER BY update_time DESC, id DESC
    </select>
 
    <update id="markManagementDeleted">
        UPDATE t_emind_station
        SET management_deleted = 1, update_time = #{updateTime}
        WHERE management_deleted = 0
          AND id IN
          <foreach collection="ids" item="id" open="(" separator="," close=")">
              #{id}
          </foreach>
    </update>
 
    <select id="selectRemoteActiveStations" resultMap="stationResultMap">
        SELECT id, station_id, name, address, province, city, longitude, latitude,
               max_power, capacity, commissioning_time, platform_name, source_type,
               management_deleted, del_flag, synced_at, create_time, update_time, station_code
        FROM t_emind_station
        WHERE del_flag = 0 AND management_deleted = 0
        ORDER BY id
    </select>
</mapper>