diff --git a/nursing-unit-common/src/main/java/com/nu/dto/IotCameraInfoMQDto.java b/nursing-unit-common/src/main/java/com/nu/dto/IotCameraInfoMQDto.java index d7e67563..9b23ac6e 100644 --- a/nursing-unit-common/src/main/java/com/nu/dto/IotCameraInfoMQDto.java +++ b/nursing-unit-common/src/main/java/com/nu/dto/IotCameraInfoMQDto.java @@ -84,4 +84,6 @@ public class IotCameraInfoMQDto{ private String maintainStatus; /**日志ID*/ private String logId; + private String dimension;//设备维度 + private String channel;//通道号 } diff --git a/nursing-unit-common/src/main/java/com/nu/dto/IotElectricityMeterMQDto.java b/nursing-unit-common/src/main/java/com/nu/dto/IotElectricityMeterMQDto.java index 4a05209a..42247f63 100644 --- a/nursing-unit-common/src/main/java/com/nu/dto/IotElectricityMeterMQDto.java +++ b/nursing-unit-common/src/main/java/com/nu/dto/IotElectricityMeterMQDto.java @@ -38,4 +38,5 @@ public class IotElectricityMeterMQDto{ private String maintainStatus; /**日志ID*/ private String logId; + private String dimension;//设备维度 } \ No newline at end of file diff --git a/nursing-unit-common/src/main/java/com/nu/dto/IotHumidDeviceMQDto.java b/nursing-unit-common/src/main/java/com/nu/dto/IotHumidDeviceMQDto.java index 90fc6620..b653462b 100644 --- a/nursing-unit-common/src/main/java/com/nu/dto/IotHumidDeviceMQDto.java +++ b/nursing-unit-common/src/main/java/com/nu/dto/IotHumidDeviceMQDto.java @@ -72,4 +72,5 @@ public class IotHumidDeviceMQDto{ private String maintainStatus; /**日志ID*/ private String logId; + private String dimension;//设备维度 } \ No newline at end of file diff --git a/nursing-unit-common/src/main/java/com/nu/dto/IotWaterMeterMQDto.java b/nursing-unit-common/src/main/java/com/nu/dto/IotWaterMeterMQDto.java index 85a9e30f..6b0ad94d 100644 --- a/nursing-unit-common/src/main/java/com/nu/dto/IotWaterMeterMQDto.java +++ b/nursing-unit-common/src/main/java/com/nu/dto/IotWaterMeterMQDto.java @@ -42,4 +42,5 @@ public class IotWaterMeterMQDto{ private String maintainStatus; /**日志ID*/ private String logId; + private String dimension;//设备维度 } \ No newline at end of file diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/controller/CameraInfoController.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/controller/CameraInfoController.java index 30fbdb59..8be582d9 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/controller/CameraInfoController.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/controller/CameraInfoController.java @@ -148,6 +148,17 @@ public class CameraInfoController extends JeecgController getDeviceDetails(CameraInfo cameraInfo) { + return service.getDeviceDetails(cameraInfo); + } + /** * 获取画面基本信息 * @@ -170,6 +181,28 @@ public class CameraInfoController extends JeecgController getImageSwitch(@RequestBody Map map) { + return service.getImageSwitch(map); + } + + /** + * 设置画面操作信息 + * + * @param map + * @return + */ + @PostMapping(value = "/setImageSwitch") + public Result setImageSwitch(@RequestBody Map map) { + return service.setImageSwitch(map); + } + /** * 获取OSD能力集 * diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/entity/CameraInfo.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/entity/CameraInfo.java index b96bc03d..f3244556 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/entity/CameraInfo.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/entity/CameraInfo.java @@ -320,4 +320,6 @@ public class CameraInfo implements Serializable { /**维修状态*/ private String maintainStatus; private String remarks;//备注 + private String channel;//通道号 + private String dimension;//设备维度 } diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/mapper/xml/CameraInfoMapper.xml b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/mapper/xml/CameraInfoMapper.xml index 53ea502b..b77e1725 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/mapper/xml/CameraInfoMapper.xml +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/mapper/xml/CameraInfoMapper.xml @@ -29,7 +29,9 @@ a.nu_id as nuId, b.nu_name as nuName, ifnull(c.multitrans,0) as multitrans, - a.sn,a.maintain_status + a.sn, + a.maintain_status, + a.channel from nu_iot_tplink_camera a left join nu_base_info b on a.nu_id = b.nu_id left join nu_iot_tplink_camera_capability c on a.device_index = c.device_index @@ -88,7 +90,8 @@ protocol as protocol, record_plan_id as recordPlanId, a.nu_id as nuId, - b.nu_name as nuName + b.nu_name as nuName, + a.channel from nu_iot_tplink_camera a left join nu_base_info b on a.nu_id = b.nu_id @@ -127,7 +130,8 @@ system_type as systemType, protocol as protocol, record_plan_id as recordPlanId, - nu_id as nuId + nu_id as nuId, + a.channel from nu_iot_tplink_camera a @@ -170,7 +174,8 @@ system_type as systemType, protocol as protocol, a.nu_id as nuId, - b.nu_name as nuName + b.nu_name as nuName, + a.channel from nu_iot_tplink_camera a left join nu_base_info b on a.nu_id = b.nu_id where device_index = #{deviceIndex} @@ -262,7 +267,10 @@ UPDATE nu_iot_tplink_camera - SET device_status = #{deviceStatus} + + device_status = #{deviceStatus}, + channel = #{channel}, + where device_index = #{deviceIndex} diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/service/ICameraInfoService.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/service/ICameraInfoService.java index 741f2e89..a123aa9d 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/service/ICameraInfoService.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/service/ICameraInfoService.java @@ -28,8 +28,11 @@ public interface ICameraInfoService extends IService { void syncCapability(String deviceIndex,String jsonResponse); Result syncProjectIpcDevice(CameraInfo cameraInfo); Result getIpcCapability(CameraInfo cameraInfo); + Result getDeviceDetails(CameraInfo cameraInfo); Result getImageCommon(Map map); Result setImageCommon(Map map); + Result getImageSwitch(Map map); + Result setImageSwitch(Map map); Result getOsdCapability(Map map); Result getOsd(Map map); Result setOsd(Map map); diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/service/impl/CameraInfoServiceImpl.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/service/impl/CameraInfoServiceImpl.java index 7a0fae9a..7a60d8bc 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/service/impl/CameraInfoServiceImpl.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/service/impl/CameraInfoServiceImpl.java @@ -404,6 +404,42 @@ public class CameraInfoServiceImpl extends ServiceImpl getDeviceDetails(CameraInfo ci){ + String id = ci.getDeviceIndex(); + StringBuffer paramsSb = new StringBuffer(); + paramsSb.append("{"); + paramsSb.append("\"deviceIndex\"").append(":").append("\"").append(id).append("\""); + paramsSb.append("}"); + String ipcCapabilityRes = tumsApi.getDeviceDetails(paramsSb.toString()); + JSONObject jsonObject = new JSONObject(ipcCapabilityRes); + if(jsonObject.getInt("error_code").equals(0)){ + JSONObject json = (JSONObject)jsonObject.get("result"); + JSONObject extend = json.getJSONObject("extendInfo"); + String channel = extend.getStr("channel"); + try { + String deviceIndex = json.getStr("deviceIndex"); + String deviceStatus = json.getStr("deviceStatus"); + CameraInfo cameraInfo = new CameraInfo(); + cameraInfo.setDeviceIndex(deviceIndex); + cameraInfo.setDeviceStatus(deviceStatus); + cameraInfo.setChannel(channel); + baseMapper.updateDeviceStatusByDevId(cameraInfo); + if(deviceStatus.equals("0")){ + return Result.error("设备已离线"); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + return Result.OK(); + } + /** * 获取画面基本信息 * @@ -534,6 +570,152 @@ public class CameraInfoServiceImpl extends ServiceImpl getImageSwitch(Map map){ + String id = map.get("deviceIndex").toString(); + String type = map.get("type").toString(); + CameraInfo cameraInfo = new CameraInfo(); + cameraInfo.setDeviceIndex(id); + cameraInfo = baseMapper.getByDeviceId(cameraInfo); + String parentId = cameraInfo.getParentId(); + if(!parentId.equals("0")){ + id = parentId; + type = "chn"+cameraInfo.getChannel()+"_switch"; + } + StringBuffer sb = new StringBuffer(); + sb.append("{"); + sb.append("\"devId\"").append(":").append("\"").append(id).append("\"").append(","); + sb.append("\"param\"").append(":").append("{"); + sb.append("\"method\"").append(":").append("\"get\"").append(","); + sb.append("\"image\"").append(":").append("{"); + sb.append("\"name\"").append(":").append("\"").append(type).append("\""); + sb.append("}"); + sb.append("}"); + sb.append("}"); + String addPreviewRes = tumsApi.passthrough(sb.toString()); + JSONObject jsonObject = new JSONObject(addPreviewRes); + String errCode = jsonObject.getStr("error_code"); + if("0".equals(errCode)){ + JSONObject result = (JSONObject)jsonObject.get("result"); + JSONObject responseData = (JSONObject)result.get("responseData"); + String errorCode = responseData.getStr("error_code"); + if("0".equals(errorCode)){ + JSONObject image = (JSONObject)responseData.get("image"); + JSONObject data = (JSONObject)image.get(type); + updateDeviceStatus(id,errorCode); + return Result.OK(data); + }else{ + String errorMsg = ""; + try{ + ErrorCode errorVo = errorCodeService.getByCode(errorCode); + errorMsg = errorVo.getErrorMsg(); + }catch (Exception e){ + errorMsg = errorCode; + } + updateDeviceStatus(id,errorCode); + log.info("getImageCommon:{}",errorMsg); + return Result.error(errorMsg); + } + }else{ + String errMsg = ""; + try{ + ErrorCode errVo = errorCodeService.getByCode(errCode); + errMsg = errVo.getErrorMsg(); + }catch (Exception e){ + errMsg = errCode; + } + updateDeviceStatus(id,errCode); + log.info("getImageCommon:{}",errMsg); + return Result.error(errMsg); + } + } + + /** + * 设置画面操作信息 + * + * @param map + * @return + * @throws Exception + */ + @Override + public Result setImageSwitch(Map map){ + String id = map.get("deviceIndex").toString(); + String type = map.get("type").toString(); + CameraInfo cameraInfo = new CameraInfo(); + cameraInfo.setDeviceIndex(id); + cameraInfo = baseMapper.getByDeviceId(cameraInfo); + String parentId = cameraInfo.getParentId(); + if(!parentId.equals("0")){ + id = parentId; + type = "chn"+cameraInfo.getChannel()+"_switch"; + } + Map paramMap = (Map)map.get("param"); + StringBuffer sb = new StringBuffer(); + sb.append("{"); + sb.append("\"devId\"").append(":").append("\"").append(id).append("\"").append(","); + sb.append("\"param\"").append(":").append("{"); + sb.append("\"method\"").append(":").append("\"set\"").append(","); + sb.append("\"image\"").append(":").append("{"); + sb.append("\"").append(type).append("\"").append(":").append("{"); + //类属性+类值 + StringBuffer csb = new StringBuffer(); + Set keys = paramMap.keySet(); + // 遍历键的集合并打印每个键 + for (String key : keys) { + String value = paramMap.get(key).toString(); + csb.append("\"").append(key).append("\"").append(":").append("\"").append(value).append("\"").append(","); + } + String cstr = csb.toString(); + if(cstr.length()>0){ + cstr = cstr.substring(0,cstr.length()-1); + } + sb.append(cstr); + sb.append("}"); + sb.append("}"); + sb.append("}"); + sb.append("}"); + String addPreviewRes = tumsApi.passthrough(sb.toString()); + JSONObject jsonObject = new JSONObject(addPreviewRes); + String errCode = jsonObject.getStr("error_code"); + if("0".equals(errCode)){ + JSONObject result = (JSONObject)jsonObject.get("result"); + JSONObject responseData = (JSONObject)result.get("responseData"); + String errorCode = responseData.getStr("error_code"); + if("0".equals(errorCode)){ + return Result.OK("设置成功"); + }else{ + String errorMsg = ""; + try{ + ErrorCode errorVo = errorCodeService.getByCode(errorCode); + errorMsg = errorVo.getErrorMsg(); + }catch (Exception e){ + errorMsg = errorCode; + } + updateDeviceStatus(id,errorCode); + log.info("setImageCommon:{}",errorMsg); + return Result.error(errorMsg); + } + }else{ + String errMsg = ""; + try{ + ErrorCode errVo = errorCodeService.getByCode(errCode); + errMsg = errVo.getErrorMsg(); + }catch (Exception e){ + errMsg = errCode; + } + updateDeviceStatus(id,errCode); + log.info("setImageCommon:{}",errMsg); + return Result.error(errMsg); + } + } + /** * 获取OSD能力集参数 * @@ -2630,9 +2812,23 @@ public class CameraInfoServiceImpl extends ServiceImpl map = new HashMap<>(); map.put("error", "0"); map.put("error", "0"); + String id = cameraInfo.getVideoDevId(); + cameraInfo.setDeviceIndex(id); + CameraInfo entity = baseMapper.getByDeviceId(cameraInfo); + String parentId = entity.getParentId(); + String channelId = "0"; + if(!parentId.equals("0")){ + channelId = entity.getChannel(); + } StringBuffer sb = new StringBuffer(); sb.append("{"); - sb.append("\"devId\"").append(":").append("\"").append(cameraInfo.getVideoDevId()).append("\""); + if(!parentId.equals("0")){ + sb.append("\"devId\"").append(":").append("\"").append(id).append("\""); + }else{ + sb.append("\"devId\"").append(":").append("\"").append(parentId).append("\","); + sb.append("\"videoDeviceIndex\"").append(":").append("\"").append(id).append("\","); + sb.append("\"channelId\"").append(":").append(channelId); + } sb.append("}"); String res = tumsApi.getMultitransUrl(sb.toString()); JSONObject jsonObject = new JSONObject(res); @@ -2642,12 +2838,12 @@ public class CameraInfoServiceImpl extends ServiceImpl 10) { diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/enums/ApiEnum.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/enums/ApiEnum.java index 08c0377f..39e74f21 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/enums/ApiEnum.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/enums/ApiEnum.java @@ -41,6 +41,7 @@ public enum ApiEnum { QUERY_ALARM_LOG("/tums/logManager/v2/queryAlarmLog","查询告警日志列表"), QUERY_UNREAD_ALARM_MSG("/tums/logManager/v2/queryUnreadAlarmMsg","查询未读告警日志列表"), IPC_GET_IPC_CAPABILITY("/tums/deviceManager/v1/getIpcCapability","获取ipc能力集"), + GET_DEVICE_DETAILS("/tums/deviceManager/v2/getDeviceDetails","获取设备详情信息"), IPC_PASSTHROUGH("/tums/devConfig/v1/passthrough","设备配置信息"), IPC_ADD_PREVIEW_CHN("/tums/preview/v1/addPreviewChn","添加预览通道"), diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/utils/TumsApi.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/utils/TumsApi.java index 49940bee..2542f6fd 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/utils/TumsApi.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/utils/TumsApi.java @@ -410,6 +410,19 @@ public class TumsApi { return jsonResponse; } + /** + * 获取设备详情信息 + * @param jsonRequest + * @return + */ + public String getDeviceDetails(String jsonRequest){ + this.createTumsClient(); + log.info("getDeviceDetails:request:{}",jsonRequest); + String jsonResponse = tumsClient.request(jsonRequest, ApiEnum.GET_DEVICE_DETAILS.getValue()); + log.info("getDeviceDetails:response:{}",jsonResponse); + return jsonResponse; + } + /** * 设备配置信息 * @param jsonRequest diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/electricity/entity/ElectricityMeter.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/electricity/entity/ElectricityMeter.java index f69afa04..e84c9a67 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/electricity/entity/ElectricityMeter.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/electricity/entity/ElectricityMeter.java @@ -80,5 +80,6 @@ public class ElectricityMeter implements Serializable { private String oldDepartName;//原机构名称 /**维修状态*/ private String maintainStatus; + private String dimension;//设备维度 } \ No newline at end of file diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/entity/WaterMeter.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/entity/WaterMeter.java index d8d890c5..e0dfb6b1 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/entity/WaterMeter.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/entity/WaterMeter.java @@ -79,4 +79,5 @@ public class WaterMeter implements Serializable { private String departServerUrl;//机构服务地址 /**维修状态*/ private String maintainStatus; + private String dimension;//设备维度 } \ No newline at end of file diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/entity/HumidDevice.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/entity/HumidDevice.java index 58f221c9..6335802e 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/entity/HumidDevice.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/entity/HumidDevice.java @@ -118,4 +118,5 @@ public class HumidDevice implements Serializable { private String oldDepartName;//原机构名称 /**维修状态*/ private String maintainStatus; + private String dimension;//设备维度 } \ No newline at end of file