About openydt-record
openydt-record is an openydt Skill for parking-platform operations, covering vehicle presence, entry and exit records, historical payments, and arrears, as well as write actions such as record supplementation, locking, and inventory. It routes requests to commands and documents bulk export and parking-duration analysis.
Key features
- 01Query present vehicles and entry or exit records
- 02Look up parking details, past bills, and arrears
- 03Supplement entries, correct plates, and lock vehicles
- 04Inventory vehicle departures and inspect inventory records
- 05Route intents to matching commands
Use cases
- 01Check vehicles currently on site or records for a time range
- 02Review a parking record and its historical payment details
- 03Supplement an entry or manage a vehicle lock
- 04Export departure records to recalculate parking duration
MCP support
This is an Agent Skill, not an MCP server; the README describes operating the parking platform through the openydt CLI.
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ xiaowen-0725/ openydt-cli --skill openydt-recordAfter installing, type/openydt-recordin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
evals/routing-evals.jsonreferences/flows.mdparking-duration-analysis.mdparking-record-enums.mdpitfalls.mdscripts/parking_duration.pyDetails
From the project READMEopenydt-record — 停车记录域 (parking)
CRITICAL:开始前 MUST 先用 Read 工具读取
../openydt-shared/SKILL.md,了解认证 / profile / 签名 / 状态码 / 限速 / 安全等通用约定,再执行本域命令。
意图路由
- “查在场车 / 在场车辆 / 现在场内有哪些车” →
get-park-on-site-car - “进场记录 / 进车记录” →
get-car-in-list;“出场记录” →get-car-out-list - “全量进出明细 / 经营分析原始数据” → 按 [[openydt-shared]] 的全量分页规则导出本地 NDJSON 快照
- “基于离场明细重算 / 核验停车时长、分布或分位数” → 先读
references/parking-duration-analysis.md,再运行随附脚本 - “逃费 / 疑似跟车 / 按放行模式统计 / 异常放行 / 遥控开闸分析” → 先读
references/parking-record-enums.md,以 CLI schema 的枚举与领域语义为准 - “直接调用平台停车时长分布等聚合统计” → [[openydt-data]]
- “某条停车记录详情” →
get-park-detail(或忽略状态get-park-detail-ignore-status) - “缴费记录 / 历史账单” →
get-pay-bill/get-payment-record-detail-list/get-park-pay-bill-by-car-nos-and-pay-time(实时应缴金额请用 trade 域get-park-fee,本域只查历史) - “欠费 / 欠费记录” →
get-car-arrearage-list/get-arrears-list-by-operator/get-arrears-count - “进车补录 / 补录进场” →
supplement-parking-record-in - “盘点离场 / 批量清场 / 盘点记录” →
inventory-car(写)/get-inventory-record(读) - “锁车 / 解锁 / 锁车状态” →
lock-car/unlock-car/get-car-lock-status - 跨域提示:月票/电子券/访客/黑名单等不在本域,分别使用
openydt ticket(见 [[openydt-monthticket]])/openydt coupon(见 [[openydt-coupon]])/openydt visitor/openydt blacklist(见 [[openydt-list]]);实时算费/缴费见 [[openydt-billing]]。
可用命令
命令统一以
openydt parking <use>调用。写操作(写)均需追加--yes确认。
| 中文名 | 命令 | 读/写 | 关键参数 |
|---|---|---|---|
| 检查通道是否有车 | openydt parking check-channel-exist-car | 读 | parkCode, channelCode |
| 在场车辆查询 | openydt parking get-park-on-site-car | 读 | parkCodeList, enterTimeFrom, enterTimeTo, pageNum, pageSize |
| 进场记录查询 | openydt parking get-car-in-list | 读 | parkCode, isPresence, startTime, endTime, pageNum, pageSize |
| 出场记录查询 | openydt parking get-car-out-list | 读 | parkCode, carNo(单数), leaveStartTime/leaveEndTime 或 enterTimeFrom/enterTimeTo(二选一必填), pageNum, pageSize(≤100) |
| 停车记录详情 | openydt parking get-park-detail | 读 | parkCode, parkingCode/carCode (任选定位) |
| 查盘点记录 | openydt parking get-inventory-record | 读 | parkCodeList, inventoryStartTime, inventoryEndTime, remark |
| 盘点离场 | openydt parking inventory-car | 写 | parkCode, enterTimeEnd, carNo/carNos/parkingCodes, remark |
| 停车记录详情(忽略状态) | openydt parking get-park-detail-ignore-status | 读 | parkCode, parkingCode/carCode (任选定位) |
| 通道权限查询 | openydt parking get-channel-permission | 读 | parkCode, channelId, carCode, operatorTime, plateColor |
| 缴费记录查询 | openydt parking get-pay-bill | 读 | parkingCode (+parkCode) |
| 支付账单明细列表 | openydt parking get-payment-record-detail-list | 读 | parkCode, pageNum, pageSize |
| 支付账单文件 | openydt parking get-payment-record-detail-file | 读 | parkCode, payTime |
| 按车牌+支付时间查账单 | openydt parking get-park-pay-bill-by-car-nos-and-pay-time | 读 | carNoList, pageNum, pageSize |
| 车辆欠费记录 | openydt parking get-car-arrearage-list | 读 | carNo, parkCodeList (可选筛选) |
| 运营商欠费记录 | openydt parking get-arrears-list-by-operator | 读 | pageSize, pageNum |
| 运营商欠费条数 | openydt parking get-arrears-count | 读 | (body 可空) |
| 欠费图片详情 | openydt parking get-arrears-detail | 读 | (body 可空) |
| 非系统开闸记录 | openydt parking get-abnormal-open-gate-list | 读 | parkCodeList, openGateTimeFrom, openGateTimeTo |
| 异常离场记录 | openydt parking get-abnormal-out-list | 读 | parkCodeList, leaveTimeFrom, leaveTimeTo |
| 查锁车状态 | openydt parking get-car-lock-status | 读 | carNo / cardNumber |
| 进车补录 | openydt parking supplement-parking-record-in | 写 | parkCode, carCode, enterTime, channelCode, carCodeType, carCodeColor, parkOrArea |
| 进场图片补录 | openydt parking supplement-parking-record-image | 写 | parkCode, parkingCode, parkOrArea, carCodeImage, carImage, parkingType |
| 在场车牌校正 | openydt parking correct-car-no | 写 | parkCode, parkingCode, newCarNo, correctTime, correctName, operateType |
| 通道待进出车牌校正 | openydt parking correct-car-on-channel | 写 | parkCode, channelCode, newCarNo, correctTime |
| 进出确认拍照后车牌校正 | openydt parking correcting-car-code-after-car-in-out-confirm-phone | 写 | parkCode, channelId, newCarNo, correctTime |
| 锁车 | openydt parking lock-car | 写 | carNo / cardNumber, lockReason |
| 解锁 | openydt parking unlock-car | 写 | carNo / cardNumber, unlockReason |
| 扫通道码自助进出场 | openydt parking scan-channel-code-in-out | 写 | parkCode, channelSeq, userUniqCode |
| 路边车自助登记 | openydt parking roadside-car-check-in | 写 | carNo, positionNo, longitude, latitude |
| 创建车场拦截策略 | openydt parking create-intercept-policy | 写 | parkCode, policyName, tags |
| 删除车场拦截策略 | openydt parking delete-intercept-policy | 写 | parkCode |
| 取消欠费 | openydt parking cancellation-of-arrears | 写 | recordId, status, remark, operator |
| 更新代扣流程订单 | openydt parking update-wihhold-detail-bill | 写 | thirdBillCode, billStatus, billCallbackDate |
本表未列、但属 parking 域的可调用接口(如
getHisParkDetail/getParkPayBill/getParkingPosition/getParkingSpaceInfo/paymentRecordQuery*/selfInOutForCloudPark/typingRandomCodeInOut/scanChannelCodeInOutFlow/supplyCarIn-Out-Pic等),用openydt api <cmd> --body '{...}'调用(写操作--yes、先--dry-run);车辆标签打标/取消:openydt api addCarTags/openydt api delCarTags(写,需--yes),body 见catalog/catalog.json的 sampleBody;详见 [[openydt-api-explorer]]。
⚠️
update-wihhold-detail-bill里的wihhold是平台接口编码updateWihholdDetailBill的原始拼写(平台侧 typo,本应是 withhold)。CLI 按平台编码逐字发送,必须照此拼写、不要「纠正」为 withhold,否则平台返回status=9 接口不存在。
查询、校正进出记录或处理通道会话前,读
references/pitfalls.md;它收录出场字段、在场时间范围、状态判定与会话过期等分支。
写操作幂等(避免重试重复)
update-wihhold-detail-bill用thirdBillCode去重——重试复用同值,绝不新生成。supplement-parking-record-in/inventory-car/correct-*无显式幂等键:网络超时/网关 404 触发的自动重试可能重复补录或重复盘点离场。重发前先用读命令确认首次是否已生效:- 补录前:
check-channel-exist-car确认通道是否已有在场记录; - 盘点前:
get-inventory-record确认该时段是否已存在盘点操作; - 在场查验:
get-park-on-site-car确认车牌是否仍在场,避免重复补录重复入账。
- 补录前:
- 详见 [[openydt-shared]] 的
../openydt-shared/references/write-idempotency.md。
多步业务流程(在场/进出查询→详情、进车补录、锁车/解锁、欠费→取消)见 references/flows.md,跑多步链路前先 Read。
示例
示例 parkCode/时间为文档化测试值(仅 test 环境:
1ZS7H5PQH9/PTD2YBBZ,2026 相对时间);照抄历史 sampleBody 中的旧 parkCode/时间会撞无效车场或过期时间段。写操作建议先把--yes换成--dry-run预览签名请求,确认后再--yes。
读:查询某车场指定时段进场记录(含指定车牌过滤、分页)
openydt parking get-car-in-list --body '{
"parkCode": "1ZS7H5PQH9",
"carNoArray": ["粤EJW962"],
"isPresence": "0",
"startTime": "20260601000000",
"endTime": "20260601235959",
"pageNum": 1,
"pageSize": 10
}'
读:查询某车场指定出场时段的出场记录(注意字段名与 in-list 不同:carNo 单数 + leaveStartTime/leaveEndTime)
openydt parking get-car-out-list --body '{
"parkCode": "PTD2YBBZ",
"carNo": "粤EJW987",
"leaveStartTime": "20260531000000",
"leaveEndTime": "20260531235959",
"pageNum": 1,
"pageSize": 10
}'
写:进车补录(注意 --yes,响应返回 parkingCode 供后续补图/校正使用)
openydt parking supplement-parking-record-in --yes --body '{
"parkCode": "1ZS7H5PQH9",
"carCode": "粤EJW962",
"enterTime": "20260601080000",
"channelCode": "AA123C",
"carCodeType": 1,
"carCodeColor": 1,
"parkOrArea": 1
}'
写:锁定指定车辆(注意 --yes)
openydt parking lock-car --yes --body '{
"cardNumber": "A12345",
"carNo": "粤EJW962",
"lockReason": "测试锁车"
}'