reactor:【IoT 物联网】调整下 IotSceneRuleAction 等类名

This commit is contained in:
YunaiV
2025-06-28 10:28:57 +08:00
parent 1beb5c039c
commit 779cde24ec
13 changed files with 32 additions and 42 deletions

View File

@@ -3,9 +3,9 @@ package cn.iocoder.yudao.module.iot.controller.admin.alert;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.iot.controller.admin.alert.vo.IotAlertConfigPageReqVO;
import cn.iocoder.yudao.module.iot.controller.admin.alert.vo.IotAlertConfigRespVO;
import cn.iocoder.yudao.module.iot.controller.admin.alert.vo.IotAlertConfigSaveReqVO;
import cn.iocoder.yudao.module.iot.controller.admin.alert.vo.config.IotAlertConfigPageReqVO;
import cn.iocoder.yudao.module.iot.controller.admin.alert.vo.config.IotAlertConfigRespVO;
import cn.iocoder.yudao.module.iot.controller.admin.alert.vo.config.IotAlertConfigSaveReqVO;
import cn.iocoder.yudao.module.iot.dal.dataobject.alert.IotAlertConfigDO;
import cn.iocoder.yudao.module.iot.service.alert.IotAlertConfigService;
import cn.iocoder.yudao.module.system.api.user.AdminUserApi;

View File

@@ -1,4 +1,4 @@
package cn.iocoder.yudao.module.iot.controller.admin.alert.vo;
package cn.iocoder.yudao.module.iot.controller.admin.alert.vo.config;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;

View File

@@ -1,4 +1,4 @@
package cn.iocoder.yudao.module.iot.controller.admin.alert.vo;
package cn.iocoder.yudao.module.iot.controller.admin.alert.vo.config;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

View File

@@ -1,4 +1,4 @@
package cn.iocoder.yudao.module.iot.controller.admin.alert.vo;
package cn.iocoder.yudao.module.iot.controller.admin.alert.vo.config;
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
import cn.iocoder.yudao.framework.common.validation.InEnum;

View File

