DDS监听数据结构修改

This commit is contained in:
2025-07-18 01:45:09 +08:00
parent 34c2647495
commit b25f5310e1
2 changed files with 32 additions and 27 deletions

View File

@ -14,6 +14,7 @@ import com.xzzn.ems.mapper.*;
import com.xzzn.ems.service.IDDSDataProcessService;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -46,34 +47,32 @@ public class DDSDataProcessServiceImpl implements IDDSDataProcessService {
@Autowired
private EmsAmmeterDataMapper emsAmmeterDataMapper;
@Autowired
private EmsBatteryDailyLatestServiceImpl emsBatteryDailyLatestServiceImpl;
@Override
public void handleDdsData(String message) {
JSONArray arraylist = JSONArray.parseArray(message);
JSONObject obj = JSONObject.parseObject(message);
for (int i = 0; i < arraylist.size(); i++) {
JSONObject obj = JSONObject.parseObject(arraylist.get(i).toString());
String deviceId = obj.get("Device").toString();
String jsonData = obj.get("Data").toString();
String deviceId = obj.get("Device").toString();
String jsonData = obj.get("Data").toString();
log.info("deviceId:" + deviceId);
if (deviceId.contains("BMSD")) {
batteryStackDataProcess(deviceId, jsonData);
log.info("deviceId:" + deviceId);
if (deviceId.contains("BMSD")) {
batteryStackDataProcess(deviceId, jsonData);
} else if (deviceId.contains("BMSC")) {
log.info("BMSC data:" + jsonData);
batteryClusterDataProcess(deviceId, jsonData);
batteryDataProcess(deviceId, jsonData);
} else if (deviceId.contains("BMSC")) {
log.info("BMSC data:"+ jsonData);
batteryClusterDataProcess(deviceId, jsonData);
batteryDataProcess(deviceId, jsonData);
} else if (deviceId.contains("PCS")) {
pcsDataProcess(deviceId, jsonData);
pcsBranchDataProcess(deviceId, jsonData);
} else if (deviceId.contains("LOAD")) {
loadDataProcess(deviceId, jsonData);
} else if (deviceId.contains("METE")) {
meteDataProcess(deviceId, jsonData);
}
} else if (deviceId.contains("PCS")) {
pcsDataProcess(deviceId, jsonData);
pcsBranchDataProcess(deviceId, jsonData);
} else if (deviceId.contains("LOAD")) {
loadDataProcess(deviceId, jsonData);
} else if (deviceId.contains("METE")) {
meteDataProcess(deviceId, jsonData);
}
}
@ -253,6 +252,7 @@ public class DDSDataProcessServiceImpl implements IDDSDataProcessService {
//单体电池
Map<String, Map<String, Object>> records = processData(JSON.parseObject(dataJson, new TypeReference<Map<String, Object>>() {}));
List<EmsBatteryData> list = new ArrayList<>();
List<EmsBatteryDataDailyLatest> dailyList = new ArrayList<>();
//单体电池
for (Map.Entry<String, Map<String, Object>> record : records.entrySet()) {
String recordId = record.getKey();
@ -277,6 +277,12 @@ public class DDSDataProcessServiceImpl implements IDDSDataProcessService {
batteryData.setClusterDeviceId(deviceId);
list.add(batteryData);
// 每日最新数据
EmsBatteryDataDailyLatest daily = new EmsBatteryDataDailyLatest();
BeanUtils.copyProperties(batteryData, daily);
daily.setDateDay(DateUtils.getNowDate());
dailyList.add(daily);
}
if (list.size() > 0 ) {
emsBatteryDataMapper.insertEmsBatteryDataList(list);
@ -284,6 +290,10 @@ public class DDSDataProcessServiceImpl implements IDDSDataProcessService {
redisCache.deleteList(RedisKeyConstants.BATTERY + SITE_ID + "_" +deviceId);
redisCache.setCacheList(RedisKeyConstants.BATTERY + SITE_ID + "_" +deviceId, list);
}
// 批量处理每日最新数据
if (dailyList != null && dailyList.size() > 0) {
emsBatteryDailyLatestServiceImpl.batchProcessBatteryData(dailyList);
}
}

View File

@ -46,7 +46,7 @@ public class FXXDataProcessServiceImpl implements IFXXDataProcessService {
private EmsDevicesSettingMapper emsDevicesSettingMapper;
@Autowired
private EmsAmmeterDataMapper emsAmmeterDataMapper;;
private EmsAmmeterDataMapper emsAmmeterDataMapper;
@Autowired
private EmsBatteryDailyLatestServiceImpl emsBatteryDailyLatestServiceImpl;
@ -296,16 +296,11 @@ public class FXXDataProcessServiceImpl implements IFXXDataProcessService {
}
// 批量处理每日最新数据
batchProcessDailyData(dailyList);
}
private void batchProcessDailyData(List<EmsBatteryDataDailyLatest> dailyList) {
if (dailyList != null && dailyList.size() > 0) {
emsBatteryDailyLatestServiceImpl.batchProcessBatteryData(dailyList);
}
}
private void pcsDataProcess(String deviceId, String dataJson) {
Map<String, Object> obj = JSON.parseObject(dataJson, new TypeReference<Map<String, Object>>() {
});