소스 검색

获取项目列表信息 header加集团编码

miaolijing 2 년 전
부모
커밋
c0988ff18a

+ 2 - 1
src/main/java/com/persagy/apm/diagnose/feign/client/CenterMiddlewareClient.java

@@ -7,6 +7,7 @@ import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 
 import com.alibaba.fastjson.JSONObject;
+import org.springframework.web.bind.annotation.RequestHeader;
 
 /**
  * @ClassName CenterMiddlewareClient
@@ -26,6 +27,6 @@ public interface CenterMiddlewareClient {
     public String queryPeriodData(@RequestBody Map<String, Object> requestMap);
 
     @PostMapping(value = "/mng/project/query")
-    public String queryProject(@RequestBody Map<String, Object> requestMap);
+    public String queryProject(@RequestBody Map<String, Object> requestMap, @RequestHeader("groupCode") String groupCode);
 
 }

+ 1 - 1
src/main/java/com/persagy/apm/diagnose/indicatorrecord/service/impl/MonitorIndicatorRecordServiceImpl.java

@@ -146,7 +146,7 @@ public class MonitorIndicatorRecordServiceImpl implements IMonitorIndicatorRecor
         if (CollectionUtils.isEmpty(eqdxAlarmItemCodeList)) {
             return new AsyncResult<>("【监测指标数据计算线程】未查询到设备运行诊断的报警类型");
         }
-        List<AlarmRuleDTO> projectAlarmRules = energyAlarmService.getProjectAlarmRules(projectDTO.getProjectId(), eqdxAlarmItemCodeList);
+        List<AlarmRuleDTO> projectAlarmRules = energyAlarmService.getProjectAlarmRules(projectDTO, eqdxAlarmItemCodeList);
         if (CollectionUtils.isEmpty(projectAlarmRules)) {
             return new AsyncResult<>("【监测指标数据计算线程】当前项目:" + projectDTO.getProjectId() + "未设置报警规则");
         }

+ 1 - 1
src/main/java/com/persagy/apm/diagnose/maintenance/service/IProjectDataRecordService.java

@@ -13,7 +13,7 @@ public interface IProjectDataRecordService {
 
     Future<String> computeMaintenanceData(Date todayDate, ProjectDTO projectDTO, CountDownLatch latch) throws Exception;
 
-    Future<String> sendMaintenanceData(Date todayDate,String projectId, CountDownLatch latch) throws Exception;
+    Future<String> sendMaintenanceData(Date todayDate,ProjectDTO projectDTO, CountDownLatch latch) throws Exception;
 
     Future<String> syncGoingDestroyEquip(String projectId, CountDownLatch latch) throws Exception;
 

+ 14 - 16
src/main/java/com/persagy/apm/diagnose/maintenance/service/impl/ProjectDataRecordServiceImpl.java

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

+ 1 - 1
src/main/java/com/persagy/apm/diagnose/service/CenterDataService.java

@@ -226,7 +226,7 @@ public class CenterDataService{
             criteria.put("type",typeList);
             criteria.put("groupCode", SaasContext.getContextGroupCode());
             requestMap.put("criteria", criteria);
-            String result = centerMiddlewareClient.queryProject(requestMap);
+            String result = centerMiddlewareClient.queryProject(requestMap,SaasContext.getContextGroupCode());
 
             if (null != result) {
                 JSONObject responseMap = JSONObject.parseObject(result);

+ 7 - 7
src/main/java/com/persagy/apm/diagnose/service/EnergyAlarmServiceImpl.java

@@ -186,18 +186,18 @@ public class EnergyAlarmServiceImpl {
      * @updateTime 2021/9/23 20:29
      * @return: java.util.List<com.persagy.apm.diagnose.service.dto.MonitorIndicatorConfigDTO>
      */
