# 化学品智能管理终端 App 功能表格导航 ## 1. 文档说明 本文将当前仓库按 **功能 -> 页面 -> 接口 -> 模型** 的方式整理为表格,适合: - 新开发接手时快速定位代码 - 功能评审时快速查看页面与接口对应关系 - 排查问题时按业务链路反查源码 项目根定位:**实验室化学品智能管理终端(壁挂 Android 一体机)**。 --- ## 2. 项目主入口总表 | 功能域 | 入口页面/类 | 作用说明 | 关键文件 | |---|---|---|---| | 应用初始化 | `ChemicalApp` | 初始化全局状态、蓝牙、X5、日志、ANR 恢复 | `app/src/main/java/xn/hxp/app/ChemicalApp.kt:32` | | 启动与设备绑定 | `StartActivity` | 自动授权、读取本地配置、校验设备绑定实验室、跳主页 | `app/src/main/java/xn/hxp/ui/StartActivity.java:34` | | 主工作台 | `MainActivity` | 主菜单入口、柜体轮播、登录分流、心跳、自动登出 | `app/src/main/java/xn/hxp/ui/MainActivity.java:87` | | 设置 | `SettingActivity` | 服务地址、管理员密码、蓝牙秤、相机、系统控制 | `app/src/main/java/xn/hxp/ui/SettingActivity.java:24` | --- ## 3. 功能总览表 | 功能模块 | 主页面 | 子页面/辅助类 | 主要接口 | 关键模型 | |---|---|---|---|---| | 登录认证 | `SwipeActivity` / `ScanLoginActivity` / `FaceLoginActivity` / `FacialCardActivity` | `AuthenticationDialog` | `cardNum` `userCardValidation` `getScanCode` `faceNewCompare` | `UserData` `UserValidationBean` `ConfigBean` | | 双人认证 | `TwoVerificationActivity` | `TwoPersonActivity` `SwipeCodeTwoActivity` `ScanCodeTwoActivity` `DoublePeopleDialog` | `useCardVerify` `aioScanLogin` `checkUserFaceByPic` | `UserValidationBean` `DoubleDialogBean` | | 新增入库 | `PlanAddActivity` | `PlanAddActivityHelp` `AddActivity` `AddActivityHelp` `UnlockActivity` `SaveListActivity` | `getRelList` `getCabinetListBySub` `scanCodeChemical` `certitude` `getControlConfigs` `addStockCheck` `addStock` | `HxpChemicalVo` `InventoryItemBean` `StockModeBean` `StockModel` `ChemicalInfoBean` | | 已申领未入库 | `AlreadyActivity` | `AlreadyAdapter` | `getHxpStockWait` | `AlreadyBean` `PageHxpStockBean` | | 领用 | `UseActivity` | `UsageLabelDialog` `WeighDialog` | `getStockList` `getByRfid` `addUseRecord` `lockOperate` `getLocks` `outTimeWarn` | `UseBean` `UsePostDataBean` `ChemistryBean` `LockVoListBean` | | 归还/空瓶/废弃回流 | `ChemicalsAlsoActivity` | `DiscardDialog` `EmptiesDialog` `CabinetOpenDialog` `AirBottleDialog` `AirBottleNewDialog` | `useList` `backDetail` `giveBack` `returnGiveBack` `updateRfid` `lockOperate` `getLocks` | `ReturningChemicalsBean` `ReturnDetailsBean` `ReturnGiveBackBean` `GiveBackBean` | | 废弃出库 | `WasteChemicalsActivity` | `DiscardDialog` `StorageDialog` | `stockDetailsList` `discardDetail` `giveBack` `outTimeWarn` `lockOperate` | `WasteChemicalsBean` `ReturnDetailsBean` `GiveBackBean` `TimeWarBean` | | 查询 | `InquiryActivity` | `QueryOneFragment` `QueryTwoFragment` `PromptDialog` `ScanCodeDialog` | `getCabinetList` `indexDetailbyRfid` `getStockDetailsByCode` `lockOperate` `getLocks` | `RuleBean` `UseNoBean` `UseNoTwoBean` `LockVoListBean` | | 标签/RFID 管理 | `ChemicalLabelingActivity` | `AirBottleDialog` `AirBottleNewDialog` | `tagDetailsList` `getDetailsById` `updateRfid` `lockOperate` | `QueryTwoBean` `ReturnDetailsBean` | | 电子台账 | `LedgerActivity` | `UseLedgerFragment` `InventoryIedgerFragment` | `useRecords` `stockLedger` `useReturnList` | `UseLedBean` `InventoryListBean` | | 预警事件 | `WarningEventsActivity` | `ProcessedActivity` | `warningNoticeList` `warningNoticeDetail` `handleMessage` `warningNoticeCount` | `EarlyWarningBean` `ProcessedBean` | | MSDS | `MsdsActivity` | `MsdsScreenActivity` | `getMsdsDetails` `msdsDetails` | `MsdsBean` `MsdsListBean` | | 设备运维 | `SettingActivity` / `MainActivity` / `StartActivity` | `Tool` `HttpTool` | `iot/aio/report` `terminal/machine/heartbeat` `onepcApkUpdate` | `AppInfo` `LabInfo` | --- ## 4. 入口与全局初始化表 ### 4.1 应用启动链路 | 环节 | 页面/类 | 主要动作 | 关键接口/工具 | 关键数据 | |---|---|---|---|---| | Application 初始化 | `ChemicalApp` | 初始化全局状态、蓝牙、X5、日志、ANR 恢复 | `SppTool.init()` `BleManager` `QbSdk` | `userData` `subjectId` `confs` `labInfo` | | 启动页 | `StartActivity` | 长按进设置、授权、恢复本地配置 | `Tool.cmd()` `SharedPreferencesHelper.getUrlBase()` | `SettingsBean` | | 设备绑定实验室 | `StartActivity.initView()` | 调设备上报接口,获取实验室信息 | `HttpTool.getCheck()` | `LabInfo` | | 主菜单加载 | `MainActivity` | 拉基础配置、柜体轮播、登录态展示 | `ApiRepository.basicConfig()` `ApiRepository.getCabinetBySubId()` | `ConfigBean` `RuleBean` | | 心跳与在线 | `MainActivity` | 每 20 秒上报设备心跳 | `HttpTool.heartbeat()` | 设备号/IP/前台状态 | ### 4.2 主菜单功能映射 | 主页入口控件 | 跳转页面 | 功能含义 | 关键代码 | |---|---|---|---| | `addChemicals` | `PlanAddActivity` / `AlreadyActivity` | 入库/待入库管理 | `MainActivity.java:465-480` `MainActivity.java:645-684` | | `reDis` | `WasteChemicalsActivity` | 废弃出库 | `MainActivity.java:482-491` | | `reInq` | `InquiryActivity` | 查询 | `MainActivity.java:493-501` | | `reCla` | `UseActivity` | 领用 | `MainActivity.java:504-513` | | `reRet` | `ChemicalsAlsoActivity` | 归还/空瓶/废弃回流 | `MainActivity.java:515-524` | | `rlLedger` | `LedgerActivity` | 电子台账 | `MainActivity.java:526-535` | | `reLedger` | `ChemicalLabelingActivity` | 标签/RFID 管理 | `MainActivity.java:537-546` | | `rlWarning` | `WarningEventsActivity` | 预警事件 | `MainActivity.java:548-557` | | `rlDem` | `MsdsActivity` | MSDS | `MainActivity.java:559-564` | --- ## 5. 登录认证功能表 ### 5.1 登录方式表 | 功能 | 页面 | 触发来源 | 主要接口 | 关键模型 | 备注 | |---|---|---|---|---|---| | 刷卡登录 | `SwipeActivity` | 主页登录分流 | `cardNum` `userCardValidation` | `UserData` `UserValidationBean` | 通过卡号获取 token,再校验实验室权限 | | 扫码登录 | `ScanLoginActivity` | 主页登录分流 | `getScanCode` / 扫码认证相关 | `UserData` | 与二维码/微信码联动 | | 人脸登录 | `FaceLoginActivity` | 主页登录分流 | `faceNewCompare` | `UserData` | 摄像头拍照比对 | | 人脸+刷卡 | `FacialCardActivity` | 配置 `loginType` 包含 4 | 组合认证 | `UserData` | 硬件一体机组合登录 | ### 5.2 登录方式配置表 | 配置字段 | 含义 | 使用位置 | |---|---|---| | `ConfigBean.loginType` | 登录方式配置 | `MainActivity.java:325-384` `InquiryActivity.java:623-678` | | `1` | 人脸 | `basicConfLog()` 分流 | | `2` | 刷卡 | `basicConfLog()` 分流 | | `3` | 扫码 | `basicConfLog()` 分流 | | `4` | 人脸+刷卡组合 | `FacialCardActivity` | ### 5.3 登录后角色判定表 | 角色字段 | 说明 | 主要用途 | |---|---|---| | `schoolLevelAdmin` | 校级管理员 | 高权限管理/管控类操作 | | `collegeAdmin` | 院级管理员 | 高权限管理/管控类操作 | | `adminUser` | 实验室负责人 | 登录、双人认证、柜门操作 | | `safeUser` | 安全负责人 | 登录、双人认证、柜门操作 | | `cabinetAdmin` | 柜锁管理员 | 柜门开锁、认证 | | `belongUser` | 化学品归属人 | 领用/归还相关合法身份 | | `toipcUser` | 课题组成员 | 领用/归还相关合法身份 | | `apply` | 实验室准入 | 登录放行 | | `white` | 白名单 | 登录放行 | 来源:`app/src/main/java/com/rc/httpcore/bean/UserValidationBean.kt:4` --- ## 6. 双人认证功能表 ### 6.1 双人认证场景表 | `mTag` | 业务场景 | 调用方页面 | 备注 | |---|---|---|---| | `0` | 新增入库 | `PlanAddActivity` / `UnlockActivity` 一线流程 | 对入库相关高风险操作做二次授权 | | `1` | 归还/废弃/空瓶/标签管理 | `ChemicalsAlsoActivity` `WasteChemicalsActivity` `ChemicalLabelingActivity` | 与开门、回流处理相关 | | `2` | 待入库 | 待入库相关 | 用于待入库确认场景 | | `3` | 领用 | `UseActivity` | 领用前双人授权 | 来源:`TwoVerificationActivity.kt:83` ### 6.2 认证方式表 | 配置字段 | 说明 | 页面使用点 | |---|---|---| | `ConfigBean.verifyType` | 双人认证方式配置 | `UseActivity` `ChemicalsAlsoActivity` `WasteChemicalsActivity` `ChemicalLabelingActivity` | | `1` | 人脸 | 调 `checkUserFaceByPic` | | `2` | 刷卡 | 调 `useCardVerify` | | `3` | 扫码 | 调 `aioScanLogin` | | `1,2` / `1,3` / `2,3` / 多组合 | 组合认证 | 统一落到 `TwoVerificationActivity` | ### 6.3 双人认证接口表 | 接口 | 方法 | 用途 | 关键参数 | |---|---|---|---| | `chemical/aio/verify/useCardVerify` | `useCardVerify` | 双人刷卡认证 | `cardNum` `subId` `doorId` | | `chemical/aio/verify/aioScanLogin` | `aioScanLogin` | 双人扫码认证 | `subId` `doorId` `code` | | `chemical/aio/verify/checkUserFaceByPic` | `checkUserFaceByPic` | 双人人脸认证 | `subId` `doorId` `stockId` `waitId` | ### 6.4 双人认证结果承接表 | 动作 | 存储位置 | 后续消费页面 | |---|---|---| | 缓存两位认证人 | `SharedPreferencesHelper.saveList()` | `UseActivity` `ChemicalsAlsoActivity` `WasteChemicalsActivity` `InquiryActivity` 等 | | 打开认证结果对话框 | `DoublePeopleDialog` | 认证成功后的过渡页 | | 将双人信息写入业务请求 | `oneUserId/twoUserId` 或 `backOneUser/backTwoUser` | 开锁、归还、废弃、入库提交 | --- ## 7. 入库功能表 ### 7.1 入库页面表 | 功能子项 | 页面/类 | 作用 | 关键依赖 | |---|---|---|---| | 计划入库工作台 | `PlanAddActivity` | 展示当前柜层待入库清单,发起最终提交 | `PlanAddActivityHelp` `LockerAdapter` `Room DAO` | | 计划入库辅助 | `PlanAddActivityHelp` | 拉实验室/柜体信息、扫码录入、保存入库 | `HttpTool` `ApiRepository` `PortScanHelper` | | 手动录入 | `AddActivity` | 录入化学品基础信息与归属信息 | `AddActivityHelp` | | 手动录入辅助 | `AddActivityHelp` | 化学品搜索、类别/归属人/课题组选择、称重与保存 | `ApiRepository` `BluetoothWeighDialog` `PrintLabelDialog` | | 入库开锁 | `UnlockActivity` | 按待入库清单逐个柜门开锁 | `UnlockActivityHelp` `UnlockAdapter` | | 入库结果页 | `SaveListActivity` | 显示已保存完成结果 | 结果展示 | | 已申领未入库 | `AlreadyActivity` | 处理已申领未入库单据 | `AlreadyAdapter` | ### 7.2 入库接口表 | 接口 | 方法 | 用途 | 调用位置 | |---|---|---|---| | `laboratory/subRelInfo/getRelList` | `getRelList` | 获取实验室基础信息 | `PlanAddActivityHelp.getLabInfo()` | | `chemical/aio/getCabinetListBySub` | `HttpTool.getCabinetList()` | 获取柜体/柜门详情 | `PlanAddActivityHelp.getCabinetList()` | | `chemical/stockWait/scanCodeChemical` | `scanCodeChemical` | 扫码获取化学品信息 | `PlanAddActivityHelp.chemicalSearchByCode()` | | `chemical/aio/controlConfig` | `getControlConfigs` | 获取化学品控制配置 | `AddActivityHelp.save()` | | `chemical/aio/certitude` | `certitude` | 化学品确认/补全 | `AddActivityHelp.save()` | | `chemical/aio/addStockCheck` | `addStockCheck` | 称重/入库合法性校验 | `BluetoothWeighDialog` | | `chemical/aio/addStock` | `addChemical` / `stockWaitAdd` | 最终提交入库 | `PlanAddActivityHelp.save()` | | `chemical/aio/getHxpStockWait` | `HttpTool.getHxpStockWait()` | 获取已申领未入库列表 | `MainActivity.getHxpStockWait()` | ### 7.3 入库核心模型表 | 模型 | 作用 | 关键字段 | |---|---|---| | `HxpChemicalVo` | 入库主数据模型 | `chemicalId` `chemicalLevel` `belongId` `cabinetId` `doorId` `joinType` `stockType` | | `InventoryItemBean` | 本地待入库 item | 柜体/柜门/层/数量/绑定的化学品 | | `StockModel` | 校验用入参 | 称重校验相关 | | `StockModeBean` | 提交入库入参 | 待入库整体提交 | | `ChemicalInfoBean` | 实验室基础信息 | 实验室维度数据 | | `ChemicalTypeBean` | 化学品类别字典 | `label` `value` | | `BelongingPersonBean` | 归属人 | `userId` `userName` `account` | | `TopicDataBean` | 课题组 | `topicId` `topicName` | ### 7.4 入库现场动作表 | 动作 | 页面/类 | 说明 | |---|---|---| | 柜层选择 | `LockerFragment` + Room DAO | 选择最终存储柜层 | | 手动录入 | `AddActivity` | 普通人工录入 | | 扫码录入 | `PlanAddActivityHelp.startScanEventListener()` | 兼容多种二维码/条码 | | 标签打印确认 | `PrintLabelDialog` | 录入后是否打印标签 | | 蓝牙称重 | `BluetoothWeighDialog` | 入库前称重校验 | | 智能柜开门 | `UnlockActivity` | 提交前先开门 | --- ## 8. 领用功能表 ### 8.1 领用页面表 | 功能子项 | 页面/类 | 说明 | |---|---|---| | 领用工作台 | `UseActivity` | 柜门选择、库存查询、开门、扫描、称重、提交 | | 领用弹窗 | `UsageLabelDialog` | 开门后在弹窗中刷标签/RFID、移除条目、再次开门 | | 称重弹窗 | `WeighDialog` / 页面内蓝牙逻辑 | 领用称重或手动录入 | ### 8.2 领用接口表 | 接口 | 方法 | 用途 | 调用位置 | |---|---|---|---| | `chemical/aio/stockList` | `getStockList` | 查询可领用库存列表 | `UseActivity.getStockList()` | | `chemical/aio/byRfid` | `getByRfid` | 根据 RFID 查询领用对象 | `UseActivity.getByRfid()` | | `chemical/aio/addUserecord` | `addUseRecord` | 提交领用记录 | `UseActivity.putDataUse()` | | `chemical/aio/getCabinetList` | `getCabinetList` | 获取柜门列表 | `UseActivity.getCabinet()` | | `chemical/aio/lockOperate` | `lockOperate` | 开锁 | `UseActivity.openLock()` | | `chemical/aio/getLockStatus` | `getLocks` | 轮询锁状态 | `UseActivity.getLocks()` | | `chemical/aio/outTimeWarn` | `outTimeWarn` | 异常退出上报 | `UseActivity.outTimeWarnData()` | ### 8.3 领用模型表 | 模型 | 用途 | 关键字段 | |---|---|---| | `UseBean` | RFID 领用详情 | 领用前化学品信息 | | `ChemistryBean` | 单条领用记录 | 数量、出库方式、标签等 | | `UsePostDataBean` | 领用提交体 | `userecordModelList` | | `LockVoListBean` | 柜锁信息 | `lockNum` `unlockingMethod` `isOk` | | `RuleBean` | 柜体/柜门容器 | `cabinetDoorVoList` | | `TimeWarBean` | 异常上报 | 超时/异常柜门记录 | ### 8.4 领用现场流程表 | 步骤 | 页面动作 | 关键点 | |---|---|---| | 选择柜体 | 左侧柜体列表 | `CabinetDoorAdapter` | | 选择柜门 | 右侧柜门列表 | `CabinetDoorRighAdapter` | | 判断双人认证 | `verify == true` | 走 `TwoVerificationActivity` | | 判断智能锁 | `unlockingMethod == 2` | 先 `openLock()` | | 扫描化学品 | `onCardInContent()` | 查 `getByRfid` | | 称重/录入 | `weighData()` | 蓝牙秤或手动 | | 提交 | `putDataUse()` | 调 `addUseRecord` | | 异常离开 | `outTimeWarnData()` | 上报开门未完成场景 | --- ## 9. 归还/空瓶/废弃回流功能表 ### 9.1 页面表 | 功能子项 | 页面/类 | 说明 | |---|---|---| | 归还总工作台 | `ChemicalsAlsoActivity` | 待归还查询、详情展示、归还、空瓶、废弃、换标、补打 | | 废弃原因录入 | `DiscardDialog` | 录入废弃原因 | | 空瓶确认 | `EmptiesDialog` | 空瓶处理 | | RFID 更换/打印 | `AirBottleDialog` `AirBottleNewDialog` | 换标和补打 | | 柜门已开提示 | `CabinetOpenDialog` | 开门后的引导交互 | ### 9.2 接口表 | 接口 | 方法 | 用途 | 调用位置 | |---|---|---|---| | `chemical/aio/useList` | `useList` | 查询待归还列表 | `ChemicalsAlsoActivity.useList()` | | `chemical/aio/backDetail` | `backDetail` | 获取归还详情 | 扫描/点击进入详情 | | `chemical/aio/giveBack` | `giveBack` | 归还/空瓶/废弃提交 | `ChemicalsAlsoActivity` | | `chemical/aio/giveBack` | `returnGiveBack` | 返回更丰富归还结果 | `ChemicalsAlsoActivity` | | `chemical/aio/updateRfid` | `updateRfid` | 更换 RFID | `ChemicalsAlsoActivity.updateRfid()` | | `chemical/aio/lockOperate` | `lockOperate` | 柜门开锁 | `ChemicalsAlsoActivity.openLock()` | | `chemical/aio/getLockStatus` | `getLocks` | 轮询锁状态 | `ChemicalsAlsoActivity.getLocks()` | ### 9.3 模型表 | 模型 | 用途 | 关键字段 | |---|---|---| | `ReturningChemicalsBean` | 待归还列表 | 分页记录 | | `ReturnDetailsBean` | 归还详情 | `chemicalLevel` `verify` `cabinetLockVoList` `rfidCode` | | `GiveBackBean` | 归还/废弃提交体 | `returnType` `useStatus` `weigh` `disuseReason` `backOneUser/backTwoUser` | | `ReturnGiveBackBean` | 归还结果 | 结果回显 | ### 9.4 状态字段表 | 字段 | 取值 | 含义 | 来源 | |---|---|---|---| | `returnType` | `1` / `2` | 归还方式:称重 / 录入 | `GiveBackBean.kt:20` | | `outType` | `1` / `2` | 领用方式:称重 / 录入 | `GiveBackBean.kt:13` | | `useStatus` | `0` | 归还 | 代码使用线索 | | `useStatus` | `3` | 空瓶/废弃出库 | `GiveBackBean.kt:23` | | `useStatus` | `4` | 作废/归还相关状态流转 | 页面使用线索 | --- ## 10. 废弃功能表 ### 10.1 页面表 | 功能 | 页面/类 | 说明 | |---|---|---| | 废弃列表与处理 | `WasteChemicalsActivity` | 查询可废弃对象、扫描进入详情、录入原因、提交废弃 | | 废弃原因弹窗 | `DiscardDialog` | 录入废弃原因 | | 柜位选择弹窗 | `StorageDialog` | 柜体/柜门过滤 | ### 10.2 接口表 | 接口 | 方法 | 用途 | |---|---|---| | `chemical/aio/stockDetailsList` | `stockDetailsList` | 查询可废弃化学品列表 | | `chemical/aio/discardDetail` | `discardDetail` | 获取废弃详情 | | `chemical/aio/giveBack` | `giveBack` | 提交废弃出库 | | `chemical/aio/lockOperate` | `lockOperate` | 柜门开锁 | | `chemical/aio/outTimeWarn` | `outTimeWarn` | 开门后异常退出上报 | ### 10.3 模型表 | 模型 | 用途 | |---|---| | `WasteChemicalsBean` | 废弃列表分页容器 | | `ReturnDetailsBean` | 废弃详情承接 | | `GiveBackBean` | 废弃提交体 | | `TimeWarBean` | 异常上报体 | --- ## 11. 查询功能表 ### 11.1 页面表 | 功能子项 | 页面/类 | 说明 | |---|---|---| | 查询主页面 | `InquiryActivity` | 柜体柜门选择、扫码查询、开门 | | 查询页签一 | `QueryOneFragment` | 当前柜门库存列表 | | 查询页签二 | `QueryTwoFragment` | 标签/库存详情 | | 详情弹窗 | `PromptDialog` `ScanCodeDialog` | 根据登录态显示不同详情 | ### 11.2 接口表 | 接口 | 方法 | 用途 | |---|---|---| | `chemical/aio/getCabinetList` | `getCabinetList` | 查询柜体柜门 | | `chemical/aio/indexDetailbyRfid` | `indexDetailbyRfid` | 未登录态按 RFID 查询 | | `chemical/aio/getStockDetailsByCode` | `getStockDetailsByCode` | 登录态按 RFID/标签查询 | | `chemical/aio/lockOperate` | `lockOperate` | 柜门开锁 | | `chemical/aio/getLockStatus` | `getLocks` | 锁状态轮询 | ### 11.3 模型表 | 模型 | 用途 | |---|---| | `RuleBean` | 柜体柜门容器 | | `CabinetDoorVo` | 柜门 item | | `UseNoBean` | 未登录态查询结果 | | `UseNoTwoBean` | 登录态查询结果 | | `LockVoListBean` | 柜锁明细 | --- ## 12. 标签/RFID 管理功能表 ### 12.1 页面表 | 功能 | 页面/类 | 说明 | |---|---|---| | 标签列表与详情 | `ChemicalLabelingActivity` | 标签查询、详情查看、补打、换 RFID、定位开柜 | | RFID 输入/更换 | `AirBottleDialog` `AirBottleNewDialog` | 补写/改写 RFID | ### 12.2 接口表 | 接口 | 方法 | 用途 | |---|---|---| | `chemical/aio/tagDetailsList` | `tagDetailsList` | 标签列表查询 | | `chemical/aio/getDetailsById` | `getDetailsById` | 标签详情 | | `chemical/aio/updateRfid` | `updateRfid` | 更新 RFID | | `chemical/aio/lockOperate` | `lockOperate` | 打开柜门定位 | | `chemical/aio/getLockStatus` | `getLocks` | 锁状态轮询 | ### 12.3 模型表 | 模型 | 用途 | |---|---| | `QueryTwoBean` | 标签列表分页 | | `ReturnDetailsBean` | 标签详情回显 | | `LockVoListBean` | 柜锁信息 | --- ## 13. 电子台账功能表 ### 13.1 页面表 | 功能 | 页面/类 | 说明 | |---|---|---| | 电子台账容器 | `LedgerActivity` | 切换使用台账/库存台账 | | 使用台账 | `UseLedgerFragment` | 按柜门/类别/级别/时间查询使用记录 | | 库存台账 | `InventoryIedgerFragment` | 按柜门/类别/级别/出库方式查询库存记录 | | 待归还清单 | `ChecklistsActivity` | 使用台账中的待归还入口 | ### 13.2 接口表 | 接口 | 方法 | 用途 | |---|---|---| | `chemical/aio/useRecords` | `useRecords` | 使用台账查询 | | `chemical/aio/stockLedger` | `stockLedger` | 库存台账查询 | | `chemical/aio/useReturnList` | `useReturnList` | 待归还清单 | | `system/dict/item/option` | `getOptions` | 化学品类别字典 | ### 13.3 模型表 | 模型 | 用途 | |---|---| | `UseLedBean` | 使用台账分页 | | `InventoryListBean` | 库存台账分页 | | `ChemicalTypeBean` | 化学品类别字典 | ### 13.4 台账筛选字段表 | 页面 | 筛选项 | 字段 | |---|---|---| | `UseLedgerFragment` | 月份 | `numberMonths` | | `UseLedgerFragment` | 类别 | `chemicalCategory` | | `UseLedgerFragment` | 级别 | `chemicalLevel` | | `UseLedgerFragment` | 柜体/柜门 | `cabinetId` `doorId` | | `InventoryIedgerFragment` | 月份 | `numberMonths` | | `InventoryIedgerFragment` | 类别 | `chemicalCategory` | | `InventoryIedgerFragment` | 级别 | `chemicalLevel` | | `InventoryIedgerFragment` | 出库方式 | `status` | --- ## 14. 预警事件功能表 ### 14.1 页面表 | 功能 | 页面/类 | 说明 | |---|---|---| | 预警列表 | `WarningEventsActivity` | 预警统计、分页、筛选 | | 预警详情/处理 | `ProcessedActivity` | 查看详情、提交处理备注 | ### 14.2 接口表 | 接口 | 方法 | 用途 | |---|---|---| | `system/aioUnify/warningNoticeCount` | `warningNoticeCount` | 获取预警总数 | | `system/aioUnify/warningNoticeList` | `warningNoticeList` | 查询预警列表 | | `system/aioUnify/warningNoticeDetail` | `warningNoticeDetail` | 查询预警详情 | | `system/warningNotice/handleMessage` | `handleMessage` | 提交处理说明 | ### 14.3 模型表 | 模型 | 用途 | |---|---| | `EarlyWarningBean` | 预警列表分页 | | `ProcessedBean` | 预警详情/处理结果 | ### 14.4 筛选项表 | 筛选项 | 字段 | 备注 | |---|---|---| | 处理状态 | `noticeStatus` | `0` 待处理,`1` 已处理 | | 时间范围 | `timeType` | 近一月 / 近三月 | | 指定日期 | `warnTime` | 日期筛选 | --- ## 15. MSDS 功能表 ### 15.1 页面表 | 功能 | 页面/类 | 说明 | |---|---|---| | MSDS 列表与预览 | `MsdsActivity` | 搜索、列表、HTML 展示、二维码 | | MSDS 全屏查看 | `MsdsScreenActivity` | 全屏文档查看 | ### 15.2 接口表 | 接口 | 方法 | 用途 | |---|---|---| | `chemical/aio/msds` | `getMsdsDetails` | 搜索 MSDS 列表 | | `chemical/aio/msdsDetails` | `msdsDetails` | 查询单条文档详情 | ### 15.3 模型表 | 模型 | 用途 | |---|---| | `MsdsBean` | MSDS 列表分页 | | `MsdsListBean` | 单条 MSDS 详情 | --- ## 16. 设置与设备运维功能表 ### 16.1 设置页功能表 | 功能 | 页面/类 | 说明 | |---|---|---| | 服务地址配置 | `SettingActivity` | 保存 HTTP/图片/二维码基础地址 | | 管理员密码 | `SettingActivity` | 主页隐藏入口密码 | | 蓝牙秤绑定 | `SettingActivity` + `BleSelectorDialog` | 扫描并绑定 `sppMac/sppName` | | 相机方向 | `SettingActivity` | 前后摄配置 | | 系统操作 | `SettingActivity` + `Tool` | 重启、打开系统设置、文件浏览器、状态栏控制 | ### 16.2 设备接口表 | 接口/工具 | 类型 | 用途 | |---|---|---| | `iot/aio/report` | 后端接口 | 设备绑定实验室 / 版本上报 | | `terminal/machine/heartbeat` | 后端接口 | 心跳上报 | | `onepcApkUpdate` | 后端接口 | APK 升级状态回传 | | `Tool` | 本地工具 | su 命令、重启、状态栏、设置 | | `HttpTool.getCheck()` | 本地 HTTP 工具 | 启动校验设备信息 | | `HttpTool.heartbeat()` | 本地 HTTP 工具 | 心跳 | --- ## 17. 硬件接入功能表 ### 17.1 硬件能力表 | 硬件/能力 | 主要类 | 说明 | |---|---|---| | 摄像头/人脸 | `FaceLoginActivity` `TwoVerificationActivity` | 登录与双人认证 | | 刷卡/扫码输入 | `PortScanHelper` `UsbReceiver` `PortScanService` | 键盘流/USB 输入统一分发 | | 蓝牙秤 | `SppTool` `BluetoothHelper` `BluetoothWeighDialog` | 入库/领用/归还称重 | | 智能柜锁 | `lockOperate` `getLocks` + 各业务页 `openLock()` | 柜门控制 | | 标签打印 | `PrintTool` | 打印化学品标签并切纸 | | Web 文档引擎 | `QbSdk` `WebViewHelper` | MSDS 展示 | ### 17.2 蓝牙秤相关表 | 类/页面 | 用途 | 关键点 | |---|---|---| | `SppTool` | 蓝牙 SPP 封装 | 连接、收包、断开 | | `BluetoothHelper` | 旧版蓝牙连接实现 | RFCOMM 连接特定设备 | | `BluetoothWeighDialog` | 入库称重校验 | 规格/净含量/称重值比较,再调 `addStockCheck` | | `UseActivity` | 领用称重 | 页面内蓝牙接秤 | | `ChemicalsAlsoActivity` | 归还称重 | 页面内蓝牙接秤 | ### 17.3 打印相关表 | 类/页面 | 用途 | |---|---| | `PrintTool` | 打印标签、切纸 | | `PrintLabelDialog` | 入库前标签打印确认 | | `ChemicalLabelingActivity` | 补打标签 | | `ChemicalsAlsoActivity` | 归还页补打标签 | --- ## 18. 核心业务模型表 ### 18.1 化学品域 | 模型 | 说明 | 重点字段 | |---|---|---| | `ChemicalSearchBean` | 化学品搜索结果 | `chemicalId` `chemicalName` `casNum` `chemicalLevel` `specNum` `packNum` `msdsId` | | `HxpChemicalVo` | 入库/待入库主对象 | `chemicalLevel` `belongType` `joinType` `stockType` `doorUniqueId` `stockDetailsModelList` | | `ChemicalTypeBean` | 类别字典 | `label` `value` | | `ChemicalConfsBean` / `HxpControlConfig` | 化学品控制配置 | 是否打印、称重等 | ### 18.2 柜体与锁域 | 模型 | 说明 | 重点字段 | |---|---|---| | `RuleBean` | 柜体及柜门集合 | `cabinetId` `cabinetName` `cabinetDoorVoList` | | `CabinetDoorVo` | 柜门 | `doorUniqueId` `doorName` `verify` `isControl` `cabinetLockVoList` | | `LockVoListBean` | 单把锁 | `lockNum` `unlockingMethod` `isOk` | ### 18.3 领用与归还域 | 模型 | 说明 | 重点字段 | |---|---|---| | `UseBean` | RFID 领用详情 | 当前待领用化学品信息 | | `ChemistryBean` | 领用记录 item | 数量、出库方式、标签信息 | | `UsePostDataBean` | 领用提交体 | `userecordModelList` | | `ReturningChemicalsBean` | 待归还列表 | 分页记录 | | `ReturnDetailsBean` | 归还/废弃/标签详情 | `verify` `chemicalLevel` `cabinetLockVoList` | | `GiveBackBean` | 归还/废弃提交体 | 双人信息、称重、原因、状态 | | `ReturnGiveBackBean` | 归还后结果 | 回显使用量等 | ### 18.4 台账与预警域 | 模型 | 说明 | |---|---| | `UseLedBean` | 使用台账分页 | | `InventoryListBean` | 库存台账分页 | | `EarlyWarningBean` | 预警分页 | | `ProcessedBean` | 预警处理详情 | | `TimeWarBean` | 开锁后异常超时上报 | ### 18.5 用户与配置域 | 模型 | 说明 | |---|---| | `UserData` | 登录用户信息 | | `UserValidationBean` | 用户权限角色信息 | | `ConfigBean` | 实验室基础配置、登录方式、认证方式、超时配置 | | `LabInfo` | 设备绑定实验室信息 | --- ## 19. 关键配置字段速查表 | 字段 | 模型 | 含义 | |---|---|---| | `loginType` | `ConfigBean` | 登录方式配置 | | `verifyType` | `ConfigBean` | 双人认证方式配置 | | `backTime` | `ConfigBean` | 自动返回时间 | | `signOutTime` | `ConfigBean` | 自动注销时间 | | `offTime` | `ConfigBean` | 弹窗关闭时间 | | `vinVex` | `ConfigBean` | 称重入库容差率 | | `chemicalLevel` | `ChemicalSearchBean` / `HxpChemicalVo` | 1 管控,2 非管控 | | `unlockingMethod` | `LockVoListBean` | 2 表示智能锁 | | `joinType` | `HxpChemicalVo` | 入库方式:1 称重,2 录入 | | `stockType` | `HxpChemicalVo` | 入库来源类型 | | `useStatus` | `GiveBackBean` | 归还/废弃状态 | --- ## 20. 接手开发建议 ### 20.1 如果你要改某个功能,优先看这些文件 | 目标 | 优先看 | |---|---| | 改登录 | `MainActivity` `SwipeActivity` `ScanLoginActivity` `FaceLoginActivity` `UserValidationBean` | | 改双人认证 | `TwoVerificationActivity` `SharedPreferencesHelper` | | 改入库 | `PlanAddActivity` `PlanAddActivityHelp` `AddActivity` `AddActivityHelp` `UnlockActivity` | | 改领用 | `UseActivity` `UsageLabelDialog` | | 改归还/空瓶/废弃 | `ChemicalsAlsoActivity` `WasteChemicalsActivity` | | 改查询 | `InquiryActivity` `QueryOneFragment` `QueryTwoFragment` | | 改标签/RFID | `ChemicalLabelingActivity` `PrintTool` | | 改台账 | `LedgerActivity` `UseLedgerFragment` `InventoryIedgerFragment` | | 改预警 | `WarningEventsActivity` `ProcessedActivity` | | 改 MSDS | `MsdsActivity` `MsdsScreenActivity` | | 改设备设置 | `SettingActivity` `Tool` `SppTool` | ### 20.2 如果你要改接口层,优先看这些文件 | 层级 | 文件 | |---|---| | 接口声明 | `app/src/main/java/com/rc/httpcore/client/retrofit/ApiService.java` | | 请求封装 | `app/src/main/java/com/rc/httpcore/client/retrofit/ChemicalRetrofit.kt` | | 页面调用入口 | `app/src/main/java/com/rc/httpcore/client/ApiRepository.kt` | | HTTP 客户端 | `app/src/main/java/com/rc/httpcore/HttpClient.kt` | | 老接口直连 | `app/src/main/java/com/rc/httpcore/client/HttpTool.java` | ### 20.3 如果你要改设备层,优先看这些文件 | 能力 | 文件 | |---|---| | 系统控制 | `xn/hxp/utils/Tool.java` | | 蓝牙秤 | `xn/hxp/utils/bluetooth/SppTool.java` | | 蓝牙旧实现 | `xn/hxp/blu/BluetoothHelper.kt` | | USB/扫码输入 | `xn/hxp/receiver/UsbReceiver.kt` `xn/hxp/receiver/PortScanService.kt` | | 打印 | `xn/hxp/utils/PrintTool.java` | --- ## 21. 文档结论 如果把这个项目压缩成一句话: > 这是一个以实验室安全柜为中心,把登录认证、双人授权、入库、领用、归还、废弃、标签、RFID、称重、台账、预警、MSDS 与终端设备能力整合在一起的实验室化学品智能管理终端。 而从开发接手角度,最重要的三条主线是: 1. **业务页主线**:`MainActivity -> 各业务 Activity` 2. **认证主线**:`TwoVerificationActivity -> SharedPreferencesHelper -> 各业务提交体` 3. **接口主线**:`ApiService -> ChemicalRetrofit -> ApiRepository -> UI` --- ## 22. 扩展表:功能 -> 页面 -> 接口 -> 模型 -> 关键适配器/对话框 本章是在前文基础上的 UI 依赖增强版,重点补充每个功能线的: - 关键适配器 - 关键对话框 - 常用辅助控件/Fragment ### 22.1 登录认证扩展表 | 功能 | 主页面 | 主要接口 | 关键模型 | 关键适配器/对话框/控件 | |---|---|---|---|---| | 刷卡登录 | `SwipeActivity` | `cardNum` `userCardValidation` | `UserData` `UserValidationBean` | `AuthenticationDialog` `PortScanHelper` `UsbReceiver` | | 扫码登录 | `ScanLoginActivity` | `getScanCode` / 扫码认证链路 | `UserData` | 二维码/扫码输入控件、`PortScanHelper` | | 人脸登录 | `FaceLoginActivity` | `faceNewCompare` | `UserData` | 摄像头、Fotoapparat、人脸检测相关 UI | | 人脸+刷卡 | `FacialCardActivity` | 组合认证 | `UserData` | 刷卡输入 + 摄像头识别 UI | | 登录结果确认 | 多登录页共用 | 无 | 登录人信息 | `AuthenticationDialog` `CustomDialog` | ### 22.2 双人认证扩展表 | 功能 | 主页面 | 主要接口 | 关键模型 | 关键适配器/对话框/控件 | |---|---|---|---|---| | 双人人脸/刷卡/扫码组合认证 | `TwoVerificationActivity` | `useCardVerify` `aioScanLogin` `checkUserFaceByPic` | `UserValidationBean` `DoubleDialogBean` | `DoublePeopleDialog` `CustomDialog` `PortScanHelper` `UsbReceiver` 二维码 ImageView | | 双人认证历史兼容页 | `TwoPersonActivity` `SwipeCodeTwoActivity` `ScanCodeTwoActivity` | 认证相关接口 | `UserValidationBean` | 旧版组合认证页面 | | 双人认证结果承接 | 业务页侧 | 无 | `DoubleDialogBean` | `SharedPreferencesHelper` | ### 22.3 新增入库扩展表 | 功能 | 主页面 | 主要接口 | 关键模型 | 关键适配器/对话框/控件 | |---|---|---|---|---| | 计划入库总控 | `PlanAddActivity` | `getRelList` `getCabinetListBySub` `addStock` | `ChemicalInfoBean` `InventoryItemBean` `HxpChemicalVo` | `PlanAdapter` `LockerAdapter` `LockerFragment` | | 扫码录入 | `PlanAddActivityHelp` | `scanCodeChemical` | `HxpChemicalVo` | `PortScanHelper` | | 手动录入 | `AddActivity` | `searchChemica` `getOptions` `getSelects` `getTopicList` | `HxpChemicalVo` `ChemicalTypeBean` `BelongingPersonBean` `TopicDataBean` | `ChemicalTypeDialog` `BelongingPersonDialog` `SelectTopicDialog` `SelectChemicalDialog` | | 标签打印确认 | `AddActivityHelp` | `getControlConfigs` `certitude` | `HxpControlConfig` `HxpChemicalVo` | `PrintLabelDialog` | | 蓝牙称重校验 | `BluetoothWeighDialog` | `addStockCheck` | `HxpChemicalVo` | 称重提示图、净含量输入框、蓝牙连接态 UI | | 柜门开锁 | `UnlockActivity` | `lockOperate` `getLocks` | 柜门/锁模型 | `UnlockAdapter` `CustomDialog` | | 入库完成 | `SaveListActivity` | 无 | 结果数据 | 结果列表 UI | | 已申领未入库 | `AlreadyActivity` | `getHxpStockWait` | `AlreadyBean` | `AlreadyAdapter` `PlanDialog` `SelectAlreadyDialog` | ### 22.4 领用扩展表 | 功能 | 主页面 | 主要接口 | 关键模型 | 关键适配器/对话框/控件 | |---|---|---|---|---| | 柜门选择与列表 | `UseActivity` | `getCabinetList` `getStockList` | `RuleBean` `LockVoListBean` | `CabinetDoorAdapter` `CabinetDoorRighAdapter` `UseListAdapter` | | 柜门双人认证 | `UseActivity -> TwoVerificationActivity` | `useCardVerify` `aioScanLogin` `checkUserFaceByPic` | `UserValidationBean` | `CustomDialog` | | 开门后领用工作台 | `UsageLabelDialog` | `getByRfid` | `UseBean` `ChemistryBean` | `UsageLabelDialogAdapter` | | 称重/录入 | `UseActivity` / `WeighDialog` | 页面内蓝牙逻辑 | `ChemistryBean` | `WeighDialog` 蓝牙提示 UI | | 再次开门 | `UsageLabelDialog.openLock()` | `lockOperate` | `LockVoListBean` | 柜门状态提示音/弹窗 | | 异常退出上报 | `UseActivity` | `outTimeWarn` | `TimeWarBean` | `CustomDialog` | ### 22.5 归还/空瓶/废弃回流扩展表 | 功能 | 主页面 | 主要接口 | 关键模型 | 关键适配器/对话框/控件 | |---|---|---|---|---| | 待归还列表 | `ChemicalsAlsoActivity` | `useList` | `ReturningChemicalsBean` | `ReturningChemicalsAdapter` | | 扫描进入详情 | `ChemicalsAlsoActivity` | `backDetail` | `ReturnDetailsBean` | `PortScanHelper` `UsbReceiver` | | 正常归还 | `ChemicalsAlsoActivity` | `giveBack` `returnGiveBack` | `GiveBackBean` `ReturnGiveBackBean` | 柜门开门提示、归还称重 UI | | 空瓶处理 | `ChemicalsAlsoActivity` | `giveBack` | `GiveBackBean` | `EmptiesDialog` | | 废弃处理 | `ChemicalsAlsoActivity` | `giveBack` | `GiveBackBean` | `DiscardDialog` | | RFID 更换/补打 | `ChemicalsAlsoActivity` | `updateRfid` | `ReturnDetailsBean` | `AirBottleDialog` `AirBottleNewDialog` | | 柜门开门 | `ChemicalsAlsoActivity` | `lockOperate` `getLocks` | `LockVoListBean` | `CabinetOpenDialog` `CustomDialog` | | 柜位过滤 | `ChemicalsAlsoActivity` | `getCabinetList` | `RuleBean` | `StorageDialog` | ### 22.6 废弃出库扩展表 | 功能 | 主页面 | 主要接口 | 关键模型 | 关键适配器/对话框/控件 | |---|---|---|---|---| | 废弃列表 | `WasteChemicalsActivity` | `stockDetailsList` | `WasteChemicalsBean` | `WasteChemicalsAdapter` | | 扫描获取详情 | `WasteChemicalsActivity` | `discardDetail` | `ReturnDetailsBean` | `PortScanHelper` `UsbReceiver` | | 输入废弃原因 | `WasteChemicalsActivity` | `giveBack` | `GiveBackBean` | `DiscardDialog` | | 柜门开门 | `WasteChemicalsActivity` | `lockOperate` `getLocks` | `LockVoListBean` | `StorageDialog` `CustomDialog` | | 异常开门退出 | `WasteChemicalsActivity` | `outTimeWarn` | `TimeWarBean` | 提示弹窗/返回计时 UI | ### 22.7 查询扩展表 | 功能 | 主页面 | 主要接口 | 关键模型 | 关键适配器/对话框/控件 | |---|---|---|---|---| | 柜体/柜门查询 | `InquiryActivity` | `getCabinetList` | `RuleBean` `LockVoListBean` | `CabinetDoorAdapter` `CabinetDoorRighAdapter` | | 查询页签一 | `QueryOneFragment` | `indexStockList` 等 | 库存查询模型 | 列表 RecyclerView | | 查询页签二 | `QueryTwoFragment` | `indexDetailsList` 等 | 详情查询模型 | 列表 RecyclerView | | 未登录扫码查询 | `InquiryActivity` | `indexDetailbyRfid` | `UseNoBean` | `PromptDialog` | | 已登录扫码查询 | `InquiryActivity` | `getStockDetailsByCode` | `UseNoTwoBean` | `ScanCodeDialog` | | 查询场景开门 | `InquiryActivity` | `lockOperate` `getLocks` | `LockVoListBean` | `CustomDialog` | ### 22.8 标签/RFID 管理扩展表 | 功能 | 主页面 | 主要接口 | 关键模型 | 关键适配器/对话框/控件 | |---|---|---|---|---| | 标签列表 | `ChemicalLabelingActivity` | `tagDetailsList` | `QueryTwoBean` | `ChemicalLabelingAdapter` `CustomSpinnerTwoAdapter` | | 标签详情 | `ChemicalLabelingActivity` | `getDetailsById` | `ReturnDetailsBean` | 详情区 UI | | 补打标签 | `ChemicalLabelingActivity` | 无 | `PrintBean` `ReturnDetailsBean` | `PrintTool` | | 更换 RFID | `ChemicalLabelingActivity` | `updateRfid` | `ReturnDetailsBean` | `AirBottleDialog` `AirBottleNewDialog` | | 柜门开门定位 | `ChemicalLabelingActivity` | `lockOperate` `getLocks` | `LockVoListBean` | `StorageDialog` `CustomDialog` | | 标签场景双人认证 | `ChemicalLabelingActivity -> TwoVerificationActivity` | 认证链路接口 | `UserValidationBean` | 认证 UI | ### 22.9 电子台账扩展表 | 功能 | 主页面 | 主要接口 | 关键模型 | 关键适配器/对话框/控件 | |---|---|---|---|---| | 台账容器页 | `LedgerActivity` | 无 | 无 | `SwipeViewPager` `TabFragmentPagerAdapter` | | 使用台账 | `UseLedgerFragment` | `useRecords` `getOptions` | `UseLedBean` `ChemicalTypeBean` | `UseLedgerAdapter` `CabinetDoorAdapter` `CabinetDoorRighAdapter` `ChemicalTypeDialog` `StorageDialog` | | 待归还入口 | `UseLedgerFragment` | 无 | 无 | 跳转 `ChecklistsActivity` | | 库存台账 | `InventoryIedgerFragment` | `stockLedger` `getOptions` | `InventoryListBean` `ChemicalTypeBean` | `InventoryAdapter` `CabinetDoorAdapter` `CabinetDoorRighAdapter` `ChemicalTypeDialog` `StorageDialog` `CustomSpinnerTwoAdapter` | ### 22.10 预警事件扩展表 | 功能 | 主页面 | 主要接口 | 关键模型 | 关键适配器/对话框/控件 | |---|---|---|---|---| | 预警列表 | `WarningEventsActivity` | `warningNoticeList` `warningNoticeCount` | `EarlyWarningBean` | `WarningEventsAdapter` `DatePickDialog` | | 预警详情/处理 | `ProcessedActivity` | `warningNoticeDetail` `handleMessage` | `ProcessedBean` | 详情与处理表单 UI | ### 22.11 MSDS 扩展表 | 功能 | 主页面 | 主要接口 | 关键模型 | 关键适配器/对话框/控件 | |---|---|---|---|---| | MSDS 列表 | `MsdsActivity` | `getMsdsDetails` | `MsdsBean` | `MsdsListAdapter` | | 文档详情预览 | `MsdsActivity` | `msdsDetails` | `MsdsListBean` | `WebViewHelper` `VideoFullScreenWebChromeClient` | | 全屏查看 | `MsdsScreenActivity` | 文档展示 | `MsdsListBean` | 全屏 WebView | ### 22.12 设置与设备运维扩展表 | 功能 | 主页面 | 主要接口/工具 | 关键模型 | 关键适配器/对话框/控件 | |---|---|---|---|---| | 服务地址/管理员密码/相机配置 | `SettingActivity` | `SharedPreferencesHelper` | `SettingsBean` | 表单输入控件 | | 蓝牙秤设备选择 | `SettingActivity` | `SppTool` | 本地 SP 配置 | `BleSelectorDialog` | | 系统控制 | `SettingActivity` | `Tool` | 无 | 系统按钮 | | 心跳与设备状态 | `MainActivity` | `HttpTool.heartbeat()` | 无 | 心跳计时器 | ### 22.13 设备工具与通用组件扩展表 | 类/组件 | 类型 | 主要服务对象 | 用途 | |---|---|---|---| | `PrintTool` | 工具类 | 入库/标签/归还页 | USB 标签打印与切纸 | | `BluetoothWeighDialog` | 对话框 | 入库 | 蓝牙秤接入与称重校验 | | `SppTool` | 工具类 | 入库/领用/归还 | 蓝牙串口秤连接 | | `Tool` | 工具类 | 启动页/设置页/全局 | 设备系统控制 | | `StorageDialog` | 对话框 | 归还/废弃/台账/标签 | 柜体柜门筛选 | | `CustomDialog` | 对话框 | 全局 | 通用业务提示/异常提示 | | `PlanDialog` | 对话框 | 主页入库入口 | 待入库/新增分流 | | `PortScanHelper` | 工具类 | 登录/查询/领用/归还/废弃 | 扫码/刷卡输入分发 | | `UsbReceiver` | 广播接收器 | 登录/查询/领用/归还/废弃 | USB 设备监听 | ### 22.14 推荐使用方式 如果你后续继续扩展文档,建议按以下模板补充: | 功能 | 页面 | 接口 | 模型 | 适配器/对话框 | |---|---|---|---|---| | 某功能 | 某 Activity/Fragment | 某 API | 某 Bean | 某 Adapter/Dialog | 这样后续无论做: - 需求评审 - Bug 定位 - 页面重构 - 接口替换 - 新同事交接 都可以直接沿着同一张表往下查。