From aaf142ca6773e811dca1e81192658b80ef2f447d Mon Sep 17 00:00:00 2001 From: chenyouting <514333061@qq.com> Date: Fri, 19 Dec 2025 17:55:48 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fuyuanshen/app/service/AppDeviceShareService.java | 2 +- .../equipment/controller/TrackServiceController.java | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/fys-admin/src/main/java/com/fuyuanshen/app/service/AppDeviceShareService.java b/fys-admin/src/main/java/com/fuyuanshen/app/service/AppDeviceShareService.java index d49ad945..17470eff 100644 --- a/fys-admin/src/main/java/com/fuyuanshen/app/service/AppDeviceShareService.java +++ b/fys-admin/src/main/java/com/fuyuanshen/app/service/AppDeviceShareService.java @@ -227,7 +227,7 @@ public class AppDeviceShareService { appDeviceShare.setPermission(bo.getPermission()); appDeviceShare.setCreateBy(userId); return appDeviceShareMapper.insert(appDeviceShare); - } +} } public int remove(Long[] ids) { diff --git a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/controller/TrackServiceController.java b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/controller/TrackServiceController.java index d831d537..1f61e954 100644 --- a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/controller/TrackServiceController.java +++ b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/controller/TrackServiceController.java @@ -44,7 +44,7 @@ public class TrackServiceController extends BaseController { /** * 查询轨迹服务列表 */ - @SaCheckPermission("equipment:trackService:list") +// @SaCheckPermission("equipment:trackService:list") @GetMapping("/list") public TableDataInfo list(TrackServiceBo bo, PageQuery pageQuery) { return trackServiceService.queryPageList(bo, pageQuery); @@ -53,7 +53,7 @@ public class TrackServiceController extends BaseController { /** * 轨迹服务列表 */ - @SaCheckPermission("equipment:trackService:export") +// @SaCheckPermission("equipment:trackService:export") @Log(title = "轨迹服务", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(TrackServiceBo bo, HttpServletResponse response) { @@ -75,7 +75,7 @@ public class TrackServiceController extends BaseController { /** * 新增轨迹服务 */ - @SaCheckPermission("equipment:trackService:add") +// @SaCheckPermission("equipment:trackService:add") @Log(title = "轨迹服务", businessType = BusinessType.INSERT) @PostMapping(value = "/add") public R add(@Validated(AddGroup.class) @RequestBody TrackServiceBo bo) { @@ -85,7 +85,7 @@ public class TrackServiceController extends BaseController { /** * 修改轨迹服务 */ - @SaCheckPermission("equipment:trackService:edit") +// @SaCheckPermission("equipment:trackService:edit") @Log(title = "轨迹服务", businessType = BusinessType.UPDATE) @PostMapping(value = "/update") public R edit(@Validated(EditGroup.class) @RequestBody TrackServiceBo bo) { @@ -97,7 +97,7 @@ public class TrackServiceController extends BaseController { * * @param ids 主键串 */ - @SaCheckPermission("equipment:trackService:remove") +// @SaCheckPermission("equipment:trackService:remove") @Log(title = "轨迹服务", businessType = BusinessType.DELETE) @DeleteMapping(value = "/delete") public R remove(@NotEmpty(message = "主键不能为空") From af42a2199c6305383625b888a4c403b98ce084f5 Mon Sep 17 00:00:00 2001 From: daiyongfei <974332738@qq.com> Date: Mon, 22 Dec 2025 15:09:07 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E7=94=A8=E6=88=B7ID?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E8=8F=9C=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fuyuanshen/common/core/constant/SystemConstants.java | 5 +++++ .../system/controller/system/SysMenuController.java | 2 ++ .../system/service/impl/SysMenuServiceImpl.java | 8 ++++++++ 3 files changed, 15 insertions(+) diff --git a/fys-common/fys-common-core/src/main/java/com/fuyuanshen/common/core/constant/SystemConstants.java b/fys-common/fys-common-core/src/main/java/com/fuyuanshen/common/core/constant/SystemConstants.java index 51b8df7a..8509117d 100644 --- a/fys-common/fys-common-core/src/main/java/com/fuyuanshen/common/core/constant/SystemConstants.java +++ b/fys-common/fys-common-core/src/main/java/com/fuyuanshen/common/core/constant/SystemConstants.java @@ -77,4 +77,9 @@ public interface SystemConstants { */ String ROOT_DEPT_ANCESTORS = "0"; + /** + * 菜单ID + */ + public static final Long RESTRICTED_MENU_ID = 102L; + } diff --git a/fys-modules/fys-system/src/main/java/com/fuyuanshen/system/controller/system/SysMenuController.java b/fys-modules/fys-system/src/main/java/com/fuyuanshen/system/controller/system/SysMenuController.java index 9f2a0d6d..cec662af 100644 --- a/fys-modules/fys-system/src/main/java/com/fuyuanshen/system/controller/system/SysMenuController.java +++ b/fys-modules/fys-system/src/main/java/com/fuyuanshen/system/controller/system/SysMenuController.java @@ -36,6 +36,7 @@ public class SysMenuController extends BaseController { private final ISysMenuService menuService; + /** * 获取路由信息 * @@ -47,6 +48,7 @@ public class SysMenuController extends BaseController { return R.ok(menuService.buildMenus(menus)); } + /** * 获取菜单列表 */ diff --git a/fys-modules/fys-system/src/main/java/com/fuyuanshen/system/service/impl/SysMenuServiceImpl.java b/fys-modules/fys-system/src/main/java/com/fuyuanshen/system/service/impl/SysMenuServiceImpl.java index 3fb894a5..72ad63b8 100644 --- a/fys-modules/fys-system/src/main/java/com/fuyuanshen/system/service/impl/SysMenuServiceImpl.java +++ b/fys-modules/fys-system/src/main/java/com/fuyuanshen/system/service/impl/SysMenuServiceImpl.java @@ -31,6 +31,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.*; +import java.util.stream.Collectors; /** * 菜单 业务层处理 @@ -141,10 +142,17 @@ public class SysMenuServiceImpl implements ISysMenuService { menus = baseMapper.selectMenuTreeAll(); } else { menus = baseMapper.selectMenuTreeByUserId(userId); + // 如果不是超级管理员且不是租户管理员,则过滤掉受限制的菜单 + // if (!LoginHelper.isAdmin()) { + menus = menus.stream() + .filter(menu -> !SystemConstants.RESTRICTED_MENU_ID.equals(menu.getMenuId())) + .collect(Collectors.toList()); + // } } return getChildPerms(menus, 0); } + /** * 根据角色ID查询菜单树信息 * From 6a058318f24e6985cc9487587372d8ddc0078046 Mon Sep 17 00:00:00 2001 From: chenyouting <514333061@qq.com> Date: Fri, 26 Dec 2025 15:54:14 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E6=98=BE=E7=A4=BA=E9=97=AE=E9=A2=98=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/mapper/equipment/DeviceLogMapper.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fys-modules/fys-equipment/src/main/resources/mapper/equipment/DeviceLogMapper.xml b/fys-modules/fys-equipment/src/main/resources/mapper/equipment/DeviceLogMapper.xml index e0946b8a..d0d9fffb 100644 --- a/fys-modules/fys-equipment/src/main/resources/mapper/equipment/DeviceLogMapper.xml +++ b/fys-modules/fys-equipment/src/main/resources/mapper/equipment/DeviceLogMapper.xml @@ -13,8 +13,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" a.content, a.create_time AS createTime FROM - device_log a left join device b on a.device_id = b.id - left join device_type c on b.device_type = c.id + device_log a inner join device b on a.device_id = b.id + inner join device_type c on b.device_type = c.id WHERE 1 = 1 AND c.id = #{bo.deviceType} From d7c4d22de357e644e6d4a781d6050bccd0a2638c Mon Sep 17 00:00:00 2001 From: daiyongfei <974332738@qq.com> Date: Fri, 26 Dec 2025 16:21:33 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E8=AF=A5=E8=AE=BE=E5=A4=87=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E4=B8=8B=E5=B7=B2=E6=9C=89=E8=AE=BE=E5=A4=87=EF=BC=8C?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E4=BF=AE=E6=94=B9=E8=AE=BE=E5=A4=87=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E5=90=8D=E7=A7=B0!!!?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mqtt/config/MqttOutboundConfiguration.java | 5 ++++- .../mqtt/constants/DeviceRedisKeyConstants.java | 2 ++ .../constants/LightingCommandTypeConstants.java | 1 - .../global/mqtt/rule/bjq/BjqAlarmRule.java | 4 ++-- .../mqtt/rule/bjq/BjqLaserModeSettingsRule.java | 1 - .../global/mqtt/rule/bjq/BjqModeRule.java | 1 + .../mqtt/rule/bjq/BjqPersonnelInfoDataRule.java | 15 +-------------- .../global/queue/MqttMessageConsumer.java | 4 +++- .../fuyuanshen/global/queue/OnlineStatusTask.java | 3 +++ .../device/DeviceControlCenterController.java | 2 ++ .../controller/DeviceTypeController.java | 1 - .../service/impl/DeviceTypeServiceImpl.java | 11 +---------- 12 files changed, 19 insertions(+), 31 deletions(-) diff --git a/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/config/MqttOutboundConfiguration.java b/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/config/MqttOutboundConfiguration.java index b717acdb..84a56082 100644 --- a/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/config/MqttOutboundConfiguration.java +++ b/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/config/MqttOutboundConfiguration.java @@ -15,11 +15,14 @@ import org.springframework.messaging.MessageHandler; @Configuration @Slf4j public class MqttOutboundConfiguration { + @Autowired private MqttPropertiesConfig mqttPropertiesConfig; + @Autowired private MqttPahoClientFactory mqttPahoClientFactory; - + + // 消息通道 @Bean public MessageChannel mqttOutboundChannel(){ diff --git a/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/constants/DeviceRedisKeyConstants.java b/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/constants/DeviceRedisKeyConstants.java index 99f9b5d6..e5f5e5b2 100644 --- a/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/constants/DeviceRedisKeyConstants.java +++ b/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/constants/DeviceRedisKeyConstants.java @@ -1,6 +1,7 @@ package com.fuyuanshen.global.mqtt.constants; public class DeviceRedisKeyConstants { + public static final String DEVICE_KEY_PREFIX = "device:"; // 设备上报状态 public static final String DEVICE_STATUS_KEY_PREFIX = ":status"; @@ -52,4 +53,5 @@ public class DeviceRedisKeyConstants { * 告警信息 */ public static final String DEVICE_ALARM_MESSAGE_KEY_PREFIX = ":alarmMessage"; + } diff --git a/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/constants/LightingCommandTypeConstants.java b/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/constants/LightingCommandTypeConstants.java index de4e6b3f..392315f3 100644 --- a/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/constants/LightingCommandTypeConstants.java +++ b/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/constants/LightingCommandTypeConstants.java @@ -36,7 +36,6 @@ public class LightingCommandTypeConstants { */ public static final String SEND_MESSAGE = "Light_6"; - /** * 报警模式 */ diff --git a/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/rule/bjq/BjqAlarmRule.java b/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/rule/bjq/BjqAlarmRule.java index ff0a04c4..a3759c97 100644 --- a/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/rule/bjq/BjqAlarmRule.java +++ b/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/rule/bjq/BjqAlarmRule.java @@ -57,12 +57,12 @@ public class BjqAlarmRule implements MqttMessageRule { if (StringUtils.isNotBlank(convertValue)) { // 将设备状态信息存储到Redis中 String deviceRedisKey = GlobalConstants.GLOBAL_REDIS_KEY + DeviceRedisKeyConstants.DEVICE_KEY_PREFIX + context.getDeviceImei() + DEVICE_ALARM_KEY_PREFIX; - String sendMessageIng = GLOBAL_REDIS_KEY+ DEVICE_KEY_PREFIX + context.getDeviceImei() + ":messageSending"; + String sendMessageIng = GLOBAL_REDIS_KEY + DEVICE_KEY_PREFIX + context.getDeviceImei() + ":messageSending"; if ("1".equals(convertValue)) { RedisUtils.setCacheObject(sendMessageIng, "1", Duration.ofDays(1)); // 存储到Redis RedisUtils.setCacheObject(deviceRedisKey, "1"); - }else if ("0".equals(convertValue)){ + } else if ("0".equals(convertValue)) { RedisUtils.deleteObject(sendMessageIng); RedisUtils.deleteObject(deviceRedisKey); } diff --git a/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/rule/bjq/BjqLaserModeSettingsRule.java b/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/rule/bjq/BjqLaserModeSettingsRule.java index 35b1ac3e..74018004 100644 --- a/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/rule/bjq/BjqLaserModeSettingsRule.java +++ b/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/rule/bjq/BjqLaserModeSettingsRule.java @@ -71,5 +71,4 @@ public class BjqLaserModeSettingsRule implements MqttMessageRule { } - } diff --git a/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/rule/bjq/BjqModeRule.java b/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/rule/bjq/BjqModeRule.java index 349452d4..8f97cec1 100644 --- a/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/rule/bjq/BjqModeRule.java +++ b/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/rule/bjq/BjqModeRule.java @@ -45,6 +45,7 @@ public class BjqModeRule implements MqttMessageRule { return LightingCommandTypeConstants.LIGHT_MODE; } + @Override public void execute(MqttRuleContext context) { String functionAccess = FUNCTION_ACCESS_KEY + context.getDeviceImei(); diff --git a/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/rule/bjq/BjqPersonnelInfoDataRule.java b/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/rule/bjq/BjqPersonnelInfoDataRule.java index 2a1b6d65..49fabe24 100644 --- a/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/rule/bjq/BjqPersonnelInfoDataRule.java +++ b/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/rule/bjq/BjqPersonnelInfoDataRule.java @@ -1,32 +1,18 @@ package com.fuyuanshen.global.mqtt.rule.bjq; -import com.alibaba.fastjson2.JSONObject; -import com.fuyuanshen.common.core.constant.GlobalConstants; -import com.fuyuanshen.common.core.utils.StringUtils; -import com.fuyuanshen.common.json.utils.JsonUtils; import com.fuyuanshen.common.redis.utils.RedisUtils; -import com.fuyuanshen.equipment.utils.map.GetAddressFromLatUtil; -import com.fuyuanshen.equipment.utils.map.LngLonUtil; import com.fuyuanshen.global.mqtt.base.MqttMessageRule; import com.fuyuanshen.global.mqtt.base.MqttRuleContext; import com.fuyuanshen.global.mqtt.config.MqttGateway; -import com.fuyuanshen.global.mqtt.constants.DeviceRedisKeyConstants; import com.fuyuanshen.global.mqtt.constants.LightingCommandTypeConstants; -import com.fuyuanshen.global.mqtt.constants.MqttConstants; import com.fuyuanshen.global.mqtt.listener.domain.FunctionAccessStatus; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import java.time.Duration; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.LinkedHashMap; -import java.util.Map; -import java.util.concurrent.CompletableFuture; import static com.fuyuanshen.common.core.constant.GlobalConstants.FUNCTION_ACCESS_KEY; -import static com.fuyuanshen.global.mqtt.constants.DeviceRedisKeyConstants.*; /** * 定位数据命令处理 @@ -55,4 +41,5 @@ public class BjqPersonnelInfoDataRule implements MqttMessageRule { RedisUtils.setCacheObject(functionAccess, FunctionAccessStatus.FAILED.getCode(), Duration.ofSeconds(30)); } } + } diff --git a/fys-admin/src/main/java/com/fuyuanshen/global/queue/MqttMessageConsumer.java b/fys-admin/src/main/java/com/fuyuanshen/global/queue/MqttMessageConsumer.java index 34f884fa..0ac95099 100644 --- a/fys-admin/src/main/java/com/fuyuanshen/global/queue/MqttMessageConsumer.java +++ b/fys-admin/src/main/java/com/fuyuanshen/global/queue/MqttMessageConsumer.java @@ -27,11 +27,12 @@ public class MqttMessageConsumer { @Autowired private DeviceMapper deviceMapper; - + // 创建两个线程池:一个用于消息获取,一个用于业务处理 private ExecutorService messageConsumerPool = Executors.newFixedThreadPool(3); private ExecutorService messageProcessorPool = Executors.newFixedThreadPool(10); + // 初始化方法,启动消息监听 @PostConstruct public void start() { @@ -130,4 +131,5 @@ public class MqttMessageConsumer { log.error("业务处理线程 {} 处理消息时发生错误: {}", threadName, message, e); } } + } diff --git a/fys-admin/src/main/java/com/fuyuanshen/global/queue/OnlineStatusTask.java b/fys-admin/src/main/java/com/fuyuanshen/global/queue/OnlineStatusTask.java index 7035e14d..e877b5c0 100644 --- a/fys-admin/src/main/java/com/fuyuanshen/global/queue/OnlineStatusTask.java +++ b/fys-admin/src/main/java/com/fuyuanshen/global/queue/OnlineStatusTask.java @@ -22,6 +22,8 @@ public class OnlineStatusTask { @Autowired private DeviceMapper deviceMapper; + + // 使用cron表达式,每分钟的第0秒执行 @Scheduled(cron = "0 */3 * * * ?") public void cronTask() { @@ -37,4 +39,5 @@ public class OnlineStatusTask { } }); } + } diff --git a/fys-admin/src/main/java/com/fuyuanshen/web/controller/device/DeviceControlCenterController.java b/fys-admin/src/main/java/com/fuyuanshen/web/controller/device/DeviceControlCenterController.java index 2b1b2ee3..d13f0cca 100644 --- a/fys-admin/src/main/java/com/fuyuanshen/web/controller/device/DeviceControlCenterController.java +++ b/fys-admin/src/main/java/com/fuyuanshen/web/controller/device/DeviceControlCenterController.java @@ -98,6 +98,7 @@ public class DeviceControlCenterController extends BaseController { return R.ok(appDeviceService.getDeviceInfo(deviceMac)); } + /** * 指令下发记录 */ @@ -106,6 +107,7 @@ public class DeviceControlCenterController extends BaseController { return appDeviceService.getInstructionRecord(dto, pageQuery); } + /** * 导出 */ diff --git a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/controller/DeviceTypeController.java b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/controller/DeviceTypeController.java index 70f186d6..8aacedd2 100644 --- a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/controller/DeviceTypeController.java +++ b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/controller/DeviceTypeController.java @@ -79,7 +79,6 @@ public class DeviceTypeController { public R getCommunicationMode(@Parameter(name = "设备类型ID", required = true) Long id) { DeviceType communicationMode = deviceTypeService.getCommunicationMode(id); return R.ok(communicationMode); - } } diff --git a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/impl/DeviceTypeServiceImpl.java b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/impl/DeviceTypeServiceImpl.java index e4c7f4cc..b4628fa9 100644 --- a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/impl/DeviceTypeServiceImpl.java +++ b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/impl/DeviceTypeServiceImpl.java @@ -224,22 +224,13 @@ public class DeviceTypeServiceImpl extends ServiceImpl 0) { - throw new RuntimeException("该设备类型下已有绑定设备,无法修改设备类型名称!!!"); + throw new RuntimeException("该设备类型下已有设备,无法修改设备类型名称!!!"); } } - - // List devices = deviceMapper.selectList(new QueryWrapper() - // .eq("device_type", deviceTypeGrants.getDeviceTypeId())); - // if (CollectionUtil.isNotEmpty(devices)) { - // throw new RuntimeException("该设备类型已绑定设备,无法修改!!!"); - // } - // 校验设备类型名称 DeviceType dt = deviceTypeMapper.selectOne(new QueryWrapper().eq("type_name", resources.getTypeName())); if (dt != null && !dt.getId().equals(deviceType.getId())) {