c9195f78e9
feat(ops): 新增告警管理功能
...
Java CI with Maven / build (11) (push) Has been cancelled
Java CI with Maven / build (17) (push) Has been cancelled
Java CI with Maven / build (8) (push) Has been cancelled
添加告警请求VO、服务接口、服务实现及Controller,支持告警的基本管理操作。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-13 09:30:57 +08:00
b851484e4e
fix(ops): 修正工作台客流趋势返回
Java CI with Maven / build (11) (push) Has been cancelled
Java CI with Maven / build (17) (push) Has been cancelled
Java CI with Maven / build (8) (push) Has been cancelled
2026-02-11 10:02:03 +08:00
16441e7c25
feat(ops): 实现工单统计看板功能
...
Java CI with Maven / build (11) (push) Has been cancelled
Java CI with Maven / build (17) (push) Has been cancelled
Java CI with Maven / build (8) (push) Has been cancelled
1. 修复 MyBatis 类型安全问题
- 创建 9 个 DTO 类替换 List<Map<String, Object>>
- 修复 @MapKey 错误,使用强类型返回值
2. 实现工单统计看板 5 大功能
- 漏斗统计:支持时间范围过滤
- 时段热力图:改为近 7 天,Y 轴显示日期(MM-dd)
- 功能类型排行:替换区域排行,JOIN ops_bus_area 表
- 今日工单时段分布:X 轴优化为每 2 小时展示
- 近七天客流统计:独立接口,支持工作台实时趋势
3. 字典转换实现
- 新增 DictTypeConstants.OPS_AREA_FUNCTION_TYPE(保留供未来扩展)
- 使用硬编码 Map 实现功能类型中文转换(性能最优)
- 添加 TODO 说明未来可切换 DictFrameworkUtils
4. SQL 优化
- 功能类型统计:INNER JOIN ops_bus_area 表
- 热力图查询:按日期和小时分组统计
- 时段分布:仅统计当天数据
5. 缓存策略
- 看板统计:5 分钟缓存(@Cacheable)
- 客流监测:5 分钟缓存
- 防止高并发查询压力
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2026-02-10 23:28:02 +08:00
113e90c726
fix(ops): 修复工单location字段重复和parent_path格式问题
...
Java CI with Maven / build (11) (push) Has been cancelled
Java CI with Maven / build (17) (push) Has been cancelled
Java CI with Maven / build (8) (push) Has been cancelled
1. 修改 parent_path 格式为以 "/" 开头(如:/1/2/3)
- buildParentPath: 父级是根节点时返回 "/1" 而非 "1"
2. 修复 buildAreaPath 方法的去重逻辑
- 从名称层面去重改为 ID 层面去重
- 避免误删不同ID但名称相同的合法情况
- 只去除数据错误导致的重复ID
- 添加警告日志记录重复ID
3. 调整 isDescendant 方法以适配新的 parent_path 格式
- 简化判断逻辑,移除冗余的 startsWith 检查
4. 更新测试用例以匹配新格式
- Mock数据: parentPath("10") -> parentPath("/10")
- 期望值: "10/1" -> "/10/1"
5. 统一 location 路径格式(不带前导斜杠)
- 示例: "徐汇万科中心一期/A座写字楼/11楼/电梯厅"
变更影响:
- ops_bus_area.parent_path: "1" -> "/1", "1/2" -> "/1/2"
- ops_order.location: 无前导斜杠
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2026-02-10 16:14:59 +08:00
631612951c
fix(iot): 修复客流统计持久化无数据和租户隔离问题
...
1. 解耦统计采集与工单触发:将 incrementDaily() 提前到配置检查之前,
即使设备未配置工单触发规则,统计数据也能正常写入 Redis
2. 修复租户隔离:Redis Hash 中写入 tenantId,持久化任务读取后在
正确的租户上下文中执行 upsert 和区域查询
3. 修复清理任务:使用 TenantUtils.executeIgnore() 避免 XXL-Job
线程无租户上下文导致 NPE
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-10 13:18:48 +08:00
1147ae4503
fix(iot-gateway): 修改3d11正确ProductKey
Java CI with Maven / build (11) (push) Has been cancelled
Java CI with Maven / build (17) (push) Has been cancelled
Java CI with Maven / build (8) (push) Has been cancelled
2026-02-10 10:14:54 +08:00
88a6651d59
Merge branch 'feat/iot-people-counter'
Java CI with Maven / build (11) (push) Has been cancelled
Java CI with Maven / build (17) (push) Has been cancelled
Java CI with Maven / build (8) (push) Has been cancelled
2026-02-09 13:52:33 +08:00
41ffffe431
fix(iot): 修复 3D11 编解码器上报时间和数据过滤
...
- reportTime 改用 time 字段(设备上传时间)而非 endTime
- 新增 24 小时数据过滤,超时数据舍弃并返回 null
- 数据舍弃时仍返回成功响应,避免设备反复重试
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-09 13:52:18 +08:00
81478710de
Merge branch 'feat/iot-people-counter'
Java CI with Maven / build (11) (push) Has been cancelled
Java CI with Maven / build (17) (push) Has been cancelled
Java CI with Maven / build (8) (push) Has been cancelled
2026-02-09 09:54:47 +08:00
cc6b11f4e9
feat(iot): 对接 3D11 单目客流计数器
...
在 IoT Gateway 的 Vert.x Router 上注册 /api/camera/* 专用路由,
桥接 3D11 摄像头的心跳和数据上报到现有消息总线和编解码体系。
- 新建 Camera3D11 DTO(心跳请求、数据上报请求、统一响应)
- 新建 IotCamera3D11Codec 编解码器(TYPE=CAMERA_3D11)
- 新建 IotCameraUpstreamHandler 处理心跳和数据上报
- productKey 通过 application.yaml 配置,未配置时不注册路由
- 心跳上报间隔设为 1 分钟
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-08 00:23:44 +08:00
0775ead5ff
feat(ops): 客流工单周期化,同区域复用活跃工单并逐级升级优先级
...
Java CI with Maven / build (11) (push) Has been cancelled
Java CI with Maven / build (17) (push) Has been cancelled
Java CI with Maven / build (8) (push) Has been cancelled
解决同一区域客流持续达标时重复创建工单的问题。改为:无活跃工单时
创建新工单,有未派发工单(PENDING/QUEUED)时升级优先级一级,有已派发
工单时忽略,所有分支均重置阈值计数器。工单终态时清除活跃标记。
- 新增 TrafficActiveOrderRedisDAO 管理区域活跃工单 Redis 标记
- 新增 CleanOrderService.upgradeOneLevelPriority 逐级升级优先级
- 改造 CleanOrderCreateEventHandler 实现客流触发周期化分支逻辑
- 新增 OpsOrderMapper.selectActiveTrafficOrder 作为 DB 兜底查询
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-08 00:21:14 +08:00
4f737a5dd1
refactor(ops): 重构 TTS 语音播报队列,解耦 ttsFlag 与队列优先级
...
移除 Thread.sleep(5000) 阻塞,改由 TTS 队列按设备维度控制播报顺序和间隔:
- 解耦 ttsFlag(硬件行为 0x09)与 priority(队列位置),全部使用 0x09 发送
- TtsQueueMessage 新增 inOrder/urgent 工厂方法,VoiceBroadcastService 精简为
broadcastInOrder(FIFO rightPush)和 broadcastUrgent(leftPush 插队)两个入口
- 同设备播报间隔 3s → 6s,消息过期时间 30s → 60s
- 修复原 leftPush+leftPop LIFO 导致连续入队顺序反转的问题
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-08 00:19:24 +08:00
db5266d306
fix(ops): 修复语音播报顺序和无工单误报问题
...
Java CI with Maven / build (11) (push) Has been cancelled
Java CI with Maven / build (17) (push) Has been cancelled
Java CI with Maven / build (8) (push) Has been cancelled
1. CleanOrderEventListener: 将完成通知和自动派单合并为单个异步方法,
保证先播报"工单已完成",间隔5秒后再派发下一个任务,
避免"新工单来啦"先于"工单已完成"播报
2. CleanNotificationConstants: 修复 buildQuery 在无工单时仍播报
"当前工单在作业区域"的问题,原因是 areaName 为 null 时被回退为
默认值后导致"有工单"判断永远为 true
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-02-04 10:43:12 +08:00
117ad2c405
fix(ops): 修复 TTS 队列 Redisson 事务不兼容和客流统计租户上下文缺失
...
Java CI with Maven / build (11) (push) Has been cancelled
Java CI with Maven / build (17) (push) Has been cancelled
Java CI with Maven / build (8) (push) Has been cancelled
1. TtsQueueConsumer: 用 SETNX+TTL 替代 watch/multi/exec 事务模式,
解决 Redisson 不支持 WATCH 导致 exec() 抛出异常的问题
2. TrafficStatisticsPersistJob: 用 TenantUtils.executeIgnore() 包裹
设备区域查询,解决 xxl-job 线程无租户上下文导致查询失败的问题
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-02-04 10:13:41 +08:00
a18d1a7d8d
refactor(ops): 优化区域路径拼接方法 buildAreaPath
...
主要改进:
- 使用 Stream API 替代传统循环,代码更简洁
- 区域路径增加 "/" 分隔符,格式更规范(如"园区/A栋/B层/电梯厅")
- 改进异常处理和日志记录,提升可维护性
- 使用 Hutool StrUtil 替代 Apache Commons Lang
- 提前返回策略,减少嵌套层级
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2026-02-04 10:02:29 +08:00
940a968560
fix(ops): 修复日志打印问题
Java CI with Maven / build (11) (push) Has been cancelled
Java CI with Maven / build (17) (push) Has been cancelled
Java CI with Maven / build (8) (push) Has been cancelled
2026-02-04 00:07:45 +08:00
d34f3bd80d
fix(ops): 修复 TTS 语音播报并发问题,保证顺序和间隔
...
问题:
- 多线程同时处理同一设备的 TTS 队列,导致多条语音同时下发
- 设备只能播报最后一条,前面的被覆盖
解决方案:
- 使用 Redis watch + multi + exec 事务保证原子性
- 使用 Redis 存储上次播报时间(跨线程/跨实例共享)
- 间隔不够时取消 watch,消息留在队列下次再试
- 播报失败时清除时间记录,允许立即重试
效果:
- 保证播报顺序:先入队的消息先播报(FIFO)
- 保证播报间隔:两条播报之间至少间隔 3 秒
- 并发安全:多线程/多实例环境下不会冲突
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-02-03 23:59:01 +08:00
5edbc9f287
fix(ops): 修复工牌关机重启后工单状态不一致漏洞
...
问题场景:
1. 工牌有执行中工单(ARRIVED)后关机
2. 工牌重启,Redis状态丢失/过期,设备变为IDLE
3. 系统推送新工单
4. 信标检测仍在用旧工单配置,导致状态混乱
修复方案:
1. 派发新工单前检查并清理/取消旧工单残留
2. 设备离线时自动取消未完成的工单
3. 信标检测器增加工单切换检测,清理旧检测状态
涉及文件:
- BadgeDeviceStatusEventListener: 增加旧工单清理和离线事件监听
- BadgeDeviceStatusServiceImpl: 设备离线时发布事件
- BeaconDetectionRuleProcessor: 工单切换检测
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-02-03 22:59:06 +08:00
3443d4dcd4
fix(ops): 增强 TTS 队列日志级别,方便排查语音播报问题
...
Java CI with Maven / build (11) (push) Has been cancelled
Java CI with Maven / build (17) (push) Has been cancelled
Java CI with Maven / build (8) (push) Has been cancelled
- TtsQueueProcessJob: 添��� info 级别日志输出处理结果
- TtsQueueConsumer: 将播报成功日志改为 info 级别
- 添加队列发现日志,便于追踪
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-02-03 22:18:57 +08:00
88e83895da
chore(ops): 新增 TTS 语音播报队列配置项
...
添加 ops.tts.queue 配置:
- enabled: 是否启用队列
- interval-ms: 播报间隔
- max-queue-size: 队列最大长度
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-02-03 16:49:33 +08:00
8c03253446
feat(ops): 新增工单业务日志查询接口
...
Java CI with Maven / build (11) (push) Has been cancelled
Java CI with Maven / build (17) (push) Has been cancelled
Java CI with Maven / build (8) (push) Has been cancelled
- OpsOrderService/Impl: 新增 getOrderBusinessLogs,将 OpsBusinessEventLogDO
转换为前端友好的 OpsOrderBusinessLogRespDTO(type/title/operator/status/extra)
- OpsOrderController: 新增 GET /business-logs/{orderId} 端点
- 新增 OpsOrderBusinessLogRespDTO 和 OpsOrderBusinessLogsRespDTO
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-02-03 15:41:04 +08:00
fe64216286
feat(ops): 新增客流统计持久化和清理任务
...
- 新增 OpsTrafficStatisticsDO 和 OpsTrafficStatisticsMapper(upsert + 过期清理)
- 新增 TrafficStatisticsPersistJob: 每小时从 Redis 增量持久化到 MySQL,
支持分布式锁、负增量校准、缺失区域处理
- 新增 TrafficStatisticsCleanupJob: 每月清理 30 天前的统计记录
- 新增 SQL 建表脚本 ops_traffic_statistics
- OpsBusAreaService 新增 getAreaIdByDeviceId 方法
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-02-03 15:39:53 +08:00
13571faa59
refactor(iot,ops): 重构客流计数器重置为按区域删除阈值 key
...
- ResetTrafficCounterReqDTO: 废弃 newBaseValue 字段
- IotDeviceControlApiImpl: 重置逻辑改为通过区域关联查询后删除阈值 key
- CleanOrderEventListener: 简化异步重置调用,移除 triggerData 依赖
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-02-03 15:37:23 +08:00
46024fd043
refactor(iot): 重构客流计数器为增量累加模式,支持 people_out
...
- 删除旧 TrafficCounterBaseRedisDAO(基准值模式),新增 TrafficCounterRedisDAO
支持阈值计数器(达标后重置)和当日累积统计(用于报表)
- TrafficThresholdRuleProcessor 改为增量原子累加,消除基准值校准逻辑
- CleanRuleProcessorManager 路由增加 people_out 支持
- TrafficCounterBaseResetJob 改为每日清除阈值计数器,持久化职责移交 Ops 模块
- 使用 SCAN 替代 KEYS 避免阻塞 Redis
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-02-03 15:34:03 +08:00
6a109954d3
fix(ops): 修复去除/admin-api/前缀
2026-02-03 14:01:43 +08:00
955c825e2c
feat(ops,iot): 保洁前端 API 层和区域管理新增
...
新增保洁业务前端 API 接口层(工牌、工单、仪表盘)和运营区域管理完整功能,包含 Service/Controller/Test 三层结构。
主要功能:
1. IoT 设备查询 API(RPC 接口)
- IotDeviceQueryApi: 提供设备简化信息查询
- IotDeviceSimpleRespDTO: 设备简化 DTO
2. 保洁工牌管理
- CleanBadgeService/Impl: 工牌通知、优先级调整、手动完成
- BadgeNotifyReqDTO/UpgradePriorityReqDTO/ManualCompleteOrderReqDTO
3. 保洁工单管理
- CleanWorkOrderService/Impl: 工单时间线查询
4. 保洁仪表盘
- CleanDashboardService/Impl: 快速统计(待处理/进行中/已完成/在线工牌数)
- QuickStatsRespDTO: 快速统计 DTO
5. 运营区域管理(Ops Biz)
- OpsBusAreaService/Impl: 区域 CRUD(支持树形结构、分页查询)
- AreaDeviceRelationService/Impl: 区域设备关联管理(绑定/解绑/批量更新)
- OpsBusAreaMapper/AreaDeviceRelationMapper: 扩展 MyBatis 批量方法
- 7 个 VO 类:CreateReqVO/UpdateReqVO/PageReqVO/RespVO/BindReqVO/RelationRespVO/DeviceUpdateReqVO
6. 前端 Controller(Ops Server)
- OpsBusAreaController: 区域管理 REST API(11 个接口)
- AreaDeviceRelationController: 设备关联 REST API(8 个接口)
- CleanBadgeController: 工牌管理 REST API(5 个接口)
- CleanDashboardController: 仪表盘 REST API(1 个接口)
- CleanDeviceController: 设备管理 REST API(2 个接口)
- CleanWorkOrderController: 工单管理 REST API(2 个接口)
7. 测试覆盖
- OpsBusAreaServiceTest: 区域服务测试(284 行)
- AreaDeviceRelationServiceTest: 设备关联测试(240 行)
- OpsBusAreaControllerTest: 区域 Controller 测试(186 行)
- AreaDeviceRelationControllerTest: 设备关联 Controller 测试(182 行)
8. API 层扩展
- ErrorCodeConstants: 错误码常量(区域、设备关联)
- NotifyTypeEnum: 通知类型枚举(语音、文本、震动)
- 4 个 Badge/Order DTO: BadgeStatusRespDTO/BadgeRealtimeStatusRespDTO/OrderTimelineRespDTO
9. RPC 配置
- RpcConfiguration: 注入 IotDeviceQueryApi
影响模块:Ops API、Ops Biz、Ops Server、Ops Environment Biz、IoT API、IoT Server
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2026-02-02 22:42:45 +08:00
bdf5b640b0
refactor(ops): 工单中心查询接口参数封装重构
...
优化 OrderCenterController.queryPage() 方法签名,从 9 个独立参数封装为单个对象,提升代码可维护性。
主要变更:
1. OrderQuery 改用 Lombok @Data 替代手写 getter/setter(减少 ~120 行)
2. OrderQuery.status 从 String 改为 List<String>,支持前端多状态筛选
3. OrderQueryServiceImpl 使用 inIfPresent() 生成 IN 查询(兼容单选和多选)
4. OrderCenterController 接收 OrderQuery 对象替代 9 个 @RequestParam
5. OrderCenterControllerTest 适配新签名,新增多状态测试用例
向后兼容:
- 前端传单个 status=PENDING,Spring 自动转 List.of("PENDING")
- 前端传多个 status=A&status=B,Spring 自动转 List.of("A","B")
- 原有单状态查询不受影响
影响模块:Ops Biz、Ops Server
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2026-02-02 22:37:06 +08:00
e95080dc8a
feat(ops): 工单引擎增加 assigneeName 冗余字段
...
在工单核心引擎各层级增加 assigneeName 冗余字段,存储执行人的可读名称(优先使用 nickname,降级为 deviceCode),
避免查询时关联 IoT 设备表,提升查询性能。
变更范围:
- OpsOrderDO: 新增 assigneeName 字段
- OrderTransitionRequest: 新增 assigneeName 参数
- OrderDispatchContext: 新增 recommendedAssigneeName 字段
- DispatchEngineImpl: 派单/入队/打断时透传 assigneeName
- OrderLifecycleManagerImpl: 分配/派发/入队时写入 assigneeName
- OpsOrderAssignReqDTO: 新增 assigneeName 参数
- OrderSummaryVO: 新增 sourceType、assigneeName 字段
- BadgeDeviceStatusDTO: 新增 nickname 字段
影响模块:Ops Biz、Ops API
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2026-02-02 22:34:00 +08:00
bccf992848
feat(ops): 工牌设备状态服务支持 nickname 透传
...
在工牌设备状态管理链路中全面支持 nickname 字段透传,从 IoT 事件接收到派单策略推荐均使用用户可读的昵称。
变更范围:
- IotDeviceStatusChangedEventDTO: 新增 nickname 字段
- BadgeDeviceStatusEventHandler: 接收并透传 nickname
- BadgeDeviceStatusService/Impl: updateBadgeOnlineStatus 增加 nickname 参数
- BadgeDeviceStatusSyncJob: 对账场景保留 Redis 已有 nickname
- BadgeDeviceAreaAssignStrategy: 推荐执行人时优先使用 nickname
- BadgeDeviceDispatchTest: 测试适配 nickname 参数
影响模块:Ops Environment Biz
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2026-02-02 22:30:06 +08:00
b4fad17254
feat(iot): 设备事件增加 nickname 字段
...
在 BaseDeviceEvent 中新增 nickname 字段,用于存储设备的用户可读显示名称(如"张三的工牌"),
IotDeviceServiceImpl 在发送设备状态变更事件时自动填充该字段。
变更范围:
- BaseDeviceEvent: 新增 nickname 字段
- IotDeviceServiceImpl: 事件发送时携带 nickname
影响模块:IoT Core、IoT Server
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2026-02-02 22:26:37 +08:00
46096a6e6b
fix(iot,ops): 确保信标相关审计事件包含orderId以支持工单关联查询
...
Java CI with Maven / build (11) (push) Has been cancelled
Java CI with Maven / build (17) (push) Has been cancelled
Java CI with Maven / build (8) (push) Has been cancelled
修改内容:
1. BeaconDetectionRuleProcessor.publishAuditEvent 添加 orderId 参数
- BEACON_ARRIVE_CONFIRMED 事件包含当前工单ID
- BEACON_LEAVE_WARNING_SENT 事件从设备状态获取工单ID
- TTS_REQUEST 事件不包含工单ID(非工单特定)
2. SignalLossRuleProcessor.publishAuditEvent 添加 orderId 参数
- BEACON_COMPLETE_REQUESTED 事件包含当前工单ID
- COMPLETE_SUPPRESSED_INVALID 事件从设备状态获取工单ID
3. CleanOrderAuditEventHandler 使用 EventLogRecord.builder()
- 显式设置 targetId 和 targetType 字段
- 确保 targetType="order" 当 orderId 存在时
影响范围:
- ops_business_event_log 表新增记录将正确包含 targetId 和 targetType
- 支持按工单ID查询所有相关审计日志
- 解决信标到岗/离岗/完成事件缺失工单关联的问题
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-02-01 10:26:06 +08:00
fc1bc609e6
test(ops): 修复测试代码中 isNull() 参数匹配问题
...
Java CI with Maven / build (11) (push) Has been cancelled
Java CI with Maven / build (17) (push) Has been cancelled
Java CI with Maven / build (8) (push) Has been cancelled
使用 any(Long.class) 替代 isNull() 以正确匹配 Long 类型参数
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-02-01 02:45:05 +08:00
83c9fb98d7
test(ops): 修复测试代码中的参数验证问题
...
- 修复 broadcast 方法验证,使用 isNull() 匹配 orderId 参数
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-02-01 02:43:02 +08:00
3c3443aef0
test(ops): 修复测试代码以适配方法签名变更
...
- 修复 sendPriorityUpgradeNotification 方法调用,添加 orderId 参数
- 修复 broadcast 方法调用,添加 ttsFlag 参数
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-02-01 02:42:04 +08:00
c6610e97f0
fix(ops): 修复 TtsQueueConsumer 中 Set/List 类型不匹配问题
...
Java CI with Maven / build (11) (push) Has been cancelled
Java CI with Maven / build (17) (push) Has been cancelled
Java CI with Maven / build (8) (push) Has been cancelled
修复了 redisTemplate.keys() 返回 Set<String> 但代码声明为 List<String> 的类型不匹配问题
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-02-01 02:26:47 +08:00
0a0f6be68e
修复 TtsQueueConsumer 缺少 Resource 注解导入
Java CI with Maven / build (11) (push) Has been cancelled
Java CI with Maven / build (17) (push) Has been cancelled
Java CI with Maven / build (8) (push) Has been cancelled
2026-02-01 02:17:18 +08:00
2afc173e18
修复 ops_business_event_log 表中日志缺少 targetType 和 targetId 的问题
Java CI with Maven / build (11) (push) Has been cancelled
Java CI with Maven / build (17) (push) Has been cancelled
Java CI with Maven / build (8) (push) Has been cancelled
2026-02-01 02:05:41 +08:00
41c4f57f05
新增 TTS 队列相关文件
2026-02-01 02:05:08 +08:00
fecaa28bc7
feat(ops): 优化工单查询语音播报内容
...
- 播报当前工单作业区域(替代工单标题)
- 播报剩余待办工单数量
- 简化播报文案,更人性化
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-02-01 01:49:35 +08:00
d2f2e06c58
test: 更新测试数据以适配配置模型变更
...
Java CI with Maven / build (11) (push) Has been cancelled
Java CI with Maven / build (17) (push) Has been cancelled
Java CI with Maven / build (8) (push) Has been cancelled
- SignalLossRuleProcessorTest: 更新测试用例
- area_device_relation_full_config.sql: 移除buttonEvent配置
- badge_device_dispatch_test_data.sql: 更新测试数据
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-02-01 00:57:52 +08:00
5d8c4045d4
refactor(ops): 简化AreaDevice与BadgeDevice服务实现
...
- AreaDeviceService: 移���设备索引缓存逻辑(由IoT模块管理)
- AreaDeviceServiceImpl: 简化实现,直接查询数据库
- BadgeDeviceStatusService: 更新接口方法签名
- BadgeDeviceStatusServiceImpl: 修复语法错误,简化实现
- BadgeDeviceStatusEventListener: 适配事件处理逻辑
- CleanOrderEventListener: 更新事件处理
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-02-01 00:57:38 +08:00
3839da2966
refactor(iot): 适配规则处理器使用新的配置查询方法
...
- ButtonEventRuleProcessor: 改为从设备 config 读取按键配置
- TrafficThresholdRuleProcessor: 使用 getConfigWrapperByDeviceId 方法
- BeaconDetectionRuleProcessor: 使用 getConfigByAreaIdAndRelationType 方法
- SignalLossRuleProcessor: 使用 getConfigByAreaIdAndRelationType 方法
- CleanRuleProcessorManager: 更新处理流程
- 添加性能优化 TODO 注释
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-02-01 00:57:23 +08:00
89e68eceb2
refactor(iot): 重构配置模型与实现双层缓存优化
...
- 将 buttonEvent 配置从区域级移至设备级(iot_device.config)
- 添加 getConfigWrapperByDeviceId 方法支持一对一设备查询
- 实现设备索引缓存 + 区域配置缓存的双层缓存设计
- 添加设备类型常量 DEVICE_RELATION_TYPES
- 完善 JavaDoc 注释说明配置层级划分
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-02-01 00:57:03 +08:00
b73ef4f39f
fix(ops): 迁移updateStatus修复到Enhanced实现
...
Java CI with Maven / build (11) (push) Has been cancelled
Java CI with Maven / build (17) (push) Has been cancelled
Java CI with Maven / build (8) (push) Has been cancelled
REMOVED 状态改为同步更新 Redis,避免自动派单查询到已完成任务
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-31 19:05:26 +08:00
009fab543f
refactor(ops): 删除重复的OrderQueueServiceImpl实现类
...
保留 OrderQueueServiceEnhanced 作为唯一实现,避免Bean冲突
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-31 18:53:41 +08:00
f9742137c5
fix(ops): 修复工单队列Redis存储与自动派单问题
...
Java CI with Maven / build (11) (push) Has been cancelled
Java CI with Maven / build (17) (push) Has been cancelled
Java CI with Maven / build (8) (push) Has been cancelled
- Redis Sorted Set 改用 queueId 作为 member,详细信息存储在 Hash
- REMOVED 状态同步更新 Redis,避免自动派单查询到已完成任务
- 新增 getWaitingTasksByUserIdFromDb() 强制从 MySQL 读取最新数据
- 修复队列状态枚举值统一为大写
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-31 18:28:27 +08:00
5c31f5eb71
fix(ops): 修复改为分步构建责任链-id生成
Java CI with Maven / build (11) (push) Has been cancelled
Java CI with Maven / build (17) (push) Has been cancelled
Java CI with Maven / build (8) (push) Has been cancelled
2026-01-31 00:54:13 +08:00
b95674b9e0
fix(ops): 修复改为分步构建责任链-不构建队列bug
Java CI with Maven / build (11) (push) Has been cancelled
Java CI with Maven / build (17) (push) Has been cancelled
Java CI with Maven / build (8) (push) Has been cancelled
2026-01-31 00:08:43 +08:00
4d34951799
fix(ops): 修复工单队列一致性与设备状态覆盖问题
Java CI with Maven / build (11) (push) Has been cancelled
Java CI with Maven / build (17) (push) Has been cancelled
Java CI with Maven / build (8) (push) Has been cancelled
2026-01-30 14:50:38 +08:00
28b9a32cb6
feat(ops): 事件日志增强与空闲设备待办检查
...
Java CI with Maven / build (11) (push) Has been cancelled
Java CI with Maven / build (17) (push) Has been cancelled
Java CI with Maven / build (8) (push) Has been cancelled
- 实现空闲设备待办工单检查定时任务
- 修复事件日志 orderId 关联 (使用 targetId)
- 增强语音播报和工单事件的日志完整性
2026-01-30 12:03:24 +08:00