openydt-record 是 openydt-cli 的停车记录域(parking)技能,用于处理停车场记录级任务。开始前必须先读取 ../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 coupon、openydt visitor、openydt blacklist;实时算费或缴费见 openydt-billing。
主要能力(命令统一以 openydt parking <use> 调用,写操作需追加 --yes 确认): 读操作包括:check-channel-exist-car(检查通道是否有车)、get-park-on-site-car(在场车辆查询)、get-car-in-list(进场记录查询)、get-car-out-list(出场记录查询)、get-park-detail(停车记录详情)、get-inventory-record(查盘点记录)、get-park-detail-ignore-status(忽略状态的停车记录详情)、get-channel-permission(通道权限查询)、get-pay-bill(缴费记录查询)、get-payment-record-detail-list(支付账单明细列表)、get-payment-record-detail-file(支付账单文件)、get-park-pay-bill-by-car-nos-and-pay-time(按车牌+支付时间查账单)、get-car-arrearage-list(车辆欠费记录)、get-arrears-list-by-operator(运营商欠费记录)、get-arrears-count(运营商欠费条数)、get-arrears-detail(欠费图片详情)、get-abnormal-open-gate-list(非系统开闸记录)、get-abnormal-out-list(异常离场记录)、get-car-lock-status(查锁车状态)。 写操作包括:inventory-car(盘点离场)、supplement-parking-record-in(进车补录)、supplement-parking-record-image(进场图片补录)、correct-car-no(在场车牌校正)、correct-car-on-channel(通道待进出车牌校正)、correcting-car-code-after-car-in-out-confirm-phone(进出确认拍照后车牌校正)、lock-car(锁车)、unlock-car(解锁)、scan-channel-code-in-out(扫通道码自助进出场)、roadside-car-check-in(路边车自助登记)、create-intercept-policy(创建车场拦截策略)、delete-intercept-policy(删除车场拦截策略)、cancellation-of-arrears(取消欠费)、update-wihhold-detail-bill(更新代扣流程订单)。 本表未列但属 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。
使用方式与注意事项:
- 查询、校正进出记录或处理通道会话前,读 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。
- 注意 update-wihhold-detail-bill 里的 wihhold 是平台接口编码 updateWihholdDetailBill 的原始拼写(平台侧 typo,本应是 withhold),CLI 按平台编码逐字发送,必须照此拼写,不要纠正为 withhold,否则平台返回 status=9 接口不存在。
适用场景:停车场运营中的在场车辆盘点、进出记录查询、停车记录详情核对、历史缴费与欠费查询、进车补录与车牌校正、锁车解锁、盘点离场、自助进出登记、异常开闸与异常离场分析、逃费与放行类型分析等记录级任务。
限制:本域只处理停车记录级任务,不负责实时查费缴费(用 openydt-billing)、平台聚合统计(用 openydt-data)、月票/电子券/访客/黑名单(用对应域)。写操作需 --yes 确认,部分写操作无幂等键需先读确认。示例 parkCode 与时间仅适用于 test 环境。