SmartSubstationPlatform/riis-system/src/main/resources/mapper/auxcontrol/DeviceWorkDataMapper.xml

78 lines
2.5 KiB
XML
Raw Normal View History

2025-04-23 17:56:18 +08:00
<?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.yfd.platform.modules.auxcontrol.mapper.DeviceWorkDataMapper">
2025-04-27 18:15:00 +08:00
<select id="getDeviceWorkDataPage" resultType="com.yfd.platform.modules.auxcontrol.domain.DeviceWorkData">
SELECT
station_id,
device_id,
device_name,
signal_id,
signal_name,
`value`,
unit,
start_time
FROM
fk_device_work_data
WHERE 1=1
2025-04-28 15:43:54 +08:00
AND signal_id=#{signalId}
2025-04-27 18:15:00 +08:00
<if test="startDate != null and startDate != ''">
AND start_time &gt;= #{startDate}
</if>
<if test="endDate != null and endDate != ''">
AND start_time &lt;= #{endDate}
</if>
ORDER BY start_time DESC
</select>
2025-04-28 11:56:16 +08:00
<select id="getHistoricalCurve" resultType="com.yfd.platform.modules.auxcontrol.domain.DeviceWorkData">
SELECT
start_time,
`value`,
unit
FROM
fk_device_work_data
WHERE
2025-04-28 15:43:54 +08:00
signal_id=#{signalId}
2025-04-28 11:56:16 +08:00
AND start_time >= NOW() - INTERVAL 1 HOUR
ORDER BY
start_time DESC
</select>
2025-05-09 17:27:09 +08:00
<select id="getDeviceWorkData" resultType="java.util.Map">
SELECT
di.*,-- 保留第一个子查询的所有字段
COALESCE ( sub.yc_value, '无' ) AS value
,-- 将 NULL 转为 "无"
di.unit,
sub.signalId AS sub_signalId,-- 可选:重命名避免字段冲突
sub.ip AS sub_ip
FROM
(
SELECT
*,
JSON_UNQUOTE(
JSON_EXTRACT( custom1, '$.signalId' )) AS signalId,
JSON_UNQUOTE(
JSON_EXTRACT( custom1, '$.unit' )) AS unit,
JSON_UNQUOTE(
JSON_EXTRACT( custom1, '$.ip' )) AS ip -- 确保提取的是 ip 字段
FROM
sys_dictionary_items
WHERE
dictid = 'ca593d0a2a60f7ef37c89e615b97024b'
) di
LEFT JOIN (-- 使用 LEFT JOIN 保留 di 的所有记录
SELECT
b.yc_value,
b.signal_id AS signalId,
c.ip_addr AS ip
FROM
fk_meter_device a
INNER JOIN fk_device_signal b ON a.device_id = b.meter_device_id
INNER JOIN fk_gateway_device c ON a.netdevice_ip = c.ip_addr
) sub ON di.signalId = sub.signalId
AND di.ip = sub.ip ORDER BY orderno;
</select>
2025-04-23 17:56:18 +08:00
</mapper>