设备上送数据解析判断设备类型

This commit is contained in:
zq
2026-01-06 10:25:08 +08:00
parent 6ed7a25819
commit 873119a1ff

View File

@ -140,8 +140,6 @@ public class DeviceDataProcessServiceImpl extends AbstractBatteryDataProcessor i
@Autowired @Autowired
private IEmsEnergyPriceConfigService emsEnergyPriceConfigService; private IEmsEnergyPriceConfigService emsEnergyPriceConfigService;
@Autowired @Autowired
private IEmsEnergyPriceConfigService iEmsEnergyPriceConfigService;
@Autowired
private IEmsDeviceSettingService iEmsDeviceSettingService; private IEmsDeviceSettingService iEmsDeviceSettingService;
@Autowired @Autowired
private DevicePointMatchDataProcessor devicePointMatchDataProcessor; private DevicePointMatchDataProcessor devicePointMatchDataProcessor;
@ -185,34 +183,56 @@ public class DeviceDataProcessServiceImpl extends AbstractBatteryDataProcessor i
} }
public void processingDeviceData(String siteId, String deviceId, String jsonData, Date dataUpdateTime) { public void processingDeviceData(String siteId, String deviceId, String jsonData, Date dataUpdateTime) {
// 判断设备类型,并调用对应的方法处理数据
String deviceCategory = getDeviceCategory(siteId, deviceId);
if (deviceId.contains(SiteDevice.BMSD.name())) { if (deviceId.contains(SiteDevice.BMSD.name())) {
batteryStackDataProcess(siteId, deviceId, jsonData, dataUpdateTime); batteryStackDataProcess(siteId, deviceId, jsonData, dataUpdateTime);
batteryGroupDataProcess(siteId, deviceId, jsonData); if (SiteEnum.DDS.getCode().equals(siteId)) {
batteryDataProcessFromBmsd(siteId, deviceId, jsonData, dataUpdateTime); batteryGroupDataProcess(siteId, deviceId, jsonData);
batteryDataProcessFromBmsd(siteId, deviceId, jsonData, dataUpdateTime);
}
} else if (deviceId.contains(SiteDevice.BMSC.name())) { } else if (deviceId.contains(SiteDevice.BMSC.name())) {
batteryClusterDataProcess(siteId, deviceId, jsonData, dataUpdateTime); batteryClusterDataProcess(siteId, deviceId, jsonData, dataUpdateTime);
batteryDataProcessFromBmsc(siteId, deviceId, jsonData, dataUpdateTime); batteryDataProcessFromBmsc(siteId, deviceId, jsonData, dataUpdateTime);
} else if (deviceId.contains(SiteDevice.PCS.name())) { } else if (deviceId.contains(SiteDevice.PCS.name())
|| DeviceCategory.PCS.getCode().equals(deviceCategory)) {
pcsDataProcess(siteId, deviceId, jsonData, dataUpdateTime); pcsDataProcess(siteId, deviceId, jsonData, dataUpdateTime);
pcsBranchDataProcess(siteId, deviceId, jsonData); pcsBranchDataProcess(siteId, deviceId, jsonData);
batteryClusterDataProcess(siteId, jsonData, dataUpdateTime); if (SiteEnum.DDS.getCode().equals(siteId)) {
} else if (deviceId.contains(SiteDevice.LOAD.name())) { batteryClusterDataProcess(siteId, jsonData, dataUpdateTime);
loadDataProcess(siteId, deviceId, jsonData, dataUpdateTime); }
} else if (deviceId.contains(SiteDevice.METEGF.name()) } else if (deviceId.contains(SiteDevice.LOAD.name())
|| deviceId.contains(SiteDevice.METEGF.name())
|| deviceId.contains(SiteDevice.METE.name()) || deviceId.contains(SiteDevice.METE.name())
|| deviceId.contains(SiteDevice.METE0.name())) { || deviceId.contains(SiteDevice.METE0.name())
|| DeviceCategory.AMMETER.getCode().equals(deviceCategory)) {
meteDataProcess(siteId, deviceId, jsonData, dataUpdateTime); meteDataProcess(siteId, deviceId, jsonData, dataUpdateTime);
} else if (deviceId.contains(SiteDevice.XF.name())) { } else if (deviceId.contains(SiteDevice.XF.name())
|| DeviceCategory.XF.getCode().equals(deviceCategory)) {
meteXFProcess(siteId, deviceId, jsonData, dataUpdateTime); meteXFProcess(siteId, deviceId, jsonData, dataUpdateTime);
} else if (deviceId.contains(SiteDevice.DH.name()) || deviceId.contains(SiteDevice.donghuan.name())) { } else if (deviceId.contains(SiteDevice.DH.name())
|| deviceId.contains(SiteDevice.donghuan.name())
|| DeviceCategory.DH.getCode().equals(deviceCategory)) {
dhDataProcess(siteId, deviceId, jsonData, dataUpdateTime); dhDataProcess(siteId, deviceId, jsonData, dataUpdateTime);
} else if (deviceId.contains(SiteDevice.ZSLQ.name())) { } else if (deviceId.contains(SiteDevice.ZSLQ.name())
|| DeviceCategory.COOLING.getCode().equals(deviceCategory)) {
coolingDataProcess(siteId, deviceId, jsonData, dataUpdateTime); coolingDataProcess(siteId, deviceId, jsonData, dataUpdateTime);
} else if (deviceId.contains(SiteDevice.EMS.name())) { } else if (deviceId.contains(SiteDevice.EMS.name())
|| DeviceCategory.EMS.getCode().equals(deviceCategory)) {
emsDataProcess(siteId, deviceId, jsonData, dataUpdateTime); emsDataProcess(siteId, deviceId, jsonData, dataUpdateTime);
} else {
log.info("未找到匹配的设备类型无法处理数据siteId: " + siteId + "deviceId: " + deviceId);
} }
} }
private String getDeviceCategory(String siteId, String deviceId) {
EmsDevicesSetting emsDevicesSetting = emsDevicesSettingMapper.getDeviceBySiteAndDeviceId(deviceId, siteId);
if (emsDevicesSetting != null) {
return emsDevicesSetting.getDeviceCategory();
}
return "";
}
private void emsDataProcess(String siteId, String deviceId, String jsonData, Date dataUpdateTime) { private void emsDataProcess(String siteId, String deviceId, String jsonData, Date dataUpdateTime) {
//EMS //EMS
Map<String, Object> obj = JSON.parseObject(jsonData, new TypeReference<Map<String, Object>>() { Map<String, Object> obj = JSON.parseObject(jsonData, new TypeReference<Map<String, Object>>() {
@ -379,9 +399,9 @@ public class DeviceDataProcessServiceImpl extends AbstractBatteryDataProcessor i
} }
private void batteryGroupDataProcess(String siteId, String deviceId, String jsonData) { private void batteryGroupDataProcess(String siteId, String deviceId, String jsonData) {
if (!SiteEnum.DDS.getCode().equals(siteId)) { // if (!SiteEnum.DDS.getCode().equals(siteId)) {
return; // return;
} // }
//电池组 //电池组
Map<String, Object> obj = JSON.parseObject(jsonData, new TypeReference<Map<String, Object>>() { Map<String, Object> obj = JSON.parseObject(jsonData, new TypeReference<Map<String, Object>>() {
}); });
@ -420,9 +440,9 @@ public class DeviceDataProcessServiceImpl extends AbstractBatteryDataProcessor i
} }
private void batteryDataProcessFromBmsd(String siteId, String deviceId, String dataJson, Date dataUpdateTime) { private void batteryDataProcessFromBmsd(String siteId, String deviceId, String dataJson, Date dataUpdateTime) {
if (!SiteEnum.DDS.getCode().equals(siteId)) { // if (!SiteEnum.DDS.getCode().equals(siteId)) {
return; // return;
} // }
//电池组 //电池组
Map<String, Object> obj = JSON.parseObject(dataJson, new TypeReference<Map<String, Object>>() { Map<String, Object> obj = JSON.parseObject(dataJson, new TypeReference<Map<String, Object>>() {
}); });
@ -896,9 +916,9 @@ public class DeviceDataProcessServiceImpl extends AbstractBatteryDataProcessor i
} }
private void batteryClusterDataProcess(String siteId, String dataJson, Date dataUpdateTime) { private void batteryClusterDataProcess(String siteId, String dataJson, Date dataUpdateTime) {
if (!SiteEnum.DDS.getCode().equals(siteId)) { // if (!SiteEnum.DDS.getCode().equals(siteId)) {
return; // return;
} // }
Map<String, Object> obj = JSON.parseObject(dataJson, new TypeReference<Map<String, Object>>() { Map<String, Object> obj = JSON.parseObject(dataJson, new TypeReference<Map<String, Object>>() {
}); });
@ -1006,7 +1026,7 @@ public class DeviceDataProcessServiceImpl extends AbstractBatteryDataProcessor i
// 点位匹配数据 // 点位匹配数据
List<EmsPointMatch> pointMatchList = devicePointMatchDataProcessor.getDevicePointMatch(siteId, deviceId, DeviceMatchTable.AMMETER.getCode()); List<EmsPointMatch> pointMatchList = devicePointMatchDataProcessor.getDevicePointMatch(siteId, deviceId, DeviceMatchTable.AMMETER.getCode());
if (CollectionUtils.isEmpty(pointMatchList)) { if (CollectionUtils.isEmpty(pointMatchList)) {
log.info("未找到匹配的点位数据,无法处理METE储能电表数据siteId: " + siteId + "deviceId: " + deviceId); log.info("未找到匹配的点位数据无法处理电表数据siteId: " + siteId + "deviceId: " + deviceId);
return; return;
} }
Map<String, List<EmsPointEnumMatch>> pointEnumMatchMap = devicePointMatchDataProcessor.getPointEnumMatchMap(siteId, DeviceMatchTable.AMMETER.getCode()); Map<String, List<EmsPointEnumMatch>> pointEnumMatchMap = devicePointMatchDataProcessor.getPointEnumMatchMap(siteId, DeviceMatchTable.AMMETER.getCode());
@ -1031,7 +1051,7 @@ public class DeviceDataProcessServiceImpl extends AbstractBatteryDataProcessor i
redisCache.setCacheObject(RedisKeyConstants.AMMETER + siteId + "_" + deviceId, dataMete); redisCache.setCacheObject(RedisKeyConstants.AMMETER + siteId + "_" + deviceId, dataMete);
if (!deviceId.contains(SiteDevice.METEGF.name()) && !deviceId.contains(SiteDevice.METE0.name())) { if (deviceId.equals(SiteDevice.METE.name())) {
// 处理储能电表-METE每日充放电数据 // 处理储能电表-METE每日充放电数据
dealDailyChargeDate(siteId, deviceId, dataMete); dealDailyChargeDate(siteId, deviceId, dataMete);
@ -1390,7 +1410,7 @@ public class DeviceDataProcessServiceImpl extends AbstractBatteryDataProcessor i
Map<String, BigDecimal> realTimeRevenue = redisCache.getCacheObject(redisKey); Map<String, BigDecimal> realTimeRevenue = redisCache.getCacheObject(redisKey);
if (realTimeRevenue == null) { if (realTimeRevenue == null) {
// 查数据库 // 查数据库
realTimeRevenue = iEmsEnergyPriceConfigService.getDayRevenueMap(siteId); realTimeRevenue = emsEnergyPriceConfigService.getDayRevenueMap(siteId);
if (realTimeRevenue == null) { if (realTimeRevenue == null) {
realTimeRevenue = new HashMap<>(); realTimeRevenue = new HashMap<>();
realTimeRevenue.put("totalRevenue", BigDecimal.ZERO); realTimeRevenue.put("totalRevenue", BigDecimal.ZERO);