diff --git a/src/main/java/com/xydl/cac/transform/I2DataTransformer.java b/src/main/java/com/xydl/cac/transform/I2DataTransformer.java index 1b5a0e8..8f1c559 100644 --- a/src/main/java/com/xydl/cac/transform/I2DataTransformer.java +++ b/src/main/java/com/xydl/cac/transform/I2DataTransformer.java @@ -1,5 +1,6 @@ package com.xydl.cac.transform; +import com.alibaba.excel.util.StringUtils; import com.xydl.cac.entity.I2syncField; import com.xydl.cac.entity.I2syncRecord; import com.xydl.cac.entity.NSensor; @@ -7,6 +8,7 @@ import com.xydl.cac.model.i2sync.Attr; import com.xydl.cac.model.i2sync.Datanode; import com.xydl.cac.model.i2sync.Monitordata; import com.xydl.cac.model.i2sync.Request; +import com.xydl.cac.util.DataTable; import com.xydl.cac.util.DateUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; @@ -25,6 +27,11 @@ public class I2DataTransformer { List nodeList = new ArrayList<>(); for (Map map : dataList) { String date = (String) map.get("acquisitionTime"); + Datanode node = new Datanode(); + node.setSensorid(sensor.getSensorCode()); + node.setEquipmentid(sensor.getEquipmentId()); + node.setTimestamp(date); + List attrs = new ArrayList<>(); for (I2syncField field : fieldList) { Object value = map.get(field.getFieldName()); @@ -32,20 +39,19 @@ public class I2DataTransformer { attr.setName(field.getDestFieldName()); attr.setValue(String.valueOf(value)); attr.setAlarm("FALSE"); + if (StringUtils.isBlank(node.getType())) { + node.setType(DataTable.getDevType(field.getTableName())); + } attrs.add(attr); } - Datanode node = new Datanode(); - node.setSensorid(sensor.getEquipmentId()); - node.setType("027002"); - node.setEquipmentid(sensor.getEquipmentId()); - node.setTimestamp(date); node.setAttr(attrs); + nodeList.add(node); record.setLastDTime(DateUtil.parse(date)); } Monitordata monitordata = new Monitordata(); - monitordata.setCacid(sensor.getEquipmentId()); + monitordata.setCacid(sensor.getSensorCode()); monitordata.setDatanodenum(nodeList.size()); monitordata.setDatanode(nodeList); Request request = new Request(); diff --git a/src/main/java/com/xydl/cac/util/DataTable.java b/src/main/java/com/xydl/cac/util/DataTable.java index 6c6cdaa..b98fc4b 100644 --- a/src/main/java/com/xydl/cac/util/DataTable.java +++ b/src/main/java/com/xydl/cac/util/DataTable.java @@ -21,4 +21,39 @@ public class DataTable { public static String getDevidField(String tableName) { return "eqmid"; } + + public static String getDevType(String tableName) { + switch (tableName) { + case "data_byq_jbfd": + return "021001"; // 变压器/电抗器 局部放电 + case "data_ysp": + return "021002"; // 变压器/电抗器 油中溶解气体 + case "data_ws": + return "021003"; // 变压器/电抗器 微水 + case "data_tx": + return "021004"; // 变压器/电抗器 铁芯接地电流 + case "data_dcyw": + return "021005"; // 变压器/电抗器 顶层油温 + case "data_dr_jyjc": + return "022001"; // 电容型设备 绝缘监测 + case "data_jsyhw_jyjc": + return "023001"; // 金属氧化物避雷器 绝缘监测 + case "data_dlq_jbfd": + return "024001"; // 断路器/GIS 局部放电 + case "data_fhzxq": + return "024002"; // 断路器/GIS 分合闸线圈电流波形 + case "data_fhdlbx": + return "024003"; // 断路器/GIS 负荷电流波形 + case "data_sf6_qtyl": + return "024004"; // 断路器/GIS SF6 气体压力 + case "data_sf6_qtsf": + return "024005"; // 断路器/GIS SF6气体水分 + case "data_cnj": + return "024006"; // 断路器/GIS 储能电机工作状态 + case "data_microclimate": + return "025001"; // 综合 变电站微气象 + default: + return ""; + } + } }