Files
反编译工作区 dee355b4a7 chore: 工作区反编译与 Maven/文档/脚本同步到发布分支
- artifacts/decompiled 树与相关源码变更
- maven-cw-elevator-application 业务 docs 与 package-info
- scripts 下 formatter 校验与辅助脚本
- 其他子工程/接口与发布线一并纳入版本控制

Made-with: Cursor

Former-commit-id: e102e8cab64e575bcd23c9a66a598aa1892bb492
2026-04-25 09:35:35 +08:00

3.2 KiB
Raw Permalink Blame History

01 设备与设备任务(device

1.1 业务目标

  • 维护 本应用视角 的电梯设备与平台设备(DeviceService)的关联数据。
  • 支持 重组/绑定:按区域、标签、组织等条件选择楼层,将 人员规则 批量下发到设备侧(经远程服务)。
  • 通过 设备任务AcsDeviceTaskService / AcsDeviceTaskServiceImpl)在楼层维度 有界并行 执行远程步骤,并 按完成顺序 推进任务上的 bindDevices 等进度(与走查约定 §9 一致)。

1.2 主接口 AcsElevatorDeviceService

方法 行为概要
add / edit / delete 电梯设备增删改,写本库并协调平台设备信息
get / getById / getFo 分页列表、单条、表单选项数据
getBuildingId / getBusinessId 从查询条件解析楼宇或租户
devicePage 平台 设备分页,与 Acs 表关联展示
listUnbindFloors / listFloors / listCondition / listConditionByLabelIds 绑定时待选楼层、已绑楼层、条件筛选(标签等)
bindingFloors / bindingPerson 启动绑定:创建/更新设备任务,异步 updateFloors
getTask / setTaskStop 查询任务进度、停止任务

实现类device/impl/AcsElevatorDeviceServiceImpl.java

1.3 设备任务 AcsDeviceTaskService

方法 行为概要
updateFloors 增加楼层 / 删除楼层 两路上,将远程调用按 每批 UPDATE_FLOORS_FLOOR_PARALLEL 个楼层 提交到 elevatorRemoteBoundedExecutorFeignThreadLocalUtil 在子任务中恢复租户上下文;每步成功再 advanceBindProgressOne 更新 bindDevices

实现类device/impl/AcsDeviceTaskServiceImpl.java

1.4 用例级视图(操作者:管理员 / 系统)

flowchart TB
  subgraph 电梯设备管理
    A[增删改电梯设备]
    B[分页查询/详情]
  end
  subgraph 重组绑定
    C[选楼层/人员或规则]
    D[启动 bindingFloors/bindingPerson]
    E[异步 updateFloors]
  end
  A --> B
  C --> D --> E

1.5 时序:启动楼层绑定后异步推进(概念)

sequenceDiagram
  participant Web as Web/Controller
  participant Dev as AcsElevatorDeviceServiceImpl
  participant Task as AcsDeviceTaskService
  participant Pool as 有界线程池
  participant Remote as 人员/规则 Feign
  Web->>Dev: bindingFloors(参数)
  Dev->>Task: 异步 updateFloors(...)
  loop 每批楼层
    Task->>Pool: invokeAll(子任务)
    Pool->>Remote: add/delete 单楼层步骤
    Remote-->>Task: 成功
    Task->>Task: advanceBindProgressOne(taskId)
  end

1.6 设备设置子域 device/setting

  • AcsDeviceSettingService:如体温相关设置查询(getTemperatureSetting)。
  • AcsDeviceImageStoreAppBindService:设备与图库应用绑定/解绑等(实现见 setting/impl)。

1.7 与邻域关系

  • 规则/人员updateFloors 内调 PersonRuleServiceImageRuleRefService 等,取决于绑定参数是 personId 还是标签/组织。
  • data 层AcsDeviceTaskDao、设备相关 DAO 在 data 模块