@@ -6,6 +6,7 @@ import cn.iocoder.yudao.module.iot.dal.dataobject.device.IotDeviceDO;
import cn.iocoder.yudao.module.iot.dal.dataobject.product.IotProductDO;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import lombok.AllArgsConstructor;
@@ -29,12 +30,12 @@ public class IotAlertRecordDO extends BaseDO {
/**
* 记录编号
*/
@TableField
@TableId
private Long id;
/**
* 告警名称
*
* 冗余 {@link IotAlertConfigDO#getName()}
* 冗余 {@link IotAlertConfigDO#getId()}
*/
private Long configId;
/**
@@ -42,7 +43,7 @@ public class IotAlertRecordDO extends BaseDO {
*
* 冗余 {@link IotAlertConfigDO#getName()}
*/
private String name;
private String configName;
/**
* 产品编号
@@ -56,8 +57,6 @@ public class IotAlertRecordDO extends BaseDO {
* 关联 {@link IotDeviceDO#getId()}
*/
private String deviceId;
// TODO @芋艿:有没更好的方式
/**
* 触发的设备消息
*/
@@ -65,10 +64,7 @@ public class IotAlertRecordDO extends BaseDO {
private IotDeviceMessage deviceMessage;
/**
* 处理状态
*
* true - 已处理
* false - 未处理
* 是否处理
*/
private Boolean processStatus;
/**

View File

@@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.iot.dal.mysql.alert;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.iot.controller.admin.alert.vo.IotAlertConfigPageReqVO;
import cn.iocoder.yudao.module.iot.controller.admin.alert.vo.config.IotAlertConfigPageReqVO;
import cn.iocoder.yudao.module.iot.dal.dataobject.alert.IotAlertConfigDO;
import org.apache.ibatis.annotations.Mapper;

View File

@@ -1,6 +1,7 @@
package cn.iocoder.yudao.module.iot.enums.rule;
import cn.iocoder.yudao.framework.common.core.ArrayValuable;
import cn.iocoder.yudao.module.iot.core.enums.IotDeviceMessageMethodEnum;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
@@ -15,17 +16,16 @@ import java.util.Arrays;
@Getter
public enum IotRuleSceneActionTypeEnum implements ArrayValuable<Integer> {
// TODO @芋艿:后续“对应”部分,要 @下,等包结构梳理完;
/**
* 设备属性设置
*
* 对应 IotDeviceMessageMethodEnum.DEVICE_PROPERTY_SET
* 对应 {@link IotDeviceMessageMethodEnum#PROPERTY_SET}
*/
DEVICE_PROPERTY_SET(1),
/**
* 设备服务调用
*
* 对应 IotDeviceMessageMethodEnum.DEVICE_SERVICE_INVOKE
* 对应 {@link IotDeviceMessageMethodEnum#SERVICE_INVOKE}
*/
DEVICE_SERVICE_INVOKE(2),
@@ -38,8 +38,6 @@ public enum IotRuleSceneActionTypeEnum implements ArrayValuable<Integer> {
*/
ALERT_RECOVER(101),
@Deprecated
ALERT(2), // 告警执行
;
private final Integer type;

View File

@@ -1,8 +1,8 @@
package cn.iocoder.yudao.module.iot.service.alert;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.iot.controller.admin.alert.vo.IotAlertConfigPageReqVO;
import cn.iocoder.yudao.module.iot.controller.admin.alert.vo.IotAlertConfigSaveReqVO;
import cn.iocoder.yudao.module.iot.controller.admin.alert.vo.config.IotAlertConfigPageReqVO;
import cn.iocoder.yudao.module.iot.controller.admin.alert.vo.config.IotAlertConfigSaveReqVO;
import cn.iocoder.yudao.module.iot.dal.dataobject.alert.IotAlertConfigDO;
import jakarta.validation.Valid;

View File

@@ -2,8 +2,8 @@ package cn.iocoder.yudao.module.iot.service.alert;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.iot.controller.admin.alert.vo.IotAlertConfigPageReqVO;
import cn.iocoder.yudao.module.iot.controller.admin.alert.vo.IotAlertConfigSaveReqVO;
import cn.iocoder.yudao.module.iot.controller.admin.alert.vo.config.IotAlertConfigPageReqVO;
import cn.iocoder.yudao.module.iot.controller.admin.alert.vo.config.IotAlertConfigSaveReqVO;
import cn.iocoder.yudao.module.iot.dal.dataobject.alert.IotAlertConfigDO;
import cn.iocoder.yudao.module.iot.dal.mysql.alert.IotAlertConfigMapper;
import cn.iocoder.yudao.module.iot.service.rule.scene.IotRuleSceneService;

View File

@@ -27,7 +27,7 @@ import cn.iocoder.yudao.module.iot.enums.rule.IotRuleSceneConditionOperatorEnum;
import cn.iocoder.yudao.module.iot.enums.rule.IotRuleSceneTriggerTypeEnum;
import cn.iocoder.yudao.module.iot.framework.job.core.IotSchedulerManager;
import cn.iocoder.yudao.module.iot.job.rule.IotRuleSceneJob;
import cn.iocoder.yudao.module.iot.service.rule.scene.action.IotRuleSceneAction;
import cn.iocoder.yudao.module.iot.service.rule.scene.action.IotSceneRuleAction;
import jakarta.annotation.Resource;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
@@ -39,15 +39,13 @@ import org.quartz.impl.StdSchedulerFactory;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Collection;
import java.util.Set;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList;
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.filterList;
import static cn.iocoder.yudao.module.iot.enums.ErrorCodeConstants.RULE_SCENE_NOT_EXISTS;
@@ -65,7 +63,7 @@ public class IotRuleSceneServiceImpl implements IotRuleSceneService {
private IotRuleSceneMapper ruleSceneMapper;
@Resource
private List<IotRuleSceneAction> ruleSceneActions;
private List<IotSceneRuleAction> ruleSceneActions;
@Resource(name = "iotSchedulerManager")
private IotSchedulerManager schedulerManager;
@@ -437,7 +435,7 @@ public class IotRuleSceneServiceImpl implements IotRuleSceneService {
// 2. 遍历规则场景的动作
ruleScene.getActions().forEach(actionConfig -> {
// 3.1 获取对应的动作 Action 数组
List<IotRuleSceneAction> actions = filterList(ruleSceneActions,
List<IotSceneRuleAction> actions = filterList(ruleSceneActions,
action -> action.getType().getType().equals(actionConfig.getType()));
if (CollUtil.isEmpty(actions)) {
return;

View File

@@ -8,21 +8,21 @@ import org.springframework.stereotype.Component;
import javax.annotation.Nullable;
/**
* IoT 告警的 {@link IotRuleSceneAction} 实现类
* IoT 告警触发 {@link IotSceneRuleAction} 实现类
*
* @author 芋道源码
*/
@Component
public class IotRuleSceneAlertAction implements IotRuleSceneAction {
public class IotAlertTriggerRuleSceneAction implements IotSceneRuleAction {
@Override
public void execute(@Nullable IotDeviceMessage message, IotRuleSceneDO.ActionConfig config) {
// TODO @芋艿待实现
// TODO @AI
}
@Override
public IotRuleSceneActionTypeEnum getType() {
return IotRuleSceneActionTypeEnum.ALERT;
return IotRuleSceneActionTypeEnum.ALERT_TRIGGER;
}
}

View File

@@ -12,13 +12,13 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
/**
* IoT 设备控制的 {@link IotRuleSceneAction} 实现类
* IoT 设备控制的 {@link IotSceneRuleAction} 实现类
*
* @author 芋道源码
*/
@Component
@Slf4j
public class IotRuleSceneDeviceControlAction implements IotRuleSceneAction {
public class IotDeviceControlRuleSceneAction implements IotSceneRuleAction {
@Resource
private IotDeviceService deviceService;

View File

@@ -7,16 +7,14 @@ import cn.iocoder.yudao.module.iot.enums.rule.IotRuleSceneActionTypeEnum;
import javax.annotation.Nullable;
/**
* IoT 规则场景的场景执行器接口
* IoT 场景联动的执行器接口
*
* @author 芋道源码
*/
public interface IotRuleSceneAction {
// TODO @芋艿groovy 或者 javascript 实现数据的转换可以考虑基于 hutool ScriptUtil
public interface IotSceneRuleAction {
/**
* 执行场景
* 执行场景联动
*
* @param message 消息允许空
* 1. 空的情况定时触发