Jelajahi Sumber

优化数据规则引擎手动启动接口,增加日志结构的拼接

james 1 Minggu lalu
induk
melakukan
6ea08bcda2

+ 32 - 1
service-rule/service-rule-biz/src/main/java/com/usky/rule/service/impl/RuleEngineDetailServiceImpl.java

@@ -1,7 +1,10 @@
 package com.usky.rule.service.impl;
 
 import com.usky.rule.domain.RuleEngine;
+import com.usky.rule.enums.TriggerValueTypeEnum;
+import com.usky.rule.util.DateTimeUtil;
 import com.usky.rule.util.JsonUtil;
+import com.usky.rule.vo.Condition;
 import com.usky.rule.vo.RuleEngineDTO;
 import com.usky.rule.enums.ActionTypeEnum;
 import com.usky.rule.enums.TriggerTypeEnum;
@@ -9,6 +12,8 @@ import com.usky.rule.vo.RuleEngineDetail;
 import com.usky.rule.vo.action.RuleEngineAction;
 import com.usky.rule.vo.constraint.CronConstraint;
 import com.usky.rule.vo.constraint.DeviceConstraint;
+import com.usky.rule.vo.log.BaseLog;
+import com.usky.rule.vo.log.DeviceTriggerLog;
 import com.usky.rule.vo.log.RuleEngineDetailLog;
 import com.usky.rule.vo.trigger.CronTrigger;
 import com.usky.rule.cache.DeviceTriggerIncludeMinuteCache;
@@ -17,8 +22,15 @@ import com.usky.rule.crons.TriggerCronTask;
 import com.usky.rule.service.RuleEngineDetailService;
 import com.usky.rule.util.RuleEngineUtil;
 import com.usky.rule.service.RuleEngineService;
+
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 import java.util.stream.Collectors;
+
+import com.usky.rule.vo.trigger.DeviceTrigger;
+import com.usky.rule.vo.visualization.SimpleVO;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.util.Assert;
@@ -79,12 +91,31 @@ public class RuleEngineDetailServiceImpl implements RuleEngineDetailService {
         RuleEngine ruleEngine = (RuleEngine)this.ruleEngineService.getById(id);
         Assert.notNull(ruleEngine, "规则引擎不存在");
         RuleEngineDetail ruleEngineDetail = getRuleEngineDetail(ruleEngine);
+        List<DeviceTrigger> deviceTriggers = this.ruleEngineService.getDeviceTriggers(ruleEngineDetail.getTriggers());
+
+        RuleEngineDetailLog ruleEngineDetailLog = new RuleEngineDetailLog();
+        DeviceTriggerLog deviceTriggerLog = new DeviceTriggerLog();
+        deviceTriggerLog.setMethod(TriggerValueTypeEnum.ACQ.getValue());
+        deviceTriggerLog.setTime(DateTimeUtil.format(LocalDateTime.now()));
+        deviceTriggerLog.setProductCode(deviceTriggers.get(0).getProductCode());
+        deviceTriggerLog.setDevices(deviceTriggers.get(0).getDevices());
+
+        List<Condition> meetTriggerConditionList = Collections.emptyList();
+        deviceTriggerLog.setConditions(meetTriggerConditionList);
+
+        BaseLog baseLog = new BaseLog();
+        baseLog.setType(TriggerTypeEnum.DEVICE.getType());
+        baseLog.setDetail(deviceTriggerLog);
+        List<BaseLog> baseLogs = new ArrayList();
+        baseLogs.add(baseLog);
+        ruleEngineDetailLog.setTriggers(baseLogs);
+
         if (ruleEngineDetail == null) {
             return true;
         } else {
             List<RuleEngineAction> actions = this.ruleEngineService.getActions(ruleEngineDetail.getActions());
             if (actions != null && !actions.isEmpty()) {
-                this.ruleEngineUtil.performMultipleDevicesControl(id, false, TriggerTypeEnum.DEVICE.getType(), actions, new RuleEngineDetailLog());
+                this.ruleEngineUtil.performMultipleDevicesControl(id, false, TriggerTypeEnum.DEVICE.getType(), actions, ruleEngineDetailLog);
                 return true;
             } else {
                 return true;

+ 2 - 2
service-rule/service-rule-biz/src/main/java/com/usky/rule/service/impl/RuleEngineServiceImpl.java

@@ -604,13 +604,13 @@ public class RuleEngineServiceImpl extends AbstractCrudService<RuleEngineMapper,
 
     @Override
     public String getName(Long ruleEngineId) {
-        RuleEngine ruleEngine = getBaseMapper().selectById(ruleEngineId);
+        RuleEngine ruleEngine = getBaseMapper().selectById(ruleEngineId, SecurityUtils.getTenantId());
         return ruleEngine == null ? "" : ruleEngine.getName();
     }
 
     @Override
     public String getDetail(Long ruleEngineId) {
-        RuleEngine ruleEngine = getBaseMapper().selectById(ruleEngineId);
+        RuleEngine ruleEngine = getBaseMapper().selectById(ruleEngineId, SecurityUtils.getTenantId());
         return ruleEngine == null ? "" : ruleEngine.getDetail();
     }
 }