diff --git a/ems-system/src/main/java/com/xzzn/ems/service/impl/DDSDataProcessServiceImpl.java b/ems-system/src/main/java/com/xzzn/ems/service/impl/DDSDataProcessServiceImpl.java index 77d21f8..7f50754 100644 --- a/ems-system/src/main/java/com/xzzn/ems/service/impl/DDSDataProcessServiceImpl.java +++ b/ems-system/src/main/java/com/xzzn/ems/service/impl/DDSDataProcessServiceImpl.java @@ -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> records = processData(JSON.parseObject(dataJson, new TypeReference>() {})); List list = new ArrayList<>(); + List dailyList = new ArrayList<>(); //单体电池 for (Map.Entry> 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); + } } diff --git a/ems-system/src/main/java/com/xzzn/ems/service/impl/FXXDataProcessServiceImpl.java b/ems-system/src/main/java/com/xzzn/ems/service/impl/FXXDataProcessServiceImpl.java index ac782da..27effc9 100644 --- a/ems-system/src/main/java/com/xzzn/ems/service/impl/FXXDataProcessServiceImpl.java +++ b/ems-system/src/main/java/com/xzzn/ems/service/impl/FXXDataProcessServiceImpl.java @@ -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 dailyList) { if (dailyList != null && dailyList.size() > 0) { emsBatteryDailyLatestServiceImpl.batchProcessBatteryData(dailyList); } } - private void pcsDataProcess(String deviceId, String dataJson) { Map obj = JSON.parseObject(dataJson, new TypeReference>() { });