package com.zswl.dataservice.domain.iot; import com.zswl.dataservice.domain.base.SuperEntity; import com.zswl.dataservice.model.iot.IotAttribute; import com.zswl.dataservice.model.iot.IotDict; import com.zswl.dataservice.type.*; import io.swagger.v3.oas.annotations.media.Schema; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import org.springframework.data.mongodb.core.mapping.DBRef; import org.springframework.data.mongodb.core.mapping.Document; import java.math.BigDecimal; import java.util.LinkedHashMap; import java.util.List; /** * 物模型 * * @author TRX * @date 2024/6/20 */ @Data @Document @NoArgsConstructor @AllArgsConstructor public class IotMain extends SuperEntity { // ------------------------iotMain 基础字段 start----------------------- @Schema(description = "功能类型,属性 事件 服务") FunctionType functionType; @Schema(description = "功能名称") private String name; @Schema(description = "标识符") private String identifier; @Schema(description = "事件类型") private EventType eventType; @Schema(description = "物模型Topic") private String iotTopic; @Schema(description = "真实的topic") private String realIotTopic; @Schema(description = "所属模版") @DBRef(lazy = true) private IotTemplate iotTemplate; @Schema(description = "是否返回数据") private Boolean isReturnData = Boolean.TRUE; //---------------------------------属性类型的 字段 start ------------------ @Schema(description = "数据类型,number、Boolean、String 等") private DataType dataType; @Schema(description = "是否必须") private Boolean required = Boolean.TRUE; @Schema(description = "元素类型,只有 dataType=Array才使用") private DataType elementType; @Schema(description = "单位名称,如:千克、流明、立方米等...") private String unitName; @Schema(description = "步长") private BigDecimal stepNumber; @Schema(description = "开始值") private BigDecimal start; @Schema(description = "结束值") private BigDecimal end; @Schema(description = "最大的长度,如:类型为字符串时使用") private Integer maxLength; @Schema(description = "属性,参数列表,输入参数") private List childs; @Schema(description = "值的对应,如:0-开") private List dicts; @Schema(description = "属性,输出参数列表,输入参数") private List outChilds; //--------------------------------关联设备时特有的属性 start------------------ @Schema(description = "区分是模版还是设备关联的物模型") private IotDataType iotDataType; @Schema(description = "关联的设备") private String deviceId; @Schema(description = "所属分支code") private String projectCode; @Schema(description = "关联时间") private Long addTime; @Schema(description = "业务处理地址") private String remoteUrl; }