Browse Source

在订阅RocketMQ消息触发执行动作、定时任务触发执行动作、采集量定时任务触发执行动作增加日志采集

james 2 tuần trước cách đây
mục cha
commit
360430740a

+ 4 - 0
service-rule/service-rule-biz/src/main/java/com/usky/rule/jobs/CommonJob.java

@@ -9,6 +9,8 @@ import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.List;
 import javax.annotation.Resource;
+
+import lombok.extern.slf4j.Slf4j;
 import org.quartz.CronTrigger;
 import org.quartz.DisallowConcurrentExecution;
 import org.quartz.Job;
@@ -16,6 +18,7 @@ import org.quartz.JobDataMap;
 import org.quartz.JobExecutionContext;
 
 @DisallowConcurrentExecution
+@Slf4j
 public class CommonJob implements Job {
     @Resource
     private RuleEngineUtil ruleEngineUtil;
@@ -34,6 +37,7 @@ public class CommonJob implements Job {
             detail = CommonListener.initRuleEngineDetailLog((CronTrigger)context.getTrigger(), LocalDateTime.now());
             detail.setConstraints(new ArrayList());
         }
+        log.info("commonJob start ruleEngineId: {}, detail: {}, spaceId: {}", ruleEngineId, detail, spaceId);
 
         this.ruleEngineUtil.performMultipleDevicesControl(ruleEngineId, true, TriggerTypeEnum.CRON.getType(), projectId, spaceId, actions, detail);
     }

+ 7 - 0
service-rule/service-rule-biz/src/main/java/com/usky/rule/jobs/ConsumptionJob.java

@@ -31,6 +31,8 @@ import java.time.LocalDateTime;
 import java.time.temporal.ChronoUnit;
 import java.util.*;
 import javax.annotation.Resource;
+
+import lombok.extern.slf4j.Slf4j;
 import org.cache2k.Cache;
 import org.cache2k.CacheEntry;
 import org.quartz.DisallowConcurrentExecution;
@@ -42,6 +44,7 @@ import org.springframework.util.Assert;
 import org.springframework.util.CollectionUtils;
 
 @DisallowConcurrentExecution
