|
|
5f804605c7
|
refactor(ops): 收口散落的 eventType 硬编码为 LogType 枚举引用
替换 CleanOrderCreateEventHandler、OrderLifecycleManagerImpl、
DispatchEngineImpl 中的字符串常量为 LogType.XXX.getCode(),
同时将 DispatchEngine 的 @BusinessLog description 改为"工单自动派发"。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-03-11 17:34:30 +08:00 |
|
|
|
dc75c78d16
|
fix(ops): 修复业务日志 title 显示英文常量,改为中文映射
/business-logs 接口 title 回退取 eventType 时,通过 LogType.getByCode()
映射中文 description 作为标题。同步调整 @BusinessLog 注解 type 属性
改用 LogType 枚举。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-03-11 17:34:19 +08:00 |
|
|
|
fc9393e723
|
refactor(ops): 扩展 LogType 枚举,补全工单生命周期与 IoT 审计事件类型
新增 ORDER_CREATED/CONFIRM/ARRIVED/COMPLETED 等工单生命周期枚举、
BEACON_ARRIVE_CONFIRMED/BEACON_COMPLETE_REQUESTED 等 IoT 审计枚举,
添加 getByCode() 反查方法支持中文 title 映射。
同步新增 LogModule 常量类收口模块标识。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-03-11 17:34:08 +08:00 |
|
|
|
b8d0a77156
|
feat(ops): 调整队列评分权重,楼层差×3 老化÷1.67,临界值 1 层=20 分钟
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
FLOOR_WEIGHT 20→60、AGING_WEIGHT 5→3,强化就近派单效果。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-03-09 15:59:11 +08:00 |
|
|
|
57f32e56a9
|
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 队列层基于优先级和时间戳的本地兜底算分逻辑
- 强制 enqueue、batchEnqueue、updatePriority 使用服务层预先计算的 queueScore
- 兼容历史缺少 queueScore 的 Redis 记录,按最低优先级处理避免旧模型重新参与排序
- 补齐 QueueSyncService 的 queueScore 映射,确保 MySQL 同步到 Redis 时保留总分
- 新增 QueueSyncServiceTest 覆盖同步链路携带 queueScore 的行为
|
2026-03-07 22:44:09 +08:00 |
|
|
|
a9fd9313cc
|
feat(ops): 重构派单队列评分逻辑,支持楼层差与等待老化综合排序
- 新增 QueueScoreCalculator/QueueScoreContext/QueueScoreResult,统一按优先级分 + 楼层差分 - 等待老化分计算队列总分,并将 PRIORITY_WEIGHT 调整为 1500
- OrderQueueService 新增 rebuildWaitingTasksByUserId 接口,OrderQueueServiceEnhanced 支持按执行人重算 WAITING 队列、以当前执行工单楼层为基准动态重排,并在事务提交后同步刷新 Redis
- RedisOrderQueueServiceImpl 支持持久化 baseFloorNo、targetFloorNo、floorDiff、waitMinutes、scoreUpdateTime 等评分明细,清队列时同时清理关联 Hash,避免脏数据残留
- DispatchEngineImpl、CleanerPriorityScheduleStrategy、BadgeDeviceScheduleStrategy 调整为非抢占式派单:P0 忙碌时仅入队等待,空闲时直接派发,自动派单前按总分重排并派发下一单
- CleanOrderServiceImpl 取消 P0 自动打断链路,升级到 P0 后仅重算等待队列并发送通知;补充 QueueScoreCalculatorTest、OrderQueueServiceEnhancedTest、CleanerPriorityScheduleStrategyTest、CleanOrderEndToEndTest 覆盖新行为
|
2026-03-07 21:15:10 +08:00 |
|
|
|
26c4ce07eb
|
feat(iot,ops): 区域设备关联接口返回更多设备信息,修复 N+1 和代码质量问题
- IotDeviceSimpleRespDTO 新增 nickname、serialNumber、state、deviceType 字段
- IotDeviceQueryApi 新增 batchGetDevices 批量查询接口
- IotDeviceQueryApiImpl 提取 toSimpleDTO 统一转换、通过产品缓存解析 productName、
移除 blanket try-catch 让异常正确传播、删除无用 import
- AreaDeviceRelationRespVO 新增 nickname、serialNumber、deviceState、deviceType 字段
- AreaDeviceRelationServiceImpl.listByAreaId 改为批量查询避免 N+1 RPC、
增加 null 防护;bindDevice 改为 fail-fast 不再存脏数据
- ErrorCodeConstants 新增 IOT_SERVICE_UNAVAILABLE 错误码
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-03-07 21:06:10 +08:00 |
|
|
|
3bcdb4119f
|
feat(ops): 新增当月vs上月工单趋势对比数据(monthlyTrendData)
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
在 DashboardStatsRespVO 中新增 MonthlyTrendData/MonthData 内部类,
在 OpsStatisticsServiceImpl 中新增 buildMonthlyTrendData 方法,
复用已有的 selectCreatedCountGroupByDate 查询按日统计当月和上月每日创建工单数。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-03-01 16:09:17 +08:00 |
|
|
|
1c8eee9db4
|
refactor(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
- 客流接口支持指定日期查询(getTrafficRealtime、getTrafficTrend、getAreaTrafficRealtime)
- 移除昨日对比趋势字段(yesterdayHourlyTrend),简化为单日期模式
- 漏斗图改为工单状态分布(FunnelItem→StatusDistributionItem),使用 SQL COUNT 替代内存分组
- 新增工牌队列统计(BadgeQueueStats),按 orderType 过滤避免跨类型数据混入
- 在线工牌计数仅统计 IDLE/BUSY 状态(排除 PAUSED/OFFLINE)
- 修复通配符导入和全限定类名引用,规范化 import 语句
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-03-01 00:17:26 +08:00 |
|
|
|
7c22fe998e
|
fix(ops): 统一 Redis 序列化为 StringRedisTemplate,修复跨模块/跨路径数据不兼容
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
BadgeDeviceStatusServiceImpl 和 RedisOrderQueueServiceImpl 原使用
RedisTemplate<String, Object>(Jackson JSON 序列化),但 Pipeline、
Lua 脚本写入的裸字符串与 Jackson 格式不兼容,导致:
- IoT 模块 StringRedisTemplate 读取工单状态比对失败(按键无法确认)
- 队列 entries() 反序列化失败(REMOVED 记录无法清理,持续报错)
修改内容:
- BadgeDeviceStatusServiceImpl: RedisTemplate → StringRedisTemplate
- RedisOrderQueueServiceImpl: RedisTemplate → StringRedisTemplate
- 所有写入值显式 String.valueOf(),读取用 parse 替代强转
- 修复 null 值写入 StringRedisSerializer 导致 NPE 的隐患
- application.yaml: TTS 播报间隔 6000ms → 3000ms
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-02-27 10:50:03 +08:00 |
|
|
|
6cb784a2d8
|
feat(ops): 新增客流统计后端接口(区域汇总查询+缓存优化)
- 新增 OpsTrafficController 客流统计独立 Controller(/ops/traffic/*)
- 新增区域汇总接口:getAreaTrafficRealtime/getAreaTrafficTrend(多区域ID聚合)
- TrafficRealtimeRespVO 新增 yesterdayHourlyTrend 和 message 字段
- DeviceTrafficRealtimeRespVO 新增 yesterdayHourlyTrend 字段
- 区域接口添加 @Cacheable 5分钟 Redis 缓存
- loadAreaNameMap 添加本地缓存(5分钟TTL)避免重复全表扫描
- areaIds 参数双层限制 200 上限防止 DoS
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-02-26 16:53:08 +08:00 |
|
|
|
edaa75b838
|
fix(ops): 修复取消 QUEUED 工单时队列状态转换校验不允许 WAITING→REMOVED 的问题
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
队列状态流转校验缺少 WAITING→REMOVED 的转换规则,导致取消 QUEUED 工单时
队列条目未被正确清理,autoDispatchNext 查到残留的 WAITING 记录后尝试派发
已取消的工单(CANCELLED→DISPATCHED),触发 IllegalStateException 并污染
外层事务,最终抛出 UnexpectedRollbackException。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-02-25 22:49:05 +08:00 |
|
|
|
161f55007b
|
fix(ops): 手动完单走完整责任链,补全队列同步、设备状态、事件发布等缺失环节
原手动完单逻辑直接更新 DB 状态,绕过了 OrderLifecycleManager 责任链,
导致队列未清理、工牌设备状态未恢复 IDLE、自动派发下一任务未触发、
事件表缺少操作人信息等问题。
改动:
- CleanWorkOrderServiceImpl.manualCompleteOrder 改为委托 OrderLifecycleManager
- OrderLifecycleManager 新增 completeOrder(orderId, operatorId, operatorType, remark) 重载
- Controller 注入 SecurityFrameworkUtils.getLoginUserId() 填充操作人
- EventPublishHandler 修复 OrderCompletedEvent.assigneeId 兜底逻辑
- 新增已完成幂等返回和已取消拒绝校验
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-02-25 17:12:01 +08:00 |
|
|
|
f17d5ef6b8
|
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
- 修复管理后台更新、绑定、解绑设备关联配置时未清理缓存导致旧配置(如客流阈值)在24小时内依然生效的问题
- 采用 Cache-Aside 模式,在 DB 操作后主动逐出 (evictConfigCache) 对应区域的关联类型缓存,确保高可用和强一致性
- 补充 AreaDeviceService Mock,修复并更新对应单元测试
|
2026-02-24 14:03:49 +08:00 |
|
|
|
abaa737d23
|
fix(ops): 取消工单接口改用 @RequestBody 接收 JSON 参数
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
前端以 JSON body 传参,@RequestParam 无法读取导致 400 "请求参数缺失"。
新增 OpsOrderCancelReqDTO,Controller 改为 @RequestBody 风格,
与 create/assign/complete 等接口保持一致。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-02-14 12:33:44 +08:00 |
|
|
|
8ab7e7cc05
|
fix(ops): 完善手动取消工单接口的状态机、校验和事件处理
- 状态机允许 ARRIVED→CANCELLED,与业务枚举 canCancel() 保持一致
- cancelOrder 增加已取消幂等返回,已完成改用 ServiceException
- cancelOrder 构建请求时传递 assigneeId 确保事件链路完整
- CleanOrderEventListener 新增 handleCancelled:记录扩展表取消时间、
自动调度下一个等待任务;业务日志由 LifecycleManager 统一记录
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-02-14 12:26:47 +08:00 |
|
|
|
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 |
|
|
|
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 |
|
|
|
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 |
|
|
|
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 |
|
|
|
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 |
|
|
|
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 |
|
|
|
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 |
|
|
|
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 |
|
|
|
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 |
|
|
|
abd5933877
|
fix(ops): 入队和派单时设置assigneeDeviceId,修复查询工单功能
|
2026-01-30 09:45:36 +08:00 |
|
|
|
1bdcfa1cc0
|
fix(ops): 启动时初始化BEACON类型配置缓存,解决SignalLoss定时任务获取配置失败问题
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 01:25:14 +08:00 |
|
|
|
3ec7590e12
|
fix(ops): 修复派单时未更新工单 assigneeId 的问题
工单派发(PENDING -> DISPATCHED)时,更新工单表的 assigneeId 字段,
确保 BadgeDeviceStatusEventListener 能正确获取执行人设备ID并更新 Redis 缓存。
Co-Authored-By: Claude (MiniMax-M2.1) <noreply@anthropic.com>
|
2026-01-29 23:04:43 +08:00 |
|
|
|
9d2bbabf1c
|
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. OrderEventPublisherImpl 状态变更事件发布日志改为 info 级别
2. BadgeDeviceStatusEventListener 状态变更日志改为 info 级别
3. 优化日志格式,输出 orderType 便于排查事件接收问题
Co-Authored-By: Claude (MiniMax-M2.1) <noreply@anthropic.com>
|
2026-01-29 22:17:03 +08:00 |
|
|
|
20ea25cf55
|
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. 移除 OrderStateMachine 中重复的事件发布逻辑
- OrderStateMachine 不再发布 OrderStateChangedEvent
- 事件发布统一由 EventPublishHandler 处理
2. 删除 enqueueAndDispatch 遗留方法
- 该方法已无用,被 DispatchEngine 策略模式替代
- 删除接口声明、实现类和测试用例
3. 清理无调用的备用接口方法
- enqueueOrderOnly、dispatchToCleaner、confirmOrder、
startWorkingOnBeacon、autoCompleteOnSignalLost、
playVoiceForNewOrder、playVoiceForQueuedOrder、
playVoiceForNextTask、upgradePriorityToP0、
calculateActualDuration
- 保留接口但标记 @Deprecated
问题修复:
- 工单派发时 TTS 语音播报不再重复触发
- 调度逻辑统一走 DispatchEngine 策略模式
Co-Authored-By: Claude (MiniMax-M2.1) <noreply@anthropic.com>
|
2026-01-29 21:38:50 +08:00 |
|
|
|
d8fd0aa389
|
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. 修复 QueueSyncHandler 在直接派单场景下提前返回的问题
2. 修复 EventPublishHandler 日志级别便于排查
3. 统一 LogType.eventType 为大写下划线格式
Co-Authored-By: Claude (MiniMax-M2.1) <noreply@anthropic.com>
|
2026-01-29 19:01:27 +08:00 |
|
|
|
569ca2c0da
|
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. 修复 listAvailableBadges() 读穿透 bug
- 改用 areaDeviceService.getDeviceIdsByArea() 获取设备列表
- 缓存未命中时自动从数据库重建
2. 优化 N+1 查询问题
- listBadgesByArea() 和 listAvailableBadges() 使用 batchGetBadgeStatus() 批量查询
3. 简化 BadgeDeviceStatusServiceImpl
- 移除重复的 AREA_BADGES_KEY_PREFIX 常量
- 区域索引操作委托给 AreaDeviceService 处理
4. 增强缓存可靠性
- getDeviceIdsByArea() 支持读穿透缓存
- 缓存 TTL 从 30 分钟延长到 24 小时
Co-Authored-By: Claude (MiniMax-M2.1) <noreply@anthropic.com>
|
2026-01-29 18:32:34 +08:00 |
|
|
|
5142b38d12
|
refactor(ops): optimize badge device status management and add sync job
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-29 11:35:11 +08:00 |
|
|
|
afa5837160
|
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
问题:selectListByAreaIdAndRelationType(null, "BADGE") 生成 WHERE area_id = NULL
导致查询结果为空,索引无法初始化
修复:areaId 为 null 时不添加该查询条件,查询所有 BADGE 类型设备
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2026-01-29 00:04:53 +08:00 |
|
|
|
d87d4dd914
|
refactor(ops,iot): 重构区域设备关联模块并添加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
主要变更:
1. 将 ops_area_device_relation 表所有权移至 Ops 模块
- 新增 OpsAreaDeviceRelationDO、Mapper、Service、Controller
- 新增 AreaDeviceApi Feign 接口供其他模块调用
- ���除 IoT 模块中的旧 DO 和 Mapper
2. 实现 Redis JSON 缓存(IoT 可读)
- 统一缓存 Key: ops:area:device:{deviceId}
- 统一缓存 Key: ops:area:{areaId}:type:{relationType}
- TTL: 30分钟,空值缓存: 1分钟
3. IoT 模块通过 Feign 调用 Ops
- 优先读 Redis 缓存,未命中时调用 Ops API
- 缓存由 Ops 模块统一管理
4. 删除 IoT 模块废弃文件
- OpsAreaDeviceRelationDO.java
- OpsAreaDeviceRelationMapper.java
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2026-01-28 22:35:41 +08:00 |
|
|
|
10eeb774a6
|
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-28 18:12:23 +08:00 |
|
|
|
280562bc27
|
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-28 18:01:53 +08:00 |
|