辅控sql语句优化
This commit is contained in:
parent
310b1cc5c6
commit
38ced6e356
@ -16,8 +16,6 @@ import java.util.Map;
|
||||
*/
|
||||
public interface DeviceSignalMapper extends BaseMapper<DeviceSignal> {
|
||||
|
||||
List<DeviceSignal> selectDeviceSignalYx(String slave_ip, String address);
|
||||
List<DeviceSignal> selectDeviceSignalYc(String slave_ip, String address);
|
||||
List<Map<String,Object>> selectDeviceSignal_Map(String slave_ip, String type, String address);
|
||||
List<Map<String,Object>> selectDeviceSignal_Map2(String type,String address);
|
||||
DeviceSignal selectOneDeviceSignal(String slaveIp, String type, String address);
|
||||
Map<String,Object> selectDeviceSignalMap(String slaveIp, String type, String address);
|
||||
}
|
||||
|
@ -71,16 +71,16 @@ public class DeviceAlarmRecordServiceImpl extends ServiceImpl<DeviceAlarmRecordM
|
||||
@Override
|
||||
@Transactional
|
||||
public void doAlaramRecord(String from, String type, String slaveIp, String address, String value) {
|
||||
List<Map<String, Object>> list = new ArrayList<>();
|
||||
String sinnalType = type;
|
||||
if ("IEC104".equals(from)) {
|
||||
list = deviceSignalMapper.selectDeviceSignal_Map(slaveIp, "yc", address);
|
||||
sinnalType = "yc";
|
||||
} else if ("IEC61850".equals(from)) {
|
||||
list = deviceSignalMapper.selectDeviceSignal_Map2(type, address);
|
||||
slaveIp = null;
|
||||
}
|
||||
if (list.size() == 0) {
|
||||
Map<String, Object> map = deviceSignalMapper.selectDeviceSignalMap(slaveIp, sinnalType, address);
|
||||
if (map == null || ObjUtil.isEmpty(map)) {
|
||||
return;
|
||||
}
|
||||
Map<String, Object> map = list.get(0);
|
||||
//如果是yx 遥信 (设备自身报警记录)
|
||||
if ("yx".equals(type)) {
|
||||
//如果信号类型是1 设备告警
|
||||
|
@ -1,6 +1,7 @@
|
||||
package com.yfd.platform.modules.auxcontrol.service.impl;
|
||||
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.yfd.platform.modules.auxcontrol.domain.DeviceSignal;
|
||||
import com.yfd.platform.modules.auxcontrol.mapper.DeviceSignalMapper;
|
||||
@ -37,19 +38,9 @@ public class DeviceSignalServiceImpl extends ServiceImpl<DeviceSignalMapper, Dev
|
||||
@Override
|
||||
public boolean updateDeviceSignalValue(String slaveIp, String address, String type, String value,
|
||||
String dateString) throws ParseException {
|
||||
List<DeviceSignal> list = null;
|
||||
|
||||
if ("yx".equals(type)) {
|
||||
// 遥信
|
||||
list = deviceSignalMapper.selectDeviceSignalYx(slaveIp, address);
|
||||
} else if ("yc".equals(type)) {
|
||||
// 遥测
|
||||
list = deviceSignalMapper.selectDeviceSignalYc(slaveIp, address);
|
||||
}
|
||||
|
||||
if (list != null && !list.isEmpty()) {
|
||||
DeviceSignal deviceSignal = list.get(0);
|
||||
|
||||
DeviceSignal deviceSignal = deviceSignalMapper.selectOneDeviceSignal(slaveIp, type, address);
|
||||
if (deviceSignal != null && ObjectUtil.isNotEmpty(deviceSignal)) {
|
||||
try {
|
||||
if ("yx".equals(type)) {
|
||||
// 遥信
|
||||
@ -64,7 +55,6 @@ public class DeviceSignalServiceImpl extends ServiceImpl<DeviceSignalMapper, Dev
|
||||
}
|
||||
|
||||
deviceSignal.setLastmodifier("系统更新");
|
||||
|
||||
// 设置最后修改时间
|
||||
Date parsedDate;
|
||||
if (StrUtil.isEmpty(dateString) || "null".equals(dateString)) {
|
||||
|
@ -40,22 +40,21 @@ public class DeviceWorkDataServiceImpl extends ServiceImpl<DeviceWorkDataMapper,
|
||||
@Override
|
||||
public void insertData(String from, String slaveIp, String address, String value, String dateTimeString) {
|
||||
DeviceWorkData workdata = new DeviceWorkData();
|
||||
List<Map<String, Object>> list = new ArrayList<>();
|
||||
if ("IEC104".equals(from)) {
|
||||
list = deviceSignalMapper.selectDeviceSignal_Map(slaveIp, "yc", address);
|
||||
} else if ("IEC61850".equals(from)) {
|
||||
list = deviceSignalMapper.selectDeviceSignal_Map2("yc", address);
|
||||
if ("IEC61850".equals(from)) {
|
||||
slaveIp = null;
|
||||
}
|
||||
if (list.size() > 0) {
|
||||
Map<String, Object> map = list.get(0);
|
||||
workdata.setId(IdUtil.fastSimpleUUID());
|
||||
workdata.setSystemcode(map.get("systemcode").toString());
|
||||
workdata.setStationId(map.get("station_id").toString());
|
||||
workdata.setDeviceId(map.get("device_id").toString());
|
||||
workdata.setDeviceName(map.get("device_name").toString());
|
||||
workdata.setSignalId(map.get("signal_id").toString());
|
||||
workdata.setSignalName(map.get("signal_name").toString());
|
||||
workdata.setUnit(ObjUtil.isNotEmpty(map.get("signal_unit")) ? map.get("signal_unit").toString() : "");
|
||||
Map<String, Object> map = deviceSignalMapper.selectDeviceSignalMap(slaveIp, "yc", address);
|
||||
if (map == null || ObjUtil.isEmpty(map)) {
|
||||
return;
|
||||
}
|
||||
workdata.setId(IdUtil.fastSimpleUUID());
|
||||
workdata.setSystemcode(map.get("systemcode").toString());
|
||||
workdata.setStationId(map.get("station_id").toString());
|
||||
workdata.setDeviceId(map.get("device_id").toString());
|
||||
workdata.setDeviceName(map.get("device_name").toString());
|
||||
workdata.setSignalId(map.get("signal_id").toString());
|
||||
workdata.setSignalName(map.get("signal_name").toString());
|
||||
workdata.setUnit(ObjUtil.isNotEmpty(map.get("signal_unit")) ? map.get("signal_unit").toString() : "");
|
||||
workdata.setValue(new BigDecimal(value));
|
||||
if (StrUtil.isEmpty(dateTimeString) || "null".equals(dateTimeString)) {
|
||||
workdata.setStartTime(LocalDateTime.now());
|
||||
@ -66,7 +65,6 @@ public class DeviceWorkDataServiceImpl extends ServiceImpl<DeviceWorkDataMapper,
|
||||
}
|
||||
this.saveOrUpdate(workdata);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -3,34 +3,7 @@
|
||||
<mapper namespace="com.yfd.platform.modules.auxcontrol.mapper.DeviceSignalMapper">
|
||||
|
||||
<!-- 查询辅控设备信号表-->
|
||||
<select id="selectDeviceSignalYx" resultType="com.yfd.platform.modules.auxcontrol.domain.DeviceSignal">
|
||||
SELECT
|
||||
b.*
|
||||
FROM
|
||||
fk_meter_device a
|
||||
JOIN fk_device_signal b ON ( a.device_id = b.device_id )
|
||||
JOIN fk_gateway_device c ON ( a.netdevice_ip = c.ip_addr )
|
||||
WHERE
|
||||
c.ip_addr = #{slave_ip}
|
||||
|
||||
AND b.yx_addr = #{address}
|
||||
</select>
|
||||
|
||||
<select id="selectDeviceSignalYc" resultType="com.yfd.platform.modules.auxcontrol.domain.DeviceSignal">
|
||||
SELECT
|
||||
b.*
|
||||
FROM
|
||||
fk_meter_device a
|
||||
JOIN fk_device_signal b ON ( a.device_id = b.device_id )
|
||||
JOIN fk_gateway_device c ON ( a.netdevice_ip = c.ip_addr )
|
||||
WHERE
|
||||
c.ip_addr = #{slave_ip}
|
||||
|
||||
AND b.yc_addr = #{address}
|
||||
</select>
|
||||
|
||||
<!-- 查询辅控设备信号表-->
|
||||
<select id="selectDeviceSignal_Map" resultType="java.util.Map">
|
||||
<select id="selectDeviceSignalMap" resultType="java.util.Map">
|
||||
SELECT
|
||||
a.station_id,
|
||||
a.systemcode,
|
||||
@ -38,10 +11,13 @@
|
||||
b.*
|
||||
FROM
|
||||
fk_meter_device a
|
||||
JOIN fk_device_signal b ON ( a.device_id = b.device_id )
|
||||
JOIN fk_device_signal b ON ( a.device_id = b.meter_device_id )
|
||||
JOIN fk_gateway_device c ON ( a.netdevice_ip = c.ip_addr )
|
||||
WHERE
|
||||
c.ip_addr = #{slave_ip}
|
||||
1 =1
|
||||
<if test="slaveIp != null and slaveIp != ''">
|
||||
and c.ip_addr = #{slaveIp}
|
||||
</if>
|
||||
<if test="type=='yx'">
|
||||
and b.yx_addr = #{address}
|
||||
</if>
|
||||
@ -52,22 +28,24 @@
|
||||
</select>
|
||||
|
||||
<!-- 查询辅控设备信号表-->
|
||||
<select id="selectDeviceSignal_Map2" resultType="java.util.Map">
|
||||
<select id="selectOneDeviceSignal" resultType="com.yfd.platform.modules.auxcontrol.domain.DeviceSignal">
|
||||
SELECT
|
||||
a.station_id,
|
||||
a.systemcode,
|
||||
a.device_name,
|
||||
b.*
|
||||
FROM
|
||||
FROM
|
||||
fk_meter_device a
|
||||
JOIN fk_device_signal b ON ( a.device_id = b.device_id )
|
||||
WHERE
|
||||
1 =1
|
||||
JOIN fk_device_signal b ON ( a.device_id = b.meter_device_id )
|
||||
JOIN fk_gateway_device c ON ( a.netdevice_ip = c.ip_addr )
|
||||
WHERE
|
||||
<if test="slaveIp != null and slaveIp != ''">
|
||||
c.ip_addr = #{slaveIp}
|
||||
</if>
|
||||
<if test="type=='yx'">
|
||||
and b.yx_addr = #{address}
|
||||
</if>
|
||||
<if test="type=='yc'">
|
||||
and b.yc_addr = #{address}
|
||||
</if>
|
||||
limit 1
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
Loading…
Reference in New Issue
Block a user