mirror of
https://github.com/hpd840321/starRiverProperty.git
synced 2026-06-09 08:20:31 +08:00
dee355b4a7
- artifacts/decompiled 树与相关源码变更 - maven-cw-elevator-application 业务 docs 与 package-info - scripts 下 formatter 校验与辅助脚本 - 其他子工程/接口与发布线一并纳入版本控制 Made-with: Cursor Former-commit-id: e102e8cab64e575bcd23c9a66a598aa1892bb492
2.5 KiB
2.5 KiB
03 通行记录与识别记录(record)
3.1 业务目标
- 电梯通行/开门记录(
AcsElevatorRecordService):分页查询、新增(落库、访客判断、发域事件)、修改状态、统计、Redis 缓存键等。 - 人员识别记录(
AcsRecogRecordService):单接口add,与图库/识别流对接。 - 图库文件(
PersonFileService):upload小图片字节上传,给记录新增时 Base64 解码后 调图库。 SendRecordTimeService:接口体为空,无方法,可视为占位或历史契约保留。
3.2 AcsElevatorRecordService 方法表
| 方法 | 概要 |
|---|---|
openRecord |
分页查开门记录明细,一年 窗口校验;组装区域/片区/人员展示字段 |
add |
见 04-mqtt-visitor-event.md 的访客与事件说明 |
modify |
按条件改开门记录 状态(如从 INIT 更新) |
createCache |
分布式任务锁下 Redis 缓存 初始化 |
pageInfo |
分页查询请求维表信息类结果 |
analyseCycle / analyseCount |
按周期/条件的开门统计、排行等 |
实现类:record/impl/AcsElevatorRecordServiceImpl.java。
3.3 识别子域
AcsRecogRecordService#add:AcsRecogRecordServiceImpl中增加识别记录(实现细节见同文件)。
3.4 流程图:openRecord 主路径
flowchart TD
A[入参+分页] --> B{时间跨度>1年?}
B -- 是 --> X[失败返回]
B -- 否 --> C[DAO 分页]
C --> D[去重取片区/区域id]
D --> E[批量查设备片区名]
E --> F[取区域树缓存/区域父名]
F --> G[批量查人员底库照]
G --> H[组装 AcsElevatorRecordResult 分页返回]
3.5 时序:add 落库前访客与人员(节选)
sequenceDiagram
participant S as AcsElevatorRecordServiceImpl
participant HTTP as ninca-crk-std HTTP
participant P as PersonService
participant DAO as AcsElevatorRecordDao
participant EVT as CloudwalkEventManager
S->>HTTP: POST three/visitor/record/query
HTTP-->>S: 是否访客+被访人
S->>P: detail(识别脸 id)
P-->>S: 工号/组织
S->>DAO: add(DTO)
S->>EVT: publish(VisitorRecordPushEvent)
3.6 领域事件
- 类型:
record/result/VisitorRecordPushEvent.java - 主题
getTopic()固定为VISITOR_RECORD_TOPIC(供订阅方区分)。
与 MQTT 的关系见 04-mqtt-visitor-event.md。