IotMain.java 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. package com.zswl.dataservice.domain.iot;
  2. import com.zswl.dataservice.domain.base.SuperEntity;
  3. import com.zswl.dataservice.model.iot.IotAttribute;
  4. import com.zswl.dataservice.model.iot.IotDict;
  5. import com.zswl.dataservice.type.*;
  6. import io.swagger.v3.oas.annotations.media.Schema;
  7. import lombok.AllArgsConstructor;
  8. import lombok.Data;
  9. import lombok.NoArgsConstructor;
  10. import org.springframework.data.mongodb.core.mapping.DBRef;
  11. import org.springframework.data.mongodb.core.mapping.Document;
  12. import java.math.BigDecimal;
  13. import java.util.LinkedHashMap;
  14. import java.util.List;
  15. /**
  16. * 物模型
  17. *
  18. * @author TRX
  19. * @date 2024/6/20
  20. */
  21. @Data
  22. @Document
  23. @NoArgsConstructor
  24. @AllArgsConstructor
  25. public class IotMain extends SuperEntity {
  26. // ------------------------iotMain 基础字段 start-----------------------
  27. @Schema(description = "功能类型,属性 事件 服务")
  28. FunctionType functionType;
  29. @Schema(description = "功能名称")
  30. private String name;
  31. @Schema(description = "标识符")
  32. private String identifier;
  33. @Schema(description = "事件类型")
  34. private EventType eventType;
  35. @Schema(description = "物模型Topic")
  36. private String iotTopic;
  37. @Schema(description = "真实的topic")
  38. private String realIotTopic;
  39. @Schema(description = "所属模版")
  40. @DBRef(lazy = true)
  41. private IotTemplate iotTemplate;
  42. @Schema(description = "是否返回数据")
  43. private Boolean isReturnData = Boolean.TRUE;
  44. //---------------------------------属性类型的 字段 start ------------------
  45. @Schema(description = "数据类型,number、Boolean、String 等")
  46. private DataType dataType;
  47. @Schema(description = "是否必须")
  48. private Boolean required = Boolean.TRUE;
  49. @Schema(description = "元素类型,只有 dataType=Array才使用")
  50. private DataType elementType;
  51. @Schema(description = "单位名称,如:千克、流明、立方米等...")
  52. private String unitName;
  53. @Schema(description = "步长")
  54. private BigDecimal stepNumber;
  55. @Schema(description = "开始值")
  56. private BigDecimal start;
  57. @Schema(description = "结束值")
  58. private BigDecimal end;
  59. @Schema(description = "最大的长度,如:类型为字符串时使用")
  60. private Integer maxLength;
  61. @Schema(description = "属性,参数列表,输入参数")
  62. private List<IotAttribute> childs;
  63. @Schema(description = "值的对应,如:0-开")
  64. private List<IotDict> dicts;
  65. @Schema(description = "属性,输出参数列表,输入参数")
  66. private List<IotAttribute> outChilds;
  67. //--------------------------------关联设备时特有的属性 start------------------
  68. @Schema(description = "区分是模版还是设备关联的物模型")
  69. private IotDataType iotDataType;
  70. @Schema(description = "关联的设备")
  71. private String deviceId;
  72. @Schema(description = "所属分支code")
  73. private String projectCode;
  74. @Schema(description = "关联时间")
  75. private Long addTime;
  76. @Schema(description = "业务处理地址")
  77. private String remoteUrl;
  78. }