openydt-flow-park-access
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
Chineseopenydt-flow-park-access — 车辆进出场作业流程 (SOP)
openydt-flow-park-access — Vehicle Entry/Exit Operation Process (SOP)
CRITICAL:开始前 MUST 先用 Read 工具读取,了解认证 / profile / 签名 / 状态码 / 限速 / 安全等通用约定。本技能只讲“怎么把一辆车按真实物理流程弄进 / 弄出车场”的编排,不复述各命令的参数表——具体入参出参见各域技能。../openydt-shared/SKILL.md
CRITICAL: You MUST use the Read tool to readbefore starting to understand general conventions such as authentication / profile / signature / status code / rate limit / security. This skill only focuses on the orchestration of "how to move a vehicle into/out of the parking lot according to real physical processes" and does not repeat the parameter tables of each command — refer to the corresponding domain skills for specific input and output parameters.../openydt-shared/SKILL.md
何时用本技能(与域技能的分工)
When to Use This Skill (Division of Labor with Domain Skills)
- 用本技能:要把一辆车端到端进场或出场、模拟真实进出场、跑通整条链路、不确定先调哪个命令、或某一步报错不知如何接续。
- 用域技能(不要走本流程):只查一条记录 / 在场车 / 锁车 / 只想调用某个单命令 → (停车记录域)、
[[openydt-record]](设备域)、[[openydt-device]](缴费域)。[[openydt-billing]]
安全前提:进出场涉及写操作(补录、抓拍、校正、缴费、盘点),仅在 test 环境演练;每个写命令先预览签名请求,确认后再加--dry-run。详见 openydt-shared 的安全约定。--yes
- Use this skill: Need to complete end-to-end entry/exit of a vehicle, simulate real entry/exit, run through the entire link, unsure which command to call first, or encounter an error in a certain step and don't know how to proceed.
- Use domain skills (do not use this process): Only query a single record / check on-site vehicles / lock vehicles / want to call a single command → (parking record domain),
[[openydt-record]](device domain),[[openydt-device]](payment domain).[[openydt-billing]]
Security Premise: Entry/exit involves write operations (supplement, capture, correction, payment, inventory), only practice in the test environment; preview the signed request withfor each write command first, then add--dry-runafter confirmation. See the security conventions in openydt-shared.--yes
两个必须先理解的概念
Two Concepts Must Be Understood First
1. 进场的两条路本质不同:
| (a) 补录进场 | (b) 抓拍进场(模拟真实物理流程) | |
|---|---|---|
| 命令 | | |
| 性质 | 强制进场,车一定进 | 不保证进场 |
| 抓拍流水 | 不产生抓拍记录 | 产生(本就是模拟抓拍) |
| 适用 | 车已实际进场但平台漏报,需要补一条进场记录 | 演练真实进场物理过程:抓拍 → 识别 → 校正 |
2. 通道放行模式(最反直觉的一点):
抓拍进场里 校正成功 ≠ 车一定进场。是否真正进场取决于该通道的放行模式——若通道设了「严禁临时车进场」,校正后车也不会进车场。这是设计如此:抓拍链路严格按真实物理放行逻辑模拟。所以校正后务必复核是否真的在场(见下),不要假定校正完就进场了。
correct-car-on-channel1. The two entry paths are essentially different:
| (a) Supplement Entry | (b) Capture Entry (Simulate Real Physical Process) | |
|---|---|---|
| Command | | |
| Nature | Forced entry, vehicle will definitely enter | Entry not guaranteed |
| Capture Log | No capture record generated | Generated (it is simulating capture) |
| Applicable Scenario | Vehicle has actually entered but the platform missed it, need to supplement an entry record | Practice real entry physical process: Capture → Recognition → Correction |
2. Channel Release Mode (The Most Counterintuitive Point):
In capture entry, successful correction ≠ vehicle will definitely enter. Whether the vehicle actually enters depends on the release mode of the channel — if the channel is set to "Prohibit temporary vehicles from entering", the vehicle will not enter the parking lot even after correction. This is by design: The capture link strictly simulates real physical release logic. Therefore, must verify whether the vehicle is actually on-site after correction (see below), do not assume entry is completed after correction.
correct-car-on-channel进场流程
Entry Process
先判断用哪条路:只是要让记录里有这辆车(强制) → (a) 补录;要演练真实抓拍识别校正过程 → (b) 抓拍。
First determine which path to use: Just want the record to include this vehicle (forced) → (a) Supplement; Want to practice real capture, recognition and correction process → (b) Capture.
(a) 补录进场(强制,车必进)
(a) Supplement Entry (Forced, Vehicle Will Definitely Enter)
- (可选)确认通道当前是否已有车,避免重复补录。
openydt parking check-channel-exist-car - :传
openydt parking supplement-parking-record-in --yes、parkCode、carCode、enterTime、channelCode、carCodeType、carCodeColor。响应返回新生成的parkOrArea。parkingCode/recordType未传时 CLI 会按平台文档默认值自动补enterCarType,无需手填。1 - 完成。补录是强制进场,记录立即生效。参数细节见 。
[[openydt-record]]
- (Optional) to confirm whether there is already a vehicle in the current channel to avoid duplicate supplements.
openydt parking check-channel-exist-car - : Pass
openydt parking supplement-parking-record-in --yes,parkCode,carCode,enterTime,channelCode,carCodeType,carCodeColor. The response returns the newly generatedparkOrArea.parkingCodeIf/recordTypeare not passed, the CLI will automatically fill them with the default valueenterCarTypeaccording to the platform documentation, no need to fill manually.1 - Completed. Supplement entry is forced entry, and the record takes effect immediately. For parameter details, see .
[[openydt-record]]
(b) 抓拍进场(模拟真实物理流程,不保证进场)
(b) Capture Entry (Simulate Real Physical Process, Entry Not Guaranteed)
- 抓拍:(传
openydt device channel-snap --yes、parkCode),在进场通道触发一次抓拍。channelCode前提:该通道有抓拍设备;否则返回,换有设备的通道。resultCode=908 找不到设备 - 判断车牌:看抓拍出的车牌是否就是目标车牌。
- 是目标车牌 → 进入第 3 步前的放行判断。
- 不是 → 校正:(传
openydt parking correct-car-on-channel --yes、parkCode、channelCode=目标车牌、newCarNo)。correctTime若报「会话已过期」,说明该通道当前没有可校正的抓拍会话,需先成功再校正。channel-snap
- 复核是否真的进场(关键):用 (传
openydt parking get-park-on-site-car+parkCodeList/enterTimeFrom,时间范围必填)查在场车。enterTimeTo- 在场 → 进场成功。
- 不在场 → 多半是该通道放行模式禁止临时车进场所致,校正不会让它进场;改用 (a) 补录,或换放行模式允许的通道。
- Capture: (pass
openydt device channel-snap --yes,parkCode) to trigger a capture at the entry channel.channelCodePrerequisite: The channel has a capture device; otherwise, it returns, switch to a channel with a device.resultCode=908 Device not found - Check License Plate: See if the captured license plate is the target license plate.
- If it is the target license plate → Proceed to the release judgment before Step 3.
- If not → Correction: (pass
openydt parking correct-car-on-channel --yes,parkCode,channelCode=target license plate,newCarNo).correctTimeIf it reports "Session expired", it means there is no capture session available for correction on the current channel, you need to successfully executefirst before correction.channel-snap
- Verify Whether the Vehicle Actually Entered (Critical): Use (pass
openydt parking get-park-on-site-car+parkCodeList/enterTimeFrom, time range is required) to check on-site vehicles.enterTimeTo- On-site → Entry successful.
- Not on-site → Most likely because the channel release mode prohibits temporary vehicles from entering, correction will not allow it to enter; switch to (a) Supplement entry, or switch to a channel with allowed release mode.
出场流程
Exit Process
主路是「出口抓拍 → 校正 → 查费 →(按需)缴费」,常规走不通时用盘点离场兜底。
- 出口抓拍:(
openydt device channel-snap --yes、parkCode=出口通道)。channelCode前提:该出口有抓拍设备,且通常需是进场通道配对的出口;否则报channel-snap、随后的校正报「会话已过期」。无设备 / 非配对出口走不通时,跳到下面的「兜底:盘点离场」。908 - 校正通道车辆:,把待出车校正为目标车牌(
openydt parking correct-car-on-channel --yes+newCarNo)。correctTime - 查费(确认环节):(传
openydt trade get-park-fee+carCode)。parkCode- 看响应 (单位:元,
data.shouldPayValue即 1.00 元,不是 1 分)确认是否欠费 / 应缴多少。1 - 同时取 、
parkingCode、chargeDate/otherAttr.chargeBillToken,供下一步缴费回传。chargeBillNumber
查费后 10 分钟内须完成缴费,令牌/账单否则失效。 - 看响应
- 缴费(可选,先问后做):
- 先询问用户「是否需要缴费?用什么支付方式?」——缴费是真实写操作,不要默默执行。
- 支付方式默认建议「现金」或由用户指定;/
paymentMode的具体码见在线附录payOrigin(catalog 未内置枚举)。/Api/appendixData - 确认后:,回传第 3 步取到的
openydt trade pay-park-fee --yes、parkingCode、chargeDate(≤actPayCharge,单位元)、shouldPayValue、payOrigin、唯一paymentMode,以及billCode里的--body。完整缴费机制(带券、对账、billCode 唯一性)见otherAtrr。[[openydt-billing]]
兜底:盘点离场 —— 当常规抓拍出场走不通(出口无抓拍设备 / 非配对出口)时,用(openydt parking inventory-car --yes、parkCode、enterTimeEnd/carNo/carNos、parkingCodes)作为补充手段把车盘点离场。查盘点记录用remark。命令细节见openydt parking get-inventory-record。[[openydt-record]]
The main path is "Exit Capture → Correction → Fee Inquiry → (Optional) Payment", use inventory exit as a fallback when the normal path is not feasible.
- Exit Capture: (
openydt device channel-snap --yes,parkCode=exit channel).channelCodePrerequisite: The exit has a capture device, and it usually needs to be the paired exit of the entry channel; otherwise,returnschannel-snapand subsequent correction reports "Session expired". If no device / non-paired exit makes it unfeasible, skip to "Fallback: Inventory Exit" below.908 - Correct Channel Vehicle: , correct the vehicle to be exited to the target license plate (
openydt parking correct-car-on-channel --yes+newCarNo).correctTime - Fee Inquiry (Confirmation Step): (pass
openydt trade get-park-fee+carCode).parkCode- Check in the response (Unit: Yuan,
data.shouldPayValuemeans 1.00 Yuan, not 1 cent) to confirm whether there is arrears / the amount to be paid.1 - At the same time, obtain ,
parkingCode,chargeDate/otherAttr.chargeBillTokenfor the next payment step.chargeBillNumber
Payment must be completed within 10 minutes after fee inquiry, otherwise the token/bill will expire. - Check
- Payment (Optional, Ask First Then Execute):
- First ask the user "Do you need to pay? What payment method to use?" — Payment is a real write operation, do not execute it silently.
- Default recommended payment method is "Cash" or specified by the user; specific codes for /
paymentModecan be found in the online appendixpayOrigin(enumerations are not built into the catalog)./Api/appendixData - After confirmation: , pass
openydt trade pay-park-fee --yes,parkingCode,chargeDate(≤actPayCharge, unit: Yuan),shouldPayValue,payOrigin, uniquepaymentModeobtained in Step 3, andbillCodeinotherAtrr. For complete payment mechanism (with coupons, reconciliation, billCode uniqueness), see--body.[[openydt-billing]]
Fallback: Inventory Exit — When the normal capture exit path is not feasible (no capture device at exit / non-paired exit), use(openydt parking inventory-car --yes,parkCode,enterTimeEnd/carNo/carNos,parkingCodes) as a supplementary method to inventory the vehicle out. Useremarkto check inventory records. For command details, seeopenydt parking get-inventory-record.[[openydt-record]]
跨命令硬约束与失败速查
Cross-Command Hard Constraints and Quick Troubleshooting
| 现象 / 约束 | 含义 | 处理 |
|---|---|---|
| 该通道没有抓拍设备 | 换有抓拍设备的通道 |
| 通道当前无可校正的抓拍会话 | 先成功 |
| 抓拍进场校正后车不在场 | 通道放行模式禁止临时车进场 | 改补录进场,或换放行模式允许的通道 |
| 出场抓拍走不通 | 出口无设备 / 非进场配对出口 | 改用盘点离场 |
| 金额理解 | | 别把 |
| 查费令牌 | 查费后 10 分钟内须缴费 | 超时重新查费 |
| Phenomenon / Constraint | Meaning | Handling |
|---|---|---|
| The channel has no capture device | Switch to a channel with a capture device |
| No capture session available for correction on the channel | Successfully execute |
| Vehicle not on-site after correction in capture entry | Channel release mode prohibits temporary vehicles from entering | Switch to supplement entry, or switch to a channel with allowed release mode |
| Capture exit path not feasible | No device at exit / non-paired entry exit | Use fallback |
| Amount Understanding | | Do not treat |
| Fee Inquiry Token | Payment must be completed within 10 minutes after fee inquiry | Re-inquire fee if timed out |
命令归属(参数见各域技能)
Command Attribution (See Domain Skills for Parameters)
- 进场补录 / 校正 / 在场复核 / 盘点 →
[[openydt-record]] - 抓拍 →
channel-snap[[openydt-device]] - 查费 / 缴费
get-park-fee→pay-park-fee[[openydt-billing]]
进出场是跨域流程;单条命令的入参、出参、枚举值一律以上述域技能为准,本技能只负责把它们按正确顺序和约束串起来。
- Entry supplement / correction / on-site verification / inventory →
[[openydt-record]] - Capture →
channel-snap[[openydt-device]] - Fee inquiry / Payment
get-park-fee→pay-park-fee[[openydt-billing]]
Entry/exit is a cross-domain process; input parameters, output parameters, and enumeration values of single commands are all subject to the above domain skills, this skill only connects them in the correct order and constraints.",