From 3074cfeb0416bd72b0ce245025e48c735897c55e Mon Sep 17 00:00:00 2001 From: zhangzhicheng Date: Fri, 26 Jul 2024 11:10:17 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E6=8E=A7=E5=88=B6=E8=AE=BE?= =?UTF-8?q?=E5=A4=87=E7=8A=B6=E6=80=81=E7=AD=89=E5=A4=A7=E8=87=B4=E6=A1=86?= =?UTF-8?q?=E6=9E=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dromara/web/config/CommonYmlConfig.java | 11 ++- .../controller/app/EqDeviceController.java | 26 ++++- .../web/controller/app/EqHomeController.java | 24 +---- .../org/dromara/web/device/iot/DeviceDto.java | 94 +++++++++++++++++++ .../org/dromara/web/domain/EqEquipment.java | 8 ++ .../dromara/web/domain/bo/EqEquipmentBo.java | 3 + .../dromara/web/domain/vo/EqEquipmentVo.java | 6 ++ .../web/service/IEqEquipmentService.java | 2 + .../service/impl/EqEquipmentServiceImpl.java | 20 ++++ .../src/main/resources/application-dev.yml | 1 + 10 files changed, 171 insertions(+), 24 deletions(-) create mode 100644 ruoyi-admin/src/main/java/org/dromara/web/device/iot/DeviceDto.java diff --git a/ruoyi-admin/src/main/java/org/dromara/web/config/CommonYmlConfig.java b/ruoyi-admin/src/main/java/org/dromara/web/config/CommonYmlConfig.java index f18648780..ede7a3165 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/config/CommonYmlConfig.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/config/CommonYmlConfig.java @@ -13,15 +13,17 @@ import org.springframework.stereotype.Component; @Component public class CommonYmlConfig { + public static String URL_IOT_BASEURL = "ip端口"; public static String URL_IOT_SERVER_ATTRIBUTE = "服务器属性"; public static String URL_IOT_TELEMETRY = "遥测"; public static String URL_IOT_OPERATE = "操作控制"; - public static String URL_IOT_BASEURL = "ip端口"; + public static String URL_IOT_DEVICE = "设备信息"; + public String baseurl = ""; public String serverAttribute = ""; public String telemetry = ""; public String operate = ""; - public String baseurl = ""; + public String device = ""; @Value("${iot.url.serverAttribute}") public String setServerAttribute(String serverAttribute) { @@ -42,4 +44,9 @@ public class CommonYmlConfig { public String setBase(String baseurl) { return URL_IOT_BASEURL = baseurl; } + + @Value("${iot.url.device}") + public String setDevice(String device) { + return URL_IOT_DEVICE = device; + } } diff --git a/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqDeviceController.java b/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqDeviceController.java index e1b1038ae..180f273d5 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqDeviceController.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqDeviceController.java @@ -44,9 +44,26 @@ public class EqDeviceController extends BaseController { private final ISysUserService userService; - /** todo - * 控制设备 0关 1停 2开 + * 添加设备 + * @param bo 传参用户id 分布id 设备编码 + * @return + */ + @GetMapping("/bindDevice") + public R bindDevice(EqAppHomeBo bo){ + if (bo.getEquipmentCode() == null) throw new ServiceException("设备编码不能为空"); + if (bo.getUserId() == null) throw new ServiceException("用户ID不能为空"); + if (bo.getAreaId() == null) throw new ServiceException("分布ID不能为空"); + //从iot平台设置用户绑定 并获取设备信息 + EqEquipmentBo eqEquipmentBo = new EqEquipmentBo(); + eqEquipmentBo.setEquipmentCode(bo.getEquipmentCode()); + eqEquipmentBo.setUserId(bo.getUserId()); + eqEquipmentBo.setAreaId(bo.getAreaId()); + return R.ok(eqEquipmentService.bindDevice(eqEquipmentBo)); + } + + /** + * 控制设备 门 灯光 控制 * 传参设备编码 */ @GetMapping("/operate") @@ -57,6 +74,11 @@ public class EqDeviceController extends BaseController { return R.ok(eqEquipmentService.operate(bo)); } + /** + * 设备设置 门 灯光 红外 弹力 提醒等设置 + * @param bo + * @return + */ @GetMapping("/setting") public R setting(EqDeviceSetBo bo){ if (bo.getEquipmentCode() == null) throw new ServiceException("设备编码不能为空"); diff --git a/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqHomeController.java b/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqHomeController.java index b222d7db2..29f261a2e 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqHomeController.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqHomeController.java @@ -11,6 +11,7 @@ import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.common.web.core.BaseController; import org.dromara.system.domain.vo.SysUserVo; import org.dromara.system.service.ISysUserService; +import org.dromara.web.config.CommonYmlConfig; import org.dromara.web.domain.bo.*; import org.dromara.web.domain.vo.*; import org.dromara.web.service.*; @@ -84,7 +85,7 @@ public class EqHomeController extends BaseController { } /** - * 设备详情 + * 设备详情 (暂时无用) * 传参 设备id */ @GetMapping("/info") @@ -93,24 +94,7 @@ public class EqHomeController extends BaseController { return R.ok(eqEquipmentService.queryById(bo.getEquipmentId())); } - /** todo - * 添加设备 - * @param bo 传参用户id 分布id 设备编码 - * @return - */ - @GetMapping("/add") - public R add(EqAppHomeBo bo){ - if (bo.getEquipmentCode() == null) throw new ServiceException("设备编码不能为空"); - if (bo.getUserId() == null) throw new ServiceException("用户ID不能为空"); - if (bo.getAreaId() == null) throw new ServiceException("分布ID不能为空"); - //从iot平台设置用户绑定 并获取设备信息 - EqEquipmentBo eqEquipmentBo = new EqEquipmentBo(); - eqEquipmentBo.setEquipmentCode(bo.getEquipmentCode()); -// eqEquipmentBo.setUserId(bo.getUserId()); -// eqEquipmentBo.setAreaId(bo.getAreaId()); - //TODO 未完 - return R.ok(eqEquipmentService.insertByBo(eqEquipmentBo)); - } + /** * @@ -129,7 +113,7 @@ public class EqHomeController extends BaseController { /** - * 密码已验证 + * 密码验证 * @param bo * @return */ diff --git a/ruoyi-admin/src/main/java/org/dromara/web/device/iot/DeviceDto.java b/ruoyi-admin/src/main/java/org/dromara/web/device/iot/DeviceDto.java new file mode 100644 index 000000000..c83ef6052 --- /dev/null +++ b/ruoyi-admin/src/main/java/org/dromara/web/device/iot/DeviceDto.java @@ -0,0 +1,94 @@ +package org.dromara.web.device.iot; + +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * @ClassName : DeviceDto + * @Author : ZZC + * @Date : 2024/7/26 10:59 + * @Discription : 设备信息 对应接口/api/device/{deviceId} + **/ +@NoArgsConstructor +@Data +public class DeviceDto implements Serializable { + + private Id id; + private Long createdTime; + private TenantId tenantId; + private CustomerId customerId; + private String name; + private String type; + private String label; + private DeviceProfileId deviceProfileId; + private DeviceData deviceData; + private FirmwareId firmwareId; + private SoftwareId softwareId; + private AdditionalInfo additionalInfo; + + @NoArgsConstructor + @Data + public static class Id { + private String id; + private String entityType; + } + + @NoArgsConstructor + @Data + public static class TenantId { + private String id; + private String entityType; + } + + @NoArgsConstructor + @Data + public static class CustomerId { + private String id; + private String entityType; + } + + @NoArgsConstructor + @Data + public static class DeviceProfileId { + private String id; + private String entityType; + } + + @NoArgsConstructor + @Data + public static class DeviceData { + private Configuration configuration; + private TransportConfiguration transportConfiguration; + + @NoArgsConstructor + @Data + public static class Configuration { + } + + @NoArgsConstructor + @Data + public static class TransportConfiguration { + } + } + + @NoArgsConstructor + @Data + public static class FirmwareId { + private String id; + private String entityType; + } + + @NoArgsConstructor + @Data + public static class SoftwareId { + private String id; + private String entityType; + } + + @NoArgsConstructor + @Data + public static class AdditionalInfo { + } +} diff --git a/ruoyi-admin/src/main/java/org/dromara/web/domain/EqEquipment.java b/ruoyi-admin/src/main/java/org/dromara/web/domain/EqEquipment.java index 90c38501c..650ae7171 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/domain/EqEquipment.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/domain/EqEquipment.java @@ -1,5 +1,8 @@ package org.dromara.web.domain; +import jakarta.validation.constraints.NotNull; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; import org.dromara.common.mybatis.core.domain.BaseEntity; import com.baomidou.mybatisplus.annotation.*; import lombok.Data; @@ -39,6 +42,11 @@ public class EqEquipment extends BaseEntity { */ private Integer type; + /** + * 设备所属用户id + */ + private Long userId; + /** * 登录账号 */ diff --git a/ruoyi-admin/src/main/java/org/dromara/web/domain/bo/EqEquipmentBo.java b/ruoyi-admin/src/main/java/org/dromara/web/domain/bo/EqEquipmentBo.java index 9e238e79a..cb88377d1 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/domain/bo/EqEquipmentBo.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/domain/bo/EqEquipmentBo.java @@ -40,6 +40,9 @@ public class EqEquipmentBo extends BaseEntity { @NotNull(message = "设备类型不能为空", groups = { AddGroup.class, EditGroup.class }) private Integer type; + @NotNull(message = "设备所属用户id", groups = { AddGroup.class, EditGroup.class }) + private Long userId; + /** * 登录账号 */ diff --git a/ruoyi-admin/src/main/java/org/dromara/web/domain/vo/EqEquipmentVo.java b/ruoyi-admin/src/main/java/org/dromara/web/domain/vo/EqEquipmentVo.java index d0d870595..e1f0885db 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/domain/vo/EqEquipmentVo.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/domain/vo/EqEquipmentVo.java @@ -49,6 +49,12 @@ public class EqEquipmentVo implements Serializable { @ExcelDictFormat(dictType = "eq_equipment_type") private Integer type; + /** + * 登录账号 + */ + @ExcelProperty(value = "登录账号ID") + private String userId; + /** * 登录账号 */ diff --git a/ruoyi-admin/src/main/java/org/dromara/web/service/IEqEquipmentService.java b/ruoyi-admin/src/main/java/org/dromara/web/service/IEqEquipmentService.java index 091357aa3..7037a1d47 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/service/IEqEquipmentService.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/service/IEqEquipmentService.java @@ -80,4 +80,6 @@ public interface IEqEquipmentService { * @return */ EqEquipmentStatusVo getDeviceMsg(EqAppHomeBo bo); + + Boolean bindDevice(EqEquipmentBo eqEquipmentBo); } diff --git a/ruoyi-admin/src/main/java/org/dromara/web/service/impl/EqEquipmentServiceImpl.java b/ruoyi-admin/src/main/java/org/dromara/web/service/impl/EqEquipmentServiceImpl.java index 631022ed9..bc7dfe56c 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/service/impl/EqEquipmentServiceImpl.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/service/impl/EqEquipmentServiceImpl.java @@ -215,6 +215,13 @@ public class EqEquipmentServiceImpl implements IEqEquipmentService { return result; } + @Override + public Boolean bindDevice(EqEquipmentBo eqEquipmentBo) { + String equipmentCode = eqEquipmentBo.getEquipmentCode(); + + return null; + } + /** * 设备控制指令 @@ -260,4 +267,17 @@ public class EqEquipmentServiceImpl implements IEqEquipmentService { return HttpUtil.get(url); } + + /** + * 获取设备信息 + * @param deviceCode + * @return + */ + private String httpDeviceGetSend(String deviceCode){ + String url = CommonYmlConfig.URL_IOT_BASEURL+CommonYmlConfig.URL_IOT_DEVICE; + url = url.replace("{deviceId}",deviceCode) ; + // todo 登录相关 token + return HttpUtil.get(url); + } + } diff --git a/ruoyi-admin/src/main/resources/application-dev.yml b/ruoyi-admin/src/main/resources/application-dev.yml index b59624712..5f684c275 100644 --- a/ruoyi-admin/src/main/resources/application-dev.yml +++ b/ruoyi-admin/src/main/resources/application-dev.yml @@ -263,3 +263,4 @@ iot: serverAttribute: /api/plugins/telemetry/{entityType}/{entityId}/values/attributes telemetry: /api/plugins/telemetry/{entityType}/{entityId}/values/timeseries operate: /api/plugins/rpc/oneway/{deviceId} + device: /api/device/{deviceId}