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 ede7a3165..9d2419d84 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 @@ -14,20 +14,20 @@ import org.springframework.stereotype.Component; public class CommonYmlConfig { public static String URL_IOT_BASEURL = "ip端口"; - public static String URL_IOT_SERVER_ATTRIBUTE = "服务器属性"; + public static String URL_IOT_SCOPE_ATTRIBUTE = "作用域属性"; public static String URL_IOT_TELEMETRY = "遥测"; public static String URL_IOT_OPERATE = "操作控制"; public static String URL_IOT_DEVICE = "设备信息"; public String baseurl = ""; - public String serverAttribute = ""; + public String scopeAttribute = ""; public String telemetry = ""; public String operate = ""; public String device = ""; - @Value("${iot.url.serverAttribute}") - public String setServerAttribute(String serverAttribute) { - return URL_IOT_SERVER_ATTRIBUTE = serverAttribute; + @Value("${iot.url.scopeAttribute}") + public String setScopeAttribute(String scopeAttribute) { + return URL_IOT_SCOPE_ATTRIBUTE = scopeAttribute; } @Value("${iot.url.telemetry}") 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 180f273d5..3b6a20b41 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 @@ -5,14 +5,14 @@ import org.dromara.common.core.domain.R; import org.dromara.common.core.exception.ServiceException; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; +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.device.iot.DeviceDto; import org.dromara.web.domain.bo.*; import org.dromara.web.domain.vo.*; -import org.dromara.web.service.IEqAreaService; -import org.dromara.web.service.IEqEquipmentLogService; -import org.dromara.web.service.IEqEquipmentService; -import org.dromara.web.service.IEqShareService; +import org.dromara.web.service.*; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; @@ -39,9 +39,10 @@ public class EqDeviceController extends BaseController { private final IEqEquipmentService eqEquipmentService; private final IEqEquipmentLogService logService; + private final IotService iotService; private final IEqShareService shareService; - private final ISysUserService userService; + /** todo @@ -51,15 +52,12 @@ public class EqDeviceController extends BaseController { */ @GetMapping("/bindDevice") public R bindDevice(EqAppHomeBo bo){ - if (bo.getEquipmentCode() == null) throw new ServiceException("设备编码不能为空"); + String equipmentCode = bo.getEquipmentCode(); + if (equipmentCode == 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)); + + return R.ok(eqEquipmentService.bindDevice(bo)); } /** @@ -88,17 +86,13 @@ public class EqDeviceController extends BaseController { } /** - * 设备详情 - * 传参 设备id - */ - /** todo * 设备状态实时获取 - * @param bo - * @return + * 传参 设备编码 */ @GetMapping("/getDeviceMsg") - public R getDeviceMsg(EqAppHomeBo bo){ + public R getDeviceMsg(EqAppHomeBo bo){ if (bo.getEquipmentCode() == null) throw new ServiceException("设备编码不能为空"); + if (bo.getEquipmentId() == null) throw new ServiceException("设备ID不能为空"); return R.ok(eqEquipmentService.getDeviceMsg(bo)); } diff --git a/ruoyi-admin/src/main/java/org/dromara/web/device/DeviceCtlDto.java b/ruoyi-admin/src/main/java/org/dromara/web/device/iot/DeviceCtlDto.java similarity index 93% rename from ruoyi-admin/src/main/java/org/dromara/web/device/DeviceCtlDto.java rename to ruoyi-admin/src/main/java/org/dromara/web/device/iot/DeviceCtlDto.java index 96302c6f6..21063b428 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/device/DeviceCtlDto.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/device/iot/DeviceCtlDto.java @@ -1,4 +1,4 @@ -package org.dromara.web.device; +package org.dromara.web.device.iot; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/ruoyi-admin/src/main/java/org/dromara/web/device/DeviceMsgDto.java b/ruoyi-admin/src/main/java/org/dromara/web/device/iot/DeviceMsgDto.java similarity index 98% rename from ruoyi-admin/src/main/java/org/dromara/web/device/DeviceMsgDto.java rename to ruoyi-admin/src/main/java/org/dromara/web/device/iot/DeviceMsgDto.java index 8497fdf98..e8ef47f4e 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/device/DeviceMsgDto.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/device/iot/DeviceMsgDto.java @@ -1,4 +1,4 @@ -package org.dromara.web.device; +package org.dromara.web.device.iot; import lombok.Data; @@ -106,7 +106,7 @@ public class DeviceMsgDto { 13.电机维护故障 motorMaintainException 14.设备故障 deviceException */ - private String GarageException; + private Integer GarageException; /** * //倒计时设置时间 @@ -152,7 +152,7 @@ public class DeviceMsgDto { * 1.关闭中 closing * 2.开启中 openning */ - private String WorkState; + private Integer WorkState; /** * //是否已经校准行程 diff --git a/ruoyi-admin/src/main/java/org/dromara/web/device/DeviceServerMsgDto.java b/ruoyi-admin/src/main/java/org/dromara/web/device/iot/DeviceServerMsgDto.java similarity index 85% rename from ruoyi-admin/src/main/java/org/dromara/web/device/DeviceServerMsgDto.java rename to ruoyi-admin/src/main/java/org/dromara/web/device/iot/DeviceServerMsgDto.java index 16c8ff61f..3ef925262 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/device/DeviceServerMsgDto.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/device/iot/DeviceServerMsgDto.java @@ -1,4 +1,4 @@ -package org.dromara.web.device; +package org.dromara.web.device.iot; import lombok.Data; diff --git a/ruoyi-admin/src/main/java/org/dromara/web/domain/vo/EqEquipmentDetailVo.java b/ruoyi-admin/src/main/java/org/dromara/web/domain/vo/EqEquipmentDetailVo.java new file mode 100644 index 000000000..bdf933ef1 --- /dev/null +++ b/ruoyi-admin/src/main/java/org/dromara/web/domain/vo/EqEquipmentDetailVo.java @@ -0,0 +1,88 @@ +package org.dromara.web.domain.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import org.dromara.web.device.iot.DeviceMsgDto; +import org.dromara.web.domain.EqEquipment; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + +/** + * 设备信息视图对象 eq_equipment + * + * @author zzc + * @date 2024-07-19 + */ +@Data +public class EqEquipmentDetailVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @ExcelProperty(value = "主键ID") + private Long equipmentId; + + /** + * 设备编码 + */ + @ExcelProperty(value = "设备编码") + private String equipmentCode; + + /** + * 设备名称 + */ + @ExcelProperty(value = "设备名称") + private String equipmentName; + + /** + * 设备状态 + */ + @ExcelProperty(value = "设备状态 设备的打开状态", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "eq_status_type") + private Integer status; + + /** + * 设备状态 + */ + @ExcelProperty(value = "设备状态 设备的打开状态", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "eq_run_status_type") + private Integer runStatus; + + /** + * 故障状态 + */ + @ExcelProperty(value = "故障状态", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "eq_fault_status") + private Integer faultStatus; + + /** + * 离线状态 + */ + @ExcelProperty(value = "离线状态", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "eq_line_status") + private Integer lineStatus; + + /** + * 绑定时间 + */ + @ExcelProperty(value = "绑定时间") + private Date bindTime; + + /** + * 设备状态 + */ + DeviceMsgDto deviceMsgDto; + + + +} 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 7037a1d47..b894e8e5a 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 @@ -3,6 +3,7 @@ package org.dromara.web.service; import org.dromara.web.domain.bo.EqAppHomeBo; import org.dromara.web.domain.bo.EqDeviceCmdBo; import org.dromara.web.domain.bo.EqDeviceSetBo; +import org.dromara.web.domain.vo.EqEquipmentDetailVo; import org.dromara.web.domain.vo.EqEquipmentStatusVo; import org.dromara.web.domain.vo.EqEquipmentVo; import org.dromara.web.domain.bo.EqEquipmentBo; @@ -79,7 +80,7 @@ public interface IEqEquipmentService { * @param bo * @return */ - EqEquipmentStatusVo getDeviceMsg(EqAppHomeBo bo); + EqEquipmentDetailVo getDeviceMsg(EqAppHomeBo bo); - Boolean bindDevice(EqEquipmentBo eqEquipmentBo); + Boolean bindDevice(EqAppHomeBo bo); } diff --git a/ruoyi-admin/src/main/java/org/dromara/web/service/IotService.java b/ruoyi-admin/src/main/java/org/dromara/web/service/IotService.java index acd262a95..a88a55000 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/service/IotService.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/service/IotService.java @@ -4,16 +4,19 @@ import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpResponse; import cn.hutool.http.HttpUtil; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.github.benmanes.caffeine.cache.Cache; +import org.dromara.common.core.utils.MessageUtils; import org.dromara.web.config.CommonYmlConfig; -import org.dromara.web.device.DeviceCtlDto; -import org.javatuples.Pair; +import org.dromara.web.device.iot.DeviceCtlDto; +import org.dromara.web.device.iot.DeviceMsgDto; +import org.dromara.web.device.iot.DeviceServerMsgDto; +import org.dromara.web.device.iot.DeviceDto; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.HashMap; -import java.util.List; import java.util.Map; /** @@ -51,11 +54,41 @@ public class IotService { * @param deviceCode * @return */ - public String httpTelemetryGetSend(String deviceCode){ + public DeviceMsgDto httpTelemetryGetSend(String deviceCode){ Map map = new HashMap<>(); map.put("entityType","DEVICE"); map.put("entityId",deviceCode); - return getSend(CommonYmlConfig.URL_IOT_TELEMETRY, map); + String send = getSend(CommonYmlConfig.URL_IOT_TELEMETRY, map); + JSONObject jsonObject = JSON.parseObject(send); + //转换 + Map resultMap = new HashMap<>(); + for (String key : jsonObject.keySet()) { + JSONObject valueObj = jsonObject.getJSONArray(key).getJSONObject(0); + String value = valueObj.getString("value"); + resultMap.put(key, value); + } + + DeviceMsgDto result = new DeviceMsgDto(); + + result.setAutomaticDoorClosingSwitch(Boolean.valueOf(resultMap.get("AutomaticDoorClosingSwitch"))); + result.setAutomaticDoorClosingTime(jsonObject.getInteger("AutomaticDoorClosingTime")); + result.setDoorRunningTimesSwitch(jsonObject.getInteger("DoorRunningTimesSwitch")); + result.setResidualCountDown(jsonObject.getInteger("ResidualCountDown")); + result.setDoorRunningTimes(jsonObject.getInteger("DoorRunningTimes")); + result.setGarageException(jsonObject.getInteger("GarageException")); + result.setCountDownConfig(jsonObject.getInteger("CountDownConfig")); + result.setLightSwitch(jsonObject.getBoolean("LightSwitch")); + result.setRemindCloseDoorConfig(jsonObject.getInteger("RemindCloseDoorConfig")); + result.setRemindCloseDoorSwitch(jsonObject.getBoolean("RemindCloseDoorSwitch")); + result.setPartOpenConfig(jsonObject.getInteger("PartOpenConfig")); + result.setPartOpenSwitch(jsonObject.getBoolean("PartOpenSwitch")); + result.setOpenPercentage(jsonObject.getInteger("OpenPercentage")); + result.setWorkState(jsonObject.getInteger("WorkState")); + result.setRouteCorrectStatus(jsonObject.getBoolean("RouteCorrectStatus")); + result.setBounceSensitivity(jsonObject.getInteger("BounceSensitivity")); + result.setIRSwitch(jsonObject.getBoolean("IRSwitch")); + result.setWarningStatus(jsonObject.getInteger("warningStatus")); + return result; } /** @@ -63,11 +96,19 @@ public class IotService { * @param deviceCode * @return */ - public String httpServerGetSend(String deviceCode){ + public DeviceServerMsgDto httpServerGetSend(String deviceCode){ Map map = new HashMap<>(); map.put("entityType","DEVICE"); map.put("entityId",deviceCode); - return getSend(CommonYmlConfig.URL_IOT_SERVER_ATTRIBUTE, map); + map.put("scope","SERVER_SCOPE"); + String send = getSend(CommonYmlConfig.URL_IOT_SCOPE_ATTRIBUTE + "?keys=active", map); + if (send.startsWith("{")) throw new RuntimeException("获取服务端属性信息失败"); + JSONArray jsonObject = JSON.parseArray(send); + String resultString = JSON.toJSONString(jsonObject.get(0)); + Object value = JSON.parseObject(resultString).get("value"); + DeviceServerMsgDto result = new DeviceServerMsgDto(); + result.setLineStatus(Boolean.valueOf(value.toString())); + return result; } @@ -76,10 +117,14 @@ public class IotService { * @param deviceCode * @return */ - public String httpDeviceGetSend(String deviceCode){ + public DeviceDto httpDeviceGetSend(String deviceCode){ Map map = new HashMap<>(); map.put("deviceId",deviceCode); - return getSend(CommonYmlConfig.URL_IOT_DEVICE, map); + String send = getSend(CommonYmlConfig.URL_IOT_DEVICE, map); + JSONObject jsonObject = JSON.parseObject(send); + DeviceDto deviceDto = jsonObject.toJavaObject(DeviceDto.class); + if (deviceDto.getId()==null) throw new RuntimeException(MessageUtils.message("message.fault.device.notfound")); + return deviceDto; } 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 b9c5a73a6..2ba4a45f8 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 @@ -1,9 +1,6 @@ package org.dromara.web.service.impl; import cn.hutool.core.bean.BeanUtil; -import cn.hutool.http.HttpUtil; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONObject; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.TableDataInfo; @@ -12,11 +9,16 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; -import org.dromara.web.config.CommonYmlConfig; +import org.dromara.system.domain.vo.SysUserVo; +import org.dromara.system.service.ISysUserService; import org.dromara.web.device.*; +import org.dromara.web.device.iot.DeviceDto; +import org.dromara.web.device.iot.DeviceMsgDto; +import org.dromara.web.device.iot.DeviceServerMsgDto; import org.dromara.web.domain.bo.EqAppHomeBo; import org.dromara.web.domain.bo.EqDeviceCmdBo; import org.dromara.web.domain.bo.EqDeviceSetBo; +import org.dromara.web.domain.vo.EqEquipmentDetailVo; import org.dromara.web.domain.vo.EqEquipmentStatusVo; import org.dromara.web.service.IotService; import org.springframework.stereotype.Service; @@ -26,6 +28,7 @@ import org.dromara.web.domain.EqEquipment; import org.dromara.web.mapper.EqEquipmentMapper; import org.dromara.web.service.IEqEquipmentService; +import java.util.Date; import java.util.List; import java.util.Map; import java.util.Collection; @@ -44,6 +47,8 @@ public class EqEquipmentServiceImpl implements IEqEquipmentService { private final IotService iotService; + private final ISysUserService userService; + /** * 查询设备信息 * @@ -199,34 +204,59 @@ public class EqEquipmentServiceImpl implements IEqEquipmentService { } @Override - public EqEquipmentStatusVo getDeviceMsg(EqAppHomeBo bo) { - EqEquipmentStatusVo result = new EqEquipmentStatusVo(); + public EqEquipmentDetailVo getDeviceMsg(EqAppHomeBo bo) { + EqEquipmentDetailVo result = new EqEquipmentDetailVo(); result.setEquipmentId(bo.getEquipmentId()); result.setEquipmentCode(bo.getEquipmentCode()); - + EqEquipmentVo eqEquipmentVo = baseMapper.selectVoById(bo.getEquipmentId()); //获取服务属性状态 - String serverMsg = iotService.httpServerGetSend(bo.getEquipmentCode()); - DeviceServerMsgDto serverMsgDto = JSONObject.parseObject(serverMsg, DeviceServerMsgDto.class); - if (!serverMsgDto.getLineStatus()){ - result.setLineStatus(0);//离线 - return result; - } + DeviceServerMsgDto serverMsg = iotService.httpServerGetSend(bo.getEquipmentCode()); + result.setLineStatus(serverMsg.getLineStatus()?1:0); //获取遥测数据 - String telemetryMsg = iotService.httpTelemetryGetSend(bo.getEquipmentCode()); - DeviceMsgDto deviceMsgDto = JSONObject.parseObject(telemetryMsg, DeviceMsgDto.class); - BeanUtil.copyProperties(deviceMsgDto,result,true); + DeviceMsgDto telemetryMsg = iotService.httpTelemetryGetSend(bo.getEquipmentCode()); + result.setStatus(telemetryMsg.getOpenPercentage()); + result.setRunStatus(telemetryMsg.getGarageException()==10?telemetryMsg.getWorkState():telemetryMsg.getGarageException()); + result.setEquipmentName(eqEquipmentVo.getEquipmentName()); + result.setBindTime(eqEquipmentVo.getBindTime()); + result.setDeviceMsgDto(telemetryMsg); return result; } @Override - public Boolean bindDevice(EqEquipmentBo eqEquipmentBo) { - String equipmentCode = eqEquipmentBo.getEquipmentCode(); - String result = iotService.httpDeviceGetSend(equipmentCode); - //判断是否获取到信息 - //获取到信息之后 获取设备状态类信息 + public Boolean bindDevice(EqAppHomeBo bo) { - //封装 调用设备数据进行保存 - return null; + String equipmentCode = bo.getEquipmentCode(); + + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq( EqEquipment::getEquipmentCode,equipmentCode); + EqEquipmentVo eqEquipmentVo = baseMapper.selectVoOne(lqw); + if (eqEquipmentVo!=null) throw new RuntimeException("设备已绑定"); + + DeviceServerMsgDto deviceServerMsgDto = iotService.httpServerGetSend(equipmentCode); + if (!deviceServerMsgDto.getLineStatus()) throw new RuntimeException("设备未连接 无法绑定"); + + //从iot平台设置用户绑定 并获取设备信息 + DeviceDto deviceDto = iotService.httpDeviceGetSend(equipmentCode);//无信息会抛异常 无需判断 + EqEquipmentBo eqEquipmentBo = new EqEquipmentBo(); + eqEquipmentBo.setEquipmentCode(equipmentCode); + eqEquipmentBo.setUserId(bo.getUserId()); + eqEquipmentBo.setAreaId(bo.getAreaId()); + eqEquipmentBo.setEquipmentName(deviceDto.getName());//默认使用iot的设备名称 + eqEquipmentBo.setType(0); + eqEquipmentBo.setBindTime(new Date()); + SysUserVo sysUserVo = userService.selectUserById(bo.getUserId()); + eqEquipmentBo.setUserName(sysUserVo.getUserName()); + eqEquipmentBo.setNickName(sysUserVo.getNickName()); + DeviceMsgDto deviceMsgDto = iotService.httpTelemetryGetSend(equipmentCode); + + eqEquipmentBo.setStatus(deviceMsgDto.getOpenPercentage());//使用半开作为状态值 + eqEquipmentBo.setFaultStatus(Integer.valueOf(deviceMsgDto.getGarageException())); + + //判断是否获取到信息 无信息会抛异常 无需判断 + EqEquipment add = MapstructUtils.convert(eqEquipmentBo, EqEquipment.class); + validEntityBeforeSave(add); + baseMapper.insert(add); + return true; } diff --git a/ruoyi-admin/src/main/resources/application-dev.yml b/ruoyi-admin/src/main/resources/application-dev.yml index e8af2d1ce..f6682888b 100644 --- a/ruoyi-admin/src/main/resources/application-dev.yml +++ b/ruoyi-admin/src/main/resources/application-dev.yml @@ -260,7 +260,7 @@ justauth: iot: baseurl: http://118.89.86.111:8080 url: - serverAttribute: /api/plugins/telemetry/{entityType}/{entityId}/values/attributes + scopeAttribute: /api/plugins/telemetry/{entityType}/{entityId}/values/attributes/{scope} telemetry: /api/plugins/telemetry/{entityType}/{entityId}/values/timeseries operate: /api/plugins/rpc/oneway/{deviceId} device: /api/device/{deviceId} diff --git a/ruoyi-admin/src/main/resources/i18n/messages_en_US.properties b/ruoyi-admin/src/main/resources/i18n/messages_en_US.properties index 30f49c1b5..47450b5b9 100644 --- a/ruoyi-admin/src/main/resources/i18n/messages_en_US.properties +++ b/ruoyi-admin/src/main/resources/i18n/messages_en_US.properties @@ -80,3 +80,6 @@ route.detail16= 5. Press and hold the Down key to close the button and release route.detail17= Observation: The door runs in the direction of closing, and stops when the door reaches the closed position route.detail18= Automatic check: route.detail19= 6. Press the "SET" button again + + +message.fault.device.notfound = Device not found diff --git a/ruoyi-admin/src/main/resources/i18n/messages_zh_CN.properties b/ruoyi-admin/src/main/resources/i18n/messages_zh_CN.properties index da03d518b..07e107ceb 100644 --- a/ruoyi-admin/src/main/resources/i18n/messages_zh_CN.properties +++ b/ruoyi-admin/src/main/resources/i18n/messages_zh_CN.properties @@ -79,3 +79,5 @@ route.detail16=5.长按“向下”键至关闭位置后松手 route.detail17=观察:门向关门方向运行,当门达到关闭位置后停止 route.detail18=自动校验: route.detail19=6.再次按下"SET"键 + +message.fault.device.notfound = 设备不存在 diff --git a/ruoyi-admin/src/test/java/org/dromara/test/IotHttpTest.java b/ruoyi-admin/src/test/java/org/dromara/test/IotHttpTest.java index 3c8b6e137..8c66bba06 100644 --- a/ruoyi-admin/src/test/java/org/dromara/test/IotHttpTest.java +++ b/ruoyi-admin/src/test/java/org/dromara/test/IotHttpTest.java @@ -6,18 +6,15 @@ import cn.hutool.http.HttpUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import org.dromara.web.config.CommonYmlConfig; -import org.dromara.web.device.DeviceCtlDto; +import org.dromara.web.device.iot.DeviceMsgDto; import org.dromara.web.service.IotService; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; -import org.thingsboard.rest.client.RestClient; import javax.annotation.Resource; import java.util.HashMap; import java.util.Map; -import java.util.Optional; -import java.util.UUID; /** * 断言单元测试案例 @@ -68,73 +65,21 @@ public class IotHttpTest { @Test public void testMethod(){ +// String deviceCode = "4cd72020-2b11-11ef-890f-e7ba493dc999"; String deviceCode = "4cd72020-2b11-11ef-890f-e7ba493dc999"; String cmd = "{\"method\":\"zzctest\",\"params\":{\"switch\":\"on\"}}"; - String result = httpCtlPostSend(deviceCode,cmd); - System.out.println(result); - - String result2 = httpTelemetryGetSend(deviceCode); +// String result = iotService.httpCtlPostSend(deviceCode,cmd); +// System.out.println(result); +// + DeviceMsgDto result2 = iotService.httpTelemetryGetSend(deviceCode); System.out.println(result2); - String result3 = httpDeviceGetSend(deviceCode); - System.out.println(result3); +// DeviceDto result3 = iotService.httpDeviceGetSend(deviceCode); +// System.out.println(result3); - String result4 = httpServerGetSend(deviceCode); - System.out.println(result4); - } - - - /** - * 设备控制指令 - * @param deviceCode - * @param cmd - * @return - */ - public String httpCtlPostSend(String deviceCode,String cmd){ - DeviceCtlDto dto = new DeviceCtlDto(); - DeviceCtlDto.Params params = new DeviceCtlDto.Params(); - params.setCommand(cmd); - dto.setParams(params); - Map paramMap = new HashMap<>(); - paramMap.put("deviceId",deviceCode); - return iotService.postSendWithParam(CommonYmlConfig.URL_IOT_OPERATE, paramMap, JSON.toJSONString(dto)); - } - - /** - * 获取设备信息 - * @param deviceCode - * @return - */ - public String httpTelemetryGetSend(String deviceCode){ - Map map = new HashMap<>(); - map.put("entityType","DEVICE"); - map.put("entityId",deviceCode); - return iotService.getSend(CommonYmlConfig.URL_IOT_TELEMETRY, map); - } - - /** - * 获取服务端属性信息 - * @param deviceCode - * @return - */ - public String httpServerGetSend(String deviceCode){ - Map map = new HashMap<>(); - map.put("entityType","DEVICE"); - map.put("entityId",deviceCode); - return iotService.getSend(CommonYmlConfig.URL_IOT_SERVER_ATTRIBUTE, map); - } - - - /** - * 获取设备信息 - * @param deviceCode - * @return - */ - public String httpDeviceGetSend(String deviceCode){ - Map map = new HashMap<>(); - map.put("deviceId",deviceCode); - return iotService.getSend(CommonYmlConfig.URL_IOT_DEVICE, map); +// String result4 = iotService.httpServerGetSend(deviceCode); +// System.out.println(result4); }