c9d443a75b
feat(sql): 安保工单扩展表新增 false_alarm 字段,附增量迁移脚本
...
- DDL: ops_order_security_ext 新增 false_alarm tinyint(1) 列
- 增量迁移: ops_order_security_ext_migrate.sql 供已部署环境 ALTER TABLE
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-15 10:35:30 +08:00
ea64ca9c61
feat(ops): 安保工单 admin-api/open-api 补全确认、提交、误报接口
...
admin-api:
- 新增 /false-alarm 误报标记接口(权限: ops:security-order:complete)
- createOrder 移除 location 字段
open-api:
- 新增 /confirm 确认工单(无需传 userId)
- 新增 /submit 提交处理结果(结果描述 + 图片)
- 新增 /false-alarm 误报标记
- createOrder 移除 location 字段
VO 优化:
- 合并 SecurityOrderFalseAlarmReqVO 和 SecurityOrderOpenConfirmReqVO
为通用 SecurityOrderIdReqVO,消除重复定义
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-15 10:33:51 +08:00
f32315f790
feat(ops): 安保工单新增误报标记、完善确认/完单接口支持 open-api 场景
...
- 新增 falseAlarmOrder 方法,标记误报并完成工单
- confirmOrder/manualCompleteOrder 支持 operatorId 为 null(open-api 自动取已分配人员)
- 新增 resolveOperatorId 辅助方法,null 时记录 warn 日志
- createSecurityOrder 移除 location 透传,改用 AreaPathBuilder 自动拼接
- 消除 createSecurityOrder 中 area 重复查询(校验 + buildPath 共用同一 DO)
- OpsOrderSecurityExtDO 新增 falseAlarm 字段
- SecurityOrderCompleteReqDTO.operatorId 移除 @NotNull 约束
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-15 10:31:50 +08:00
825c8eecca
refactor(ops): 提取 AreaPathBuilder 公共组件,消除保洁/安保 buildAreaPath 重复代码
...
将 CleanOrderServiceImpl 中的 buildAreaPath 私有方法提取到 ops-biz 公共层
AreaPathBuilder 组件,供各业务模块(保洁、安保等)共享使用。同时优化:
- 用正则 matches("\d+") 替代 try-catch NumberFormatException 做数字校验
- 增加相邻重复ID去重保护
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-15 10:30:03 +08:00
2a20f7a89f
fix(framework): ApiRequestFilter 纳入 /open-api 路径,修复 open-api 多租户拦截缺失
...
TenantSecurityWebFilter 继承 ApiRequestFilter,之前 shouldNotFilter 仅匹配
/admin-api 和 /app-api,导致 /open-api 请求跳过租户校验,DB 层
getRequiredTenantId() 抛 NPE。现在补上 openApi prefix,外部系统需传
tenant-id Header。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-13 12:02:02 +08:00
6e56dcb6a2
feat(framework): API 签名、安全白名单与 Web 配置调整
...
- 新增 ApiSignatureProperties 配置类
- 调整签名自动配置与 Redis DAO 实现
- 更新安全白名单与 Web 属性配置
- 网关新增安保模块路由配置
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-11 17:35:05 +08:00
0345d0fe39
fix(ops): TTS 业务日志去除冗余"语音播报:"前缀
...
VoiceBroadcastService 和 TtsQueueConsumer 记录 TTS_SENT 日志时
直接使用播报文本内容,title 由 LogType.TTS_SENT 的 description
"语音播报"提供,避免 message 中重复出现。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-11 17:34:53 +08:00
6c8c57b932
fix(ops): 保洁工单日志去重,修复到岗/完成日志设备字段为 null
...
- AuditEventHandler 跳过 BEACON_ARRIVE_CONFIRMED 和
BEACON_COMPLETE_REQUESTED 审计事件,避免与状态变更日志重复
- recordOrderArrivedLog 当 payload 无 deviceKey 时从工单主表兜底,
null 字段不再输出
- recordOrderCompletedLog 同样增加 deviceKey 兜底逻辑
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-11 17:34:42 +08:00
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
4a7128321e
feat(ops): 安保模块构建配置与枚举扩展
...
- security-biz pom 新增 ops-biz、iot-api 依赖
- ops-server pom 引入 security-biz 模块
- 新增 SECURITY_GUARD 操作人类型、ALARM 来源类型
- 新增安保相关错误码
- dev/local 配置新增安保数据源
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-11 17:33:55 +08:00
2e4432e51b
feat(ops): 新增安保工单 Controller 与开放接口
...
包含 SecurityOrderController(创建/确认/完单/自动完单)、
SecurityAreaUserController(区域人员绑定)、
SecurityOrderOpenController(外部回调),
以及对应的 VO 和权限配置。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-11 17:33:42 +08:00
0f2fb3c50e
test(ops): 新增安保模块单元测试
...
覆盖 SecurityOrderService、SecurityOrderEventListener、
SecurityAreaAssignStrategy、SecurityOrderExtQueryHandler、
OpsAreaSecurityUserService 的核心逻辑测试。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-11 17:33:28 +08:00
4d36bf5b1c
feat(ops): 新增安保工单事件监听器,覆盖全状态业务日志
...
监听工单创建后自动派单、状态变更记录扩展表时间点(派发/确认/
完成),统一记录业务日志,区分系统自动完单与人工完单。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-11 17:33:18 +08:00
784c2ed387
feat(ops): 新增安保工单核心服务与派单策略
...
包含安保工单 CRUD(创建/确认/完单)、区域人员绑定服务、
区域分配策略 SecurityAreaAssignStrategy、调度策略
SecurityScheduleStrategy,以及安保扩展查询处理器。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-11 17:33:09 +08:00
d53d1c4584
feat(ops): 新增安保模块数据模型与 Mapper
...
新增安保区域人员绑定表 ops_area_security_user 和安保工单扩展表
ops_order_security_ext,以及对应的 DO 和 Mapper 接口。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-11 17:32:56 +08:00