mcpField
O
openydt-record

openydt-record

github.com/xiaowen-0725数据与数据库189 次安装10 周前更新
代码仓库

关于 openydt-record

openydt-record 是面向停车平台操作的 openydt Skill,覆盖在场车辆、进出记录、历史缴费与欠费查询,也包含补录、锁车和盘点等写操作。它按意图路由到具体命令,并提供批量导出与停车时长分析的指引。

主要功能

  1. 01查询在场车辆及进出记录
  2. 02查询停车详情、历史账单与欠费
  3. 03补录进场、校正车牌及锁车
  4. 04盘点离场并查询盘点记录
  5. 05按意图路由到对应命令

适用场景

  1. 01核对当前在场车辆或指定时段的进出记录
  2. 02查询某条停车记录及历史缴费明细
  3. 03补录进场记录或处理车辆锁定
  4. 04导出离场明细以重算停车时长

MCP 相关

该项目是 Agent Skill,不是 MCP 服务;README 描述的是通过 openydt CLI 操作停车平台。

安装

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

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

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

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

evals/
routing-evals.json
references/
flows.md
parking-duration-analysis.md
parking-record-enums.md
pitfalls.md
scripts/
parking_duration.py

详细介绍

openydt-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": "测试锁车"
}'

评论

支持 Markdown