+@Slf4j
 public class ConsumptionJob implements Job {
     @Resource
     private Cache<Long, List<DeviceTrigger>> consumptionTriggerCache;
@@ -63,6 +66,7 @@ public class ConsumptionJob implements Job {
         LocalDateTime now = LocalDateTime.now();
 
         for(CacheEntry<Long, List<DeviceTrigger>> entry : this.consumptionTriggerCache.entries()) {
+            log.info("consumptionTriggerCache: {}, now: {}", entry.getKey(), now);
             Long engineId = (Long)entry.getKey();
             RuleEngine ruleEngine = (RuleEngine)this.ruleEngineService.getById(engineId);
             Long spaceId = ruleEngine.getSpaceId();
@@ -133,9 +137,12 @@ public class ConsumptionJob implements Job {
                 }
 
                 if (spaceTriggerAction) {
+                    log.info("consumptionJob spaceTriggerAction true");
                     List<DeviceConstraint> deviceConstraints = this.ruleEngineService.getDeviceConstraints(ruleEngineDetail.getConstraints());
                     boolean constraintAction = this.triggerDeviceUtil.meetConstraintAction(deviceConstraints, ruleEngineDetailLog);
                     if (constraintAction) {
+
+                        log.info("ConsumptionJob constraintAction engineId: {}, actions: {}", engineId, actions);
                         this.ruleEngineUtil.performMultipleDevicesControl(engineId, true, TriggerTypeEnum.DEVICE.getType(), ruleEngine.getProjectId(), spaceId, actions, ruleEngineDetailLog);
                     }
                 }

+ 7 - 0
service-rule/service-rule-biz/src/main/java/com/usky/rule/subscribe/TriggerDeviceUtil.java

@@ -3,6 +3,7 @@ package com.usky.rule.subscribe;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.usky.common.core.util.JsonUtils;
+import com.usky.common.security.utils.SecurityUtils;
 import com.usky.rule.domain.RuleEngineDevice;
 import com.usky.rule.mapper.RuleEngineDeviceMapper;
 import com.usky.rule.util.DateTimeUtil;
@@ -41,6 +42,7 @@ import java.util.Optional;
 import java.util.stream.Collectors;
 
 import com.usky.rule.vo.log.BaseLog;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.expression.ExpressionParser;
@@ -48,6 +50,7 @@ import org.springframework.expression.spel.standard.SpelExpressionParser;
 import org.springframework.stereotype.Component;
 
 @Component
+@Slf4j
 public class TriggerDeviceUtil {
     private RuleEngineService ruleEngineService;
     private RuleEngineUtil ruleEngineUtil;
@@ -75,6 +78,7 @@ public class TriggerDeviceUtil {
                 .orElse(LocalDateTime.now());
         List<RuleEngineDevice> ruleEngineDeviceVOList = ruleEngineDeviceMapper.selectByDeviceUuid(deviceUuId);
         if (!ruleEngineDeviceVOList.isEmpty()) {
+            log.info("enter ruleEngine deviceUuid {}",deviceUuId);
             ruleEngineDeviceVOList.forEach((ruleEngineDeviceVO) -> {
                 Long ruleEngineId = ruleEngineDeviceVO.getRuleEngineId();
                 Long productId = ruleEngineDeviceVO.getProductId();
@@ -89,15 +93,18 @@ public class TriggerDeviceUtil {
                             if (deviceTriggers != null) {
                                 deviceTriggers = (List)deviceTriggers.stream().filter((deviceTrigger) -> deviceTrigger.getMethod().equals("acq")).filter((deviceTrigger) -> deviceTrigger.getProductId().equals(productId)).filter((deviceTrigger) -> deviceTrigger.getDevices().stream().anyMatch((device) -> StringUtils.equals(device.getId(), deviceId) || StringUtils.isNotBlank(deviceUuId) && StringUtils.equals(device.getDeviceUuid(), deviceUuId))).collect(Collectors.toList());
                                 if (!deviceTriggers.isEmpty()) {
+                                    log.info("enter deviceTriggers {}",deviceTriggers);
                                     RuleEngineDetailLog ruleEngineDetailLog = new RuleEngineDetailLog();
                                     List<Condition> meetTriggerConditionList = new ArrayList();
                                     Map<String, String> meetMinuteExpressionMap = new HashMap();
                                     boolean triggerAction = this.meetDeviceAcqTriggerAction(ruleEngineId, deviceId, currDataTime, valueMap, deviceTriggers, meetMinuteExpressionMap, meetTriggerConditionList);
                                     if (triggerAction) {
+                                        log.info("triggerAction is true");
                                         this.setTriggerLog(now, ruleEngineDetailLog, deviceId, null, TriggerValueTypeEnum.ACQ.getValue(), TriggerTypeEnum.DEVICE, meetTriggerConditionList, valueMap);
                                         List<DeviceConstraint> deviceConstraints = this.ruleEngineService.getDeviceConstraints(ruleEngineDetail.getConstraints());
                                         boolean constraintAction = this.meetConstraintAction(deviceConstraints, ruleEngineDetailLog);
                                         if (constraintAction) {
+                                            log.info("constraintAction is true");
                                             this.ruleEngineUtil.performMultipleDevicesControl(ruleEngineId, true, TriggerTypeEnum.DEVICE.getType(), ruleEngine.getProjectId(), ruleEngine.getSpaceId(), actions, ruleEngineDetailLog);
                                             this.clearMeetConditionCache(ruleEngineId, deviceId, meetMinuteExpressionMap);
                                         }

+ 23 - 20
service-rule/service-rule-biz/src/main/java/com/usky/rule/util/RuleEngineUtil.java

@@ -117,28 +117,31 @@ public class RuleEngineUtil {
      * @param actions
      */
     public void generateAlarmEvent(Long ruleEngineId, String ruleEngineName, Long projectId, Long spaceId, List<RuleEngineAction> actions) {
-        AlarmEventAction alarmEventAction = (AlarmEventAction)actions;
-        List<AlarmSimpleVO> devices = alarmEventAction.getDevices();
-        if (devices != null && !devices.isEmpty()) {
-            JSONObject jsonObject = new JSONObject();
-            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
-            LocalDateTime now = LocalDateTime.now();
-            String alarmTime = now.format(formatter);
-            jsonObject.put("alarmTime",alarmTime);
-            jsonObject.put("alarmType",alarmEventAction.getAlarmType());
-            jsonObject.put("alarmData",0);
-            jsonObject.put("alarmAttribute",alarmEventAction.getAlarmAttribute());
-            jsonObject.put("alarmContent",alarmEventAction.getAlarmAttribute());
-            jsonObject.put("alarmGrade",alarmEventAction.getAlarmGrade());
-            jsonObject.put("productCode",alarmEventAction.getProductCode());
-            for (AlarmSimpleVO device : devices) {
-                jsonObject.put("deviceId",device.getDeviceId());
-                jsonObject.put("alarmObject",device.getDeviceName());
-                jsonObject.put("alarmAddress",device.getCommAddress());
-
-                HttpClientUtils.doPostJson(alarmUrl,jsonObject.toJSONString());
+        for(RuleEngineAction ruleEngineAction : actions) {
+            AlarmEventAction alarmEventAction = (AlarmEventAction)ruleEngineAction;
+            List<AlarmSimpleVO> devices = alarmEventAction.getDevices();
+            if (devices != null && !devices.isEmpty()) {
+                JSONObject jsonObject = new JSONObject();
+                DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+                LocalDateTime now = LocalDateTime.now();
+                String alarmTime = now.format(formatter);
+                jsonObject.put("alarmTime",alarmTime);
+                jsonObject.put("alarmType",alarmEventAction.getAlarmType());
+                jsonObject.put("alarmData",0);
+                jsonObject.put("alarmAttribute",alarmEventAction.getAlarmAttribute());
+                jsonObject.put("alarmContent",alarmEventAction.getAlarmAttribute());
+                jsonObject.put("alarmGrade",alarmEventAction.getAlarmGrade());
+                jsonObject.put("productCode",alarmEventAction.getProductCode());
+                for (AlarmSimpleVO device : devices) {
+                    jsonObject.put("deviceId",device.getDeviceId());
+                    jsonObject.put("alarmObject",device.getDeviceName());
+                    jsonObject.put("alarmAddress",device.getCommAddress());
+
+                    HttpClientUtils.doPostJson(alarmUrl,jsonObject.toJSONString());
+                }
             }
         }
+
     }
 
     /**