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。
业务流程
充电域均为只读查询,典型链路是先定位运营商/站点,再下钻桩与订单,强调用前序响应字段作为后续入参:
- 定位站点:用
station-list(传--useraccount或--mobile)拿到站点的plotCode/plotName;或已知plotCode直接station-detail看详情(返回operatorName、pileCount、经纬度、运行状态)。 - 下钻充电桩:把第 1 步的
plotCode放进pile-list的--body的plotCodes数组(配--useraccount),得到各桩pileId、enabled、runningStatus与guns[]枪口状态。 - 经营统计:
station-statistics(useraccount + plotCodes + 时间段)按站点聚合到每根桩,给出orderCount/chargeTotalTimes/totalPower/totalAmount/totalElectricFee/totalServiceFee。 - 订单分析:
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):enabled0停用/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):runningStatus1运营中/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