package cn.iocoder.yudao.module.mes.framework.collect.config;
|
|
import lombok.Data;
|
import org.springframework.boot.context.properties.ConfigurationProperties;
|
import org.springframework.stereotype.Component;
|
|
/**
|
* MES 数采配置
|
*
|
* @author 超级管理员
|
*/
|
@Component
|
@ConfigurationProperties(prefix = "yudao.mes.collect")
|
@Data
|
public class MesCollectProperties {
|
|
/**
|
* 报文格式:注塑机 /YLCY/IMM 协议(报文带 topic 字段,主题末段为报文类型)
|
*/
|
public static final String FORMAT_YLCY = "ylcy";
|
/**
|
* 报文格式:设备网关协议(主题固定 gateway/xxx,报文首层 key 为设备名,值为属性字典)
|
*/
|
public static final String FORMAT_GATEWAY = "gateway";
|
|
private Mqtt mqtt = new Mqtt();
|
private Retention retention = new Retention();
|
|
@Data
|
public static class Mqtt {
|
|
/**
|
* 是否启用数采 MQTT 订阅
|
*/
|
private Boolean enabled = false;
|
/**
|
* Broker 地址,例如 tcp://36.213.90.123:1883
|
*/
|
private String url;
|
private String username;
|
private String password;
|
/**
|
* 客户端 ID 前缀
|
*/
|
private String clientIdPrefix = "mes-collect";
|
/**
|
* 主题前缀,例如 /YLCY/IMM、gateway
|
*/
|
private String topicPrefix = "/YLCY/IMM";
|
/**
|
* 报文格式,见 {@link MesCollectProperties#FORMAT_YLCY}、{@link MesCollectProperties#FORMAT_GATEWAY}
|
*/
|
private String format = FORMAT_YLCY;
|
/**
|
* 显式指定订阅主题,多个用逗号分隔;为空时按 format + topicPrefix 自动推导
|
*/
|
private String topics;
|
private Integer qos = 0;
|
private Integer keepAlive = 65;
|
private Integer connectionTimeout = 10;
|
/**
|
* 报警主题后缀,报文 topic 字段或主题末段命中时按报警处理
|
*/
|
private String alarmTopicSuffix = "wm";
|
|
/**
|
* 是否为设备网关格式报文
|
*/
|
public boolean isGatewayFormat() {
|
return FORMAT_GATEWAY.equalsIgnoreCase(format == null ? "" : format.trim());
|
}
|
|
}
|
|
@Data
|
public static class Retention {
|
|
/**
|
* 原始报文保留天数
|
*/
|
private Integer rawDays = 7;
|
/**
|
* 实时历史保留天数
|
*/
|
private Integer realtimeDays = 30;
|
/**
|
* 单次清理条数
|
*/
|
private Integer batchSize = 50000;
|
|
}
|
|
}
|