-    public List<AlarmRuleDTO> getProjectAlarmRules(String projectId,List<String> alarmItemCodeList) throws Exception {
+    public List<AlarmRuleDTO> getProjectAlarmRules(ProjectDTO projectDTO,List<String> alarmItemCodeList) throws Exception {
         List<AlarmRuleDTO> allAlarmRuleDTOList = new ArrayList<>();
         if (!CollectionUtils.isEmpty(alarmItemCodeList)){
             for (String code:alarmItemCodeList) {
                 AlarmRuleDTO alarmRuleDTO = AlarmRuleDTO.builder().build();
-                alarmRuleDTO.setProjectId(projectId);
-                alarmRuleDTO.setGroupCode(SaasContext.getContextGroupCode());
+                alarmRuleDTO.setProjectId(projectDTO.getProjectId());
+                alarmRuleDTO.setGroupCode(projectDTO.getGroupCode());
                 alarmRuleDTO.setPd("asdasdasda");
                 alarmRuleDTO.setUserId("test");
                 alarmRuleDTO.setAlarmItemCode(code);
                 AlarmResult<JSONObject> result = alarmServiceClient.queryProjectAlarmRules(alarmRuleDTO);
-                log.error("集团编码{}项目编码{}报警Code编码{}查询报警规则信息返回信息{}",SaasContext.getContextGroupCode(),projectId,code,result);
+                log.error("集团编码{}项目编码{}报警Code编码{}查询报警规则信息返回信息{}",projectDTO.getGroupCode(),projectDTO.getProjectId(),code,result);
                 List<AlarmRuleDTO> alarmRuleDTOList =  AlarmResultUtil.getRecords(result, AlarmRuleDTO.class);
                 allAlarmRuleDTOList.addAll(alarmRuleDTOList);
             }
@@ -223,12 +223,12 @@ public class EnergyAlarmServiceImpl {
         return eqdxAlarmItems.stream().map(AlarmItem::getCode).collect(Collectors.toList());
     }
 
-    public List<AlarmCondition> getProjectAlarmCondition(String projectId,String objId,String itemCode)throws Exception{
+    public List<AlarmCondition> getProjectAlarmCondition(ProjectDTO projectDTO,String objId,String itemCode)throws Exception{
         QueryAlarmConditionByObjDTO selDTO = new QueryAlarmConditionByObjDTO();
         selDTO.setObjId(objId);
         selDTO.setItemCode(itemCode);
-        selDTO.setProjectId(projectId);
-        selDTO.setGroupCode(SaasContext.getContextGroupCode());
+        selDTO.setProjectId(projectDTO.getProjectId());
+        selDTO.setGroupCode(projectDTO.getGroupCode());
         selDTO.setPd("asdasdasda");
         selDTO.setUserId("test");
         AlarmResult<JSONObject> result = alarmServiceClient.queryByObjAndItemCode(selDTO);

+ 1 - 3
src/main/java/com/persagy/apm/diagnose/service/MaintenanceDataService.java

@@ -36,7 +36,6 @@ public class MaintenanceDataService {
      * 计算 数据
      */
     public void computeMaintenanceData() throws Exception {
-        String groupCode = SaasContext.getContextGroupCode();
         //查询项目列表
         List<ProjectDTO> projectDTOList = centerDataService.queryProjectList();
         if (CollectionUtils.isEmpty(projectDTOList)) {
@@ -48,7 +47,6 @@ public class MaintenanceDataService {
         List<Future<String>> futureList = new ArrayList<>();
         CountDownLatch latch = new CountDownLatch(projectDTOList.size());
         for (ProjectDTO projectDTO : projectDTOList) {
-            SaasContext.setContextGroupCode(groupCode);
             futureList.add(projectDataRecordService.computeMaintenanceData(todayDate,projectDTO, latch));
         }
         //等待所有任务执行完
@@ -77,7 +75,7 @@ public class MaintenanceDataService {
         List<Future<String>> futureList = new ArrayList<>();
         CountDownLatch latch = new CountDownLatch(projectDTOList.size());
         for (ProjectDTO projectDTO : projectDTOList) {
-            futureList.add(projectDataRecordService.sendMaintenanceData(todayDate,projectDTO.getProjectId(),latch));
+            futureList.add(projectDataRecordService.sendMaintenanceData(todayDate,projectDTO,latch));
         }
         //等待所有任务执行完
         latch.await();

+ 0 - 1
src/main/java/com/persagy/apm/diagnose/service/schedule/ComputeMaintenanceData.java

@@ -51,7 +51,6 @@ public class ComputeMaintenanceData {
             }
             maintenanceDataService.computeMaintenanceData();
             log.info("【计算设备维保日维度平均值数据线程】:集团{}结束.......",group.getCode());
-            SaasContext.setContextGroupCode(null);
         }
         log.error("【计算设备维保日维度平均值数据线程】:计算数据结束.......");
     }