assethub
by cmu4hlee
资产管理系统AI助手(openclaw技能)。用于资产查询、维修报修、盘点管理、折旧计算等资产全生命周期管理
安装
claude skill add --url github.com/openclaw/skills/tree/main/skills/cmu4hlee/assethub文档
AssetHub 资产管理系统 API 技能
⚠️ 安全提示:请勿在配置文件中存储明文密码,建议使用环境变量或运行时输入
配置文件: ~/.assethub/config.json
资产管理系统 API 助手,支持资产查询、维修报修、盘点管理等。
Base URL: http://160ttth72797.vicp.fun:59745/api
认证: 动态 Token (每次调用自动获取)
v4.0 新特性
- ✅ 每次调用自动获取 Token (安全)
- ✅ 支持配置文件多租户切换
- ✅ 数据缓存减少 API 调用
- ✅ 自动重试机制
- ✅ 交互式 REPL 模式
v4.1 新增
- ✅ 支持获取全量数据(分页自动遍历)
- ✅ 默认 pageSize 改为 1000
v4.2 新增
- ✅ 未配置密码时,交互式提示输入用户名/密码/租户ID
快速开始
方式一: 交互式模式 (推荐)
ASSETHUB_PASS=密码 python query.py -i
方式二: 命令行
ASSETHUB_PASS=密码 python query.py stats
方式三: 配置文件
创建 ~/.assethub/config.json:
{
"base_url": "http://160ttth72797.vicp.fun:59745/api",
"tenant_id": "2",
"username": "su",
"password": "你的密码",
"token_cache_seconds": 300,
"cache_ttl": 60,
"max_retries": 3
}
环境变量 (优先级最高)
export ASSETHUB_URL=http://160ttth72797.vicp.fun:59745/api
export ASSETHUB_TENANT=2
export ASSETHUB_USER=su
export ASSETHUB_PASS=密码
常用查询
查询资产列表
# 查询所有资产 (前300条)
curl -s "http://160ttth72797.vicp.fun:59745/api/assets?page=1&pageSize=300" \
-H "Authorization: Bearer $TOKEN" \
-H "X-Tenant-ID: 2"
筛选参数:
keyword- 关键词搜索department/department_new- 部门筛选status- 资产状态(在用/闲置/维修/报废)category_id- 资产分类IDlocation- 存放地点
# 查询手术室资产
curl -s "http://160ttth72797.vicp.fun:59745/api/assets?page=1&pageSize=300" \
-H "Authorization: Bearer $TOKEN" \
-H "X-Tenant-ID: 2" | jq '.data.list[] | select(.department_new | contains("手术室"))'
# 查询在用资产
curl -s "http://160ttth72797.vicp.fun:59745/api/assets?page=1&pageSize=300&status=在用" \
-H "Authorization: Bearer $TOKEN" \
-H "X-Tenant-ID: 2"
查询单个资产详情
curl -s "http://160ttth72797.vicp.fun:59745/api/assets/{id}" \
-H "Authorization: Bearer $TOKEN" \
-H "X-Tenant-ID: 2"
维修管理
查询维修申请
# 所有维修申请
curl -s "http://160ttth72797.vicp.fun:59745/api/maintenance/requests?page=1&pageSize=50" \
-H "Authorization: Bearer $TOKEN" \
-H "X-Tenant-ID: 2"
# 按状态筛选
curl -s "http://160ttth72797.vicp.fun:59745/api/maintenance/requests?status=待审批" \
-H "Authorization: Bearer $TOKEN" \
-H "X-Tenant-ID: 2"
创建维修申请
curl -X POST http://160ttth72797.vicp.fun:59745/api/maintenance/requests \
-H "Authorization: Bearer $TOKEN" \
-H "X-Tenant-ID: 2" \
-H "Content-Type: application/json" \
-d '{
"asset_code": "资产编码",
"fault_description": "故障描述",
"fault_level": "一般/紧急/严重",
"request_person": "报修人",
"department": "报修部门"
}'
查询维修工单
curl -s "http://160ttth72797.vicp.fun:59745/api/maintenance/workorders?page=1&pageSize=50" \
-H "Authorization: Bearer $TOKEN" \
-H "X-Tenant-ID: 2"
查询维修日志
curl -s "http://160ttth72797.vicp.fun:59745/api/maintenance/logs?page=1&pageSize=50" \
-H "Authorization: Bearer $TOKEN" \
-H "X-Tenant-ID: 2"
部门与用户
查询部门列表
curl -s "http://160ttth72797.vicp.fun:59745/api/departments" \
-H "Authorization: Bearer $TOKEN" \
-H "X-Tenant-ID: 2"
查询用户列表
curl -s "http://160ttth72797.vicp.fun:59745/api/users?page=1&pageSize=50" \
-H "Authorization: Bearer $TOKEN" \
-H "X-Tenant-ID: 2"
盘点管理
查询盘点任务
curl -s "http://160ttth72797.vicp.fun:59745/api/inventory?page=1&pageSize=50" \
-H "Authorization: Bearer $TOKEN" \
-H "X-Tenant-ID: 2"
采购管理
查询采购申请
curl -s "http://160ttth72797.vicp.fun:59745/api/procurement/requests?page=1&pageSize=50" \
-H "Authorization: Bearer $TOKEN" \
-H "X-Tenant-ID: 2"
折旧管理
查询折旧明细
curl -s "http://160ttth72797.vicp.fun:59745/api/asset-depreciation/depreciation?page=1&pageSize=50" \
-H "Authorization: Bearer $TOKEN" \
-H "X-Tenant-ID: 2"
创建报修申请
创建维修申请
⚠️ 注意: 创建维修申请是高风险操作,需要:
- 添加
Idempotency-Key请求头 - 二次确认(系统返回 confirmToken 后再确认一次)
# 第一次请求 (获取确认token)
IDEMPOTENCY_KEY=$(openssl rand -hex 16)
RESP=$(curl -s -X POST http://160ttth72797.vicp.fun:59745/api/maintenance/requests \
-H "Authorization: Bearer $TOKEN" \
-H "X-Tenant-ID: 2" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $IDEMPOTENCY_KEY" \
-d '{
"asset_code": "资产编码",
"asset_name": "资产名称",
"fault_description": "故障描述",
"fault_level": "一般",
"request_person": "报修人",
"department": "部门"
}')
# 如果返回 requiresConfirmation=true,则需要二次确认
CONFIRM_TOKEN=$(echo $RESP | jq -r '.confirmToken')
curl -X POST http://160ttth72797.vicp.fun:59745/api/maintenance/requests \
-H "Authorization: Bearer $TOKEN" \
-H "X-Tenant-ID: 2" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $IDEMPOTENCY_KEY" \
-H "X-Risk-Confirm-Token: $CONFIRM_TOKEN" \
-d '{
"asset_code": "资产编码",
"asset_name": "资产名称",
"fault_description": "故障描述",
"fault_level": "一般",
"request_person": "报修人",
"department": "部门"
}'
fault_level 可选值: 一般、紧急、严重
资产盘点
查询盘点任务
curl -s "http://160ttth72797.vicp.fun:59745/api/inventory?page=1&pageSize=50" \
-H "Authorization: Bearer $TOKEN" \
-H "X-Tenant-ID: 2"
创建盘点任务
curl -X POST http://160ttth72797.vicp.fun:59745/api/inventory \
-H "Authorization: Bearer $TOKEN" \
-H "X-Tenant-ID: 2" \
-H "Content-Type: application/json" \
-d '{
"plan_name": "2026年3月手术室盘点",
"planned_date": "2026-03-25",
"department": "手术室(崇山)"
}'
采购申请
创建采购申请
curl -X POST http://160ttth72797.vicp.fun:59745/api/procurement/requests \
-H "Authorization: Bearer $TOKEN" \
-H "X-Tenant-ID: 2" \
-H "Content-Type: application/json" \
-d '{
"asset_name": "新资产名称",
"specification": "规格型号",
"quantity": 1,
"estimated_price": 50000,
"purpose": "采购用途",
"department": "申请部门",
"applicant": "申请人"
}'
资产调拨
查询调拨申请
curl -s "http://160ttth72797.vicp.fun:59745/api/transfer?page=1&pageSize=50" \
-H "Authorization: Bearer $TOKEN" \
-H "X-Tenant-ID: 2"
创建调拨申请
curl -X POST http://160ttth72797.vicp.fun:59745/api/transfer \
-H "Authorization: Bearer $TOKEN" \
-H "X-Tenant-ID: 2" \
-H "Content-Type: application/json" \
-d '{
"asset_code": "资产编码",
"from_department": "调出部门",
"to_department": "调入部门",
"transfer_reason": "调拨原因"
}'
资产报废
查询报废申请
curl -s "http://160ttth72797.vicp.fun:59745/api/scrapping?page=1&pageSize=50" \
-H "Authorization: Bearer $TOKEN" \
-H "X-Tenant-ID: 2"
创建报废申请
curl -X POST http://160ttth72797.vicp.fun:59745/api/scrapping \
-H "Authorization: Bearer $TOKEN" \
-H "X-Tenant-ID: 2" \
-H "Content-Type: application/json" \
-d '{
"asset_code": "资产编码",
"asset_name": "资产名称",
"scrapping_reason": "报废原因",
"estimated_value": 0,
"applicant": "申请人"
}'
资产定位
查询资产位置
curl -s "http://160ttth72797.vicp.fun:59745/api/asset-location/assets/{assetCode}/location" \
-H "Authorization: Bearer $TOKEN" \
-H "X-Tenant-ID: 2"
更新资产位置
curl -X POST http://160ttth72797.vicp.fun:59745/api/asset-location/assets/{assetCode}/location \
-H "Authorization: Bearer $TOKEN" \
-H "X-Tenant-ID: 2" \
-H "Content-Type: application/json" \
-d '{
"building_name": "5号楼",
"room_number": "401",
"floor": "4"
}'
常用查询示例
按部门统计资产
curl -s "http://160ttth72797.vicp.fun:59745/api/assets?page=1&pageSize=300" \
-H "Authorization: Bearer $TOKEN" \
-H "X-Tenant-ID: 2" | jq '
[.data.list[].department_new] | group_by(.) | map({department: .[0], count: length}) | sort_by(.count) | reverse
'
资产价值汇总
curl -s "http://160ttth72797.vicp.fun:59745/api/assets?page=1&pageSize=300" \
-H "Authorization: Bearer $TOKEN" \
-H "X-Tenant-ID: 2" | jq '
[.data.list[] | select(.purchase_price != null) | .purchase_price | tonumber] | add
'
查询高价值资产 (TOP 10)
curl -s "http://160ttth72797.vicp.fun:59745/api/assets?page=1&pageSize=300" \
-H "Authorization: Bearer $TOKEN" \
-H "X-Tenant-ID: 2" | jq '
.data.list | sort_by(.purchase_price | tonumber) | reverse | .[0:10] | .[] | {name: .asset_name, price: .purchase_price, dept: .department_new}
'
常见问题
Q: 登录失败提示"登录尝试过于频繁"
A: API 有频率限制,等待5分钟后重试。
Q: 如何查看资产分类?
A: 查询资产时返回的 category_name 字段即为分类名称。
Q: 资产状态有哪些?
A: 在用、闲置、维修、报废、调配中
预防性维护
查询维护计划
curl -s "http://160ttth72797.vicp.fun:59745/api/maintenance/plans?page=1&pageSize=50" \
-H "Authorization: Bearer $TOKEN" \
-H "X-Tenant-ID: 2"
查询维护模板
curl -s "http://160ttth72797.vicp.fun:59745/api/maintenance/templates?page=1&pageSize=50" \
-H "Authorization: Bearer $TOKEN" \
-H "X-Tenant-ID: 2"
查询维修费用
curl -s "http://160ttth72797.vicp.fun:59745/api/maintenance/costs?page=1&pageSize=50" \
-H "Authorization: Bearer $TOKEN" \
-H "X-Tenant-ID: 2"
查询维修统计
curl -s "http://160ttth72797.vicp.fun:59745/api/maintenance/analytics" \
-H "Authorization: Bearer $TOKEN" \
-H "X-Tenant-ID: 2"
资产分类
查询资产分类
curl -s "http://160ttth72797.vicp.fun:59745/api/asset-categories" \
-H "Authorization: Bearer $TOKEN" \
-H "X-Tenant-ID: 2"
资产标签
打印资产标签
curl -X POST http://160ttth72797.vicp.fun:59745/api/asset-labels/print \
-H "Authorization: Bearer $TOKEN" \
-H "X-Tenant-ID: 2" \
-H "Content-Type: application/json" \
-d '{
"asset_codes": ["资产编码1", "资产编码2"],
"printer": "打印机名称"
}'
资产验收
查询验收记录
curl -s "http://160ttth72797.vicp.fun:59745/api/acceptance?page=1&pageSize=50" \
-H "Authorization: Bearer $TOKEN" \
-H "X-Tenant-ID: 2"
计量检定
查询计量记录
curl -s "http://160ttth72797.vicp.fun:59745/api/quality-control/metrology?page=1&pageSize=50" \
-H "Authorization: Bearer $TOKEN" \
-H "X-Tenant-ID: 2"
完整 API 模块列表
| 模块 | 路径 | 接口数 |
|---|---|---|
| 资产 | /assets | 16 |
| 维修维护 | /maintenance | 92 |
| 采购管理 | /procurement | 11 |
| 部门 | /departments | 6 |
| 用户 | /users | 15 |
| 盘点 | /inventory | 18 |
| 资产定位 | /asset-location | 13 |
| 物联网 | /iot | 48 |
| 技术资料 | /technical-documents | 59 |
| 质量控制 | /quality-control | 30 |
| 折旧 | /asset-depreciation | 10 |
| 权限 | /roles-permissions | 18 |
| 验收 | /acceptance | 12 |
| 调拨 | /transfer | 7 |
| 报废 | /scrapping | 11 |
| 资产分类 | /asset-categories | 6 |
| 资产标签 | /asset-labels | 5 |
完整 API 文档: memory/assethub_api.md (688个接口)
快速索引: memory/assethub_api_index.md
快速查询命令 (v2.0)
使用 scripts/query.py 快速查询:
# 仪表盘
python3 scripts/assethub/query.py dashboard
# 资产查询
python3 scripts/assethub/query.py assets 手术室
python3 scripts/assethub/query.py asset <资产ID>
# 维修管理
python3 scripts/assethub/query.py repair
python3 scripts/assethub/query.py workorder
python3 scripts/assethub/query.py plans
python3 scripts/assethub/query.py costs
# 统计报表
python3 scripts/assethub/query.py stats
python3 scripts/assethub/query.py stats-by-dept
python3 scripts/assethub/query.py stats-by-category
python3 scripts/assethub/query.py stats-by-status
python3 scripts/assethub/query.py stats-value
python3 scripts/assethub/query.py stats-age
# 专项查询
python3 scripts/assethub/query.py top 20
python3 scripts/assethub/query.py idle-assets
python3 scripts/assethub/query.py expiring-warranty 30
python3 scripts/assethub/query.py repair-trend
python3 scripts/assethub/query.py repair-by-dept
# 部门资产
python3 scripts/assethub/query.py dept-assets 手术室
完整命令列表
| 命令 | 说明 |
|---|---|
| dashboard | 仪表盘视图 |
| assets [关键词] | 资产列表 |
| asset <id> | 资产详情 |
| repair | 维修申请 |
| workorder | 维修工单 |
| plans | 维护计划 |
| costs | 维修费用 |
| department / dept | 部门列表 |
| dept-assets <部门> | 某部门资产 |
| categories | 资产分类统计 |
| inventory | 盘点任务 |
| procurement | 采购申请 |
| transfer | 调拨申请 |
| scrapping | 报废申请 |
| location <编码> | 资产位置 |
| acceptance | 验收记录 |
| metrology | 计量记录 |
| stats | 综合统计 |
| stats-by-dept | 按部门统计 |
| stats-by-category | 按分类统计 |
| stats-by-status | 按状态统计 |
| stats-value | 价值分布 |
| stats-age | 年限分布 |
| top [n] | 高价值资产 |
| idle-assets | 闲置资产 |
| expiring-warranty [天] | 即将过保 |
| repair-trend | 维修趋势 |
| repair-by-dept | 部门维修统计 |
| help | 帮助 |
技能版本: 2.0 最后更新: 2026-03-21
高级分析命令 (v3.0)
# 全面分析
python3 scripts/assethub/query.py analysis-full
python3 scripts/assethub/query.py analysis-dept 手术室
python3 scripts/assethub/query.py analysis-repair
python3 scripts/assethub/query.py analysis-warranty
python3 scripts/assethub/query.py analysis-depreciation
# 导出功能
python3 scripts/assethub/query.py export-csv
python3 scripts/assethub/query.py export-summary
# 工具
python3 scripts/assethub/query.py validate
python3 scripts/assethub/query.py dashboard
完整命令列表 (v3.0)
| 分类 | 命令 | 说明 |
|---|---|---|
| 查询 | assets [关键词] | 资产列表 |
| asset <id> | 资产详情 | |
| repair | 维修申请 | |
| workorder | 维修工单 | |
| plans | 维护计划 | |
| costs | 维修费用 | |
| department / dept | 部门列表 | |
| dept-assets <部门> | 部门资产 | |
| inventory | 盘点任务 | |
| procurement | 采购申请 | |
| transfer | 调拨申请 | |
| scrapping | 报废申请 | |
| location <编码> | 资产位置 | |
| acceptance | 验收记录 | |
| metrology | 计量记录 | |
| 统计 | stats | 综合统计 |
| stats-by-dept | 按部门统计 | |
| stats-by-category | 按分类统计 | |
| stats-by-status | 按状态统计 | |
| stats-value | 价值分布 | |
| stats-age | 年限分布 | |
| top [n] | 高价值资产 | |
| idle-assets | 闲置资产 | |
| expiring-warranty [天] | 即将过保 | |
| repair-trend | 维修趋势 | |
| repair-by-dept | 部门维修 | |
| 分析 | analysis-full | 全面分析报告 |
| analysis-dept <部门> | 部门资产分析 | |
| analysis-repair | 维修深度分析 | |
| analysis-warranty | 保修分析 | |
| analysis-depreciation | 折旧分析 | |
| 导出 | export-csv | 导出CSV |
| export-summary | 导出汇总报表 | |
| 工具 | dashboard | 仪表盘 |
| validate | 验证API | |
| help | 帮助 |
技能版本: 3.0 代码行数: 454 最后更新: 2026-03-21
提醒与报表功能 (v3.1)
# 提醒功能
python3 scripts/assethub/query.py warranty-reminder # 保修到期提醒
python3 scripts/assethub/query.py idle-reminder # 闲置资产提醒
python3 scripts/assethub/query.py pending-reminder # 待审批维修提醒
python3 scripts/assethub/query.py daily-summary # 每日汇总报告
# 详细报表
python3 scripts/assethub/query.py report-dept # 部门详细报表
python3 scripts/assethub/query.py report-category # 分类详细报表
完整命令列表 (v3.1)
| 分类 | 命令 | 说明 |
|---|---|---|
| 查询 | assets [关键词] | 资产列表 |
| asset <id> | 资产详情 | |
| repair | 维修申请 | |
| workorder | 维修工单 | |
| plans | 维护计划 | |
| costs | 维修费用 | |
| department / dept | 部门列表 | |
| dept-assets <部门> | 部门资产 | |
| inventory | 盘点任务 | |
| procurement | 采购申请 | |
| transfer | 调拨申请 | |
| scrapping | 报废申请 | |
| location <编码> | 资产位置 | |
| acceptance | 验收记录 | |
| metrology | 计量记录 | |
| 统计 | stats | 综合统计 |
| stats-by-dept | 按部门统计 | |
| stats-by-category | 按分类统计 | |
| stats-by-status | 按状态统计 | |
| stats-value | 价值分布 | |
| stats-age | 年限分布 | |
| top [n] | 高价值资产 | |
| idle-assets | 闲置资产 | |
| expiring-warranty [天] | 即将过保 | |
| repair-trend | 维修趋势 | |
| repair-by-dept | 部门维修 | |
| 分析 | analysis-full | 全面分析报告 |
| analysis-dept <部门> | 部门资产分析 | |
| analysis-repair | 维修深度分析 | |
| analysis-warranty | 保修分析 | |
| analysis-depreciation | 折旧分析 | |
| 导出 | export-csv | 导出CSV |
| export-summary | 导出汇总报表 | |
| 提醒 | warranty-reminder | 保修到期提醒 |
| idle-reminder | 闲置资产提醒 | |
| pending-reminder | 待审批提醒 | |
| daily-summary | 每日汇总报告 | |
| 报表 | report-dept | 部门详细报表 |
| report-category | 分类详细报表 | |
| 工具 | dashboard | 仪表盘 |
| validate | 验证API | |
| help | 帮助 |
技能版本: 3.1 代码行数: 565 最后更新: 2026-03-21
相关 Skills
claude-api
by anthropic
Build apps with the Claude API or Anthropic SDK. TRIGGER when: code imports `anthropic`/`@anthropic-ai/sdk`/`claude_agent_sdk`, or user asks to use Claude API, Anthropic SDKs, or Agent SDK. DO NOT TRIGGER when: code imports `openai`/other AI SDK, general programming, or ML/data-science tasks.
openforge
by bloodandeath
>
DEX聚合器
by BytesAgain
Aggregate DEX prices and DeFi protocol data using DeFiLlama API. Use when comparing token prices. Requires curl.