From 5fb71dd092a572e326291ebd18e34328063031db Mon Sep 17 00:00:00 2001 From: chenyouting <514333061@qq.com> Date: Mon, 2 Mar 2026 15:35:19 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=815?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bjq/AppDeviceHBY100JController.java | 114 +----------------- .../bjq/WebDeviceHBY100JController.java | 106 ++++++++++++++++ .../dto/HBY100JForceAlarmActivationDto.java | 23 ++++ .../domain/dto/HBY100JLightAdjustmentDto.java | 31 +++++ .../domain/dto/HBY100JStrobeFrequencyDto.java | 16 +++ .../domain/dto/HBY100JStrobeModeDto.java | 21 ++++ .../domain/dto/HBY100JUpdateVoiceDto.java | 10 ++ .../domain/dto/HBY100JUpdateVolumeDto.java | 16 +++ .../domain/dto/HBY100JVoiceBroadcastDto.java | 17 +++ .../device/DeviceHBY100JBizService.java | 45 ++----- 10 files changed, 254 insertions(+), 145 deletions(-) create mode 100644 fys-admin/src/main/java/com/fuyuanshen/web/controller/device/bjq/WebDeviceHBY100JController.java create mode 100644 fys-admin/src/main/java/com/fuyuanshen/web/controller/device/domain/dto/HBY100JForceAlarmActivationDto.java create mode 100644 fys-admin/src/main/java/com/fuyuanshen/web/controller/device/domain/dto/HBY100JLightAdjustmentDto.java create mode 100644 fys-admin/src/main/java/com/fuyuanshen/web/controller/device/domain/dto/HBY100JStrobeFrequencyDto.java create mode 100644 fys-admin/src/main/java/com/fuyuanshen/web/controller/device/domain/dto/HBY100JStrobeModeDto.java create mode 100644 fys-admin/src/main/java/com/fuyuanshen/web/controller/device/domain/dto/HBY100JUpdateVoiceDto.java create mode 100644 fys-admin/src/main/java/com/fuyuanshen/web/controller/device/domain/dto/HBY100JUpdateVolumeDto.java create mode 100644 fys-admin/src/main/java/com/fuyuanshen/web/controller/device/domain/dto/HBY100JVoiceBroadcastDto.java diff --git a/fys-admin/src/main/java/com/fuyuanshen/app/controller/device/bjq/AppDeviceHBY100JController.java b/fys-admin/src/main/java/com/fuyuanshen/app/controller/device/bjq/AppDeviceHBY100JController.java index 49963e3d..193abd9a 100644 --- a/fys-admin/src/main/java/com/fuyuanshen/app/controller/device/bjq/AppDeviceHBY100JController.java +++ b/fys-admin/src/main/java/com/fuyuanshen/app/controller/device/bjq/AppDeviceHBY100JController.java @@ -3,15 +3,13 @@ package com.fuyuanshen.app.controller.device.bjq; import com.fuyuanshen.app.domain.vo.AppDeviceHBY100JDetailVo; import com.fuyuanshen.common.core.domain.R; import com.fuyuanshen.common.web.core.BaseController; +import com.fuyuanshen.web.controller.device.domain.dto.*; import com.fuyuanshen.web.service.device.DeviceHBY100JBizService; import jakarta.validation.constraints.NotNull; -import lombok.Data; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; -import java.util.List; - /** * HBY100J设备控制类 */ @@ -66,20 +64,6 @@ public class AppDeviceHBY100JController extends BaseController { } - @Data - public static class HBY100JVoiceBroadcastDto { - - /** - * 设备ID - */ - Long deviceId; - /** - * 0 关闭, 1开启 - */ - private Integer voiceBroadcast; - - } - /** * 爆闪模式 */ @@ -117,100 +101,4 @@ public class AppDeviceHBY100JController extends BaseController { deviceHBY100JBizService.updateVolume(params); return R.ok(); } - - @Data - public static class HBY100JUpdateVoiceDto { - - private Long id; - - } - - @Data - public static class HBY100JForceAlarmActivationDto { - - /** - * 设备ID - */ - List deviceIds; - /** - * 0 关闭, 1开启 - */ - private Integer voiceStrobeAlarm; - /** - * 0 公安,1消防,2应急,3交警,4 市政,5 铁路,6 医疗,7语音 - */ - private Integer mode; - - } - - @Data - public static class HBY100JUpdateVolumeDto{ - /** - * 设备ID - */ - private Long deviceId; - /** - * "volume": 1-100(app端可根据需求把40作为低音量, 70作为中音量,100作为高音量) - */ - private Integer volume; - - } - - @Data - public static class HBY100JStrobeFrequencyDto{ - /** - * 设备ID - */ - private Long deviceId; - /** - * "frequency": 1-12 - */ - private Integer frequency; - - } - - @Data - public static class HBY100JLightAdjustmentDto{ - /** - * 设备ID - */ - private Long deviceId; - - /** - * 亮度值0-100 - */ - private Integer brightness; -// /** -// * 红色LED亮度值0-100 -// */ -// private Integer red; -// -// /** -// * 蓝色LED亮度值0-100 -// */ -// private Integer blue; -// -// /** -// * 黄色LED亮度值0-100 -// */ -// private Integer yellow; - - } - @Data - public static class HBY100JStrobeModeDto{ - - /** - * 设备ID - */ - private Long deviceId; - /** - * 0 关闭 1 开启 - */ - private Integer enable; - - /** - * 0 红色爆闪,1 蓝色爆闪,2 黄色爆闪,3,红色顺时针旋转爆闪,4黄色顺时针旋转爆闪,5,红蓝顺时针旋转爆闪,6 红蓝交替爆闪 - */ - private Integer mode; - } } diff --git a/fys-admin/src/main/java/com/fuyuanshen/web/controller/device/bjq/WebDeviceHBY100JController.java b/fys-admin/src/main/java/com/fuyuanshen/web/controller/device/bjq/WebDeviceHBY100JController.java new file mode 100644 index 00000000..bb340f73 --- /dev/null +++ b/fys-admin/src/main/java/com/fuyuanshen/web/controller/device/bjq/WebDeviceHBY100JController.java @@ -0,0 +1,106 @@ +package com.fuyuanshen.web.controller.device.bjq; + +import com.fuyuanshen.app.domain.vo.AppDeviceHBY100JDetailVo; +import com.fuyuanshen.common.core.domain.R; +import com.fuyuanshen.common.web.core.BaseController; +import com.fuyuanshen.web.controller.device.domain.dto.*; +import com.fuyuanshen.web.service.device.DeviceHBY100JBizService; +import jakarta.validation.constraints.NotNull; +import lombok.RequiredArgsConstructor; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +/** + * HBY100J设备控制类 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/api/hby100j/device") +public class WebDeviceHBY100JController extends BaseController { + + private final DeviceHBY100JBizService deviceHBY100JBizService; + + + /** + * 获取设备详细信息 + * + * @param id 主键 + */ + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(deviceHBY100JBizService.getInfo(id)); + } + + /** + * 更新语音 + */ + @PostMapping("/updateVoice") + public R updateVoice(@RequestBody HBY100JUpdateVoiceDto dto) { + deviceHBY100JBizService.updateVoice(dto); + return R.ok(); + } + + /** + * 强制报警 + * + */ + + @PostMapping("/forceAlarmActivation") + public R forceAlarmActivation(@RequestBody HBY100JForceAlarmActivationDto bo) { + deviceHBY100JBizService.forceAlarmActivation(bo); + return R.ok(); + } + + /** + * 语音播报 + * + */ + @PostMapping("/voiceBroadcast") + public R voiceBroadcast(@RequestBody HBY100JVoiceBroadcastDto params) { + deviceHBY100JBizService.voiceBroadcast(params); + return R.ok(); + } + + + + + /** + * 爆闪模式 + */ + @PostMapping("/strobeMode") + public R strobeMode(@RequestBody HBY100JStrobeModeDto params) { + deviceHBY100JBizService.strobeMode(params); + return R.ok(); + } + + + /** + * 灯光调节 + */ + @PostMapping("/lightAdjustment") + public R lightAdjustment(@RequestBody HBY100JLightAdjustmentDto params) { + deviceHBY100JBizService.lightAdjustment(params); + return R.ok(); + } + + + /** + * 爆闪频率 + */ + @PostMapping("/strobeFrequency") + public R strobeFrequency(@RequestBody HBY100JStrobeFrequencyDto params) { + deviceHBY100JBizService.strobeFrequency(params); + return R.ok(); + } + + /** + * 修改音量 + */ + @PostMapping("/updateVolume") + public R updateVolume(@RequestBody HBY100JUpdateVolumeDto params) { + deviceHBY100JBizService.updateVolume(params); + return R.ok(); + } +} diff --git a/fys-admin/src/main/java/com/fuyuanshen/web/controller/device/domain/dto/HBY100JForceAlarmActivationDto.java b/fys-admin/src/main/java/com/fuyuanshen/web/controller/device/domain/dto/HBY100JForceAlarmActivationDto.java new file mode 100644 index 00000000..2ac0e282 --- /dev/null +++ b/fys-admin/src/main/java/com/fuyuanshen/web/controller/device/domain/dto/HBY100JForceAlarmActivationDto.java @@ -0,0 +1,23 @@ +package com.fuyuanshen.web.controller.device.domain.dto; + +import lombok.Data; + +import java.util.List; + +@Data +public class HBY100JForceAlarmActivationDto { + + /** + * 设备ID + */ + List deviceIds; + /** + * 0 关闭, 1开启 + */ + private Integer voiceStrobeAlarm; + /** + * 0 公安,1消防,2应急,3交警,4 市政,5 铁路,6 医疗,7语音 + */ + private Integer mode; + +} \ No newline at end of file diff --git a/fys-admin/src/main/java/com/fuyuanshen/web/controller/device/domain/dto/HBY100JLightAdjustmentDto.java b/fys-admin/src/main/java/com/fuyuanshen/web/controller/device/domain/dto/HBY100JLightAdjustmentDto.java new file mode 100644 index 00000000..0487309e --- /dev/null +++ b/fys-admin/src/main/java/com/fuyuanshen/web/controller/device/domain/dto/HBY100JLightAdjustmentDto.java @@ -0,0 +1,31 @@ +package com.fuyuanshen.web.controller.device.domain.dto; + +import lombok.Data; + +@Data +public class HBY100JLightAdjustmentDto{ + /** + * 设备ID + */ + private Long deviceId; + + /** + * 亮度值0-100 + */ + private Integer brightness; +// /** +// * 红色LED亮度值0-100 +// */ +// private Integer red; +// +// /** +// * 蓝色LED亮度值0-100 +// */ +// private Integer blue; +// +// /** +// * 黄色LED亮度值0-100 +// */ +// private Integer yellow; + +} \ No newline at end of file diff --git a/fys-admin/src/main/java/com/fuyuanshen/web/controller/device/domain/dto/HBY100JStrobeFrequencyDto.java b/fys-admin/src/main/java/com/fuyuanshen/web/controller/device/domain/dto/HBY100JStrobeFrequencyDto.java new file mode 100644 index 00000000..714bc34b --- /dev/null +++ b/fys-admin/src/main/java/com/fuyuanshen/web/controller/device/domain/dto/HBY100JStrobeFrequencyDto.java @@ -0,0 +1,16 @@ +package com.fuyuanshen.web.controller.device.domain.dto; + +import lombok.Data; + +@Data +public class HBY100JStrobeFrequencyDto{ + /** + * 设备ID + */ + private Long deviceId; + /** + * "frequency": 1-12 + */ + private Integer frequency; + +} \ No newline at end of file diff --git a/fys-admin/src/main/java/com/fuyuanshen/web/controller/device/domain/dto/HBY100JStrobeModeDto.java b/fys-admin/src/main/java/com/fuyuanshen/web/controller/device/domain/dto/HBY100JStrobeModeDto.java new file mode 100644 index 00000000..568e5261 --- /dev/null +++ b/fys-admin/src/main/java/com/fuyuanshen/web/controller/device/domain/dto/HBY100JStrobeModeDto.java @@ -0,0 +1,21 @@ +package com.fuyuanshen.web.controller.device.domain.dto; + +import lombok.Data; + +@Data +public class HBY100JStrobeModeDto{ + + /** + * 设备ID + */ + private Long deviceId; + /** + * 0 关闭 1 开启 + */ + private Integer enable; + + /** + * 0 红色爆闪,1 蓝色爆闪,2 黄色爆闪,3,红色顺时针旋转爆闪,4黄色顺时针旋转爆闪,5,红蓝顺时针旋转爆闪,6 红蓝交替爆闪 + */ + private Integer mode; +} \ No newline at end of file diff --git a/fys-admin/src/main/java/com/fuyuanshen/web/controller/device/domain/dto/HBY100JUpdateVoiceDto.java b/fys-admin/src/main/java/com/fuyuanshen/web/controller/device/domain/dto/HBY100JUpdateVoiceDto.java new file mode 100644 index 00000000..43ff37f2 --- /dev/null +++ b/fys-admin/src/main/java/com/fuyuanshen/web/controller/device/domain/dto/HBY100JUpdateVoiceDto.java @@ -0,0 +1,10 @@ +package com.fuyuanshen.web.controller.device.domain.dto; + +import lombok.Data; + +@Data +public class HBY100JUpdateVoiceDto { + + private Long id; + +} \ No newline at end of file diff --git a/fys-admin/src/main/java/com/fuyuanshen/web/controller/device/domain/dto/HBY100JUpdateVolumeDto.java b/fys-admin/src/main/java/com/fuyuanshen/web/controller/device/domain/dto/HBY100JUpdateVolumeDto.java new file mode 100644 index 00000000..59a704bc --- /dev/null +++ b/fys-admin/src/main/java/com/fuyuanshen/web/controller/device/domain/dto/HBY100JUpdateVolumeDto.java @@ -0,0 +1,16 @@ +package com.fuyuanshen.web.controller.device.domain.dto; + +import lombok.Data; + +@Data +public class HBY100JUpdateVolumeDto{ + /** + * 设备ID + */ + private Long deviceId; + /** + * "volume": 1-100(app端可根据需求把40作为低音量, 70作为中音量,100作为高音量) + */ + private Integer volume; + +} \ No newline at end of file diff --git a/fys-admin/src/main/java/com/fuyuanshen/web/controller/device/domain/dto/HBY100JVoiceBroadcastDto.java b/fys-admin/src/main/java/com/fuyuanshen/web/controller/device/domain/dto/HBY100JVoiceBroadcastDto.java new file mode 100644 index 00000000..a18b013f --- /dev/null +++ b/fys-admin/src/main/java/com/fuyuanshen/web/controller/device/domain/dto/HBY100JVoiceBroadcastDto.java @@ -0,0 +1,17 @@ +package com.fuyuanshen.web.controller.device.domain.dto; + +import lombok.Data; + +@Data +public class HBY100JVoiceBroadcastDto { + + /** + * 设备ID + */ + Long deviceId; + /** + * 0 关闭, 1开启 + */ + private Integer voiceBroadcast; + +} \ No newline at end of file diff --git a/fys-admin/src/main/java/com/fuyuanshen/web/service/device/DeviceHBY100JBizService.java b/fys-admin/src/main/java/com/fuyuanshen/web/service/device/DeviceHBY100JBizService.java index cd4ae07d..e40ab77c 100644 --- a/fys-admin/src/main/java/com/fuyuanshen/web/service/device/DeviceHBY100JBizService.java +++ b/fys-admin/src/main/java/com/fuyuanshen/web/service/device/DeviceHBY100JBizService.java @@ -1,34 +1,20 @@ package com.fuyuanshen.web.service.device; -import cn.hutool.core.bean.BeanUtil; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; -import com.fuyuanshen.app.controller.device.bjq.AppDeviceHBY100JController; -import com.fuyuanshen.app.domain.AppPersonnelInfo; -import com.fuyuanshen.app.domain.AppPersonnelInfoRecords; -import com.fuyuanshen.app.domain.bo.AppPersonnelInfoBo; -import com.fuyuanshen.app.domain.dto.AppDeviceLogoUploadDto; -import com.fuyuanshen.app.domain.dto.DeviceInstructDto; -import com.fuyuanshen.app.domain.vo.AppDeviceDetailVo; import com.fuyuanshen.app.domain.vo.AppDeviceHBY100JDetailVo; -import com.fuyuanshen.app.domain.vo.AppPersonnelInfoVo; -import com.fuyuanshen.app.mapper.AppPersonnelInfoMapper; -import com.fuyuanshen.app.mapper.AppPersonnelInfoRecordsMapper; import com.fuyuanshen.common.core.constant.GlobalConstants; import com.fuyuanshen.common.core.domain.model.LoginUser; import com.fuyuanshen.common.core.exception.ServiceException; -import com.fuyuanshen.common.core.utils.*; +import com.fuyuanshen.common.core.utils.StringUtils; import com.fuyuanshen.common.redis.utils.RedisUtils; -import com.fuyuanshen.common.satoken.utils.AppLoginHelper; import com.fuyuanshen.common.satoken.utils.LoginHelper; import com.fuyuanshen.equipment.domain.AppBusinessFile; import com.fuyuanshen.equipment.domain.Device; import com.fuyuanshen.equipment.domain.DeviceType; -import com.fuyuanshen.equipment.domain.dto.AppDeviceSendMsgBo; import com.fuyuanshen.equipment.domain.vo.AppBusinessFileVo; -import com.fuyuanshen.equipment.enums.LightModeEnum; import com.fuyuanshen.equipment.mapper.AppBusinessFileMapper; import com.fuyuanshen.equipment.mapper.DeviceLogMapper; import com.fuyuanshen.equipment.mapper.DeviceMapper; @@ -39,24 +25,19 @@ import com.fuyuanshen.global.mqtt.constants.DeviceRedisKeyConstants; import com.fuyuanshen.global.mqtt.constants.MqttConstants; import com.fuyuanshen.global.mqtt.rule.hby100j.domin.*; import com.fuyuanshen.global.mqtt.utils.GenerateIdUtil; -import com.fuyuanshen.system.domain.SysOss; import com.fuyuanshen.system.domain.vo.SysOssVo; import com.fuyuanshen.system.mapper.SysOssMapper; +import com.fuyuanshen.web.controller.device.domain.dto.*; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.core.io.ClassPathResource; import org.springframework.stereotype.Service; -import org.springframework.web.multipart.MultipartFile; -import java.io.InputStream; -import java.time.Duration; -import java.util.*; +import java.util.Date; +import java.util.List; import static com.fuyuanshen.common.core.constant.GlobalConstants.GLOBAL_REDIS_KEY; -import static com.fuyuanshen.common.core.utils.Bitmap80x12Generator.buildArr; -import static com.fuyuanshen.common.core.utils.Bitmap80x12Generator.generateFixedBitmapData; -import static com.fuyuanshen.common.core.utils.ImageToCArrayConverter.convertHexToDecimal; -import static com.fuyuanshen.global.mqtt.constants.DeviceRedisKeyConstants.*; +import static com.fuyuanshen.global.mqtt.constants.DeviceRedisKeyConstants.DEVICE_KEY_PREFIX; +import static com.fuyuanshen.global.mqtt.constants.DeviceRedisKeyConstants.DEVICE_LOCATION_KEY_PREFIX; @Slf4j @@ -248,7 +229,7 @@ public class DeviceHBY100JBizService { } - public void forceAlarmActivation(AppDeviceHBY100JController.HBY100JForceAlarmActivationDto bo) { + public void forceAlarmActivation(HBY100JForceAlarmActivationDto bo) { List deviceIds = bo.getDeviceIds(); if (deviceIds == null || deviceIds.isEmpty()) { throw new ServiceException("请选择设备"); @@ -278,7 +259,7 @@ public class DeviceHBY100JBizService { } - public void updateVoice(AppDeviceHBY100JController.HBY100JUpdateVoiceDto dto) { + public void updateVoice(HBY100JUpdateVoiceDto dto) { AppBusinessFileVo appBusinessFileVo = appBusinessFileMapper.selectVoById(dto.getId()); if(appBusinessFileVo == null){ throw new ServiceException("文件不存在"); @@ -319,7 +300,7 @@ public class DeviceHBY100JBizService { return MqttConstants.GLOBAL_PUB_KEY2 +tenantId + "/" + DEVICE_TYPE + deviceImei; } - public void strobeMode(AppDeviceHBY100JController.HBY100JStrobeModeDto params) { + public void strobeMode(HBY100JStrobeModeDto params) { Device deviceObj = deviceMapper.selectById(params.getDeviceId()); if (getDeviceStatus(deviceObj.getDeviceImei())) { throw new ServiceException(deviceObj.getDeviceName() + ",设备已断开连接"); @@ -337,7 +318,7 @@ public class DeviceHBY100JBizService { mqttGateway.sendMsgToMqtt(buildMqttTopic(deviceObj.getDeviceImei()), 1, JSON.toJSONString(request)); } - public void lightAdjustment(AppDeviceHBY100JController.HBY100JLightAdjustmentDto params) { + public void lightAdjustment(HBY100JLightAdjustmentDto params) { log.info("HBY100J灯光调节,请求参数:{}", params); Device deviceObj = deviceMapper.selectById(params.getDeviceId()); if (deviceObj == null) { @@ -360,7 +341,7 @@ public class DeviceHBY100JBizService { mqttGateway.sendMsgToMqtt(buildMqttTopic(deviceObj.getDeviceImei()), 1, JSON.toJSONString(request)); } - public void strobeFrequency(AppDeviceHBY100JController.HBY100JStrobeFrequencyDto params) { + public void strobeFrequency(HBY100JStrobeFrequencyDto params) { Device deviceObj = deviceMapper.selectById(params.getDeviceId()); if (deviceObj == null) { throw new ServiceException("设备不存在"); @@ -380,7 +361,7 @@ public class DeviceHBY100JBizService { mqttGateway.sendMsgToMqtt(buildMqttTopic(deviceObj.getDeviceImei()), 1, JSON.toJSONString(request)); } - public void updateVolume(AppDeviceHBY100JController.HBY100JUpdateVolumeDto params) { + public void updateVolume(HBY100JUpdateVolumeDto params) { Device deviceObj = deviceMapper.selectById(params.getDeviceId()); if (deviceObj == null) { throw new ServiceException("设备不存在"); @@ -400,7 +381,7 @@ public class DeviceHBY100JBizService { mqttGateway.sendMsgToMqtt(buildMqttTopic(deviceObj.getDeviceImei()), 1, JSON.toJSONString(request)); } - public void voiceBroadcast(AppDeviceHBY100JController.HBY100JVoiceBroadcastDto params) { + public void voiceBroadcast(HBY100JVoiceBroadcastDto params) { Device deviceObj = deviceMapper.selectById(params.getDeviceId()); if (deviceObj == null) { throw new ServiceException("设备不存在");