mcpField
O
openydt-evcharge

openydt-evcharge

github.com/xiaowen-0725其他135 次安装10 周前更新
代码仓库

关于 openydt-evcharge

openydt-evcharge 是用于只读查询电动车充电平台的技能,提供命令行操作。可查询站点、充电桩与枪口状态、经营统计及充电订单。

主要功能

  1. 01列出站点并查看站点详情
  2. 02查看充电桩和枪口状态
  3. 03查询站点经营统计
  4. 04筛选并列出充电订单
  5. 05按订单号查询订单详情

适用场景

  1. 01查找运营商账号关联的站点
  2. 02检查站点内充电桩和枪口状态
  3. 03查看站点电量、费用和订单数
  4. 04获取单笔充电订单详情

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/xiaowen-0725/openydt-cli --skill openydt-evcharge

安装后在 Claude Code 中输入/openydt-evcharge确认已加载。

详细介绍

来自项目 README

openydt-evcharge — 电动车充电域 (evcharge)

CRITICAL:开始前 MUST 先用 Read 工具读取 ../openydt-shared/SKILL.md(认证 / profile / 签名 / 状态码 / 限速 / 安全规则)。未读共享基座不要执行任何命令。

何时用本技能

当用户需要对电动车充电平台做只读查询/统计时使用本技能,例如:列某运营商(代理商)名下的充电站、看某充电站详情、查充电桩及枪口实时状态、统计站点/桩的经营数据(订单数、充电电量、电费/服务费)、查充电订单列表或单笔订单详情。

意图路由:

  • 要站点:按运营商账号/手机号列站 → station-list;按站点编号看单站(含 operatorName、pileCount) → station-detail。
  • 要充电桩/枪口 → pile-list(返回 guns[] 枪口状态)。
  • 要经营数据/营收/电量 → station-statistics(按站点聚合到每根桩)。
  • 要订单 → 列表用 order-list(按时间段,可加 plotCodes/pileId/useraccount 过滤);单笔用 order-detail(按 orderNo)。
  • 若要做停车(非充电)的查费/缴费、停车记录/在场、月票/券/设备/黑白名单等,请改用对应停车域技能 [[openydt-billing]] / [[openydt-record]] / [[openydt-park]] / [[openydt-monthticket]] / [[openydt-coupon]] / [[openydt-device]] / [[openydt-list]]。
  • 充电平台若有本技能未覆盖的 cmd,用 [[openydt-api-explorer]] 以 openydt api <cmd> 兜底。

可用命令

中文名命令读/写关键参数
获取充电站点列表openydt evcharge station-list读useraccount / mobile(二选一)、pageNum、pageSize
获取充电站点详情openydt evcharge station-detail读plotCode(必填)
获取充电桩设备列表openydt evcharge pile-list读useraccount(必填)、plotCodes(数组,仅 --body)、pageNum、pageSize
获取站点经营数据openydt evcharge station-statistics读useraccount(必填)、plotCodes(数组)、startDate、endDate(必填,≤30天)、分页
获取充电订单列表openydt evcharge order-list读startDate、endDate(必填,≤30天)、useraccount/plotCodes/pileId(可选过滤)、分页
获取订单详情openydt evcharge order-detail读orderNo(必填)

全部为只读命令,无需 --yes。命令名已去掉冗余域前缀(station-list 而非 evcharge-station-list);原始业务码 evchargeStationList 等仍可作 alias 使用。

入参约束(来自平台规则)
  • station-list:useraccount 与 mobile 至少传一个。
  • plotCodes 是站点编号数组:只能经 --body 传(不是单值 flag);不传或空数组表示不按站点过滤,默认最多 50 个。
  • startDate/endDate:格式 yyyy-MM-dd HH:mm:ss,间隔不能超过 30 天(超过回 status=2 / resultCode=909「查询时间范围不能超过 30 天」)。
  • 分页:pageSize 最大 50(超过回业务失败「pageSize 不能大于 50」);命令会按 catalog 文档默认值在缺省时注入 pageNum=1 / pageSize=10。

业务流程

