|
@@ -111,8 +111,6 @@ public class ProjectDataRecordServiceImpl implements IProjectDataRecordService {
|
|
// 获取不到锁,略过
|
|
// 获取不到锁,略过
|
|
return new AsyncResult<>("【监测维保数据计算线程】项目:" + projectDTO.getProjectId() + "被占用");
|
|
return new AsyncResult<>("【监测维保数据计算线程】项目:" + projectDTO.getProjectId() + "被占用");
|
|
}
|
|
}
|
|
- String groupCode = SaasContext.getContextGroupCode();
|
|
|
|
- SaasContext.setContextGroupCode(groupCode);
|
|
|
|
long start = System.currentTimeMillis();
|
|
long start = System.currentTimeMillis();
|
|
AsyncResult<String> projectDTOBack = computeProjectMaintenanceData(todayDate, projectDTO);
|
|
AsyncResult<String> projectDTOBack = computeProjectMaintenanceData(todayDate, projectDTO);
|
|
if (projectDTOBack != null) {
|
|
if (projectDTOBack != null) {
|
|
@@ -130,19 +128,19 @@ public class ProjectDataRecordServiceImpl implements IProjectDataRecordService {
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@Async("asyncSendMaintenanceDataExecutor")
|
|
@Async("asyncSendMaintenanceDataExecutor")
|
|
- public Future<String> sendMaintenanceData(Date todayDate, String projectId, CountDownLatch latch) throws Exception {
|
|
|
|
|
|
+ public Future<String> sendMaintenanceData(Date todayDate,ProjectDTO projectDTO, CountDownLatch latch) throws Exception {
|
|
long time = System.currentTimeMillis() + (20 * 1000);
|
|
long time = System.currentTimeMillis() + (20 * 1000);
|
|
try {
|
|
try {
|
|
- if (!lockUtil.lock(projectId + "_sendMaintenance", String.valueOf(time))) {
|
|
|
|
|
|
+ if (!lockUtil.lock(projectDTO.getProjectId() + "_sendMaintenance", String.valueOf(time))) {
|
|
// 获取不到锁,略过
|
|
// 获取不到锁,略过
|
|
- return new AsyncResult<>("【监测维保数据推送线程】:项目:" + projectId + "被占用");
|
|
|
|
|
|
+ return new AsyncResult<>("【监测维保数据推送线程】:项目:" + projectDTO.getProjectId() + "被占用");
|
|
}
|
|
}
|
|
long start = System.currentTimeMillis();
|
|
long start = System.currentTimeMillis();
|
|
- sendProjectMaintenanceData(todayDate, projectId);
|
|
|
|
|
|
+ sendProjectMaintenanceData(todayDate, projectDTO);
|
|
long end = System.currentTimeMillis();
|
|
long end = System.currentTimeMillis();
|
|
- return new AsyncResult<>("【监测维保数据推送线程】推送项目维保数据用时:" + projectId + ";" + (end - start));
|
|
|
|
|
|
+ return new AsyncResult<>("【监测维保数据推送线程】推送项目维保数据用时:" + projectDTO.getProjectId() + ";" + (end - start));
|
|
} finally {
|
|
} finally {
|
|
- lockUtil.unlock(projectId + "_sendMaintenance", String.valueOf(time));
|
|
|
|
|
|
+ lockUtil.unlock(projectDTO.getProjectId() + "_sendMaintenance", String.valueOf(time));
|
|
latch.countDown();
|
|
latch.countDown();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -270,13 +268,13 @@ public class ProjectDataRecordServiceImpl implements IProjectDataRecordService {
|
|
/**
|
|
/**
|
|
* 推送维保数据
|
|
* 推送维保数据
|
|
*/
|
|
*/
|
|
- private void sendProjectMaintenanceData(Date todayDate, String projectId) throws Exception {
|
|
|
|
|
|
+ private void sendProjectMaintenanceData(Date todayDate,ProjectDTO projectDTO) throws Exception {
|
|
List<String> itemCodeList = new ArrayList<>();
|
|
List<String> itemCodeList = new ArrayList<>();
|
|
itemCodeList.add(EnumAlarmItem.CondAbnormal.getCode());
|
|
itemCodeList.add(EnumAlarmItem.CondAbnormal.getCode());
|
|
itemCodeList.add(EnumAlarmItem.EvapAbnormal.getCode());
|
|
itemCodeList.add(EnumAlarmItem.EvapAbnormal.getCode());
|
|
itemCodeList.add(EnumAlarmItem.CoolTowerApproachTempAbnormal.getCode());
|
|
itemCodeList.add(EnumAlarmItem.CoolTowerApproachTempAbnormal.getCode());
|
|
//通过报警服务查询报警规则
|
|
//通过报警服务查询报警规则
|
|
- List<AlarmRuleDTO> projectAlarmRules = energyAlarmService.getProjectAlarmRules(projectId, itemCodeList);
|
|
|
|
|
|
+ List<AlarmRuleDTO> projectAlarmRules = energyAlarmService.getProjectAlarmRules(projectDTO, itemCodeList);
|
|
if (CollectionUtils.isEmpty(projectAlarmRules)) {
|
|
if (CollectionUtils.isEmpty(projectAlarmRules)) {
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
@@ -299,12 +297,12 @@ public class ProjectDataRecordServiceImpl implements IProjectDataRecordService {
|
|
lockUtil.sendDataLock(lockKey, String.valueOf(time));
|
|
lockUtil.sendDataLock(lockKey, String.valueOf(time));
|
|
List<String> infCodeList = entry.getValue();
|
|
List<String> infCodeList = entry.getValue();
|
|
//通过redis查询对象该报警类型下的发数截止时间
|
|
//通过redis查询对象该报警类型下的发数截止时间
|
|
- ConfigItemDataSendTimeDTO configItemSendTimeDTO = getConfigItemSendTimeDTO(projectId, objIdAndAlarmItemCode);
|
|
|
|
|
|
+ ConfigItemDataSendTimeDTO configItemSendTimeDTO = getConfigItemSendTimeDTO(projectDTO.getProjectId(), objIdAndAlarmItemCode);
|
|
|
|
|
|
Date lastSendTime = configItemSendTimeDTO.getLastSendTime();
|
|
Date lastSendTime = configItemSendTimeDTO.getLastSendTime();
|
|
Date endTime = todayDate;
|
|
Date endTime = todayDate;
|
|
|
|
|
|
- List<MonitorIndicatorRecord> list = getMonitorIndicatorRecordsGtLte(projectId, objId, lastSendTime, infCodeList, endTime);
|
|
|
|
|
|
+ List<MonitorIndicatorRecord> list = getMonitorIndicatorRecordsGtLte(projectDTO.getProjectId(), objId, lastSendTime, infCodeList, endTime);
|
|
if (CollectionUtils.isEmpty(list)) {
|
|
if (CollectionUtils.isEmpty(list)) {
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
@@ -329,10 +327,10 @@ public class ProjectDataRecordServiceImpl implements IProjectDataRecordService {
|
|
rabbitConfig.sendMsg(sendArray);
|
|
rabbitConfig.sendMsg(sendArray);
|
|
// String sentValue = CollectDataUtil.batchBuildSendParam(sendTimeKeyAndDataList,alarmItemCode);
|
|
// String sentValue = CollectDataUtil.batchBuildSendParam(sendTimeKeyAndDataList,alarmItemCode);
|
|
// AlarmWebSocketServer.sendMsgToClients(projectId, sentValue);
|
|
// AlarmWebSocketServer.sendMsgToClients(projectId, sentValue);
|
|
- log.info("设备维保发送数据服务数据:" + projectId + ";" + sendArray);
|
|
|
|
|
|
+ log.info("设备维保发送数据服务数据:" + projectDTO.getProjectId() + ";" + sendArray);
|
|
configItemSendTimeDTO.setLastSendTime(endTime);
|
|
configItemSendTimeDTO.setLastSendTime(endTime);
|
|
configItemSendTimeDTO.setUpdateTime(new Date());
|
|
configItemSendTimeDTO.setUpdateTime(new Date());
|
|
- updateRedisConfigItemSendTimeDTO(projectId, objIdAndAlarmItemCode, configItemSendTimeDTO);
|
|
|
|
|
|
+ updateRedisConfigItemSendTimeDTO(projectDTO.getProjectId(), objIdAndAlarmItemCode, configItemSendTimeDTO);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -408,7 +406,7 @@ public class ProjectDataRecordServiceImpl implements IProjectDataRecordService {
|
|
itemCodeList.add(EnumAlarmItem.CondAbnormal.getCode());
|
|
itemCodeList.add(EnumAlarmItem.CondAbnormal.getCode());
|
|
itemCodeList.add(EnumAlarmItem.EvapAbnormal.getCode());
|
|
itemCodeList.add(EnumAlarmItem.EvapAbnormal.getCode());
|
|
itemCodeList.add(EnumAlarmItem.CoolTowerApproachTempAbnormal.getCode());
|
|
itemCodeList.add(EnumAlarmItem.CoolTowerApproachTempAbnormal.getCode());
|
|
- List<AlarmRuleDTO> projectAlarmRules = energyAlarmService.getProjectAlarmRules(projectDTO.getProjectId(), itemCodeList);
|
|
|
|
|
|
+ List<AlarmRuleDTO> projectAlarmRules = energyAlarmService.getProjectAlarmRules(projectDTO, itemCodeList);
|
|
if (CollectionUtils.isEmpty(projectAlarmRules)) {
|
|
if (CollectionUtils.isEmpty(projectAlarmRules)) {
|
|
return new AsyncResult<>("【监测维保数据计算线程】当前项目:" + projectDTO.getProjectId() + "未设置设备维保报警规则");
|
|
return new AsyncResult<>("【监测维保数据计算线程】当前项目:" + projectDTO.getProjectId() + "未设置设备维保报警规则");
|
|
}
|
|
}
|
|
@@ -431,7 +429,7 @@ public class ProjectDataRecordServiceImpl implements IProjectDataRecordService {
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
for (String objId : objIdList) {
|
|
for (String objId : objIdList) {
|
|
- List<AlarmCondition> alarmConditionList = energyAlarmService.getProjectAlarmCondition(projectDTO.getProjectId(), objId, enumAlarmItem.getCode());
|
|
|
|
|
|
+ List<AlarmCondition> alarmConditionList = energyAlarmService.getProjectAlarmCondition(projectDTO, objId, enumAlarmItem.getCode());
|
|
if (CollectionUtils.isEmpty(alarmConditionList)) {
|
|
if (CollectionUtils.isEmpty(alarmConditionList)) {
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|