# UK CDS 账户管理系统

英国 CDS（Customs Declaration Service，海关申报系统）账户管理系统：导入 CDS 账户凭证、提供已下载海关文件（PVA / C79 PDF）的查询 API，以及监控账户处理进度和英国 VAT 注册状态的内部 HTML 仪表盘。后端使用 SQL Server。

## 目录结构

- `api/` - PHP 入口：JSON API（`api_import.php` 老系统导入、`api_cds_register.php` 新系统接收、`api_search.php` 文件查询）+ HTML 仪表盘（`dashboard.php`、`cdsAccountCheck.php`、`ukVatRegistration.php`、`login.php`）
- `config.php` - 数据库与仪表盘登录配置，支持正式 / 测试双环境
- `database/` - 数据库脚本：`add_cds_data_source_fields.sql`（双系统增量迁移，部署前执行）；`cds_schema_export_legacy.sql`（HeidiSQL 历史导出，已过期）
- `docs/` - 接口文档（老系统 `CDS数据导入API接口文档.md`；新系统 `CDS数据对接新系统接口文档.md`；`-有MD5验证.md` 为过期旧版）
- `python/` - RPA 配套脚本（`rpa_cds_get.py` 领取账号、`rpa_cds_save.py` 保存文件/上传 COS/按归属发通知）
- `CLAUDE.md` - 面向 AI 协作的仓库说明（目录、API 契约、关键行为与注意事项）

## 快速启动

需要 PHP 7+ 与 `pdo_sqlsrv` 扩展，并拥有可访问的 SQL Server：

```bash
php -S 0.0.0.0:8888 -t .
```

- **正式环境**（默认）：`config.php` 顶部 `APP_ENV = 'production'`，经内网连接 `172.16.16.13:1433`
- **本地测试**：改为 `APP_ENV = 'test'`，经外网连接 Tencent CDB `gz-mssql-4jvvbair.sql.tencentcdb.com:25944`
- 仪表盘登录账号密码在 `config.php` 的 `DASHBOARD_AUTH_USERNAME` / `DASHBOARD_AUTH_PASSWORD`；JSON API 不受登录限制

## API

- `POST /api_import.php` - 批量 upsert CDS 账户凭证到 `cds_download`（老系统，仅 source 行）
- `POST /api_cds_register.php` - 新系统账号接收（`GB_VAT_REGISTER_CDS_FILE`，async 受理，文件下载完成回调通知）
- `GET  /api_search.php` - 查询已下载文件记录（`cds_download_log`，全量不按系统过滤，会懒加载回写 `total_postponed`）

请求 / 响应契约与示例见 `docs/CDS数据导入API接口文档.md`；新系统对接契约见 `docs/CDS数据对接新系统接口文档.md`。

## 运维说明

- SQL Server 位于 Tencent Cloud CDB：正式环境走 VPC 内网 `172.16.16.13`，本地/外网走 `gz-mssql-4jvvbair.sql.tencentcdb.com:25944`（同一实例）
- 仓储：`git@codeup.aliyun.com:67ab33ef2910d39c4fb1f1ae/uk_cds.git`（origin，主分支 `main`）