充电域均为只读查询,典型链路是先定位运营商/站点,再下钻桩与订单,强调用前序响应字段作为后续入参:

  1. 定位站点:用 station-list(传 --useraccount 或 --mobile)拿到站点的 plotCode/plotName;或已知 plotCode 直接 station-detail 看详情(返回 operatorName、pileCount、经纬度、运行状态)。
  2. 下钻充电桩:把第 1 步的 plotCode 放进 pile-list 的 --body 的 plotCodes 数组(配 --useraccount),得到各桩 pileId、enabled、runningStatus 与 guns[] 枪口状态。
  3. 经营统计:station-statistics(useraccount + plotCodes + 时间段)按站点聚合到每根桩,给出 orderCount/chargeTotalTimes/totalPower/totalAmount/totalElectricFee/totalServiceFee。
  4. 订单分析:order-list(时间段必填,可用第 1/2 步的 plotCodes、pileId、useraccount 过滤)列订单并拿到 orderNo;需要单笔细节再用 order-detail --order-no <orderNo>。

字段传递要点:station-list/station-detail 的 plotCode → pile-list/station-statistics/order-list 的 plotCodes 数组(经 --body);pile-list 的 pileId → order-list 的 --pile-id 过滤;order-list 的 orderNo → order-detail 的 --order-no。

响应字段/枚举速查(prod 实测,与对接文档有出入)

⚠️ 以下为正式环境实测结果;对接文档写的单一 orderStatus 英文枚举(PAID/CHARGING…)在 prod 未出现。以平台实测为准;若平台后续澄清,以平台为准。

  • 订单(order-list/order-detail)有两个状态维度:
    • chargeStatus / chargeStatusName —— 充电状态:9002=充电中,9003=已完成。
    • orderState / orderStatusName —— 订单状态:1=下单,3=已支付。
    • 金额字段(totalAmount/electricFee/serviceFee)单位「元」,电量 chargingPower 单位「kWh」,chargingDuration 形如「12分」「1分12秒」。
  • 充电桩(pile-list):enabled 0停用/1启用;桩 runningStatus(原值)0运行/1离线;plotCode 为所属站点;guns[].status 实测 0=离线 / 2=空闲 / 4=已插枪(对接文档仅给 2=空闲)。
  • 站点经营(station-statistics):piles[] 含 chargeTotalTimes(充电次数,文档未列)及 orderCount/totalDuration/totalPower/totalAmount/totalElectricFee/totalServiceFee;recordList 项含 stationName。
  • 站点(station-list/station-detail):runningStatus 1运营中/0已停业;station-detail 另含 operatorName、pileCount、lng/lat、region。

错误自愈速查

现象含义恢复动作
resultCode 909「查询时间范围不能超过 30 天」order-list/station-statistics 时间窗 >30 天收窄 startDate/endDate 到 ≤30 天
业务失败「pageSize 不能大于 50」分页超限--page-size ≤ 50
station-list 报参数错误useraccount 与 mobile 都没传至少给一个
plotCodes 没生效当成单值 flag 传了用 --body '{"plotCodes":["C3CMHJX"]}'(数组只能经 body)
返回空 / nodata多为时间窗无业务,或在 test 环境查充电(充电数据当前在 prod 验证)换时间窗,或 --env prod + 对应 prod 凭据核实,非接口故障

通用 status/resultCode、退出码、限速重试、签名版本见 [[openydt-shared]]。充电复用同一签名鉴权(默认 v2)。

示例

充电业务数据目前在 prod 验证(test 环境可能无充电数据);如需查 prod,加 --env prod 并配 prod 凭据。下列为只读命令,安全。样例站点 C3CMHJX、运营商 DLS001 为实测值。

# 1) 按运营商账号列充电站(二选一:--useraccount 或 --mobile)
openydt evcharge station-list --useraccount DLS001 --page-size 10

# 2) 看单站详情(含运营商、桩数、运行状态)
openydt evcharge station-detail --plot-code C3CMHJX

# 3) 列站内充电桩与枪口(plotCodes 是数组,必须经 --body)
openydt evcharge pile-list --body '{"useraccount":"DLS001","plotCodes":["C3CMHJX"],"pageNum":1,"pageSize":10}'

# 4) 站点经营数据(时间段 ≤30 天)
openydt evcharge station-statistics --body '{"useraccount":"DLS001","plotCodes":["C3CMHJX"],"startDate":"2026-06-01 00:00:00","endDate":"2026-06-18 23:59:59","pageNum":1,"pageSize":10}'

# 5) 充电订单列表(时间段必填,可按站点/桩/运营商过滤),拿到 orderNo
openydt evcharge order-list --body '{"plotCodes":["C3CMHJX"],"startDate":"2026-06-01 00:00:00","endDate":"2026-06-18 23:59:59","pageNum":1,"pageSize":10}'

# 6) 单笔订单详情(用第 5 步响应里的 orderNo)
openydt evcharge order-detail --order-no 26061820675194016111704626880659

评论

支持 Markdown