|
|
@@ -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;
|